Non necessariamente so che c'è qualcosa di sbagliato in questo, ma non lo consiglierei per il gusto della tua carriera. Ci sono un paio di problemi a cui riesco a pensare:
- Python è caldo ora, ma lo sarà tra 5-10 anni? Non so voi, ma non desidero diventare l'equivalente futuro di un programmatore di mainframe COBOL.
- Python non sarà abbastanza veloce per ogni compito. Puoi fare molto con esso, ma ci sono sono attività là fuori che Python da solo non è abbastanza veloce per. In questi casi, avrai bisogno di conoscere C (se c'è una parte specifica del codice che sta per rallentare) o una lingua JVM (se hai bisogno che l'intera faccenda sia veloce o che riguardi la sicurezza).
I'm not OK with learning new programming languages if they don't teach me new concepts of programming and problem solving
Personalmente non ho visto molti vantaggi nel provare il cibo greco finché non l'ho fatto. Una volta provato, mi dispiacque di averlo rimandato per così tanto tempo. Certo, gli alimenti non sono linguaggi di programmazione, ma l'analogia in realtà non è poi così lontana. Spesso, l'unico modo per vedere i vantaggi di imparare una nuova lingua è provarlo.
Paul Graham lo ha definito il "paradosso di Blub" :
Programmers get very attached to their favorite languages, and I don't want to hurt anyone's feelings, so to explain this point I'm going to use a hypothetical language called Blub. Blub falls right in the middle of the abstractness continuum. It is not the most powerful language, but it is more powerful than Cobol or machine language.
And in fact, our hypothetical Blub programmer wouldn't use either of them. Of course he wouldn't program in machine language. That's what compilers are for. And as for Cobol, he doesn't know how anyone can get anything done with it. It doesn't even have x (Blub feature of your choice).
As long as our hypothetical Blub programmer is looking down the power continuum, he knows he's looking down. Languages less powerful than Blub are obviously less powerful, because they're missing some feature he's used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub.
When we switch to the point of view of a programmer using any of the languages higher up the power continuum, however, we find that he in turn looks down upon Blub. How can you get anything done in Blub? It doesn't even have y.
By induction, the only programmers in a position to see all the differences in power between the various languages are those who understand the most powerful one. (This is probably what Eric Raymond meant about Lisp making you a better programmer.) You can't trust the opinions of the others, because of the Blub paradox: they're satisfied with whatever language they happen to use, because it dictates the way they think about programs.
Se ne hai l'opportunità, ti consiglio di leggere l'intero articolo.
E infine, posso vedere il tuo punto in termini di voler specializzarsi. Ma non penso che sia quello che stai cercando di fare. Per definizione, fare "quasi tutti i compiti di programmazione" non è quello che considererei la specializzazione. Sembra che tu stia usando Python per generalizzare. Se stai cercando di specializzarti, ti consiglio di entrare in un campo specifico di programmazione come Machine Learning o Data Warehousing o Integrazione. Ma un linguaggio di programmazione non è di per sé una specializzazione.