Extract of ProgrammingDecember 8, 2010 at 12:00 pm | Posted in Programming | Leave a comment
Tags: community, comp.lang.c, Lisp, programmer, programmers, Programming, proprietary software, usenet, VB
A colleague of mine once asked me a question: How to become a better Programmer ?. It was a small but brilliant question. Most programmers do not think of the answer which is correct. A correct answer will also tell you about the extract of programming. I have hanged on comp.lang.c for quite some time and I have always tried to learn as much as possible from programmers who are more intelligent and better than me. This has led to many changes in my belief-system on what is right way to program and what is the wrong way. Over time my definition of what are called fundamentals and basics of programming have changed, my practice of programming have taken an almost U-turn from what I used to do. I have become better and the very first sentence of the long answer to the question How to become a better Programmer or What is the essence (extract) of programming, will be Love. yes, good programmers, brilliant programmers love to program. They have certain kind of attitude that defines them, that separates them form the rest of void main()s.
I know you will say that everyone just can’t love programming. Yes, you are right. Trouble is, Indian education system does its best to not to let creative students love computers. The whole academic syllabus will be designed and selection of books will be done in such a way they will make any creative man to hate computers. You have to find your own way, you are on your own, thats bad news. Good news is once you determined to find your way then lot of people will help you, many of them you will never meet in real life. The community of these programmers, hanging out there reading code for hours can become your favorite pass time. Real programmers are very helpful friends, instructors and teachers. You will never be spoonfed, you will never be disrespected but only analyzed and encouraged to write good programs, programs that have quality. And one thing I have learned is that qulity comes from writing small programs, not big ones. I had a misocnception when I was a graduate student (most Indian students do have same) that writing big and complex programs will make you a better programmer, It will not (actually It will but its not true for beginners, you must already be good at basics to start writing big and complex software) Unfortunately most programmers have a weak basic and fundamental grouding in what they do. Here is the answer:
- Write short programs. They will make you better. e.g. think what *p++ and *++p will do for a pointer p and what can be the result of *p++ = *++p.
- Don’t just think, write code. Reading books will not take you anywhere. Knowledge alone is essential and it won’t make you a better programmer. Write code and write more code and write a lot more code.
- Write code and read archives of comp.lang.c if you get problems. Most of the time solution will already be there. Don’t just ask for help. Search, read archives and if you can’t sit for hours reading archives and trying code, find some other profession
- Hang onto you favorite language newsgroup. For C we have comp.lang.c, same for others e.g. comp.lang.lisp, comp,land.c++ etc. you can’t be a better programmer without hanging out there for a few years.
- Be technical rather than personal on usenet. If someone says something that you don’t like because it goes against what you have learned from your school/college then please get over it. You are not in school anymore, its real world and hence things are done differently here, things are practical here
- Rather than learning three or four new languages, give priority to learn basic algorithms and data structures. They are tough, yes, and they are very rewarding when it comes to solving real world problems (which is what you will do in a software job/business). This approach will save you not only from lot of suffering caused by Segmentation Faults but also happiness will come when you see how succinct, meaningful and readable your programs have become. Thats called maturity.
- If you want to learn new language then learn something opposite to what you already know e.g. if you know C or C++ already then rather than learning Java, go learn Common Lisp, If you already know Python, then start learning learn Haskell, if you already know Perl, then learn Ruby to see how it solves the same problems. If you think you know already know a lot of programming then read Structure and Interpretation of Computer Programs and tell me how you feel 🙂
What I have written is based on my years of experience in programming. I have summarized my experience in a very small and short blog. Don’t just ignore it. I have done many mistakes as beginner and I don’t want you to waste your young years in walking a path and later realize that it was wrong. Youth won’t come again, save it, invest it to proper use. Programming is a kind of love difficult to leave once you got hooked onto living with it. Its a joy but a hard kind of joy 😀
Copyright © 2010 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.