Back to School: A Journo Returns for a CompSci Degree

I hate poseurs. [tweetmeme source=”jolieodell” only_single=false]

I hate “social media experts.” I hate giggling idiots trying to make money off the Internet when they have no idea how any of its applications actually work. I hate tech groupies. I hate tech scenesters.

I also hate hypocrites.

So I’m going back to college.

Starting in 29 days, I’ll be sitting down for eight hours a week to study object-oriented programming. I started trying to learn Python by reading the O’Reilly book, but that method wasn’t cutting it. I was highly motivated, but I wasn’t making the time, I didn’t understand some of the basics, and I didn’t have any structure to my study. I decided the best way to learn how to be a computer programmer was to do hard time, a.k.a., enroll in an associate’s degree program for computer science applications and development.

And that’s what I did. Tuition’s paid, classes are registered for, time off work is approved.

I’ll be studying C++ to start, then Java, PHP, Ruby, Perl, JavaScript/AJAX, and XML.

I realized I’m far too passionate about the Internet and technology to know as little as I do about computer programming. I’ve been on the fringes of a culture and a profession that both fascinate me, but I’ve essentially been just like the “groupies” I say I despise.

No more groupie-ism. Time to learn; time to do.

If there’s a subject you’ve been wanting to learn more about, I hope this post serves to encourage you. At most colleges, the fall semester starts in about one month; tuition at a community college can run around $100 or less per class. What’s your excuse?

27 thoughts on “Back to School: A Journo Returns for a CompSci Degree

    • Aw, thanks Jesse!

      I’ve always longed to be smarter than I am. I guess education is the key to that, isn’t it?

      You should definitely take some J-school classes. It’s truly fascinating and inspiring!

      • I always hated writing in school, but since I started blogging and writing books, I’ve always wondered if rather than studying computers I should have studied J-School instead. My English teachers always thought I had a knack for writing and I never understood it.

        As soon as I get some time, that might be a fun experience. Knowledge is so important, and school gives you that foundation that no other source can give. Good luck!

  1. Learning C++ first has always puzzled me. Sure, it is what most of the parsers/compilers for the high level languages are written in, but at the same time, there are very few webapps written in C++. It cool that you are learning more than just Java in school, though-most Comp Sci programs focus on C++ and Java, and leave the web languages for people to learn later.

    Did you try anything other than the O’Rilley book for python? I am using several different EBooks to learn it, and they seem much better than the O’R book is for learning. (A few months ago we were talking about learning python on twitter)

    Still, all the best for you. I am going to end up graduating with degrees in marketing and political science, with a psuedo-minor in comp sci. I did it for the same reason that you are.

    I am stoked to watch your transformation. Maybe we could do a chat sometime in the future (CES 2011?) comparing school-taught (you) and self-taught (me).

    • Interesting that we’re both pursuing the same end through slightly different means!

      And yes, I had the same original thought about C++. But I’ve got to start somewhere, and for whatever reason, C++ seems to be the most common starting point.

      • It wasn’t until I was out in the wild with my degree in hand that I realized the real reason C++ is a popular starting language in many Computer Science programs. The secret is that they use C++ to weed out the wanna-bes and the also-rans who probably don’t have what it takes to be computer programmers.

        Wait until your first class discussing pointers. Look around the room for any scared or confused faces and see how many of those people make it to the end of the semester. C++ and the fundamentals it teaches are a filter to keep less than qualified students from wasting their own time and the time of others.

    • Whilst I’m sure there is some debate around this statement, I don’t think many of the common Web languages give a proper engineering education – they simply make you a proper web developer. I wasn’t really sure of it until I started interviewing a lot of engineers at companies who didn’t have backgrounds in C/C++. I’m in full support of people learning C/C++ as amateur developers because of the fact that it does end up making you a better developer in the long run – by the time you touch something interpreted like Python or PHP, you understand what it is that the language is doing at its core and can further optimise your web apps.

      One of the things I’ve noticed most about programming in C/C++ that I think is useful for compsci n00bs is its low-level facilities: having to manage your own memory and understanding the representations of “complex” data types such as strings and vectors gives you a perspective on machine code that learning PHP out of the gate never will. Chances are that most developers that learn the higher-level first never will touch low-level facilities, but if you ever have to develop applications at scale, you’re going to have to understand how the lower-level works.

    • I completely agree with Eston.

      Many people with a focus on web technologies will start by learning PHP, Python and Ruby. These languages allow you to build awesome applications.

      But as stated by Eston, these languages do not allow you to learn the fundamentals of data representation and processing by the machine, which become critical as soon as you need to create an application that needs to scale, and for which performance is key.

      By learning C/C++ and algorithmics in the first place, you understand the underlying logic of the programming language you are using, and understand how you can address any complex needs or fine tune up your applications when necessary.

  2. I dropped out of school after two years. They were charging me $15k a year to use outdated technology, learn poor programming practices, read abysmal textbooks with a wide swath of spelling errors and examples that wouldn’t even compile, and take gen ed classes that were laughable. I went to Borders and dropped a few hundred dollars on quality books (many of them from O’Reilly) and busted my butt until I got a job doing what I wanted to do (ah, the good days of PHP and MySQL). That was about seven years ago. I’ve never looked back.

    Also, from what I understand, Comp Sci degrees are focused on computational theory and algorithms, which don’t seem to be exactly what you’re about.

    If you haven’t already, you might want to plug in to local use groups for the languages you’ll be studying. People there will help you quickly get a leg up.

    Best of luck!

    • Thanks for the advice! I definitely plan to reach out to the community as I learn.

      I checked out a couple local programs and went for the one with the greatest emphasis on learning programming languages (as opposed to maths). At the very least, I’ll get to have someone hand-hold me through the basics of programming/scripting languages — something I’m willing to admit I find difficult at the outset.

      And if a course turns out to be sucky, I only wasted $75 or so.

      • I would love to know which program you’re in as I’ve been looking for something just like it. I have years of field experience in lots of different languages, platforms, technologies, etc, but nothing formal.

    • I think it’s funny how I’ve got this browser window open on OReilly.com with a shopping cart that has the same Python book that convinced Jolie to take these courses. I read the book reviews that say how it’s too thick being that it’s over 1,000 pages. Well, I just invested heavily into a new development workstation and I want to learn something new, so I think I’m up to the challenge!

      Regarding what ncloud was saying, I also skipped out on getting my degree, but eventually I hit a bunch of road blocks where a bachelor’s was required either to get a supervisory or more permanent position. It took me 11 years, but I finally wrapped things up at a night school, and now I have one more year to finish up my Master of Information Management.

      My experience during the first two years of computer science was essentially the same: lots of focus on theory, math, and algorithms. The night school, located on the same campus as the day classes, was really quite a different experience.

      With computer science, I get the feeling they want you know the really difficult concepts so that you can say you’ve “seen it all,” and then gradually adapt to other languages as time goes on. In this day and age, you pretty much have to be multi-lingual if you’re into software development. It’s even worse if you write Web apps. From the laundry list displayed in this blog post, I can say I’ve worked with PHP, Perl, JavaScript, AJAX (via jQuery), and XML.

  3. Congrats on the enrollment. I can totally relate to being passionate about tech but feeling like you should know more. CS is what I’ll be finishing my BA… maybe I’ll see you in the classroom one day.

    On a side note, sounds like community college classes are quite a bit cheaper over there in Cali. They’re about $300-400/ class. Lucky you

  4. when you get to ruby, two of the most helpful resources for me have been PeepCode and an e-book called “Why’s Poignant Guide to Ruby” – which is written like prose, rather than dry documentation.

  5. I’m impressed. It’s rare to find someone who is really willing to step up and commit to doing something with a large time investment.

    Best of luck.

  6. Best of luck! I’ve tried to learn various programming languages over the years, but never with much success.

    I’ve thought about going back to school various times, but right now I’ll just stick with teaching and writing.

  7. You rock! I love that after you tried learning on your own and realized that just wasn’t working you didn’t give up. I’m excited to see what added insight you’ll gain with programming skills under your belt.

  8. Hi Jolie,

    This is an awesome initiative. I often get the same feeling. Lot of people not understanding what they do and trying to surf on a trend to make as much money as they can. Presumably their only driver and that’s called bad opportunism.

    Many people have entitled themselves experts, maven or similar superlatives while they actually had no experience or little knowledge about what they were doing. Not everyone should be a code warrior, but each in his field, should have sufficient knowledge to support his company’s activities or his cutomers.

    You’ve chosen your way, in alignment with your passion, investing yourself with great efforts into achieving it and that’s really a proof of high willingness, commitement and dedication.

    Good luck Jolie!!

    PS: Just as a side note, make sure you also take some algorithmics classes. This will bring you the fundamentals of thinking and logic for programming. Once you have the required structure in algorithmics, it’s far easier to learn any programming language.

  9. It seems like it’s becoming a necessity even for the casual net user, if they’re serious about there own work & that work is being done, more and more, via net.

    Whether that work is journalism, creative writing, comics or even fine art, understanding how to use the new tools to reach your community has become the norm. Getting on board is just good thinking, and those who aren’t taking the time may regret it sooner than later.

    Whatever method someone chooses, the goal you’ve set is a good example for everyone.

  10. First off, congratulations on continuing to evolve your skills and branch out into an entirely new field. It’s something I’ve recently begun to do for myself (iPhone Development) after a little stagnation that crept in over the years. You’re already way ahead of the curve than a lot of people with this commitment.

    I’m curious though why this course seems to pack in so many different technologies. PHP, Ruby and Perl? C++ and Java? Hopefully they pick a solid favorite in each category and mention the basics of alternatives and then. Every language and framework takes a while to master, and if you’re new to coding in general, having to constantly rethink when it comes to the fundamentals of the language syntax and core system libraries is another big hurdle to put in the way. Perhaps the intent is to expose you to all of them, so you can make your choice of what to focus on, depending on what works for you.

    I suppose Objective-C and iPhone development is either too new or ‘unproven’ (in the eyes of the school) for them to offer it up. The huge benefit of picking something like Objective-C/iPhone, Ruby/Rails or Python/Django is that you can apply them immediately to an app or site that could go live right away and provide you with instant feedback (and of course, the satisfaction of seeing people use what you created). The support and developer tool ecosystem is huge for web and mobile apps. That’s harder to do with C/C++ or Java (although you could write Android apps for the latter).

    When I went to school for CS (which I ultimately abandoned before fully graduating to get a job in web app development) back in the early 90ies, the very first thing they told us was that they weren’t going to teach us all about a specific language or computer system. Instead, they wanted to teach us how to think as engineers, so that we could use that ability in a career that spans decades. And then they proceeded to teach us Pascal, but that’s another story😉

  11. HEY! Why, why, why am I the stinkin’ LAST to hear about these events?!?

    Congratulations! I am very proud of you. It’s funny that we’ll be in college at the same time. Let’s have a GPA challenge of some sort.

    You rock.

    XOXOXO

  12. You def could have learned all this stuff without going back to school, and you really wouldn’t have been a poseur. I studied business, programming and system’s analysis for four years (Part BBA and part BS in Comp Info Systems), and I did just as well before and since with books I buy and study alone. I learned no PHP or ASP in school, but I’ve rocked ’em a bit since. The problem? Structure. Pressure. Obligation. If doing it on your own means you procrastinate and create gaps, while school is your bread and butter, I can’t knock it. The money part stops me from going back, but I’d go in a heartbeat if it were free. I love school.

    I really hope you do well. Interestingly, I am going to be going for my actual CompSci minor next fall just for fun. I have to save up and wait, but it’s a certainty. I’ll be majoring in Biology (long story). My transcripts are new enough I can get out of all the languages, but the algorithm/math/logic classes will be ace.

Comment

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