Before you get too far into your exploration of computer science, it’s important to step back and look at the reality of what programmer’s do on a day to day basis.
Many people have an unrealistic picture of what coders actually do on a day to day basis, and I hope to dispel some of those myths in this post.
The “Idea” of Coding
The idea of coding is easy to fall in love with. Thanks in part to media-hype, we tend to have a mental picture of programmers who are all young, hip, slightly dorky 25 year olds who stumble out of college and land a six figure job.
They go to work at 10am and stay until 8pm, but at work there’s a gym, a massage room, a gourmet cafeteria, a personal concierge to take care of annoying errands, and even happy hour beer-breaks with ping pong and air hockey.
If they ever get bored with their cushy job, or decide they simply aren’t earning enough money, they can just start a company, which their previous employer will happily buy from them for several million (or even several hundred million) dollars.
Sounds appealing, right?
The Day to Day: What Does a Programmer Do?
Unfortunately, the reality is a little different than the hype.
While there certainly are stories of programmers who start a company only to sell it 3 months later for $30 million, or of amazing perks for working at one of the top tech titans, the day to day life of a programmer is a grind.
One of the biggest challenges of any professional coder is to keep up to date with everything that’s going on in his field. You hear people refer to programming systems as “languages” and “frameworks” for a reason.
While different systems might share common threads, beginning work on any project requires an intense process of learning the system. Add to that the constant updates to the popular languages, each with different advantages and tradeoffs, and you can see how making any sound decision requires intimate knowledge with a wide range of topics.
Looking For Commas
Not only that, but the actual act of writing a piece of software can be extremely time intensive.
Be prepared to have your eyes glued to the computer for hours on end. On big systems, it can take an hour or two just to get up to speed with where you left off the day before.
Code rarely works the first time it’s written, which means that a lot of time is spent editing and re-editing to find small errors, or account for different possible contingency scenarios.
When “bugs,” or errors in the code, crop up, it’s not uncommon to spend several hours trying to find their real source, only to realize it was a simple misplaced comma, semicolon, or parentheses!
This takes a certain type of personality, and a great attention to detail in order to enjoy.
Problem Solving Is Fun
I don’t mean to imply that programming is just a dull, “heads down and get to work,” type of profession.
I just want to be straightforward about the type of mindset you need in order to code successfully.
At the end of the day, software engineering is just problem solving. Each day you’ll face different small problems, and as you solve each small problem, you’ll gradually be able to piece together the bigger picture, until you’ve solved the large problem.
This can be a very fun process, and the satisfaction and reward for solving interesting, complex problems is hard to beat.
You can click here to learn more about how to get started learning to program.