In the interest of how people consume content and knowledge across the world you can read, listen or watch this post.
I have recorded an video version of the article to make c more accessible and for those who enjoy to watch rather than to read.
I have recorded an audio version of the article to make it more accessible and for those who enjoy to listen rather than to read.
The small print
If you know someone who could benefit from a developer mindset, pre signup to my forth coming book codeiscurrency.com.
To anyone who would benefit from having a 20-minute chat with someone experienced in the industry please drop your email here alternatively if experienced and you could offer a 20-minute chat to someone junior email here.
Where do I start as a new developer?
I wish I got asked a lot more "where do I start as a new developer?" this happens rarely, and it turns out that new developers just don't want to ask. There is this belief that those more experienced are busy 😂 which if you saw how much more experienced developers mess around with home automation or build open-source libraries, you would know this isn't the case.
To combat this fear in junior developers reaching out, when I see someone online post something under #100daysofcode or similar, I Twitter DM them some words of validation (we all need that even if its from someone we don't know) and almost always in that message exchange I get asked in a roundabout way "how do I get a job?".
Five weeks ago, I was taking part in a Twitter space (twitter's audio feature) conversation discussing the topic of supporting junior developers. The feedback and advice were good, advising things that developers should be doing; update this, setup that, but I always wondered if just a chat would be as helpful with someone in the industry. It doesnt have to be someone who a junior developer may think has "made it" but a developer who has got a few scars and can pass on some knowledge to someone writing their first bit of code. I tweeted out the below and expected 5 or 10 messages back, I have done similar before with zero replies, but this time is was picked up by few tweeters with a broader audience who shared it.
I woke up in the morning having been retweeted 100 times, and over the next few days, I would get 135 DMs to my Twitter. For context, I have 1k followers and rarely get more than ten likes for my witty humour or travel posts.
Currently, I am travelling around the world with my family and not working, so I have time. We were also about to enter a ten-day hotel room based quarantine, so the timing worked well, and I have a super supportive wife. So at first, I was going to pick the first ten people, but then I read some of the messages, and it was hard to ignore the others. So I did the math 135 people x 20 min chat = 40 hours or 4 hours a day for ten days.
So how do you arrange 135 calls and give some value to that 20-minutes? I sent out a link to a Vimeo video explaining this would be a no small talk, problem-solving, no bullshit chat. Matrix red pill all the way and provided a link to calendly to book a 15-minute slot. I left 5 minutes between each call in case of running over and, of course, any needed loo breaks.
Those 135 DMs turned into 70 sessions booked in a few days, and those 70 sessions had 38 people turn up from across the world. I also had a bit of a privileged learning moment, well there were many but this one struck me. I was waiting on a call with a guy in Kenya, and he turned up with 4 minutes to go, and I thought "what the f*, turning up right at the end", we spoke, and he explained and apologised profusely that the electricity had gone off in his town/village, so that's why he was late. Get me, and my elite "everyone has electricity" mindset 🤦♂️.
During these conversations, we discussed many aspects; some people just wanted to chat, others had a plan and wanted some direction, but many just needed reassurance. I wanted address the core concerns of many developers I spoke with and write it up in this post to help others.
Now my perspective is precisely that, just mine so take it with a pinch of salt, and if it doesn't vibe with what you want to do, then no problem. Also, I am very lazy, so I will always try to shortcut my way through a problem in the easiest way.
Jobs all ask for a computer science level degree?
No one gives a shit, yes there will be a company that will ask for it, or you may feel less confident because you don't have it, but in 2022 no one gives a shit about your degree. People want to see what you can do, so if you have learnt coding on your own, via an online Bootcamp or studied a 3-year degree, own what you have learnt and show it, it is all about the confidence you have in yourself.
I wish there were a tool that new developers could try. It would show them which programming language best suits them, so many people get pulled into the current "sexier" languages or frameworks "react I am looking at you". In the absence of this mega tool, I would advise trying the basic levels of a few languages on Freecodecamp and just getting a vibe, then watching some videos on YouTube and building your way up.
What should go in my portfolio?
So, where do you start if you don't have any commercial work experience? The first thing to remember is that whatever you build early on will look crap. However, you will still compare yourself to a product designed by hundreds of people across disciplines, with more much experience and with many more resources. Please try not to do this 😁.
The key to your portfolio is to publish your content and not procrastinate that it doesn't look good enough. The objective is to showcase your understanding of a problem you are trying to solve and the code (if code is needed) that solves it.
So what does your portfolio have in it? The first is commercial work, but you probably wouldn't be reading this post if you had this.
If you need something to build as you are not fresh with ideas, you can solve problems in your own life. Build a technical solution, drop the code on GitHub and talk about how and why you built it in a post; it is that simple. If you live a life with no problems, firstly congrats 🥳 but then it's time to find someone else with problems. This can be local community groups or charities, family members with businesses, that friend who 100% thinks their startup idea is going to work. If you are a developer, find a designer who has an incredible design on Behance (or whatever the cool kids are using in 2022), create it in code, and then write up about it and send it to the designer. You now have a peer friend in the industry, and your network is 100% larger. Just get coding and writing it up.
Finally, in your portfolio, do you have a superpower? What can you stand out with, can you speak another verbal language, have you played with tech in your spare time, do you love home automation. Listing those things may give you an edge over the competition. When a company lists a junior developer role, they will get many applications worldwide, especially if it is a remote role. Speaking another language means you can add something extra to the company that has an office in Spain or that the interviewing developer spots that you also love hacking away at your home lighting system too. You now have something to discuss. This is how you make that connection that separates you from the others in the application process, and your portfolio is the first glimpse a company gets of you, so make it you 🤘.
How do I network?
Networking is complex most of the time, but it is even more difficult during the current global situation, and if people do not energise you, it can make it more difficult. So how do you hack networking as a newbie?
Currently, in-person conferences are limited worldwide, so it may not be possible in your geography. However, virtual events are still going on, and they are a great way to build credibility and get to know people by getting involved. People think that conferences are a place to learn, and though you may gain a few golden nuggets of knowledge, conferences are all about networking.
There are two good ways to get the most out of conferences. Firstly, most conferences recruit volunteers to help with ticket entry, provide general assistance for speakers, and run around like a headless chicken. Even with virtual events, there are ways to get involved in the organisational team and at worst, you will get a free conference ticket.
The great thing about being a volunteer at an event is that you are staff, so walking up to an attendee or speaker to ask if they need anything is kind of your job to remove the awkwardness of a conversation. During these interactions, don't ask for a job or something crazy. Just be around and see what they are currently working on; everyone enjoys talking about themselves. They are just humans and not that far away from where you are. If you have a specific question that the person you are talking to can answer well, go for it. At the end of the day, what is the worst that can happen? You get fired from your volunteer gig.
I never understand why this insight doesnt get used more but a key technique Ive used is speak early. Heres what I mean. If you have ever heard a conference speaker talk to more than 50 people at an event, there will likely be a queue of people wanting to speak with them at the end of the talk. At a conference, queuing is a waste of your networking time, and you then get mixed in with the noise of everyone else and forgotten. People don't tend to engage with a speaker before their talk, not right before when they are about to go up. But, you will notice there are more windows to speak with them before than after and if you make yourself known early, you have more chance of further engagement afterwards and can start building them into your network.
Finally, if you are ok with speaking at events, then breaking into the conference space is difficult but worth the effort. What I have done myself and seen others do well is to first start with some local meet-ups that are looking for speakers. Then when you are ready to hit a more significant event, pick a new subject that no one is yet talking about. This is how I got to speak at NDC London without much public speaking experience because I picked ML.NET, and no one, not even on YouTube, was talking about it at the time. All of this is increases your experince and broadens that network whilst raising your profile.
Becoming a part of a community to find your peers may be the number one thing you should take from this article. Local meet-ups are widespread in the UK, and a quick search on sites like meetup.com will identify if any communities exist near you. If you are looking for a developer role within your locale, there should be a tech meet-up of some type you can attend. If not, you could found one yourself (being the host of x meet-up is also a good signal when applying for jobs). I know many developers who have said listing co-host of X on their resume edged them over their competition. Attending these local events will give you an insight into what companies are in your area, the technologies that people are working on, and your peers' levels. These meet-ups are the first place developers will find new tech talent. If you want to get onto the top of a list of applications, there is nothing better than being recommended by someone already in the team that has started to get to know you over some tech talks and pizza.
A mini shout out to Eddie Jaoude (GitHub star of the year), who cant get further than five words into any discussion without mentioning open-source. Eddie created EddieHub, a discord community of almost 5k people helping each other on their development journey. Microsoft now owns GitHub; many of Microsoft's products are hosted on GitHub. You can contribute to or fix issues and see your changes inside the product, which is the case for many companies. You need to find the ones that vibe with you.
How do I get a job?
"I have emailed 100 companies, and no one has ever got back to me".
The fire and hope approach, of course, will work eventually. That is just math, but you may be 73 years old by that point, and this approach doesn't help you pick the role you want but makes you live in the hope any role will choose you. Let's increase the odds.
One of the biggest hacks I have seen for developers wanting to break into roles is to contact developers at companies they want to work at and to do this early on, not when they want a job (desperation is hard to hide). Firstly, when contacting these developers, don't be a dick; think about what would resonate with you if you were in their position. I have done this myself up to and including at the CEO level. The key is having a genuine question and an answer that will help you.
For example, when we were thinking about opening our first international office in my app agency, I scanned LinkedIn and looked for agencies operating across different countries and fired the question.
"Hi, I see that your agency X has been operating across 3 countries for 6 years. I have been running my agency for 5 years now, and we have an opportunity to open a second office in X country. I heard you speak on X podcast and would find your thoughts valuable on the following if you have time? I completely understand if not."
A similar outbound for a developer could look something like the following:
"Hi Bob, I am a developer working in vueJs. I watched a talk you gave on using Vue js and form validation and implemented the example in this contact form on a site for my local community football team. [Similar to you, I am based in Manchester. Do you know any vueJs meet-ups where I could learn more.]"
The last part in [ ] is your ask, but again don't be a dick about it. If you are sincere, you will be surprised by the number of replies you will get and lay the groundwork for mentorship, feedback or just networking.
So how is this going to get me a job, you ask?
It's not, doing all the other stuff is going to get you the job opportunities, but getting someone on the inside or someone experienced vouching for you will be the thing that puts your resume at the top of the pile or when it's down to you and someone else this will edge you over the finishing line.
How do you compete when you're older?
When getting into tech, particularly software development, there are images of hoodies and flip flops with scooters and ping pong tables in an office. So it can feel almost impossible to break into later in life, but times are changing as technology eats the world. Companies are looking for domain knowledge and guess who has that, older people.
Imagine being someone who understands farming because you have been a farmer and can now code. You are a freaking dream hire to an agricultural tech company. In this case, don't find roles but find companies. It is proven that most people who read a list of job requirements and see that they don't fulfil them will then not apply. But, if a company is growing and hiring for several roles and you email with your skills and domain experience, then why wouldn't they want to talk with you.
How do I get honest feedback?
The most powerful word in your professional career is "Candid", regardless of what the media tells you, 99% of people in the world are good. Most don't want to be mean or negative, especially friends and family. There are laws that very much protect employees and potential employees in a work setting, which means employers will always be cautious when communicating with you during hiring. This is typically a lovely situation, but when you are trying to get a job or enter a new industry, this isn't helpful as you need to understand what you need to learn/improve upon. The word Candid changed my life, it sounds crazy, but it has provided me with that level of benefit.
When you ask someone for advice or feedback, if you add the word Candid, "could you give me some candid feedback on X", you are giving the person you are asking permission to say something negative without recourse.
You can double this up by also asking someone the negative. Remember, people want to be friendly, and people also find it easier to agree with you so:
"Do you like my hair?" - hard to say no to
"I have my hair in this style, but I am not sure. What do you think?" - permitting the person to offer an honest opinion.
In your professional life, you can use both of these, let's say you have applied for many jobs, but nothing has gone past the first stage, then you can ask the following:
What people typically ask
"Can you give me any feedback on my portfolio? "
But what if you asked,
"I feel my portfolio could be better to get this role, and I would like to improve it? Could you give me some candid feedback on where I could focus?"
I hope our conversation was valuable to all those that I got the opportunity to speak to and I am looking forward to our follow up calls. We shall talk again when my internet isn't crap, hopefully within a week.
To anyone who thinks they would benefit from having a 20-minute chat with someone experienced in the industry, drop your email here.
If you are experienced and feel you could offer 20 minutes a month to speak to someone, listen and share your experience, please drop your email here.
Here's to an incredible 2022, everyone 🤘
If you know someone who could benefit from a developer mindset, pre signup to my forth coming book codeiscurrency.com.