Learning programming

A student wrote to me: “I like technology and want to pursue a degree in computer science but I am not very good in mathematics. Is it necessary to know math well to do programming? Is it possible to be a programmer without math?”

Answer: It is not necessary to be very good in math in order to be a programmer. In my opinion, programming is like to learn a “foreign language” such as English or French. You can learn to speak just enough to talk to people when you travel, or you can learn it so well in order for you to give a speech eloquently. The same thing also applies in programming. If you just want to build websites or program information technology applications, basic math is good enough. If you want to write code for computer games, embedded applications, or sophisticated software then you do need more mathematics skills.


Just like foreign language, programming is a skill that requires practice. The more you do that, the better you become. The best way to learn programming is to start to write something simple then learn from the mistakes that you made. You go from easy then to more difficult, each time you learn something new and in few weeks, you can program. You must know basic logic concepts and language syntax to start. It is not as difficult as you think. The main idea is practice and do not afraid of making mistake.

Once you have the basic skills then start reading some programming books so you can advance yourself to the next level. My favorite book is “Code Complete” by Steve Mc Connell. It is easy to read, very practical, and has many useful tips. I highly recommend you to read more programming books so you can build your knowledge in depth and be a better programmer. Many students like to learn “Short cut” or “tricks” just to make the program works. This is not a good way to learn programming. I have seen many not well designed code that use “Brute-force”, not easy to fix, not easy to maintain because programmers do not have enough theoretical foundation to build their knowledge and turn that into skills. Please remember that language is only a tool. What made a person a good programmer is not how many language he knows, how many “tricks” he know, but how well he understands the concept so he can apply it to his work.

Another better way of learning programming is to work with people who are better than you. In school or in work place, there are many people who could help you, guide you, tutoring you in programming languages. An experienced person can teach you not only the basics, but the in-depth knowledge in few months that other may take years to learn.


  • Blogs of Prof. John Vu, Carnegie Mellon University