Have you tried writing a program that checks if other programs will ever finish running? Should be a quick and easy project!
Programming
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
Adding a Turing award to your profile is certainly one way to flesh it out
Process.start(program, arguments)
Print("it finished")
"Will ever finish", not "has already finished". It needs to predict.
I'm aware, the halting problem is semi decideable - only positive instances of the problem can be decided.
Why would you need to flesh it out
it the first place? If you have serious projects I take it you're not total beginner, so don't waste time on projects with no purpose.
The fact that everyone else skipped to giving suggestions is absolutely wild to me. I hope OP sees your post and takes it seriously. Their only response to a comment noted that they are worried about the project they're interested in being "too professional". What has them thinking that any of these concerns are important?
My objectives are education and fun. I enjoy programming, I want to learn more, and I've been inspired by Brodie Robertson's recent video on novelty software as well.
I'm also applying for computer science courses at a few universities at the moment, and I want them to be impressed. Two repos for projects that haven't been updated since 2022 isn't the best look.
Show people your serious projects. Why are you suddenly pretending that you can't?
The link I gave them was for the organisation I moved the serious stuff to. I did this so I could have more basic, novelty, and experimental repos on my Codeberg, as well as so that other people can "join" the organisation to help work on the projects.
I don't know where you got the idea that I'm pretending I can't show people this stuff. That's not at all the case. I am proud of the software I've written; I just thought I could organise it better.
A CRUD webapp, or a text adventure in C++ with object orientation in mind
Interesting. I think an online Markdown editor, maybe with S3 as a storage backend and a button to convert to PDF, could be a useful CRUD webapp. Great idea!
It might be a bit too professional for my personal repos, though. More suited to the organisation I just moved everything to.
If you're going to do a text adventure, don't deprive yourself of using the most English friendly dsl ever, inform 7.
How about rewriting a Python project in Rust? You can start slowly by moving out a part of your python project to rust with pyo3 and writing a module in Rust that's called by python.
If you want to have some fun, you can start out with writing a small game in Godot.
Or learn how to create a deterministic developer environment using devenv. That means that regardless of on which machine or environment your open your project in, the dependencies will all be the right version and so will the tools (debugger, live reload, db, etc.).
Perhaps try making a simple web chat application. I recommend it for a myriad of reasons:
- You'll get to touch upon all the layers of a web app (DB/backend/frontend) in a manageably small way.
- You'll be able to make multiple choices to learn different technologies - like which database type to use (SQL/document), which message passing method to use (requests/sockets), which frontend framework to use (Solid/Svelte/HTMX/etc), and so on.
- Getting a minimum working system is very fast. You can easily spend less than a day completing this, even as a novice.
- Once completed, there are many extra goals you can set yourself. Try adding roles, commands, enable sending pictures, embedding metadata for links, etc. You need only look to your favourite chat app for your next idea!
Good idea, although I think I'd prefer to make a desktop app. I know HTML, but static sites are as far as my web programming goes.
However, with a bit of Python or C and a PGP library, I could probably have a go at making an encrypted P2P chat service.
Are you interested in working on a text editor? If so, I have an idea I plan on implementing myself for fun: a clone of HeyNote with some added functionality. HeyNote is a simple buffer that consists of blocks. It's useful when you just want to note a simple block of text (an SQL query, log output, test data) but you are not interested in structuring it. What HeyNote lacks is the ability to add title and tags to blocks. It's not an alternative to other note taking applications. It is just a buffer with unrelated blocks in it.
Sounds interesting, but maybe a little too advanced for me.
Instead of starting your own project, have you considered simply contributing to an existing open source project instead?
Good idea!
I’m glad you agree. Honestly, as someone who has also struggled with this question, I wish I’d done this earlier, because there’s a lot of advantages to it.
It takes a lot less planning and upfront time investment before you get to see your work make a difference in the world. It’s not immediate gratification, mind you, because pull requests can sometimes sit there for days or weeks before someone has the time to review them, but when they get merged, and you get to see the feature you worked on in an app you actually use, it’s still a great feeling.
Most projects will also give you contributor credit, so your name and/or GitHub handle will show up on their repo, website, or in the app’s “about” page, and you can claim that on any job application you might submit in the future.
I honestly think it’s a great way to scratch your own itch (because you can pick what issues you want to work on and build features you’d actually want to use) while also helping other people and benefitting open source as a whole. Any reasonably popular project generally has a massive backlog of open issues, so if you’re at a loss where to even start, you can just look through there and pick something that seems doable.