Hey everyone,
I've been diving into programming through resources like teachyourselfCS and I've come to realize that my main interest isn't just in learning algorithms or writing programs. What I actually care about is gaining domain knowledge that I can apply in practical scenarios. For instance, a person who doesn't know how to effectively use English won't be able to craft stories like JK Rowling does, despite having the same language at their disposal. Similarly, in programming, I think about how entrepreneurs like Larry Page succeeded by becoming experts in their specific domains, such as search technology.
With that in mind, I'm curious about your journeys: How much did you know when you started building your own domain expertise? How did you move from just learning programming to actually solving real problems? For example, I might know that my car has an issue that can be fixed, but I'm not sure how. On the flip side, my friend who's tinkered with cars knows how to troubleshoot. It seems the answer is to learn what you need to solve particular issues.
Also, I have some wild project ideas, like creating an operating system inspired by the movie Her or a trading platform for AI. But where do I even start? My experience so far has been limited to using Replit and LearnCPP, and I haven't really tackled any significant problems yet. I'm looking for guidance on how others have built their domain knowledge in programming. Thanks!
5 Answers
Regarding your question about building a trading platform for AIs, just a heads-up: the concept can be oversimplified by those looking to make a quick buck. It's not just about coding; it's crucial to understand the entire domain inside and out! Before diving in, I'd recommend researching more about trading, finance, and the tech involved to ensure you're not falling for unrealistic promises of quick success.
Absolutely! Contextual knowledge can often save you from costly mistakes. Stick to the learning process.
You can build domain knowledge simply by having interests in specific areas. If you’re into cars, for instance, you'd naturally pick up essential terminology and concepts. Some of my understanding came from working with experts in different fields or taking specialized courses that enhanced my knowledge in ways I needed for projects at hand.
I found my domain knowledge grew because I needed to solve specific problems. As I encountered new challenges during my IT career, I’d research and learn what I needed to know. It's about tackling unknowns and expanding your knowledge through necessity. You don't always learn the same things multiple times; you adapt based on the hurdles you face.
I remember my own shift towards practical programming happened when I started focusing more on projects instead of theory. Once I began applying what I learned to real-world problems, everything clicked for me. It's a personal journey; everyone has different milestones, but look for a community of experienced software engineers online. They can give you insights specific to your interests, whether that's banking, game development, or something else. Just remember, the approach to learning varies widely depending on the domain you're interested in!
To get started on building an OS or any complex project, you need to dive deep into that specific area. Read articles, watch videos, or even join relevant forums. If you're clueless about how an operating system or trading works, coding will be a struggle. Explore existing systems, try using various operating systems, and maybe even start engaging in trading simulations to familiarize yourself.

That said, every bit of knowledge you gain in unfamiliar domains will prepare you to tackle these challenges. Just approach it with a serious mindset and make sure you're grounded in the fundamentals.