thought-cover

Three things every beginner in programming should know

October 24, 2015

As a self-starter in the programming realm I am trying to practice, watch and read related content as much as possible, but one particular book made an impression on me even though I read just the first chapter. The book is called “The Pragmatic Programmer” by Andrew Hunt and David Thomas and here is the first thing I learnt from the book:

“Programming is a craft. At its simplest, it comes down to getting a computer to do what you want it to do (or what your user wants it to do). As a programmer, you are part listener, part advisor, part interpreter, and part dictator. You try to capture elusive requirements and find a way of expressing them so that a mere machine can do them justice. You try to document your work so that others can understand it, and you try to engineer your work so that others can build on it.“

When I decided to quit my job and start learning how to program I underestimate the difficulty of being a programmer. After this period of learning, I realised how big is the baggage of skills you must have if you want to call yourself a programmer and Andrew Hunt & David Thomas masterfully present how programming is more art than science. Exactly this complexity, which in most cases is misunderstood, scares the beginner/self-starter and one will end up giving up to their quest of learning how to program.

This situation happens very often especially if the beginner has no friend or colleague to whom to talk about the bugs they encounter in their programs or the great amount of information one has to be up to date. For instance, my preconception about programming languages was that a programmer has to be proficient in just one language, but when I started to read the job requirements I saw that usually a programmer is asked to be proficient in one language and to have at least basic knowledge in other programming languages as well, which came as a shock to me at first because once again I realised how little I know and how much I need to learn.

The second aspect that beginners miss is the fact that learning to program and being a programmer identifies with extreme dedication. It is all about taking your craft at a higher level every single day and a quote that resumes the dedication a programmer should have is the following:

“A tourist visiting England’s Eton College asked the gardener how he got the lawns so perfect. “That’s easy,” he replied, “You just brush off the dew every morning, mow them every other day, and roll them once a week.” “Is that all?” asked the tourist. “Absolutely,” replied the gardener. “Do that for 500 years and you’ll have a nice lawn, too.”

This extreme dedication a programmer needs to have is another aspect that makes the beginner to give up programming. I had a few moments when I asked myself if I am really prepared and determined to commit to such a long and arduous feat — learning programming on my own. Every time my burning desire to create products that users (hopefully) will get to love and it would also create value for someone eventually prevailed and I kept on going. This kind of moments are very useful for beginners because it teaches them that endurance to situations when they do not know the answer and they will have to dig deep to find an answer is mandatory in the programming industry.

“Kaizen” is a Japanese term that captures the concept of continuously making many small improvements. It was considered to be one of the main reasons for the dramatic gains in productivity and quality in Japanese manufacturing and was widely copied throughout the world. Kaizen applies to individuals, too.

After reading this quote I think I found my mantra or some personal philosophy that I can follow both in my professional and my private life. Moreover, I believe this mantra is the perfect way to approach programming especially if you are a self starter that is making a career switch and it is also the third thing that beginners in programming get wrong. Taking things small steps at a time will work miracles in the long run. Also, it gives you the daily confidence that you learnt something that day and more important you are closer than you were yesterday of becoming a programmer.