As in article ” Self-Study in 10 Years ” – Norvig , we know that to become competent in anything , everyone needs at least 10000 hours of training ( equivalent to about 10 years ) . But you can say that it does not need the research results of scientists as you know . The problem here is 10 years is a very long time and with 10 years , you may have “changed or lost ” . So what the way to maintain a motive to work and study for such a long time ?

Today we’ll read an article by author John Sonmez on how to step by step become a good programmer.Hopefully this guide , some newbie friends will be able to apply in future orientation .

Recently I received some emails that basically asked ” How to became a good programer / excellent? ” .

These types of emails make me feels sad ., because I feel like you are looking for some ” miracle drug ” that your might suddenly become . Become a talented  programmer .

At this point , of course , I realized that no miracle formula here and that there are many pathways success but I show you to ” my pathway ” .

Step 1: Choose a programming language and learn from the basics

Before we can run , first we have to learn how to walk . There are many programmers who start by trying and jumping into everything once and do not have the patience to learn just one programming language before moving forward . They thinks that have to know that all the new technologies for get a job . While it is true that you need to know more and deep about one programming language .

Choose a programming language that you thinks your career will need it . You not try and learn an easy ” programming language ” when you start . Learn any language that you like and be able to your job in future ( next few years ) . You want to choose something bring lasting value .

You have to try to learn and find some books or exercises that connection you programming language . You should look for beginner materials that focus on that language .

When you read document and through the exercises  , make sure that you practice writing the code . Do many exercises as you can . Yes , this is quite ” miserable ” . It’s easy to read a book from the first page to the last page, but if you really want to learn it, you need to practice it.

When you are writing code , make sure that you understand all the lines of your code .Anything that you don’t understand , then learn and clarify it . Take the time to do this , you will not be ignorant and vague knowledge later .

Finally, be prepared to read through a book or practice guide at least 3 times before you can fully understand it. You will not get the “programming” part in the first times . You need to repeat to expose it before you begin to be able to understand and acquire knowledge from it and you understand what is really going on .  Until then you will feel lost, which is good, that is part of the development process. Just accept it and move forward.

Step 2: Building something small

You can also build a small web application, but try not to jump too deep into many complex web development technologies. Basically I suggest you start with a mobile application, because web development is complicated for beginners. To develop a web application, you will need to know at least some knowledge of HTML, possibly some back-end frameworks and JavaScript

Tạo ra những ứng dụng đơn giản trước.

Step 3: Research about framework

Now is the time to really focus on a framework because you have a basic understanding of a programming language and have some experience working with the same framework for mobile or web applications.

Choose a framework to learn and it will allow you to work more effectively in some environments . The framework you choose to learn will be based on what kind of software developer you want to be in the future . If you want to be a web developer, you will want to learn a web framework for whatever programming language you are working on. If you want to become a mobile application developer, you will need to learn about a mobile operating system .

Try to deepen your knowledge of that framework. This will be quite time consuming, but investing time to learn anything about the framework you are using is very good. Do not try to learn many frameworks at the moment – it will only scatter your focus. Think about learning the skills you need for a specific job you want to receive, using the framework and the programming language you are learning. You can always expand your skill set later on.

Step 4: Learn about database technology

Most software developers will need to know about some database technology because a lot of applications must have a database back-end. So, make sure you do not neglect the investment in the field.

Image result for database technology

I encourage you to choose a good SQL technology book and create a few small projects, so you can practice what you are learning – always practicing the knowledge you are learning.

You must have sufficient knowledge of SQL to be able to:

  • Create tables (tables)
  • Execute basic queries
  • Join the tables together to retrieve data
  • Understand the basic knowledge of how the index works
  • Insert, update and delete data

Step 5 : Get a job supporting an existing system

The bottom line here is that not too much emphasis is placed on a job that requires high qualifications. Do not try to find a dream job right now – because you are not qualified yet. Instead, try to find a maintenance job for an existing software system that is built using the programming language and framework you learned.

Working on an existing application, along with a team of other developers, will help you expand your skills and learn how a large software system is structured. You can fix bugs and add other small features, and you’ll also learn and put your skills into action .

Image result for Get a job supporting an existing system

Put your mind into this job. Learn everything you can. Do the job at the best level you can. Do not think about money, take on many different roles in this project – all will come later – just concentrate on making the job as efficiently as possible and Broaden your skills.

Step 6 :  Learn the best structural practices.

Now is the time for you to start improving the quality of writing code. Do not worry too much about designing software at this time. You need to learn how to write clean code that is easy to understand and maintain. To do this, you will need to read a lot and see many examples of some good code .

Please add to your bookshelves with the following books:

  • Code Complete
  • Clean Code
  • Refactoring
  • Working Effectively With Legacy Code
  • Programming Pearls – (do all the exercises)

The books on the linguistic structure are defined as:

  • JavaScript: The Good Parts
  • Effective Java
  • Effective C #

Step 7 : Learn a second programming language

Image result for programming language

At this point you should develop the ability by learning a second really good programming language. You should choose a programming language that is different from the one you already know.

Step 8: Learn the best practices in software design

You are ready to build systems right now, but now you need to learn how to design them.

You should focus on doing research on the best design practices and some advanced topics like:

  • Design patterns
  • Inversion of Control (IOC)
  • Test Driven Development (TDD)
  • Behavior Driven Development (BDD)
  • Software development methods such as Agile, SCRUM, etc.
  • Message buses and integration patterns

Your goal here is to be able not only to build a system that someone has designed, but to build on your own views on how the software should be designed and Which types of architecture are suitable for these types of problems.

Here are 8 simple steps to becoming a professional programmer. Make a dream and take action for it .


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s