I guess a lot of programming lovers are into development on smaller platforms. I certainly am one of them. I usually speak of work Iâ€™ve done on actual programs when in actuality, there are a lot more smaller pieces of code that I write that never get shown off publically. Most of them are known to a select group of people; the ones who are meant to find use to it.
Not many know this but despite mIRC scripting being non mainstream and not a perfectly good platform to do a lot on, I spend a lot of time (perhaps more than I should) working on it simply because its fun. It might be because I do spend a lot of my time on IRC on a certain network for helping users of a certain software :P I have been battling with myself to make the scripts (for myself and maybe even the ones for others) Iâ€™ve written public but I never managed to win that debate.
Another such example is my work in PHP. I am not much of a web designer but god knows, Iâ€™ve tried my hand at it :) I do however enjoy the occasional web development most of which arise from a need to do something. One such example would be a web scrapper I developed to get information about future Manchester United matches. I was on the brink of making it SMS me results and notify me of future matches but then my source, the Manchester United Official website decided to change its data format. A small fix would bring things back on track but with 2 matches left in the season (one league and one Champions League final) I didnâ€™t see any point in doing so. I was planning to expand this and include feeds for Real Madridâ€™s matches which my dad follows along with league tables for both the leagues but all of these are things that will remain known to only a handful of users (at the moment, 3 to be precise)
I have spent most of my spare time in the last 2 months working on Project Euler. I havenâ€™t written many solutions since mid way April when college exams began but that is where I have spent at least a couple of weeks of good development time. Why? I like solving computational problems. I enjoy finding efficient solutions.
The popular view (at least here) is to judge a developer on the basis of his performance on the work he has done. Now my discussion today is limited to students. One (commonly used) yard stick (at least here) would be the number and more importantly the quality of projects one has worked on. People judge the grade of the work and things such as the technologies used. Also, the technologies one is familiar with is also granted as a plus.
I for one, find this extremely flawed. The above yardstick doesnâ€™t go too well for programmers who spend less time developing full fledged software and are more into component based development. For example, writing a script in mIRC where you need data from an application running on your machine would require you to make a dll to get this data for you. Thus, what seems like a script in mIRC is actually a script along with a dll probably made in something like C++ or Delphi. The number of technologies one is familiar with does not show the level of fluency and in depth knowledge.
This â€œmethod of judgingâ€ I speak of is one used when you donâ€™t have direct physical communication with the person in question or when you have to have a first glance impression of someone. Sure, first impressions are quite often incorrect. But given a choice, wouldnâ€™t you want to make an accurate judging of someoneâ€™s skill at first glance. So if you have limited access to them, say you only hold to their resumes, how do you judge them?
Which path of developing should students choose? One path would certainly be to dedicate myself to making big time projects; applications that would have wide scale appeal. Another would be to work on those projects as them come but along side work on small scale pieces of code. The latter allows a developer to indulge in what he enjoys until he strikes and idea worthy of pursuing. If a potential employer asks you of the things you have developed, small scale experience in the above stated platforms wouldnâ€™t have too much commercial application (PHP yes, but I certainly am no expert. I could be with a bit more practice :) mIRC scripting is certainly non commercial).
How do you judge yourself as a developer? Especially when you are a student who spends his â€œfreeâ€ time writing code, what parameters do you use to judge yourself. One (commonly used) yard stick (at least here) would be the number and more importantly the quality of projects one has worked on. But doing so, a developer who works on various non-commercial platforms wouldnâ€™t rate too high.
I for one feel that this yardstick isnâ€™t fair. I know a lot of developers who work on small time components which are crucial to achieve targets. Others work on different platforms, quite a few of which arenâ€™t all that commercial. Most of them are really talented and when needed they will move to any necessary platform and get the job done (which is what a good developer should have the ability to do; take concepts and apply them to different situations). Sure, a lot of young coders out there are into popular platforms such as Ruby For Rails, Perl and Python. Just because others arenâ€™t, does that make them any less of developers. Is it a combination of the type, size and quality of projects along with the platforms youâ€™re good at that make you a good developer (basic versatility) or is it something else?
How would you describe a fresher (student with experience working in an organization) as a good developer? If its past records are the way to go, how much does experience in non-commercial platforms weigh in against commercial ones?
Thatâ€™s 5 questions Iâ€™d like people to answer. I had a discussion along these lines with a friend recently and thought I wondered what others felt. Do let me know what you think :)