On Sucking: Unsolicited Advice For Junior Devs

At some point over the course of this year, something magical happened to me. And it coalesced into a series of realizations I figured I’d share. Here they are:

It isn’t imposter syndrome, you just suck.  Sorry for the tongue in cheek descriptor, lol! Somewhere around the year and a half mark, which coincided with being three months into my new big-kid engineering job, something wonderful happened. Everything became easy.

Although it felt like some supernatural other worldly alchemy that turned me overnight into a self assured engineer writing moderately clean code guided by some spidey-sense I never had previously, in reality it was just a lot of unglamorous work. I realized that in a way every weekend I spent toiling on some random code adventure had prepared me to be on my own in the wild, at last.

I wouldn’t wish imposter syndrome on anyone. For me, I also have a generalized anxiety disorder so it was very difficult to tell where one stopped and the other began. That being said, in retrospect I think it makes all the sense in the world to feel constantly terrified as an entry level developer.

You SHOULD feel terrified, probably. You just got dropped into a live volcano. One wrong keystroke and you can nuke a database, as was recounted by this poor dev.   Before you go thinking I’m the girl version of a stern greybeard here to give you a hard time, I’m not! It is OKAY to suck, so long as you aren’t doing it on purpose. I have a theory that people who are too terrified of sucking don’t take risks and don’t learn as fast as a result.

 We aren’t purposefully being mean to you. One thing I do a lot of is spend time on Slack communities like CodeBuddies and CodeNewbies – I learn a lot from the more senior people there, and people are up for talking technology 24/7. (Yay!)

Inevitably new people wander in and as you might expect, they have some questions that are head-scratchers to us people in the field. One common source of tension is people asking questions they could have/should have googled.

Another is ‘Here’s my code it doesn’t work can someone help me?’

That’s fine, but no one is going to rewrite your code for you. As busy as you may be as a junior developer imagine how busy the people are who make it to mid and senior level. If you are going to ask for help, the format StackOverflow has provides some good general rules on the right way to ask for help.

  • show what you researched already
  • set up your code for hand off – make it runnable and publicly available before asking someone to look at it. No one wants to have to pull down a repo to their machine and work on it that way. Also, since you are getting free help the onus is really on you to make it easy for people to provide that help
  • if there is one serious pet peeve, never introduce your request for help with ‘It isn’t working.’ WHAT ISN’T WORKING? When you are new, feedback can kind of hurt even if it is well-intentioned. If you drop a snippet of code like chum for sharks and just say ‘it isn’t working’ you can & should expect the response to be all kinds of critiques, even about parts of your code you didn’t want critiqued. Without knowing what exactly is not working, everything is fair game. Its like going to the doctor and saying ‘I don’t feel good.’ Ok, but without more information you aren’t going to receive help.

Outside of those parameters, there really are no stupid questions. Not a single one. As a frame of reference, here were some of my own former hangups (I think laughing at myself is healthy, you are welcome to laugh too) :

  • I used to mix up arguments and params constantly
  • I also used to (and sometimes still do) swap a = for a === without realizing it
  • When I first was learning to code any time someone said the phrase ‘Iterate over a loop’ my mind would instantly go blank and I would forget everything I knew about code. The same thing with ‘scripting language’ even though basically everything I know is a scripting language. I’d hear the phrase in interviews and immediately forget every piece of technical information I ever knew

Another good case for telling people what you already researched is that sometimes as a new person you do google things but the breadth of conflicting responses just mix you up more. An experienced person may be able to tell you which rabbit hole to pursue in those cases if you show them what you are looking at.

Perseverance beats raw talent 99.9% of the time. I was not naturally gifted at code, at all. For a lot of people I think that might have been a sign from the universe they aren’t cut out for the industry, or something crazy along those lines.

Despite having no talent it became apparent to me early on that I was more stubborn than I was bad at code. If you’re currently agonizing over existential questions like:

  • Should I be in this field?
  • Am I smart enough?
  • Will I be taken seriously?
  • Will I ever catch up to everyone that started writing code as a teenager?

I recommend stopping, immediately! Stop letting yourself focus on those questions. The only question you need to think about is if you are more stubborn than you are inexperienced, more stubborn than you are untrained, and more stubborn than you are bad at writing code.

Code is both the problem and the solution. To just about anything. If you feel bad about your abilities, go code. If you are sick of writing code, fine – go code in another language and that’s your break. (I get yelled at for being so gung-ho sometimes, fair enough. If you can be good at this work without doing stuff in your free time, I’m jealous. I sucked, so I had to practice on weekends.)

I sometimes describe my philosophy on this stuff as ‘Imposter Syndrome As An Art Form.’ Every time I felt bad about myself I made myself go learn something and eventually I stopped feeling bad about myself. I don’t know if it was that I learned so much I no longer felt insecure, or that I just jerked my mind out of that cycle of agonizing about my abilities and prospects and went and did something productive.

I think it also gave me permission to say that even if I felt badly about things I didn’t know, I felt secure in how much I was doing to overcome my weaknesses. I couldn’t wave a wand to instantly know everything, but I could learn. And that’s all you can do, so I started letting myself off the hook with some of those feelings.

 

Conclusion

In some ways the world is unfair to junior developers. You hear all this rah-rah-rah information about how EVERYONE SHOULD LEARN TO CODE! How much computer science degrees are in demand, or how much you’ll make after attending a bootcamp. Then you get into the field and you are exhausted, haven’t the slightest idea what you are doing and feel terrified all the time. The cognitive dissonance between those two things, in my opinion, is where crippling imposter syndrome comes from.

The good news is, you live in a time where there are squadrons of people right there with you. If there is one takeaway I can give you it is that if you can get through it, you’ll be glad you did.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s