I just found a very cool post on Quora about the thing we can learn in a day. Here goes the list..
I would suggest (each at most a day)
- Learn how to use Git and Github
- Learn how to use SVN
- Learn simple linux regular expressions
- Find a site with a few interview programming questions, and practice going through the full answer, with code, for some of them (a few a day should be good; do them in a language you don't know well if you already can ace most).
- Set up a crawler that can scrape some webpages and parse some basic data.
- Set up a bigger crawler that has to fill out a form or two.
- Program a basic linear algebra library (matrices, vectors, multiplication)
- Add SVD to this library
- Add matrix inversion to this library
- Add least squares regression to this library
- Make your library work efficiently with sparse data.
- Learn how to use list comprehensions in python.
- Read the freaking manual for your favorite language. In the past I've wasted hours in Python because I didn't know that the Counter data structure existed, and kept getting the bugs from using Dicts as Counters. There are many examples like this.
- Get a stackoverflow account and learn to use the site. If you don't at least know that StackOverflow is an available resource, and you're an english-speaking programmer, you're doing it wrong.
- Implement a simple Machine learning algorithm on your own, with a whole pipeline. I.e. you read a simple input csv, split it into training and test set, run a simple algorithm with readily-tuneable or explorable hyperparameters, and a simple output of relevant statistics.
- Learn the how to make a simple line graph in Excel, and make sure you can do it right; i.e. properly labeled axes and tick marks, title and legends.
- Learn how to make a simple line graph in something other than Excel. Make sure you can do it right (same requirements).
- Get your eclipse installation fully pumped up: python dev tools, c dev tools, any other language you could ever write in, and make sure you can write a hello world successfully in each perspective. It'll save you time some future day.
- Learn the basic functionality of a NoSQL database; (you can learn a big chunk of mongoDB in a day)
- Learn the most basic functionality of SQL (you don't need to be a query guru, but have a small clue about it).
- Learn a tool for in-depth parsing of HTML and XML
- Implement a list-of-lists graph data structure
- Implement random walk, PageRank, clustering coefficient finding (#triangles over possible triangles) and common neighbor number finding.
- Implement BFS, DFS, Shortest Path, topological sort and Minimum Spanning Tree (bonus for union-find version). Take a couple days if you have no algorithms background.
- Make a simple java applet that has at least some interaction with listeners and not just buttons and such.
Quora post link for future reference and addition. Link
0 comments:
Post a Comment