This post was triggered primarily because my daughter just asked me to teach her to code. She recently graduated from high school and after spending a year traveling around the world, has decided she wants to make money.
So, as delighted as I am to spend hours with her teaching her the basics of programming, I thought I’d better scour up some resources because I learned to code fortran about 35 years ago and things have changed since I used the acoustic coupler on the teletype to connect to the University of Maryland mainframe.
I selected Python, first for the selfish reason that, we use Python at Tapaas and if I’m going to spend time teaching her to code, it should be something she can use to help me later 🙂 Honestly though, I think Python has found that amazing sweet spot between being extremely powerful, yet syntactically friendly.
The Python Wikipedia page has a rather concise layout of key concepts of Syntax, Flow Control and Data Structures.. Here is an excerpt from the page which is the sort of golden nugget that might be left off the how to or tutorial which often discard such resources as philosophical excess.
- Beautiful is better than ugly
- Explicit is better than implicit
- Simple is better than complex
- Complex is better than complicated
- Readability counts
One of the exciting startups in Australia is OpenLearning, founded by Adam Brimo, a friend and colleague from my days at Macquarie Bank. Adam’s vision is to create a learning platform which facilitates the social collaboration between students and not simply the traditional lecture / quiz model of traditional MOOCs. This course on Computing by Richard Buckland of UNSW is one example. You case search for others. Introduction to Computing at MIT is another online university resource that looks interesting.
Code Academy Python, is a place for learning basic syntax of a language. But, I don’t think one gets a foundation in the fundamentals of software from this sort of syntactical, copy me, format. This conversation at Quora, on the topic has several resources and good opinions on where to start. One of the Python Resources I came across on the Quora forum was this Intro to Python for Data Science and I thought, bingo! I haven’t had a chance to check it out yet. But it looks like exactly what I’m looking for. Here’s one more that’s recently come to my attention called Guru99. It’s author is a Google veteran and it looks thorough and easy to understand.
Since everybody these days has to be interested in Cybersecurity, I found Aimee O’Drisoll’s blog, Hacking with Python – 6 best online courses for ethical hackers, is packed with great resources. Ever since I heard the term ethical hacking while working at Citigroup many years ago, I’ve struggled with the notion hacking is ethical. But actually it probably is the best way to describe the activities of security firms hired by enterprises to test their security. After visiting Aimee’s blog to learn the skills, head over to Hackerone and start hunting for bug bounty.
If you have any resources you’d like to share, please comment below.