Programming-learn it by yourself part I

How I started learning programming in JavaScript and how my web development preparation led to mobile development. Part I of a few-part series explaining how to learn coding by yourself

How to start learning programming

I receive that question on my Instagram almost everyday. I've been sending people to read my story of how I became a developer, because I thought that my example is a quite good one to follow, but there are a few more things to consider than in my first post on this blog. That's why I decided to write more-like-guide article.

There are many ways to become a developer.

First - most obvious way is to go to Computer Science study and get your degree and if you can do it, I strongly recommend it. If your dream is to work at one of the biggest companies like Google, Apple or Facebook, it's just necessary to finish those studies. I haven't finished it, but if could go back in time, I would probably do it.

Second most popular way is attending a bootcamp, where they'll teach you programming in 1 to 6 months, depending on which bootcamp will you choose. This may not be for everyone, because it usually costs a lot and I didn't have that money to go the course, but it's still a great way to learn.

I won't write much about those two options. The third way is to learn it by yourself. I learned everything by myself at home and I'll try to give you my best ideas of how to do it this way too. By the way, if you want to become a good developer, you still will have to practice **every day **if you'll end up using one of those first two options.


Part I: The Basics

So you decided you'd like to do the web development and now you're looking for the best ways to do learn it by yourself. Few google searches and you're lost, because of overwhelming amount of things to learn. This is when you probably start to panic, because you now think that you'll never learn that much stuff! Don't stress yourself, there's a lot of to learn, but you just have to structure and sort this things out. Everything will be clearer in a moment.

Let's start from the beginning

1. How The Web works

In order to start learning programming in web development, it's good to know the basics of How The Web actually works. This is the basics of the basics. Necessary knowledge which will explain the principles and "why's" you have to write certain code. How the web is structured, why you have to connect to the server, etc.

This short article will try explain this subject in a very simple way, feel free to dig deeper in the sub-articles there. There's a ton of great knowledge! The Mozilla Developer Network is one of the best places with web development knowledge out there, you should add this website to your bookmarks. You'll definitely will be coming back to it many times in your career.(I do)

2. Learn the foundation of web development programming.

My codecademy courses overview This picture shows the day when I decided to be a programmer and the day I started - 9th of November 2016. It was a first day of my learning programming online.

When you know how the Web works, you can now start learning the basics of web development - HTML , CSS and JavaScript. Those are the building blocks of every website on the internet.

Where to learn it ? I recommend starting on codecademy, I started learning everything there. I think that the pace and environment of those courses is great for someone with zero knowledge. I think there's no better place to start your adventure with programming.

Just go through all the courses about HTML, CSS and JavaScript. The link above directs you to **web development **courses on Codecademy, if you don't know which courses to take first, here's my proposition of a correct order of taking those courses:

  • Welcome to Codecademy
  • Learn HTML
  • Learn CSS
  • Make a Website
  • Deploy a Website
  • Learn Responsive Programming
  • Learn Sass
  • Introduction to JavaScript
  • Introduction to jQuery
  • *Learn ReactJS Part I and II**

This one you can skip now and back to it later, after going through the next course below.

3. Solidify the basics

freecodecamp progress This picture shows my points made on freecodecamp. I haven't finished the certificate, but I still learned a lot from it and was able to get my first job.

After you'll go through all the 9 courses listed above, you should have a grasp of the basics of HTML, CSS and JavaScript. Those courses may take some time, depending of how much time you can spend on learning daily. That's why before diving deeper, it's good to go through it once again, but this time try with another source which is freecodecamp. Freecodecamp has a different pace of learning, a little bit quicker than Codecademy, that's why I recommend it doing secondly.

After going through some HTML and CSS it focus a lot on JavaScript. In order to get The Freecodecamp's Certificate, you'll have to go through a lot of JavaScript assignments and a few projects which you'll have to do by yourself. This is an amazing place to learn and multitude people went through the course. So when you'll stuck on some assignment, you'll find many answers for them online.

When you'll go through Freecodecamp, I recommend you going back to codecademy and trying out the courses on ReactJS.

Those are the first great steps into becoming web developer!

There's quite a lot to learn there and even a lot more will be covered in the next articles. Although I think this is should be enough for at least** first 3 months, if you don't have more than **4 hours a day for coding. You might finish the courses quicker, it all depends on** how much you'll be able to dedicate** for learning. More on JavaScript and frameworks will be covered in the next articles.

Summary

Before diving into the world of programming knowledge

Here are a few important things to remember which could help you in learning on all steps of your career, not only in the beginning. It also can be** applicable for other parts of your life**, that's why read it attentively.

  • Try to learn everyday, 1h every day is much better than 3 h one day and none for the next 2 days. Repetition creates a new habbit of learning for you, which will help in making learning process much easier.

  • Differentiate ways of learning, studies show that efficient ways of learning may differ between people. Find your best, most efficient ways of learning and focus on them. I personally like reading and watching videos the most, then trying what I learned in my code, but at the beginning it was different, because I liked interactive lessons like Codecademy the most.

  • Find ways to learn code everywhere you can, download free PDF's with books about programming to your Kindle or smartphone. Install an app like SoloLearn so you can learn when you'r commuting or waiting somewhere in line. Every little step and minute with code makes you more used to the programmer's way of thinking.

  • Read articles on interesting you topics in programming, read about interesting you technologies, when I do this, it always inspires me to try the new technologies and create something with them. This helps boost a motivation to learning if you feel worn out.

  • Create a list of tasks and goals in order to keep track of your progress. This is a very useful thing to motivate yourself while learning and to see how far you've gone. Set yourself a reminder about programming activities and it will also help you being accountable to yourself. Learn about setting S.M.A.R.T. goals. In order to keep track your progress, use any App of those or something like Trello or Nozbe.

  • After taking a few courses, ask yourself if you like doing what you're doing and if not, ask yourself if it will be needed in the main goal of your 'why' you started programming. For example I learned about basics of how to create websites with WordPress. I didn't like it at all and before diving into the more advanced topics I focused more on JavaScript. It was a great decision for me in the end, because I now create mobile apps with JavaScript.

That's it for today. In the next article I'll focus on what to learn after you'll finish those courses and in the last article I'll explain how I went from here to mobile development in <strongReact Native. Please let me know in the **comments what else you would like to know about in terms of learning programming.

Have a productive week!