It is November 2019 and I finally decided to take this very nice course from Harvard through the online platform Edx. The course was a gift from my girlfriend for my birthday in late august. I started it now because until now I finished all the chapters left in Automate the Boring Stuff with Python. I really took my time and from my point of view my learning curve was acceptable. This course is a lot more complex than everything I’ve seen and quite frustrating!
“I am very excited to learn a little about scratch but also about some C programming – the basis of programming languages! Knowing some Python, I believe the course should’t be that hard and I think I will finish it rather quickly !” I enthusiastically told myself while I was watching the first lecture.
Boy was I wrong ! .. 🙂 The first lecture was about Google’s programming language for children mainly – Scratch. It is very graphical and quite easy to follow. I did a simple game in which a sprite follows another sprite while using keyboard arrows and when it touches it it gets a point. Kind of easy but some implementation it did not work, but I uploaded it anyway because it respected all the requirements. Got a passing score.
Before that though I had a 2- 3 days “frustration” gap because it said that we should install submit50 on our PC. I have a decent laptop with Windows installed. The issue was that they said to open the command prompt and I said pip install submit50, it gave an error that said I should install Ubuntu environment so I can assign this command. I started to install Ubuntu, and then the environment, and finally while trying to install submit50 it gave another error. I don’t know anything about Ubuntu at this moment and I became quite sad that I cannot even begin to upload my projects. It was clearly a wrong road. Somehow I have found the CS50 IDE – it wan’t that obvious where to go and what to do . Edx has a mirror platform in which you can see the lectures and assignments, I think it is misleading and doubling the initial confusion. My girlfriend was saying – it is that hard because it is from Harvard. 🙂
After watching lecture 1 I thought that it was an easy task to build a pyramid, but actually, aside from the Android Track in the end, I think this was the hardest course ever. You have to just create a “Mario Pyramid” – just like in the game – using C. Even though you feel you know the theory it was quite hard – I was struggling with the syntax. I wrote the code in Python in 30 seconds for this assignment. But in C it took me about 10 hours. Yep – I wrote 2 for loops in C in 10 hours!
Tips & Ticks: Just check some basic C tutorials online (I recommend “Naresh Technologies”- a tutor from Hyderabad). I did this for several hours and it saved me tons of frustration I would have had gained in the future lessons. PS. You will find the answer to Mario there as well. (You didn’t know it from me!) The next lessons seemed to me easier in comparison. After that I always followed the guidelines and the accompanying smaller lectures.
StackOverflow was always there to help, I always got good answers from there.When you google your question, it pops up and it seems that a lot of people have the same issues! In Mario I had the issue of “control may reach end of non-void function” – this was in my case because I didn’t call the function – I just wrote the implementation of the function but never actually called it. Mind you, I am a lazy question ‘asker’, I ask only after multiple hours of brain twisting. There is also a subsection in StackOverflow that deals exclusively with this CS50 problems but the main majority of questions about this course are already answered on the original site.
The Cs50 facebook group also is a big helper. Usually there is somebody that really knows your problem and you will have an answer in maximum 1 hour. Don’t be afraid to ask, we have to begin learning somehow.
If you do a problem right, you become confident and want to jump on to the next, If you don’t solve it you become stuck and sad. Questions may arise: “Am I fit for programming?”, “Am I too old for learning coding?”. This course has a very steep learning curve because it incorporates multiple courses on the following programs: Scratch, C, Python, Java, SQL, Android Studio. There are literally 6 courses jammed into this “Introductory course”. To learn a first language and basics of programming it takes months, sometimes years, especially if you are still working or having your own Startup. To learn these programs in 7 weeks is wishful thinking ! The issue is not the ton of information you have to learn but that it can discourage you from advancing into coding forever because of the steep learning curve !
The solution of not getting discouraged is to start learning from the beginner level. If you struggle for 2 days with C syntax – do some extra tutorials, if you struggle with Python, Java, Android Studio, do the same ! Don’t lose hope, you can do it if you persevere!