Every programmer requires some basic preparation to take up programing challenges. Programming is not about rotting the functions and syntax of any language. You need to understand basic work flow of web (considering you are web programmer). Everytime you go to solve any issue, you need some basic skills to understand it, design and code a solution for it and successfully implement on server. Here is list of basic skills that everyone requires.
- Learn how to use Git and GitHub
- 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)
- Learn how to use list comprehensions in python.
- Read manual for your favourite language. This will help to get your fundamentals clear.
- 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).
- 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.
May the power be with you 🙂