Journey With Programming Languages - Part 3
Diploma - B. Tech - Current
Been a long time since the last post.
So, the next stop in my journey was the Web land. There was HTML, CSS, and JavaScript. This is where I learned the principle of separating the actual content from its presentation and behaviour. Now this principle is very general, hence is not only applicable to the Web land, but also to (insert your favorite development platform here) which basically includes some kind of User Interface. It can also be considered as a special case of the Separation of Concerns principle. I didn’t touch much on the JavaScript as I was unware of its real power!
Then I got interested in Game Development (O yeah!). I tried many approaches including Allegro, Game Maker etc. and finally ended up using Blitz BASIC. Its just a derivative of the original BASIC along with some specific features for game development such as graphics, input and audio handling etc. The syntax was easy and the approach was pretty RAD. I developed a simple vertical scrolling shooter with help of my awesome younger brother (who is way more creative than me!). We together did some game UI elements with Photoshop.
I designed the ship for the game myself with the Allegro Sprite Editor. It was a 32x32 bmp. For the rest of the sprites and game music, I searched the web. The game lagged as the number of asteroids increased, due to my inefficient algorithm, as it was my first attempt on building a complete game. Somehow I managed to finish it. It was a fun experience.
The next language was the cousin of the previous one, Visual Basic. I didn’t like it much and was not convinced by the whole drag and drop idea for developing user-interfaces. It might have been a boon in early times, but for me, it seemed less programmatic. I just did for the sake of my curriculum.
As time went by, my diploma finished and I came to Chennai for the B. Tech. in Computer Science.
Python seemed to be very popular those days on the web. I looked up for some examples and decided to give it a shot. I loved it! It was fun, easy to learn and understand, had cool in-built data structures. The syntax was plain and simple, just like English. I found it very useful for quick tasks and programming competitions. I used it for solving problems from websites like Project Euler, CodeEval, SPOJ etc. My solutions to some of the problems from Project Euler and CodeEval can be found on my Github.
Though I loved Python, I couldn’t decided whether I wanted to pursue my careeer in it. I didn’t pursue the advanced concepts but had learnt enough for trivial problem solving.
My current favorite is JavaScript. It is the language of Web, and Web is the Future. So JavaScript is the language of future! To quote Douglas Crockford, the great JavaScript wizard:
The World’s Most Misunderstood Programming Language Has Become the World’s Most Popular Programming Language
and yes, he is referring to JavaScript. I am very comfortable with the syntax as coming from a C background and I appreciate its dynamic and functional nature as I was already exposed to those concepts through Python. I am impressed by the recent developments in the JavaScript ecosystem, especially Node.js, and the rise of front-end MV* frameworks. Though it has its quirks, I have planned to take it very seriously and pursue it to be a full stack JavaScript developer. I am also looking forward to learn some un-conventional but exciting! technologies like MongoDB, Redis and the list goes on.
By now, you might have concluded that I am a language geek! For people out there planning to go on a similar adventure, I would like to say that, try to focus on problem solving rather than getting lost in the syntax details. The syntax will come naturally once you learn the basics. I wish you good luck for your programmatic journey. Just don’t forget to have fun! :)