3 ms·
- If you're in it just for the money, bounce now. - Be curious. - Push your comfort-zone, often. Do hard things: write a C compiler, design a pipelined/microc
by throwaway3627 7y ago
- If you're in it just for the money, bounce now.
- Be curious.
- Push your comfort-zone, often. Do hard things: write a C compiler, design a pipelined/microcoded/branch-predicting MICMAC processor, write a kernel module, write a 3D graphics engine, and so on.
- Master the fundamental concepts, data structures and algorithms.
- Dig deep: computer architecture/organization, assembly, Linux from Scratch, source code of OSes/tools, etc. And, there's more out there than just FOSS; some very useful tools aren't new, OSS or popular. Get proficient at debugging tools.
- Don't get stuck, emotional or religious about any one domain.
- Master one or two domains.
- Be ambivalent, healthily suspicious of and open to "new" flavors of tech fashions.
- Practicing and reading books is all well-and-good, but trying to make something is the best teacher.
- Throwing away and rewriting a few times helps.
- Write for clarity, not cleverness.
- Work on something that matters.
- Avoid job security where you can by documenting and writing obvious code, because it will hold you back more than help.
- Don't write useless, giant comments.
- Don't write heaps of uncommented code.
- Literate programming can be awesome for tricky/complicated desired code behavior.
- Don't reinvent the wheel if you don't have to.
- Premature optimization is a faux pas.
- Small changes.
- The only good code is small pieces of low complexity, tested code; fragile, big function, "black boxes" are evil.
- Use mostly standard conventions.
- Have fun, break things and put them back together again :)