9 ms·
I highly recommend checking out his YouTube channel [0]. He's an _incredibly_ thoughtful person and provides good lessons in staying focused and keeping scope d
by dpbriggs 5y ago
I highly recommend checking out his YouTube channel [0]. He's an _incredibly_ thoughtful person and provides good lessons in staying focused and keeping scope down.
I consider him a mentor and his approach to software is something I really resonate with. He has a keen focus on software quality but understands he can't make everything perfect in one sitting. This approach helped me get away from decision paralysis in my projects and at work.
This isn't even mentioning how much I've learned about software in general from his videos. Whether it's debugging kernel bootstrap assembly, porting doom, writing a live feedback GUI editor, implementing syscalls, to messing around with the dynamic loader. He's really got a video for it all.
And he tackles each video with such clarity and careful consideration. I really can't speak higher of the man.
[0] https://www.youtube.com/c/AndreasKling/videos https://www.youtube.com/c/AndreasKling/videos
- brodo 5y agoI don‘t know much about OS development or C++ but I still watch his videos because of his thoughts on life as a software engineer.
- thn-gap 5y agoAny specific video you would recommend that highlights his thoughts on life as a software engineer?
- dpbriggs 5y agoNot the person you're replying too, but I think you might find this video [0] interesting. He's describing his motivations and worries around making a web browser for SerenityOS. A quote from that video (3:25) really stuck with me. He describes how he saw people joking online that the web-standards are so insane that it's impossible to build a new web-browser: "The way I respond to that type of energy is to just really want show people that this is silly, not too complicated... mythologizing something that humans have done and humans will do again" He clarified with a reflection on the hubris of it - new browsers can be made; not impossible; just takes an incredible amount of work taken a step at a time [1]. I really respect that. Not exactly his thoughts on life _as_ a software engineer, but contains some thoughts on software engineering. [0] https://youtu.be/-YlVex4nbfw https://youtu.be/-YlVex4nbfw [1] http://serenityos.org/ http://serenityos.org/
- smcnally 5y agoThese are high praises and more than enough impetus to watch Andreas’ videos and check out SerenityOS. Thank you, all. From tfa: > With no drugs or other vices to pass the time, the days seemed impossibly long. Is honest, resonant, and bodes well, but it’ll be work to convince myself this [0] is more like ol’ skool X than ~WinNT circa 2000 — it’s not making me serene atm. [0] https://awesomekling.github.io/assets/writing-this-post.png https://awesomekling.github.io/assets/writing-this-post.png
- LeonM 5y ago+1 on this! The game porting series is what got me into watching his videos. Normally, I can't focus longer than 5 minutes on programming videos, but Andreas's are fantastic to watch! Porting Diablo was just inspiring to see, missing a syscall? No worries, we'll just implement it!
- e12e 5y agoNice tip, I started with something short - writing a screenshot utility: https://youtu.be/3BF-vUts3ws https://youtu.be/3BF-vUts3ws Ed: i really enjoyed the video, but I feel it could have been even better (and shorter) if he used a proper debugger for the second part. But I don't know if that is available in the os. The more I use a debugger, the more I realize I should use a debugger, and the earlier I should use a debugger. Advice/directions to start early with a debugger might be the best part of Zed Shaws "Learn C the hard way". Eg: https://github.com/zedshaw/learn-c-the-hard-way-lectures/blob/master/ex4/lecture.md https://github.com/zedshaw/learn-c-the-hard-way-lectures/blo... (not a full featured chapter, but note that this is fairly early - exercise 4). On a related note, it appears Shaw doesn't use the/any debugger at all in the ruby book, which is frankly quite crazy - ruby has great debuggers and repl. But that's a digression. For a blog post that illustrate how one might do "debug driven" (or "debug first) development, see: https://nikhilism.com/post/2021/experiencing-smalltalk/ https://nikhilism.com/post/2021/experiencing-smalltalk/ (Smalltalk and lisp does this very well - you can't AFAIK quite go that far with c++, but it's what all systems should aspire to, as a baseline (70s debug experience) ).
- tokumei 5y agoAndreas doesn’t prefer using debuggers. He’s actually touched on the subject a few times in his videos.
- hedora 5y agoDebuggers are a great learning tool, but I’ve found they’re useless when diagnosing production issues. At best, you’re using C/C++ and after the crash, you get a minidump from a customer/server. Eventually, I learned to write code that was so obviously correct and had such good error messages that I haven’t needed to use a debugger in a long time. In fact, I don’t even know how to invoke a debugger for most languages I know. Edit: The other good trick is to write your code so that it keeps enough state on the heap to extract useful information from core dumps. For instance, you can keep global references to lists of state that helps track issues down, and make sure they work as expected in -O3 builds. I have definitely played that game in the past.
- 5y ago
- 29athrowaway 5y agoI am watching this video now. https://www.youtube.com/watch?v=KehSJ_fdTxU https://www.youtube.com/watch?v=KehSJ_fdTxU It has a tour of features for SerenityOS... They have built an impressive amount of stuff at an incredibly high pace.
- pull_my_finger 5y agoTotally tangential, but I just checked out one of his "Cat Talks", looks like he's basically casting from his bed. BUT the sound was so well recorded I had to actually check to make sure the sound was coming from my headphones and not the computer or someone in the room even. Wow, really would love to read about his recording set up that he can do that from his bed.