Python Flash Cards

python_flash_cardsI recently decided to buckle down and learn Python.   Python is a programming language that had been on my want list for some time.   It’s easy to use, has a ton of built in modules for things that I am interested in such as data science, and is also widely used at a lot of large tech companies.

 

After fiddling around with it for a while in 2014, I knew I liked the language, and could learn it, but I could never get over the hump.   You see, the problem was I was already really good at a different programming language.   I hired into a large aerospace company straight out of college, and being an old engineering company, FORTRAN was very ubiquitous.  Not to worry!   I had learned FORTRAN in high school  (along with Basic, Pascal, and C++) and while it was quite rusty after 5 years of little use, the value proposition was clear.   Dust off FORTRAN, and there was a ton of in house software that I could improve on to make my job easier.

As a result I became very good at FORTRAN, at least, very good for a mechanical engineer.  But 6 years later when I decided to update my skills and learn something new the value proposition was different.   Suddenly, for on the job work, the choice wasn’t   “Re-learn this coding language” vs.  “Do all this tedious work manually”  the choice was “Do the job in this new cool language, but one that will take a lot of Googling to get all the syntax”  vs.   “Get er done in the language I already know”

Since I didn’t use Python enough, I never got over the hump of “I need to Google 60-70% of what I need to do this job, and it will just take too long this time”

The solution was to take a page from my high school study techniques, and make Python Flash Cards.

 

 

So why did the flash cards help ?  Well for me the problem wasn’t understanding python syntax, I could read a program reasonably well, just not write it, nor was it understanding how to code since I was already fluent in one programming language and had previously known others well.  The problem was simply getting enough vocabulary down that I could do the simple jobs.

Once I had a foundation of vocabulary down, learning additional building blocks was fun and relatively easy.   Oh, should I use a dictionary here instead of a list?  That’s cool.   Is there a built in method of indexing my loop, so I don’t have to keep a separate counter!  What a great improvement to my code!    Once you know the basics, the great thing about learning programming is that since programmers write all of the software tools, and since they have made documentation one of the paragon virtues of their profession, there are just a ton of resources and learning communities out there.

Over the course of approximately a month, Python transitioned from a want to learn language for me, to one I was using for simple jobs, to one I was fluent in and use as my go to programming language.

I recommend using the flash cards in batches.   Instead of printing them all off and trying to learn them all at once, it is better to  work on 10 or 15 at a time and really hit them quite a few times in a short period.   I kept the flash cards at my desk and went through them when I got up to use the restroom or go to a meeting.   After you learn each batch, put it in the big stack of ones that you know, and review the big stack periodically.

Is Python something worth learning for you ?   Well if you already know at least one programming language, I’ll let you answer that for yourself.   But if you don’t know any, and you are someone who spends most of your work day on the computer, I posit that for you the answer is yes.   Simply being able to batch rename files alone saves me a lot of time, and if you work with a lot of text files or blocks of data the value proposition is even more clear.   Hopefully with these flash cards, the pain of starting will be low enough you can give it a go.

 

Let me know if they worked for you, and if you added improvements !

 

Leave a Reply

Your email address will not be published. Required fields are marked *