My top 12 tips for all your side-projects
Ace your next side-project and become a more complete software engineer.
Background:
Over the course of this lock-down amidst this ongoing pandemic I was able to develop some interesting side-projects in a limited period of time. Having created a few of these side-projects, I was able to loosely define a proper pipeline to help create side projects in a more structured method. I am a firm believer in creating SOPs (Standard Operating Procedures) for as many tasks as possible to unburden oneself. So, here I present to you my top 12 tips from my project pipeline to help streamline your next side-project.
My top 12 tips:
Recently, I have been in touch with a lot of my juniors asking for some kind of guidance in their respective tech careers. For most of them, I suggested learning new technologies and making impactful projects. Having myself worked on quite a few projects and having made some silly mistakes, I have condensed my knowledge of what works and what doesn’t in these following 12 tips. So, here we go:
Tip1:
It’s OK, and yes, ethical to take inspiration (even heavy inspiration) from the projects that you create in tutorials and build something of your own. As long as it is even slightly different than the one in tutorial, its fine. Don’t let anyone talk you down because of it.
Tip 2:
A “Best-seller” course means that it helped a majority of people learn a specific concept. Don’t beat yourself up if you can’t keep up with that “best-seller” course or if you feel lost. Just drop it and look for another resource to learn. Simple.
Tip 3:
Pay attention to yourself and find your learning style. I know a developer who hates tutorial videos and almost entirely depends on docs and another developer that has never opened any docs and just utilities video tutorials.
And, for your information, both of them earn quite a handsome salary.
Tip 4:
A tutorial is not a movie or a web-series that you have to *finish* as soon as possible. Take your time. For every concept that’s introduced, actually write the code along with the instructor and mess with the code all day long. Try and change several things in it,understand why your changes worked or didn’t work.
Tip 5:
Use Google Developers, Stack Overflow, Quora , Reddit first and only ask another friend/developer your doubts as the last resort. This is the only way to grow and to learn the pristine art of *googling stuff*. Don’t give in to frustration. Persevere.
Tip 6:
Don’t make rubbish and moronic goals such as “I’ll build 5 apps this week.” DON’T DO THAT. Set mini goals. Like, “Today, at least I’ll create a wire-frame for my app and if that’s done, I’ll do x..y..z..” This will keep you on track and motivated.
Tip 7:
Generally speaking, we tend to be lazy and consequently become unmotivated. So, try making your efforts public by taking the #100DayOfCode challenge. Although, if you’re someone who’s a little uncomfortable with that kind of attention, maintain a private log of your daily work. Simple.
Tip 8:
After you’re done with the coding part of your project, put it in a public repository on your GitHub. Use the github GUI till you get a little comfortable with git. Give a succinct yet complete description and ReadMe.md. Use photos and diagrams to elucidate.
Tip 9:
After you’re done with the github part, deploy it. This is non-negotiable. You have to deploy it. Use Netlify, Code Heroku, free awscloud credits and deploy that website. Get that model/analysis out of your Project Jupyter notebook , build an API and deploy it. Period.
Tip 10:
Write a detailed blog-post about the technicalities of your project. Clearly explain why you did, what you did and what alternatives did you consider. Write this on a public forum and ensure it reaches as large an audience as possible.
Tip 11:
Use your social media presence to let people know about your project and the accompanying blog-post on all social media platforms. The idea here is to get your projects critiqued by as many users and developers as possible. Listen to their suggestions, concerns etc and tweak your project, if and only if you deem fit
Tip 12:
In point 5, I asked you not to discuss your doubts with your friends/developers etc. Well now is the time you can discuss whatever doubts you have and have in-dept discussions about the project, its scalability, tech stack used in the project etc. Listen, learn and grow. Simple.
Conclusion:
So, that’s all. That is the most optimum and impactful project pipeline that I learnt/discovered while working on my different side-projects. Use it as general guideline and tweak it according to your style, requirements and predispositions.
I have left out the minutiae of this project-pipeline because that varies according from one project to another. If you’re in a fairly advanced state of your career, consider adding more structure to this pipeline, for example, try integrating a CI/CD test for your project, figure out a working methodology such as Agile or Waterfall and so on.
Thank you and Godspeed. _/\_
SDE-2 at Amazon | Educator
4 年The only thing I like about your post is that they are crystal clear. The thoughtfulness you put into all your work is commendable this reflect your knowledge about a particular topic. Kudos. Keep it up.
Senior Software Engineer @ Apna | Ex-[Unacademy | HackerRank] | GSoC'19 @ The HoneyNet Project | GSoC'18 @ The Metasploit Project | IIIT
4 年If someone is taking his/her personal project to a level where there's a necessity of CI/CD, it's amazing in itself. There's one more thing, that I would like to add. The goal of personal project is to give you hands on experience of software development. To fully understand it, write more than functional code. Make sure it's readable, modular follows the basic principles of programming. More importantly, get used to writing tests. It's going to help in the long run. This is my experience as a beginner in software development. All the best to everyone. ??
Blockchain Developer at Neue World - UI/UX Agency
4 年Good explanation.