Search This Blog

Sunday, August 1, 2010

What Programming is all about.

Okay this is my first post on this blog. This post closely relates to my life in the journey of programming. Today most of us are dependent on computers, may be it for work, for leisure or rather most of our work. Its surprising to see the advancement done in this field. There were days when a simple '16 bit' games like Dangerous Dave were favourites and downloading an mp3 used to take an hour. But advancement in hardware has led to even faster advancement in software. So a person entering this field of programming has to cope up with the current speed. The outdated technologies may have been vanished from the software industry but have always served as a base for new ones. Here in this post i am listing the primary languages that a programmer should know in chronological order. I'd like to start off with an overview of kinds of programming a programmer is involved in. I like to classify these kinds based on the following three fields :

1) Embedded Systems Software
2) Computers Software
3) Web applications

The reason behind this classification being, each of them can survive as an independent industry.

The niche of embedded systems deals with programming the microcontrollers. The language used for programming these tiny microcontrollers is Assembly language. Each microcontroller has its own set of instructions (Instruction set) but the basic instructions remain the same. This language is easy to learn and the real deal is watching these programs in action. You could write programs to turn on or off the LEDs, run a stepper motor, do some calculations, communicate to other devices, etc. These microcontrollers are now available at a very low costs. One of the famous 8 bit µC(microcontroller) is 8051, which has 128 bytes RAM and 4Kb of ROM. Since most of the µCs have ROM to store programs, testing becomes a difficult part. Hence the program needs to be finalized first, then tested and once its bug free it is burnt on the ROM. You must be wondering about how one could test the program without burning it on the µC?. The answer is using Simulators. Simulators create an environment similar to the µC on the computer. They have all the features and resources that a µC has (resources being virtual), but also includes extra tools which help in debugging (The primary reason for using simulators). You can actually monitor the running of program and the resources used and once satisfied you can burn the program on the µC. One of the simulator which simulates 8051 µC is EdSim51. Here are some interesting examples of 8051 programs by Mike Predko. Complex embedded systems make use of operating systems like embedded linux, specially designed to take care of limitations of the system(eg. mobile) and use modules to do application specific tasks.

Now lets move on to computer softwares. Usually programmers start with learning languages like C. C is a powerful language which can be used to write programs ranging from simple console applications to applications with GUI(Graphical User Interface). It serves as a strong base to learning the programming techniques. It gives the 1st feeling of what programming is. Once familiar with the syntax and data structures, next stage introduces a new language C++ with new concept. C++ is an object oriented programming (OOP) language where everything is considered as an object. The syntax however remains similar to C. C++ is usually followed by adapting to Java, another powerful OOP language which claims to be platform independent, ie. it can run on any machine unlike C and C++. Syntax is a bit different but influenced by C and C++. Next comes a language which is widely used to create applications with GUI easily and called Visual Basic(VB). It is an event driven programming language by Microsoft i.e. doing a particular task when something occurs. eg. showing a message on button click where button click is an event and showing of message is a task. At this stage, there is also a need felt to efficiently store data, where Databases come into picture. GUI serves as the front end while database serves as the back end. Microsoft provided an Integrated Development Environment (IDE) for developing VB applications. Structured Query Language (SQL) is a common language to query the databases.
VB was followed by VB.NET which added more features and functionality to existing VB.

Web is a very interesting and one of the very advanced field. Today every one is aware of web and taking the full advantage of it. Its members are increasing from the users side as well as developers side. Okay so lets start with the basic element of world wide web, the HTML(Hyper Text Markup Language). Using HTML we could create web pages, but it did not give it a professional look. To make it better CSS (Cascaded Style Sheets) were used which allowed elements in the HTML to be styled and properly arranged, made web pages eye catching. But it still did not make it interactive. DHTML(Dynamic HTML) added features that would make page interactive to some extent. To make it even more interactive JavaScript was used. Since all of the pages with these technologies used to sit on clients machine it was unsafe to supply sensitive data with the pages. Hence server side scripting was in need. ASP (Active server pages),JSP (Java server pages), PHP (Hypertext Pre-processor) are some of the server side scripting languages and used with databases to provide interactive sessions to the users. Among them PHP is the popular one, and my favourite.

This post was not intended to teach any language or any technology, but to give an idea of what a person learns along the time line to the newcomers in this field.

I'll make sure the next posts aren't so dry as these :)

No comments:

Post a Comment