This site currently requires Javascript to function correctly. This will soon change. In the meantime, you can check how to enable Javascript in your browser. If you don't want to use Javascript, please come back from time to time to check our progresses in that department.

How to know you’re not a beginner anymore

Once, at a conference, someone bragged to me that they were really pleased that their entire development stack was implemented in one language. I can see how this would be a good thing in certain circumstances. What it’s not good for is your breadth as a programmer. It’s good for your core competency of the syntax of a particular language, but it’s not good for your problem-solving brain because it only teaches it one philosophy or methodology. When it comes to JavaScript, for example, a big revelation as to how I thought about solving problems came when I realized how much JavaScript really is a functional language in disguise. I wouldn’t have noticed this as early as I did, though, if I hadn’t exposed myself to LISP before.

In the last year I’ve written code in C, Objective C, Ruby, MUSHCode, JavaScript, Lua, and Java, and so I tell myself that I can say I am not a beginner at programming because I can demonstrate a core set of fundamental skills that transcend language. This was a really satisfying moment because I’ve been trying to think of better ways to represent achievement to people who are learning to program. Sure, success is getting your program to run but eventually that’s not enough and you start asking yourself how you can make it better. That means knowing how to write good code which is really, really non-obvious to someone who’s just come from their first steps as a beginner. Similarly, I wondered to myself by what criteria I could say I’d mastered ‘beginner’ programming topics so that I could define them and the goalposts for someone else. I think that we can say that someone is no longer a beginner at programming if they are not afraid of programming in another language, and maybe on their way to being a more sophisticated programmer for not being averse to it.

No recommendations yet