How to become a programmer

In the last couple of days I repeated this more than four times, so let me post it here for any future references.

Two points for those who want to become a programmer.  First, there is no lack of information these days. There are numerous tutorials online and books in print.  There are magazines, classes, mailing lists, search engines, and everything and anything you need.  But all that information won’t make you into a programmer.  In order to become one, you have to program.  There is no way around it.  You have to design your programs, write the code, debug it, test it, document it, and maintain it.  And you should also read good code that other people wrote.  There is no lack of open source projects these days – take the most popular ones and you’ll learn a lot.

Secondly, among all those available resources, I can suggest two books and two books only.  If you read and study both of them, you won’t need to read another book about programming your life time.  The first book is “The C programming language” by Kernighan and Ritchie.  This is an all time classic.  The second book is “Programming Perl” by Larry Wall.  This is a piece of modern literature.

Your own compiler – should you or should you not?

Joel Spolsky shares why they have their own compiler and how long it took them to write it.

Most people don’t realize that writing a compiler like this is only about 2 months work for one talented person who read the Dragon book.

While compilers seem like a thing of the past for many in the industry, I find it not to be so. Recently, I was participating in one project that had to do a lot with web, and web data aggregating. Somehow, we almost ended up writing our own compiler. The problem was tough and there seemed no other way to solve it. Unfortunately, the project took a different path and died later.

Also, looking around with a bit wider open eyes, I’ve realized that there are quite a few people working on compilers now. One of the big companies is, of course, Google. They’ve recently released their tool which takes Java code and compiles it into AJAX-ified HTML, CSS, and JavaScript. And although I haven’t tried using it yet, it sounds like a really really really neat solution. Developing in AJAX is a pain. Coverting all the pain into machine’s work seems like a sensible idea.

Technology related reading – Steve Yegge

I’ve been pointed to the (now abandoned) blog of Steve Yegge way too many times. But for some reason I never read it. Maybe it’s the look of it. Maybe it’s because of the lengthy articles. But that’s a fact – I haven’t read a single post there until today, desipte the URLs being saved in those many places where I look for stuff to read.

Steve Yegge worked for several years (7?) at Amazon.com and last time I heard is still there, being a development manager for internal Amazon stuff. You can read more about him here, if you wish. By the way, he has also started a real blog too.

Anyway, today I discovered his excellent writings. It’ll take me some time to go over all of them, but here are the few really good ones from those that I’ve read today.

  • The Nonesuch Beast – rant about some irreducibly complex problem domains that people think are “simple”.
  • Practical Magic – thoughts about what a programmer is allowed to get away with not knowing.
  • Saving Time – rambling montage on productivity, emacs extensions, and automation habits. MUST READ.
  • The Five Essential Phone-Screen Questions – an exposition on how he personally conducts the first 10 minutes of a technical phone screen.
  • It’s Not Software – an essay about differences between traditional software development and creating software services. This one is an absolute MUST READ.

There’s more, of course.

All software has bugs

Anyone who had ever wrote more than 3 lines of code will tell you any time that all software has bugs. That’s just the way it is.

And while I don’t need any reminders of this fact (mainly due to me writing a lot of code at any given week), I got one special today.

A SPAM comment was posted to this blog, although you haven’t seen it because it went to moderation, that was clearly a result of a bug in SPAM software. The message contained a long list of phrases like ‘Thank you’, ‘Very interesting’, and ‘I bookmarked your blog’. Obviously these are intended for link SPAM. But they were supposed to be used one at a time. Oops.

Threaded dreams

There is an urban legend that drinking tequilla before going to sleep will guarantee you some really cool colorful dreams. Unfortunately, that’s more than an urban legend. I’ve tried it myself several times and it never worked out.

But another thing that I’ve tried myself and that worked out just fine, but which I haven’t heard anyone talking about, is threaded dreams.

What are threaded dreams? Well, threaded dreams are those that you (or should I say – I) have after programming threads or forks too much. I’ve always had a suspecion about the existance of threaded dreams, but I never had to program threads often enough to notice the trend.

This month though confirmed my suspecions a few times in a row. Two of these dreams were particularly interesting.

Continue reading Threaded dreams