5 years of Learning(to code)
If a few of you come away with the desire to learn to code in your lifetime, this would be all worth it.
In 2013, I set a 10 year goal of proficiency in a programming language. Hear I am in my fifth year with the distinct sense that I need another 10 or more. Had I not chosen python as the language of choice back then, perhaps my path might not have intersected Machine Learning. Wrapping up 2018 and in retrospect, I am quite certain it was a good call to start down the 10 year path of learning to CODE.
The python track, brought with it a lot of libraries, my favorite by far: Wes McKinney's Pandas and related assortment of data science libraries such as mathplotlib, scikitlearn, Numpy, SNS, NLP, the list goes on. All these libraries pack a lot of exciting learning, the more I scratch the greater the itch it appears. In a nutshell, python stopped being a theoretical coding proficiency goal, it opened up possibilities of applying the language in ways I could not have imagined.
Enter Machine Learning
---------------------------------------------------------------------------------------------------------------if you are so inclined and have some time, take the (free) crash course in Machine-learning. https://developers.google.com/machine-learning/crash-course/ml-intro . I was blown away by Peter Norvig's introduction, where he opened up the possibilities of entirely different approaches to solving the traditional coding problem ie. shift from mathematical science of coding to a natural science of observations and prediction. Below are the key differentiators outlined in the introduction to the course.
a. Gives you a tool to reduce time programming
- Suppose you want to write a program to correct spelling errors, you come up with the logic such as i before e and numerous other similar logic tests then go through the tedium of coding and testing all those assertions
- Or - you can get an off the shelf ML tool and feed it examples and develop a program in a really short amount of time. The ML tool leverages algorithms that are already written for Supervised and unsupervised learning, you just have to learn how to use them
b. Allows you to customize and Scale products
- Suppose you wrote the English spelling corrector program and now want to port it to the 100 most popular languages, you pretty much have to start from scratch. So the tedious task of gathering requirements, coding and testing for the 100 diff languages
- Or - you can use an ML tool and feed it examples from other languages into the exact same ML model and you are done
c. Allows you to solve problems that are completely seemingly unprogrammable
- We recognize pictures and make associations, but if we are asked to write a program to do it, we might not know where to start
- Or - ML models will let you feed it examples and provide you the solution
d. Philosophical reason
- Software engineers are trained to think logically using assertions to prove that properties are correct ML problems fall into the Natural science field (focus shifts from a mathematical science) where you make observations and use statistics to generate the solution
---------------------------------------------------------------------------------------------------------------
Norvig's introduction is here: Introducing ML . If you are interested in installing virtualenv and pandas: https://www.quora.com/How-do-you-install-pandas-using-pip-in-a-virtual-environment .There is a lot more out there for you to explore, as you start exploring.
It is said, it takes about 10 years to become proficient in any area of learning. I can't say I will hit that mark of proficiency, but I can certainly say that it is a worthwhile trip based on these past 5 years of observations
Congrats on the accomplishment Terry.
Congrats Terry! Way to stick with it! You've encouraged me to do the same thing. Never let them say you can't teach and old dog new tricks!
i remeber when you embarked on this journey.. glad you stuck with it and enjoy it. I want to do the same at some point.