Learning Python programming

This is a short post about my experience in learning programming, and Python in particular – how it’s been going, what’s worked and what I’m struggling with. I’ve spent about two hours per day, five days a week, for about 1-2 months now.

As background I’ve worked in IT (consulting, project management, ERP systems, specifically HR&Payroll) for a long time. When I was younger I never really had an inclination to learn programming – I took one course of Java in college, but didn’t like it as the instructor wasn’t very good.

Here are some lessons / nuggets that I’ve found helpful:

  1. Knowing why I’d want learn is motivating for me. I want to be able to hack simpler solutions myself, and so that I can become a better entrepreneur / consultant. Ever since my experiences with Move Correctly , I’ve found that it’s frustrating to have to wait for developers to complete work.  Waiting can be especially taxing if you choose to go with a fixed price project, which by default leaves you less leverage on the project schedule /completion date…. (separate topic..)
  2. I did the Python course on codeacademy – however I felt that many times there was not enough instruction in the course (no videos), so I would bang my head against the wall for sometime an hour / two trying to get some simple function to work.
  3. The Datacamp Intro to Python for DataScience was quite fun, they award you xp based on successful answers/code, however it wasn’t very challenging and I don’t think that I’d learn to write actual code with their approach. They do have other e.g intermediate courses, but to pay 29USD per month – compared to Udemy’s pricing -doesn’t match up.
  4. In December I started taking the “Python for DataScience and Machine Learning bootcamp” and I’m about 40% through it – mostly the data science parts. After going the through the crash-course I’ve learned about Jupyter notebooks and Python libraries such as Numpy, Pandas, Matplotlib, and Seaborn. I like statistics, and it’s cool to be able to extract meaning out of masses of data for sure. However I have a feeling that this post is correct – ‘Data preparation accounts for about 80% of the work of data scientists‘, and I’m not sure that’s for me… Well -this course has the Machine Learning portions coming up, so let’s see. Overall great value, as I picked up the course for 15 USD.
  5. I’m also taking the “Python Mega Course”  and this has been really great, I can highly recommend it, and great value at 10 USD (year end sale). The best portions so far have been:
    1. Learning to write a Windows GUI program (using Tkinter library), with a connection to a SQL database (SQL lite or PostGreSQL).
    2. Learning to write a Python Flask Web app, setting up a Git/Gitbhub profile and deploying the app to Heroku.
    3. Learning the Bokeh library for data visualization on the web, example here. It’s taking a csv file with volcano locations (latitude /longitude) and using the Folium JS library for the viewing in the browser. If you are interested the code looks like this.
  6. Overall I feel I’m now at the stage where I want to start building applications that I’d be interested to see myself – targeting from start of Feb. I’m also at a stage where I can write simple code for myself, but need frequent references to libraries/google/stackoverflow etc.
  7. I will likely also retain a “trainer / programmer” via freelancer.com to help me with the upcoming challenges. A bit like the Thinkful part-time Python bootcamp, but hopefully cheaper :-). I’m planning to try out say 10 sessions/ lessons with another Python programmer to review any questions / issues I’ll have, as well as concepts/tricks etc.

Here are some development projects I’m considering to try out:

  • Simple game using either Kivy or PyGame frameworks
  • Python Django website with user login using social IDs, Paypal/Stripe integration, user data entry etc.
  • An digital health related data visualisation, perhaps with API pulls.

Look for an update on these within one month.. For now if there’s anything you would like me to specifically work on, pls drop me a line here.