Hi,
My name is Nicolaus and basicly I am mechanical engineer who had work as Field Service Engineer for CNC glass machinery around 13 years. Beside mechanic skill, I am also used for electronic troubleshooting, CAD design, CNC programming and teaching operator how to used the machine. Currently, I am interested to learn programming so that I can build my personal project and also to complete my journey to become full complete engineer.
So, to pursue my goal I am following computer science curriculum which is developed by OSSU. Hopefully I can complete all of their course. Below is the course that I have completed. The list will be update once I finish new course.
- PY4E: Python for Everybody
- MIT6001x: Introduction to Computer Science and Programming Using Python
- How To Code: Simple Data
This is the intro course according from OSSU. This course is great for introduction. You can find the link here. The material lesson is excellent. They have video, very good handout to read and grade assignment. You will learn many thing here, from basic python like variable, function,iteration then more interesting thing like to communicate with file and also network, basic OOP, database, XML, JSON and the best thing is you can play around to get to know how API works and also how Google web search works. In my opinion I think you can build some web scrapping apps from this course alone.
This course is great. You can find it here. I took this course at same time with PY4E then it will become more and more difficult. So I abandon entirely PY4E in the middle of the course and focusing on this course because there is limit time. With this course you will learn some basic python, linier search, bisection search, recursive function, OOP, unit testing, algoritmic complexity and plotting for visualization. From this course I had to implement a function of Hangman game and Scrabble game for their problem set. Because this is introduction course, they have some guidance how to make both game works. You dont need to make all the function, just the important ones. The best thing for this course in my opinion is their grade assignment, unit testing and algoritmic complexity. I thought I already understand their concept but somehow their assignment can make you have some doubt about the answer. Their unit testing is insane, I had to make many many conditional just for making my code pass their unit test. For algoritmic complexity, I think Professor Eric have done well to explain it so that later on we should be carefull how to implement our code for better performance and efficiency.
This course is also great. It using DrRacket as their language to teach the program. You can find this course here. I felt weird at the beginning becaue the way it add, subtract, multiply and divide for simple math operation. But as far as the course go, this DrRacket is excellent. When you make many conditional, it still looks clean. Also the way to deal with image, really great. You can easily create some animation using their bigbang module. I think this course slotting nicely after MIT6001x: Introduction to Computer Science and Programming Using Python. While I made my code looks awfull just to pass MIT course, this course will make you to have a good habit to implement unit test for each function. Also by their data driven template, you will easily design your code to make it more clean and elegant. So unlike MIT course that support you for helper function, this course will get you to build Space Invaders game from scratch for the final project. I have finished that game and modified a bit by add Score for the game. You can find the code of the game in here for your reference.