Like every good portrait starts from a mere scratch, an excellent programming built is also built with numbers and logics. The fact that any good course in computer programming should be started with a course in fundamental mathematics is beyond arguments. A mathematician may or may not have interest in algorithms but a programmer must have affection for mathematics. So we start our study by mathematics. Now, mathematics is a vast field. Should we study everything? Well, that would be quite impossible. If we start studying mathematics that elaborately, we will never end the study of mathematics nor begin the study of programming. So we should limit ourselves to only what is indispensible. The part of mathematics that is mostly needed in the world of computing is called discrete mathematics. One who has a strong foundation of algebra will find it easier. By ‘strong foundation’ I mean love and enthusiasm. Fundamental things like the Set Theory and Relations, Functions, Matrices and Determinants, Mathematical Logic are a few chapters from this branch of mathematics. There is also a few counting principles like Permutation, Combination, Binomial Theorem etc, that we collectively call The Combinatorics. These few things will be more sufficient for a beginner. Even if we need to learn anything else in future, we can certainly do that on our way.

Once we acquire enough mathematical skill (You are the sole judge for that), we may switch our attention to computer fundamentals, or more popularly known as Digital Electronics and Computer Organizations. Here we will learn everything that was so far encapsulated in a word ‘hardware’. We will start our learning from logic Gates. Then we will learn Boolean algebra, which will be just a revision of a few chapters you’ve already studied in Discrete Mathematics. Once the Gates, Combinational and Sequential Circuits are thoroughly understood, we will start Computer Architecture along with an introduction to microprocessors. Here we have to remember one thing. We don’t need to start our study with the modern day advanced microprocessors we use in our computers. Any basic microprocessor like 8085/88/86 will serve our purpose. We are just about to get an overview of how those microprocessors actually work. After completing Computer Organization we will definitely have a choice to learn more about them. The subject computer organization gives you a clear picture of the internal operation of a computer system. This knowledge is often necessary for extreme programming.

Now that we know a lot about basic computer hardware, we can choose a language to learn. A computer language is much like any other language. It has its own grammar and syntax. You may also occasionally see some idiomatic use (which is what I call style of writing code). But for now, we will put all those things aside and work only on the basic things. What happens when a Chinese speaking man meets English speaking one? There will definitely be confusion without an interpreter. Of course, either one of them may learn the other’s language, which will take time and energy. Its better if we just find an interpreter. Our computer system only understands a 1 or a 0. So there must be someone to interpret our words into the language your system understands? Fortunately there indeed is someone called an interpreter or a compiler. The rules that a programming language has are determined by the compiler or interpreter that is used to convert it into machine readable form. Otherwise, all programming languages follow almost the same logical pattern.

We may choose just any programming language. But C language will be really great to start with. It’s simple and there are so many compilers available for free. We have to just download any one of them. Mastering any one language is really necessary here. As mentioned earlier, all programming languages only differ in their syntaxes. One has to build a good understanding in any one of them. A common sense will be developed with constant practice. We will Write our code and execute. Experiment with it. We may sometimes, intentionally enter errors to understand the change and error messages. We will try to understand the origin of all the errors and warnings. Then we try to solve more complicated problems with this language of ours. Once this language is perfectly mastered, we will look for some other more advanced languages, like Java, Python etc.

By following these steps we will not only become a programmer but we will acquire a very good understanding in almost all matters related to computing. In the process, we have to always remember, that we are free to look every corner of what we are studying and we really should explore about this thing as much as we can.

If you have something to share, then **join Bukisa** and start earning now.

**Also Read:**

How crackers crack software serials

Understanding Windows Registry

Why does your computer understands nothing but 0s and 1s

How hackers hack into computers

Detecting malware with netstat command

Top 6 places to earn online without investment

How to download Videos, Mp3 Albums, Softwares and movies for free

Classic signs of a trojan attack