There are alot of assumptions made about what a programmer actually does for a living. Many of those assumptions miss the mark and are pretty much inaccurate. But you can't blame people, as movies portray programmers (typically) as socially awkward geniuses who wear hoodies and program 3D spinning cubes and solve puzzles all day long.
The hack and slash across servers only to find mythical doors in their way, and with the swift typing of keys the doors magically vanish and they hit gold.
Some of those things may be true, though not usually. But there's alot more to add to that list. Because programming isn't quite what the big screen portrays and often times, this wrong impression makes people drop what they are doing in life and dive in to the coding world looking for treasure. Here's my favorite misconceptions from personal experience throughout the past 20 years of my programming career. Each of these, I have heard almost on a daily basis.
1. That I can fix computers
This one has haunted me for the better part of 2 decades now. But when people hear me say that I am a "programmer", "web developer", "software engineer", etc, they transcribe that to mean that I am a "computer repair person". And that couldn't be farther from the truth.
Sure, I'm around computers all day. Mainly my laptop, which has everything soldered on essentially, so I'm not cracking open the chassis daily and replacing ribbon cables. And I've only owned Windows machines, so I have no clue how MacOS works.
But that doesn't stop people from inviting me over to their home in order to diagnose their 10 year old desktops. So far, I've been able to help 9/10 people with their PC issues though.
But that's mainly out of luck, and has little to do with my programming abilities. Most people, as it turns out, have very basic issues with their laptops or PC's. So a few clean installs or battery replacements have done the trick.
But at no point in my CS degree did I take a class on PC repair.
2. That I know every programming language
Or that I keep learning new ones every week. Truthfully, this mainly happens with younger developers though. And I can't blame them. They are constantly being bombarded with articles and videos on the "Top 20 programming languages to learn" and such. And most of those developers have never worked in a corporate environment.
Because if they had, they would know the truth. That you typically work on a single programming language when working professionally, because you are mainly working on a single project.
Sure, sometimes I have to learn a new language for a specific project. But it's a rare situation and typically, it's only a momentary project. If you have been a C# developer for 10 years of your career, you're not suddenly going to be asked to take over the COBOL project. That wouldn't benefit your company too much in the end.
And that's my personal main programming language as well. My very first coding job was as a C# developer, and my very last corporate job was as a C# developer. I was hired to work on that specific language, because I had the experience in it.
And while I know "some" C++ and Java from my college days, there's a good chance that those languages have changed dramatically since then and I would not be able to work on a production level application.
3. That I'm good at math
This one is up there with fixing computers. I actually used to be really great at math, but most of that was before I began to study computer science. And in college, when I studied Calculus, Linear Algebra and Statistics, I was just okay at it. A solid B student at best.
Not to say that these two fields can't be related in some way. Because there are plenty of jobs out there that require both a heavy hand in mathematics and in programming. Data Scientists for example, typically have to perform complex mathematical computations using a variety of languages, such as Python on very large data sets.
If you are a game developer, you will probably also need to have strong mathematical ability. I know several developers who work on various physics engines, and the work that they do is similar to the work that I did in my college math classes.
4. That I can code video games
Alot of times, people ask me why I don't become a game developer, since I am a huge fan of playing video games and have been since I was 4.
Can you make video games using C#? Absolutely. Unity uses implementations of the .NET Runtime, making C# one of the most popular programming languages. But programming an ASP.NET website has little to nothing to do with programming under the Unity runtime.
And while I've attempted (several times already) to get into game development, each time it becomes a task much too difficult to climb when trying to also maintain a full-time job as a web developer.
There's just far too much nuance and complexity that goes into making a game and a few hours on the weekends to dabble in it just won't do.
5. That I am coding 24/7
This one depends on where you are coding, more than anything. If you are just getting started and working on projects at home, then it is safe to assume that you are coding alot. It might not be the best or most interesting code out there in the world, but at least you're getting to type it.
If you are working in an office with managers, designers and other developers though, it's pretty safe to assume that your coding time will be cut by some percentage.
Not only do you have to attend daily meetings (multiple), but you also have to spend time on code reviews, daily standups, writing emails, reading documentation, writing documentation and participating in various team building exercises. And all of this takes up a substantial portion of your coding time.
And in between each of these, you find some time to write code.
6. That it's always fun
Not to say that being a professional programmer isn't fun, because it is. It's alot of fun. But that fun isn't everlasting. When you've been a programmer for almost 20 years (as I have been), things get rather repetitive. And it's up to me to find new ways to stay relevant and to keep things entertaining.
Because I can assure you, that coding up yet another newsletter capture form for a marketing page, lost much of its charm years ago.
But I have to do it, because it is my job to do so and that is what I get paid to do. And that in itself can be considered fun. Having completed a task, and closing it out after it's been through QA is a very gratifying feeling.
7. That I code everything myself
This one throws alot of new developers off. Because the assumption is that companies will hire you for your unique coding abilities that no one else has and that you will build things from the ground up. Those moments are few and far between when working in a corporate setting.
For one, you're pretty much always working on a project that already exists and that other developers work on as well. And you don't typically just take it upon yourself to edit other people's code. At least not without asking that person for permission.
And secondly, often times being a programmer involves implementing already existing libraries to do something for you. You might see that happening in the following:
npm i 'some complex library'
And you are then tasked with using that library to accomplish something complicated. But really, you are mainly just reading their documentation and doing whatever it is that they state and hoping that you get it right.
Again, this isn't always the case. I develop plenty of custom features for websites on a daily basis. It's just that I also have to side by side, make this work with 3rd party implementations. And sometimes, the 3rd party implementations take up the majority of the time.
There's alot more to add to this list, but these were the things that I personally get asked about on a daily or weekly basis.
And hopefully, if you're new to programming, this helped to shed some light on a more realistic day in the life.
Walter Guevara is a software engineer, startup founder and currently teaches programming for a coding bootcamp. He is currently building things that don't yet exist.