¿Cuántos idiomas necesita saber para convertirse en un buen programador?

La programación tiene que ver con la resolución de problemas . Una vez que haya resuelto un problema, codifica la solución (o algoritmo) en el lenguaje de programación que elija. El lenguaje es completamente incidental.

Un lenguaje de programación es solo una herramienta de codificación. Cualquier tonto puede codificar un algoritmo. Pero resolver problemas difíciles requiere una gran habilidad y conocimiento.

Entonces, para responder a su pregunta, solo necesita saber un idioma para convertirse en un buen programador, porque necesita al menos un idioma para codificar sus soluciones.

Dicho esto, si un programador quiere ser versátil y trabajar en muchos dominios de aplicación diferentes, es posible que necesite saber más de un idioma. Pero todavía están usando las mismas habilidades para resolver problemas.

Por ejemplo:

  • programación web – JavaScript, PHP
  • programación de sistemas (kernels del SO, controladores de dispositivos) – lenguaje ensamblador, C
  • aprendizaje automático, ciencia de datos – Python, R
  • programación móvil – Java / Kotlin, Objective-C / Swift
  • programación de juegos – C ++, C #

Todas estas áreas requieren las mismas habilidades para resolver problemas. Son independientes del idioma. (Por supuesto, también requieren conocimientos específicos de dominio).

Ser bueno en la programación no es una cuestión de cuánto sabes, sino qué tan bien sabes y puedes aplicarlos. Es recomendable comenzar con un idioma y dominarlo antes de pasar a otro. Sin embargo, si elige aprender por su cuenta, aquí hay algunos consejos

Encuentre un mentor : el mundo del software es grande y hay mucho que puede encontrar en Internet al respecto, para ser sincero, hay demasiado y es difícil saber por dónde empezar. Encuentre a alguien que haya estado en la industria por un tiempo y que se mantenga actualizado. Defina un plan con esta persona sobre lo que debe estudiar

Revise su código : por lo general, hay muchas formas de lograr algo y muchas formas muy malas. Si bien Internet está lleno de excelentes recursos, está lejos de ser perfecto. Asegúrese de pedirle a su mentor que revise su trabajo de vez en cuando, para que no esté aprendiendo de la manera incorrecta.

Practique en algo significativo : seguir los tutoriales tiende a ser molesto, una vez que se sienta lo suficientemente cómodo con una tecnología, trate de llegar a una idea de proyecto personal donde tenga que usar lo que esté aprendiendo. Eso te ayudará mucho a mantenerte motivado y estar orgulloso de ti mismo. Recuerde que PUEDE HACERLO, es cuestión de tiempo y perseverancia, pero el camino puede ser largo. Para ser un gran ingeniero de software, necesitarás 3 habilidades:

1. Tener un conocimiento de la pila completa : las aplicaciones de software son sistemas complicados compuestos de muchas tecnologías y partes: frontend, back-end, base de datos, servidor web, red. Por ejemplo: cambiar una consulta en la interfaz afectará a la base de datos si el desarrollador no tiene idea de cómo funcionan las bases de datos, la consulta puede hacer que el sitio caiga. Algoritmo y estructura de datos Programación de alto nivel (lenguajes de programación orientados a objetos) Administración del sistema y un poco de redes. Con esto, un ingeniero de software podrá navegar casi cualquier sistema / aplicación y podrá tomar decisiones de ingeniería bien pensadas.

2. Ser capaz de aprender por sí mismo : los conceptos básicos del software rara vez cambian, pero las herramientas que utiliza la industria cambian constantemente. La industria del software es probablemente una de las industrias que cambia más rápido, es por eso que constantemente necesita actualizar la aplicación de su teléfono inteligente y que sus sitios web favoritos brinden constantemente una mejor experiencia y características. En este contexto, los ingenieros de software necesitan constantemente evaluar y quizás aprender nuevas herramientas que los ayudarán a hacer que su aplicación sea más rápida, mejor y más confiable. Los nuevos lenguajes de programación y bibliotecas están constantemente llegando y uno no puede volver a la universidad cada vez que surge una nueva tecnología. Los mejores ingenieros de software son los que pueden mantenerse al día con las últimas tendencias. Por eso es fundamental que pueda aprender solo.

3. Habilidades blandas : a menos que esté dispuesto a trabajar solo, podría ser la habilidad más importante. Hay un buen libro sobre esto, “Cómo ganar amigos e influir en las personas” porque este libro es muy importante para aprender a ser un ser humano exitoso. No te puedes imaginar cómo ser amable con las personas y ayudarlas a hacer su trabajo llevar lejos Recuerda que para una empresa, si haces bien tu trabajo, eres un 1X. Pero digamos que también está ayudando a 10 personas a hacer bien su trabajo, entonces usted es un 11X y ese es el tipo de personas que necesitan las empresas exitosas. Si puede obtener estas 3 cosas, será un programador increíble y todos querrán Contratarte. Esto es lo que hacemos en la escuela Holberton. http: //www.holbertonschool.com ¡Buena suerte en tu camino para convertirte en un gran programador!

Ninguno en absoluto.

Lo que necesita saber es:

  • paradigmas de programación (por ejemplo, de procedimiento, OOP, AOP, funcional, etc.)
  • patrones de diseño (los más utilizados encontrará en el libro GOF)
  • estructuras de datos y algoritmos.

Conocer un lenguaje de programación es como saber palabras, pero sin comprender el significado detrás de ellas y cómo usarlas.

Después de comprender las cosas marcadas con viñetas, podrá crear arquitecturas potentes con rendimientos eficientes y fácil mantenimiento sin utilizar ningún lenguaje de programación.
Solo diagramas, pseudocódigo y lenguaje humano ordinario.

Entonces, conocer la sintaxis de un lenguaje de programación sin el otro conocimiento, no es equivalente a ser un programador / desarrollador / ingeniero.

En la práctica, para usar todo el conocimiento que ha adquirido, se verá obligado a conocer diferentes lenguajes de programación, porque no hay uno bueno en todo. Incluso si pudiera hacer todo, no significa que sea eficiente.

En conclusión, no necesita conocer ningún lenguaje de programación, pero en la práctica eventualmente conocerá algunos de ellos.

Con toda seriedad, debe definir lo que quiere decir con “bueno”:
¿Top 5% de la población en la tierra? Solo aprende un idioma.
¿Top 5% de programadores? Debe haber visto muchos problemas para que cuando se enfrente a uno nuevo, lo relacione con otro problema que haya resuelto previamente, es decir, necesite experiencia. Es involuntariamente frívolo decir que puedes lograr eso con “un” idioma, ya que no todos los problemas se pueden abordar adecuadamente en un idioma determinado para que se resuelva.

Creo que estas categorías son necesarias para que uno se encuentre en el 5% superior de la población de programación. Una sabia selección de idiomas podría minimizar la cantidad de idiomas que uno necesita aprender si desea satisfacer todas las categorías.

0) Aprende UNIX. Necesitas las herramientas que vienen con él.
1) Necesitarás un lenguaje para resolver problemas orientados a objetos. El conocimiento superior a la media de Java y otro lenguaje como C / C ++ podría satisfacer este problema. Ambos se ajustan lo suficientemente bien como se define para que sea OOP. Java es necesario para el mercado y, por supuesto, JVM y C / C ++ lo ayudarán a acercarse al hardware, en caso de que tenga un problema cercano al hardware.
2) Necesitará un lenguaje de acceso para fines de secuencias de comandos. Aprender Python es lo suficientemente bueno. Otros están disponibles si los necesita. Si está administrando su sistema y desea automatizar, un lenguaje de shell podría no ser una mala idea. Si eso implica el procesamiento de texto, ‘sed’ y ‘awk’ son más cómodos que python, si se combinan con su lenguaje de shell, pero pueden ser costosos (¡en términos de oportunidad!).
3) Necesitará conocimientos específicos de dominio a medida que avanza. Que sea computación simbólica, ciencia de datos, visión por computadora o programación del lado del servidor o móviles o dispositivos integrados o lo que sea que sean. Podría significar aprender un marco para Python o C ++, o aprender un ensamblador, o aprender Mathematica o incluso FORTRAN. Ciertamente no tienes que saberlo todo, pero debes saber algo para que sea más fácil aprender otra área específica del dominio. Para la mayoría de las personas, la mayoría de los temas son simplemente esotéricos, pero a la larga será más fácil.
4) Necesita un lenguaje para la programación funcional. Si bien puede ser tentador elegir algo como Clojure ya que está en JVM, comenzar con Haskell es mejor ya que obliga a todo el proceso.

Las cuatro categorías anteriores deberían darle suficientes problemas para trabajar para que su experiencia se forme de una manera que lo clasifique en el 5% superior. Sin embargo, cualquier valor inferior a 5 debería ser lo suficientemente competitivo para que usted no pueda ingresar, basándose únicamente en la experiencia … o preguntando cuántos idiomas aprender.

¿Cuántos idiomas hay que saber para convertirse en un buen autor o un buen poeta?

¿Importa ese número más o la forma particular en que se usa ese idioma?

¿El vocabulario máximo de ese lenguaje que te ayuda a usar palabras perfectas para escribir oraciones eficientes te convertirá en un buen autor o escribir oraciones poco eficientes y poco largas usando palabras comunes simples?

¿Es mejor el dominio absoluto de un solo idioma o un conocimiento mediocre de pocos?

Las respuestas a las preguntas anteriores serán diferentes según lo que considere bueno y lo que quiera hacer.

Si soy el director general de una pequeña startup, preferiría que mis programadores conozcan más idiomas que el dominio de un solo idioma. Deben ser flexibles para trabajar con diferentes idiomas dependiendo de las necesidades de la empresa.

Si soy el director general / gerente de producto de una gran empresa como google / facebook, preferiría que mis programadores dominen un solo idioma y que puedan escribir un código muy eficiente, impecable y fácil de mantener.

Si quiere ser un programador competitivo, entonces necesita saber cómo usar un solo idioma rápidamente. Necesitaría mucha práctica para aprender diferentes algoritmos más que el lenguaje en sí.

Si usted es un programador independiente que trabaja por cuenta propia, entonces querrá conocer múltiples idiomas y técnicas para utilizar diferentes marcos, complementos y fragmentos a su favor.

Si usted es el director ejecutivo / gerente de producto de una empresa, entonces querrá tener una comprensión básica de todos los idiomas que utilizan sus programadores.

No se trata del número, se trata de dos factores
primero, si su experiencia básica en programación es sólida, puede pasar por cualquier lenguaje de programación.
ahora la pregunta ¿por cuál debo pasar?
si eres principiante en el mundo de la programación, te recomiendo que comiences con C, luego C ++ y luego aprendas solo el lenguaje que ayude a tu propósito.
por qué c y c ++, son un lenguaje de programación fuerte que agudizará su lógica de programación y lo preparará para cualquier cosa
NOTA: ¡no se trata del número SIEMPRE!
buena suerte:)

Depende del segmento en el que esté trabajando. Para mi trabajo integrado, básicamente solo necesito dos (2): C y Ensamblador (s). Para un trabajo de nivel superior, dos (2) más deberían ser suficientes, en mi humilde opinión.