Working with programmers it´s a special experience. If you don´t know how to code it´s like you moved to northeast China and you don´t know a word in Mandarin. Jokes apart. Learning how to code isn´t just about knowing C#, PHP and Python, but rather changing the way we think! So maybe you won´t be Neo, but creative people are always looking to change their perspectives or figure out new ways to think outside the box.
A real programmer knows how to handle real problems. There are many different problem-solving skills that can make your daily life more efficient: abstraction, pattern recognition, sorting, … You can also use some techniques like R-mode or L-mode thinking … or just use a special feature called “Ask someone else”. Seriously. Your biggest resource can be the person sitting next to you. Often you’ll work it out as you verbalise it.
“The measure of success is not whether you have a tough problem to deal with, but whether it is the same problem you had last year.”
John Foster Dules, Former US Secretary of State
- ASKING THE RIGHT QUESTIONS
Programmers ask questions to ensure that they fully understand the problem. Learn how to observe details and do not be afraid to ask questions. There are no stupid question – the only stupid question is the one that you don’t ask.
As Einstein put it: “If I had an hour to solve a problem and my life depended on it, I would use the first 55 minutes determining the proper question to ask, for once I know the proper question, I could solve the problem in less than five minutes.” – http://mentalfloss.com/
- LOOKING FOR INEFFICIENCIES
It is said that programmers are the laziest people on the planet. They tend to always find an easier and more efficient way to do things. My coworker Jure (yes, he is like Neo) likes to cite Bill Gates quote: “I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it.”
- ABSTRACT THINKING
Abstraction means reducing a complex problem to its important components. Some programmers can see the whole picture of the problem and they can simulate (in their mind) how the program will work. However, not everyone is capable of abstract thinking. In any case, you have to first defrag the project into smaller, digestible chunks and then determine what the smallest chunk is.
Do I know how to code? No. Not yet. But I learned some fancy new words like Encapsulation and Polymorphism.