Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How do I start building useful stuff?
15 points by Chiff0 8 months ago | hide | past | favorite | 26 comments
CS student here. In a couple of weeks, I am going to the next 6 months more or less free, and I want to spend the time building (or at least trying to) build something that would be useful to at least someone. Probably something I would learn a lot from and would be proud to have on GitHub. I have heard that the best way to build something useful is to scratch your own itch, but I can't think of anything that hasn't yet solved my problems. Do you have any suggestions as to how I could find a problem or have any interesting ones you are not planning on solving? I would appreciate any advice on the topic.

Cheers!




Some itches that I had scratched in the past - might give you ideas on your own ones to work out:

Text Formatter - paste in copied text with hard returns broken paragraphs, bad characters, etc, clean up text, reform to correct sentences, paragraphs...

Data Parser, take useful but unwieldy raw data and parse it into a readable text, HTML table, PDF pages, etc.

simple event list/tracker input events (name, date/time) and let it be a clock reminder of whats coming up. For next level do global events (event, date, time, country or timezone) and adjust for viewing realtime in local timezone.

One I have thought of but haven't started would be recreate a Commodore C/G telnet BBS in python, where C64s can connect and see it as a Commodore C/G BBS but no limitations of it running on Commodore 8-bit hardware.

Text Adventure Enhancer - that prompts AI creators with descriptions to create enhanced room descriptions and images to enhance an old text adventure...or do a choose your own adventure one where you begin with player adding their picture to use as an image prompt along with the description prompts.

Just try to use something you understand and/or that would be fun for you. so you can concentrate on just figuring out the code instead of having to figure out the subject matter also.


Thanks for the suggestions! Something that really interests me is both data conversions and AI, I’ll try to find something interesting to work on that is in an intersection for both topics. Alternatively, I got an idea to make a tool for comverting a Minecraft world file into a real time render of the world, and make it look good since there is only 1 tool that exists and is pretty outdated and I’ve seen people wanting a wabsite to do it, not a console application.


I recommend greatly expanding the space of problems you can solve, by exploring the world of hardware, signal processing, etc. It's usually a good thing to be a generalist.

Try out GNU Radio, it can use your audio I/O for signal sources and sinks. You can learn about DSP, complex signals (with I and Q) and develop an intuition about a new domain of computer applications, just for fun.

If you feel like spending some cash, you can get a USB receiver kit for about $40 and explore the world of radio.

You can also get an Arduino or a Raspberry Pi starter kit, and start doing hardware things, to get acquainted with that world.


What are some examples of interesting problems in this domain?


That’s an interesting idea, I don’t really have any experience in the space, so I’m going to have to look into it.


Learning series and parallel circuits, and just getting a few LEDs to turn on and off is far more of a shift in thinking than you might suspect if you've never been exposed to electronics. I've been doing this stuff since I was about 10, so it came as quite a surprise to see how difficult the fundamentals were for someone who was quite adept at coding. I'd forgotten how hard it was.

Also, have you done NAND2Tetris?


Haven’t actually. I know how some of this stuff works at least findamentally. I built some circuits in Minecraft and a game called Turing Complete (which is amazing) and I had took a digital circuits class. I liked it quite a bit, so it might be interesting to dig deeper.


> I can't think of anything that hasn't yet solved my problems

You might have several decades ahead where you'll need to search for suitable third-parties and then fill out the necessary forms in JIRA to get the formal blessing to actually make use of them (aka software engineering).

When, if not now, do you think will be the time to do something that tickles your curiosity without having to take economic motives into account?

Go nuts with re-inventing the wheel. Maybe try to not re-invent the square wheel, but if you happen to do, well you've learned something, which makes it useful for at least one person: you.


Thanks for the advice. You’re right, I shouldn’t be doing something exclusively for profit. I guess I should just go and make something I think is really cool myself. Thinking about it, I always wanted a universal tool for transforming files feom different formats, I don’t know how complicated something like that would be, guess I’ll have to find out.


unfortunatly, there is pandoc for that. But you still can dive into it.

At your age, I think best is (1) doing what you enjoy, and (2) applying what you've learned. Because in 6 month, you'll forgot what you don't use.


Pandoc runs locally, or there are 2 bad looking websites that run it. I wonder if it would be worth making a good looking UI with pandoc running in the background.


Yup, if wheels are too easy, rebuild the steam engine. Make your own CMS. Make your own bitcoin just from reading the original whitepaper. Do a file system, database, encryption system, LLM, whatever.


Start with your own problems, even if you're the only one to have them. You're guaranteed to help at least one user, and you know that user's needs better than anyone else.

Most of my projects - especially the enduring ones - solve a problem I have. Only a few have multiple users.

Back in university I made a sort of personal Netflix, basically a web viewer for torrented movies. I rewrote that project many times and learned a lot from it: ffmpeg, Django, VueJS, single sign on, REST APIs, and a lot more.

A year ago I wrote my own static site generator. Again, learned a lot. This one powers the website I live from.

At a smaller scale, lots and lots of scripts. Some turn screen captures into gifs, others rename files or checks places against the Google Maps API. These small bite-sized problems are always fun to work on.

One problem I currently have: I need a dashboard I can push status updates to. "Last build green" or "no heartbeats in the last 48 hours" are updates I'd like to get. Most uptime tools only pull information.

My only advice: keep the scope small and release early. It's a lot more motivating to work on something that you actively use.


What is a problem you have? Think about something that frustrates you or something you wished worked differently. Then solve for it. Don’t let ambitious problems scare you.

As a dumb army guy it frustrated me that I could not access my file system off my computer from across the world through the internet. There were times when I would have to leave home for a year or more. To add insult to injury I can only program in JavaScript/TypeScript, so my solutions are limited. I wrote a Node app to solve for this with a GUI that displays in the browser or Tauri or Electron.

Yes, iSCSI is a thing but it does not provide social restrictions to share with other people with custom limitations the way Samba does. I also didn’t want to waste money and violate my own privacy on a third party cloud provider. If both end points are IPv6 you should need any third party server/proxy.

When I first started on the security model of this app it got too complicated and became littered with regressions and testing manually was taking too long and I would always forget to test some feature. There are some good test automation apps out there for the browser but they are really complicated and I needed something peer-to-peer to test multiple computers from a single command and control. To solve for that I wrote a test automation component for the app.


Thing is, I’m very early in my journey, so I’m not exposed to many obstacles, besides learning. I’m thinking of just getting myself an intership in a software company which make ssoftware for clients, that way, I’d be exposed to many problems and how things work, then go from there.


Well if you are interested in programming embedded Devices, I have a project that I could use some help with and would extremely grateful if you could help me see it to completion.

https://github.com/s1gmapr1mus/ESP32-Arduino-Stuff/tree/main...

Just to provide a bit of context, on October 14 2023 I was shot while driving my car and due to the crash and the bullet severing my spinal cord I am now a quadriplegic. I have obtained the hardware listed on the BOM and will be getting a friend to assemble the device but could use some help with the coding. Currently I am using an iPad with voice control and it is tedious to say the least.

https://community.element14.com/challenges-projects/element1...


I'm willing to lend a hand, but while I've got some ESP32 and other microcontroller/sensor programming experience, I have absolutely no USB peripheral development experience.

From a high-level point of view, I would naively expect that eye tracking/eye-based control would be far more desirable than using IMUs and buttons. It seems like it would be exhausting to control a computer with head movements, while our eyes move quickly around all the time we're awake already. (I'm still willing to help as I can, but I wanted to make sure that you're pretty sure this a viable path.)


Hey! So sorry to hear that. Unfortionately, I have never done anything with embedded devices, so I feel like it’s beyond my capabilities.


A front-end for Spotify to better organize music one likes! (Once you dig into music file metadata, you see this is non-trivial, especially for classical music lovers/users.)


What exactly do you mean by that? Something like volt.fm?


I wish I could have your 6 months to just build and explore my interests. adult life is overrated with all the constraints


Is any of the information at your college hard to assemble? Create a scraper and republish it.

Are some select classes a race to register for? Write a registration sniper and get in.

How about your county bus schedule? Mugshots? Are they easy to access?


Actually, there are classes, especially the coding ones where material is scattered all over the place, especially the old exams. Can’t think of a solution from the top of my head, but it seems like a decent idea.


Solve something you experienced as a college student. You're an expert in what it's like in 2024 to have gone thru such a crazy process. What would you have wished for?


Read a book on idea generation. Generate ideas then filter based on what you can do and what you want to do.


make a note of stuff that annoys you on the day to day basis,might help you figure what's necessary. Start small.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: