“If you haven’t done Projects then, what have you done?”
Don’t get disheartened by the above statement, but this is the real truth! As an aspiring software developer, it is very much important that you have very good projects in your portfolio. Programming Languages, Data Structures & Algorithms, etc. are the skills and projects are where you apply these skills & knowledge. Projects display your practical knowledge, they display your teamwork if you have done projects in a team, they display your expertise in a particular domain. Especially if you are applying for a Data Science, frontend, web development, etc type of job roles then it is very much important to have projects.
How Should You Begin and What Kind of Projects You Should Do?
Start with the basics and build simple projects. Web Development is a great place to start, Python also offers great project options. Start with simple projects, build simple websites such as notepads, simple arcade games, frontend websites. Gradually move towards complex projects build REST APIs, integrate with websites, deploy them, use multiple APIs, use Open Source APIs to do simple tasks, etc. Start with simple vanilla.js and gradually move your way towards frameworks. Make use of documentation provided by the frameworks and many of the frameworks have a “Hello World” kind of projects which can help you get started!
Do explore Machine Learning, Data Science, and Blockchain domains, these are some of the most developing areas in software development and thus it will surely help you!
1. Web Development
2. App Development
3. Python Scripts
How to Build Projects?
If you are planning to make a project or all already in the means of making one, then there are some important things to keep in mind and exercise proper methods to get the best possible results. Below are nine critical measures that one must keep in mind while making computer science projects.
- Define the aim of the project. At the starting of the project, the most crucial thing to do is to define the aim of the project, we can write down the exact purpose or the function of your project, the problems that this project is attempting to solve, is it intended for mass population or a small segment of society. This may appear to be a simple problem, but most people consider an idea where they think of a difficulty, then they think of an answer, and then they just go and try to start implementing it. But one must know when, how, and why would the end-product be used.
- Define the end-user for the project. After defining the aim of the project we should consider thinking about is targeting your end-user from the huge public out there. This is the step that usually gets overlooked by many when they work on a project. One must differentiate whether the product that is going to be built is for his use, is it a project done just for fun, or is it a serious project which involves business at some level. One requires to genuinely consider what is the precise nature of the user using my product and build according to them in mind.
- Decide out the most critical functionalities of the end product. For example, if you are planning to build a platform like GeeksforGeeks, the most important feature that it has to hold is, it needs to be user-friendly to enable the user to help in their learning and education. Others feature like user authentication and profile page can be given attention once the main functionality is fulfilled.
- Examine the tech stack to be used. Setting constraints on what tech-stack is to be used and for what exactly functionality can save a lot of time when building the actual project.
- Create the UI/UX of the result with design tools such as Figma or adobe xv, as it tells us what our final goal would look like.
- Build an MVP asap with the core feature/component of the project. Getting this part done as quickly as possible is important because developers generally tend to get lost in this part.
- Get the project reviewed by the end-user and ask for feedback for improvement
- Work on the modifications and keep improving the product.
- Repeat the cycle of presenting it to the user and improving till getting to your goal.
If we talk about where you will get the knowledge and idea to build projects then, YouTube is an excellent place to learn. Learn by doing things, follow the simple tutorial available, build a basic model and then try out your version. If you are stuck try Googling it! This might not sound fancy, but to be honest this is the best way to learn! Another Method is – learn by Blogs, blogs are also an excellent way to implement things and understand them.
There are various articles on GeeksforGeeks, etc. which are excellent sources of learning various tech and making great projects!
Projects on the Resume!
Let’s focus on the projects sections of the resume. Depending upon which kind of role and job you are applying you need to showcase that type of project on your resume. If you are applying for a software development role projects covering fields such as:
- Web Developer
- Android / IOS Developer
- Machine Learning
- Database Projects
- Website or Application Clones
Are some good projects that you can have!
Ideally, you should have around 10-20 projects with you on your GitHub profile, but on your resume, you should mention only 2-3 best projects that you have done! These projects can also be a part of your curriculum or internships. Try to put in projects which have system design stuff used in them, and they are excellent discussion topics for your interview.
While mentioning your projects in the resume don’t forget to mention key aspects of your project in the description:
This is because metrics show the impact of the project. And don’t forget to put a GitHub link, it is a must!
But, one should be very thorough with the projects they are mentioning in the resume, be prepared to be grilled heavily during the interviews! To be honest, don’t just copy-paste it, understand the logic behind it, try to document it, keep a design document if possible, this will help you a lot in the later stages!
Some good project ideas that you can build!
- Social Networking website clone with backend
- Written text converter using open-source API
- Object Detection projects
- Malicious Mail / Spam Mail detector
- Ride-Sharing Application
- Food Delivery App
- Movie Ticket booking system
These are just a few suggestions, you can always do more complex or simple projects according to your capacity and for more ideas, you can check this link.