Ask HN: What are some projects I can build to better learn software engineering?
17 comments
Build something you’d use. Doesn’t matter what.
The first app I built scraped a food delivery site that looked for big deals and sent me a text so I could confirm a purchase and have dinner at home.
I learned about web scraping, database storage, integrating twilio, error handling, cron and getting this all into an ec2 instance.
My second app I turned into a full time business after many rewrites.
Build an app that scans for the lowest gas price in town and send you the trailing 12 week average on price via text daily.
I’m learning guitar so I want to build an planner that makes sense to me
If you spend a little time you can come up with an app that will add value to you and because you know the problem and are motivated by it you’re more likely to ship compared to a to-do app or one of the generic recommendations you tend to receive
The first app I built scraped a food delivery site that looked for big deals and sent me a text so I could confirm a purchase and have dinner at home.
I learned about web scraping, database storage, integrating twilio, error handling, cron and getting this all into an ec2 instance.
My second app I turned into a full time business after many rewrites.
Build an app that scans for the lowest gas price in town and send you the trailing 12 week average on price via text daily.
I’m learning guitar so I want to build an planner that makes sense to me
If you spend a little time you can come up with an app that will add value to you and because you know the problem and are motivated by it you’re more likely to ship compared to a to-do app or one of the generic recommendations you tend to receive
No - build something somebody else would use and not complain.
https://github.com/gothinkster/realworld has a full spec you can clone and then compare to somebody else's implementation
If you don’t have a personal website or blog, make one as a project. It will benefit you for learning web dev, for hosting content, and for giving you a portfolio!
Pick a web stack you want to learn, make your website and host it somewhere. A harder, but nice extension would be a blog admin page where you can add content to your site, from your site, so you don’t have to deploy your code every time you want to update your blog.
Don’t want to host yourself? Make a website on repl.it in the language of your choice, they will host it for free, and you can instantly see changes in “production” at a custom domain.
Pick a web stack you want to learn, make your website and host it somewhere. A harder, but nice extension would be a blog admin page where you can add content to your site, from your site, so you don’t have to deploy your code every time you want to update your blog.
Don’t want to host yourself? Make a website on repl.it in the language of your choice, they will host it for free, and you can instantly see changes in “production” at a custom domain.
It might also help if you start taking code challenges on any site like freecodecamp [1]. You can pick any series of lessons and it will help you to gain hands-on experience while learning step by step.
Once you feel confident, start making your personal website or online resume. You can keep all the source code on some public website like github. It will also be handy while sending your code samples to potential employers.
[1] https://www.freecodecamp.org/learn
Once you feel confident, start making your personal website or online resume. You can keep all the source code on some public website like github. It will also be handy while sending your code samples to potential employers.
[1] https://www.freecodecamp.org/learn
Pick an area you are interested in and then make a scalable web service for it.
Some examples: a website for getting the most recent cryptocurrency prices, an app for collaboration (drawing, design, music, etc.), an instagram clone, a simple multiplayer game (e.g., hangman).
Make them with scalability and availability in mind. When deployed they should be fault tolerant and scale to thousands of concurrent users. Show how you would load test it.
Some examples: a website for getting the most recent cryptocurrency prices, an app for collaboration (drawing, design, music, etc.), an instagram clone, a simple multiplayer game (e.g., hangman).
Make them with scalability and availability in mind. When deployed they should be fault tolerant and scale to thousands of concurrent users. Show how you would load test it.
Learn Berkeley sicp (CS 61A) ,it will teach you to write an interpreter, more importantly, through it you will learn the most powerful idea of software engineering :abstraction.
My students do three:
Reddit clone
Food bank organisation, shops submit out of date food. People want food. You organise this, facebook like interface.
MUD clone
Code these three. Put on github.
Reddit clone
Food bank organisation, shops submit out of date food. People want food. You organise this, facebook like interface.
MUD clone
Code these three. Put on github.
which institution do you teach at where your students would acquire the skills to do these? Any online classes you can point to perhaps? Thks
These skills are not hard. 3 months of apprenticeship, 1 day in college, 4 days in a job.
Just start building one, learn as you do it. All I do is insist that the students do it. They're all like you, "Oh I don't know if I can." .. I just force them to do it.
Another bunch of non-coders - first assignment is to send a waether balloon up (50,000 ft) and take picture. You've just got to want to do it. Posting on HN isn't enough. Start typing in code. Don't stop until you are an expert.
Just start building one, learn as you do it. All I do is insist that the students do it. They're all like you, "Oh I don't know if I can." .. I just force them to do it.
Another bunch of non-coders - first assignment is to send a waether balloon up (50,000 ft) and take picture. You've just got to want to do it. Posting on HN isn't enough. Start typing in code. Don't stop until you are an expert.
What if you were to build a simple AR app? For example, imagine Instagram opens up directly to the AR filters. The action would simply be swiping left and right to try different AR filters. Would this be too complex?
U just graduated with a Masters and u get on HN to ask about what kind of project? Dude seriously look back at your last 6 yrs of life and reflect, if u learned anything at all.
[deleted]
Most of the jobs around me are in web dev, so I'd prefer to work on a project using a web stack.