Back to crazy

It’s been a while, folks. I’ve had a long post drafted up for about a month, and several times I’ve gone back to write on it, and then abandoned it for another week or two telling myself I’ll come back to it. Well, I don’t think it’s ever going to be finished, so I’m scrapping it and giving you the gist.

What’s been happening?

I’m out of school, obviously.

I left community college in late May. I didn’t graduate. I’m two classes away from the degree, but I’ve decided not to pump any more money into these jerks’ pockets–the program is a real ripoff. Still carefully not naming the school.

Why’d you quit so close to the degree?

Community college is not a good option for programmers. It’s too hard to find people with all the qualifications to teach at community college–unless they’re either flipping insane, like my favorite professor, or so inept (technically and/or socially) they can’t hold down any other job in the field. And when I say socially inept, I don’t mean, “oh haha he forgot to shower and wears weird Hawaiian shirts all the time”–I mean he does stuff like say to the only girl in the class, “You want to start a business? Like what, a scarf knitting business?”–when she’s studying programming. (He threw some patronizing little remark like that at me every day. I could have written one of those calendars.)

You don’t want to end up with one of those.

The ones who don’t know what they’re doing technically aren’t always a whole lot better. The school is running out of teachers–they overwork their best people (the “insane” teachers who are there because they like teaching or something) and everyone else seems to be fleeing the place like a filthy cat who hears the bath running. Last semester they hired this networking teacher to teach web programming like, “oh she used to run this business’s… well, everything, and she made sites for bands and stuff, let’s just stick her in front of this class.” But she wasn’t a programmer. She was a networker. This wasn’t her specialty.

Then they gave her the worst textbook ever–horrible technical design choices, no sense of code beauty, and no sense of how to write a textbook either (poorly organized, puts crucial details in easily-overlooked sidebars, poorly explained instructions, that kind of thing). The code ran, but it made my skin crawl. It did something to my brain. Two pages of instructions would take hours to complete because I’d stare at the book, stare at the screen, stare at my fish, stare at the book again, stare out the window, stare at the screen, come to my senses and try to parse the instructions, get a headache because of the weird grammar or terminology or whatever it was this time, give up, stand up, and go get some food or refill my drink. Then I’d come back and repeat the process.

This is not an efficient algorithm to follow. [citation needed]

The problem was that I was expecting to understand the book, because–here’s the kicker–I already know how to do everything it was asking. I just couldn’t figure out what it was asking without serious effort. It was like a customer with bad requirements, or Jeopardy! questions that are designed to be tough to parse even if they’re not tough to answer.

But–the other problem was that I learned good design, from an O’Reilly book, on my own, years ago. So, invariably, the way I would approach the problem posed was always different from the book’s. The book always had some weird complicated thing it wanted to do, and once I figured it out each time, I thought, “This would be near impossible to document.” Obviously–they couldn’t produce clear instructions on what they wanted you to code, which is basically documentation in a different shape.

The teacher had no clue what was wrong with the book. This was what she’d learned from, and look, it runs. None of the other students are having problems like this with the book, so why are you?

Because I know basically what good code design looks like, and it’s extremely stressful to do it this far wrong. I make TONS of stupid design mistakes myself, but those are mine and nobody’s saying they’re some kind of standard–I don’t want someone else’s forced on me and proclaimed correct. The other students just think they themselves are stupid and can’t learn this thing everyone else is saying is easy. They think it’s the problems that are hard. It’s not. You’re just not being taught well.

Because reading the book doesn’t help. After the first few weeks, I stopped reading the chapter and just skipped to the projects we had to turn in. I relied on W3Schools rather than the chunk of expensive firewood assigned to me. (Actually it was a rental textbook–I had some foresight).

Oh, and because I’m spending half my time traveling and the other half managing a full load of classes. Because this is insane, and my depression is acting up, and I have three other classes which aren’t going a whole lot better because I’m spending all my time trying to catch up in this one.

This teacher made me attempt to explain this to her at 8AM, crying, because she was giving me blowback about dropping her class. She also wasn’t listening to a thing I said, because she made me repeat answers to the same questions. She kept trying to persuade me that dropping (as, by then, a third of the class had) was a mistake.

In retrospect? Still glad I did.

This shit is typical of this school. Something like this happened every semester, if I remember right–I’ve repressed big chunks of it. Depression is weird, it screws royally with your memory, and I can’t even pull up what classes I took each term off the top of my head.

Seriously? Every semester?

I’m tryna think–first semester, that was the sexist pig teacher… second semester I remember I was taking C# because that was what I was procrastinating working on when I was writing one of my early blog posts here. What else was I taking? I think I had a Linux class the latter eight weeks… time to go look it up.

Oh! Yeah! Second semester I tried to take the same web dev class as ranted about above, but it was online from a different teacher, and he went completely off the grid. Wouldn’t answer phone calls, emails, posts on the class web site, anything. Gave us links to malware-laden downloads for programs for class, too–not illegal stuff or anything, it was FileZilla we needed, and that can be gotten easily from the project site, which is a clean download.

Third was the Raspberry Pi project, which is kind of unofficially cancelled. I got to a certain point and then said, “okay, next step is we hook up the Pis to the Internet, how do you want to do that? here are three ways” and all of them were vetoed. Can’t put them on public WiFi because it’s insecure and also really weird to program and thus weird to document–not a good option, didn’t even ask. Can’t put them on the tablet network, the password is super secret and entrusted only to certain individuals… who can’t program Linux, so can’t program it into the Pi image. Can’t build a new network branch that’s connected to the Internet because it’s “too expensive,” whatever that means. And my networking guy who was supposed to be working with me cut out on the project after an evening of hovering over my shoulder while I set up an Apache server. Which also isn’t a good permanent option, because trusting the school with managing its own server is like handing a ten-year-old boy a baby to look after for the day. And he’s an only child.

They also handed me piles of paperwork, because this was supposed to be an honors project (I didn’t want to make it an honors thing, but I let it happen against my better judgement), and the paperwork was supposed to keep me “on track”–writing timelines and crap like that. You know the sort of thing.

I still feel like I should leave documentation or something for the project in case someone sane wants to pick it up–after all, they bought the RPis–but you can’t support a project halfway and then stop. I don’t owe them anything. The coding wasn’t that complicated–they can figure it out if they want to pick this up again. Anyway, that’s what happened with Raspberry Signage. Their digital bulletin boards still suck, and they’ll most likely have to pay someone through the nose to fix the system when it finally breaks for good.

Fourth semester was the nonsense detailed above.

So what happened finally?

I dropped two of my last four classes. I kept the other two because they were things I wanted to learn, and my favorite professor was teaching them. One was Mobile App Development, and the other was Server Side Scripting, which I was horribly behind in because I’d been focusing entirely on the web dev thing.

So much so that in the last weekend before the end of term, I had exactly 2 out of 14 of the assignments done, and they were pretty much the only thing we were graded on.

This resulted in a caffeinated haze of learning PHP over the course of four days. Oddly enough, I didn’t mind it anywhere near as much as I did the web dev thing. Hard problems aren’t so much an issue for me; it’s wrong problems I don’t like. It was grueling work and PHP is kind of weird, but I did about twelve weeks’ worth of work in four days and got a C in the end. …At least that’s what my professor implied. I should go check.

…Nope, their server’s down. Something with the programming, it’s not just down down. Geniuses. I am not making this up.

wow they suck

And they didn’t even make an error page like the config file wants, so their users get this ugly generated crap. My burning desire to see what they think of my PHP skills just kinda fizzled out anyway.

Oh, they’re back up. Ten minutes later.

…Nope, down again. I give. Where was I? Oh, yeah.

So, I passed my two remaining classes (presumably). The other class was the mobile app dev thing. I’ve volunteered to work on the production project we were working with, because the amount of development we’ve (…I’ve) done on the project is at that weird stage where if the next class were to pick it up, it’d be kind of weird and difficult because I used Kivy to help with time constraints, and at this point the design is basically finished and we were starting construction. But the blueprints are kinda hard to pick up. I need to finish the mockups and publish documentation on the customer requirements and design, and program in some functionality if I can–then it’d be a project someone else could pick up. There’s a real person waiting for an app. Actually, it’s a whole organization. They aren’t paying us, but we’ve (our teacher has…) promised to make this thing, so we should keep our word. And by we, I mean me, and one other guy who hasn’t showed up doing anything yet. Dunno what he’s doing, if anything.

The project didn’t make much progress while the class was running. None of us were too hot on the mobile app thing in the first place–the textbook was another dud, it was too outdated to be useful–so we already weren’t too confident. Then the prof is trying to be as hands-off as he can, which is admirable but nobody’s taking responsibility for the project, we don’t know the tech, and we have to code for two platforms, one of which we’ve never touched. So I pop up with Kivy. It’s cross-platform, it uses Python (which is easier to program than Java or Objective-C), and I already know roughly how to use it. I know introducing a new technology to base the project on means taking over responsibility for like the whole thing, but what else was I supposed to do? So, fine. I took responsibility for half a dozen coders.

Then I found out only one of them knows what git is, and most of them don’t have Python installed because they’re running Windows.

So I pull together a big documentation post–you can find it in the archives a few posts back. Instructions on how to set up a dev machine and resources for using the technology that weren’t cost-prohibitive–which, I might say, is more than the option of not using Kivy offered.

Still couldn’t manage to get things set up. I kept asking if people were having problems, so we could work them out. Nooo, we’re fine. Then–Why aren’t we working? The machine won’t set up! I don’t understand git! I don’t have time to look at the tutorials you linked!

Fine.

So we’re here. I’ll try to make something worth learning the codebase to pick up.

So where have you been?

I took a month off of coding. I picked up my ukulele. I watched some anime. I went on a couple dates with my boyfriend. I hunted for apartment furniture. I did paperwork for the school I’m going to this fall (a real school this time). I played some of my Steam games.

Right after the PHP thing and the semester ended, I had a long weekend at my older brother’s house in Chicago. We’re usually pretty laid-back when we visit there. We hang out together, play D&D, cook and eat good food, do a little shopping.

But my brain was still set on programming. It was like when you fall asleep reading Shakespeare and wake up thinking in iambic pentameter. (Anybody else? No? Anyway.) I brought Clojure for the Brave and True and kept trying to set up Emacs. I had gone crazy. It kind of felt good. Fortunately, Emacs was throwing a fit (looked like something with their network?) and I soon gave it up and rested.

I think it’s about time to return to the crazy. I have other stuff that needs to be done–there’s a math placement test I’m not looking forward to, for instance, but I should take it sooner rather than later so I can retake it if I’m not happy with the score. (You can retake it. It’s almost like this school is actively trying not to rip me off.)

But I do intend to keep my word and do some work on the mobile app. I’m working for free, so I’m choosing when to work, but I’m going to at LEAST get the documentation up on the GitHub repository. Then it can be forked and worked on at others’ leisure. (Yes, we got permission from the customer to use GitHub.)

I also kind of want to write a forum, and try to structure it to welcome nice people and discourage jerks, à la Jeff Atwood‘s various advice. I don’t know if that’s ultimately going to happen this summer though. We’ll see.

And I still want to learn Clojure. I also have a used copy of K&R C on my desk right now (a surprisingly small book!), but it’s going to wait a while before I get to it.

So what’s up with the new school?

I’m going to University of Northern Iowa. I feel comfortable saying that because the school has a fantastic reputation–I’ve heard dozens of people say great things about it, and nothing negative. That’s crazy. My old school couldn’t get that if they bribed the whole town.

I’m going part time to start off with, to see how difficult the classes are. I have this nasty habit of taking on more work than I can handle. I get excited about things, forget to say no, don’t know my limits too well (haha), and end up doing stuff like learning a programming language in a weekend and flushing the caffeine out of my system for the next week.

I have an apartment, which I’m moving into in August, and I have all my furniture because my mom subscribes to a local estate sale mailing list (an actual snail-mail list!) and we got a ton of stuff way cheaper than I thought we could. I even have a real couch! Okay, it’s a loveseat, which is like 2/3 of a couch, but still! I have a dining room table! I have most of my kitchen!

Oh, and the place is cat friendly. Jake, my Egyptian Mau, is coming with me. Egyptian Maus are kinda like tabby cats, but with some quirks. They’re patterned with more spots and fewer stripes. They tend to be possessive of one particular person, the hairs in their fur are individually striped, and they’re #@%^ fast and muscular–like, this cat has abs. I’m Jake’s person, so the mayhem that would ensue if I left without him… well, there’s this potted plant in the living room, and whenever he’s really mad, like when we were traveling to visit colleges and I left the house for a few days and left him behind, he pees in it. Right in front of us. He knows what he’s doing. If I left for college without him, the plant would probably die, and he’d have to find something else to do. We don’t need him to get creative.

That reminds me. I need to buy a philodendron before I leave. With a big dish under it. Just in case he gets mad at me.

I think that’s about it. My next big engagement is college orientation on the 22nd. Until then, this is a good enough update, so I’m finally done with this post.

 

Edit from the next day: That server-side scripting class with the PHP that I thought I’d barely passed? I just checked. My professor gave me an A. And I mean he gave me an A. Literally all my assignments were late, and I completed just enough of them to pass percentage-wise. He knew everything that was going on and why I was struggling so much, and he must have poked a loophole in somewhere.

I don’t know what to say.

Advertisements

4 thoughts on “Back to crazy

  1. Hi Rebekah,

    I discovered your blog a few days ago via ESR’s website; I’ve read through several of your posts and I just wanted to drop you a line and say how helpful they’ve been to me. I too started programming with HTML fairly young (I was 15 or so) and then went to college to study computer science. By the time I was a junior, the structure of school, even though it’s a good program at my university, had essentially killed any desire I had to work with computers. It was kind of a rough time for me in general, and I think I might just be better suited to learning this stuff outside a classroom setting. Anyway, I just graduated (NOT with a CS degree), and now, ironically, I seem to have rediscovered my once compelling urge to hack stuff. Your blog has been very encouraging and motivating for me to get back in the saddle, not to mention informative as I take the plunge into Linux. So thanks!

    Also, I can totally relate to being the only girl in the CS classes and the occasional target of sexist pigs. So irritating. Good luck at the new school!

    Like

  2. You ever read a blog and really empathise with a person? Virtual supportive and encouragement vibes, or something. Badly engineered education + sensitive engineering design sense + depression is not a fun combo. But it sounds like you’ve gotten through the really bad bit, at least.

    And let me know, once you get back to coding, whether you ever want someone to rant at or work with. I’m still learning, but damn if it isn’t easier to do that when you’ve got something to make.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s