One option is to help out various open source projects. That gives you an endless supply of options, languages and applications. You, the project and its users all benefit.
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
You might try advent of code. It's not a project though, but good for improving your skills imo
Best of they touch your life.
I like they "can my X talk to my Y?" Y is usually my phone. X would be a "smart" anything.
Failing that, make a file organizer.
Big things:
- Implement something on the Rust ORM Butane - it's basically an ORM that doesn't require you to write a single line of SQL as a user
- Write a Signal client using the slint GUI framework
- Write an anonymised job search and interview platform
- users profiles are anonymous to anybody but themselves and the platform
- interviews are either text based, or audio/video with voice modulation + avatars (like V-tubers)
- "challenges" are gamified e.g "a normal in the office" where candidates play out typical scenarios that happen in the office
- a neovim plugin configuration GUI (LUA + whatever you like)
- start writing a new, embeddable browser engine and document it
- it should be a library first --> forces you to think of how its API will be consumed
- write a reference client that uses the engine as the example usecase
Medium ?
- A static code analyser that spits out which languages are used in a project and which languages features e.g
- this project has 70% c++ of which 30% of all know C++ features are used (templates, operator overloading, multiple inheritance, auto, constexpr, goto, static_cast, dynamic_cast, copy constructor, ...)
- resume.json import/export for different job search platforms
- A CLI tool that takes an audio file as input and outputs a visualisation as a video
- Write a package for linux to act as a bluetooth audio sink, scenario:
- user wants to stream music from their phone to a speaker (without buying extra hardware)
- admin installs $btAudioSink on existing linux box with bluetooth hardware
- admin connects linuxbox to speakers
- user turns on bluetooth
- user sees linux box as a set of speakers
- user connects and plays music
- music is header from speakers connected to linuxbox
Small ?
- A simple "hash to file/url" website
- User enters a hash, gets URL to that hash
- User enters a hash, gets top 10 filename for that hash
Got a few more ideas, but didn't write them all down in my notebook.
What OS are your devices? More detail would be better.
For example, my phone is Samsung's One UI flavor of Android 13. My laptop is Linux and has a nvidia dedicated GPU and AMD integrated GPU. I'm using Hyprland (Wayland) on it. I don't have a smart watch. Don't have any fancy lights or rgb keyboards that can be controlled from other devices.
With this kind of information, we can recommend both from scratch ideas for your devices and open source projects that you could use on your devices and are written in the languages you know or similar.
You could write bindings to machine-prime . Hardly anything challenging for an actual programmer, but I'll take the free labor if it is available.
Copy something until you're inspired to improve it or some other thing.
Write a matrix multiplication program in c. Then make it at least 10x faster from asm.