“Rob’s Python Knowledgebase” now online

In my last post, I shared my methods for taking notes and keeping track of what I learn as I study Python.  I started out with a simple desktop-based wiki app, on my computer only.  It wasn’t long, however, before I realized I would want my Python notes available from anywhere.  I also wanted to share what I am learning with others, as a way of giving back to the Python community which has been incredibly supportive.

This week I tried out the Sphinx documentation generator and practiced writing in ReStructuredText , a simple, plain-text document markup language that be easily read and edited right alongside my code.  Sphinx then converts this markup to an attractive browser-based document that can be viewed locally and hosted online.  Enter readthedocs.org, a popular (and FREE!) documentation hosting site that many Python developers use for their projects, and now “Rob’s Python Knowledgebase” is online.  Enjoy!



Making the Most of “Code Challenges”

The biggest challenge I have faced in learning to code in Python is retaining what I learn.  Over the past few years I have tried different online “code challenge” sites and have felt the thrill of solving a challenge and earning points….only to forget what I learned in a short time. This prevented me from progressing and, I’m sorry to say, I wasted a substantial amount of time.

Finally, this year, I have found a method of gathering and organizing my Python knowledge.

For every code challenge I try, I create an Evernote note.  In that note I include the following:

  1. The requirements of the code challenge
  2. The code I wrote that solved the challenge
  3. The official code challenge solution code (AFTER I write my own code that works, of course. 🙂)
  4. A section titled “What I Learned” where I review how my code compares to the solution, and how I can improve based on what I learned.

I keep all these notes in an Evernote notebook called “Python Notes”, with my notes on each challenge tagged with the origin of the challenge (such as “Codewars” or “Pybites”)  In another notebook called “Python Sources”, I keep articles I read that helped me with my code challenges.

Finally, I have my own “Python knowledgebase”, wiki-style, using ZimWiki.  This is where I add and categorize newly acquired Python knowledge in a way that will enable me to quickly find it.  Unlike Evernote, ZimWiki has an “index”, a sidebar that shows a hierarchy of my wiki pages, so I can easily find, for example, all my acquired knowledge on topics such as Dictionaries, Strings, Regular Expressions, etc.  ZimWiki is a desktop app, however since its notes are stored in plain text, I can access them via my Dropbox from anywhere.

Here are some examples:

Sample code challenge Evernote note:








Sample entry in my Knowledgebase, based on what I learned from the above challenge:

Lastly, here’s a close up of my wiki index, showing what I’ve learned about so far:

So far this has been a great help to me in building on what I learn.  I hope you find it helpful also!