This is a three-part blog series where I would like to talk about what I consider to be the essential points when being a self-taught developer. I will talk about some positives, negatives and some advice from my experience.
My personal experience
This blog is part one, where I will be talking about self-teaching yourself code to getting your first job.
Firstly let me introduce myself. My name's Talie and I work at Pixelhop. I have been a full-stacked web developer for 3 years and have worked for 3 different companies.
I started learning to code when I was 23. When I wasn’t sure what to do with my life. I was staying in Bangkok and messing around on my second hand computer, learning a bit of HTML. I found it quite satisfying, and decided to go back to England and focus on learning it properly. Not knowing if I would ever really be able to get a job. Four years later and I believe that was the best decision of my life.
The reason I decided to start coding, was mainly for the freedom I thought could be achieved from working in this industry. I had no interest in working in an office and initially wanted to live a nomadic life as a freelancer.
I have never been to university, and taught myself how to code over the course of a year before I got my first job. One of the great things about this industry is, in my experience, companies and colleagues don't care about whether or not you have attended higher education.
The importance of notes
Notes notes notes! For me, this is the most crucial part when learning to code. It's the basis of all your learning and will help you when studying to get that first job and even after you have started.
If I could go back to when I first started learning, I would start with focusing on taking notes well. The ability to note something down in your own words, quickly and clearly, is really powerful.
Trying to memorise things you don't fully understand will lead to frustration. Something I know from experience.
When you start out, noting everything you learn will really help you. No matter how basic it may seem and you will find yourself referring back to those notes every time you forget something until you start memorising it.
This is also massive help if you ever take a break from learning. You can continue from where you left off and refer to your notes when you come back.
Note as much as possible (literally, everything when you are first starting out).
Don't try memorising anything. That will come naturally.
Use some noting software to make it easier, for example; Notion or OneNote.
As I was learning, I didn’t spend enough time to fully understand what I needed to learn and to what level. If I had really planned out a path before getting stuck in, I think I would have saved a lot of time and energy.
I know what you're thinking, "well, duh", but I believe this is too often overlooked.
We should remember, as self-taught developers, we don't have anyone to keep us disciplined and tell us what to learn and in what order. I had found myself learning something that I later found out was out of date, Cough cough.. jQuery or something that could be done by a language that I already know Cough cough.. PHP.
Before learning anything new, I recommend really thinking about what you want your goal to be, i.e. becoming a backend dev or full stacked dev. Research what your desired goal requires by looking at job descriptions or finding out what the most common and up to date tech is being used for a specific job.
Having a fixed path will save you a lot of time (trust me) and keep you motivated because you will be sure you are going in the right direction.
Stick with your choice and follow your path to the end.
Consider your strengths and weaknesses, i.e. Are you more visual or technical?
Stick with what you already know and go deep with it, e.g. Don't go and learn Python to build an API if you already know Nodejs.
Spend time planning and don't jump into anything without being sure.
Now we have spoken about choosing your path; the natural next thing should be what your end goal should be?
I want to say that this will probably not be apparent right from the beginning. It will take some time and research.
I decided to start coding mainly for the freedom I believed could be achieved from working in this industry. I had no interest in working in an office and just wanted to live a nomadic life as a freelancer.
It wasn't until I did my research and found out getting clients was not as easy as I thought and the best way to learn from people is to work next to them in an office. So after that, my goal changed and getting an office job actually became my main focus.
It would also help to consider your position in life, i.e. when you should start working? For example, starting at a junior position, intern or getting clients. Of course, this will depend on what position you are in personally. Ask yourself; if you have the time to work towards a junior role rather than wasting time trying to apply for intern positions. Or would it be better to try and find some work on the weekends as you are busy most of the week?
Think about what you want to get out of learning to code, i.e. become freelance, get a stable office job or maybe just for a personal project.
Keep in mind that your goal will not be the end, e.g. getting a job. Maybe don't think 'what do I need to do to get this specific junior role' instead think 'How would I get to a mid-weight position as so & so dev'—making your initial goal to get a junior position.
Personal projects are the best tool for you as a self-taught dev.
It's the most meaningful way to show off your skills. You can put any old guff on a CV or complete a code challenge where you print out a sequence of numbers. It might seem impressive. But it's nothing compared to an actual functioning app with a purpose and more realistic to what you will actually be doing.
They are also the only way to show your non-dev friends and family something cool that you can do with your skills. Perhaps even convince them, all this wacky computer stuff you have been working on does have a purpose after all.
For me, that's what really got me hooked on development. Instead of thinking, "there should be an app for that" or "someone should make a website like this", I consider that an idea and start to think of ways I can make it.
Try to be original. It's easy to follow a tutorial on making a to-do app or whatever. But its a lot more impressive if you come up with a functional or fun idea yourself.
Thanks for reading part one of my three part bog series. I hope you gain something from this, I have made a lot of mistakes in the past and I hope to passed on some of my knowledge.
Please check out the other blogs in this series when they are out and check out some of our other blogs on our website.
My experience of being in my first dev job as a self-taught developer
This blog talks about my experience and advice on what I consider the main challenges in your first dev job.
This is part two of a three-part blog series where I am talking about the main points of being a dev from my perspective of a self-taught web developer.