Ask HN: What Are You Learning?

222 points by sergiomattei ↗ HN
Hey Hacker News, what are you learning?

Personally I'm learning Elixir, and it's such a pleasant language. It feels great to write, and the packaging/build tools feel refreshing compared to the mess of Python.

Now, handing you the mic. Is there a new stack or language on your mind?

361 comments

[ 5.5 ms ] story [ 289 ms ] thread
Finally getting around to learning full stack JS. Been doing Angular/React on the frontend for a while, but never did much beyond that.
Capacitor. We had a project that was on Cordova, but it's likely time to switch.
That was my first foray into app development when I was making an app for my BlackBerry back in high school. Fascinated that it is still around as I assumed the use case died when mobile coalesced around two platforms.
Stenography (typed) - maybe it'll be a useful skill in the future, maybe not. It's an excuse to spend an hour a day dissacosiating and developing muscle memory, and I need that dissacosiation a bit too much.
Piano. I've decided that more programming languages or web stacks are a complete waste of time. Piano is for life and I wished I had started doing this in earnest long ago.
Mind sharing resources you’re using to learn? Also do you have background in music theory or is this from scratch?
I built pianojacq.com to help me practice sightreading and to keep track of where I'm making mistakes. It is still far from perfect but quite useful. The main problem is to get the pieces I want to practice into MIDI format, but there is a wealth of MIDI files out there that can be used with a little editing.

I have this pipeline where I take a youtube video, download it as an MP3, convert that to MIDI and then edit that midi to split left/right and to ensure it is all set to time and of the proper length so I can show it as sheet music.

I knew next to nothing about music theory when I started this beyond the very first basic stuff, but after watching many youtube videos on the subject and reading a lot of stuff it is starting to make sense. This is a subject that is overcomplicated to the point that it seems much harder than it really is, there are only very few good teachers out there to make that which looks complicated but it ultimately relatively simple simple again.

If you want I can do a write-up of all the resources that I've used over the last year and a half.

Currently practicing Ennio Morricone's "Chi Mai" arranged for piano.

Progress is still slow but if I compare my sightreading spead, accuracy and general quality of play with a year ago the difference is huge even if you can't see it day-by-day. Each new piece brings new challenges, and teaches me something that re-inforces the pieces that I already know how to play which then all get a little bit better.

Overall I'm having a ton of fun with this and the joy I get from playing a piece end-to-end without mistakes, at speed and in a way that is nice to listen is hard to describe.

It's obvious that an experienced pianist would probably laugh at the level of my accomplishments but that's fine with me, I'm enjoying this and that's what counts. It's also one of very few things in my life that I've done without any commercial goal, and which is just for myself. Overall if I could do this life over I'd tone down the business career in favor of making more music. And the programming skills came in handy while making pianojacq.com, so in a way this allowed me to combine two things I love.

I'm on the same journey with the guitar, highly recommended, was one of the key things that improved my life during the pandemic -- and still excited to keep at it afterwards.
Piano has also been my go to this pandemic. I've also been finding a lot of joy in applying my programming skills to music as well. What are you using to convert MP3 to MIDI? How accurate is it?
Either this: https://piano-scribe.glitch.me/ or my own cobbled together piece of software. Depending on the content anywhere from 80 to 95% accurate, good enough to get you started and typically the errors are reasonably easy to deal with because of repeating patterns.
Not OP but I'm going through "Alfred's Basic Adult All in One Course" book series. It assumes no prior piano/theory knowledge and is one of the most recommended books on r/piano.
ooh! I'm doing exactly the same! I purchased a Casio and started taking lessons. So happy to learn!
I'm assuming that's a PX-S** series and I've looked at those, they are very good value for the money. Track your progress, make some videos and then look at yourself a couple of weeks or months later so you can see in a very concrete sense how you are progressing, this is a huge motivator, and it is easy to keep track of this on a day-to-day basis.
Yes, nailed it! Got a PX-S1000 because it's hammer action and I love the minimalist design.

Will absolutely do this :) I'm so down to see my progress as I go. Today I had my class and started working on some chords!

Cool, mail me if you have questions, it sounds like we're roughly in the same bracket. jacques@modularcompany.com

best!

Same, but classical guitar. Less tech in my life please, thanks.
Same, but Electric Guitar. Coding is just another hobby for me right now.
A fun tech-related project is hooking up an addressable LED strip to a digital piano and making the strip respond to your key presses - via a Raspberry Pi.

My repository for this (code finished, just need to add photos and add a write up about how to use):

https://github.com/whyboris/Digital-Piano-LED

I added a feature that the left and middle pedal buttons navigate through sheet music (PDF left/right button). And I'm also running Pianoteq which makes any (even dinky) digital piano sound like a $100k grand piano (or any piano you pick for that matter) https://www.modartt.com/pianoteq

This sounds really cool, looking forward to your pictures.
Very nice, looking forward to seeing this working. While you're at it ;) How about a modern day version of the Moog PianoBar? That would be a real game changer for people studying using acoustic pianos. They now have to install a very expensive silent piano system in order to get midi-out. If you could just stack a bar against the fingerboard to get midi-out that would be amazing.
Update: I coded-up a full-screen visualization to display on the screen. My setup has a 55" screen right above the piano, so there's great potential to make a pretty show.

Still WIP, but easy to edit: https://github.com/whyboris/Digital-Piano-Visualization

I used Processing because of how easy it is to use and how performant it is for smooth animations.

I've been astounded by the number of free pianos I see on Facebook marketplace. I totally get the allure (and used to play a bit myself), but I fear it's a dying art.
Don't underestimate the number of digital pianos that are being sold, they don't have to be tuned regularly which substantially reduces the cost of ownership and they tend to be a lot smaller and easier to move around. The quality of the latest batch is excellent. I have both an acoustic and a digital one and to be fair the acoustic is half a century old and sounds better up close but for practical reasons I find myself playing the digital one much more often using headphones so I don't disturb others.

Even so, you are right, it is definitely not a growth market by any stretch of the imagination, it takes a ton of effort to learn how to play and in a world full of distractions and ready made music more than you could ever listen to in a lifetime the enthusiasm for doing this is waning. There are exceptions to this though, for instance, in Asia where playing the piano is a status thing and still in its ascendancy phase.

A piano, if not cared for. Is literally just a liability after a while. Most people have to pay to get them taken away. I wouldn’t consider this an indicator of the art dying. Cars go to junk yards too, but cars aren’t dying.
Any tips for getting started? Should I do lessons? How can I motivate myself to practice when I could just be browsing reddit?
Was in a rut for way too long. Slowly getting back to learning by doing https://www.nand2tetris.org/. So far it has been enjoyable.
This is really cool, and I can really relate to being in a rut. Thank you so much for sharing.
I am learning how the audio stacks in Windows and Linux work. I plan to create a simple library to play sound on both platforms (like RTAudio/PortAudio but simpler).

I am using C/C++ to program the library while learning essential concepts.

Nice post yesterday about the next generation Linux audio system. I've been using Pipewire on my desktop for a while and it's been working well.

https://venam.nixers.net/blog/unix/2021/06/23/pipewire-under...

His previous blog on Unix Audio Systems cleared up a few concepts I had in mind.

BTW I use Fedora 34, and PipeWire works flawlessly for screen-sharing and Bluetooth audio :^)

Clojure. Is a complex language but it seems really speeding up your programming when you learn how to use it properly. And the community is really addicted to it.
Hey congrats! I have been using Clojure professionally for 9 years and absolutely love it. A really important concept I tell all the new Clojurists at work:

Clojure is simple.

Nearly everything is just (function arg1 arg2 ...), even at a fundamental language level. It's actually our background experience in complex languages with all kinds of wacky syntax that makes Clojure seem hard at first. But it's very simple. So if you can't remember the syntax or why something is the way it is, step back and you'll realize it's just (function arg1 arg2 ...).

For example:

(defn add-these [x y] (+ x y))

is still just

(function arg1 arg2 arg3)

Where:

function = defn

arg1 = add-these (a symbol)

arg2 = [x y] (a vector)

arg3 = (+ x y) (an expression, which itself is just (function arg1 arg2))

You may already know all that, but regardless I hope it's encouraging because the bottom line is Clojure is easer than you think and you can do it! :-)

Been using Clojure for 8 years or so. It's a very productive language.

Clojure is actually simpler (and eventually way, way easier) than most mainstream languages. It's just a bit different from what most people are used to and what is commonly taught as "programming".

I started on Clojure a few months ago and I'm pretty obsessed. It's really reinvigorated my love of programming.
Same. But I think is just a bit difficult to switch from other ordinary languages, mainly due to the lack of a good way to debug. Cljs is wonderful, but reading an error on the console log is quite terrifying.
Two things that accelerated my learning:

1. There are several fantastic books on Clojure. The Joy of Clojure and Elements of Clojure are some of my favorites.

2. Watching a professional using an editor/IDE with a REPL attached to it. Look for online videos. This is the biggest reason to why people are „addicted“ to it. The language and it’s ecosystem are made in a way that enables this „living in the code“ experience.

Does anyone have resources for learning Clojure?

I am interested in the actual Clojure bits. I mean, I know Lisp syntax and functional programming basics. But one also needs language-specific things: standard libraries, namespaces, etc. What is a nice resource for these?

Parameter tuning for deep learning models.
What resources are you following? How are you learning this in general?

In most cases, it's just a big and elaborate grid search done manually.

Deep learning methods university course, along with several online tutorials and examples for using ray tune with pytorch.
Can you share which university and which course?

And I see that you are learning to use Ray. How is your experience with it so far?

Brazilian Jiu Jitsu aka BJJ. Physical problem solving under pressure.
I started training kickboxing now, after 2 years of mma and 1 year break of physical activity. Martial Arts are the best!
I agree. I learn Muay-Thai (Thai boxing), and this is incredibly useful, mainly because I have to (try to) switch from my usual "thinking for hours/days/months to a problem" mode into "flowing, neglecting analysis/systemics/... and letting whatever is left take control and act/react RIGHT NOW".
Do you worry at all about taking kicks to the head or it damaging your body long term?
This is really a problem in the professional world, and at a lesser extent in some high-end amateur setups, mainly when some competitors want to become pros or if there is some animosity between gyms/people.

They cut weight, have good technique and power, and the stakes sometimes are very high. This is dangerous.

Cutting weight reduces the amount of water in the body => the brain bounces on the skull at a greater speed => more kinetic energy => major risk (hemorrhage...).

Many sports are much more dangerous than commonly thought. Each and every friend who practiced judo or BJJ developed serious joints problems, or even major hips-related ordeals. Comparing football and MMA leads to surprising observations: https://bleacherreport.com/articles/2830774-football-vs-mma-...

My take: do not compete (and do not aim at becoming a professional!), avoid any gym where hard sparring is mandatory, or where the trainers don't closely monitor the sparring sessions or don't immediately break anything getting out-of-hands. There is some residual risk, but IMHO probably no higher than walking down the streets, and the gains are worth it.

Came here to say this. I trained for about 7 months before Covid shut everything down. I figured maybe I would just focus on lifting from here on out.

Then, 6 weeks ago someone stole my laptop from me while sitting in a cafe in San Francisco. Without thinking, I chased him down and was able to wrestle my laptop back from him. Without the BJJ, I probably would have just yelled at him. Anyway, I'm back at the BJJ studio!

I found BJJ to be an excellent ego crusher, which I sorely needed at the time. Highly recommended if your joints can handle it :-)
After spending a decade as a Backend Engineer, now started learning Kotlin, Android.
Haskell and Elixir. Also thinking of trying out Gleam.
I also started learning Elixir, really loved it.

But I have wanted to go through the whole of SICP for a while. I realized that that is a better thing to do (grow core, fundamental skills) during the pandemic where I can get uninterrupted time.

I can learn a language any time. But I was more focused towards learning the functional paradigm rather than the language itself. It's a fun language to code in, though.

C++20, as it contains myriad major things (e.g. concepts, ranges, and when cmake supports it modules too...) and minor things as well (e.g. lambda capture issues, the spaceship operator and sane inference for comparison to avoid boilerplate). Given that C++23 is likely to be a very small set of changes, I think 20 will be the next "major standard" most folks move to.
To sleep on my back. Being a life-long side sleeper has caused a lot of shoulder and upper back problems that sometimes make it hard for me to reach out and type. I wish I'd done this ages ago. It's one of the hardest things I've had to learn.
I'm normally a side sleeper, but while/after lying on an acupressure mat I often fall asleep on my back. I use the cheap Amazon one.
I've never heard of acupressure mats before. I might check that out.
How did you learn?
I stopped using a pillow under my head because back sleeping + pillow = neck pain. Then I got a thin, light pillow and placed it on my chest to mimic the "wrapped up in blankets" feeling I was used to.
Normal adult pillows are no good for back sleeping but I found having no pillow wasn't very comfortable. I ended up using a memory foam pillow for toddlers[1] that we originally bought for our son. It's perfect - provides just the right amount of lift for me.

[1] https://www.amazon.co.uk/dp/B004M3PS4O/ref=cm_sw_r_cp_apa_gl...

I did the same thing! Works well, but I have some shoulder pain now and I don't know if it's related
The hard thing being to fall asleep or stay at sleep?
Both, but the biggest issue has been reverting to my side while asleep. I've re-aggravated my rhombus muscle a number of times doing that.
I often wind up sleeping in contorted positions, and I've had a similar issue with my rhomboid muscles.

About 6 months ago, I switched to a split keyboard and it's made a big difference for me. Sitting with my arms shoulder width apart has taken a lot of the strain out of my neck and back.

My wife and I have tried this, but it causes each of us to snore intermittently. Did you contend with snoring as you learned to sleep on your back?
This is the main reason I don't sleep on my back, too. Not sure what the solution is if I want to sleep on my back - I'd hate to jump straight to a cpap machine if I don't need to. Maybe those nighttime breathing strips would help?
Depends on the cause of snoring. For me, I've broken my nose a few times so it's a combination of that and mild sleep apnea---I can manage it by losing a little bit of weight. If you think your nasal passages have an issue, it's worth talking to a ENT about it. There are a number of different things that can be fixed with fairly mild surgery.
I am having frozen shoulder issues for 2 months after heavy bowling. Sleeping on right shoulder gives pain. I'd like to know how are you practicing it and is there any side effect of it?
Most likely you have a jammed nerve in there somewhere, switching sleeping position isn't going to solve the problem.

I would suggest finding a good chiropractor and describing the problem.

I'd love to learn this but get sleep paralysis for 30-60 seconds at a time for like an hour (i have no way of knowing how long the intervals are but that's what it feels like) every time I do - has anyone overcome this?
I had to go the other way, learn to sleep on the side because of a spinal fracture since anything else was too painful. Never went back.

Shoulders are very flexible but also extremely weak and sensitive, they should rarely be used out of neutral position. I've taught martial arts for a long time and most issues I see with people's shoulders is due to (improper) overuse.

My point is that maybe the cause of the problem isn't in bed at all. My experience says that sleeping on the side makes everything easier, from breathing to offloading the spine.

Kundalini yoga works great for my shoulder-sleep issues. Perhaps it can help others?
I’d love to have a hole in my mattress and sleep face down with no pillow. It’s so comfortable but can’t find a way to breathe.
The best method I have found is to have several blankets, and to put one blanket underneath, and then to rearrange it until everything is supported exactly how I want it.

Then later I may move around and find another position.

Swimming. Front crawl technique is a bottomless source of self-improvement and incremental gains
Likewise.

Front crawl really seems to be one of the most beautiful & rewarding processes to master.

How to make beautiful 3D characters and scenes. I started with Blender and now I'm learning Substance for painting the models because the work flow is creativity focused. The possibilities are truly amazing with today's tools.

Working in 3D has opened my eyes to new possibilities. I believe that having skills in 3D will become very important over the next five years with adoption of mixed reality hardware.

Totally agree. I'm working on a mixed reality app and have started learning Blender as well to set up asset pipelines and toolchains, so being sucked into the 3D modeling world also. I've been surprised to find a ton of overlap between 3D modeling and ML-based tools to assist in the process. Would love to trade notes if you're available to chat sometime.
I'd love feedback too. I tried my hand at using scipy.optimize to tune Blender lighting and materials to a reference image that didn't turn out how I expected. Would love to hear other about other ideas in this space.
I'm really interested to hear about your process using ML tools and Blender. Nvidia Canvas is one I plan to test this week.

My current work flow is very hands on because I'm creating characters for a game and want an oil painted texture look. I'd like to find a way to copy the style from one character to the next.

I've picked up Blender in the past few months. Previously I had dabbled with 3dsMax in the late 90's in highschool, but the piracy and license cracks eventually turned me away. Until recently Blender's UX kept me away too.

It's been fun seeing the world in a new way again. I like the nostalgic feeling of looking around and seeing the material nuance in everyday objects, how light behaves, and the uniqueness of everything around us.

Unfortunately(?) ds and algos + leetcode for interviews but I’ve been approaching it as an investment. Hopefully my future self making tons of money will thank me
Have you had a look at algoexpert?
At work because I have no alternative I'm learning VBA, MS Access, and Excel/word automation.

At home I'm looking at Common Lisp and APL (which are so far out of my frame of reference I can feel my brain hurting when I sit down to them).

Logic and Proofs. It’s making me much more specified in my thinking, but man is it hard to find a learning community in northern rural England!
Figuring out how to make recurring revenue so that I don't go bankrupt if I end up in a hospital for an year.
I've tried following the Donut 3D tutorial. Midway, I thought "wow my donut already looks better than anything I've ever done in 3D", and by the end of it I couldn't believe I actually made the donut (sure, following step by step, but anyway that was an amazing feeling). It took a few hours but the result speaks for itself:

https://twitter.com/FPresencia/status/1402267525262491658

My kid is doing the donut too! Have fun!
Started playing Kerbal Space Program game and seems like I'd have to learn a lot of physics such as Orbital Mechanics to make the rockets fly properly. So much fun though!

On a more relaxed note, also learning more techniques about how to do proper gardening to grow more veggies and flowers.

Programming-related: Full-Stack Web Dev through Harvard's CS50 web (Django backend, JS/React Frontend). I only started learning to program about 3 months ago, and the regular CS50x course was a blast.

Otherwise: Japanese for 2-3 hours a day (will hopefully pass the N2 exam in December), and have also been reading a lot of pedagogical theory lately, and will implement some of it in a curriculum that I'm proposing soon (My day job is teaching).

- Graphics Design because people really listen when stuff is pretty.

- French which has to be done but is quite hard.

- Some math because the more I work with computers there more I understand how it would be very useful.

- Combat sports because it keeps me fit and its good for your posture if you know how to throw a punch.

- Traveling. Never learned it, work too much and would like to see the world before being an old fuck.

- Basic EE digital circuits and microcontrollers. One should really have a grasp how computers work on a fundamental level.

- Cooking. Because it is social, full of culture and makes you independent.

Is that all at the same time? If so, do you have concurrency issues?
Yes but in small pieces and with varying intensity. Just sticking to something and making small incremental progress does compound.
And: unrelated skills and the act of learning itself also compound. Learning gets easier as you do more of it because you have more of a method to do so and more knowledge to help you integrate your new knowledge. So as you know more/have more skills adding new skills or more knowledge gets easier.
What do you mean by "learn" travelling? Isn't it just... travelling?
I never traveled when I was younger. So I would say I never learned it. The mechanics of taking time off, not working, knowing where to go, where to stay etc. That all needs some practice. It is of course not something that you would "study"
Nice list! Can you share your resources for Graphics Design?
I have been "learning" French for 5+ years... what resources are you using that you would recommend?
For first timers

- Duolingo(don't do it for more than a few months)

For beginners

- https://www.languagetransfer.org/free-courses-1#french

For all others, some sort of immersion approach is the only way if you don't live in the country. Figure out the general approach below and adapt for your target language.

- AJATT http://www.alljapaneseallthetime.com/blog/all-japanese-all-t...

- TMW https://learnjapanese.moe/

- Refold https://refold.la/

I'd also recommend glossika
I haven't tried Duolingo in the last couple of years, but I thought it wasn't the best to begin with a language.

It's pretty good to learn basic vocabulary, but I felt you would need something before, just to get some grounding in the language. Like basic grammar, and a very high level overview of how the language "works". You can infer some of it from the example, but that's a lot more difficult than already having this context in my opinion.

(comment deleted)
Regarding French, I am learning it as well.

I built a small site for myself to help in learning the 5000 most frequently used French words. It is, and always will be, free and with no account sign up needed.

Check it out, you might find it to be useful:

https://cinqmille.app

Curious, how are you learning graphic design?
I started a law degree and picked up the piano again.

Given the decline of European culture, law is on really shaky philosophical foundations. I’d seriously like to figure out if Roman law concepts can be refounded upon something like Vedanta.

To chill.
How?
Not doing anything
That's really difficult. Do you find your mind just going insane until you start to do something?