Context overload
Over the past 6 months I have been working on a crap load of projects in several different languages (C, SmallTalk, Lisp, Ruby, Python, Erlang), some client work, but mostly open source projects. I love hacking on all kinds of cool projects and languages. I believe it is very important for an engineer to look at languages as just a tool for solving problems and should be learning a new language each year. For someone like me who loves languages this is not a problem, but there is a cost in working on several projects and languages, the cost is depth of knowledge. If you are working on too many things at one time your depth of knowledge in one area becomes vary shallow. There is only so much time in the day to read books, follow blogs, check out open source projects, and hack within a particular language. So you tend to tread very lightly within each project/language. It is funny that in my personal life I get myself in this type of context overloading, because in my professional life I am always telling programmers on my team to only work on one thing at time because Context-Switching does not work very well on projects. In those situations I am usually referring to only assigning one task at a time within a particular project. But this effect can also happen if you are context-switching between several languages, I am currently switching between 6 different languages, which is starting to make me feel more like a generalist then a specialist.
To solve this problem I am going to try and work down to just two languages for the rest of year. Now of course if a client calls me up with an issue on project I will need to work on it, but I am more speaking to my passion projects.
So what languages? Probably Python and Erlang. Python because I love that language and I have some more Django & Demisauce work that I want to work on. Erlang because it is new and fun and I have been hacking on something that may become open source soon. Although, Erlang has a large learning curve, but we will see how that goes.
0 Comments
Post your comment