This is a version of a talk I gave at a meetup in Silicon Slopes, Utah.
Why write this post?
Well, I think being a developer is hard, and I think the first year can be extra difficult. Two years ago I switched careers to development from management accounting, and my first year was really tough. About six months ago, I started feeling like I had my head above water. I could look back and see some things that I had struggled with, and thought I could pass along some advice so maybe others didn't have to go through all the same stuff - or at least so they'd feel less alone while going through it.
So, some tips...
Lean on your community.
You may end up working with a team you love and can commiserate with (a really fun experience!). Or, you may end up working with a team you love but you can’t commiserate with - maybe they're all seniors and you’re the newest, or maybe they work with different technologies or on other projects. Or, you may end up working on a project or feature by yourself. DO NOT TRY TO GO THIS ALONE. (Remember how being a developer is freaking hard?) You NEED people around you who understand what it's like to fail hour after hour, day after day, sometimes week after week. Repeatedly failing is TOUGH when you're alone, and it makes the development experience seem way more difficult than it actually is. So find your community! It can be meetups like Girl Develop It, it can be Twitter, it can be a Facebook group, monthly lunches, a welcoming Slack channel - whatever it is, find a group of people who are developers and understand the fight you are going through every single day - and then make sure you're hanging out with them, talking with them, COMMISERATING with them.
Network! (but maybe networking isn't what you think)
If you haven’t heard it yet, you will hear over and over how important networking is in this field. I remember feeling terrified after being told I’d have to network. I’m not good at making small talk with strangers and I am also not good at asking them for a job. So I didn’t do that. But I did become active in the community. When I started out, I didn’t feel like I could contribute much in the way of code expertise, but I did have time, so I just started volunteering my time wherever I could. I volunteered to help organize the UtahJS conference. I reviewed scholarship applications for React Rally last year. I went to meetups and I thanked the speakers after. I chimed in on the UtahJS slack and asked for help from those I admired. I helped people I met make connections they needed to do their job. I even started playing video games with people I’d only met on Slack. And before I knew it, I had people privately inviting me to apply for jobs they had open. And since I could never get past the coding parts of these applications, I’m pretty sure it’s because they had enough exposure to me to realize I wasn’t some psycho, and I’d actually be an okay person to work with. And that’s really all networking is. You’re just putting yourself out there and trying to make genuine connections with people. And eventually it will pay off.
Don't compare yourself to others.
It’s a losing battle and won’t do you any good. Instead, compare yourself to...yourself! We’ve all heard this before, right? - but it’s very difficult to do. Something that might help is to think of how far you’ve come since you started learning this stuff. Think about the notes you took a month ago, or at the beginning of a new project, or when you first started learning to code. Do you need those notes anymore? Or have you learned those things that seemed so out of reach at the start? Have you grown as a developer, and are you doing the best you can? That’s all that matters. Your circumstances are completely different from everyone else’s so it’s never a fair comparison anyway. And another reason to not compare yourself to what you think others know? ...
People often bluff (developers especially?).
They say no one knows what they’re doing in this field, and while that’s not entirely true, often people are bluffing on what they do know. Go to any entry-level track at a conference and watch how many people proclaim they’re very familiar with what’s being taught, but then they stick around. Happens constantly. Or after proclaiming their expertise they can’t answer questions from the speaker. Have you seen people in this field politely keep quiet so others can answer questions? No. It’s because they don’t know the answer either. Or they’re just as unsure as everyone else what the answer is. But they didn’t mind bluffing, did they? So don’t let what others seem to know affect your confidence. But if it does, remember...
Hormones can affect confidence.
I feel like we all objectively know this, but when you’re in the middle of code failure after failure, it can be hard to recognize. One week you’re queen of the world and the next you’re wondering if you’re ever going to really make it in this field. Part of it is just the nature of working in development, right? - we vacillate between feeling like gods and feeling like children. But hormones contribute too. I encourage you to track your ups and downs and see if they occur cyclically at all. I did this for three months before realizing it was always the same 4 days in the same week of the month that I felt really down on myself. Now I pay no attention to the voice inside my head during that week.
Your self is important. Care for it.
If you have the choice, don’t work overtime. Don’t spend your precious weekends learning even more code. During your first year especially, you are learning enough during the workday. I know, we feel like we need to always be learning more, or keeping up to date on whatever the latest thing is, or learning the popular thing that’s going to get us that great next job. But hold off if you can. After the learning curve of the first year, you will have more brain energy to tackle learning outside of work. In the meantime, if you’ve had a day of no wins as a developer, this is really tough and you need to take care of yourself. PJs by 6pm and movies on the couch? DO IT. A hike when you think you should be doing laundry? DO IT. You’re kind of in a war zone every day at work, so give yourself some peace and relaxation the rest of the time.
Give your brain playtime.
Don’t limit your brain rest to the weekends - give your brain breaks at work too! How often have you thought of a coding solution while showering, brushing your teeth, running? Mindless activities let our brain process complex tasks. Think of how you can create those mindless moments during the day. There is a reason your workplace has a ping-pong table, or lunchtime video games, or whatever it may be. Take advantage of it! You don’t work in a place with those types of perks? At least get up and take a walk around your building every hour. Go outside, go do something! I promise it will make you a better developer!
Pick a thing - then RUN WITH IT!
There is a lot of pressure in this field to do many things, all at once, so you can be successful. Blog. Livestream your coding. Make Youtube videos. Go to meetups. Speak at conferences. Have a strong social media presence. On and on, and it will just completely wear you out if you let it. You do not have to do all those things. Pick a thing you like and run with it. I have friends who avoid social media at all costs, friends who never go to meetups, friends who don’t blog or have any kind of community presence at all. They all have wonderful, well-paying jobs. It’s going to be fine. Whatever the thing is that you enjoy, do that thing.
Do what works for YOU.
I've already mentioned several times all the advice and wisdom you're going to receive while in this field. I'm here right now, trying to give you advice on what to do - but ultimately, YOU have to figure out what works for you. Not what others say should work for you, and not what the guilt-ridden voice inside your head is saying you should do if you have any desire to succeed - no. Find the thing that works for you, and DO IT. It's gonna be great!