Anyone can become a programmer. But becoming a good programmer is not so easy. It’s all very well to be able to drag, drop and code. But these days too many programmers rely on their tools to do the hard work. No wonder there are so many bad programmers!
In my view, computer programming is not so much a science as an art. And for learning any art, one needs a lot of skills and abilities. There should be creativity, technical knowledge and proper composition. The same is true of programming. Programming needs creativity, logical thinking, technical knowledge and expertise.
Learning how to program and actually being able to program effectively and efficiently are two different things. Proper programming needs proper thinking, experimentation and implementation of code. And such programming can be only done by people who actually enjoy doing this. Those people are the good programmers.
Today is an era of GUI based languages. GUI tools, no doubt have made development a lot easier than that of console programming. They require less experience, less training, and they are easier to use. But somewhere behind this simple and easy development, this drag and drop thing is causing our development skills to wane.
Don’t get me wrong. I am not against GUI based languages. GUI languages are a boon for our computer industry. These tools no doubt reduce the complexity in programming plus they reduce the time taken for its completion. So they can assist in easy and fast software development. But when it comes to the beginners and learners, console programming is the best. Console based programming develops a logical thinking ability, it develops key skills such as problem solving, it increases your creativity and makes your brain sharp. In short, it makes you think like a good programmer.
I have heard many computer science students say that they don’t like console programming. They find it difficult to understand the basics of the language. Instead they prefer programming with GUIs as they find it more interesting.
Effective programming is a creative act that needs a lot of effort. It is not as easy as just dragging some component, dropping it onto a form, adding two or three lines of code, and shouting: Yippie I developed some software! Developing an effective and efficient program needs a full understanding of the basics of the programming language. It needs dedication to your work.
But let me say again: I am not against GUIs. In fact, for professional programmers, who are well-educated and well-established in their field and who possess the basic knowledge of the languages, use of GUIs is the best as it saves their time and reduces the complexity of programming. But students and learners should stick to console programming. Working with GUIs will only deteriorate their programming skills. They will not be able to learn and understand the basic elements of programming.
In short, if you really want to become a good programmer, you should learn to program at the console!