First Serious Python Project

and what to do after you are done with basic learning

Today we are going to talk how to handle your first serious python project. This post is aimed to those beginners that just finished reading a Python book or completed a course and are not sure how to continue their journey in this great world of programming.

So let’s get started.

When do I stop taking beginners courses?

If you are like me, I’m sure you are one of those that read all the tutorials you could find around the web, you downloaded every app that teach you how to code in python, you bought every recommend book, you mastered every app quiz, passed all the tests and NOW WHAT? This is what we are going to handle today, we are going to fill that void that remains after you finish all the task of the course you took.

There is an infinite amount of choices you can pick to start coding for the first time in python, like reading python books, downloading apps (solo learn, datacamp, coursera), taking online courses, and many more. All of them do a great job at teaching us the first steps, but none tell you how to continue or what to do after you finish. There is no tutorial of how to start using your new coding ability to improve your daily life or at least how to handle a new project.

In this post I’m going to give you my personal opinion on what path you must aim when you are done with the basic training stage, how to start coding real stuff and get profit from your new acquired skill.

Become Open Source

This is the best suggestion I can give you. Many of you will probably disagree with me, but this is the route I took, and I can say it worked.

Becoming an open source developer is going to open you to the world. Github is a huge library of knowledge, and ignoring it would be low efficient way of becoming a better profesional. It’s not going to be an easy task and you may not get a better job because of it, but I can ensure you that it will change the way you learn to code.

Create your first python project

Ok, lets get our hands dirty. I’m going to assume you already know how to use Github. I will also be using this project of mine Cheat Sheet Maker as a guide. Take a look at it, it may help you get the whole picture.

Every time I start a new project, I begin by making these basic folders and files:

  • projectfolder (name of the project, main folder here goes all the engine code)
  • tests (in this folders goes all the tests to check for changes in your code)
  • documentation (here goes all the documentation)
  • LICENSE (file)
  • README.md (probably one of the most important files)
  • requirements.txt

That is the main skeleton of any decent project. Pretty simple way to start and keep everything organized. It doesn’t mean yours have to be like this, but if you have no idea what to do I recommend you to follow it. As you gain experience with practice, you will notice this setup can be improved, but when that time came, you will know what to do.

But what should be my first project?

Ahhh the million dollars question. The short answers is: “anything you like”. That doesn’t help much right? but it’s the truth and probably the best answer I can give you. But let me give you some tips before you get mad at me in the comments.

Look around you, what kind of things (probably annoying things) can you improve by using your just brand new programming skill? what are your main problems right now? Forget about what the “world” is needing, now your mission is to find a problem that you can solve, or at least reduced, for you or any other person around you. It may be a brother, a sister or a parent problem that is waiting for you to be solved. Think about it for a while, what in my job is taking me the most time? What is that boring thing I hate to do every day?

After you are done thinking, make a list. I’m going to help you start:

List of problems that can be solved coding:

  • Project list generator (your actual problem right now)
  • Secret santa builder
  • A game to waste some free time
  • A project skeleton generator (to be run everytime you start something new)
  • Excel sheet automation for a family relative or friend

There are tons of things that can be done, so don’t aim for a mega huge project, leave that for your second project. Also, don’t take to long to pick one, remember we are just taking our first steps.
It doesn’t matter if you are not sure how to solve the problem, you are going to learn along the way, so don’t be scared to pick a random idea.

Time to do research

Great! you picked a project (if you didn’t yet, hurry up!), but you have no damn clue of how to do it. If that is you, that means you aimed pretty well, not to easy not to hard. So, what do we do now? Research.

There are high chances the problem you are going to solve has already be attacked by several people, so Google is your friend here. Search it and look what other people did to handle it. You are going to find tons of variations of your task and possible solutions. Build a general idea out of it, try different already done codes and prepare yourself to start doing what you know, coding.

Commit everything in small pieces

Ok, now comes the easy part. You just picked a project and did the respective research. So, it’s time YOU start codding. Git is going to be your friend here, commit everything in small pieces. It is going to be hard and annoying, but once you get used to it you will not even notice it. Small commits are going to let you keep track of all the changes you make, so you can revert bugs without breaking everything. As thing get more complex, the commit history will help you a lot.

The readme file

You probably read a lot about this, and I can tell you everything is true. Without a readme file, not only nobody is going to understand what your code is or how to use, but in a few weeks you neither (I can confirm this).

Lets do a fast summary of how a readme file should look like (there are tons of post around the web of how to build a great read me file, this is just a simple summary):

  1. Title of your project (it may be obvious, but lot of people don’t write it)
  2. Short summary of the project, what is it and what is it for (if I don’t find a summary in a project, be sure I’m not going to spend more than 2 seconds trying to guess it reading the code)
  3. Installation
  4. How to use it
  5. Contribute (if you would like people help you)
  6. Support (what a visitor should do if he/she is having troubles)
  7. License

That’s all. Always have at least that. In a few weeks of leaving this project, your brain will wipe out everything you did out of it and you will be like any other visitor, so make sure you make the readme file right.
As an extra bonus tip, include a picture of your script running.

Publish and contributions

Once you have a basic working script, it’s time to publish (if you didn’t do it already). This means there are chances people find your project and start helping you to improve and finish it.

Here is when you get all your code “tested”. You will learn a lot during this process, not only your script will be improved but your way of programming. The review and feedback you can get in this stage is invaluable and will be worth tons of gold when you start your future projects. Don’t lose this chance and accept any critique you receive. Most of them will be really helpful, and will save you months of mistakes, so pay close attention to each of them.

Another way to get people attention from our project is sharing it un Reddit. One of the most friendly community is r/python or r/learnpython. Lot of people are going to help you, so don’t be scared of posting there.

Last words

Taking courses and reading books is just a small part of the coding adventure. There is a huge world outside theory, and here I gave you just one of the thousands ways to keep walking ahead.
There are tons of things we can still say, but the post is getting too long and I don’t want you to fall asleep. If you have any question or you published your first project, feel free to share it here!

Hope you liked it and I’ll wait for your feedback. See you in the next post.


Leave a comment