Code n00b: What They Don’t Tell Us About Dev Life
Many, if not most, of us learn to code on our own. It’s a straightforward process: try, fail, try again, fail again, repeat until you actually figure stuff out. As a new programmer, you don’t even know enough to differentiate between good code and bad code — it’s either code that works or code that doesn’t. And that suffices…
Hard skills are the abilities that get you hired, while soft skills are pretty much everything else. How well you work with others, communication skills, personal habits — if it doesn’t involve the command line, it’s probably a social skill.
Not everyone hits this particular pitfall because some n00b devs have held other office jobs before switching careers and hopefully figured out the basics of conducting oneself in a professional environment without getting fired or making instant enemies. If, however, you’ve never had a job where you had to dress with at least nominal professionalism (shirt with collar aieeeee!) while remembering you can’t simply just take anything you feel like eating out of the communal fridge — let’s just say there is a learning curve.
The problem: You learned to code pretty much in isolation. Now you are surrounded by people. Who expect things from you, like friendliness. (The right kind of friendliness. Not too much of it, though).
The solution: Keep your mouth shut. Seriously. Watch, listen, and learn about how things work socially in your new place of employment. Then do as the natives do.
For example: Is the office culture procedural or chummy? I.e., is it OK to simply request some info, say thanks and get back to work — or are you expect to have a friendly chat too? Or, is it OK to wear earbuds while working, or is this not something that people do? I’m surprised by how frequently being chastised for doing something so simple seems to come up as a first-week-on-the-job issue, actually. But that is what multiple dev friends have reported back, and with a bit of intentional observation of cultural habits of coworkers (you can pretend you’re Marlon Perkins), easily enough avoided. Probably best to reserve most of your screwing up for the hard skills arena.
The problem: The work requires you to know how to do many things that you do not know how to do.
The solution: Keep your mouth shut — for two hours, in this case. Make a genuine effort to figure whatever it is out on your own. Chances are, you’re not the first person to ever run into this issue and the fine folks on Stack Overflow will be happy to guide you. If 120 minutes pass, however, and you are still stuck, then ask for help. You’re the new kid, and also a junior developer. Nobody expects you to know all the answers.
That said, there are times to ask for help. My longtime Java study buddy Asa reported somehow locking himself out of Jira before lunch on his very first day — embarrassing, but easily enough remedied, and not the worst screw-up debut ever. That honor, incidentally, belongs to this unfortunate first-day’er who accidentally deleted his company’s production database.
This is a more miscellaneous category of “who knew?!” observations I have heard multiple times from multiple newly-employed dev friends.
Setting up your dev environment is ridiculously time-consuming. Asa reported that most of his first week was devoted to doing just that. He also managed to talk serious smack about what turned out to be a senior developer’s favorite IDE, right in front of that editor. See “Soft Skills” above.
A terminal case. You may think you know your way around the command line pretty well, but chances are that was on one computer with just one user account. How do you configure, say, Redis, mySQL and MongoDB to launch automatically when you fire up your new, networked work computer? Chances are, as a n00b newly released into the work world, you know just enough to be dangerous. Don’t ever try a command you think is going to work.
It’s hard to be humble. Inevitably, that first day is going to be humbling. This is all uncharted territory, from first viewing of the monumental and inscrutable production codebase to “where the hell is the bathroom?” It’s simply going to happen. And you will feel stupid. Slow. Possibly petrified that they will realize what a terrible mistake was made in hiring you. Maybe if you hide under your desk…
But: take a deep breath. Another one. Here’s a paper bag, breathe into that if it helps. Just keep breathing. Because it’s ok.
It’s ok to not know everything. Or even feel like you don’t know anything. It’s OK to be slow and it’s OK to make mistakes. After all, you worked damned hard to learn this much and get this far. All this new job stuff? It’s just the next thing to learn.
We got this.