30k Hours (2019)
github.com
github.com
So counting how many hours you’ve been working in a field is the exact mistake that most people make. Gladwell’s book has reinforced that confusion.
I did 44K hours in 15 years working for around 15 different companies in 6 different countries and open source work on the side for nights and weekends before I became CTO of a small bootstrapped startup.
In other words, these people didn't spend their 30k+ hours sitting around writing CRUD apps and collecting an easy paycheck. Rather, quality hours really move the needle.
What changed my perspective was getting into meditation, and embracing the idea of awareness and deliberation in every moment, trying to do well every single thing I take up, and not just in programming, but also in cooking, eating, sleeping, walking, speaking, thinking, seeing, peeing, pooping, etc.
There is always room for improvement, space and time to do it "just right", what is in Russian called "sovestno", meaning "without shame and in good faith". The closest approximation I can think of in English is "consciensiously".
Once I started thinking this way, my perception of banality and repetitiveness fell away. No task is banal, no task is a repetition, but each one is unique, and must be perceived as such. Once you see it that way, you'll begin to find room for improvement everywhere.
I think it has helped me a great deal in becoming better at programming.
(See also: Bruce Lee, 10000 kicks quote.)
Also somehow this reminds me of a go term "honte". https://senseis.xmp.net/?Honte
Interestingly it seems to mean shame in French.
I think they took the practicing part literally. In my eyes, any work related to programming is programming. I'm sure Donald Knuth has spent over 30,000 hours working on "The Art of Computer Programming".
Like you, I enjoy programming a lot, and I consider myself lucky that I get to spend most of my time on it without these distractions. It's rare to be in a field where you can do what you love without being forced to take on the other stuff over time.
Seriously I think it's more about you overestimating the actual time you clocked programming than about Rob Pike.
I'm 43, working mostly as an IC since 1997, really doubt I spent more than 15k hours properly programming rather than fussing with customers, estimating, documenting, testing, screwing around with infra or reading.
2) I mean, if you are doing it "right" ;P, testing is also coding, as is "screwing around with infrastructure", and while I admit reading isn't always about programming... but shouldn't it be? I can recommend some blogs and wikis and mailing lists ;P. Like, the practice of playing tennis involves more than just hitting the ball: at minimum, you also--at least sometimes--have to spend some time retrieving the ball once hit.
For example, the total combined hours spent programming the wakatime.com website over the last 7 years was 4,035 hours.
10,000 hours assumes an 8 hour workday. For coding time like WakaTime measures (actual hands on keyboard time), the goal should be 2,000 hours.
Writing the code is the easy part.
That's the key. To find the time thinking just fill in the gaps between the time spent coding. For ex, the GIF in this post https://wakatime.com/blog/27-fill-the-gaps-in-your-coding-ac...
For the cold emails, nowadays I'd make it better, but back then roughly the below. This was one of the more long winded ones.
Hi **,
My name is Breck Yunits and I'm a 29 year old software engineer in San Francisco. I have long been a fan and beneficiary of your work, particularly of ***. **.
In hopes of providing better guidance for aspiring programmers, I am collecting quotes from accomplished programmers to the following question: how many hours have you spent practicing programming?
If you had the time to provide a back of the envelope estimate, I would greatly appreciate it! I will post the results to the public domain. If not, no problem, and thanks for reading.
Best regards, Breck Yunits
My guess is somewhere like 10 lines/hour if they're lucky.
I don't really know Lisp, but how do you get a Lisp to run that expression? I tried it in Emacs Lisp, Racket, Common Lisp.
It runs just fine in Python, and returns: 29760
(* 48 (+ (* 4 10) (* 2 30) (* 5 20) (* 6 20) (* 6 25) (* 15 10) ))
Appears to be Python?
Here's it converted to Common Lisp:
(defun sum (years hours-per-week weeks-per-year)
(* (* years hours-per-week) weeks-per-year))How do you practice programming and how can you tell you're improving?
When can you tell you're 'good' at programming?
Might not be a perfect measure, but it's a very noticeable one that in my experience has been going down sharply as I've gained experience.
Going with that analogy, I'd say you know when it gets easier, when you begin to see forms and patterns, and can use them to tackle new challenges.
Some other thoughts: * When you are solving problems and seeing how to improve your code through testing and refactoring.
* When you can start reading other people's code and understanding the gist of what is going on at a high level without getting bogged down in the details.
* When you start feeling very comfortable with your tools.
* When you feel the satisfaction of solving problems.
* When you help others learn something.
Finally, dance like no one is watching. Enjoy yourself. If it's not bringing you joy, then you are unlikely to progress further. Either way, enjoy the process.
We don't really have standard competitions (no, HackerRank and Kaggle don't quite count) but certainly (much like creators) coding in the open, collaborating, and soliciting feedback on the things you've code is probably the most certain way.
One thing that I've always admired about 30k hours high performing folks is their sheer level of output; because they have mastered things, producing new things becomes something almost effortless, and so their challenge becomes keeping psychologically grounded in that high performing zone (avoiding the "yips"); collaborating with others to break new ground; and putting their talents to their most effective use.
I'm working on blockchain tech now and built my own scalable quantum-resistant multi-chain blockchain ecosystem with a DEX from scratch including the cryptographic primitives based on a variant of Lamport OTS with Merkle Signature Scheme. Did it all (including all UIs, modules, etc...) in less than 1 year part time, mostly on my own but with some help towards the end.
Before that, I wrote a distributed messaging system which auto-scales on Kubernetes. I also wrote an off-chain payment system which auto-scales on Kubernetes including the database persistence layer which self-shards across docker volumes and can process an unlimited number of transactions.
The highest salary I was ever offered was $110K per year. Thankfully, I make my own money now so I don't have to deal with crony capitalists. In spite of all this and constantly trying to reach out to VCs and investors, it took a miracle for me to make it to this point...