Whenever we hear the word “programmers” we automatically write them off as people who would be too much into logical and technical stuff.
Especially people coming from non-programming background, for example, tend to exist in a logic bubble. They are too caught up in their own perceptions and ideas to break out of that bubble and have a more simple outlook. A programmer on the other hand thinks in a very C -imple way.
Question: How do I enter?
A regular person: Use a door
A programmer: scanf or cin
Wicked ! right?
So how does a programmer actually go about things? what does he focus upon and how do all these factors affect the final product? First things first, Programmers function entirely on logic. Programming helps in developing your skills of logical thinking. Here you have to think about all possible outcomes. This leads to a sequential pattern of thoughts, like,
“if I did this then this would happen…or if I did this then ____.”
On a broader scale, it encourages the use of critical analysis. Habits of analysis pave the path towards logical thinking. Emotional investment isn’t something they worry about. Their main focus lies on task completion. I personally feel that a programmer doesn’t “think” in one specific way but there are certain characteristics that all good programmers share that make them stand out in the crowd.
Kent Buck said :
“Any fool can write a code that a computer can understand.
Good programmers write codes that humans can understand.”
Martin Fowler
Planning It Out.
Well by now you have an idea and understanding of what you aim to achieve. So where do we go from here? Well that is the step where most of us mess up. Irrespective of the what the task is , it is important to build a framework and plan your actions in advance. You know the question, you have ideas… now its time to plan your solution. Give yourself some time to analyse the available problem and consider the possible ways to reach an expected solution. Don’t rush in with your ideas.
Breathe.. Think.. Assess.. and then Act. Remember ,
A Goal Without a Plan,
Is Just a Wish.
Divide And Rule
Familiar right? Well, believe me, this is one idea which is the answer to all the problems one can encounter. You have analysed the problem and the next step is to start working towards the solution.
Ok Pause ! Take a look at your problem. How big is it ? Big enough to get your head rolling, is it? Well simple.. break it! Google to the rescue. Again! Search for possible ways. Try finding people who have solved these problems before and identify where you have erred.
What Makes a Man Perfect ? Practice!
The easiest and the most reliable key to success is practice. You may have the highest grades and a plethora of knowledge in that head of yours but if you do not have enough practice of how to put that knowledge into action then, sadly, you are still not on the road to perfection.
If you aim to achieve perfection overnight then you are digging your own grave. There is no pill to convert you into a good programmer. It takes a lot of reading, writing and practice. So start now.
Practice anything to everything that you stumble upon. From puzzles to games you are surrounded with endless options. You just need to pick the one that best suits your need.
Alan Turing said,
“Programming is a skill best acquired by practice and example rather than from books.”
IT’S A WRAP! Ah! finally. By now you are aware of how a “good programmer” thinks. The only thing left for you to do now is to become “one” yourself. How do you achieve that? Simple. Practice and Learn .
Take up different problems and try solving them. Don’t be afraid to start afresh.
“The mark of a mature programmer is willingness to throw out code you
spent time on when you realise it’s pointless.”
Bram Cohen
“I am not a great programmer;
I am just a good programmer with great habits.”
What traits would define a good programmer and thereby help us in developing the skills to think like a programmer? No fear, I am here !! I am going to try and construct a process that, hopefully, would help in developing the expertise to think like a programmer. On your marks ! Get set! Let’s go.
Ideas Please!
This is the first step that would totally determine what you expect your final product to look like. Scratch those brains and bring those genius ideas to life. A good programmer is aware of what ideas would work in his favor and hence is willing to abandon good ideas for better ones, even if they are not his brainchild. So, remember to put the interest of the project before anything else. Let go of that ego. Mature up people!
You Know What You’re Doing, Right ?
You have a bucket full of ideas ? Great ! What next ? Well the next step is understanding what is being asked of you and using the right tools for the task. You need to utilize all the available resources in order to know what is being asked. If you can explain it to a person then you can explain it to a computer!
Note : Breakdown the problem and not your system!
Never , ever try to solve a big problem else you are bound to doom. Simplify it by breaking it into smaller units and solving those units individually, preferably starting from the simplest. In the end, joining all the solutions into one will give you the desired solution for the entire problem. Phew!
Still Not Happening Man!
Tried this ? Didn’t work? Got pinned ? No problem at all. DRR to the rescue! You all must be wondering what is this “DRR” ? Relax! DRR simply stands for Debug-Reassess-Research. This may sound technical but it is a very simple and basic concept .
Debugging,in layman terms, implies revision. It simply means going through all the steps, ‘unit-wise’ ,in order to identify errors and rectify them. It is just figuring out where you might have messed up.
Reassessment means to look for the solution under the light of different factors which you may have missed or over-looked earlier. It implies shifting your perspective in order to arrive at a plausible solution.
And finally, Research is a ‘search’ for all the possible ways in which you can reach your desired results. You have tried debugging and reassessing but all your efforts have gone in vain.
MINDBLOCK!
Also, remember that a good programmer cares about an individual’s product. They are optimistic, believe in their abilities and are willing to go those extra miles to get the job done and do their best everyday. Although it’s important not to exhaust a developer by constantly pressurizing him with deadlines but a good programmer realizes the need to bring a product in market on time and hence steps up to meet deadlines.
A good programmer has the ability to offer the best services at the most affordable price. For small business owners looking for affordable website designs, for instance, only a programmer who has an excellent insight of his work can be easy on the pockets of the business owners. So keep practicing and keep making mistakes. That is how you will grow and make your work stand out among the numerous ‘programming heads.’
Keep it simple. Whether it’s designing, coding or anything in life. It’s a wrap fellas!