Hacker Newsnew | past | comments | ask | show | jobs | submit | jasmaa's commentslogin

This and computer networks were my two favorite courses from university. My first language was Python, so the connection between programming languages and the machine had always felt like magic. This was the one course that helped dispel some of that thinking for me.

Each module builds on top of the next and has you add increasingly complex features to a toy language. The course I remember was flipped classroom, so it's also entirely possible to do online. On top of that, Jose's video lectures are very well-made and engaging. I would recommend anyone with some free time and even a bit of interest to throw it at this. It's a fun and eye-opening experience if you were like me and knew nothing about compilers before.


Those are my videos!


Thank you Jose. Are these videos available for non-students?

Edit: https://www.youtube.com/channel/UCfZ7HFoaeSA7zPoGelA3aiw


Looks like you found them, and yes. :D

They weren't made with the thought of being generally consumed, but I do plan on making videos for the wider CS/programming community in the future.


Please do, I would absolutely work through this during a vacation!


I'm enjoying those!

Honestly, I had a bit of impostor syndrome kick when you mentioned that the 330 course was required, being self taught and all... but I know OCaml so ¯\_(ツ)_/¯

Currently going through the Crafting Interpreters book and this seems like an excellent supplement for my journey into the world of language hacking.

Thanks a lot for posting those, they are very clear and encouraging!


Apologies for causing a spike in your impostor syndrome!

330 is 'required' in the sense that you're not allowed to take 430 at UMD without having taken 330.

Perhaps a better way of phrasing it would have been to list the things we assume students have retained from 330. One of which is OCaml :D

I hope these videos provide some value to you! Always feel free to reach out if there's anything you think I could do better.


Take a microprocessor class where you build a 8088/6800 board and program it in assembler. Then there is no more magic behind the computer and it becomes a pretty strait forward machine.


I love this idea. Do you have any specific courses you can point to?


If you don't mind working with software emulation, nand2tetris takes you from logic gates up to a CPU, assembler, compiler. I'm working through the book: https://www.nand2tetris.org/book. It doesn't focus on an existing architecture like 6502 but focuses on simplicity instead to make the ideas really clear.

If you'd like to work with real hardware, +1 to the Ben Eater suggestion. He sells kits for all the components for an 6502 machine so you don't get bogged down in sourcing them. Great videos too.

(Quick edit, not 8086, showing my inexperience with hardware!)


Ben Eater has a video series called "'Hello, world' from scratch on a 6502" that you might find interesting: https://www.youtube.com/watch?v=LnzuMJLZRdU&list=PLowKtXNTBy...


a good computer organization/design or intro computer architecture course will have the same effect.

the classic text is computer organization and design by patterson and hennessy.


I've got H&P on the bookshelf. It's the 'get down and dirty with a breadboard an x86 chip and maybe a soldering iron' aspect I am surfing for. 'Like Ben Eater but for x86', preferably as a course, is what I'm aiming at/curious about.


i think some logic design courses are like this. you're given a fpga dev board (that has a bunch of peripherals and ports on it) and you code up a cpu and a few memory/io controllers and then in order to do something you have to assemble some machine code and run it.

my understanding is that it is a substantial undertaking, especially if you're interfacing with hardware peripherals.

alternatively you could write a mips (subset) emulator and assembler in python and probably get the same understanding in a fraction of the time.


Petzold's Code book is like this, without the hardware. But could certainly be combined with it.


FWIW my echo failed smoke test when I tried with ngrok using the IP I got from dig. Strange thing is that the server still received the test payloads over ngrok, and my echo passes when hosted on EC2. Not sure if it's something with ngrok or if there's some other incompatibility (I'm a windows user :/)


Curious what the s in the front is for? Looks like regex but I've never seen this syntax specifically before.

Also: https://en.m.wikipedia.org/wiki/Muphry%27s_law


  $ man sed


    $ man ed   # :)


https://jasonmaa.com

A Jekyll site (that briefly became a React SPA at one point) with some blog posts, mostly reflections on my projects. I've been trying to expand into writing about other things.

https://jasmaabox.github.io

A digital graveyard for projects I abandoned. I still wanted to write in Markdown but Jekyll felt like too much for one page, so I ended up writing a small static site generator for it using Jinja.


Late but I saw this in the morning and was gonna try my hand at compiling it but looks like someone already figured it out (congrats!).

I have a bunch of old Flash games from back in HS. Been watching Ruffle for a while as well since I've been wanting to make a page to preserve them but AS3 functionality just isn't there yet...


I want to move beyond only messing with Docker Compose and learn k8s.

Also want to learn how WASM works.


This is slick. Why put the search query in the path instead of a get param though? You can't search anything with a "/".


I really like this idea. I remember working through the Nand2Tetris course [0] which essentially has the same idea of letting you build a computer from scratch. The course's chip fabrication sections had a limited number of simple solutions, so designing chips really did feel more akin to solving puzzles than writing code.

One thing I'm curious about is how level progression works. Do I get standard implementations for the circuits I've previously made? Or do I have to carry my implementations with me for the rest of the game, bugs included?

[0]: https://www.nand2tetris.org/


Love to see where this goes! Immediately reminded me of ractives from The Diamond Age.


Thank you! We’re committed and excited. You’re the second person to reference The Diamond Age today! :)


Location: US (Maryland)

Remote: OK

Willing to relocate: Yes

Technologies: Python, Java, JavaScript, SQL, C, Go, React, AWS, Docker, Firebase, Express, Spring Boot, Django, Elasticsearch, MongoDB, Neo4j

Résumé/CV: https://jasmaa.github.io/docs/Jason%20Maa%20-%20Resume.pdf

Email: jasonmaa3955 [at] gmail [dot] com

Hi, my name is Jason. I will be graduating in May and am looking for exciting opportunities. I'm a fast learner with a lot of enthusiasm for writing software.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: