While I was in college I found that computer science programming courses suck. When you take a programming course in CNS (Computer Networking Systems) or Network Consulting they just throw you out into the water with weights on. It is time that I explain to you how to learn programming. You start with Binary machine languages to understand where computer programming comes from. As I study books on making compilers while remembering where I started, which was assembly code and binary to human readable code, You will see how to better understand computer code languages parts known as classes, objects and functions better. I will explain programming in general first and then help you learn the most used language, C ++.
After reading the book I am starting, you will be able to not only program but also understand how compilers work and where they get their structure. You will also have insight into how to write your own language. I am also going to write a book on helping kids get a better understanding of computer science courses so they know what program course to take if they decide that computer science is their thing. It will be a book I wish I would have had when I started thinking about college and I am sure you will find it helpful.
Have you ever wondered why a program will work on one operating system or computer and not another? That is usually because they have different processor types in which some are known by the type of computer. A Mac and a PC were known to have different processors and in turn requires different software because the hardware’s software is programmed differently. Intel is a popular processor in PC computers that run Windows software. Apple Mac computers are now using the Intel processors. Does this mean that the software will become able to run on both styles of computer? I doubt it! Where am I going with this you might ask? When you program software you have to decide where the software will run before you start because the coding or programming will be different.
I have to tell you. I think you should learn to program in assembly language because you will run into less need in the future for relying on someone else when you try to write programs cross platform. Cross platform programming means creating programs for the different computer families like PC, Linux, and Mac. The people that developed the software programming that allowed Microsoft Office to run on Apple devices worked to make the famous Microsoft Office suite run on Mac computers because there was money on the line. Beforehand, the business world had many problems getting the PC documents to open on Mac computers and vice versa. This was bad because it cost money to be delayed or paper if you had someone that had a computer that could print your document. Where am I going with this? There is money to be made in the ability to cross platform program and unless the program can be developed in Java, which many can’t, you need to know machine language!
I am going to do my best to explain this in the simplest way I can. I admit, as a computer geek I can’t explain how computers work to my own mom!?! But here is a decent explanation. There are transistors and resistors in a computer that can turn current on and off. In the on position, these computer geeks called this the one in binary and the off position they called the zero in binary. Binary is a 2 base numeric system that only uses 1s and 0s. So as you can see, computers are only as smart as the programmers make them. Trust me, this is a fact.
In my first programming understanding and attempts I remember writing programs to teach the computer to add!?! I was nine years old and the only thing you could do with the computer I was using was type some letters. When I first started using this computer all it would do is turn on. When I tried to load the floppy disk to add the drivers to the keyboard someone had rewrote it and I had to spend four days with my foster dad to learn programming just to type my name. I was shown what to do and what the keys meant but I had a working computer within two weekends.
One point of this is that you or your child is never too old or young to learn to master programming. You just have to make it exciting and fun. The second point of this is where do you see you or the one you are helping study this writing in the future. Do you want to know how to program hardware or top end applications like games and business software? Well if you have no idea start at the beginning which is assembly or machine code. I am looking at starting with a microcontroller board this time around to learn to program computer hardware. If you don’t know where to start this is where you need to begin. You can always learn to program top end applications later. That way you will be ahead of the game if you decide you want to program games or applications that need to have different code because the operating system is on a different hardware architecture. Again this is known as cross platform programming.
To start with the microcontroller you can get an Arduino Kit which is a board that you can program to have lights turn on and off and much more. The GPIO (general purpose input/output) pins give you possibilities to program many projects. I am not associated with either company but you can go to the elenco.com website and check out the basic kit for kids called Snapino which comes with some LEDs, transistors and resistors to program blinking lights and other things too. I like the idea of the Snapino safety for 12 years olds so much, since I don’t have kids, I am getting myself a Snapino Kit! You can program in C, Java, and of course C++.
The great thing about programming with the Arduino is it is an open source platform that you can search online for a new project all the time. From coin sorting machines to security access pads you will find something you find interesting or need for sure! There are even companies that put out additional kits and computer chips you can use with your Arduino. Who knows, you could be the next big inventor with what you learn. If nothing less you could write a book and give your ideas for a whole list of new projects for the Arduino.