Which Python coder are you (and want to be) ?

0. Find the right project idea

No matter what your level of coding today, if you’re passionate about Python, you’re certainly looking for new tricks, new libraries to explore, and new challenges. You may have reached – if not, you will, be sure – a level in Python that allows you to think you are potentially capable of creating almost anything: a website, a smartphone application, dashboard software, with statistics, data visualization, using machine learning, NLP, webscrapping or simply data processing.

With this incredible resource that is the internet, with all these people writing blog articles in their field of expertise, and with all these books, it seems that the last main thing needed to make any project come true is work (and creativity, and perseverance)!

So here is the subject of this article: Now that you can code everything (or almost everything), how can you not get lost in projects ideas here and there? How can you find / start projects that are related to your work ambitions? That are consistent with who you are and what you’ve done?

1. My experiences (and how this article subject came to me)

I spent hours and hours imagining Python projects that I could ‘potentially’ code. Putting the project down on paper.  Simplifying the project in steps, in mini-tests. Doing the first searches on the internet. What tools exist. Are there a lot of resources for this research. How I could estimate the difficulty of the project.

For some Python projects, testing first steps were needed to see further in the project, and to estimate the time for a more complete / mature project. It’s always nice to test various tools in a simple way, to have a more clear idea of it.

process project-python

My current 3 Python projects ideas:

1.1 The most interesting - A dashboard controlled with hands moves commands

This project has already been developed (video games, XBox Kinect or other technological services). It’s certainly the project that would be the longest and for which I have to acquire a lot of new skills if I want to develop it one day. How to start? Simplify. Decompose.

The intermediate project would be an application that displays elements, and depending on the movement of the hand to the left or right, swiping the element to the left or right and then displaying the next element.

Then the main work will focus on the use of image recognition (recognizing the fingers of the hand). So I tested ImageAI, very good tool in this field. To push the thing further, it would be nice to try image recognition on a video, and train specifically for hand/finger detection. From here, we should be able to record the positions of the fingers of the hand, and so the user’s gesture. We should then train the algorithm with several brightness, several skin colors, several backgrounds (clothing user, …) to ensure the correct recording of movements.

Then to finalize, it would be necessary to be able to access the user’s camera, in a demonstration version, and deploy the solution as software, or as an online app (note: it will be maybe some difficulties to access the user’s camera if a webframework is used, to be checked).

With these short steps, this seems more or less feasible. But I have some questions

Counting only my off-work hours, how many hours could I allocate to the project? This project, and all it implies, need a year of work, maybe more? Could this project be important for my career? What are my chances of success for this project? Who might be interested in it? Would this project enable me to find a particular job?

Okay, let’s leave those questions aside for a moment.

1.2 The funniest - The sport app

Let’s add some fun. I’ve been doing cross-training for a long time. A mix of basic strength training exercises with little equipment, and a timer with custom short / long rest periods. I also have a scoreboard with challenges and my best / historical times for each. For 100 burpees, on January 04th I finished in X minutes. March 13th in minutes, etc… 

So the idea was to develop an iOS / Android App, with a customizable HIIT timer, a dashboard with historical and best times for each challenges, and also another feature to practice cardiac coherence, and apnea exercises.

I find the Kivy tool, to develop apps in Python. So.. okay, it’s doable. Info: I’m sure I can find mobile apps that offer this service. But the exercise here is to improve your Python experience.

It’s fun, all right. But what would be the point of developing this application? How many hours do I need to code this app? A stopwatch, a table with data from a form, … it’s clear that the features are not a big challenge. The challenge here is to learn how Kivy works. I coded my first Pong Game with Kivy, it was fun. Potentially, I’m ready to start coding the app.

 

1.3 The most useful - Nwundo, cultural agenda

In 2018, I created my company, and launched a cultural agenda on the French Riviera. I published all the concerts, live music, fireworks, shows, festivals, and a lot of other local events. Today, the agenda is in sleep mode, but still open.

Now that I know how to webscrap websites, that I have a good base in machine learning and NLP, I would be able to extract the data I want. I could also modify the texts of events with machine / deep learning (Google penalizes the SEO of websites that copy content / reward those who create it), extract dates, schedules, according to the bags of words and some machine learning, I could even label the event (concert, for children, fireworks, …).

And finally, automate the whole part of adding events! When I was managing the agenda, i was doing this operation manually. I couldn’t do it anymore. It’s too tedious. Each published event required at least 6 minutes of manual work (extracting / renaming / compressing the image, extracting / copying dates and times, and adding / modifying the event text). Since my Python skills have improved, it would be possible to code all this. ‘Problem solved!’

And here’s the dilemma.. The most interesting, the funniest or the most useful project do you choose?

Me i would choose all three if I had 30 hours a day. But I have a job, and social and leisure activities. So I have to optimise my choices. Decide where to allocate my hours. Being productive while respecting my life balance.

So here’s what helped me to make the best possible decision.

If you’re lost, draw your mind‘.

2. The 'Python Project square'

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.