As with everything we all have to start somewhere and a colleague at work sent me this link which is meant to be more of a Joke then of how things are “The Evolution of a Programmer”
I have to say it did make me chuckle, mainly because how very true it is. From our early days with basic (Which I bet is something a lot of us started with, I certainly remember buying my first programing book on basic, which I sadly no longer have) I started out with Basic when I was 13 years old, and always remember one of the more geeky kids in my year building a messaging system in basic that ran other the school network (RM Dumb terminals using BNC Coax and everything ran on Windows 3.11 over the network) I remember winding him up by hacking bits of the code to do the opposite of what it was meant to do. Kept him on his toes, neither of us went to College or University but both have done well in our careers I believe he is now happily living in Mexico (Well that is what his face book profile says)
Any way moving on, there does come a point that all developers get to (Once they have moved past the Junior Developer stage of their career) where they are a Seasoned professional developer. As the link shows our code gets longer, as we mature and understand that we need error handling, code reuse and structure.
As the link shows out code can get even longer as a Master Programmer, but I think this is taking it to an extreme. I believe that once a Developer has become a Seasoned professional, they have a few choice on how their career can progress; I feel these are:
- Carry on as a Developer
- Become less hands on and more Technical / Design oriented
- Move to Management (Lead Developer / Development Manager)
Below are my thoughts on these options:
Carry on as a Developer
This is where most of us will either stay or dare I say it return back to, namely due to the lack of positions in the next two options. With the economy as it is, many of us may have to make that choice again. So I believe even moving from past this choice we all need to keep a hand in development, and this included learning new techniques, frameworks or even new technologies all together.
Become less hands on and more Technical / Design oriented
With all teams there needs to be at least one member of the team, that will concentrate on the Technical and Design of the application(s). Someone above all the projects to make sure they are in line with the corporate line. If you do find yourself in this position, never forget your roots. As you will never know when you need to go back down to the previous option when you need to but food on the table. Again this level will need to keep up with technology and techniques.
Move to Management (Lead Developer / Development Manager)
Now this is the one that I currently find myself. Having done the Junior Developer role, Senior Developer role, Technical Lead role. I am more hands off the code of late, but I will always try to pitch in where I can. Even if its with bug fixing, keeping a hand in the code that the team is cutting will help with a gauge of how the team are working. It also shows the team, that you know what you are doing and thus should help with the relationship of the team.
Again by keeping a hand in the development cycle will help when we need to bust our arses’ back down to being a general developer. Something that will also be hard for us all to do, and if you have got here before you should get here again (Long as you haven’t bull shitted your way the first time)
Of course there are higher levels to go to, like Head of Development / Head of IT, CTO or even dare I say it CEO (It could happen to any of us)
Having seen a few threads on the Scottish ColdFusion User Group of late, about retaining developers (Something that I will post about soon) I mentioned that any Developer worth their salt, should have more then ColdFusion to their Bow and this is backed up by Mark Drews latest posting, Before Mark posted this I have been thinking myself that I need to add more strings to my bow.
Now of course the issue now is which of the programming languages out there do I start to pick up on. Groovy / Rails / PHP / ASP / .net / Python / Java having done a Java course in 2006 and never really putting in action I certainly know that I need to learn something that I can then put into action. So being that I love using Trac I think I will start to learn Python. not only does this show that you can do more then just ColdFusion but you are willing to learn other languages and are also able to so.
Of course I could take up learning Flex / ActionScript / AIR again, I have a basic understanding of how these work; also I’m able to build small and simple applications with them.
I feel my skills are better spent with back-end technologies, and with Python in use with Google applications it makes the most sense to me.
This is something that I will try to post about on here, as I find my feet with Python, this may not be until the new year with the current project I’m working on at work. In addition speaking to some of the guys in my development group they also feel this is something worth doing in the idea of an additional language then just Python. I can see that even picking up another language it will help with coding ColdFusion as you would see other perspectives and ways to code something, be it faster / scaleable or even more robust.
With us going through an economy down turn, Christmas just round the corner and Adobe Max NA / EU / JP, we must be due for another round of FUD postings about ColdFusion and I thought I would get in early on this one, I don’t believe that ColdFusion or indeed CFML is for the Scrap heap, for the foreseeable future; but I do believe that as Developers we can’t rely on just having ColdFusion in our armory to call upon in these tough economical times.