Must Reads – 1

March 23, 2012 at 4:59 pm | Posted in Hacking, Programming | Leave a comment

I started learning programming in year 2005. After I quit my sales job in February of 2005, I purchased Red Hat Linux Bible in end of April same year. It has been 5 years since then, I learned a lot about computers and it became my passion since then, all possible because of GNU, different Newsgroups, mailing lists, forums and all the helpful people. I have read many articles and books and essays and history of UNIX, Linux, GNU, BSD, Debian, and many other organizations and groups. Based on my experience I am providing here a list of articles that every computer science student, every programmer must read.

Ideal process would be to just read these links and google for extra information:

I guess in 1996 I tried to learn English from a book which you can find on every corner of India and it boasts to teach you English in 30 days. I tried and failed several times. Then 7 years later, during my graduation I tried to learn programming from a 30 days book and I failed again.

The problem was that these 30 days, 30 weeks, 10 days, 21 days books never teach fundamentals. Most of them have many unreasonable assumptions. By reading these you can only have superficial knowledge about these subjects and almost no knowledge of basics. This is so strange but I myself wanted to write an article like Teach Yourself “Martial-Arts/Car-Repair/Large-Scale-Electric-Systems/Nuclear-Physics/Fine-Arts/something-here/fill-your-favorite-words-here” in 10 Years.. At that time I never came across anything like blog, in 1996 there was no internet at my place, therefore I never wrote the article. Later I went into different kinds of jobs and forgotten about it. When I started learning programming and started my blog I wanted to write one but then suddenly one day I came across Peter Norvig’s Teach Yourself Programming in 10 Years and I was surprised. I concluded I will not write any blog post about my experience because people will think I am copying Peter Norving, trying to imitate him. So I dropped the idea but in the meantime before internet came I shared my experience of 30 days books with my friends.

The list of books and articles above is exactly opposite of those 30 days books. Enjoy 🙂

Copyright © 2010 Arnuld Uttre, #331/type-2/sector-1, Naya Nangal, Distt. – Ropar, Punjab (INDIA) – 140126

Verbatim copying and distribution of this entire article are permitted worldwide, without royalty, in any medium, provided this notice, and the copyright notice, are preserved.

The Real Programmer

March 19, 2012 at 11:04 am | Posted in Programming | Leave a comment
Tags: , , , , ,

I was checking out what new language to learn. There are several points here:

  • Language: Most newbies or less experienced programmers think of learning a new language and that’s it. They think learning more languages will make them better programmer. Unfortunately this is not true.
  • New Paradigm : Other experienced programmers want to learn a new paradigm which will change their way of thinking and make them a better programmer rather than a programmer who knows several languages. This is actually a better approach. But if you think learning a language like C++ will automatically make you an OO expert. Then you will end up no more different than the programmer who knows many languages

You need to think from a different angle. Are you willing to live next 20, 30, 40, 50 years of your life writing code. Rather than deciding on the income-factor What if you go with the programming-factor. What if you decide to learn a new paradigm, decide to check out something unheard in industry but heard a lot from the mouths of good programmers?

Learning programming for income is like a adding one more language to your Resume and that stops right there and it adds not much to your skills as a programmer. I think you must aim for getting more out of the time you spend, you must aim differently. My advice will be watching and observing what all brilliant programmers are doing from years and learn from them.

So instead of C++ and Java why not look at one on the list here. Now, it might take two lives to finish this list off. So you need to choose one or two languages here.

  • Haskell
  • ErLang
  • Common Lisp
  • Python
  • Ruby
  • Ada
  • Caml
  • BitC
  • decac
  • Eiffell
  • RISC Assembly
  • D Programming Langauge
  • Prolog
  • C++

After lots of googling, lots of readings of practical views, research papers etc etc I selected Common-Lisp. Lisp is 2nd oldest language still in existence after FORTRAN. Lisp has a changed a lot since then. Code and Data are same in Lisp. Many concepts were developed first in Lisp and then in other languages e.g. garbage collection. You can write Lisp code which will write Lisp code, its like creating a new language yourself.

I learned about recursion in 7 days which I struggled to learn for 4 years with C and C++. I learned Binary-Search in 5 minutes which I am trying from last year to understand with C, in C you struggle more with how to write in C rather than the abstraction of the problem and its solution.

No wait, I am not attacking C, not at all. C is a great language to learn to know about pointers which Lisp intelligently hides. I think C and Common-Lisp give two very different paradigms of programming and if you are serious about programming, you should learn both. C is a lot closer to metal while Lisp is a lot closer to abstraction (e.g. Meta-Object Protocol).

Copyright © 2012 Arnuld Uttre, Village – Patti, P.O – Manakpur, Tehsil – Nangal, Distt. – Ropar, Punjab (INDIA)

Verbatim copying and distribution of this entire article are permitted worldwide, without royalty, in any medium, provided this notice, and the copyright notice, are preserved.

Blog at
Entries and comments feeds.