Like what you see? Subscribe here and get it every week in your inbox!
Issue #303 - December 29, 2024
Here are the top threads of the week, happy reading!
1. Ask HN: Programmers who don't use autocomplete/LSP, how do you do it?
Top comment by daltonpinto
This question reminds me of the first time I met a blind programmer.
I asked him how he managed to code, and he replied with something that stayed with me: a good programmer should organize software in such a way that every piece of code has a clear and logical place. The organization should be so intuitive that anyone could build a mental model of the structure and navigate it easily, even without seeing it.
It felt like something out of a Yoda or Mr. Miyagi lesson. Skeptical, I asked his colleagues if he was truly able to code or if he was just exaggerating. To my surprise, they told me not only was he capable, but he was the best programmer they had ever worked with. They said no one else came close to writing code as organized as his.
That conversation changed my perspective. Ever since, whenever I’m unsure where to place new code, I don’t think about DDD or any specific methodology. Instead, I try to follow the logic and structure of the project in a way that feels natural and easy to follow later.
Later in life, I met two other blind programmers and heard similar stories about their ability to produce well-organized code.
To bring this back to the original question: I view LSP/IDE features the same way those programmers view "visual aids." Code should be organized according to a clear and logical structure that makes it easy to navigate.
Relying on features like Ctrl+Click to find where things are located worries me. Why? Because it can mask structural flaws in the codebase. If we can't intuitively figure out where something belongs, that’s a sign the codebase lacks structure—and that should motivate us to refactor it.
Not only do I avoid using LSP features, but I’m also opposed to their use. While they can help with navigation, they may prevent developers from experiencing and addressing the underlying structural issues in their code.
2. Ask HN: Predictions for 2025?
Top comment by quantisan
Previous years:
2024: https://news.ycombinator.com/item?id=38777115 (the rest of this list is copied from https://news.ycombinator.com/item?id=38779963)
2023: https://news.ycombinator.com/item?id=34125628
2022: https://news.ycombinator.com/item?id=29746236
2021: https://news.ycombinator.com/item?id=25594068
2020: https://news.ycombinator.com/item?id=21802596
2019: https://news.ycombinator.com/item?id=18753859
2018: https://news.ycombinator.com/item?id=16007988
2017: none?
2016: https://news.ycombinator.com/item?id=10809767
2015: https://news.ycombinator.com/item?id=8822723
2014: https://news.ycombinator.com/item?id=6994370
2013: none?
2012: https://news.ycombinator.com/item?id=3395201
2011: https://news.ycombinator.com/item?id=1970023
2010: https://news.ycombinator.com/item?id=1025681
3. Ask HN: Are you unable to find employment?
Top comment by m_ke
It's not just you.
I have an Ivy league degree, worked in deep learning since alexnet at a leading startup in the space, was a CTO of a startup that got acquired and have referrals from very senior people at the top FANG companies and still struggled to get interviews.
I also have research scientist friends with Neurips papers, ones that solved long standing open math problems and even they are struggling to get hired.
What me and my friends heard from a lot of people at the large companies was that many of them are no longer hiring in the US, but in India, Poland and Brazil instead, and that the roles they have listed in the US are for internal transfers. I've had a referral for Google for months and did not get an interview for NYC based roles, but when I went to an ML conference in Warsaw a few months ago I learned that Google is looking to hire 2000 people there, but with people in that office making ~1/4th of my friends in the US.
On top of that you have a huge pool of bootcamp grads and foreign applicants so any role posted gets 1000s of applications in the first few hours, making it impossible for recruiters to look over all of them.
And if that wasn't enough we're going through a huge hiring downturn post the COVID bump, see: https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE
4. Ask HN: What skills do you want to develop or improve in 2025?
Top comment by hypertexthero
In the beginning of the day, don’t look at phone or computer. Avoid news especially, and instead write thoughts, draw something, work on a song, make something, anything. Don’t let day get sucked away with things that can’t be controlled.
Excercise every day with “scientific 7 minute workout”. Also 20–40 minute walks or 100 basketball jump-shots.
Draw daily, even a 5 minute drawing.
Write daily, even for 5 minutes.
Publish first original song, publish first EP. Learn a new song or practice one or two from existing set. Keep learning piano by learning songs you like: https://hypertexthero.com/piano/
Write postcards to people.
Set up a weekly “office hours” livestream to help people with design or technical computer issues.
Top comment by 0xFEE1DEAD
Looks like Azure is experiencing a major outage, but I cannot find anything about it. If you look at downdetector.com you'll notice reported outages from OpenAI, Microsoft 365, XBox Live, Walmart, the list goes on.
6. Ask HN: Resources for general purpose GPU development on Apple's M* chips?
Top comment by aleinin
If you're looking for a high level introduction to GPU development on Apple silicon I would recommend learning Metal. It's Apple's GPU acceleration language similar to CUDA for Nvidia hardware. I ported a set of puzzles for CUDA called GPU-Puzzles (a collection of exercises designed to teach GPU programming fundamentals)[1] to Metal [2]. I think it's a very accessible introduction to Metal and writing GPU kernels.
[1] https://github.com/srush/GPU-Puzzles
[2] https://github.com/abeleinin/Metal-Puzzles
7. Ask HN: Who's building on Python NoGIL?
Top comment by upghost
This is going to be bananas for libpython-clj[1]. One of the biggest limiting factors right now is that you can't mix Java/Clojure concurrency with Python concurrency, you need to have a really clear separation of concurrency models. But with this, you will be able to freely mix Clojure and Python concurrency. Just from a compositional standpoint, Clojure atoms and core.async with Python functions will be fantastic. More practically, this will unlock a lot of performance gains with PyTorch and Tensorflow which historically we've had to lock to single threaded mode. Yay!
[1]: https://github.com/clj-python/libpython-clj
8. Ask HN: What is the best thing you read in 2024?
Top comment by chapliboy
I finally read Count of Monte Cristo (unabridged) Fully worth the hype.
Also read a lot of Arabian fantasy (?). Fantasy with djinn etc.
Favourites were Master of Djinn and the City of Brass series.
9. Ask HN: Have you ever taken a career break or gap year to hack?
Top comment by cayal
I just finished almost 5 years out of the corporate world after a pretty rough family loss. Many months of it were busy fighting personal fires. Many months were explorations into other career paths. And then when things stabilized and I realized my motivations, many months were spent hacking.
I only really regret treating the time off as more of an issue than it was. I was convinced by month 10 that I had failed to meet some imaginary, impossible deadline I had set for myself against the imaginary, impossible expectations of imaginary and impossible people. That cognitive distortion only got in the way of the inevitable and only possible resolution, which was a better sense of my own motivations and a broader horizon to sail toward hope again.
I would agree with the advice of everyone here, and add: If you’re stressed about the opportunity cost of lost earnings, weigh it against your sense of value for the time you’ll take off, whether it’s in the skills you’ll be building, or the new experiences, or the renewed mental health. And above all, talk to your friends early and often. Even if the roof is on fire, especially when the roof is on fire.
10. Ask HN: How do you improve your writing?
Top comment by Retr0id
Some quick thoughts while I finish my coffee:
- Decide who your audience is. You can't write for everyone, and picking a specific person (real or imaginary) keeps things directed.
- Decide the goal(s) of your writing. Three big ones: inform, entertain, persuade
- Get to the point (or grab the reader's attention) ASAP. Every additional sentence is a place where someone could stop reading - make them count! Consider the takeaway of someone who only reads your title and subheadings: they should either get the gist of it or be curious enough to read properly. Be ruthless about removing segments that do not pull their weight. (If you're anything like me, this is the opposite of what writing essays in school was like, and it takes a bit of unlearning)
- Take feedback, selectively. If you apply every suggestion you receive (from humans or automated tools) you'll tend towards the median, and that's just not very interesting.
- Narrative. Even if you're writing something purely "informational", everything is more compelling if there's some kind of storyline, however basic. I finished my coffee now btw.