I have been programming since the age of 10 and always enjoyed development ranging from high level architectural planning to low level programming and reverse engineering. I think programming is a kind of creative art and this is what I enjoy(ed) in it so much. Getting into the flow and implementing my previously well though-out evil plans or walking in the park and thinking about problems and solutions or simply trying/learning new things.
However, this world is quite far from being ideal so there are several problems to face as a programmer:
Nearly 100% of the companies have a system in place which promotes âladder climbingâ. Universities âproduceâ career programmers because most companies need it and built an environment to make use of this. I think the barrier for entry to a programmer job is quite low so you can get in regardless whether you are naturally good or just a career programmer and above the barrier you are measured by the âyears of experienceâ when it comes to ownership and to some degree compensation. Creativity and brains arenât needed: 99% crap shovelling and production of glue code (this is usually called a âsolutionâ with officially correct spelling). Implementing systems again and again with the same well known patterns/skeletons and bugfixing unreasonably complex and buggy codebases.
Itâs quite demotivating when someone with much worse tech skills has the decision power and earns twice as much. I had to face things like this quite often early in my âcareerâ about a decade ago. Being a talented programmer isnât enough. You have to be good in âbusinessâ too, otherwise you will be exploited and/or ignored. I thought by proving myself to be good and useful I would be rewarded. Huge mistake made by a lot of techies. In reality they reward only your negotiation skills. For this reason I donât care anymore. I interview for a well paid job or contract, then 9-5 and go home to work on my own business. I plan to free up as much time in the future as possible, maybe then I will be able to do the things I like: for example programming, picnic, reading, sunbathing, etcâŚ
While I managed to pick up these stupid âbusiness likeâ skills I canât enjoy my âcareerâ that is forced upon me. Hobby programming is about creative art and freedom. Jobs in general are about generating money (or âvalueâ), meeting deadlines and playing stupid corporate games, shovelling crap. Develop negotiation skills, build an image and reputation as a recognized âexpertâ and then you can make use of your job or contract at least as a money generator. Perfect for a career programmer especially if we are talking about a nonconformist one. If you are a talented programmer and want to enjoy programming then this is probably not for you. Start a hobby project and you might create the next popular framework that will be used by stupid companies (oh, sorry - forgot that you have a job and donât have time for programmingâŚ).
During the last decade I had the luck to work only on a single project where tech talent was really rewarded and valued (not only with good compensation, but also with trust and freedom to act). Such companies and projects are probably rare. In my opinion most companies donât need a talented techie who cares, but donât even deserve one.