What school doesn't teach you for your first programming job


This post isn't necessary advocating for dropping out of school to get your first programming job, but rather a list of things I wish I had a better understanding of before I started my first job as a programmer outside of school (college).
A graduation cap (credit to https://www.capandgowndirect.com/products/shiny-black-graduation-cap-and-tassel)
Graduating from school; the only time we can wear this cool hat

How you view your work

We know you are working on homework all the time, but it is different in the real world. You can't approach working in a job the same way as you work on homework in school. At school, the assignments you do are against you; one on one. A duel.
In a real job, work isn't simply something to get done, it is means to an end. Other people are now counting on you to get your work done. You become a dependency to others, your team, and the organization as a whole. You become a necessary lynch pin in your job.
A lynch pin (credit to https://www.grainger.com/product/426V14)
So that is what a lynch pin looks like
If this raises the stakes, good. That's how you need to begin thinking at a real job.

What you learned does not apply to work

This is the same qualm I have about early to mid-level education too.
Throw it all away, toss it aside. What you know does not apply, only how you apply it. The key that determines how well you do in a real job is how do you approach problems. You will not get pre-packaged problems like you did in school. The problems you will get will be a combination of business logic, inter-team coordination, a quality/speed tradeoff and the raw knowledge you have.
Oh, and you won't know everything, and will have to get the answers to your questions in the right way. (We'll explore how to do that within this article).

How you get the answers you need

There are no singular professors to get all the answers you need; instead, you have multiple.
Unless of course you have unicorn developers on your team, at which point they could be the person that can answer any question you might ever have.
Origami unicorn (credit to https://www.atlanticbt.com/insights/myth-full-stack-unicorn-developer/)
Origami unicorn
You will have to get your answers from your project managers, your senior tech leads, your manager. It's likely you will get a quarter of the answer from everyone, and you'll need to synthesize the solution.

Get used to politics and gossip

Remember those good-ol' days in high school with all the gossip and politics? They are back. Your mileage will vary, but be prepared to get involved again.
The most predominant thing you will be involved with, or at least be an observer of, is what's loosely called politics in the workplace. Politics looks like this:
  1. Your team works closely with another team. A new feature is being developed that interacts with both teams. Your manager decides that your team will do work that offloads the more complicated work to the other team (even if you have capacity to work on it).
  2. You are assigned to work on a project that is clearly out of scope of your capabilities and get no resource you can reach out to for questions.
  3. Upper management relationships decide which teams get more resources. This either means more tools for you to get your work done or more time you need to spend in the office to get your work done on time.
  4. Friends with the manager get extra time for lunches and are allowed to slack off a little bit more at work without reprimand.
You'll come to see that your job isn't just how good you know your field, but how well you fit in too.

Learning shouldn't stop

Businesses use tools, and tools don't stop developing. You need to keep up reading your newsletters and blogs. Reading also helps you become a better programmer.
It is almost essential if you want to keep your job to keep on learning - my previous manager has criticized me about this point in my past, and I've since adapted.
*Disclaimer - "learning" in this context means constantly. If you aren't reading something new every day, you aren't learning enough. This, coming from my previous manager who is heavy-handed - take the advice with a grain of salt.
In seriousness, learn at your pace. If you don't feel you can read blogs every day, don't. Maybe learning for you means reading a blog post once a week, that's okay. As you learn more, it will become easier to learn. Start somewhere.

Time management

Hopefully, you will be working on a team that does Agile.
A Kanban board in Trello (credit to https://zapier.com/learn/project-management/kanban-board/)
Using a Kanban board in Trello
Learn to manage your time working on the work that is on your plate. Whether you use Agile or another software development process, find a process that works best for you. There is no one going to hold your hand or help motivate you to get your work done.

Work-life balance

Don't expect it. IT jobs frequently work past the 40hr work week. People expect everything to be up 24/7, and that means you'll spend off-hours on support. If you aren't on support, you might find yourself spending your weekend coding that new feature that needs to be in by Monday morning. 
The pay of our jobs usually compensates for the long work weeks, but expect it to take a toll on you eventually.
It's important to improve your skills, but you can't neglect your health as a programmer. Here are four, very easy steps you can take to maintain your health at your desk job.

Protect your eyes You can read the full American Optometric Association paper, or you can simply wear eye protection. Bottom line, is UV light harms your eyes. That must be why I really enjoy looking at deep-blue Christmas lights...
I would recommend any pair of glasses while on your computer that have blue-light reflective coating, or a blue light filter. I personally have a pair of these, and I immediately noticed a difference at the end of the day - my eyes didn't feel sore or tired (that is what long exposure to UV light does to your eyes). This is also a good article on the subject.

You can also consider monitors that have built-in blue light filters, but they tend to be more on the expensive side of things.
Follow the 20-20-20 rule Every 20 minutes, look 20 feet away for 20 seconds; it's wha…

What gets me more excited than anything? Performance.

Its always exciting to me to perform at max efficiency, because why should you be performing any less? What's even better than efficiency than setting it and forgetting it? Nothing. Fact of the matter is while you may not be caring about efficiency, you should - because your business does. Lack of efficiency costs dollars and time.

You aren't off the hook even if you are doing programming as a hobby or are self-employed.



We are going to explore how to minify your .cshtml files in a .NET Core web application, and why you should care to do so.

Why you should careDo your reading;read this too.


Time is a limited resource, and we are tending to be more impatient nowadays, these people think so too. The bottom line is that if you want a chance for your web application to be successful, you can't skimp on quality and hope that you will be a success. Your applications need to deliver quality, and an "easy" way to conve…
Incorporating GDPR compliance is something that takes time, effort and thorough understanding of the law. In this post, we are going to show you how to create a stop-gap in your .NET Core web applications until you are able to invest time and resources into understanding your application's structure, usage of personal data, and restructuring it to conform to the GDPR. We will make a sample ASP.NET Core web application to demonstrate how to put a GDPR compliance stop-gap in place.

Why should you care about GDPR? Before we get into the implementation, you should first understand roughly what the GDPR is and why you need to care about it. Put simply, the GDPR are a set of regulations that give consumers rights and protections to their personal information. In order to do business with consumers in the EU, or offer any service that uses consumer data of EU residents, you must be GDPR compliant. Failure to compliant will result in fines.

Blocking EU users To become GDPR "compliant…