Six hard-won lessons for fledgling developers
When I started out as a freshly-minted developer three years ago, I was bursting with energy and ambition. Although I suffered (and still suffer at times) from an acute case of impostor syndrome, I was keen to learn, and it seemed like there was nothing that I couldn’t - and shouldn’t - attempt.
Three years later, I’m three years wiser, and I wish often that I could go back in time to take the old me out for a hot chocolate and impart a little hard-won wisdom to her in the hopes of easing her path. In the absence of a souped-up DeLorean, I’ll do the next best thing and toss the advice in your direction. Because I have respect for your time, and because I want to finish this post before 2020, I’ve pared down my legion of recommendations to just six. It’s too late to impart these six gems to my younger self, but with any luck, it’s not too late for you!
With that, please allow me to present the six pieces of advice I wish I could give myself as a new developer. Take them, leave them… you do you!
1. Be cautious about doing work for friends and family
This may seem like an odd one to put first, but I want you to hear it right away before you do what nearly every new developer does and agree to make a website for a friend or family member. Once people get wind that you’ve become a developer, you may be inundated with requests for “help” making blogs, small business sites, and personal webpages. Your loved ones really do have the best intentions; to them, their proposal seems like a perfect win-win situation: they get the site they’ve been wanting, and you get “experience” and “exposure” (and sometimes a bit of money, too). The project may also appeal to you as a way to use your new skills to help out someone you love, but if you really value the relationship, heed my advice and be cautious of these endeavours.
To start with, turning a perfectly good friendship into a business connection isn't always a great idea. When your friend becomes your client, the relationship changes fundamentally, and not always in a positive way. Their assumptions about timeframe, scope, and cost may not be informed or realistic, and even if you try your best to set expectations, your relationship with your “client” may become strained, especially if the project is more complicated and takes longer than initially expected.
Even the practice and experience you gain during the process might not be worth the hassle. The technologies you use in the project may not be the ones which will end up being valuable or enjoyable to you. Often, your time could be better spent gaining skills that will be useful to you in your current position, or which you foresee using in the future. As for the “exposure” you receive from doing this sort of work, I will say that I have met very few people who have benefitted from the glorious reputation of being someone who provides free (or nearly-free) work to their friends.
If you insist upon this type of task, I recommend setting crystal-clear expectations for yourself and your client regarding project scope, payment, and your availability. My top recommendation is that there should be no deadline. Your loved one must understand that it may take you a month to finish their project, or it may take you five years. If this isn’t acceptable to them, focus your efforts on projects that will provide the best returns, and which won’t trash your friendships.
2. Keep your side projects small and fun - and finish them!
Now, there is a sort of side project which I do recommend, and that is the sort that you do because you want to learn something interesting in a fun way, free from deadlines and client constraints. It has been my experience, though, that these undertakings provide the most value (and the least stress) when you keep them small and fun, and when you make sure to finish them.
My favourite side projects have been short and sweet. If you bite off more than you can chew, the project will end up stressing you out and you’ll likely abandon it, so start new endeavours with the intention of keeping them small and self-contained.
Secondly, your project should be fun. I’m a big fan of silly projects, because I find that I enjoy them more, and the silliness of the project in no way detracts from its educational value. One of my favourite side projects featured famous quotations being delivered by goats; I had a blast every time I worked on it because one cannot be gloomy or grumpy while gazing at goats. The bottom line is that if a project is boring to you, you won’t want to work on it, so be sure to choose something that floats your goat.
My last recommendation for side projects is that you should make every reasonable effort to finish them and get them online. It is demoralizing to leave an array of half-finished projects in your wake, and they won’t impress anyone if they don’t make it into your portfolio. Plus, nothing feels quite as slick as pulling out a fleet of polished gems when a potential employer asks what you’ve been working on lately.
3. Keep your online presence up-to-date
Speaking of impressing potential employers while keeping your stress levels low, there is no undertaking that will benefit your sanity more when it’s time to switch jobs than keeping your resumé, LinkedIn profile, and portfolio site up to date, even when you have no intention of seeking a new position in the near future. It is extremely likely that you will eventually want to find other employment, and job searches are hard enough without the sinking feeling of realizing that you’ve not updated your online presence in years. Please take my word for it that updating everything at once is a monumental and overwhelming task, and that there is a better way.
As soon as you’ve mastered a new skill or completed a major task, put it on your resumé, your LinkedIn profile, and your portfolio site. Likewise, if you receive a glowing review from a colleague, ask if they’d be willing to endorse you on LinkedIn while their positive memories of you are still fresh. If your title changes or if you take on new responsibilities at work, make sure you add this information, too. Along with the polished side projects that you’ve diligently added to your portfolio, this will provide recruiters and scouts with a current picture of your skills. Plus, you’ll thank yourself when the time comes for you to seek out new pastures.
4. Embrace mentorship
My favourite part of the tech industry has always been the people in it. The moment I expressed interest in becoming a developer, those who’d come before stepped up to help me achieve my goal. At every step of my progress, others were willing and eager to assist me, and I made up my mind that I wanted to be the kind of developer who helps others as I was helped. I believe that mentorship should be one of the cornerstones of our industry, and as developers, we can take advantage of both sides of it.
Becoming the best dev you can be is hard, but it’s much easier if you’re able to find people you admire who can provide guidance and encouragement. Many companies set up mentorship programs for their developers so that less-experienced folks can benefit from the wisdom of those who’ve been in the industry a bit longer. If your workplace doesn’t offer this sort of opportunity, though, there are still lots of ways to benefit from the wisdom of others. In my experience, most seasoned devs are happy to provide advice, guidance, and code reviews when asked, so don’t be afraid to turn to your colleagues for help. Many of them may even be willing to act as an informal mentor, provided that you don’t monopolize their time.
Now, it’s worth noting that you don’t have to wait until you’re a senior developer to pay it forward. As a fledgling dev, it’s easy to dismiss your own talents and assume that you’re not good enough to help anyone. Do yourself a favour and kick that notion to the curb. No matter how nooby you are, there’s always someone who could benefit from your assistance. Even a more senior developer might not know something that you’ve mastered. As an added benefit, explaining something to someone else has the wonderful effect of cementing the knowledge in your own mind, so it’s truly win-win. There are lots of ways to help out in this industry, from offering to pair-program with a colleague who’s stuck to volunteering to act as a mentor for Bridge School or Canada Learning Code. No matter how you choose to help others, remember that your help is worth having.
5. Fake your confidence
In my three years as a developer, the piece of feedback I’ve received most often is that I should try to be more confident. Ah, confidence! It has so many wonderful benefits; people are drawn to those who are confident, and have more faith in their abilities. Confident people ace job interviews, rock presentations, and win friends wherever they go. Without a doubt, confidence is one of the best assets you can have as a developer; pity it’s so elusive!
Years ago, when I was a self-assured young canoe guide, merrily plowing my way through the wilderness with aplomb, a more reserved fellow guide asked me how I had achieved my magnificent self-esteem. I told her that the best way to gain confidence was by taking on challenging tasks and seeing them through, thus proving to yourself that you are a person who can achieve difficult things. I still endorse this method, but the tricky part is that this process takes time, and in the tech industry, it’s easy to feel like the bar keeps getting higher. Even if you're tackling challenges non-stop, it could take years to start to feel sure of yourself, and you don’t want to spend years feeling second-rate - take my word for it.
There’s one proven way to snag all the benefits of robust confidence without delay, and that is to fake it. I’m not saying you should pretend to be a smug super-star programmer; people may be drawn to confidence, but arrogance is another kettle of fish entirely. What I suggest is to dust off those high-school-play acting chops and imagine that you are a person who is ready to take on any challenge, who is curious and keen to learn, and who is undaunted by the spectre of failure. Once you’ve fixed this character in your mind, throw yourself into the role with abandon. Practice flashing a winning smile and saying things like “We’ve got this!” and “I’m new to Angular, but I’ll do my best!”. If this feels like deception to you, think of it not as acting, but as putting your best foot forward.
The best part of this strategy is that if you’re lucky, you won’t just fool others - you’ll begin to fool yourself, too. In considering how a confident version of yourself would think, speak, and act, you’re forcing your mind to reframe negative thoughts into healthier, more positive ones. Embrace the character long enough, and you may find that you become the character.
6. Be kind to yourself
Now that I’ve pelted you with well-meaning suggestions, I urge you to consider this, my final recommendation, as the most important one: take it easy on yourself.
Jumping into any new career is stressful, but the fast-moving tech industry can feel especially overwhelming. You may feel pressure to better yourself at every available opportunity by going to meetups, taking courses, volunteering, attending (and giving) workshops, and creating endless impressive side projects. That sort of thing is all well and good, and the desire to master your craft is admirable, but being a top-notch dev won’t do you any good if you’re burnt out and miserable. Yes, I know there’s a lot of pressure to learn this or that new hotness, and I know that it can feel like the industry looks down on anyone who isn’t hustling their ‘tocks off, but the quest for greatness is not worth your happiness or your sanity.
So go ahead and play Candy Crush when you get home, or take a bath while watching Black Mirror on Netflix. Your dev career will be longer and more fulfilling if you make your own happiness your first priority. Those smug folks who advise that you’ll never make it in this biz if you don’t attend a meetup every week can go suck a lemon; there are lots of happy, successful developers out there who prove them wrong. Besides, it is your right and responsibility to ignore any advice that you feel won’t promote your health and happiness... including mine!
How easy it is to sit here and dish out advice - how much easier than taking it! I wish I could say that I had diligently followed these tenets from the start of my career, but unfortunately, I learned these lessons the hard way, just as you will learn your own. If you somehow manage to master all of these suggestions, drop me a line and let me know what your secret is - I, for one, suspect that you may be a robot. If so, please put your superior intellect to good use and start building that time machine so that we can all go back and put our youthful selves on the right track. Let us know when you’ve got a working prototype - in the meantime, we mere mortals will just have to muddle through as best we can.