Do you think about changing your career path and becoming a developer? I have already switched to this path and I will willingly share my experiences with you. In my case, everything started a few years ago, when I was programming a little bit in my free time, but unfortunately I never got the idea to do it professionally. After a few trials in other fields, I finally decided to train in an old hobby… and here I am, one and a half years in Naturaily, being part of this awesome team.
Step 1 – Think what you want to do in your life
It may sound very general but. in fact, every great journey begins with a great concept. So if you just got an idea to join the IT industry, let’s get a little dreamy and consider all possibilities you have. What’s on your hobbyhorse? Do you like to work with people or maybe you are the introverted type? Are you a math genius with a passion for puzzles or a more creative mind with a fondness for good design? Are you better in understanding people or machines?
In a nutshell: frontend development is about designing and implementing the surface layer of apps to meet the needs of the business and individual app users. Backend development – in contrast – is deciding what’s behind the scenes by creating hidden processes controlling the overall functionality of an app or a website, working with the server and databases.
If you want to become a real professionalist, you need to enjoy what you’re doing. So do some research for particular technologies and if you just feel that some part of this whole IT world is something you’re into – go for it.
Step 2 – Verify if your idea is what you really can do
As we’re done with dreaming, it’s time to verify if something that you think you like… is really what you like. Being a developer is somehow idealized by the media – huge salaries, remote work, using all these awesome technologies… but this career path also has its drawbacks.
So let’s give it a little trial. Take a free programming course on the matter you think you may like, such as frontend or backend development. Think about it seriously and consider it a sample of your future life, something you will do during the next months, and then – years. How does it feel?
Remote work seems like a perfect solution, because you don’t need to go to the office every day, you can take a package from the delivery guy at any time and even reconcile work with travelling. But are you able to spend long hours in front of your computer without getting distracted? Won’t you miss the perfect office coffee with colleagues? All these awesome technologies are fascinating but do you feel determined enough to long searching for the bug if something is not working as expected? And last but not least – focusing only on money can easily let you down, because good money goes with good skills which takes time to learn.
I don’t want to discourage you – being a developer is an awesome and challenging journey. So, as you should now be 100% sure it’s something for you, we’re ready to go.
Step 3 – Think about your possibilities
When I changed my career path, a lot of friends started to ask me questions like – “is it possible to become a developer in half a year?”, “how long does it take to become a developer?”. It is not possible to give one answer – as always: it depends.
First of all, it depends where you are in your own life. A first year student who feels bad about his or her chosen field of study will have an absolutely different point of view and learning possibilities than someone who passed their studies a long time ago, has kids and/or a mortgage. I strongly believe that, if you want to become a developer, you will find a way, but this way needs to match your life. The learning process will stay with you for a little time, so think about how many hours and how much money you can spend. Is it better for you to to spend many long hours over a shorter period of time or are you rather a marathon runner who can stick to one habit for a long time?
When I decided to change my career path I was already after my studies, working full-time. I couldn’t just take a few months off and focus on learning so, for me, a marathon was the only way to go. But there is no good or bad way.
Step 4 – Choose a learning method which matches you most
If you want to become a developer, there are plenty of learning methods to choose from. Every possible piece of knowledge is available online for free, but you can also take paid courses or even whole studies or bootcamps. The overall rule for it is: the less you pay, the more time you need to spend and the more effort you need to give. But of course, money alone won’t learn you a thing.
After a career rearrangement decision, I started to learn from free sources on my own, because I already had some basic experience with coding – at least I thought so. But, after a few weeks, I noticed that without a clearly defined learning path I am flying blind. After my full-time job, I didn’t have much time and energy left, so for me a bootcamp was the way to go. A clearly defined path and maximized learning efficiency was what I needed to stay on track. But there are no good or bad solutions here. I’ve met self-taught developers who didn’t need such help and were able to deal with the learning process themselves.
Step 5 – Find your support and join the community
One of the biggest perks of the IT world is the incredible community – there are plenty of groups on Facebook, as well as other organizations on this matter. You may think about it like an unnecessary addition, but I’ve discovered that the most awesome things I learned, I learned from other people. The community won’t teach you hard coding skills, but it can help you if you get stuck or need someone to recommend some cool tools and tricks.
You can also have a talk about more life-based stuff, such as the real experiences of being a developer, getting a first job in your city, reconciling learning with other activities or even just tips for arranging your home office. Being a dev is not only about coding and it is good to get steeped in the environment before you go to your first job.
Step 6 – Be patient and don’t give up
Prepare for a fight, because learning to code is not easy. Of course, there will be plenty of doubts, exceptionally sticky errors and blockages. It is totally a normal thing, as people often joke: these are not bugs, these are features… of your future life, I suppose.
Learning to code is not about writing as many lines of code as you can – it is about understanding, problem solving, mastering the talks with uncle Google and all the little synaptic “clicks” in your brain that you experience on the way. They will click more often with the time, I promise. But, as terrific as this is, remember to stop when your head is already on fire. Your mind is doing awesome things for you so, from time to time, remember to say ‘thank you’, close your laptop and take a walk to get at least a little fresh air. Take the support and use your mental fuel rechargers – nothing is worse for the learning process than burnout and exhaustion. Sometimes, the best problem-solving ideas occur on the way from the grocery store, after a good sleep or during a home spa session.
Step 7 – Don’t speed up – understand the basics
If you already see some results of your learning process, you know that getting things done fast and effective can be very tempting. There are plenty of tools to speed development up, such as libraries and frameworks. They are nice companions for more experienced developers who can collect the stack they need, but abusing and misusing them during learning can cause great harm to your skills. The overall rule I try to follow is – don’t use anything if you don’t understand how it works. Of course, at the beginning of the journey, there are a lot of things we don’t understand. I’m mostly referring to complex or ready-to-go utilities here.
Step 8 – Practice is the way to go
Here’s a common scenario – something often seems easy when someone else is doing it on a tutorial video but then you open your IDE and don’t know what to do. Or perhaps some unexpected error is occurring in your console… That’s why only the practice is learning how to code, as well as all the stuff around it – such as how to work with the code editor, how to use new tools, how to read the documentation and searching for solutions in Google or technical forums. Every kind of practice is a good thing. If you’re serious about becoming a developer, you should do some projects. When you’re tired with bigger projects, maybe try short kata exercises instead (e.g. Codewars)? Interactive tutorials and coding games are good to add to your list, too. The more you code, the better you become.
Practice is not only making you a better programmer but also lets you gain a lot of confidence. With most common problems, you will start to register patterns and use them at ease. You will learn to manage your time and focus which can help a lot if you will work remotely in the future. And believe me – the recruiter will see if you spend a lot of time on your projects or just watched a few tutorials without coding a thing.
Step 9 – Create your portfolio during learning
Whatever you’re doing on your own or whichever course/bootcamp you’re going through – create your portfolio on the go. Use Github from the very beginning, create repositories for every project, write a short readme file to collect information about what you’re doing and how to use tools. After a few weeks, you will not remember the setup details or specific tool usage. Utilizing Github is also a valuable skill itself! If you are used to standard git flow, you make well-named commits and maybe even a little branching in your repository, it will be a strong point in your resume. You’re one step ahead.
It will also be easier to apply for a job then. I’m more than sure that one of the first questions during the recruitment process will be about your code, Github account or projects which can be seen. Don’t be ashamed of your first, easy projects or trials that were perhaps not done as well as you would like. Of course, in your portfolio, you should present your best side, but these repositories will only show your progress and ability to learn. I suppose every developer feels a little ashamed after seeing a few months’ old code, because we’re learning all the time, aren’t we?
Step 10 – Join some events, workshops or hackathons
As you already know, if you gave point 5 a try – the IT industry has an awesome community. I still can’t get used to how open to help others and share experiences these people are. I’m surprised all the time with the initiatives and overall selflessness I experience.
Events, workshops and hackathons are fantastic learning opportunities – you can simply learn from the best in a non-formal atmosphere. Other people’s experiences can open your eyes to unknown career paths and interesting fields. If you meet a lot of people, you will notice that some of them are similar and some are totally different than you. Observing more experienced soulmates can be very inspiring and motivating… and you can ask for solutions to problems you’re facing in your learning adventure as far.
Also, it forces you to grow and leave your comfort zone. In your future job, you will probably have to do it anyway’ you will have to finally show your code to others and be open to constructive code review. The earlier, the better – it will only make you more professional.
Step 11 – Keep yourself updated
Programming is not something which you learn once and then only gain experience. To stay a relevant developer, you need to keep yourself up-to-date. How can you do this if there are releases every day? There are so many programming languages updates, new libraries and trends – staying relevant is just as important as coding itself. To stay fresh, you can follow big companies and development world influencers on social media. Check out who is responsible for updates in the technologies of your choice and keep an eye on their profiles.
Search for inspirations and technical tricks – on pages like Awwwards. Newsletters are also a good way to go - the hottest news, and even incoming changes, delivered for free directly to your email inbox. Individually, I love to kill two birds with one stone by listening to podcasts while cleaning my flat or preparing food. Remember all the advantages of taking part in some events that I mentioned in the previous point? We can see one more added bonus here – such activities are keeping you updated as well.
The possibilities are endless. There is no one perfect solution – as in every aspect of your coding adventure, you need to try different things and make a choice. Choose your weapon and build your own strategy.
Step 12 – Don’t get overwhelmed by all this cool stuff
Learning new things all the time and keeping up-to-date with so many resources can feel overwhelming. You can get stuck in a place where you won’t be learning much, because you keep jumping from one course to another. Start learning one thing and find something which seems better. It’s super hard to stay focused if there are so many helpful free resources but this state of affairs can easily make you tired and lost in your priorities.
The most important thing is to notice that there is a problem – we’ve all been there. Thinking back on my own experience, the worst for me in this matter was “learning to code” instead of picking one particular project. Having a project to provide focus was something which helped me get unstuck and go back to initial efficiency.
Programming is awesome. It’s fascinating that new things are popping up like mushrooms everyday, but it is also so easy to get distracted. Pick a project and focus your actions on one particular matter. This will also help in preparing you for a new job, because you probably won’t work on dozens of projects at the same time, will you?
Step 13 – Prepare for interviews
You’ve learned a lot of new things, done some projects, met some people and decided it’s time to search for a new job. Excellent! But to achieve the best results, you need a little more preparation. After a few months of – chaotic by its nature – learning, you are able to make some projects on your own, but are you prepared for the interview? Just search for example questions in the technologies of your choice – you will be surprised how many things you didn’t think about or you had no idea are named this way!
Preparing for interviews is a good sum up of your learning. You can quickly notice some knowledge shortages and catch up. Even if you already worked with some technologies, you may need a little organization and polish in order to impress the recruiter in the end.
Step 14 – Find your first job
The junior developers’ market may seem a little bit crowded, but if you’re well prepared, I strongly believe in your success. All these things – knowing the community, being up-to-date with technologies and showing interest in news, having projects in your resume and being prepared for interview questions - are keeping you one step ahead of the others. Even if you do not have commercial experience yet, be a professional everybody would love to work with.
It’s also important to choose the proper company, so ask questions during your interview. What is the workflow and project management in the company? Is there code reviewing practice and knowledge sharing culture? These are also very important factors for your future development – it’s good to have well-managed projects and a helpful team eager to share their knowledge with the newbie.
Step 15 – Always continue to develop
Do you know a developer who said “I learned how to code, it’s time to stop learning”? I don’t. With new tools showing up everyday, I cannot even imagine it possible. But now you should know where you’re going, so learning will be much easier every month.
Stopping is going backwards, so it’s time to aim for a mid-level developer. “The code works” shouldn’t be where you stop – it’s just the beginning. You’re able to write quality code that fulfills the specs, but stopping here is like taking a snapshot and expecting it to be considered a Picasso. You aren’t done yet, because now it’s time to make it better. How? Read a lot of code. Learn new techniques. Discuss your solution with other developers. As you are gaining your first experience, possibilities to grow should appear on the way.
Being more advanced in programming is not only about the years of experience. It’s about skills – of course – but also about work autonomy and responsibility for your code. So let’s do our best to become independent, business oriented professionals – I’m on this way with you.
Ready to change your career path?
I hope my experiences will help you to go your own awesome career changing path. Or maybe you are already in an advanced stage of this adventure? If the answer is yes, why not join our Naturaily team? Visit our careers page and check out if you are the missing puzzle we are looking for. It would be wondrous to meet one day and create cool things together!