A Geek’s Life

Journey With Programming Languages - Part 2

The Diploma

C was my first friend in diploma. It was a fresh beginning from the basics of programming. The books I referred at that time were Let Us C, How To Program - C Edition. C is an important language when it comes to both programming and understanding how low level stuff, like memory, works, as most of the things has to be taken care by the programmer himself. I was scared by pointers initially, but gradually overcame by trial and error method (what most programmers often do). I used Turbo C, but switched to Dev-C++. On the way I also tried Code Blocks.

In the beginning, it gets bit difficult to decide which is the appropriate tool for the job, but the ultimate choice is what suits you the best.

I learned about random numbers and created fun games for number guessing etc. I am glad that I learnt C, as it helped me in building a good foundation and a sound programming perspective.

Then I came across C++. This time I read about OOPs properly. It felt very similar to C and later I realized that it was a superset of C. The new stuff was classes, objects, templates etc. I didn’t look much into the STL (which I should have done!), but I liked the concept of templates, as they were great for abstraction and generalization of code. The books that I referred to for C++ were C++ for Artists, How To Program - C++ Edition, and Thinking in C++.

I just love abstraction. Learning to think abstractly also leads to a better life (as it is all about ignoring unnecessary stuff).

Next one was SQL. It is actually more of a DSL rather than a programming language. And that means you only need to specify what you want instead of how you want. The query engine handles all that complex stuff. It is easy to learn but it also got complicated with stuff like database specific implementations of SQL, sub-queries etc.

SQL is relevant for RDBMS. I was also introduced to Entity-Relationship model along with that. It is a nice and effective tool for high level design of the database, again providing abstraction. For some hands-on SQL, I preferred to use SQLite, as it didn’t need a server and used simple files as the database. For executing queries and connecting to the database, I used Database .NET. Its a freeware and fine for practicing.

To be continued