Short history of me in the learning cycle
In highschool, I studied an introductory computing subject for one year. I hated it! Studying all of this CS high-level theory stuff was not what I was expecting from programming.
I dropped it at the end of the year. Decided to go into the maths/finance route instead.
Forward to mid 2017, I was in my 3rd year of my Maths degree, but I wanted to give coding another chance. However, I had no idea where to start from.
So I decided to start from everywhere. 🤷
6 months in, I started reading books and watching online courses on Visual Studio, Android, Java, PHP, SQL, algorithms, WordPress development, Python and PyGame (because why not create games in Python?? 👨🎤).
Damn, I had no idea what I was supposed to do. I was spending all my free time studying programming, but I was not becoming a programmer.
Stuff had to change quickly, because summer internship applications were already open.
Define your goal
Do you want to
- change careers?
- get your first software developer internship?
- become an indie maker?
- code as a hobby?
Define why you want to code. Once you know how important coding is for your future, then you can decide how many hours per day/week you should dedicate on becoming a software developer.
I decided that this is the career I want to follow. My first step would be to get a summer internship in web development. So over the next months, I had to spend hours upon hours applying to internships and learning how to code. 👨🏼💻
It wasn't time to learn all programming languages and all CS theory behind it - instead, I had to become hireable.
Follow people who are already there
Start following people who are already where you want to be. Twitter, YouTube and Reddit are great places for this, where plenty of people can give you a daily dose of solid advice and motivation. Helps you keep going daily.
I am still the new kid on the block, but you can follow me on Twitter - I document my journey of being a self-taught full-stack developer and give advice to people who want to get there.
In addition, you can check your local tech meet up groups. There are plenty of developers who will be more than glad to answer your questions.
Pick a stack and stick to it (for now at least)
If you want to be a front-end developer, focus on the things that will make you a front-end developer - HTML, CSS, React, design.
If you want to be a mobile developer, focus on react-native or Swift/Android.
Huge shortcut to making the transition from learner to developer is not wasting time on things you will not use in the near future.
Remember all the languages I listed above? I spent months on courses and books, but now I remember nothing from them.
Focus on the things that matter.
Make peace with yourself that it is ok not to know everything. Dan Abramov, the co-creator of create-react-app and the creator of Redux, doesn't know bunch of things. And he is perfectly fine with that.
It's time to leave tutorial paradise
Tutorials are great in the beginning, but at some point they become counterproductive.
So many times I find a tutorial for an awesome project, I start watching it, but halfway through, I realise that I have just been copy-pasting from the video without actually learning anything.
In my opinion, that's not the biggest problem about tutorials. There is no danger in tutorials - they are perfect examples, where nothing can go wrong.
95% of development is problem solving. On a daily basis, you are presented with problems you don't know the answer of. You need to figure solution out by yourself, or by Googling.
Tutorials are great for learning the basics of new language/framework or when you are stuck on a problem, but they will only get you so far. In order to go beyond tutorials, you need to start building projects.
Coding is making things
Once I started making things, I found watching tutorials just for the sake of watching tutorials boring and pointless.
Creating projects is the catalyst to becoming a developer. And once you are a developer, it's still an instrument that keeps the passion going.
My view on development changed once I started working on my small projects. All of the sudden, I wasn't following someone's tutorial - instead, I was on my own, making decisions on every single line of code and solving every little puzzle along the way.
In the months leading to me getting my first software developer internship, I was making projects all the time. Even though they were basic projects, I still got the thrill of figuring out every problem thrown at me.
Code, bug, Google, fix, repeat. Personal projects are the best simulator to what it's like being a full-time developer as well as teaching you extremely valuable skills.