Previously on
posts tagged with 'angst' (mostly friendslocked): our hero became depressed, sought help, and is now (mostly) feeling better. Now read on...
John Walker, in his excellent book
The Hacker's Diet, distinguishes two approaches to tackling problems, which he calls the Manager's approach and the Engineer's approach. Management is about
(
Read more... )
Comments 10
Another approach to remedying your perceived lack of assembly language experience would be to spend some time writing some assembly code, on the assumption that you can’t get good at it without practising. That’s harder than the equivalent approach for a higher-level language, of course, because it’s hard to write anything large (and therefore useful) in assembly.
Perhaps try reimplementing some bits of the standard C library, or something, with scaffolding written in C? Maybe start with strchr(), then move on to a naïve strstr(), then a Knuth-Morris-Pratt (or similar) algorithm. Or instead of increasing the difficulty of the algorithm being implemented, try focussing on performance improvements (or, um, power-use decreases). If desired, compare your code with the output of existing compilers for equivalent C-written routines, at various optimisation levels.
Given the utter insanity of the x86 instruction set architecture, it might also make sense to start with ARM (or PowerPC or Sparc or what-have-you) before tackling x86. I ( ... )
Reply
Which would have the pleasant side-effect of getting me more familiar with the standard C library. I like it.
Reply
(The comment has been removed)
That's an excellent idea. It's been a while since I've done any electronics, though: how much hardware hacking would I have to do to get to a usable dev board?
Something I've considered doing for a long time now is implementing a dialect of Forth from bare metal.
That would be fun :-) Probably a bit advanced for me right now, though - possibly something to consider after trying Aaron's idea of implementing some of the standard C library.
I'm almost embarrassed to say that the greatest obstacle to me doing this is finding an aesthetically pleasing machine to do it on!
Raspberry Pi?
Reply
Reply
That said: abstractions leak, and every so often when you're working on something high-level you'll get bitten by some low-level issue. I'm thinking of this job as an opportunity to get to grips with said low-level issues; even if I don't do any systems programming again, I reckon the increased understanding will probably save my bacon at some point in the future.
Reply
I'm good at C# because I know how the stuff it's built on works. Most of the people around me don't think about that stuff, whereas I at least have an understanding of what's going on underneath.
Reply
Reply
Reply
Also bear in mind that you're way, way up the competence ladder already. Not to say don't try to get better still, but try not to worry about it so much. It's just work. After all, if you did genuinely suck at your job, you wouldn't be allowed to keep it.
Reply
Leave a comment