In August 2015 I decided to give programming a shot. In March 2016 I got into my first job in software engineering. I had no idea what software engineering is. But I was there. And you can do this too.
How do you get a job after 8 months “giving programming a shot”? Well, there are many many variables and unknowns to consider but I will outline a few important factors in this guide.
In essence, it's always about what you can show to your potential employer. If you reach out with nothing, most of the time you will get nothing. Let's assume you are at zero. You don't have the holy grail of a beginner's job application: Your Portfolio Web Application. Maybe just a few static websites, you've struggled together, but it's not much. Tabula rasa. You still have potential assets, though:
- Your personality (social network, blog)
- Your motivation & activity (GitHub & groups)
- Your background (niches & personal interests)
Combine it with this favorite quote of mine and your first job becomes an inevitable near-future event:
“Continue, insist, persist...”
(freely translated from Spanish)
The Gamble
With no technical skill, your application is merely a promise that you will build the skill and give 110% to help the company where you can. Getting you the job is a gamble for both sides. Neither the employer, nor you really, know if you’ll perform well.
If you build your personal story that shows off all the points above, you’ll create a position for you and for the employer to believe that you can do it.
So, let me show you an example of how it worked out with my very first developer job, where I had very little actual tech experience, and let me give you some tips for the different areas.
1. Your Personality
Before getting my first job, I had little evidence of personality to show off, only having a fake Facebook account and an almost non-existent LinkedIn page. I still positioned myself as an avid learner and an open entrepreneurial guy, given my dynamic and international background 😎.
Get to understand the different types of companies and try to make clear to them which personality traits that you have can be beneficial to them. Let’s chunk the company types in a few rough categories:
Agency
A common agency builds lots of different projects for different companies. You’ll need to show that you are flexible, but yet made of steel and that you are comfortable to switch between projects.
Consultancy
As a developer in a consultancy, you might want to present a similar skillset as for the agency but here you should give more focus on presenting yourself and your communication skills.
Product
A product can be a SaaS, a game, an online platform, or whatever you can package as an IT system and sell to people. With product-oriented companies, you can focus on showing your desire to deepen your technical abilities in the tech that drives your
Business
Businesses require developers as they grow. With a lot of personnel comes a lot of development and maintenance in in-house apps, ERP, CRM, and other business applications. You will be in great shape if you can show that you care about the business and that you can think in terms of business-impact-first.
Start-ups
Start-ups are special in the sense that they require an even greater detail to responsibility and focus. You’ll also particularly benefit here if you can show off entrepreneurial traits.
So, no matter your circumstances, position yourself and have a story to tell about why you came to this company, industry, and job position.
2. Your Motivation & Activity
A few months into my studies, there was a guy who told us that we must have a GitHub account, that we must learn to work with Git, that everything must be open source, and that all the stuffz we are creating do need to be in Version Control Systems.
I must say, that was golden advice. Besides learning this crucial engineering skill from the very beginning and enjoying its many benefits year after year, it gave me another window into my developer portfolio.
You can’t really measure the effects of a mediocre GitHub account but many employers and HR people will actually click that link. BUT, keep in mind that they are really busy people.
They usually won’t look at your repositories or read your code but they often will check your activity and your pinned project names as well as languages. Do you think 200 commits per year shows that you are an active developer? Or at least a 100?
There are some fun ways to activate your GitHub account, which I handle in a separate article. That being said, you still should learn how to write good quality code, and you will be best off creating a full fledged web application for your next application.
Another powerful action to show off your activity and motivation would be to affiliate with a group. Being a student at a University gives you a big boost like in my case. Students are welcome to work at companies in Germany, the country where I studied. There is a whole ecosystem around that.
You don’t necessarily need to study, though. I’ve met a lot of self-taught programmers who made their way through, but I don’t remember any of them pushing through it alone on their own.
There are many options to go into cool affiliations! Having gone through a bootcamp will definitely give you some credibility and contacts to start off.
What I also found extremely helpful over the years, is going to different types of meetups, workshops, and conferences. People whom I’ve met there influenced my path enormously. I’d be scared to compare what I would have had now if I stayed at home.
If you can get in touch with the organizers and help them out, you’ll see these little things compounding over the years.
Things you learn on the technical and on the soft skills side when going out into the wild is really tremendous.
But you don’t necessarily need to physically go out. You can become an authority inside open source projects, online platforms or course platforms. It looks really great on your CV if you become a volunteer coach of a Coursera Machine Learning course. Or if you are a mentor at exercism.io. Or even better, if you start actively contributing to an open source project.
This will require you to first master the courses yourself which can take a bit of time.
But even having a bunch of StackOverflow points or a Coursera certificate of completion for a hot topic you are into will already add a good bunch of extra points to your young developer portfolio.
You should choose the tech gatherings that support your current background or if (you think) you don’t have a background at all, they will help you to create one as you will see in the next section.
3. Your Background
My first job was at an e-commerce agency. And it wasn’t a coincidence at all. I had an eBay shop selling hundreds of articles. For that shop, I had a funny Jimdo web presence and a fairly ugly HTML/CSS template. Still, those were some nice assets to apply at e-commerce companies.
I was a potentially interesting guy for my past employer who built e-commerce integrations running with eBay. Me being a good coder didn’t matter so much; my experience with eBay and my potential motivation to use their tools did.
Now, while having my first job, my LinkedIn account grew, my GitHub account grew and my tech skill grew, too. My “background” grew and changed as well. I stopped selling online, became passionate about testing, became interested in Machine Learning, became even more interested in DevOps and Data Engineering...
My background story when I applied for my first job was completely different from the story 1 year later.
Now Create Your Game Plan
"Continue, insist, persist…"
With my first job, while I haven’t felt ready at all, I still asked literally anyone and everyone who worked in the software engineering industry and seemed to do a somehow interesting job.
I thought they’d never take a guy with my experience and skill, but I also knew that the worst thing that could happen was that I will gather some experience and some scent of what is going on in this software engineering industry, that I was studying.
How I actually got the job was: I was trying a tool to see if my eBay templates were responsive enough. I saw that this tool was “Made with 💚 in Berlin”. So, I wrote them a short email and asked if they have a student software engineer job for an e-commerce fan. Next day I was in their office and after a quick talk we decided to give it a try :)
Another favorite quote of mine when it comes to applying and job interviews:
"Practice, practice, practice…"
Interviews
There is never the point where you are ready to get yourself first interviews. Exactly as there is never the point where you are ready to start to learn software engineering. You just do. And then you practice.
Every job interview is an invaluable learning experience. Try to take out of it as much as you can. I learned a lot about the tech industry just by having dozens of interviews. I learned what’s important in tech. I also got into the amazing world of Test Driven Development after an interview at eBay.
You will fail a lot, but if you take some time to reflect on what happened at a particular job interview, you will do the next one much better! You best practice interviews by actually doing interviews.
Tech Skill
You demonstrate your tech skill best with a real project. For some companies you’ll also need to brush up on your Kata skills as well as on your coding Challenge skills. These are crafts on their own and should be practiced on a regular basis.
So with that in mind, here is your ultimate “Get my first developer job story”. Again every situation is different, so let’s instantiate Bob at this point.
Bob
Bob is 19 years old, he just finished his first Computer Science semester in University and he wants to get hands-on experience as quickly as possible.
Fun fact about Bob: He is based on a true story because he studied with me and was an inspiration to me.
Apart from that and a few Java tutorials, he doesn’t have much experience in software engineering at all.
He set out to find a job as his most important priority right now, besides doing the learning for University.
Bob figured that he can spend 2 hours per day on finding a job. From his friend Rich, he heard that he should get interviews as quickly as possible.
Each day will start with browsing the available job offers. He decided to scan daily:
- StackOverflow
- Some locally available developer websites, like landing.jobs and joppy.me
Bob’s first and foremost goal is to get hand-on experience, so he doesn’t really limit himself to a special company type or industry.
Instead, he spends the rest of his time on...
- Becoming active in local Software Craftsmanship and Security communities (Yes, he likes math 🔮)
- Work through all challenges on exercism.io in his favorite programming language with the goal to become a mentor
- Training mock interviews on leetcode.com
- Every piece of code he creates for the different coding challenge platforms he codes in his own IDE and pushes to GitHub
- All his study projects and attempts are tracked on GitHub, too
Finally, after a few weeks, he finally gets a few calls from HR. He talks gibberish on the phone as if he was from another planet. However, he learns to understand how these modern interviews work and what HR people tend to ask.
On his 4th phone interview, he has all the answers to all the questions ready to go and saves him his technical interview.
The technical interviewer is the tech lead of Bob’s potential future team himself! They have a really nice conversation about the importance of mathematics in programming 🙊. After a few technical questions and a short whiteboard test they say goodbye.
Then, a week later Bob gets a phone call that he is into the game!
Luck
Even if you don't have to show off lots of skill at the moment: Somewhere, there is a person looking for someone with your personality, your background, your potential, and your attitude.
Someone with whom you can talk about math and ice cream burgers.
This person will honor how you are right now and look forward to your development in all areas. You just need to be lucky and bump into this person.
That being said, getting lucky is not a random event. Well, it comes close to random, if you do nothing. Then the probability of you getting a developer job is close to 0, just if you meet a guy who knows a guy.
But you want to make it your inevitable destiny. And you can do this by taking action and influencing the relevant factors.
Take a moment and write down, what you can do right now to get it moving.
Need Inspiration? Here is a little Summary:
TL;DR - Your What To Do Options
Build your personality profile
- create a LinkedIn profile
- tweet daily about your learnings in a particular topic
- start a blog on a particular topic
Show that you are active and motivated
- Have an active GitHub account
- Finish a side project
- Visit and organize conferences, meetups & workshops
- Complete coding challenges
If you are lost on your own ideas, consider finishing some courses with completion certificates or some professional certifications.
Create your background story
Problem Solving
Look at people’s problems and solve them with the tech skills you have right now, e.g.
- build a website
- build an app
- build an integration between different services
- help people to decide how to build something, draw some architectures
Open Source route
If you can't find a real problem to solve on your own - there are many big and awesome open source projects that you can contribute to. Need help to look for one? Become clear about your interests and post in the comments or shoot me a message, we will certainly find something!
The social route
There are many companies like NGOs, but also for-profit companies like ThoughtWorks who are very big on social projects.
You can join communities, meetups, and volunteer projects as a techie in that area. There are also tech-focused groups like Data Science for Social Good.
Data route
If you are like me drifting towards doing stuff with data, you might find interesting platforms like Kaggle if you are more on the statistical side of things. There are plenty of meetups in the data space, too.
Infrastructure route
Create stuff on AWS and follow up with a certification (I don't recommend certifications per se, unless you need them for something really important). But they can be a thing if you really have no idea what else to focus on.
E-commerce
This one may be far-stretched from a usual developer's life, but if you are more on the entrepreneurial side of things, you could actually start your own small eBay shop and add some integrations to it, create fabulous HTML/CSS templates, and integrate it with other stores.
Building Websites
I know quite some students who started their own small companies right in the first or second semester of their studies. Simple websites are simple and in high demand and a great place to get your feet wet in the digital/entrepreneurial space.
In case you still don’t trust your tech skill to make products for real people, I also know digital agencies who run almost without code at all. Building a website nowadays is a matter of being a communicator, a good Googler, and a person who likes tech at least a bit. You can do it for sure.
"Continue, insist, persist... && Practice, practice, practice…"
... then opportunities will come in naturally.
Good Luck! I’m looking forward to hearing about your job opportunities!