I have decided to build expertise in Python. I love the language and want to build a deep understanding of it. I have multiple reasons for wanting to go this route with the primary one being that I don't like context switching tools for work and personal projects. I also feel that context switching in between multiple languages restricts my understanding to them to a very surface level.<p>Ideally it won't be one language, it would be Python + C (or Mojo). But you get the gist! I also understand the consequence of this approach, in that I am restricting myself to a very limited number of jobs. What are your thoughts about this approach?
> I also feel that context switching in between multiple languages restricts my understanding to them to a very surface level<p>My experience is the opposite, I've always written mostly JS now TS, but I have ventured into many different languages (Objective C, Java, C#, Python, Php, Go, Rescript, probably a few more), and even though I might not know much about most of them anymore I've learned so much about programming in general, and I also know JS/TS very deeply and a bunch of other languages sufficiently to build projects.<p>A lot of concepts and patterns are language agnostic, and seeing the same things in a different flavors really improved my skills and ability to build projects.<p>But it's totally legit to just use Python. Python is an excellent choice for many kinds of projects, so if it does everything you need, go for it!<p>What matters most to improving your expertise is building a lot of things, and keep challenging yourself. The tools don't matter that much imo, just use what makes sense.<p>Also just have the confidence that you can learn something new. As your knowledge grows it will also transfer to other languages. Yes, you have a bit of a hurtle to get used to the new syntax etc, but you'll pick it up pretty quickly as you have a reference (e.g. "How do I do a dict in [new language]? is a lot easier than learning what a dict is in the first place.).<p>Anyway, I wouldn't stress about it either way, try it, if it doesn't work try something else, and just keep building!
hmmm ...<p>imho. on the one hand: tools are tools, and there is a good reason for why there are a plethora of tools available in this (it) world.<p>concentrating too much on one tool only reminds me of the "old saying": "if your only tool is a hammer, all problems look like nails".<p>so personally i like to be T-shaped in my knowledge and build up "deeper" tool-related knowledge on demand in case it matters.<p>on the other hand: software-development is a meta-understanding game, writing actual code is only a small part of it.<p>in a nutshell: understand the problem at hand, the additional value of the project for a customer, what are the use-cases for the customer, various patterns which are useful for solving a specific problem, academic approaches vs. real-world solution etc.etc.<p>getting to know different approaches to programming - languages and their surrounding tool-ecosystem - serves as a source for different viewpoints on problems -> and increases the level of insight of a software-developer.<p>idk ... just as a quick example "imperative" - procedural, oo - vs. "functional" etc.etc. comes to mind if we talk of language concepts.<p>cheers
t.