MouthShut.com Would Like to Send You Push Notifications. Notification may includes alerts, activities & updates.

OTP Verification

Enter 4-digit code
For Business
MouthShut Logo
32 Tips
×

Upload your product photo

Supported file formats : jpg, png, and jpeg

Address



Contact Number

Cancel

I feel this review is:

Fake
Genuine

To justify genuineness of your review kindly attach purchase proof
No File Selected

Programming cannot be taught, has to be learnt
Apr 20, 2006 08:13 PM 7534 Views
(Updated Apr 20, 2006 08:13 PM)

Dear reader,


Education is an admirable thing, but it is well to remember from time to time that nothing that is worth knowing can be taught.




  • Oscar Wilde




So your reading this article is a waste of time for you. Because good programming cannot be taught, either in classes or by friends. It comes on your own, by association with good programmers, by learning from your boss(if he is good), and by looking at how other people have written code.


So please stop reading this article and instead do some'real' hard work and learn how to program. And program well.


If you still feel a rebellious streak to continue reading, then let me tell you this much. I can only give you certain pointers and points to ponder. In other words I can at best give you blows to your brain that can help think what could be wrong with me?


In my opinion if we cultivate a child like inquisitiveness and ask questions and think in a simple and non crooked manner, you are already a good programmer. You don't have to know a single programming language and without any exposure to computers, you will become a great programmer if you can think in a simple way.


'Things should be kept simple. No simpler.'




  • Albert Einstein




Now many of us don't think simply. I am a very naive person. I always have a positive approach towards people. I don't  see ulterior motives, untruthfulness or jealousy in people. All of us think others to think like us and I am no exception. In fact this naivety in me has hurt me more than anything else in my life.


Ironically it is this very simple thought process that makes me very good at programming. My brain is naturally wired to think simply.


But actually programming has very little to do with straight forwardness as it has to do with IQ level. And of course like everything else in life it can be honed with persistent effort and practice. And it requires focus. For instance I took close to a decade to become good at C and UNIX programming. And the battle has been a long and difficult one. Not easy.


So unless someone has a passion for programming you should not get into it. Because you have to dot the i's and cross the t's. It is not just enough if you get your idea right. Every single detail should be devilishly accurate or else your program will crash and be totally useless.


If you have a penchant for solving puzzles, mathematical problems and interested in thinking deeply then you have everything required.


It is only a matter of 8 years before you become a good programmer. And you only have to work patiently and steadily all these years. Oh, just kidding!


But what I said is not very further from the truth.


Now, let me explain why passion is so important to programming and why India is so poor when it comes to the quality of software we produce. Both are related.


All the millions of software engineers in India look at software as a job, something that they are paid to do. Now life doesn't work that way. You are not paid to be a good husband, or a good son or a good daughter. You are not paid to be nice to yourself and you are not paid to be nice to your friends.


If you approach something with the sense of duty, then you are bound to fail. Because as Swami Vivekananda says, 'Duty bounds chains to our feet.' Look at it from the perspective of freedom. You are free to do what you like and you write code because you can't help but write code.


Only when this level of commitment and passion is there, great things happen. Not before that.


And slowly over years, by studying other people's code and observing how programs behave. You can do this easily looking at the open source programs and playing with the several free tools that come with FreeBSD or Debian or even RedHat Linux.


Slowly you begin to understand how things are done.


And you definitely need career programmers. If you are the CTO of a company, you should definitely do programming. Programming is not some clerical mechanical job. The devil is in the details.


Get out of the mindset that brilliant people are designers and managers. I discovered with much agony that you can never design correctly without knowing the appropriate programming precepts and also you should choose the right tool for the job. The right approach, the right library. When to use threads and when to avoid them? Many people still naively believe that multi threading is better than multiprocessing and that by creating hundreds of threads, they can improve performance.


You have to unlearn what you learnt at college, even if you are from MIT.  Professors have no stake in real life.


Real life experience counts and sometimes it is the only thing that counts.


And lastly programming is not about technical accuracy alone. Your program should be bug compatible, have workarounds for other people's defects, it has to be user friendly, it has to be intuitive, it has to be of simple design and so on.


So IQ is just one of the qualities required for becoming a good programmer.


Experience, experience, experience.


If you wrote 50, 000 lines of code in your BE project, it is not enough. If you write 1500 lines of code that solves a design problem elegantly that is better.


And please please don't reinvent the wheel. If somebody has done something well before plagiarise. Copy paste. There is nothing wrong.  Your ego will not get hurt because you copied somebody's code. After all that person has gone thro' the trouble of experience which you cannot gain just with your IQ.


And if every radio manufacturer also made his own capacitors and resistors, will he ever be profitable?


Upload Photo

Upload Photos


Upload photo files with .jpg, .png and .gif extensions. Image size per photo cannot exceed 10 MB


Comment on this review

Read All Reviews

X