Ask HN: What cool skill or project interests you, but feels out of reach?

125 points by akktor ↗ HN
This question's for all those cool projects or skills you're secretly fascinated by, but haven't quite jumped into. Maybe you feel like you just don't have the right "brain" for it, or you're not smart enough to figure it out, or even worse, you simply have no clue how or where to even start.

The idea here is to shine a light on these hidden interests and the little (or big!) mental blocks that come with them. If you're already rocking in those specific areas – or you've been there and figured out how to get past similar hurdles – please chime in! Share some helpful resources, dish out general advice, or just give a nudge of encouragement on how to take that intimidating first step.

Let's help each other get unstuck!

280 comments

[ 3.3 ms ] story [ 290 ms ] thread
For me, it's gotta be Asahi Linux development. I've been following the work of Asahi Lina and the team for a long time, watching their progress in awe. It just seems incredibly cool to get macOS hardware running Linux so well. But every time I think about actually diving into it, my brain just screams "super complicated!" and I have no idea where I'd even begin to contribute or understand what's going on under the hood. It's definitely one of those things I admire from a distance because it feels so far beyond my current capabilities.
(comment deleted)
CPU design
For a very early beginning take a look here - https://github.com/cpldcpu/MCPU .
This is quite cool. The CPU has only four instructions, which can be applied to immediate arguments or run in sequence to get six more, which can then be used to write real programs!
There's 2 big ones that I want to learn.

Quantum computer programming. I've dived a couple times into Qiskit from IBM. Also tried to get into dwave and ocean sdk but they never got back to me.

Qiskit tutorials are easy to blow through and i think even understand. But when trying to use it for my own purposes, just never get anywhere.

The other one for me with no success. Training my own specialized predicting AI models. Tensorflow, pytorch, and another.

I certainly prefer pytorch. Super simple to build models on simple stuff.

I'm trying to do something that literally nobody else has ever done. My lack of success has probably a lot more to do with that it's not perhaps actually doable.

Flipside, I might be re-approaching this now that i have the pycharm ai to help me in this progress.

>you've been there and figured out how to get past similar hurdles – please chime in! Share some helpful resources, dish out general advice, or just give a nudge of encouragement on how to take that intimidating first step.

Never be afraid to try. Always dare to fail; you only truly learn when failing. The easier you make it to fail, the quicker you learn.

My concern with quantum computing is there's already such an outrageous overabundance of quantum computing PhD's the marked will likely be saturated for decades to come. It would be a ton of fun to learn, but I can't justify the time because there's no career progression
Lol where are people getting such ideas. First of all there are probably like 10 QC people graduating a year in the whole world (okay maybe 20). Second of all y'all people have no idea how far off usable QC is. It's like 50 years at best.
It's not that hard to learn, you can do it in a few evenings. Grab something like Nielsen and mess around on qirk.

Now whether it's worth learning? Eh, maybe it's good to exercise some math skills that have been atrophying.

Totally fair re: quantum computer programming. It's still an open question what exactly it can be useful for.

Are you trying it for anything in particular?

(I'm only getting started in it now in my Master's programme)

>Are you trying it for anything in particular?

cracking crypto. forcing netadmins and sysadmins to update crypto to quantum resistant crypto. Might as well make it a real threat :)

I'll bet a lot of money PQC becomes commonplace before quantum breaks anything meaningful. (although I'm one of the people paid to work on PQC so maybe I'm biased.)
Hobby electronics & robotics. I can make an LED blink on a ESP8266 (it's been a while), but that's it. I'd like to get more familiar with a multimeter, figuring out broken kids toys, etc. but it's a bit daunting. Maybe there's too many options and not enough constraints. I'm not sure.
This gotta come up with a project you want for yourself and make it. I remember soldering one of those 2x16 LCD screens and it had a short so it would start smoking to designing/3D printing my own quadruped with an IMU/navigation. I did cheat and not use inverse kinematics, I watched videos on other insect-style quads walking and I programmed it manually.

I think main gotcha is power distribution and shared ground eg. using a boost converter or regulator to boost/downgrade voltage and which servos/sensors uses what. Later have to be concerned with too much current being drawn but yeah.

I used these green proto boards you can solder onto as a step up above breadboard but not my own PCB.

I have produced the magical blue smoke multiple times out of my own mistakes. It’s part of the process!
I have found the Make: Electronics series of books by Charles Platt to be a good mix of basics / fundamentals and fun projects.
For this, what takes a while is to just tinker and fry components several times. Get a breadboard, get several sensors, try to design something and iterate on your design. Plan to fry sensors and IC's. Also helps to read some basic electrical theory and know what the role of different components are.

The way I got proficient is with hobbyist PCB design. What helped me is starting with schematics and datasheets and planning to finish with an assembled board. I started designing PCB's and having them assembled with JLCPCB (quite cheap: $20 or so for a run of 5 boards; $120-$150 fully assembled). I fried 2 boards before the 3rd rev booted up, then from there it's optimization. I consider the $200/mo or so in PCBA, whether boards work or not, to be my "EE education" -- cost efficient compared to university fees! And $200 is sort of like the "exam," it's costly enough to make me really think twice about component selection/placement/etc.

Not saying that's the approach you want to take because that might be hardcore / not someplace you want to get to. But I spent a long long time really wondering how electricity really works and like why you need capacitors, inductors, op-amps, etc. It never made sense to me until I created my own schematic, chose my own parts, and understood why I chose the parts I did and connected them the way I did.

did you understand theory deeply first like Kirchhoff , node analysis
This just reinforces the fact that it's inaccessible. There's no way I'm literally throwing $200 a month in the trash on a hobby.
$200 is for assembled boards. I learned electronics and spent about $200 on it in two years, that includes cheapest soldering iron. Don't order assembled boards when you are starting. Order cheapest bluepill (STM32F103C8T6) or non-original arduino clone and start on breadboard with that. Make pcb's only when you're ready to learn more. Expect that your first one will not work or will require some "rewiring", but second one may already work. You might start with some cheap through-hole components, they are a little easier to re-wire or re-solder, it's a good idea to put your first microcontroller in socket.
Ah alright that makes more sense, I missed that part, my bad.
I'm a EE masters student and I also want to reinforce how inaccessible EE is and that I don't really recommend it as a hobby. EE is a very mature field and it's very math heavy for a reason. The second you move past the hobby boards, stuff becomes really difficult and really expensive really fast. If your end goal is to create toys for kids, then it's fine as a hobby. But without the formal training and lab access you are going to struggle to get past that point so it's pretty much impossible to turn the hobby into something more. Unlike software, where tinkering genuinely has the possibility of turning your side projects into careers. Hell, if you don't live in EE hotspot locations, I wouldn't even recommend it as a career anymore. Software is where it's at, even in the age of AI.
That's only for the heavy analog stuff. If you're into the more modern digital stuff, you basically never for any reason need to breadboard prototype, everything can be done with I2C modules and the like.

Burning a part is incredibly rare with this kind of stuff, if you're willing to put in the time to learn about it before actually building it.

See my previous comment here for how to get started - https://news.ycombinator.com/item?id=33628025

I highly recommend downloading Understanding Signals with the Propscope from Parallax (available for free online) and following the tutorials from it with an Arduino+Analog Discovery 2/3 device. You can use the Digilent "Real Analog" learning course along with it - https://digilent.com/reference/learn/courses/real-analog/sta...

The real motivation in Electronics comes from understanding in visual form (using a Oscilloscope/Multimeter etc.) how things work in a circuit and how your calculations match up to what you see on the screen. Even as simple as the beginner LED circuit can teach you a lot when you use a potentiometer and see how voltage/current graphs change.

Thanks a lot for the recommendations.

Would you recommend the Real Analog course independently?

What does the Propscope one offer that Real Analog doesn’t? The Propscope one looks kinda old so I was wondering what I’d miss if I only used Real Analog.

Also not sure if there’s a parts kit for the Propscope one that I can buy.

Sure, you can do the "Real Analog" course independently. Study it with a Parts Kit from Digilent+Analog Discovery 2/3 device(AD2/AD3)+Arduino board. That would be a nice entry point into Electronics+Embedded Systems.

I was referring to the tutorial pdf of Understanding Signals with Propscope containing very nice step-by-step lessons in using a USB Oscilloscope for measuring various circuit parameters. The Propscope itself is very old/underpowered (not being sold anymore) and not needed. You just use AD2/AD3 with its Waveforms software to do the same experiments with any board.

Note that if you use a AVR-based Arduino you can learn to program at the higher Arduino API/library level and then at the lower direct AVR level both with the same board. For learning Arduino Programming see Exploring Arduino by Jeremy Blum and for direct AVR programming see Make: AVR Programming by Elliot Williams.

I have a feeling that in circuitry the focus is to manipulative the components so that the final chart is similar to what you want (e.g. a sine wave), and then try to improve the quality and reduce the # of components to save cost. Is it correct?
You should check out Ben Eater's channel on YouTube. He has a series about building an 8 bit computer from scratch + another one about building a 6502-based computer. It's very very accessible if you know some really basic hardware stuff (and for the things that you don't know already, he gives enough context to start googling).
I'm starting out as well. If you prefer coding in python, raspberry pi or anything adafruit is a good place to start. If you're cool with c/c++ Arduino ecosystem is quite mature . I decided to stick to the former so it's a less steeper learning curve for me and my little one. Get a BBC Micro:bit v2 and/or a CircuitPlayground Express. Both have a ton of sensors on board (temp, tilt, light, humidity etc) and some leds/neo-pixels to play around. Once you play with some of that, and want to get your hands dirty with breadboarding and soldering, get a basic kit (e.g. raspberry pi pico etc) and use MakeCode to try out some simple circuits with your microbit or circuitplayground express as the signal provider, play with servos, hobby motors, do some basic projects. Once you feel you're a bit proficient, might one to check out LeRobot for an open source robotic arm that you could train with reinfocement learning.. this is not exhaustive or the only path, there's many others, this is just my 2cents. Hope this helps!
Maybe try out PlatformIO and check out the Sparkfun QWIIC ecosystem (it’s I2C based, but made to be very approachable) which is also supported by many Adafruit offerings. You can get pretty far with some cheap hobby servos. Then as you get more comfortable, maybe try driving some stepper motors, etc.
I don't know anything about electronics design, but I'm really into backpacking so a high efficiency battery system with a solar panel is really interesting to me. I came across this project[1], and wanted to improve upon it for my usecase. I want to add the ability to have multiple 21700 cells in a lightweight charger, instead of a single cell with a builtin USB charger. I want to learn more electronics, but it definitely feels like a multiyear process, and it'd be nice to shortcut it for the projects I'm interested in.

1. https://www.reddit.com/r/myog/comments/1k3stln/ultralight_13...

Learning just enough for your needs is a valid approach to learning electronics design, unless you're planning on becoming an actual EE.

It provides a huge amount of self-motivation and as much as I hate to admit it (as a one-time electronics design engineer), you can skip a lot of the middle-layer concepts. Sure, you should understand Ohm's law and what basic components (resistors, capacitors, transistors) do, but you can jump from that right into understanding how a battery charger works without having to understand how the components actually work.

The hard part is finding good tutorial material that starts at the right level: most of the professionally written stuff presupposes that you're either already an EE, or have one at your disposal to translate things for you.

Such is life in STEM.

Edit: And EE is genuinely involved.

(comment deleted)
digital signal processing for synths and audio stuff.

maths :/ brain hurt.

i did some digital signal processing in my phd but i need to go through and implement a bunch of things from scratch to learn/relearn and it’ll just be a bit of a grind. i’m avoiding doing that by working on data file parsing / project management utils for the elektron octatrack instead, which is useful, but tangential to what i want to do.

long term would be rad to build software for old synth hardware and the like. sort of like midiquest, but without the price tag.

I've heard The Audio Programmer discord is a great resource for this sort of thing. Worth checking out: https://www.theaudioprogrammer.com/
thanks, although i’m a member already. it’s not really resources that’s the issue. i’ve read Julius Smith’s books in the past etc. in the rust audio discord etc.

i just have a mental block similar to the one i had with rust. avoided learning it for a long while until i made a decision to finally to do it.

i just keep avoiding making the same decision here for some reason. not sure why. probably the old “it’s going to be really hard” thing i had with rust (which turned out to be rubbish, it just took time and repeating stuff over and over and learning from mistakes over and over).

Anything that involves time. Dance, music, gardening. I have too many existing commitments that when I actually have free time I have no energy left
Are you speedrunning life?
what are you trying to suggest? that they are doing to much already? and if they were to do less they would have time? wouldn't that then lead to the same situation, that they would like to work on some of the things they are working on now but could not because of lack of time?

also we don't choose all our commitments. family, work, friends, etc are commitments we can't just give up. it comes down to choice and priorities, and the problem is that we have more things we find interesting than we can focus on.

but i consider that a good thing. i know that whenever i retire or am unable to continue some of my interests there will be others that i can pick up instead. i know that i won't be bored...

Just a quick prompt for reflection. I do not suggest anything how people actually live their lives. But many have said that they got caught up in being too busy to actually enjoy life. Don't fall into that by accident!
I saw an article recently on a shock absorbing material and a biohacking method of manufacturing it with a bioreactor. I’d love to pick up something like that. That and Effective 3D printing or hobby manufacturing.
Game development.

I’ll admit that part of my problem is chronic depression over a decade+. The idea of gamedev excites me, but I have a hard time feeling passionate about anything these days. You definitely need that for games. Hell, I’m barely able to sit down and even enjoy games anymore.

We're not depressed, the rest of the world is just stupidly optimistic.
Only partial agree!

I think there is a group that is nihilistic and follows that with a defeatist view

There is also a group that is nihilistic and extremely content with the state of the world and molding it to their liking. Which is very useful

and then there is everyone else with the optimism

also this is not depression

Sounds like you have succumbed to the engagement algorithms
Gamedev is weird. I want to do it, and am trained to do it, but the working conditions are horrific.

Like half my graduating class ended up in a real estate company making directx based 3d walkthroughs for minimum wage.

Even if you are successful, the crunch is oppressive. The bigger firms will make you labor hard for your art, take all the cream off the top and then terminate your contract.

And yet heaps of people, even me when I am bored, want to do it.

Not sure what types of games you're interested in, but the TIC-80 can be fun to explore, and supports quite a few languages
Ah yeah I love the concept of these small fantasy computers. I’m familiar with them because of Celeste, but never played with one.

I’m interested in traditional roguelikes these days (Tales of Maj’Eyal, Qud, Brogue). Ofc the dream is to make something with wider appeal, like Balatro, and get out of the rat race all together.

Try Roblox (YouTube but for games essentially). You can publish a game just a few clicks, and even quite simple games can get popular enough that you get the satisfaction of seeing others interact with the thing you made, which is very motivating.
Industrial design for a long time, and injection molding more recently.
There's a certain change of perspective with modern AI (by "modern" I mean Resnet and beyond). When I was deep into neural nets in the 1990s, they weren't that large, and I would think of them in terms of the number of weights and nodes - but modern deep learning seems to have has moved up a few levels of abstraction. (I stepped away from the field for a while). And there's a certain understanding people seem to have now regarding the "gradient flow" through the net and why certain architectures work well (Resnet, Unets etc). I must say I'm finding it tricky to shift into this new level of thinking. Also Transformers - still looking for an intuitive sense of how they work, haha.
Cellular networks.

I specialize in computer networking in my day job. Most of what I do is Cisco routers, Cisco switches, and Cisco firewalls. I would be interested in learning more about cellular networks. I haven't put any effort into exploring this for myself. If there is a track similar to CCNA → CCNP → CCIE then it isn't well-known (well, not known to me).

Same background as me, however I moved into cellular/mobile - not really any official routes I know of in the industry, certainly not like a Cisco track.

Typical route is work at a Telco or IoT company as Network Eng or Developer and naturally pivot into telco learning on the job.

Vendors will run training courses when you buy their kit which helps a little, but it’s mostly self learning or on the job.

Making enough money to retire
Any realistic strategies that you have considered in order to try achieving that? Genuine question.
Genuine answer: I buy a lotto ticket like once a week. ~100 bucks/yr seems like a decent risk/reward tradeoff once over a certain tier of income.
I may try Gambling at the end
Working. In my 30 years employed I've managed to invest enough to make up a little. I've probably 24 years left. I think I can more than double my 401k in that time but that still won't be 1M

If crypto keeps going up there's a chance my 3k investment in it eclipses my 40yr 401k so I'm hoping for that....

I've tried to make my own pair of shoes a few times now, never quite getting to the end. I even took a class but doing it on my own is so much harder.

I'm a software developer with no real reason to be sewing and lasting my own shoes, but god damn it I'd love to wear my own handmade shoes.

Debugging electronics to fix stuff. Some people seem to be able to repair whatever broken electronic devices we give them, which I find fascinating.
Same! There is a huge knowledge and skill gap between knowing how resistors, capacitors, and transistors work to the point where you can build a little light blinker, which I can do, and actually troubleshooting a (even 1980s through-hole technology) device to find the component that is broken, which is way beyond me.
I recently built an optical encoder from scratch, and it was a ton of fun. More recently I've been looking into how force feedback works, and I'm currently gearing up to implement it using a motor/encoder/controller setup and ODrive.
I want to make my own music streaming app. Fix all the UI problems, improve discovery, remember all the musical phases I went through.

Unfortunately, you can't just sign up for API access to millions of songs. And the streaming apps either don't provide a playback API, or their TOS limits what you can do with it.

I've looked into this before. You might be able to pull this off with the YouTube API and Stream Rip using Deezer. Would require a bit of hacking but it could work.
You don't need to do a monolithic design, and kludging things together is just fine. Start with local playback from the server or something equivalently small and work from there. If you need to background play a youtube video and forward the audio stream elsewhere, so be it haha
Well, I'm have a little guilty bias towards spacetime non-substantivalism and I've always been interested in getting back to physics in this area. I've particularly found the Shape Dynamics program to be at least somewhat interesting and while I have a sort of ok grasp of the language and mathematics of GR translating that to the SD world has been a persistent challenge. If I had time I'd try to figure that out.

Briefly, one usually formulates the theory of gravity in terms of a a 4d spacetime with curvature but you can also formulate it as a theory of curved 3d shapes if you allow the lagrangian to carry more structure. This is often performed in GR, in fact, by decomposing the metric into a "spatial" and "temporal" part but shape dynamics kind of runs with this idea in an attempt to formulate a totally relational version of the theory of gravity.

Shape Dynamics apparently produces a reasonable theory of gravity which agrees with GR in many situations but forbids, I believe, closed timelike curves, and may be more amenable to quantization since it re-separates space and time.

Anyway, it all seems very beyond me, maybe even if I had the time, which I do not.

Not out of reach but I have to put time into it, working with FPGAs and designing my own circuit boards.
I've wanted for years to take the research paper "Coq: The World's Best Macro Assembler" through several of its more and less obvious next steps, including re-implementing it on top of a formal specification of ARM (or RISC-V) machine code, and introducing a concept of virtual registers on top of a (light weight) register allocator. I really feel like there's a path here to a system in which low-level non-portable code can be written comfortably (if perhaps at a somewhat slower pace than C), with arbitrary correctness properties proven on it; but the learning curve to get there (through Coq, etc) has been a struggle. Every few years I set myself the goal of a proven-correct implementation of a min/max heap in assembly built on this approach, and every few years I give up.
Not in Coq, but you might find this interesting from AWS: https://github.com/awslabs/s2n-bignum?tab=readme-ov-file#tes...
I've just taken a quick glance at this, and will explore further -- but at first, it seems like it's really a good application of ad-hoc proofs to assembly code; which is a subset of what I'm interested in, but for me the more interesting thing about the paper was the structured safety proofs for things like memory safety, no read-before-write, no overflow, etc., and thinking about how this can be expanded and generalized. While for something like a bignum library (or a heap) the actual conformance to the behavioral contract will be somewhat ad-hoc, having a lot of safety contracts also proved along the way "for free" (or at slightly reduced cost, anyway) is what really draws my attention. I can see spending 2x the time writing the code, and 10x the time proving things about it, in exchange for not having to spend the 100x (DAL B) or 1000x (DAL A) time testing it.
Yeah, I hear you. Many things are simplified in this crypto code, for example there’s no dynamic allocation. At the same time it’s incredibly difficult to get a realistic model of the hardware instructions because they all have side effects. And it gets incredibly more difficult if you try to prove real world, hand optimized code (vs academic proof of concept code).

With all this said, I think this could be a good inspiration and look forward to seeing advancements!

> Many things are simplified in this crypto code, for example there’s no dynamic allocation.

That's okay, I haven't worked on code bases with dynamic allocation professionally in years, and even my hobby projects usually avoid it.

Making electronic music. Any recommendations for where to start?
I've been having a lot of fun getting started with Max/MSP following Cipriani & Giri's "Electronic Music And Sound Design" books. Max is a paid program though; Pure Data is similar but open source.
Ah caught me! You need a Mac and GarageBand. I was always in the too expensive not gonna buy one but it changed my home use a lot.

GarageBand is easy. I’m gonna upgrade to logic at some point but that’s a start.

And good studio monitors or studio headphones. Can’t mix on regular headphones. I’ve got some m-audio pretty good.

Then you play. I don’t have many followers or fans but I’m doing it for me.

Here’s a track https://open.spotify.com/track/5o0xa7x1Q3bokEwFOEnXBQ?si=QZc...

It’s lofi/ electronica.

Best of luck

I would buy a synth and learn it as you would any other instrument, something on the simpler side and not a work station or the like so you can focus on it more as an instrument. Modern technology makes it all to easy to just have an entire electronic music studio which is a great deal to learn and few are going to ever learn any of it well if they start with a full studio. Build out from there, once you are getting the hang of the synth install a DAW or something to record with on your computer and start learning that, record an entire album worth of songs with just that one synth. I always liked using SoX as a multitrack recorder, ecasound was nice as well, kept things more about making music instead of being an engineer.

Back when I was more active with electronic music I would do an entire album worth of tracks with each new synth I got, software or hardware, good way to learn a synth.

My time to shine! I'm a computer programmer but I've been making music digitally for about 15 years now

The software you want is called a DAW - Digital Audio Workstation. There are 300 DAWs, you need to find the one that fits your 'style' or 'workflow'. There are a multitude of paradigms, as making music is not a single technique.

Once you find your DAW, my recommendation is to just make lots of music. Make the music you imagine in your head. Make the tracks that don't exist but you wish they did. Your first 100-200-300 tracks will all be extremely crappy in hindsight, but when you finish them you'll think they are, at the time, a magnum opus each. Keep iterating that process over and over and after many years, you'll start making something that you'll feel semi-proud enough to be able to show your friends!

This is a track I've done 11 years ago:

https://www.youtube.com/watch?v=AlkoEI4Sq7w&list=PL2xsoYcYFo...

and this is a newer track, released "only" 8 years ago:

https://soundcloud.com/flipbit03/twothousandseventeen-feat-m...

so you can definitely notice the difference of what 3 years of music making look like in terms of progress

GOOD LUCK!

Your enthusiasm is shining through. For someone wanting to do exactly what you said "just make lots of music. Make the music you imagine in your head." and faced with the issue of "There are 300 DAWs, you need to find the one that fits your 'style' or 'workflow'.", how do I choose? I am not a music maker, I have never made music - I would like to though. I don't even have a style or workflow. I don't know how to start.
Start by starting! Pick a DAW, if you can't pick one, pick one of the most famous. Ableton Live maybe?

Just put some notes down and hit the play button. That's the whole feedback loop. Everything else is just honing your skill and repeating this feedback loop 80 thousand times until you start getting stuff out that you semi-like :)

PS: My background is also as a computer programmer with previously zero music making experience. My first tracks were absolute garbage, and that's fine. Every new track is 0.01% better (read: less worse :') than the last one, and that's it. Rinse. Repeat.
Python packages written in low-level languages like C/C++ and Rust.

There are currently so many cool open source projects in the python ecosystem that involve writing python packages in low-level languages. But unfortunately, I've barely written any low-level code since university, so these projects are effectively out of reach for me at the moment.

However, I do plan on learning Rust sometime later this year and there are number of smaller projects that I plan on working on!

C is not as hard to get into as you might think, and probably necessary to be at least a little bit comfortable with if you want to write Python libraries or understand Python internals. I would suggest Beej’s guide, if you’re looking for a place to start!

https://beej.us/guide/bgc/

Many thanks for the resource!

I did do some C in uni and I remember not finding it too terrible and actually pretty fun, but yeah, it does feel intimidating to come back to.

Do you have examples of such projects? I have some low-level language knowledge and might be interested in giving it a shot.
Yeah I have quite a few examples. However, they're pretty niche projects that require a bunch of non-programming domain knowledge such as Japanese linguistics or using a Rust-based machine learning framework to optimize the parameters of a spaced repetition model.
pybind11 is your friend. Focus on small self-contained functions first. For numerical functions you can then take it mostly our of a book. See if you can speed up some simple and common operation within your problem domain of interest.