Or does one just happen into these jobs as an apprentice and spend years learning on the job?
Or does one just happen into these jobs as an apprentice and spend years learning on the job?
In the specific case of 802.11 (different from 'Wi-Fi' which is a marketing term from the Wi-Fi consortium), you'll also need to be familiar with the IEEE 802.11 specifications. You can do this by putting aside a block of time to read parts of the actual specs [1], supplemented by the O'Reilly 802.11 books by Matthew Gast [2] which I found to be really helpful during my time working with various 802.11 modules.
TL;DR is - I learnt on the job and as a hobby, and I came to it having some idea of kernels and networking already.
Long ago, Adrian got taken under the wing of a well-know FreeBSD developer.
As most other things it comes to passion. If you literally write C in your dreams and spend every waking hour hacking OS kernels you'll get to be very good.
do it enough times, and you too will write blog posts like these.