I am building a web app.
The only way to be a good software developer is to write code. A lot.
My background in terms of software engineering has been so far studying at a technical university for may Bachelor and Master degrees, and working at various departments at the university as a research assistant and full stack developer. The aim of the technical universities (TU) in Germany is to raise researchers, PhD students, PostDocs and professors (this may be a single person in the order or multiple people.) The TUs primarily focus on theory and in general as far as I understand more prestigious than other types of higher education institutions. An example to those higher education institutions is the Fachhochschule (FH.) FH focus more on hands-on and practical stuff rather than research and theory. The problem is that most people who study at TUs do not go for PhD. Back in 2017, I started my Bachelor’s at the Technical University of Berlin with about 800 people. Some of those people drop out along the way but there are still hundreds of people who graduate. Majority of the graduates go to the software job market and get a job where they do mostly boring stuff like maintaining a legacy codebase, writing tests or inert software development. They deal with mundane problems whose solutions are known. These problems only require people who can talk to the computer. Nevertheless, what people do is more similar to coding than doing research and theory. Having a stronger programming background would make their life much easier than knowing about the Cook-Levin theorem. Do not get me wrong. I am not saying that theory is useless. All I am saying is for most of the computer science population who are not going to become researchers gaining practical experince is more important than gaining theoretical knowledge. And TUs do a shitty job of giving students practical experience.
There is a concept called happy path programming. For those who do not know what happy path programming is, it is when you write code without giving attention to edge cases, exceptions, unexpected user input and behaviour. Happy path is when everything happens as it is supposed to without any errors. It basically means writing code that is not for production. It is like driving an automatic transmission car on a straight and empty multi lane highway. If you do not have a driving license, I must tell you that it is extremely easy to drive an automatic transmission car on a straight and empty multi lane highway.
What you do at TU when it comes to programming is writing happy path code. Filling function body, writing basic tests, writing code for linear regression and Fast Fourier Transform. If you do not specifically seek practical experience, you do not get it. It is thus crucial to go for project courses and modules that offer hands-on assignments. However, that is not enough in my opinion. Because they neither give much real world experience. An obvious way to suplement your development as a prospective software engineer is to get software engineering jobs and internships. Another way is to do side projects.
So far I have done side projects such as a Twitter bot, Vim and Python packages. I decided to develop a full stack web application to develop my skills further and get a better understanding of modern web tools and frameworks. I am developing an application called GuidePal. When people travel to an area that they do not know about, which is usually the case, they often wish they knew a local who can show them around, the cool places to visit and the cool things to eat. On the other hand, there are people who would like to be a guide for tourists either in exchange of money or just for practicing their foreign language. GuidePal brings these two sides together and gives them a platform to communicate.
Home page of GuidePal.
GuidePal is still under development and in a very early stage. However, you can visit GuidePal under https://guide-pal.vercel.app/ and witness its growth.
To develop GuidePal, I used the following tech stack: Next.js, Typescript, Tailwind CSS, tRPC, Prisma and many other great libraries. It has been so far a great experience.