For a coding coach, it's exciting to read when a coachee achieved one of his bigger goals:
"Contract signed! 🎉"
Earlier this year, Dave set a clear goal for himself:
Get a junior web developer position at a sustainable company with a great team culture that's doing good in the world within 6 months.
That's ambitious goal-setting by the book, let's see what he did and how close he came.
I. Preparation Phase
We'll see 3 phases that I just made up while looking back and recalling his journey. They are intertwined, but the time investment usually crucially shifts in one direction once a new phase really starts.
Create Credibility For Yourself
Dave did a self-taught developer Bootcamp program at the Odin Project where he did The Single Most Effective Thing to bring you up to coding: Coding a lot of small and big projects.
Showing things that you've built is most important, BUT those things being backed by your effort in a community of some sort is unbeatable. And actually building up knowledge to show during interviews is what the Odin Project forces you to do.
An awesome alternative to the Odin Project that I always recommend is the remote Microverse Bootcamp where students figure a lot of stuff on their own while pair programming. Pricing model: Start for free, pay when you earn your salary.
If you have the possibility, I also really recommend immersing yourself in an in-person Developer Bootcamp (Checkout Le Wagon, if this is an option for you, they have an awesome offering around the globe).
Also, don't disregard university programs, especially if you are from a country where University programs won't throw you into a lifelong hole of credit debt like it's mostly the case in the US.
Level Up Technical Skills
Apart from the coding Bootcamp, Dave has emerged in different practices on his own and with other people to get him up to speed even more.
- Dave's working on a long-term web app project with another aspiring web developer
- He's participating in the Odin Project Bootcamp chatrooms to get help and help other people who got stuck
- He's participating in the weekly Odin Project Clean Code book club
- He participated in a Game Jam Hackathon organized by the Odin Project Bootcamp
- We've put an extra effort to speak about and exercise the right keywords that are important in software engineering nowadays: TDD, Refactoring, Clean Code, OOP...
- We worked together on a real-world issue from one of my freelance jobs which was a big proof of Dave being more than ready to do the job
- We paired just for fun on an Exercism challenge and recorded it during a live stream
The learning here is, there's no shortage of opportunities to get real hands-on experience!
Please note, most of the most effective practices involve working with other people. Software engineering is a team sport!
Show a nice door into your developer soul 🚪
Not a rusty one. ⼾
You will need a door after your LinkedIn page is brushed up and after you've pumped out one bigger or a few smaller demonstratable projects.
Many beginning developers make the mistake of wanting to code their portfolios from scratch. While it's a good enough coding practice, the biggest priority for your portfolio page is a good UX, a good structure, and the right information. Recruiters and potential future colleagues most love it at the first glance!
Unless you are already a skilled frontend or UX person or have someone to spend tons of time with you on making a perfectly designed portfolio page, take a better road:
Take an already awesome open-source licensed portfolio template in a technology that's relevant to you and add your information, play around with the template, and tweak it to your needs. Try to understand how and why the developer built it like that. Maybe fix a few errors on the way. Caveat: You'll still need feedback iterations on it. There are forums and places to get just that for your specific role.
We followed information best practices, he learned some open source and some React on the way, and probably even some good design practices. Win-win win.
If you don't really know the kind of developer you wanna be for the kind of company, try to come up with a little vision or a brand for yourself. One sentence can be enough for the start:
"I create [fun|maintainable] [software|games|web-apps] for [companies|users] X by following an approach of [conscientious coding and deliberate practice] with technology Y"
Depending on how much of a social media person you are, creating a strategy around being active on Blogs, YouTube, LinkedIn, or [YOUR SOCIALMEDIA PLACEHOLDER] is a great way to position yourself.
David made nice educational videos about his learnings and also a video about FAQs to make it easier for companies to understand how he is and where he stands:
Weekly Accountability Practice
We talked about the upcoming TODOs on a weekly/bi-weekly basis and pivoted whenever we saw the need to work on something particular in the current phase.
Being accountable and trying to achieve things while making iterations on your solutions is really important and valuable. At this point, you can also incorporate agile practices to prepare yourself for the Scrum-ish project management environments that you will encounter as a developer.
Finding the right accountability buddies and communities will take time, but it's the most effective way to make yourself do stuff and bring yourself through tough phases. I could have probably given up on my computer science studies after a few months if I haven't talked to developers when things got rough.
II. Application Phase
Shit gets real here. And at the same time, you are exposed to the most artificial and flawed process in this universe which gets people together with companies: The Hiring Process AKA Recruitment. You can despair on it.
But, if you see this as an opportunity to learn, grow, and have fun communicating with other people, all of a sudden, this process becomes a blessing.
Destructure Your Background
David had a bit of a techie university degree (economy informatics) from 10 years ago, but his background over the last 10 years was mostly non-tech related and all over the place.
The first thing to understand here is that "diversity" is held high on most companies' hiring agendas. Diverse backgrounds of any kind bring spice into today's software teams! Even though it's not a full reality yet, I see more and more of this and I experienced it a lot during my job search and those of my coachees.
The second thing to understand here is that your background matters! Everything that you did might have a core that can benefit you in the software engineering team sport. Are you convinced that your background is not worth anything in the industry? Please shoot me a message and we'll destructure it! ;)
We extracted his strengths and built up some confidence around them. This is what you need to get your mindset right.
Choose the right portals & make them shine
One strategy on getting hired is spreading wide in terms of job portals. Instead of just trusting in LinkedIn to find the right match for you where you hit the "Apply Now" button and your job magically appears.
The right portal will depend on your company and industry goals.
Additionally, engaging in communities, conferences, and meetups can be a huge booster.
There are a few tricks involved in making yourself discoverable and look employable. It's sad but true that in order to get in touch with companies you need to apply some tricks on your job application platforms. No need to make anything up, just use the right sections for the right information with the right emphasis on the right things.
Or check how Bootcamp students do it. They are trained by professionals to do it in a certain way and this is what works in terms of discoverability.
Have a plan
Applying for jobs can be very tedious and nerve-wracking. Apart from adjusting your mindset to this process, it's essential to have an application strategy and plan, to expose yourself effectively:
- apply often
- apply in the right places
- have "passive" application sources (e.g. Honeypot, Circular.io, etc.)
- never miss an opportunity to communicate
- stay positive at all times even if you are enraged :D
- embrace rejection
- always follow up and/or kindly ask for feedback
- value the time and the interest of the companies as you value yours
- trust the process! It works in your favor, although sometimes it seems not to
Without the proper plan and execution, it's possible that you suddenly find yourself in the I. Preparation Phase again, without even noticing it for a long time.
If you wanna do a little extra to really make things awesome, consider adding a few more perks to your journey.
Really know what you want
David had a very concrete vision. His vision mixed into a result that's maybe not 100% the exact thing he envisioned 8 months ago, BUT it comes very close, I think. So he looked for the right companies in the right places and put effort into communicating with companies on an individual level. This is much harder than just clicking "Apply Now" on LinkedIn. Finally, knowing what you want and communicating your vision makes you more special as a candidate.
Track your time
A timesheet keeps you accountable and makes you understand better how you spend your most valuable asset. An Excel sheet is fine, probably even a physical sheet. I personally love to be in a timer flow with the Kanbanflow tool (https://kanbanflow.com) which has managed my projects in the last few years.
Train your tenacity
One thing that really amazed me is how Dave tackled some tasks on his own to explore and really understand some issues that he wrangled with. Tasks where I would have googled the solution up a long time ago or spammed chats and friends with questions about it :D
Variety is an option
Working on multiple projects simultaneously can be a great practice. Sometimes you are stuck, here's where you can formulate a nice-looking question for others to answer and work on something else in the meantime. Focusing on one thing at a time is fine too, depending on your support environment (maybe you have someone to help you at any time, like a Bootcamp teacher?), your style, workload, and personal preferences.
- Do stuff
- Look at what you've done
It's a superpower.
So what was the actual result?
Within 8 months, Dave got a well-paid internship at an awesome company with a great team culture that's mission-driven to make energy consumption more sustainable.
But once you can say:
"Contract signed! 🎉"
Is it all over? No, the journey has just begun. Now you need to refocus your time and energy on your company's needs. Prepare your skills and mental models to extract the most fun from your upcoming experience! But also don't neglect to celebrate and to take a break 🌴 Your brain should reshuffle and come up with a new awesome vision. So that in a few months time you can say again:
"XXX achieved! 🎉"
P.S.: An integral part of our collaboration with David was to get to know each other well, so please know, if he was a fruit, he'd see himself as an Avocado 🥑
P.P.S.: Setting goals isn't without implications and often includes vectors that you can't control. They can be a source of frustration and lead to giving up in the worst case. I love the alternative approach of building habits which lets you focus on things you can control for the most part.