TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Show HN: Low-Level Academy, an explorable systems programming course

419 pointsby nbaksalyarover 4 years ago

16 comments

nbaksalyarover 4 years ago
Hey HN,<p>For the last couple of months, I have been working on a new interactive course to teach systems programming. Basically, it can be described as &quot;Khan Academy for low-level coding&quot;. It is built with Rust and it uses WebAssembly and JavaScript to visualize what happens when you run your code. This idea was inspired by Bret Victor&#x27;s &quot;Learnable Programming&quot;, and you can read more about it in the blog [0]. The code is also publicly available [1].<p>Any feedback is welcome.<p>Thank you!<p>[0]: <a href="https:&#x2F;&#x2F;lowlvl.org&#x2F;blog&#x2F;explorable-programming" rel="nofollow">https:&#x2F;&#x2F;lowlvl.org&#x2F;blog&#x2F;explorable-programming</a><p>[1]: <a href="https:&#x2F;&#x2F;github.com&#x2F;lowlevelacademy" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;lowlevelacademy</a>
评论 #24776386 未加载
评论 #24773742 未加载
评论 #24776999 未加载
评论 #24764620 未加载
评论 #24766635 未加载
sai_cover 4 years ago
<p><pre><code> &quot;I have always been passionate and curious about systems programming. At a first glance, this area of knowledge might seem very complicated and even impenetrable for a lot of people. Thankfully, with Rust, the tide has started to turn: the Rust community has demonstrated that sometimes the perceived complexity is rooted in the lack of support, tools, and educational content.&quot; </code></pre> I have a question for the Rust community, especially those doing low level development now. As someone who does embedded and systems programming in C for about twenty years (technically i&#x27;m not 40 yet ;-)), were the cited problems (lack of documentation, support and tools) really problems that kept from doing low level work? If not, what was it then?<p>I&#x27;m genuinely curious, because when I started it was more things like hardware bugs (yes they do exist) or the general theory of things (like writing a performant scheduler or file system) that seemed hard to me.
olah_1over 4 years ago
This reminds me of Programming from the Ground Up[1]. Although this seems to focus much more on networking.<p>I wonder if someone could write a Programming from the Ground Up style book and use WASM instead of x86 Assembly.<p>[1]: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=11702025" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=11702025</a>
评论 #24766641 未加载
gavinrayover 4 years ago
This looks fantastic, I would be willing to pay money for this honestly. Might sponsor development.
评论 #24772671 未加载
kaelandover 4 years ago
As someone who’s interested in low-level programming, I’d really like to say thank you for creating this.<p>Are there ways that others can support this work?
评论 #24766288 未加载
评论 #24766815 未加载
mjayhnover 4 years ago
This is neat.<p>I really want to make some sort of sre&#x2F;distsys&#x2F;ops training ground to go through a mixture of systems design and operational skills (troubleshooting, observability, firedrills) but the interfaces and integrations of the moocs I&#x27;ve tried are so ill-fitting for the task and the good options (which I can&#x27;t think of right now, there&#x27;s one that&#x27;ll integrate into aws&#x2F;gcp and give you &quot;playgrounds&quot;) are too expensive for a lone dev- they&#x27;re full on corporate training grounds (are they any good? never used one).<p>There are &quot;k8s&#x2F;cluster playgrounds&quot; and what not but they&#x27;re so not operationally-forward in most cases, just extremely basic and not really relative to a day in the life of a cluster&#x2F;systems operator at all.<p>I like how you&#x27;ve set this up, I actually want to go through the lessons, great work.
Aaronstotleover 4 years ago
This is great! I&#x27;m not much of a programmer yet, but I can feel the underlying urge grow stronger by the day. Getting my copy of Unix Network Programming today in the mail, will definitely be checking this course out.
Dangerangerover 4 years ago
Thanks for making this.<p>It looks like your code is dual-licensed between MIT and Apache. How do you indicate which code is under which license? Also, just a heads up, it looks like you need to update the Apache template with current dates and your name.[0]<p>I appreciate you making this material open-source. Do you plan to add a CONTRIBUTING.md to instruct those who want to help to understand how to start?<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;LowLevelAcademy&#x2F;LowLevelAcademy&#x2F;blob&#x2F;master&#x2F;LICENSE-APACHE" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;LowLevelAcademy&#x2F;LowLevelAcademy&#x2F;blob&#x2F;mast...</a>
评论 #24768326 未加载
Serious_Cheeseover 4 years ago
Hi Nikita, this is a fantastic idea. I&#x27;ve have been working with low level programming for a long time and would love to contribute new lessons. How can I do that?
评论 #24766168 未加载
charlyslover 4 years ago
I am a bit late to the party, but as it happens some top universities have made some of their systems programming courses publicly available, and if you want to get into systems programming, these free options are much deeper, comprehensive, and come with extensive coding assignments that include tests and have been crafted by talented TAs over many years, to help keep you on the straight and narrow:<p>[1] Operating Systems Engineering: MIT 6.828 (in C and a bit of x86 assembly, 2011 has videos for all lectures, bad image but outstanding content)<p>[2] Distributed Systems Engineering: MIT 6.824 (2020, in golang)<p>[3, 4, 5] Database Engineering: MIT 6.830 from OCW (2010, Java), complement with Pavlo&#x27;s youtube videos and Stonebraker TA notes.<p>[6] Security Engineering: MIT 6.858 (2020, web, python, C, assembly, etc)<p>[7, 8] Computer Networks: Stanford cs144, get videos from youtube, assignments from their website (in C&#x2F; C++)<p>[9] Compilers: Stanford, the website has all videos and assignments (in Java or C++, RISC target)<p>[10] Software Performance Engineering: MIT 6.172 (2018 in OCW, in C&#x2F;C++ and a bit of x86 assembly)<p>[1] <a href="https:&#x2F;&#x2F;pdos.csail.mit.edu&#x2F;6.828&#x2F;2011&#x2F;schedule.html" rel="nofollow">https:&#x2F;&#x2F;pdos.csail.mit.edu&#x2F;6.828&#x2F;2011&#x2F;schedule.html</a><p>[2] <a href="https:&#x2F;&#x2F;pdos.csail.mit.edu&#x2F;6.824&#x2F;schedule.html" rel="nofollow">https:&#x2F;&#x2F;pdos.csail.mit.edu&#x2F;6.824&#x2F;schedule.html</a><p>[3] <a href="https:&#x2F;&#x2F;ocw.mit.edu&#x2F;courses&#x2F;electrical-engineering-and-computer-science&#x2F;6-830-database-systems-fall-2010&#x2F;" rel="nofollow">https:&#x2F;&#x2F;ocw.mit.edu&#x2F;courses&#x2F;electrical-engineering-and-compu...</a><p>[4] <a href="http:&#x2F;&#x2F;marcua.net&#x2F;notes&#x2F;6.830&#x2F;" rel="nofollow">http:&#x2F;&#x2F;marcua.net&#x2F;notes&#x2F;6.830&#x2F;</a><p>[5] <a href="https:&#x2F;&#x2F;m.youtube.com&#x2F;playlist?list=PLSE8ODhjZXja3hgmuwhf89qboV1kOxMx7" rel="nofollow">https:&#x2F;&#x2F;m.youtube.com&#x2F;playlist?list=PLSE8ODhjZXja3hgmuwhf89q...</a><p>[6] <a href="https:&#x2F;&#x2F;css.csail.mit.edu&#x2F;6.858&#x2F;2020&#x2F;" rel="nofollow">https:&#x2F;&#x2F;css.csail.mit.edu&#x2F;6.858&#x2F;2020&#x2F;</a><p>[7] <a href="https:&#x2F;&#x2F;cs144.github.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;cs144.github.io&#x2F;</a><p>[8] <a href="https:&#x2F;&#x2F;m.youtube.com&#x2F;playlist?list=PLvFG2xYBrYAQCyz4Wx3NPoYJOFjvU7g2Z" rel="nofollow">https:&#x2F;&#x2F;m.youtube.com&#x2F;playlist?list=PLvFG2xYBrYAQCyz4Wx3NPoY...</a><p>[9] <a href="http:&#x2F;&#x2F;openclassroom.stanford.edu&#x2F;MainFolder&#x2F;CoursePage.php?course=Compilers" rel="nofollow">http:&#x2F;&#x2F;openclassroom.stanford.edu&#x2F;MainFolder&#x2F;CoursePage.php?...</a><p>[10] <a href="https:&#x2F;&#x2F;ocw.mit.edu&#x2F;courses&#x2F;electrical-engineering-and-computer-science&#x2F;6-172-performance-engineering-of-software-systems-fall-2018&#x2F;" rel="nofollow">https:&#x2F;&#x2F;ocw.mit.edu&#x2F;courses&#x2F;electrical-engineering-and-compu...</a><p>No hip new languages or platforms, but if you are new to this I think it&#x27;s better to focus first on battle tested concepts and approaches, from a curriculum that was fine tuned by top universities and professors (many of which made significant contributions to the field) over the years, then the bleeding edge stuff will be a walk in the park, because you will have learned what the tradeoffs are and where innovations are coming from.<p>As for prereqs, if you are a confident programmer, you can dive right in (6.004 is good but not essential, 6.033 is a bit of a slog on your own with all that paper reading and that brick of a book, and no programming, it is good but I found it just too hard to stay interested, skipped that part, but the videos in youtube are an excellent intro to systems design and concepts, I recommend you watch them first). But better if you know your algorithms first (do the excellent MIT 6.006), specially for 6.172 (the mantra here is to get your algos right before attempting any other kind of optimization), and maybe the database (hashes, trees and dynamic programming come in handy) and compiler courses (graph coloring for register allocation, for instance).<p>But, whatever you do, start with 6.828 operating systems, this is considered the MIT intro course to systems programming, and they explicitly avoid all but the most basic algorithms, in order not to distract from the core system concepts. More sophisticated approaches are introduced in the second half, once you&#x27;ve got the basics under your belt.
评论 #24787315 未加载
ryeguy_24over 4 years ago
If you are trying to find future customers, I might me one. I&#x27;m immensely interested in moving lower and lower down the abstraction layer for education purposes. I&#x27;d definitely be interested in taking these courses.
评论 #24777073 未加载
Aurum197over 4 years ago
Anything that makes the opaque accessible is a worthy undertaking. Kudos!
durgaswaroopover 4 years ago
My company&#x27;s firewall blocks lowlvl.org as a malicious site! Go figure!<p>¯\_(ツ)_&#x2F;¯
harshalaxmanover 4 years ago
This is really cool, I look forward to future lessons!
a6hover 4 years ago
This is so awesome. Thank you!
person_of_colorover 4 years ago
Any ex-FAANG startup hiring for systems (low level) programmers, remote?