4 ms·
Dive deeper. A huge amount of programmers bounce out, throw up their hands when something isnt working as expected. Go look at the souce of the libraries you ar
by rektide 5y ago
Dive deeper. A huge amount of programmers bounce out, throw up their hands when something isnt working as expected. Go look at the souce of the libraries you are using. Learn tools like strace or dtrace. For god sake get good at your debugger.
In programming, everything is about mindfulness, perspective, awareness. The willingness & ability to go deeper, to dig for truth is the ultimate superpower. The docs dont help, your mentors dont help: Seymore Papert was correct. You have to mine your own truth, develop your own internal models for what is going on, how things are happening, and you need endless boundless ability to dive further in, to chase real genuine truth yourself. The ability to develop your own mental model of how you think things work, and your ability to probe & validate & make inquisitions into each little step: that scientific minded exploration makes all the magic happen.
Also, get good at promises & async. How things happen over time has gotten more complex in modernity. You need to understand & be able to internalize/visualize the timeline of execution, in a way we didnt used to demand.of programmers. Learn the tools, think about causality.
- sarupbanskota 5y agoDeep dive projects — https://codecrafters.io https://codecrafters.io
- igotsideas 5y agoThis is cool. Thanks for posting.
- ltbarcly3 5y agoCame to say basically this. Whenever something doesn't work the way you believe it should have, whenever you see something that does not make sense, that is your understanding at odds with reality. Something doesn't work the way you think it does! Every time you don't get to the bottom of why it doesn't work the way you think it should work you are continuing to be a little worse than you might have been. Accumulating moments like this over time adds up to the difference between being a great programmer and being complete crap. It's the difference between someone who overhears two people talking about a problem and says "Did you check that the locale is not set to iso8859?" and blows their minds that you could debug the problem they have spent 2 days working on in 5 seconds and the person who tells people "oh, yea, sometimes our app just crashes, it's something about text encoding but if you just open the file and save it as utf8 then you can manually fix the broken characters after you import it".
- deleted 5y ago[deleted]
- viraptor 5y agoSimilar answer here. Some activities I got most new skills from: reverse engineering feature phone firmware (no previous experience with re, tiny bit of assembly), contributing to all an OS which included an AOT C# compiler (no previous experience), writing a low latency telephony proxy (no previous experience), etc. Someone learned how to do those things, so you can too. The information is out there, and if not, you can go one layer deeper and figure out how/why things work.
- Dracophoenix 5y agoWhere did you learn to RE feature phones? Did you need special equipment (e.g. JTAG)?
- viraptor 5y agoSo the phone was SL45i and at the time firmware was accessible over USB and not signed. (Or maybe the loader bypassed it?) Either way, I started with IDA, got the basic ideas from a forum where people actually knew what they're doing and learned to understand disassembly and hand-patch the code as I got deeper into it. No special equipment, just 3 months of a summer break that... disappeared. I started from patching a jump here and there, then understanding how the menus worked and changing them a little bit, then writing some trivial "games".
- omegalulw 5y ago> to chase real genuine truth yourself. The ability to develop your own mental model of how you think things work, and your ability to probe & validate & make inquisitions into each little step: that scientific minded exploration makes all the magic happen. Wonderfully put; this cannot be overstated! And I think you can apply this to most of math, physics, electric engineering, etc too.