a companion discussion area for blog.codinghorror.com

So You Don't Want to be a Programmer After All


#84

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.


#85

I started to really start programming at the age of 15. Before that I had barely fiddled with HTML and JavaScript, barely enough to make even a generic and boring site. From there, I was inspired by my older brother who currently is a Software Engineer at Shutterstock as he invited me to work on a React.js site. We played with React-Bootstrap and had a lot of fun bridging the front end and the Node servers we were using.

I’m currently pursuing a degree in Informatics with a Concentration in Software Development and a Minor in Computer Science.

I currently know JavaScript, a little Java, and have dabbled in other languages, and love making websites with HTML5 and CSS3 since it really has a lot of flexibility. I have used React and other things, but express.js and raw HTML/CSS is where my home is, currently, as I don’t have a real development job in college.

I really have to say, that after experiencing a few Comp Sci classes already, they are very boring and certainly not for the faint-hearted. These courses are so concrete and molded into just “PROGRAMMING”. To me, they are interesting and cool because it’s how my mind works and technology is my favorite way to express myself, but for anyone that hasn’t gotten into programming at all, or even slightly before school? Definitely depressing and mundane for most people.

To be fair, web development and server architecture is certainly very different from assembly programming and hardware development, but I personally feel that at least my school didn’t pitch Informatics properly.

The way they explained it is literally just, “Computer Science but with more Business.” At a very basic level, that’s kinda right, but it’s really not. At least at my school, this degree involves Web Development, UI Design, Server Architecture, Databases, Information Technology (IT jobs, like Business Systems) and even Graphic Design if you will. On top of that, there are the, what I would call, “Computer Science of Informatics” classes, which involve JavaScript, Python, and a few other languages used in Web and Server development.

The other major part is the involvement with business and current events. The computer science program here is very focused on just content while informatics exposes you to current events, business, and business/job opportunities.

At the end of the day, a Computer Science degree is far more involved and complicated as it involves a lot more mid and low-level programming, and then with Computer Engineering, being able to branch the Hardware and Software interface and learning about even more Calculus, Physics, and basically enough information to be an Electrical Engineer. It’s certainly not for most people. However, the Informatics/IT world is much more diverse and is a little easier to comprehend.

Believe me, I love learning about the MIPS architecture and how a processor works, it’s fantastic and answers a lot of questions I’ve had since I got into computers as a child, but I don’t really see myself doing that for a living. I would much rather develop a website or manage some servers for a large company.

There’s more than just programming at the low level.