Programming with Time and Tools
This article will seem ridiculous if you are not a good programmer or don’t want to be one. This is in response to the following article:
As time passes, newer technologies come and the older become obsolete. Most people think, including programmers as well, that the newer technologies have to be learned from scratch. Younger fresh programmers with the newer tools will be the same as the experienced older programmers with the same tools.
What they are confusing is tools with techniques. Tools evolve with time and technology, to meet demands of more complex situations and evolved techniques. Programming techniques and experiences also evolve with time, as one learns from mistakes and bugs in codes.
I started programming first in 2004 in C++ and it was fun. Till start of 2006, I made several interesting (especially to me) programs and I enjoyed it. I was a student at that time. Then I came to C#, and I found what I needed in C++. I missed the CPU performance of C++ a little though. Anyway, what I want to say is that I did not learned C# from scratch. I used my experience in C++ and safety of C# to do better programming as I had to not worry about pointers and memory leakages. This facility was also in JAVA but it is very slow and the theoretical background of the programming constructs in JAVA is not very strong to me. Sometimes I went to the dangerous regions in C# as well (pointers, inherited from C++) when I needed performance in some cases, which is not present in JAVA.
Till the end of 2010 I was worried that my programming is not what it should be. I complained to one of my friends that I can’t do good programming. He told me that you can’t do good programming unless you do programming for about ten years. At the end of 2010, I found out what my programming lacked, and I experimented with newer tricks and techniques and I came to true object oriented programming and I found that it was a blessing. And I made some programs with very interesting architectural designs and I enjoyed how beautifully the problems were handled. So, learning OOP after ordinary programming was a process of my programming-mental maturity.
Then I found about LINQ in C#.NET and with the help of my little expertise in SQL I started to get rid of several loops in some of my older projects, and I was amazed just how clarified and efficient they became.
So, what I learnt is that programming is not about tools and syntaxes. It is about techniques, experiments, and passion. Experience in tools is good, but not necessary. You can look for syntax in reference materials but building good programs and software needs good techniques and experience.
Like driving, the more you do programming, the better programmer you become, and the more new tools you can learn easily and enjoy playing with them and the more you can comprehend the power and ease these tools provide. Each tool provides a set of facilities and functionalities, and the experience will enable you to exploit them in better ways.