I went to re-read the stuff I write on this blog and yes, I tend to lean toward the negative side of things. The world of programming is complicated, it is stressful, it can be depressing, but it is also the best industry to be in.
I was angry when I left my last job. I wasn't at my employer. Maybe because it was too good to be true. It was too easy for me, I didn't make any effort and no one complained, as a matter of fact the less I did the more I was liked. I love the industry but I felt the need to step away for a minute and reassess. And today, 11 months later, I can tell you that working as a programmer is the best thing that I ever did.
I complain a lot, and I hope this doesn't come out as a complaint about my complaining but I have to admit, I am hopeful when it comes to technology. I spend time on Stackoverflow being frustrated by newbies mistakes, but it's not everyday you see an industry almost entirely based on communities.
If everyone were to become mechanics tomorrow, there will be riots. Politicians will create new laws against the movement (to protect their interests) and chaos will endure. But in the software world, in the technology world, we let people in.
If you want to be a developer today, as much as the world wants to institutionalize it, you can grab your phone and start learning. If you steer into web development, it will only be a matter of days before you can start. And that is if you have absolutely no clue how things work.
There is coding, and coding. One is getting getting your ideas out, seeing results. I love this part. This is what got me into programming in the first place. I was in my first programming class and in less than a month I had a website. It didn't matter that I didn't know how to make complex stuff and it was very hard to maintain, I could see the results.
The other, is coding for the sake of coding. It's following best practices and making sure your application is as efficient as possible even though you don't have an application. It's kinda like masturbation.
Premature optimization, memorizing key terms no one cares about, stressing people out during interviews. All that is a reality but we are lucky that in the technology realm there is no such thing as a lasting standard.
Even Google decided against making interview candidates go through the usual puzzle non sense. We are in a rapid changing industry that quickly filter out things no one cares about.
Standards — Xkcd
I won't be surprised when I show up at an interview one day and they just tell me I got the job, cause they already saw my Stackoverflow profile.
Programming is not so much fun if you take it too seriously. Programming is not a science, you have to treat it the same way you take a selfie or draw a painting. If you made it through a few classes on Coursera or code academy or khan academy or lynda.com, it's time for you to experience the real world. You might experience a few set backs but if you are in for the long run, programming can be fun.
To top it all, programming is free. You don't need to spend a dime to make an application. Just your time and the return on investment is exponential. If I counted how much money I spent to take 2 programming classes in college versus how much money I made since then, well let's just say I didn't spend a lot.
When you program for years you will naturally want to build more serious stuff, as in more complex application, it can still be just a talking cat. The process becomes more complicated. You have to learn about coding efficiently and the best practice stuff we programmers religiously instill onto others. Those are necessary evils, but they are evil only when you are new and don't understand them.
Obviously, it makes more sense to write a query that takes less than a millisecond to run then one that takes 500 milliseconds. Why? because the first one can serve thousands of users per second if not more. But there is no point over-optimizing a website that is visited by you, your mother, and your favorite cousin. All you care about is that the people that come to your website can consume the content.
The first time I got a large amount of traffic on this blog, the servers caught on fire and I had to send letters to the families of the victims. No that didn't happen, the website crashed every 20 minutes and I tried to make optimizations while it was crashing. The next day, when the traffic settled, I did a post mortem to identify which parts of the website were the bottlenecks. The next time I got a burst of traffic, I didn't even notice it.
When you get your code to run, when you get your website to deploy, when you get to see people reading and commenting on your website, when you see your app being downloaded, when you see someone using a product you made, that is an amazing feeling.
And it doesn't have to come with the stress that is usually associated with programming. You will hear a lot of people complaining about crunch time and the other things companies do to their overworked employees. The good news is, you don't have to settle for a job that doesn't know how to treat you. We are insanely lucky at the time because as a developer you can easily find a job.
You don't even need to have people vouch for you, you can create your own website and show your portfolio. An ex employer can say you are the worst human being, but your future employer can still see the work you did on your portfolio and go with that. (it happened to me)
If you are here because of President Obama or Michael Bloomberg, or you just want to learn how to code, well I try to do my part and teach How to build an entire website from scratch. There are many aspects of the technology that are usually missing from tutorials, in order to not make that mistake, I record myself building the entire thing. You can watch it in your own comfort on YouTube.
Programming is one of those things we call work but it is actually fun. Yes, it is exaggerated in movies but it is still fun. I can't tell you all the perks I enjoyed while working as a programmer without making you jealous. But I can tell you I enjoyed my 11-5 with an hour and a half break in my last company :)
Learning programming is useful in every single industry. Whether you are an accountant, a marketer, or a plumber, the skill will help you improve your job. So I invite you to learn as much as you can and I will do my part to teach you what I can.
Only in our industry you will hear this:
[...] I set out to change that. Companies would no longer be able to select me from a generic lineup of candidates. Instead, I would select companies. Companies that I respected, companies that shared my passion for software. Armed with thirty years of hindsight, I would no longer let random, chance opportunities determine my career path. I will choose where I want to work.
Let's make a difference while still having fun.