I can’t believe it has been three months since I started learning Python!

(Or rather, it’s been three months since I started from scratch with *Python Crash Course* by Eric Matthes, after giving up on Codeacademy’s Python course for various reasons, which I wrote about here.)

I’m about halfway through PCC so far, nearly done with chapter 6 (about dictionaries). I really enjoy this book, and I’m so glad I came across it in the public library when I did. In this post, I’m going to talk about what I’ve learned from experimenting with different approaches to not just understanding the material, but *remembering it*.

My initial approach to going through the examples and exercises in this book involved taking notes by hand in a spare composition notebook. I used highlighting and different colored pens to annotate things I wrote down. This sounds incredibly tedious, doesn’t it?

It took way too long to do this for even a few pages of material from the book, which meant that I didn’t spend nearly as much time on actual practice. As a result, I got bored quickly, and I found myself opening the book less and less each day.

After realizing this, I tried a different tack: highlighting and jotting things down *directly in the book* with only *one* color.

By using this approach, I found that I was able to get through the material in the book more quickly and understand what I was reading (and typing!) without getting bored.

In addition to this, I also decided to put together a document that summarizes the key concepts in the sections of each chapter, so that I can have the information all in one place in a shorter form. I am also including a few examples to illustrate the key concepts in a comprehensive way, so that I can have a few concepts demonstrated in one or two examples instead of several (as in the book).

I have completed chapters 1 through 5 so far, and the document – including a table of contents and an appendix – is 28 pages long. (In the book, chapters 1 through 5 make up 90 pages. Quite a difference!)

The book has 11 chapters of learning material, followed by three projects. My goal is to finish the remaining 6 chapters and then complete one of the three projects (the second one, on data visualization). After this, I’ll go back to Codeacademy, with a stronger knowledge of basic Python, and add supplementary content to my “notes document” as needed.

I also want to go through *Learning Python 3 The Hard Way*, and see what more I can learn from that. (But that’s in the future, after I finish Codeacademy.)

Ultimately, my reasons for learning Python are essentially three-fold. I want to apply my knowledge of Python to:

- Data visualization and data analysis (which will be highly useful skills for me to have as a scientist)
- Software used in data analysis (like R and MatLab, which are used a lot in by laboratories in my university)
- Making visual novels in a Python-based visual novel engine (Ren’Py, which I wrote about here)

Are you learning a computer language? What kinds of strategies are you using, and what goals do you have for learning? :)

Thanks for reading, stay tuned for more cool things!

well this might be better advice for after you have coded a bit more, but here it is anyway:

Learn Discrete Mathematics.

It is the underlying math concepts behind computer programming, and will be invaluable.

Those problems u can do by hand, and you will find yourself jotting out algorithms in math form.

Otherwise, for actually coding, its best to just dive in and start programming! run program. rewrite. run another. repeat.

LikeLike

Thanks for your advice! I haven’t thought of learning discrete mathematics (I only took precalculus and statistics as an undergraduate).

You’re right; just jumping in and practicing is exactly what I’m going to do! I thought of an idea for a useful (and hopefully simple enough for a beginner) program I can write for something school-related. :)

LikeLike