post thumbnail

Programming-learn it by yourself part II

Second part of the series when I talk about how I learned programming by myself.

Part II: Practice

One of my reasons why I am fascinated about programming is the amount of possibilities. There's always something to learn, always something you could be better at, something you could use to become more flexible with coding. So many great new technologies which you could learn. In order to get somewhere with your skills, you have to practice a lot as often as you can.

One hour of everyday practice is much better than 7 hours on one day of a week. Creating this habit of practicing is going to change your behaviour in the long term which will lead to being used to read and write code and being good in it.


1. Build something with what you learned till now

After going through all the courses from first post, you should have learned enough of HTML, CSS and JavaScript to build something with it. Before taking any more courses, the best way to hone your skills is to build some kind of application or website around area of your interest. I know that if you've gone through a codeacademy and freecodecamp, you probably have a few smaller projects created, but this time you should focus on getting as much as you can done.

Build a fully responsive website with some interactivity. The main thing is to get yourself confident in the area of HTML and CSS , that's why focus on this area the most. You want to have confidence in your basic skills of building websites.

Important stuff to cover in this section is to focus about popular concepts in CSS. When you're on start of your road, you'll learn the stuff which will be used in around a year or more when you'll get your first job. For example my first React App, has been made with CSS Grid, which support grew a lot within last year and it's used more and more often.

Understanding Flexbox is one of the crucial skills in your CSS belt, I think it's one of the most used style property that I use on my daily basis.

To sum up, few CSS properties that you should get to know to the core:

  • css grid
  • display
  • flexbox
  • positioning
  • paddings vs margins
  • media queries
  • transitions

2. JavaScript Workout

When you build your first responsive website, it's time to add some interaction features to it. To do that, you need to exercise with JavaScript as much as you can. At this stage, you should focus on your pure JavaScript skills, you should get familiar with the basic concepts and how to actually manipulate parts of your page.

The best place I can think of to take your JavaScript to the next level is javascript30.com. This is the third awesome free course from the same instructor Wes Bos, which explain you all of those concepts in an incredible easy way.

In this course, you focus on building 30 small and fun applications with JavaScript for 30 days. You can do the course in one take, or one lesson a day, it all depends on how much time you have. I recommend to go through it all at least 2-3 times.*

When you watch the video with the course and you program together with a teacher, you test that what the teacher says works and you feel good, because you wrote something that works. Actually the teacher wrote that and you've rewritten it. Be aware that if you do that, you grasp a little of how does it works, but you actually don't know how to write it itself. That's why I recommend 3 steps of working with online courses.

  • watch the video and write the code together with a teacher.
  • watch the video again, but more carefully and don't write the code, only write some notes.
  • write the exact same program as in step 1,but this time all by yourself.

This was a great way of learning for me, because I knew how the app should work and after watching it Second time I actually knew how it should be implemented. On 3rd step, when you program all by yourself, you figure out how to finish the app.

This course introduces you to a few interesting Web API's which you'll probably use in your daily job. After going through all of the materials in this online course, my recommendation is to take 1 application which you liked the most and play with it by remaking it and adding more features to it. I actually took the webcam fun and built added a few features to it.

I learned a lot while doing it and it was quite funny experience, because I could take this kind of photo's with my camera: glitchcam photo

In the first post, I wrote about differentiating ways of learning. That's why I think that after doing all those courses till now, it's good to moment to start reading a book on JavaScript. I personally recommend You Don't Know JS series written by Kyle Simpson.

The book is available online for free and it the author is explaining the core parts of JavaScript language in a very detailed and easy to digest form.

While doing the courses and reading any book, take notes! This is unbelievably helpful in remembering all the great stuff you can learn. When try to actually create something by yourself with knowledge from those courses and books, notes written by yourself will be there to give you what the power of the course written down in your personalised way.

After going through all of those courses and building a few applications from it by yourself, you should now have a solid understanding of Web Development. This is when I started learning my first JavaScript framework.


3. Choosing your framework

First and foremost - your pure JavaScript skills are the most important. Even after choosing a framework, because if you want to get a job in the industry now you have to choose one, you should always keep working on your pure JavaScript skills. Ain't no framework scary, when your core JavaScript skills are on point!

That said, I am going to recommend you the only framework I know - React. This is my favourite one, I tried once Angular and didn't understand it at all, so I went back to React. This awesome framework is actually a library with great and awesome open-source tooling around it, which makes it a framework. What's React exactly you can find out at reactjs.org, I am gonna write I few points, why I think React is the best framework for beginners.

React:

  • Is dominating the job offer postings now in the Frontend Development world, it's popularity is still rising and knowing it well can get you a job quick.
  • Has very little framework-specific methods, you actually write mostly pure JavaScript when working with it.
  • Has the best and awesome tooling around the framework, you can find library for just anything, which makes it easier development.
  • Has a very pleasant, declarative way of writing small code building blocks, whom which you'll build bigger blocks, which makes an easy way of building applications
  • You can create Native Mobile applications with it - React Native is the biggest cross-platform framework for creating mobile apps.
  • You can also create Desktop applications with it. Electron make's it possible for you.
  • There's a massive amount of free knowledge on React online!*

For example this website is probably the only one website you need to learn about React. It has gathered enormous awesome knowledge about this framework.

You learn React once and you can use this knowledge and way of working for all the platforms you like - Web, Mobile, Desktop. As a beginner this is awesome thing, because you want to learn enough to get a job first and then you can go with it wherever you want.

This makes you a very flexible developer. I've been working with React for more than a year and almost a year with React Native now. I love it and I don't plan to move from it.

In the first post I recommended to skip this course at first, so the first place on React you can go is codecademy. It has a two-part free series explaining what React is and how you can use it. As mentioned on this blog many times, codecademy.com is an awesome tool while starting coding. Also when you'll go through all the freecodecamp courses on the Web Development path, you will probably understand it very clearly.

When you'll go through all those courses, there's time to practice. My recommendation is of course - build something! When I was learning React 1 year ago, I took one of the assignments I had while failed interview and spent as much time as I had to create a project out of it. This is how I created New York Times Article Search which you can test here.

If you want to learn React, you should build something similar to this application, try to built it only with React, without Redux state management system first. Then you should understand how React exactly works and why you need Redux.

Fetching data from an API and displaying it is very important task to do in your everyday job as JavaScript developer. Knowing this, you now definitely have to do some practice in that. That’s why I have an assignment for you!

The Assingment:

  1. Create an application which will fetch the data from some API and display it.
  2. You can style the application as you want, but the application working is the number one criteria.
  3. If you’ll still have time to do it, try to save data in Local storage, try make some filtering of data.

Example API's you could use : punkapi, developer.nytimes. If you’ll do all of that practice, I guarantee you that your skills will grow a lot.


Summary

If you have done all those steps I mentioned till now, you should have a few applications on your GitHub and you can now try to send out some CV's.

As you can see, there's a ton of free knowledge on the internet and you can learn everything by yourself. You don't have to pay for any knowledge if you're working hard and practicing as much as you can you can get your first job for free. That's why I focused on free courses in first blog posts.

In the next parts, I'll try to explain how to go further from this place and I'll try to write about most popular of the paying services available.

Stay focused and practice.

See you next week!