I read from cover to cover Allen B. Downey’s book “Think Python: How To Think Like a Computer Scientist”. I was able to follow the logic of the book. However, I realized that there is a significant difference between following logic and being logic.
I explain. So, as I was advancing in my reading, I had also been practicing with the examples provided in the book. It was actually not that hard … at the beginning. To answer the questions, I had to re-arrange the examples that were used to illustrate the concepts and then answer the questions. Basically, copy-paste with a slight twist. This strategy seemed to workout until Chapter 8.
The problems in Chapter 8 required me to have a complete list of past code blocks, which was fine. However, I could not just twist them a bit and answer the questions. I was wondering when I would be able to start coding by myself, meaning not using the already built code-blocks from the book.
One day as I was reviewing the book’s exercises with my mentor; he asked me this crucial and yet simple question: “Why do you use a for loop“. “Because this is how the book solves it” I replied.
“Understanding the mechanics of a for loop is part of the basics” my mentor concluded.
I then realized that my pledge for this project was to fully understand the logic and concepts behind Python. There was no point for me to surf the contents of the book if I could not swim in them, create with them.
That day, my mentor and I had a brainstorming session. The goal was to make coding logic part of me. So, we came with this curriculum:
- Algorithms I
- Algorithms II
- Object orientation
At all levels, practice will predominate.
For the section “Algorithms I”, I found a website ( CodingBat.com ) that helped me start little and let me build coding confidence.
No cheat-sheet; just the problems and my logic! CodingBat.com tests the code block for you. It is rewarding that after a series of tests, you code works.
Aside from the practice problems that my mentor gives me, I am looking for more practice problems. Let me know if you have some.
6.00.1x is an introduction to computer science as a tool to solve real-world analytical problems. Starts 11 June. http://t.co/6oqCnRJGin
— MIT OpenCourseWare (@MITOCW) 28 Mai 2014