One of my readers asked, “Any Python practice projects we can work on for learning that you might suggest?”
1) Django web application
This is especially for those of you who haven’t done web development.
(Data scientists: I’m looking at you).
The ability to create a web application is a valuable skill for any developer. The reason is that it allows you to take any other type of programming you do and package it in a way that is accessible to the masses.
If you haven’t done web development before, this should be your #1 priority, compared to the others on the list. (If you *have* done web development, skip to the next item… get out of your comfort zone.)
What framework are you using? Google will point to a dozen great options for you. It doesn’t matter too much which one you use. You can choose the one you like the most.
But if you want a recommendation, I’ll give you one:
This is an excellent full-stack framework and is well documented.
So this is an idea for a project. the next:
2) Command line tools
If you haven’t learned how to create command line programs… you’re missing out.
When you take your program and package it into a programmable command line interface…
With configuration controlled by options and flags…
and inputs and outputs for the program controlled by command-line arguments…
This always increases the value of your program. Win. 100% of the time.
So if you’ve never done it before… you need to learn.
Basically it means learning the “argparse” module. It is built into the Python standard library.
There are additional libraries for creating command-line interfaces, which are not found in the Python standard library. They have their fanatical fans already writing me angry emails, full of misspelled words, for having the audacity to recommend argparse instead of their beloved libwhateverz.
ignore them. Argparse is full featured and difficult to upgrade. And this is a battery included in Python.
So the next time you write a Python program, include it. Use argparse to make it more automatic, flexible, programmable, and generally better.
So this is the second proposal for the project. and finally:
3) Machine learning
If you haven’t ridden it on the top train yet, you should at least take a short day trip.
Yes, all the talk about artificial intelligence and machine learning is overblown. but. It also has a real essence. And you will benefit from learning it.
You have two options what to do. I recommend you to learn a library called scikit-learn. It includes tools for supervised and unsupervised learning, and pipeline construction.
This is one option, and I encourage you to start. Another option is to learn Tensorflow. In fact, I think you’ll do better if you go for it after you’ve tried kit-learn, but if you insist on skipping, at least make sure you learn the math to deal with “computing graphs” first.
So how do you use your new ML library? Well, it’s better if you can apply it to the problems you face in your work. But that’s hard to do while you’re learning the ropes.
So there is a training ground: Kaggle.
Just search for “kegel competitions” and look for the “getting started” category. They make it easy for you.