10,000 hours. From Outliers and others as the number of hours you have to do something to be proficient at it. The common thread for most hacker coder types is that they just really really liked the "power" associated with writing code that could do anything, and so they started spending all of their time writing code doing all sorts of things.
All night debug sessions? Check. Several complete rewrites from scratch? Check. Using a language feature considered "unsafe" because it was the only way to get done what one needed? Check. Figuring out what "unsafe" meant? Check.
Once people are writing all of this code many want to know exactly how their code gets translated into what the computer does and they go off into their 'compiler' stage (some stay there for ever :-). This is where folks write their own compilers, by first writing their own lexical analyzers, then needing to parse those, and then needing to take those parse trees and generate new code with them.
There is a lot of exploration to do in 10,000 hrs. That's coding 6 hrs a day (and by that I mean coding, not checking Facebook or reading HN :-) for 5 years. There aren't a lot of short cuts. Sure there are CS programs which will show you what other people learned in their 10K hrs and help distill the concepts down for you but, like playing Piano, its not "known" until its in your finger bones.
Mentors are great for helping you get unstuck (since being stuck means you aren't coding which means you're not clocking your 10K hrs) and they can sometimes give you a heads up on road your travelling down, but mostly I think they are best for just sharing your enthusiasm and adding energy.
All night debug sessions? Check. Several complete rewrites from scratch? Check. Using a language feature considered "unsafe" because it was the only way to get done what one needed? Check. Figuring out what "unsafe" meant? Check.
Once people are writing all of this code many want to know exactly how their code gets translated into what the computer does and they go off into their 'compiler' stage (some stay there for ever :-). This is where folks write their own compilers, by first writing their own lexical analyzers, then needing to parse those, and then needing to take those parse trees and generate new code with them.
There is a lot of exploration to do in 10,000 hrs. That's coding 6 hrs a day (and by that I mean coding, not checking Facebook or reading HN :-) for 5 years. There aren't a lot of short cuts. Sure there are CS programs which will show you what other people learned in their 10K hrs and help distill the concepts down for you but, like playing Piano, its not "known" until its in your finger bones.
Mentors are great for helping you get unstuck (since being stuck means you aren't coding which means you're not clocking your 10K hrs) and they can sometimes give you a heads up on road your travelling down, but mostly I think they are best for just sharing your enthusiasm and adding energy.