Two weeks ago, the division of the IT department I work in had an all hands meeting to discuss restructuring and the general state of affairs within the division. All the directors and the VP gave a presentation. And our tech director showed us a video that featured him and the division that was produced by Microsoft to market its B2B solutions in software development.
The video had astounding production quality. It grabbed its audience immediately with engaging music, quick cuts, and sound byte friendly monologues. By the end of it, it certainly pumped me up and made me want to hit my desk and crush some code. Then I remembered that I was a software developer and my job is incredibly mundane. The director who was featured in the video also joked that "the video makes me look 10 times cooler than I actually am".
And then it hit me. I was seeing the "training montage" of software development. I'm referring to the unfortunate tendency of Hollywood to expedite the training process in a movie so that the main character moves up from scrub to deadly warrior with an inspirational montage of training and upbeat music. The fact that it always takes longer is never really explained to the audience, a point made brilliantly in this article where the author laments how Karate Kid and Rocky ruined the modern world.
I'm going to tell you straight up that, if you can get it, a software development position is one of the plum jobs still available today. And there's incredible demand for people who can write software. The hours are good. The pay is good. And your team is usually good too, because incompetent software developers wash out pretty quickly.
The only problem is that it is harder to become a software developer than, say, a waiter. If you don't have any formal education in the field in high school or college, becoming a self taught programmer is extremely hard. Even if you're being taught in school, you won't be able to breeze by the classes. It takes a decent amount of intelligence and discipline to understand how to evaluate algorithmic performance, create and manipulate objects in memory, and putting together a disparate group of classes together into a gestalt application that's capable of doing something useful.
You need to be good at math. You have to be able to have enough concentration to power through an obstacle. You need to have the discipline and capacity for masochism in order to stare at a block of code for an hour and figure out why it's not giving you what you want. But if you can get through all of that, the job itself is relatively easy and it pays very well. If you have proven work experience in programming, you can expect recruiters to bang down your door to try and place you at a company that's willing to offer you 80k+ out the gate. Very few graduates will even sniff that amount 1 or 2 years out of college.
But it's an exceptionally dull job. Which is why there aren't a lot of developers out there. The most similar position I can think of is a UPS driver. The average UPS driver will pull in over 70k per year and the position doesn't even require a college degree. But many people don't want to be UPS drivers. It's a dull and monotonous job. And it's decidedly unglamorous, just like coding.
I can't help think that people my age want all the perks of a good job without putting in the time or effort to acquire and perform at said job. People watch Jersey Shore and see otherwise unemployable people dance, drink, copulate and get paid millions of dollars per year and think "why can't I have that?"
Everybody wants to be the people sitting on an outdoor patio of a fancy downtown restaurant enjoying lunch, but nobody wants to put in the time and effort. College doesn't guarantee you a good job. If anything, the typical college experience makes it harder for teenagers to make a successful transition into adulthood. In work, you have to show up every day at an appropriate time and do your job. That doesn't happen at most colleges, where people regularly blow off 1 hour lecture classes and figure out how to get a passing grade doing the least amount of work possible.
You still have to put in the time. And that's something that movies and TV never show. Because it would take too long.