This post was inspired by a question from another user: “I am curious about feedback regarding specific real life projects or overall job descriptions and daily tasks to help me get a better understanding of the real life job duties.”
You took the course, you passed, you think you’re ready to take on the world, but you have no idea what it’s like out there. What will you have to deal with when you’re on the job?
First of all, getting a job after taking a Codecademy course is not as easy as it sounds so, congratulations! Here’s all the crap you’re going to have to deal with:
- If you haven’t noticed already, most, if not all of the job postings for developers have the words “fast-paced environment”. This is 100% true.
- Deadlines are always tight
- You’re constantly being asked why it’s taking so long
- A bug was reported in production, you need to fix it ASAP. Drop whatever you’re doing in order to fix it, but you can’t miss the deadline for the sprint either
- You’re not directly asked or told to work extra hours, but it is suggested it needs to happen so you can meet the deadlines (take one for the team)
No matter how organized they say they are or what kind of development methodology they follow, you’ll always be short on time. You need to learn fast, code fast, fix issues fast. For some people, this is very stressful. If you can’t deal with it, it’s not worth putting your health at risk. Sometimes things do go according to plan, but most of the time its chaos.
- 100% code coverage.
You’re going to be asked to have 100% code coverage. What does this mean? It means you need to write unit tests for your code. This needs to be part of your deliverable and your estimate. Is it a good practice? Absolutely. Will you ever actually get to 100% code coverage? ■■■■ no. Why? see point #1, the bottom line is you won’t have time because you have more work to do.
Yes, you can make crappy unit tests that will make it look like you have 100% test coverage but in reality, it never happens. It takes too long, and no company ever has the time for it.
- You’re going to make mistakes, own them.
You’re going to make mistakes. Either you wrote a bad function or you misinterpreted the requirement (I’ve talked about reading comprehension before). The feature is not going to work as expected, someone might find out before you deploy, or a user will find the problem in production. It happens all the time. Own it, learn from it, fix it, move on.
If you have a good QA team working with you, they’ll catch it before it’s deployed. This is not always the case, so don’t rely on it.
- Your work might be scrapped.
You’ve been working on the app for months, you put in a lot of hard work and you’re very proud of what you’ve done. Then one day a decision comes down from upper management and you have to redo half the thing. Sounds crazy? It’s not, I lost count of how many times this has happened to me, I’m going through it at this very moment. After 2 years of work, we’re being asked to change the whole thing.
You’re going to be upset, your morale will be non-existent, you won’t want to go to work. Get over it, it happens all the time. Unless you’re in a leadership position capable of negotiating, you need to learn to do what you’re told. Some companies do value input from the employees (if you’re in such a place, let me know…), most of the time they don’t. Keep your head down, keep coding.
- Keep learning.
I’ve said this before many times, you never stop learning. Professional development is a must. Ideally, your manager will encourage and facilitate this, even more ideally the company you work for will pay for it. If they don’t, be prepared to spend your time and money continuing to learn.
New technologies and frameworks come up all the time, you need to be able to learn and use new things. This will take time away from your family, your hobbies, etc.
Most of the bad things I just described can be traced back to 1 thing: bad management. After working in 6 different companies in the last 13 years, I have come across bad management every single time. Every single time I tried to be positive instead of giving up, showing them the problems they were creating AND how to fix them (there’s no point in complaining if you don’t offer a solution) and every single time I was shot down. I don’t always have the correct answer, but I do know when I’m right, especially when other people validate my thoughts.
I’m going through the same problem at this very moment. Upper management is creating a lot of problems, I keep presenting solutions and they keep shutting me down. I love my team, and I really like the product, but management is producing a toxic culture that I can’t stand so I’m looking for another job. You need to know when to give up and move on.
How can you fix or avoid this kind of problem? Change your attitude. The next time you walk into an interview, don’t walk in with the mindset of “they’re interviewing me”. Your mindset needs to be “I’m interviewing them”, “I want to see if they’re a good fit or me and if they deserve my time and dedication”. You need to ask:
- how do they come up with new features?
- how they deal with change?
- how they plan their work?
- how do they deal with bugs?
- how do they foster career development?
- how do they promote from within?
- how do they support your well being?
- how are evaluations and promotions conducted?
- how do you manage technical debt?
- how do you care for your customer?
Ask to talk to the team.
- Are they happy?
- What do they like and don’t line about management?
- What can management do to make things better?
- Does management listen to you?
- Does your opinion matter?
You’re in control.
Not everything is bad though, there are many positive things but positive things don’t make you think twice about doing something. Positive things are not warning signs. Have an open mind, be communicative, leave your ego at home, be willing to learn. If you find the right place and the right team, you will have more good days than bad. You will want to get up early and go to work, work more than 40 hours a week without being asked. You should enjoy your job, if there are problems try to fix them but recognize when it’s time to move on.