Working in teams to create some useful software. When you are into computer science engineering. It is important to work in teams to participate in a coding competition. It is very important to identify a practical problem and write software to solve it.
For example, in IIIT Hyd college in summer there is a lot of time to play and there are a lot of people interested in playing cricket. For everyone to get a good chance. They created the software. In which the booking option opens at noon. If you have played the last two days, you will not be allowed to book. Otherwise, whoever comes first will book and play that day. It’s simple, but it gives a kick when you create software for yourself and use it.
I wrote a script to automatically download images from the internet of my favorite hero and heroine photos.
Imagine a scenario where you and a group of your friend’s goal is every weekend, identify practical problems and solve it with code. Let’s say you all want to go out. If enough people say yes in a short time, it will happen. Otherwise, it will not. For that, you can write a simple web application using a firebase to achieve it.
When you work with your friends on practical problems, you understand how the software is used in the real world. For example, I want to archive all of the data from a WhatsApp group and summarise it. Last year, I created the WhatsApp group for a couple, in which they could post their expenses. At the end of the month, the summary of all the purchases. And categories report is automatically sent to the WhatsApp group. It’s convenient and straightforward to use this way to log the expenses.
These are my experiences, but when you are in college, you can achieve more significant things using this. For example, my seniors have worked to create the first website for gitam.edu. That version was for a few years. You want to build an app where you want to play different music in the same earphones, for one ear-buds one song is played and another song in another. So on the college bus, people can play multiple songs. Or one guy can listen to music and the other one chats or plays games or whatever.
Whenever you want to buy a gift, you think a lot, and you can build an app to give suggestions. Enough examples now let’s see the impact that is there because of creating software with friends.
You will understand the moods of people. What motivates someone to work. How to work in a team with different attitudes. When you start using distributed software development tools of today’s software world. You get exposed to the package managers of various available libraries. Which can trigger you with new ideas to develop? You tend to develop debugging skills. You tend to know about continuous integration, test cases, libraries and tools to automate the complete flow, from committing a change to the repository to the deployment of the code into the web app on the server or uploading an app to the App Store. You know different versions and operating systems that you need to cater to the software for. You learn how to make a trade-off between your efforts and the platforms that you wanted to support. The essential engineering skills are exposed because of this.
In the process, you tend to connect to the local software ecosystem, pitching in your ideas to the community. You will slowly be introduced to the startup world. How things work quickly from ideations to the product being used by customers. You know the practical implications of selling software. What level of support you need to provide for your app to succeed. Having a group of friends along with you on this journey is an enjoyable and memorable one.
I cannot enumerate all the advantages, but one thing is sure that you will become a capable engineer in the process. Here the process is more important of working with groups of people, rather the outcome. As long as you keep working and generating some software, solving the problems that you encounter is a process. Just follow the process for 6 months (24 weeks), after that, decide to continue or not.