Motivation
So I want to get into Software Engineering because I really like computers. Basically, the train of thought goes, I like computers to I like math to I like messing around with really theoretical concepts so therefore I should like computer science because it’s all three put together and software engineering is computer science plus engineering principles, so I can also be called an engineer now, too!
One of the requirements for the software engineering program at Waterloo is that you have to have some sort of programming experience. Not just any programming experience though, but in modular programs. At first, that freaked the hell out of me because at the time, my only understanding of modules were those huge things that could be considered programs on their own in Python. Thankfully, the rest of the sentence stated that it could be shown by high performance in a CS class (like ICS 3M1), which I have, significant work experience
Yes, I have a 96 in grade 11 CS
So some years ago, I resolved to learn at least one language. Of course, guess how well that’s going. Yes, I do have some rudimentary knowledge of Python and I have about an hour’s worth of bash scripting knowledge. The problem I have is that I can’t get past what I already know. I have yet to code something of worth and I have no ideas on how to do that. Every project seems to be incredibly daunting.
Also not helping is the amount of things that I would like to learn. I mean, I installed Linux for the purpose of having an easier to code for platform, and it is much, much easier to code for a Linux box. The tools alone are much better. I mean, try installing Perl, PHP, Ruby, or Java on a Windows box. Mindscrewing, that is.
So the pool of programming experience I would like to have is:
Python
I could somehow try and continue with Python. It’s a good choice. I’m already familiar with it and some more advanced stuff includes some OOP which I should have under my belt for Java, which is used in first year programming courses all around.
AJAX
Ah, Asynchronous Javascript and XML, the new kid on the block. I would like to learn AJAX, since that would get my Javascript going again and I guess I’d have to learn how to DOM script. AJAX would be useful for web programming, which would be nice to add to my repetoire of XHTML and CSS already.
PHP
I’ve been thinking about doing PHP for a while. The problem is that I have no idea where to start with PHP. Good thing I’m on Linux and I can just emerge PHP. I think it’s near impossible to install PHP on a Windows box. PHP is also a good choice so I can hack away at the many PHP webapps that are already out there.
Ruby
Ruby is starting to entice me because of all the hubbub going around because of Rails. It’d also be nice for web programming, but I’m really unfamiliar with it, although from what I hear, it seems a lot like Python.
Perl
The only reason I can see behind using Perl is for system administration. Is there anyone, besides those fools that make Movable Type, that uses Perl for anything on the Internet anymore? The problem is that I don’t need any system administration things right now. Besides, I have Python.
bash
bash is in the same league as Perl, except it seems easier to pick up. I don’t know, right now, everything on my box is fine, but I guess this is one to learn if I eventually start breaking some ground into programming so I can have one of those cool automated Linux boxes that upgrades itself and sends the log to the admin’s e-mail.
C
To be quite honest, I don’t really want to learn C until maybe third of fourth year, where they do crazy things like build OSes. C isn’t really a good learning language because of the awful lack of string support that I’m used to with Python. The only reason I chose it last year was because it was that or VB.
Java
I could get a head start on Java, but it seems hard to wrap my head around, with all of that class stuff. On the other hand, it’s likely that most of the people that get into the program will have some sort of experience with Java already, since it’s quite a popular language.
C++
I hear that C++ is just an OOP version of C and that Java is much better than C++ for what it’s supposed to be used for. Ultimately though, I think C++ is a lot more like C than Java.
So actually, I have about a month or two before I hand in my AIF and impress those people at Waterloo with my lacking knowledge in programming. Still, I’d like to have something to work on.
That’s another problem. I don’t have anything to work on. I’m tired of those excercises that are just for the sake of excercising. Of course, I will probably have to do tons of those eventually, but I’d like the chance to work on something useful. Problem with that is that most of the things that are useful are already done, unless it’s something crazy that needs years and years of work and experience.
Suggestions, anyone?
Tags: Coding, university, Waterloo

JAVA! only becase i’m learning it too =P
java is interesting –
i know i sorta suck as a teacher and all but hms… i’ll try explaining it to you somehow :p