amh-code
cs-topics
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
amh-code
-
Ask HN: Recommendations for high quality, free CS books online
I recently stumbled on https://en.algorithmica.org/hpc/ which I absolutely loved. It's really well written, comprehensible and concise. It felt like a pleasure to read which I find really rare with CS textbooks and I feel like I've come out of it understanding how computers work a bit better
Does anyone have any similar CS books they'd recommend? Ideally they'd be:
- Algorithms for Modern Hardware
-
Ask HN: How can I learn about performance optimization?
I admire Daniel Lemire’s work on SIMD implementations. [Lemire]
[Lemire] https://lemire.me/en/#publications
I learn a lot by reading my compiler’s and profiler’s documentation.
For Rust, the Rust Performance Book by Nicholas Nethercote et al. [Nethercote] seems like a nice place to start after reading the Cargo and rustc books.
[Nethercote] https://nnethercote.github.io/perf-book/
Algorithms for Modern Hardware by Sergey Slotin [Slotin] is a dense and approachable overview.
[Slotin] https://en.algorithmica.org/hpc/
Quantitative understanding of the underlying implementations and computer architecture has been invaluable for me. Computer architecture: a quantitative approach by John L. Hennessy and David A. Patterson [H&P] and Computer organization and design: the hardware/software interface by Patterson and Hennessy [P&H ARM, P&H RISC] are two introductory books I like the best. There are three editions of the second book: the ARM, MIPS and RISC-V editions.
[H&P] https://www.google.com/books/edition/_/cM8mDwAAQBAJ
- Algorithms for Modern Hardware – Algorithmica
-
Ask HN: Programming Courses for Experienced Coders?
Hello, recently I've enjoyed Casey Muratori's Performance-Aware Programming course[0]. You could read Algorithms for Modern Hardware[1] to learn similar set of stuff though. Casey's course is aimed at bringing beginners all the way to a nearly-industry-leading understanding of performance issues while the book assumes a bit more knowledge, but I think a lot of people have trouble getting into this stuff using a book if they don't have related experience.
I've also found Hacker's Delight Second Edition[2] to be a useful reference, and I really wish that I would get around to reading What Every Programmer Should Know About Memory[3] in full, because I end up reading a bunch of other things[4] to learn stuff that's surely in there.
[0]: https://www.computerenhance.com/p/welcome-to-the-performance...
[1]: https://en.algorithmica.org/hpc/
[2]: https://github.com/lancetw/ebook-1/blob/80eccb7f59bf102586ba...
[3]: https://people.freebsd.org/~lstewart/articles/cpumemory.pdf
[4]: https://danluu.com/3c-conflict/
-
SIMD Everywhere Optimization from ARM Neon to RISC-V Vector Extensions
https://en.algorithmica.org/hpc/ and http://0x80.pl/ have some stuff about this, but the latter can be dense. I've had fun getting my hands dirty with some problems at https://highload.fun/ but there's not much direction unless you go to the telegram chat and ask people questions.
-
Fastest Branchless Binary Search
Other fast binary searches https://github.com/sslotin/amh-code/tree/main/binsearch
cs-topics
-
I am going to become a software engineer - and I'd like to be a good one
But a software developer is not a software engineer, and I'll have to work on the side to make up for the holes in the developer cursus. I turned to reddit to look for recommandations, and I'm quite enthusiast with the TeachYourselfCS learning track - which I started along the Java lessons.
-
HN how do I learn to code?
HtDP [0], CS50x [1], and whatever strikes your interest from teachyourselfcs [2], in that order.
Also highly recommend the book for nand2Tetris after CS50.
[0] https://htdp.org/2023-8-14/Book/index.html
[1] https://www.edx.org/learn/computer-science/harvard-universit...
[2] https://teachyourselfcs.com/
-
Ask HN: Programming Courses for Experienced Coders?
This is a really good fundamentals resource: https://teachyourselfcs.com/ They list books and videos.
-
Difference between learning programming and learning a language?
Study computer science, either through college or via teachyourselfcs.com.
-
Considering coding bootcamp
In the current market it's better to just put some resources together and learn from platforms like OSSU or Odin Project or FreeCodeCamp to really dip your toes in. The bootcamp era was a byproduct of interest rates at the time and shoveling in as many bodies as they could into the field. You can literally build a curicullum yourself for 6 months and see how you like it while working retail or whatever else. Or for the more technical side: teachyourselfcs.com gives you some ideas if you wanna start actual cs concepts.
-
What should I look at for making a systems programming language/compiled programming language?
https://teachyourselfcs.com/ also has a bunch of great resources for CS fundamentals.
-
Where can I learn C?
Knowledge in a programming language is not complete without a full CS education. I recently found out this site: https://teachyourselfcs.com/
- Ka daryt?
- Sou Dev Junior e preciso da sua orientação pois não fiz faculdade de programação.
-
What’s a technology that every backend engineer should know?
what's your opinion on teachyourselfcs.com for the fundamentals?
What are some alternatives?
sb_lower_bound - Fastest Branchless Binary Search
missing-semester - The Missing Semester of Your CS Education 📚
branchless-binary-search - Binary search implementation that avoids branch instructions
computer-science - :mortar_board: Path to a free self-taught education in Computer Science!
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
developer-roadmap - Interactive roadmaps, guides and other educational content to help developers grow in their careers.
tigerbeetle - The distributed financial transactions database designed for mission critical safety and performance.
p1xt-guides - Programming curricula
ThinkingInSimd - An essay comparing performance implications of ignoring AVX acceleration
open-source-cs - Video discussing this curriculum:
std-simd - std::experimental::simd for GCC [ISO/IEC TS 19570:2018]
CS50x-2021 - 🎓 HarvardX: CS50 Introduction to Computer Science (CS50x)