- #1
Steve Frost
- 6
- 2
For example, Andrew Wiles worked on Fermat's Last Theorem for several years straight, or take Don Knuth, who has been writing The Art of Computer Programming (TAOCP) for an incredible 60 years. And here I am, constantly drifting from one subject to another, unable to stick with one thing for more than two weeks.
For background, I am not a scientist but a software engineer. I am 23 years old and finished my bachelor's degree in Applied Computer Science a year ago, though I have been programming since I was around 11. Currently, I am unemployed but hold a share in a startup, so I don't really have to worry about paying bills or going to a job for at least a year or two. I have a lot of free time. The problem is that I don't know what to do professionally. In my roughly 13 years of "experience," I have tried many things, including low-level programming (C, Verilog, x86, OS development), computer graphics programming (software rendering, OpenGL, linear algebra), web programming (JS, TS, React, HTML, CSS), mobile programming (Flutter), backend programming (Rust, Python, NodeJS, Deno), and much more.
But I'm not an expert in anything! I know a lot, and I know how to code—my brain, after many years, is wired for it. But coding by itself is not enough. To create useful, non-trivial, brand-new things, you also need domain expertise. And domain expertise is what I lack.
For example, I am interested in programming language design (especially type theory). I have a vision for a language, but having a "vision" in your mind is one thing, and actually making it work is another. There is a lot of work involved, and I lack the prerequisites (like rigorous logic, type theory, computation theory, etc.).
However, I'm not only interested in programming language construction. I think it would be cool to develop my own 2D rendering library that's as fast as Skia and as small as STB libraries. But again, there's a ton of work and prerequisites (like vector graphics, composition, state management, etc.) that I lack.
One might say, "Okay, sit down for 2,000 hours and you'll get somewhere." I don't have a problem staring at a screen for 10 hours a day (I'm already doing that). The problem, as I see it, is:
1. I get distracted by all the shiny things. For example, I might watch a video on YouTube about Quantum Field Theory, and then for two days straight, my YouTube history goes like "Quantum Field Theory Visual Explanation," "What is Spin?", "Quantum Loop Gravity Explained", ..., "What is 'Nothing'?", "Why Is There Anything at All?".
2. I am interested in so many things that I'm paralyzed and can't decide what to pursue. It's like I'm in constant doubt: "If I sit down and work on programming language design, is it the right choice? Should I be working on the 2D rendering library? Or maybe I should create my own game?" I have so many choices that I can't choose anything at all.
3. It may even be that I am not just paralyzed by the need to choose, but that I also don't want to choose because choosing X means giving up Y (since we all have limited time on Earth). And I don't want to give up on anything.
4. It takes a lot of courage to invest so much time into a project when you don't know if it will eventually pay off or if you'll succeed.
5. I also sometimes doubt whether I am even capable of creating something non-trivial and good enough for others to use.
So, I am asking for your advice. Perhaps you have faced something similar in your life, or there are papers, blog posts, or books on this topic that you can recommend. Thank you all for your time and responses.
For background, I am not a scientist but a software engineer. I am 23 years old and finished my bachelor's degree in Applied Computer Science a year ago, though I have been programming since I was around 11. Currently, I am unemployed but hold a share in a startup, so I don't really have to worry about paying bills or going to a job for at least a year or two. I have a lot of free time. The problem is that I don't know what to do professionally. In my roughly 13 years of "experience," I have tried many things, including low-level programming (C, Verilog, x86, OS development), computer graphics programming (software rendering, OpenGL, linear algebra), web programming (JS, TS, React, HTML, CSS), mobile programming (Flutter), backend programming (Rust, Python, NodeJS, Deno), and much more.
But I'm not an expert in anything! I know a lot, and I know how to code—my brain, after many years, is wired for it. But coding by itself is not enough. To create useful, non-trivial, brand-new things, you also need domain expertise. And domain expertise is what I lack.
For example, I am interested in programming language design (especially type theory). I have a vision for a language, but having a "vision" in your mind is one thing, and actually making it work is another. There is a lot of work involved, and I lack the prerequisites (like rigorous logic, type theory, computation theory, etc.).
However, I'm not only interested in programming language construction. I think it would be cool to develop my own 2D rendering library that's as fast as Skia and as small as STB libraries. But again, there's a ton of work and prerequisites (like vector graphics, composition, state management, etc.) that I lack.
One might say, "Okay, sit down for 2,000 hours and you'll get somewhere." I don't have a problem staring at a screen for 10 hours a day (I'm already doing that). The problem, as I see it, is:
1. I get distracted by all the shiny things. For example, I might watch a video on YouTube about Quantum Field Theory, and then for two days straight, my YouTube history goes like "Quantum Field Theory Visual Explanation," "What is Spin?", "Quantum Loop Gravity Explained", ..., "What is 'Nothing'?", "Why Is There Anything at All?".
2. I am interested in so many things that I'm paralyzed and can't decide what to pursue. It's like I'm in constant doubt: "If I sit down and work on programming language design, is it the right choice? Should I be working on the 2D rendering library? Or maybe I should create my own game?" I have so many choices that I can't choose anything at all.
3. It may even be that I am not just paralyzed by the need to choose, but that I also don't want to choose because choosing X means giving up Y (since we all have limited time on Earth). And I don't want to give up on anything.
4. It takes a lot of courage to invest so much time into a project when you don't know if it will eventually pay off or if you'll succeed.
5. I also sometimes doubt whether I am even capable of creating something non-trivial and good enough for others to use.
So, I am asking for your advice. Perhaps you have faced something similar in your life, or there are papers, blog posts, or books on this topic that you can recommend. Thank you all for your time and responses.