¿Es posible ser un experto en PHP, Ruby y Python al mismo tiempo?

El dominio nunca es imposible. Pero creo que es muy poco probable. Cuando alguien me dice “experto”, entiendo que la persona es un experto en el nivel del código fuente. Quiero decir, si eres un “experto” en PHP, conoces el código fuente de C. Sabes cómo envolver bibliotecas nativas en extensiones. Puedes modificar dentro de mod_php. Sabe exactamente cómo se asigna y administra la memoria. Eso lleva tiempo.

Si te refieres a un nivel no tan bajo, entonces no es difícil dominar PHP en absoluto. A nivel de aplicación, hay poco que aprender al respecto. No tiene que hacer programación basada en hilos. No tiene que hacer E / S la mayor parte del tiempo (sin archivos, sin pila TCP). Y el caso de uso es muy simple: recibe una solicitud, un montón de variables de parámetros, realiza una búsqueda y escritura estándar de la base de datos y genera un montón de HTML.

Con Python y Ruby, que son lenguajes de uso general, si te refieres a un verdadero “experto”, espero que el tipo pueda escribir extensiones C. Poder modificar el código fuente de C. Hacer depuración de grano fino. E incluso a un nivel más alto que eso, solo hay miles de bibliotecas para dominar, que cambian todo el tiempo. Es mucho más difícil convertirse en un maestro en Python / Ruby que PHP.

Es igualmente difícil convertirse en un maestro en .NET de Java.

Observe que la clave aquí es que estamos hablando explícitamente de “Expertos”, de “Dominio”. Esa es una propuesta de nada aquí. Ahora, ¿puedes ser fluido con todos esos al mismo tiempo? Si totalmente. Lo que significa que puede tomar un poco más de tiempo para resolver un problema en un idioma sobre el otro, pero aún así puede encontrar la solución lo suficientemente rápido (“suficiente”, que es la palabra clave aquí).

Sí, pero necesitará desarrollar proyectos activamente en los tres idiomas todo el tiempo para mantener sus conocimientos actualizados.

Creo que es un buen conocimiento de todos ellos porque amplía sus posibilidades de trabajo, pero también estoy de acuerdo en que ver cosas más allá de esos tres será mejor para su habilidad en general.

Me resulta difícil imaginar una buena razón para usar los tres a diario. Dentro de una empresa, tiene mucho sentido estandarizar alrededor de una plataforma para el desarrollo; si está haciendo un trabajo paralelo (y, francamente, si es así, probablemente sea una señal de que necesita tomar mejores decisiones de vida), debería estar trabajando en su plataforma preferida.

En segundo lugar, ¿qué es el “dominio”? Para mí, el dominio implicaría la capacidad de escribir un gran código en un idioma; según ese estándar, el “dominio” de PHP es simplemente imposible, porque no es posible escribir un buen código PHP, debido a las notorias deficiencias del lenguaje.

Entonces, si eliminamos PHP de la imagen (como deberíamos, en todas las circunstancias posibles), ¿puedes tener dominio simultáneo de Python y Ruby? Probablemente, pero sugeriría que sería muy difícil hacerlo, especialmente si tiene algún interés en su vida que no sea la codificación. El dominio de un idioma implica conocerlo bien, pero también implica mantener ese conocimiento y mantenerlo en la memoria activa. Mantener su habilidad con un lenguaje requiere usarlo con frecuencia, y de nuevo, es extraño imaginar una circunstancia en la que obtendría experiencia con los entresijos de Python y Ruby tan continuamente que realmente sería un “maestro” ” en ambos.

Finalmente, ¿por qué te importaría lograr un estado evasivo, básicamente sin sentido como ese? Si eres capaz de usar Python y Ruby de manera competente, eso es suficiente para la mayoría del trabajo de desarrollo web. Conocer todos los entresijos de un idioma en particular es un compromiso mucho mayor, y la recompensa por conocer, por ejemplo, las complejidades del intérprete de referencia Ruby es bastante baja. Quiero decir, ¿cuánto tiempo es útil saber que, por ejemplo, en Ruby, el manejo de cadenas está optimizado para cadenas de 23 caracteres o menos de longitud?

La capacidad de escribir código de manera competente, código que se puede revisar y mantener fácilmente, es algo que se transfiere de un idioma a otro casi sin problemas, y eso es lo que realmente importa. El conocimiento específico de dominio que podría tener sobre hechos esotéricos sobre Python o Ruby tiene mucha menos aplicabilidad a problemas de codificación de la vida real.