I wonder if these “objects” are being shot down due to political reasons or if something fundamental ha changed..?
HN user
morty_s
CLRS does about 5 pages on linked lists. If you want more, my advice would be to implement one in your language of choice, then look at the API for the standard lib impl of a linked list in your language of choice (if there is one).
Otherwise, for more reading on linked lists, read through adlist.c from redis, by antirez.
Next, one of the best books (IMO) on algorithmic thinking is SICP. Get through a few chapters, do the exercises, grok recursion, etc.
In no particular order:
Algorithm Design Manual, Skiena
Algorithm Design, by Kleinberg/Tardos
Algorithms, Sedgwick 4th ed. (also Algorithms in C)
If you find you need or would like more math:
Discrete Mathematics (Epp is an easier read, Rosen seems more verbose)
Mathematical Proofs, Charrand
For interview prep:
Elements of Programming Interviews (EPI)
Designing Data Intensive Applications
Enjoying the slides! Is there a small typo on slide 17?
Strategy: Keep as much of our 200GB/sec of bulk data off the NUMA fabric [as] possible
Criss is still here, at least physically.
Got me.
Eh, idk. We could have lisp, x-expressions, macros, and DSLs instead of most frameworks. We could even use lisp dialects to “write C” (eg Chicken Scheme).
I do think a lot of frameworks are fashion statements, but that’s okay because style matters when doing creative work.
Was reading through some C++ at work the other day and was like “why is this reference.. assigned to… copy constructor?… oh, yeah…”
IMO it’s better (explicit) to see a call to `.clone()`, but maybe this is because I’m not up to my elbows in C++ everyday. Either way, I think Rust will continue to grow in popularity (C as well).
Yeah, they’re tailored. I get ads for perf dev tools, compilers. I still get ads for vehicles months after buying one.
I’ve only had one ad that was “eerie.” Coworkers were talking about a kind of beverage I’d never heard of (talking over zoom, on a work-only machine), got an ad for the product later that day. Could be that I just recognized the name from our convo which caused me to scroll back up...
When I think about Linus’ lack of objection to Rust I immediately think about his vocal disdain for C++
When I learned rust I thought it felt more C-like than C++ to be honest. Nowadays I’m pretty happy to be in this c to rust to c loop.
I think you’re exactly right about c++ not offering much benefit to someone like Linus. It’s much simpler than c++. Rust has also informed the way I write C (granted, I’ve also gained more experience along the way, but rust forced me to have more discipline for sure).
Wow. I can read Bloomberg articles for the low annual rate of $290/year for the first year, but after that the introductory offer expires and then I would only be charged $415/year... /s
Alright, sarcasm aside, does anyone pay for this subscription? What makes it “worth it?”
Does that mean they don’t exist? Are the FAANG chip makers paying a lot more for engineering than in the asics space? Genuine questions, I have a growing interest in this (vast) space.
Probability theory with Jaynes.
Computer org and design (risc-v) with Patterson
Digital signal processing
Is it possible that the appetite-suppressing effects of coffee are at play here? I’ve read about the general health benefits of reducing calories and I wonder how big a factor that is in caffeine/coffee studies.
I’ve been taking vyvanse for the last few years. I was skeptical whether medication would “work” or even about what “work” would mean. I’ve seen other commenters relate adhd meds to glasses. I think that’s reasonable. I wear glasses and they really smooth things out. Going through life without glasses would be so much more annoying. I think I’ll get lasik or something in the near future because, you know, good eyesight is pretty cool.
Without glasses I’d have to position myself in odd ways to get a good enough perspective of reality to interact with it in ways I want. Could I do it without glasses? Sure. Do I wish I didn’t need them? Yeah.
Vyvanse is tool. My life has been different since I started using this tool. However, I was trying to change—to be more consistent, less impulsive, and to reduce my anxiety. I can consistently practice other techniques and develop better habits long enough that they stick. Three years passed between my initial diagnosis and when I agreed to try out medication.
Since I’ve been on medication, I’ve gained a lot of the consistency I sought. I take a capsule in the morning around 6am and I go to bed at 10pm (almost every night, whereas I wasn’t on a schedule before). I have a little morning routine of reading or working on things before work (long term goals stuff). I start winding down with the fam at around 6-7pm. The daily consistent effort has helped my anxiety a lot (prior, I’d procrastinate a lot more). I can actually relax when it’s time to relax. I also need to exercise 1-3 times a week (medication isn’t a silver bullet). I don’t “take breaks.” I take it daily, as prescribed. I take the lowest dose that “works.” A 10mg higher dose delays my bed time and shortens my sleep window (fwiw I don’t use an alarm). I keep a little daily journal and I still have “off days,” I just have far fewer. There’s still things that I can’t stand doing, but I can at least articulate that to someone else (or keep it to myself) and make a procrastination plan.
I’ve been “successful” with and without medication, but my life is a little healthier now which was unexpected given my initial thoughts on amphetamines. Prior, I would pack my days so tightly I didn’t have the option of deviating. When things would slow down, it was apparent I needed to explore better alternatives. Over the past four years I’ve periodically thought “hey, I’m doing pretty good, I probably don’t need this stuff. However, one side effect of stimulants is that they can increase your confidence (just something to be mindful of).
It can take time to find a dosage that works for you. I started low and ramped up. For me, it took about 3 months of consistent use to determine if a dose was better or worse (except for a dosage that was too high). I think some people like to “feel it working,” but I would advise against using an immediate metric like that.
Unfortunately there’s not a common language that we can all speak in about these things. I think everyone struggles with some amount of the common symptoms for adhd, but it can be hard to quantify personal experiences (asking 20/20 vision people the right questions might lead down a path of “yeah, sometimes I do have some trouble seeing certain things”). There’s some things you’ve got to experience for yourself.
If things are going really well right now and this is a one-off lingering family issue, it may not be worth your time to run all the tests. I’m actually pretty impressed that your providers want to run tests (maybe that’s something you should listen to). However, it’s possible that taking medication can make things worse before it can make them better.
To actually answer your question, an adult adhd diagnosis helped group together some observed effects under one name. After this thing had a name I went about making improvements that helped my situation (both with and without medication). To be honest, I have to read between the lines of your description which is “my life is going great, but I have a lingering family issue and my doc thinks I have adhd because of it.” I can imagine a scenario where this adds up, but I’d keep working with your doc and I’d get a second opinion before subjecting yourself to (possibly invasive) time-consuming testing.
Rust requires more of an initial investment than Node/Java, but IMO the ROI is higher or at least more consistent. Others have noted “correctness” as a reason for using Rust, this is accurate. A few reasons I’d give for why it’s easier end more ergonomic to write correct programs in Rust are:
* exhaustive pattern matching
* Result and Option types
* builtin first class unit testing ability
* builtin first class documentation ability
The enforced exhaustive pattern matching tells you “hey you didn’t cover all cases.” Result and Option types make error handling explicit and ergonomic—the notion that each function can either succeed or fail is supported at the language level (in other languages, it’s up to you to ensure you’ve covered all cases and have thought about what “success” and “failure” mean for each function.
Testing is “built right into the language,” it’s frictionless. It’s super easy to write unit tests. You don’t have to canvass and vet a ton of testing frameworks to get going.
Documentation is easy, fun, and quick to write. So, now combine all the above with the culture of detailed documentation Rust has and now you’re really thinking through your codebase—you can use writing docs to tighten up the interfaces, seamlessly transition to writing a test that enforces some invariant, leverage “compiler driven development” to rinse and repeat this process.
The strongest reason to use Rust is that you’ve detailed the requirements for a piece of code and determine Rust is a better fit than LangX. A weaker, but still valuable reason to use Rust is to experience the discipline and idioms Rust enforces/enables and then take that experience back to your native language (I.e. exhaustive matching, which of used in certain ways can be a kind of “proof by cases” that your code does exactly what you expect, then you can easily inspect what you expect via tests).
I’d suggest reading from the foreword and working through chapters 1-3. You’ll know if you want to finish by then.
It’s a really fun read; it’s an exercise in thinking differently. If you’re looking for a new/different perspective on programming this is it.
People either love or hate this book, but it’s popular for a reason. It’s not uncommon to struggle a bit through the exercises. Some people dislike it for this reason.
The intro CS course I took waded based on this book and I never even saw this book. It wasn’t until after the course was over that I found, read, and worked through (most) of it. I took my time with it—a little each day.
It’ll definitely grant you some “aha!” moments.
I think it stands for _resource description framework_, https://en.wikipedia.org/wiki/Resource_Description_Framework
80% of people buying an f150 or similar never have been and never will be building contractors or lumberjacks
Yeah, I feel this. I used to have a big work truck, but it was for work. Everyone has a truck in my hometown (seemingly). Last week I saw a big F-250 super duty pull up and the dude that got out was in scrubs (a nurse).
Friends of mine have considered the super duty’s for towing, but now they’re interested in the lightning for the same reasons.
You will be fooled by a trick if it involves more time, money and practice than you (or any other sane onlooker) would be willing to invest.
Ah, this is so good. I think you could swap “trick” for “talent” and this would read just as true.
it takes a special kind of new hire
Yeah, it does. I’ve had a good amount of experience doing this. You need to have tact and a kind of humbleness that can be difficult to maintain (tbh, it was for me at least). In my most recent experience with this, many of the bugs were unknown. During my ramp up, I read through nearly all of the code I’d be working on and got a good sense of what needed to be done, but the code changes were the easy part. The issue that required more work IMO was navigating the social waters as a new hire.
I found that you can use being a new hire to your advantage, eg “hey I was reading through this piece of code and I had a question about XYZ.”
Sometimes I’ve felt certain bugs are, for one reason or another, difficult to discuss. One thing I’ve done in cases like this is to refactor a bit of code in a way that makes a subtle bug painfully obvious; then in review, where the reviewers were the original author and reviewer, it’s easier for them to see the bug and say “this looks weird,” to which I respond “ah, yeah, this seems like a bug, I’ll fix this.”
The rough part of this is that you can get so good at being the fixer that this becomes all you (ie. maybe you’re not working on new features, etc) which can suck. The bright side is that you can strengthen the team—-everyone gets a chance to build/rebuild context and mental models, design docs can be updated, and the teams foundation gets stronger as a result. Of course, ymmv.
As a new hire, I find it important to build trust and relationships.
I’ve developed a reading habit over the past 18 months or so. I’m always reading. Books, I enjoy reading books. Books are less distracting. I read with a pencil and annotate notes, comments, and questions in the margins (to keep me “in the pipe”).
Prior to the last couple years I’d read for pleasure, sure. I’d also read things I had to (work, school, etc). Lately I’ve been reading like I’m optimizing for throughput—to read everything I can, to cover as much ground as possible.
I also read to my daughter (still in the womb hahah). I read her children’s books (many of them stem based). I also read books on algorithms, computing, & mathematics to her.
I prioritize reading. I wake up hours before work (not as bad as it sounds given the late start engineering culture) and read. Much of what I’m reading now are texts that one must “work through” so I read and work through books. This is all rather new to me too. I’ve never read this much this quickly.
This habit started humbly, but now the train has left the station...
Oh wow. I love SICP. I still pick it up every now and then—just for the poetry.
The intro CS course I had taught from SICP (but the course was python, & scheme, & sql). I wasn’t so interested. I didn’t read or see the book until months after the course ended, but by then I was hooked.
I’ve never heard of HTDP, I can’t wait to read it.
Prioritize what you want to do/work on. Too tired at 11pm? Splice that time onto the front of your day to get a couple hours in before work. Put yourself first.
People find/make time for the things they want to do (for their hobbies). Hobbies are typically enjoyed, if you’re not enjoying things, try something else?
I have a dozen books I’m “currently reading.” Sometimes I finish three or four books while still only 20 pages into another. Reading also compounds (the more you read, the more you can read—and understand).
Maybe a good audio book for you would be Atomic Habits. Maybe you can start with doing something you enjoy for just 10-20minutes a day, consistently. Consistency compounds.
Oof yeah. I really like what’s Tesla is doing. I love my model y, but I definitely skipped out on “$10k more for FSD.” It’s just not there yet.
Do I think people need to step in and force Tesla to dial back their advertisement, eh... idk, maybe, maybe yes?
To me, it’s pretty clear what “FSD” gets you these days (spoilers: not a lot). I suspect the average Tesla customer can also read. I also think reckless drivers will be reckless regardless of law or guidelines.
I think the increasing price for “FSD” and calling it fsd is all marketing designed to get people to FOMO into it (knowing that it might take a while).
What I would like to know is, if I pay “10k for FSD Someday” will this be applied to a future Tesla I buy that will actually be capable of FSD?
Dang, burntsushi up in the house! Hey, just wanted to say I enjoy your work––I've learned a lot from it. Thank you!
Modern C, by Jens Gustedt is one of the best books on C that I have read. That said, I don't think it scratches the surface of backing up the parents claims––though if anyone know of such a text please let me know.
I love category theory. I found out about it through Haskell and as it turns out it is a branch of mathematics that I feel I’ve been missing my whole life.
Since taking an interest I’ve worked through a couple books on the topic and have listened to a ton of talks/interviews Emily Riehl has given (as well as others).
I really enjoyed her talk at lambda world, “A categorical view of computational effects” (both the content and audio/video quality of this talk are very good!)
Stoked to see this article on HN! I can’t tell if category theory is becoming more popular or if I’m just living in a algorithmically curated/tailored world.
I think there’s a saying, “when in doubt, don’t” or something like that, but seriously
As a guy I kind of get where you’re coming from. Sort of. I think being “scared” is a bit much (or can at least be portrayed as the “wrong” connotation to those that care). The way I’d phrase this is, “I want to respect people’s boundaries and certain situations can be trickier to navigate than others and I’d rather not mess it up.”
You can’t account for how someone else will perceive your actions/intentions. In fact, they could probably vary (ie what if someone is looking to be hit on on Tuesday but not Wednesday? What if a person thinks “everyone hits on them”).
For me, I try to treat everyone with respect. Maybe I want to talk more about something, but the other person doesn’t—I’m aware this could be the case so I always try to leave/create/make space for them (ie always provide a way out of the convo for the other person).
I also try to ask myself if “grabbing a coffee” over some conversation is necessary. Interesting people have a ton of people wanting to grab coffee, so maybe a group thing would be better. I also try to consider the persons time (male or female); of course I’d love to steal some time from them or make a professional connection, but you can’t always get what you want.
This reminds me of a story a professor told us in school. We were talking about all this and he explained that it’s an assumption that no fast algorithm exists, he sure couldn’t find one but added maybe the NSA could. He said there was this student in his class that was really bright, top 5. On an exam this student scored a 40 the next highest score was a 50, the top three scores were something like 70-90+. He was the student that scored a 40. He and the 50 are accomplished professors/researchers in their field—the top two scorers work for the NSA—so he says, “maybe the NSA can do it.”
I’ve had similar thoughts, but walked them back to “oh, they’d probably keep it to themselves or drop it in the NSA’s amnesty box.”
It’s clear police and their supporting systems don’t want to change.
Dumb question—what about introducing a competing agency or agencies?
How bad of an idea is a “for profit police force?”