A great opportunity to practice this is a pet-project. This article tells how it begins and how a pet-project can affect the professional experience.
What is a Pet-project and Why is it Needed?
A pet-project is an individual (less often a group) project that you do to test your own hypotheses and/or put into practice a newly learned technology or approach. You can do this on your own, or involve friends and colleagues. Working on a pet-project can take weeks, months, or even years, as long as you have free time and new ideas.
These projects can be:
- Websites or blogs
- Games
- Useful programs for mobile devices
- Utilities for computer-based PZ
- Augmented reality programs
- Software for robotics
- Chatbots, etc.
This is an out-of-work activity that is a good option if:
- You don’t want to give up your full-time job
- You are not sure if your idea will work for the team, but you really want to try it
- You are willing to devote a lot of your free time to it
Such projects are like a hobby for developers, which brings them pleasure from their own activities, as well as benefits to other people (if the project reaches the end-user).
Why is it Worth Taking on Pet-projects?
Both for a beginner and a more experienced IT specialist, this is a great opportunity to test your technical skills, your ability to think strategically, and your ability to think about how an idea will work in reality. In addition, by completing a pet-project, you can roughly understand tasks and workflows in startup companies.
Often the newcomer is afraid to propose a solution to his colleagues because he is afraid of letting the team down if he fails. This fear prevents the person from reaching his potential.
Working on a pet-project, you can make mistakes, try something new, and look for different ways to solve problems, all without fear of doing something wrong. In this way the novice developer will develop a useful professional habit—constantly generating new ideas.
Pet-projects require independent search and analysis of large amounts of information, without which it is impossible to implement any project, whether commercial or “domestic.”
Creating a pet-project will also help you develop self-discipline. And if you know people with the same ideas, you will be able to improve your skills in teamwork and project management. You will not only play the role of the developer, but also will try yourself at the position of manager, customer, or tester.
Let’s talk separately about the usefulness of pet-projects for experienced programmers. As a rule, in professional activity, a specialist is confronted with one specific type of task (web page layout, designing games and content, creating bots for social media and algorithms for email distribution, etc.). The pet-project will help you expand your professional expertise, maintain existing skills at a high level, and keep polishing these skills. It is also a handy way to test new programming and data processing tools.
Many IT companies do not allow showing code fragments in portfolios due to confidentiality policy requirements. In order to show their practical skills to potential employers, the developer can create a similar commercial pet-project, where he presents his best solutions.
A pet-project is not limited by anything: not by terms, format, or technology. This is a good way to get away from your work routine and devote your time to the areas you care about.
However, here are a few disadvantages of such projects:
- It can be difficult to find a balance between your main job, pet-project, and time off from it all. Sometimes you have to work on your own project on a residual principle when you have strength.
- In the end, the project may not take off, even if a lot of time was spent on it.
Before starting the pet-project, it is worth remembering these points and being brave enough to take decisions at the beginning of the work.
What Pet-project Topic and Technology Should You Choose?
First of all, find out what you are going to build the pet-project for:
- To discover a new technology or to try out an approach to development
- To automate routine processes
- To create a product that will improve the life of your community, society, etc.
Depending on your project objectives, you will be able to think about the subject matter and use the appropriate technology.
The next step is to choose the right tools. For example, if you are going to work with machine learning, you should not choose PHP—this was created for other tasks, above all, the development of sites and web-based solutions. This language is used only on the backend and is not always suitable for machine learning algorithms (although there are some libraries for this). In this case, it is better to use Python or R. Alternatively, you can also combine several languages. At the same time, it is important that each of them respond to the area of development, for which it is most suitable.
For example, if your project is about web development, you can try the standard LAMP stack (Apache) or LEMP (Nginx), and use PHP or Python as the backend. If you want something exciting, take Golang. For mobile development, you can choose from a wide range of tools: from JS (which, probably, will be used by dummies soon) to Swift, Java, and Kotlin.
Sometimes you can use this technology stack:
- MySQL or PostgreSQL as a database
- ElasticSearch for the search server
- Redis for data cashing
- PHP or Python as a programming language on the backend (Python is sometimes used for data processing)
- Nginx or Apache as a server
- Laravel backend framework
- ReactJS or VueJS frontend frameworks
How Can You Develop Pet-projects Efficiently?
In order for your project to grow, you must first systematically approach its implementation. Write a work schedule for your project and try to stick to the plan.
Additional motivation to support the project is added by the fact that you develop along with it. It is especially encouraging when you manage to do something and want to do more.
When your pet-project has at least the basic features and you are ready to show it to the world, you should first test it among your friends and colleagues. Their feedback will help you see whether your idea is worthy of attention, which functions can be added/removed, and what can be redesigned.
It might turn out that the pet-project is frustrating, and that’s a good thing. At such a moment you can pause, switch to another hobby, and return to your project with new energy later—or in the worst case, simply end the project Even if you decide to end the project, you can walk away with useful experience. You can post your work as Opensource or Github, and if it catches someone’s interest, your idea will live on. Who knows—maybe your code itself will turn out to be a good development in the IT world.
Examples of the Pet-projects
On the basis of great data (we were supposed to collect them during the test), the system was supposed to generate a personalized training plan.
One of the implemented ideas was social media. True, it does not work now, but the developer has gained tremendous experience with its launch. When he and his team launched it in 2017, they really caused a stir in some professional circles. They even held a pre-conference and tried to advertise it.
Now his priorities have changed, as have the subjects of his pet-projects. During the first days of the full-scale war within the borders of the internal volunteer initiative, the developer collected information about the members of his team. At that time, people were on the road, in different districts of the city or even the country, and it was necessary to find out where they were, how they felt, and whether they needed help. There was a lot of data, and he wanted to automate this process.
This resulted in a small pet-project in the form of a Telegram bot, which promptly collects the necessary data and sends them to the developer. Recently, Telegram released a major update for bots. Now you can create web resources and directly integrate them into Telegram, rather than developing something separate. From here, the number of ideas he has is off the charts. He just has to find the time to implement them.
So, pet-projects can be made in order to understand a certain topic, test a hypothesis, use new technology in practice, or enrich your portfolio with interesting solutions. In any case, it is more effective if this project becomes a product that solves the real problems of the target audience or automates routine processes for you.
Do not be discouraged if something in the project does not go as you wanted it to. All the same, it’s a valuable experience. Show your expertise to your friends and acquaintances. Involve other IT-specialists in joint work. Put your results into case studies and bravely attach them to your resume.