“Learning to code is learning to create and innovate.” — Enda Kenny, Taoiseach, Ireland
After 2 years I came back to learning programming from the beginning.
It was great. I felt really passionate about it.
However, as the course came to an end I felt like I know less and less of programming.
You ever felt that way? Why is that?
I guess a lot of concepts that I learnt in the 5 months of study I didn’t understand them properly. Even though I supplemented the Udemy course with FreeCodeCamp free courses and exercises, I didn’t feel like I am getting enough of it.
Some things were easy to grasp, such as variables, operators and arrays. However, some were extremely hard to even watch. Such as algorithms and object-oriented programming felt like climbing a mountain. It even got worst when I tried to learn to the front-end framework React.
Yet after 2 years of ditching programming and doing other stuff. I quit my job and went back to programming because I felt like I have a passion for coding and automation.
But this time I am taking a different approach and taking you with me.
Udemy is great. But Harvard is better.
You see, Udemy is great. Some of the instructors definitely have what it takes to take you from an elementary level of programming to beginner or intermediate.
But this time get yourself platinum coding fundamentals.
Start CS50: Introduction to Computer Science from Harvard University. A course with a great teacher (David J. Malan) with lots of teaching experience. Especially in giving first time programming classes. And a tailored program to get you from elementary to strong beginner.
The first programming language they teach (after Scratch — a cloud-based programming game) is C.
Why did they choose to teach as C as the first programming language? It is not encouraging, it is not easy as python is, it is not beautiful. Why?
Here are 3 reasons I think C is a great programming language to start with.
C is the grandfather of all programming languages
C is considered the grandfather of all programming languages.
Before, I could never even understand Java or C++ code. However, when I am debugging my C code right now, I look at Java or C++ examples and easily understand the logic to implement it in my C code.
I believe mastering C programming will give you the powers to declutter and decrypt any programming language in no time.
Have you ever been scared of Java, C++ or C#? Learn C, you will never be scared again.
C at the beginning seems such a hard language. I believe it is.
Just looking at this Hello, World example, will make you a bit worried about learning C in the beginning.
So was I…
But there is one thing I have noticed after I switched back to Python or JavaScipt exercises from HackerRank or FreeCodeCamp.
Creating a function, if-statement, or for loop is much easier. Even If I am getting bugs. Its much easier and human friendly to debug something in Python than in C.
Versus Python Hello, World!.
New technologies are easy to grasp
In this modern times a new library is innovated and is released every other week. New courses are being made to get people up to date.
We like new things. We like learning new technologies. But why are we spending more time learning than development?
I believe if you have good foundations of programming and how computers work you will be able to learn a new programming language on the go, only by reading the documentation and some examples.
Whether you are on the path on learning web development, game development, mobile app development or data science, I encourage you to join me and learn the fundamentals first before we step into the world of easy easy programming languages and fancy frameworks.
Learning the basics will give you the powers to move easier to complex stuff. Especially in programming.
If you are interested in CS50’s Introduction to Computer Science Course you can find it here (No affiliate links). You can earn a certificate if you complete all the assignments with a score higher than 70%.