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 Instagramalmost everyday. I've been sending people to readmy storyofhow I became a developer, because I thought that my example is a quite good one to follow, but there are a fewmore thingsto consider than in my first post on this blog. That's why I decided to writemore-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.

Secondmost 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. Thethirdway 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 agood developer, you still will have topractice **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 theweb developmentand now you're looking for the best ways to do learn it byyourself. Few google searches and you're lost, because ofoverwhelming 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 tostructureandsortthis things out. Everything will be clearer in a moment.

Let's start from the beginning

1. How The Web works

In order to startlearning programmingin web development, it's good to know the basics ofHow The Web actually works. This is the basics of the basics.Necessaryknowledge 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 todig deeperin 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 yourbookmarks. 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 overviewThis 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,CSSandJavaScript. Those are the building blocks of every website on the internet.

Where to learn it ? I recommend starting oncodecademy, I started learning everything there. I think that the pace and environment of those courses is great for someone withzero knowledge. I think there'sno better placeto start your adventure withprogramming.

Just go through all the courses aboutHTML,CSSandJavaScript. 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 progressThis 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 ofHTML,CSSandJavaScript. 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 isfreecodecamp.Freecodecamphas a different pace of learning, a little bit quicker thanCodecademy, that's why I recommend it doing secondly.

After going through someHTMLandCSSit focus a lot onJavaScript. In order to getTheFreecodecamp'sCertificate, you'll have to go through a lot ofJavaScriptassignments 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 dayfor 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.


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 tolearn everyday, 1h every day is much better than 3 h one day and none for the next 2 days. Repetitioncreates a new habbit of learning for you, which will help in making learning process much easier.
  • Differentiateways 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 codeeverywhere you can, download free PDF's with books about programming to your Kindle or smartphone. Install an app likeSoloLearn 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 oninterestingyou 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 goalsin order to keeptrack 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 settingS.M.A.R.T.goals. In order to keep track your progress, use any App ofthose or something likeTrelloorNozbe.
  • After taking a few courses, ask yourselfif you like doing what you're doingand 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 alland 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!