Real World Programming vs Academic Programming
Tags: experience, advice
Published: 2018-08-23 20:42:18

---
title: Real World Programming vs Academic Programming
published: true
description: Observations from watching young developers hit the real world post college.
tags: experience, advice
---
I would love to tell you new developers that the rat race is full of inspiration and doing what you love, but that would be a lie. I work for a great company, I come to work each day full of energy and for the most part I enjoy everything I do. But it isn't like it was when I went to school. I went to the University of Arkansas at Little Rock. It was a great school, and I fell in love with coding while I was there, but it didn't prepare me for the reality of being a full-time developer. So I am gonna go ahead and give you some advice. This all based on my experiences so mileage may vary on the advice, but I wish somebody had said at least a few of these things to me. 

1. **Your Teacher/Professor is not the same as a client**
In college your professor set deadlines for you, they had concrete expectations and their primary goal was for you to learn the material. A client on the other hand doesn't care if you use JQuery or WebAssembly, Angular or React. They don't care about your desire to become a better developer by implementing Design Patterns nor do they care about anything other than what they are paying for you to do for them. So the impetus is on you to make sure that product is good and on time. No grades, no do-overs and no excuses. 

2. **Some Projects Are Going To Suck**
Working as a developer means you sometimes have to do things that aren't as glamorous as building the next Snapchat or Facebook. 75% of my day is working on poorly documented legacy code written either by a much less experienced me, or some other poor slob who was handed the task long ago. From data entry to working with ancient Access DB's get used to not working with the latest and greatest tech. 

3. **Your Coworkers Are Extended Family**
Everybody I see coming into the field these days wants to be the unicorn. They want to be the lynch-pin or the expert. And they behave like they are competing for the highest grade in the class. This approach is in my opinion harmful. Your co-workers are each a part of an extended family. You will on average spend more time with them than with your own biological family. It pays to see them as people you want to build up, not compete with. Anyone of my co-workers know that I am a fickle person, prone to fits of ignorance and incompetence. But they also know that if the beacon is lit and Gondor calls for aid I am the first Rider of Rohan topping the hillside for battle. This approach ensures that I don't become somebody else's wall they have to move past to be better. 

4. **You Are Going To Fail..... Hopefully** 
I say this with love. If you want to get better you will fail, sometimes it will be minor league, a build fail or a client request forgotten or lost in the email chain. Other times it will be colossal, db deleting, no backups, computer crashing, client screaming, Michael Bay explosions and fire and brimstone. It will happen sooner or later and you will live, and you will learn some fantastic lessons from these career killing mistakes. Usually you will learn immediately that you are the only one that thinks they are career killing.

5. **You control your curriculum**
Nobody is going to tell you the next thing to learn. There are no set in stone formulas for become a developer. No predetermined path is set from point A to B and it doesn't end at a diploma. You must take a shine to teaching yourself things. YouTube tutorials are great, books are great, but nothing beats getting in the code and changing things till they break and then fixing them. 

 I hope all this makes sense, and I hope it helps.