The 5 year programming plan

I’ve been trying to learn programming for a number of years and I really haven’t gotten too far. My first brush with programming was with BASIC and I never learnt much beyond FOR. My first real programming language was Java. I learnt some more, but nothing beyond simple inheritance. On the way I tried twiddling with C++ and failed miserably (I won’t go into details). The reasons for my failures were numerous, including bad teachers, bad syllabi and my own inability to settle down with a good text-editor rather than IDE-hopping. But enough is enough. I’m finishing school in a few months and then I hope to get a Computer Science degree in college. So I’m starting a 5 year plan to really learn programming starting now and going upto 2011 when I graduate.

Before I outline the plan, here are the basic premises on which the plan is based: I should learn at least one programming language and one programmig tool each year. By “learn” I don’t mean knowing everything that there is to know about the language, or learning all the available extensions and toolkits that are available. By the end of the year, I should be able to write significantly large program without having to lookup documentation too regularly. I should also be able to read other people’s code and understand what is going on without much difficulty. As part of my project, I’ll also be implementing at least one large project. As you may have realized by now, all this leaves room for a certain amount of ambiguity and interpretation, but that’s ok for me, because I think that it’s good to have some amount of flexibility in one’s plans. Without any delay, here goes:

2007

  • Languages: Python/Perl/Shell Script
  • Tools: Emacs
  • Project: A PIM with internet backup and synchronization

2008

  • Language: Java
  • Tools: Eclipse
  • Project: Undecided

2009

  • Language: C/C++
  • Tools: Undecided
  • Project: Perhaps some sort of Databsse application

2010

  • Language: Ruby
  • Tools: Rails
  • Project: Perhaps a reimplementation of my previous apps to a web framework.

2011

  • Language: LISP
  • Tools: SLIME
  • Project: Undecided

As you can see, there is a fair amount of stuff that is currently undecided. I intend to fill in the blanks as I learn more abouot the langaguages and programming in general and where to use what. Another thing that i should mention is that since I’m going to be using Emacs, I suppose I will have to dabble in Elisp a bit, but I’d like to keep it to a minimum until I actually start learning LISP. If you’re a programmer and have had experience with anything listed above, any advice would be welcome.

Advertisements

Published by

Shrutarshi Basu

Programmer, writer and engineer, currently working out of Cornell University in Ithaca, New York.

One thought on “The 5 year programming plan”

  1. Having taught myself how to program, I agree with your idea to do projects–the best way to learn is to do it. While books are nice, the best way I’ve found to learn a language is to start using it. It will probably take a couple of attempts (projects) for you to feel comfortable.
    Python is a good choice. Look at the schools you are applying to and see what language they use for their intro courses, you can even follow along in their weekly assignments (http://www.seas.upenn.edu/~cse120/lectures.shtml, for example).

    Honestly, once you understand one language well, learning the others will be pretty easy.

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