How to Teach Yourself Programming

Do you want to learn programming? Are you planning to kick start your programming career, but don’t know where to start. Well, if you’re like most people, you probably thinking on going to college. Maybe, you’re planning to take courses online. The truth is that when it comes to programming and coding, there’s not fixed path. Therefore, for someone just starting this process, choosing the right path could be a daunting task. In this blog post, I’m going to give you some useful tips to teach yourself programming.


Learning programming is not different than learning anything else. Yes I know, it is programming and programming is difficult. Well, not always. Programming languages are like regular languages. They have structure, logic, and you have to follow. Once you become proficient at one specific language; then you should be able to pick up other languages more easily. Always, the learning curve is the more painful process. It doesn’t matter the language,  there are specific concepts you have to learn.

Basic Programming Concepts

  1. Print output to screen
  2. what is a variable & types of variables (int, string, etc)
  3. Declaring Variables & manipulating their value ie: change it, print to screen, add to value
  4. Condition (if statement, if else statements, etc.)
  5. loops (while loops, for loops, do while loop. know when to use each)
  6. Functions, return statements, calling functions
  7. Data Structure (arrays, list, sets)
  8. Parameters and Arguments (know the difference)
  9. Input and Output (know how to read from a file and output to a file)
  10. Searching data (array, list)
  11. Sorting data (array, list)
  12. recursion

Intermediate Programming Concepts (object oriented programming)

  1. What is a class?
  2. what is an object?
  3. what is instanciation?
  4. what is encapsulation?
  5. what is inheritance?
  6. what is polymorphism?
  7. what is overriding
  8. what is overloading
  9. what is a getter method?
  10. what is a setter method?
  11. Generics

Advance Programming Concepts (Data Structure and Algorithm)

  1. linked list
  2. stack queue
  3. binary tree
  4. binary search
  5. heap
  6. hashing
  7. graphs

So one of the question starting programmers always ask, what programming language should I learn first? And the answer is, pick one that would allow you to understand Object Oriented Programming. Many university now a days favor Java for their curricula. And one of the reasons Java is Object Oriented language (check the java programming section of the blog). Other universities favor C++, others Python. Any of these three I’ve mention are very sound, and robust languages to start with.

Picking a book to learn on your own and getting practice is another path that many programmers take. As a matter of fact, if you want to get any good at programming picking a good book is a must. The internet is full of free pdf programming book, so finding one will not be a problem. A good source of information on finding good books is You can read the review on the book, and then do a search online.

Here’s a list of good programming books


  1. Big Java (Wiley)
  2. Java: introduction to problem solving and programming
  3. thinking in java
  4. Data Structure and Algorithm in Java
  5. Cracking the coding interview (java)


  1. Javascript the good parts
  2. Elequent javascript
  3. javascript the definitive guide
  4. javascript patterns


  1. learning python
  2. learn python the hard way
  3. think python

Moreover, it is important that you don’t rely on instruction, and theory only. Programming is a subject that requires vast amount of hours in front of the computer. So you must be ready to practice, practice and more practice. What I mean is that you need to do plenty of coding, and programming exercises. On the web, there are plenty of websites that will allow you to practice for free. These websites rage from novice to expert.

Online programming and coding sites. (free)

  1. codeacademy (html, css, javascript, python, php, mysql)
  2. freecodecamp (html, css, jquery, javascript)
  3. hackerrank (challenges)
  4. codingbat (java, python challenges)
  5. w3resource (practice many languages)
  6. coderbyte (challenges, exercise)
  7. ProjectEuler (challenges Advance)

Online Learning Sites


Path to learn programming language (inforgraphics)


In conclusion, learning programming requires a multi-faced approached. You can’t rely on one book, or one class. You have to employ many different approaches to learning code. And the path is not set in stones, so don’t become discourage. Starting is always the most difficult part. It doesn’t matter the language or the path you take, you just don’t give up. You should remember, the most important thing when it comes to programming, is “practice.” So practice, do exercises, challenges, and read some book.

I would like to hear from you. What resources have you used in your programming learning path? What languages did you started with? What books helped you the most? What online practice site have you used? Leave a comment!..

Happy coding!

Share This!

Add a Comment

Your email address will not be published.

Sign up for our Newsletter

Download "Google Search Pro"

Enter your email and stay on top of things,