5 MYTHS ABOUT YOUR PROGRAMMING CAREER
4 MIN READ
Many junior level devs and even more future-dev-hopefuls falling for the endless “PR” videos being posted on social media. In these videos, a young, usually attractive tech worker will detail their “day in the life” at any number of currently-hot tech companies. The videos center on the amenities they enjoy like free food and coffee and other various creature comforts that come with working at such a company. Work is usually relegated to just a couple of hours of highly-focused work where they are not interrupted and everything goes according to plan.
I’ve never seen such nonsense in my life. Here are five things you need to know if you’re in your first dev job, or hoping to land your first one soon.
Coding is the Most Useful Skill
The hardest code you’ll have to write for your next job will be written during your technical interview. If you work for a small startup, all of the heavy code lifting will be delegated to existing libraries. If you work for a megacorp, you’ll have teams that develop these internal tools, i.e. you probably won’t be working on their internals.
A good share of your day will be spent on things like:
- Troubleshooting your dev environment
- Getting context on the feature/bug you’re working on
- Presenting possible approaches to more senior devs or stakeholders
You’ll be writing code, but you can really only write code for 2-4 hours a day consistently without burning out. I’ve found pretty much every dev I’ve met can manage at least two hours but nobody can break 4 consistently (maybe for a few days though). Anyone who says otherwise is lying - just look at their commit history.
As a junior you’ll want to focus on improving your soft-skills and your architecture skills. Eventually you’ll specialize more in one of those areas but it’s too soon to worry about it.
2. Fang Companies are the Pinnacle
If you want to stagnate in your career, work at a FAANG or top-tier tech company. You’ll be narrowly-siloed into a project with minuscule impact (think submenu of a submenu). Deliverables will be clearly laid out for you, it’s kind of like bowling with bumpers.
The total compensation will be better but it’s not a good long-term investment in your career. You will learn more rapidly by working at a chaotic startup where you are given more freedom to fail and freedom to succeed. You’ll earn peanuts compared to the high-tier tech gigs but your skills will grow much more quickly. Invest in skills early, the money will come later.
3. Programmers Don’t Have to be Social
This one is sort of true. You don’t have to be social if you want to top out at, and remain a senior engineer for your whole career. Even then, things will be easier for you if you are social.
Learn how to have a normal conversation with someone. Don’t do it from a place of politicking — you’ll meet many of these people and it’ll be immediately obvious that they could care less about you past maintaining their reputation — do it from a place of genuinely caring about your coworkers. Remote work has unfortunately made it more common to be cold and impersonal with your colleagues. Break that trend. Advocate for off-sites if your whole team is remote. If you work in an office, get people together for beers — the reason doesn’t even have to be big, maybe you launched a new feature, or it’s someones birthday, all occasions are worth celebrating.
4. You Will Build Things from Scratch
Count your blessings if you get to do much of this in your first job. Much of your work will be on legacy code. Much of the time, the code you’re modifying will be written by developers that haven’t worked at the company in a while.
git blame will be your friend here.
This is painful sometimes but good practice — you’ll get to see and live with the pros and cons of decisions made by other developers. This is how your start to develop taste.
5. Nobody Cares About Your “Boot Camp”
There’s nothing inherently wrong with boot camps. I think they’re a waste of time but some seem to rave about them. My point is that the most important thing to the hiring committee interviewing you is your work experience. I don’t think that this is a great focal point but it’s how the game goes.
So what if you don’t have job experience? My advice to new devs is to work for free. Here is a strategy that I’ve seen two devs use to land their first “real” jobs.
- Learn to code — learn well-enough to build simple applications. A frontend for a free API in React, a simple REST API in Django, etc.
- Find established developers that might be working on side projects (they’ll usually be pretty public about it).
- Reach out to them to ask if you can work on some simple features on their app.
Side projects are always a battle for enough time so most friends I know that have side projects would be thrilled to have an extra set of hands — especially for simple issues and small bugs.
I hope you find these helpful. Disregard the influencers, keep your head down, and reach out if you want to work on my side project :)