How to start coding from zero, realistically!
Motivation
If you end up here, you should know first this article is written for beginners that do not really know from where to start developing anything. However, there is another category of people that may find it helpful. Whoever started a while a go but is still having troubles with basic exercises, probably due to a wrong start. I am a master student in artificial intelligence so I am not the most experienced developer in the world but thankfully I started when I was in high school from groundwork and very slowly so, also thanks to my professor, my foundation bacame strong enough. Since when I was studying to get my computer science bachelor I tutored several guys with some coding difficulties at school. That is why and how I have noticed where school and specifically universities are wrong in their way of teaching.
What does coding means for me?
Writing code is not something we are used to since we are born. That is why, for most of us it is so challenging. I have read many guides and listened to many teachers that were supposed to teach a programming language and how to use it. In my honest opinion the following is the biggest mistake that almost every one does. Knowing the syntax, grammar and semantic meaning of a language is something extremely important to code but there exist one more important thing that first should be learned.
Way of thinking
Before you enter in the meanders of a programming language you first need to change your mental model, your way of thinking. We are used to sophisticated languages like English or Italian through which we can express all our ideas in so many way and with a lot of facets. This is not available on today’s computers, if you will decide to start this journey you will see. In order to communicate with our machines we need to use a non-ambiguos and well defined sentences. That is why, luckily, a programming languages provides us a few simple structures. This is a great advantage but also has a disadvantage. Can you imagine how hard it is to express a very complicated thought when you do not have a consonant vocabulary and the proper grammar structures? You will discover it.
So how do I start?
You might be kinda confused right know, I agree. But do not worry I have the solutions for you. And it is called flow diagram or flow chart.
A flow chart is a visual language that allows you to describe an algorithm by drawning it. There are just 4 available shapes and a few way of combining them. Why is this better then a programming language? The reason is that you do not really need to learn this language, it is so simple and intuitive that you can use 100 % of your brain to understand how to combine differente pieces in order to create a working algorithm. This means you do not have to take care of any sintax, grammar or vocabulary because it will be very natural. There is also a lot of free material online, I will link something at the end.
One may say, seems great but at the end of the process I will not be able to code something.
Here is the mistake.
Once you think you are perfectly handling any algorithm you will see that a flow diagram is a valid programming language. This does not means that you can execute it, but you can translate it to any other language. Obviously you still need to learn some other programming language, but the great thing is that know you know how to program in an universal language. Now you can simply and quickly study the grammar and the syntax of your favorite languages and translate your “visual” algorithm to it. But again, you are first focusing on teaching to your brain how to create an algorithm and then you will learn how to code it.
Enjoy it!
Post scriptum: This is my first article, please feel free to leave any suggestion or feedback in order to improve, I would be grateful.
Link to useful material:
-The flowchart interpreter for introductory programming course - Thad Crews
-Algorithm & flowchart manual for students — Ravi K. Walia
-Flowchart — Wikipedia
-Learn Flowcharting. Be a Professional programmer. — Udemy Video lecture (Not tested)
-Flowchart Tutorial For Beginners — Udemy Video lectures (Free, not tested)