Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    A

    Azeria Labs

    azeria-labs.com · Personal blog · on HN since 2017

    Maria Markstedter writes ARM assembly tutorials and exploitation guides, plus posts on how to learn and master technical skills.

    Visit blogHN submissions
    SecurityHardware & ElectronicsCareer & Work
    What HN says

    Commenters recommend her ARM assembly tutorials as a good way in, and cite her posts on mastering skills and the 30-hour method.

    Stats for nerds
    35HN people shared it
    23linked in comments
    2.3Kstory points
    Jul 2024last shared
    2017people per year2024

    Top posts on HN

    1. 1
      The Importance of Deep Work and the 30-Hour Method for Learning a New Skill
      8 people · 1.8K points · first shared 2018 · 197 comments on HN
    2. 2
      Introduction to ARM Assembly Basics
      12 people · 275 points · first shared 2017 · 44 comments on HN
    3. 3
      Learning new skills in InfoSec without getting overwhelmed
      1 person · 94 points · first shared 2019 · 15 comments on HN
    4. 4
      Heap Exploitation Part 1: Understanding the Glibc Heap Implementation
      2 people · 70 points · first shared 2019 · 2 comments on HN
    5. 5
      ARM Assembly Basics Cheatsheet
      1 person · 7 points · first shared 2017 · Discussion on HN
    6. 6
      The Process of Mastering a Skill
      5 people · 6 points · first shared 2019 · Discussion on HN
    7. 7
      Introduction to Writing ARM Shellcode
      2 people · 5 points · first shared 2017 · Discussion on HN
    8. 8
      ARM Lab VM 2.0
      1 person · 4 points · first shared 2024 · Discussion on HN
    9. 9
      Running Arm Binaries on x86 with QEMU-User
      3 people · 3 points · first shared 2020 · 1 comments on HN
    10. 10
      Understanding the glibc Heap Implementation
      1 person · 3 points · first shared 2019 · Discussion on HN

    What HN people wrote when they linked it

    • kragenJul 2024

      if you want to understand chip architectures, work through the elements of computing systems (aka nand to tetris). it walks you through implementing your own cpu, gate by gate, plus an operating system, compiler, and tetris game, in a way tested to successfully fit inside of a single-semester undergraduate class. their hardware designs are pretty weird (their hdl looks nothing like any hdl you can actually synthesize hardware from, their descriptions of how gates work are oversimplified, and their instruction set architecture is pretty similar to the eclipse that kidder was writing about but completely unlike any current design) but that isn't really important

      after completing the work in that book and raising investment capital for your company, you can honestly call yourself a fullstack engineer

      — arm —

      the best architecture to write assembly for is the arm—the original one, not thumb, which is a bit of a pain—and arm is also only slightly more complex to build than the fake-ass architecture in nand2tetris, and quite a bit faster. if you already know any assembly language, including the nand2tetris one, the best introduction to arm might not actually be any current tutorial but rather the vlsi arm3 datasheet from 01990 https://www.chiark.greenend.org.uk/~theom/riscos/docs/ARM3-datasheet_ARM-Family-Data-Manual-VLSI.pdf which has a summary of the instruction set on p.1-7 (9/56) and a fully complete description on pp.3-12 to 3-43 (19/56 to 34/56)

      as you probably know,…

    • Buttons840Oct 2018

      I use "the 30 hour method"[0].

      I think carefully about what is worth working on, then write it at the top of a sticky note. A few words will do, something like "Create X MVP" for example. Also write down the start date. As you put in time, write it down in pen on the sticky note. Once you've written down a time don't adjust it later, don't worry about it, the goal isn't to have a 100% accurate time log.

      Now that it's written down, you can't get out of it. The only way out is through. Work on it for 30 hours of dedicated work. It's long enough that you can get something done, but not so long that you'll waste your life if you choose the wrong thing.

      I used to work on too many different projects, and I think it was because I would switch projects once I hit a small difficulty. It wasn't a conscious thing; your subconscious can come up with plenty of valid reasons you should switch to something that seems easier. That 30 hour timebox will force you to overcome some difficulties, no more running away to another project to avoid doing something hard. But, if you choose something that really is too hard, try for 30 hours, it's long enough, but not too long.

      At the end, record what you worked on during that time. You might say "from October 1st to October 15th, I worked on X MVP, I struggled with Y, I learned Z". Think carefully about what is worth working on and choose the next thing. Maybe spend another 30 hours on the same thing. Maybe go back to something you were working…

    • joaogui1Jan 2020

      Machine Learning:

      * https://www.youtube.com/watch?v=UzxYlbK2c7E: Andrew Ng's
      machine Learning course, the recommended entry point
      by most people

      * https://mlcourse.ai/ : More kaggle focused, but also more
      modern and has interesting projects

      Do both courses simultaneously, take good notes, write useful flashcards, and above all do all the exercises and projects

      Deep Learning

      * https://www.fast.ai/ - Very hands-on, begin with "
      Practical Deep Learning for Coders" and then "Advanced
      Deep Learning for coders"

      * https://www.coursera.org/specializations/deep-learning :
      More bottom-up approach, helps to understand the theory
      better

      Do those two courses in parallel (you can try 2 weeks of coursera followed by one of fastai in the beginning, and then just alternate between them), take notes, write good flashcards and above all do the exercises and projects.

      After that you will be done with the beginning, your next step will depend on what area interested you the most, and getting way too many resources right now can be extremely confusing, so I would recommend doing a follow-up post after you worked through the above resources.
      Also as non-ML stuff I recommend Scott Young's Ultralearning and Azeria's self improvement posts (https://azeria-labs.com/the-importance-of-deep-work-the-30-hour-method-for-learning-a-new-skill/)

    • tushartyagiJun 2018

      As an extension to your comment, here's a decent advice which is based on the principle of DeepWork.

      https://azeria-labs.com/the-importance-of-deep-work-the-30-hour-method-for-learning-a-new-skill/

      So basically, instead of just going through different subjects try to work on 1 subject/topic for 30 hours (across multiple days, maybe take a break between days) and then check if you want to go further on the subject. Apparently, 30 hours is a good enough time frame to realise if you have an interest on the subject of your choosing.

      I'm struggling to actually start with something interesting, and after reading your comment I remembered the process outlined in the article. Thanks!!

    • big_spammerMay 2017

      What's with the branch instructions "Branch with Link" and "Branch with Exchange"?

      What do they do? I haven't seen anything like this before.

      I see some explanation in https://azeria-labs.com/arm-conditional-execution-and-branching-part-6/ but the reason why branching must work this way isn't explained.

      edit: I see "Branch with Exchange" switches the processor from ARM to Thumb in http://www.embedded.com/electronics-blogs/beginner-s-corner/4024632/Introduction-to-ARM-thumb. But I don't see why switching processor modes must happen on branch instructions.

    • galoisgirlDec 2020

      May I recommend Maria Markstedter? https://azeria-labs.com/the-process-of-mastering-a-skill/

      90% of her content is about ARM exploitation (which I'm personally not interested in). However, she has a couple of posts on how she learns and works, that are believable to me thanks to the rest of her content.

      She's also not selling coaching, she's selling her technical skills.

    Related

    Arm Community Blogcommunity.arm.com147 people

    An update on GNU performance

    Arm Community Blog
    Company · last shared 2025
    MCU on Eclipsemcuoneclipse.com26 people

    How to make sure no dynamic memory is used

    MCU on Eclipse
    Personal · last shared 2026
    Interrupt (Memfault)interrupt.memfault.com51 people

    From zero to main(): How to write a bootloader from scratch

    Interrupt (Memfault)
    Company · last shared 2026
    SIGPLAN Blogblog.sigplan.org61 people

    My First Fifteen Compilers

    SIGPLAN Blog
    Publication · last shared 2026
    Surmasurma.dev67 people

    Ditherpunk: The article I wish I had about monochrome image dithering

    Surma
    Personal · last shared 2025
    Not a Monad Tutorialnotamonadtutorial.com40 people

    Weld: Accelerating numpy, scikit and pandas as much as 100x with Rust and LLVM

    Not a Monad Tutorial
    Publication · last shared 2023
    Nanonets Blognanonets.com27 people

    Building a license plate reader from scratch with deep learning

    Nanonets Blog
    Company · last shared 2026
    Figma Blogfigma.com608 people

    How to build a plugin system on the web and also sleep well at night

    Figma Blog
    Company · last shared 2026