Solving problems should be part of a programmers life
There are two types of programmers who I encounter. The first one has an Indian middle class mentality, they are like yaa I was born, and I finished a degree, and so I must have a job, an income more than enough to support my family, these form bulk of Information Technology work force here in India. They also have other traits, the moment they get a salary you can see a change in their lifestyle, a new mobile, new dress, new blah blah. Looks like they are here to show off their new stuff than to apply technology to the betterment of humanity. This blog is not for those people.
This blog is for the hard-line people, THE PROGRAMMERS. This blog is for people who want to improve their programming despite the salary and other gains because they feel programming is cool. There are many stuff and books written about how to become and keep being a great programmer, almost all those books are about design patterns, they say do this kind of technique over others. I have read those kinds of books and felt that its authors are dumb. For me for some reason the design patterns and architectures they advocate in their books somehow flows naturally. Possibly that’s why I am in this field with relative ease. But for many that may not be the case, you must seek that knowledge.
This blog is not about seeking knowledge, but it’s about maintaining a healthy mind. As a programmer you must solve very different problems every day, the problems may vary, your brain must be flexible. To keep your brain flexible you need to solve problems in your life.
So where can you find problems? May be love and marry a girl, and keep the marriage afloat! Or if you want real problem try criticizing Modi or claim that you want to destroy Hinduism because it’s based on myths than facts. You will be arrested and possibly killed or at lease physically mentally abused in police station. Don’t these techniques give you problems enough? :D
Okay so where can you seek problems which makes you not deal with those animals? Well I do it in the following ways:
Mock Projects
First is mock projects. Why does Iran make a mockup of American carrier and lets its fighters and army boats attack it? Why did Japanese pilots practiced hard and conducted mock raids on Pearl Harbor before the real attack. By doing mock projects you get some kind of familiarity, possibly mussel memory, and you will solve many problems in real projects withe ease.
In real environments things will be boring and repetitive. You may be having a lot of ideas about what you can do with the knowledge you have, but you must respond to your client or boss because they hold or control the money that flows to you, in such cases mock projects made me flex my neurons and see what I think can be made into practicality.
You can even team up with your friends for some project. I do not do that personally because I am not a people’s person. I have huge intolerance for illogical humans, whenever I teamed up with people I feel my ideas are diluted by the ones of idiots. But if you feel teaming up with people will enhance your problem-solving skills, please do so.
Thinking Solutions to Problems
Another way to keep your brain active and thinking is to think about solutions to real world problems. Satellites launches are costly, energy intensive and needs a lot of planning, so I am thinking of an alternative solution. Why think about such crazy ideas? Because I can. Plus it keeps my brain working.
You can think about solutions to very hard problems, like how to end corruption in India. It’s very difficult, you could be killed trying to do it, so how can you do it? Hard problems stimulate one’s brain. The problems can be from math and computer science domain as well, it could also be a problem in your office, for example your office can be bureaucratic and full of politics, if you want to continue in such environment, then how to do it?
Think of solutions to problems to keep your brain healthy.
Puzzles
Puzzles are a great way to keep problem-solving mindset alive. There are a lot of puzzle books out there, there are puzzle websites and apps, so get them and start working.
Math
Math and computer science are interrelated. In fact computer science is a direct extension of math and number theory. Computers can do math billions of times faster than us, that’s it, that gives them these amazing powers. I have personally found solving math problems with machines is fun, and I am able to relate it to parts of real world problems like machine learning, searching, big data and numerical analysis. You may try it too.
Games
Computer games, aka video games are popular among developers. I think they are the most popular mentally stimulating puzzle solving experience. Lot of programmers play games, usually they are game fanatics, which includes me too. Usually when you play games your brain will be motivated to get the highest score using the least possible effort. This motivation will help you research the game plan and find a way out. Many great computer programmers are game players too, almost all of us have tried to create a computer game as our side project. So, if possible try playing games which will improve your problem-solving skills.
Take it easy
When it comes to keeping your brain fit, some people seem to schedule it, now I am going to learn this, at this time I am going to solve a puzzle, and they overstretch. The aim of this article is to exercise your brain in a fun way. Unless you know something really perfectly you won’t be able to predict. Especially if you are stretching your self beyond your usual boundaries prediction and planning fails. So do not plan, go by the flow.
Just remember this, solving problems should be part of programmers life, that will keep your brain healthy and possibly make you ignore stupidity of humanity and this life.