¡En todos mis trabajos donde me contrataron!
Usemos una analogía: si puedes hablar puedes hablar en cualquier idioma. Lo mismo con la informática: si sabe programar , puede hacerlo en cualquier idioma.
Un lenguaje de programación (PL) es solo una herramienta que se utiliza para hacer el trabajo (es decir, satisfacer los requisitos). El mismo requisito se puede implementar a través de PHP, C #, Java, Scala, Haskell, Lisp, etc., la elección de PL depende de varios factores como la composición del equipo, la familiaridad, las herramientas / marcos existentes / de código abierto, la facilidad de mantenimiento, la facilidad de contratación personas para mantenimiento continuo, etc.
- Como desarrollador de software a los 32 años, me enfrenté a una grave discriminación por edad en una startup joven. ¿Qué tengo que hacer?
- Cómo encontrar una buena compañía de desarrollo de software
- ¿Qué campo de la ciencia de la computación se enfoca principalmente en algoritmo / lógica?
- ¿Qué programas utiliza en su negocio diario como desarrollador de software además del IDE y por qué?
- ¿Puedes trabajar como desarrollador de software por la noche?
P: Entonces, ¿qué hace que los PL sean más fáciles de aprender que los idiomas humanos / hablados?
R: Gramática y sintaxis rigurosas, comprensión de la programación, prácticas de código limpio y principios de diseño de software.
- Gramática y sintaxis rigurosas:
Literalmente, esto es aprender el idioma: cuáles son las palabras clave, cómo se declaran las funciones / métodos / variables, cómo se escriben bucles / condicionales, cómo se heredan / resumen (si es posible), etc., esto es lo que todos los Learn PL- Los libros X in 10 Days te enseñan.Es más fácil aprender PL que lenguajes humanos porque los PL siguen reglas bien definidas y estructuras sintácticas. Por ejemplo:
a = 1
int a = 1;
$ a = 1
if (a == 1) {…} más {…}No puede simplemente decir
a => 1
si la sintaxis PL no permite=>
y tampoco puede cambiar cómo se escribeif/else
. Básicamente, no se permite romper las reglas: el compilador puede quejarse o el sistema se romperá en tiempo de ejecución. Intente hacer esto con el idioma inglés y se sorprenderá de lo poco riguroso que es con tantos casos excepcionales que incluso puede doblar según sus caprichos y fantasías. Los PL tienen menos matices que los idiomas hablados. Entonces, si conoces uno, es fácil elegir el (los) otro (s). Es aún más fácil si sabes programar. - Comprensión de la programación:
Esto es como decir que entiende cómo comunicarse con la computadora, no importa si es a través de Assembly, C, Java o Lisp / Haskell. Usted comprende que la computación es una serie de pasos (o funciones si está funcionalmente conectado) que hacen lo que desea, para alcanzar el objetivo final.Ejemplo: hacer un sándwich PBJ : esto es simple para los humanos. Pero para decirle a la computadora que haga una virtual, debes ser explícito siguiendo las reglas del lenguaje :
a. Pan a = getSliceOfBread ()
segundo. Mantequilla pb = getPeanutButter ()
C. BreadSliceWithStuff pbSlice = applyToOneSideOfBread (a, pb)
re. Pan b = getSliceOfBread ()
mi. Jelly j = getJelly ()
F. BreadSliceWithStuff jellySlice = applyToOneSideOfBread (b, j)
sol. Sandwich s = StickSlicesWithStuffTogether (pbSlice, jellySlice)Estos pasos ag, constituyen un programa. Puede dividir todos los pasos en un diagrama de flujo largo que muestra la lógica de hacer un emparedado. La capacidad de pensar en términos de pasos lógicos es lo que constituye la programación (hablando en términos generales). Si comprende eso, todo lo que necesita aprender es cómo expresar sus pasos en el PL que elija. Esta lógica puede no ser realmente precisa y puede provocar errores. Por lo tanto, la depuración es tan crucial como la programación. Más diría yo. Mucho mas.
- Prácticas de código limpio:
El ejemplo anterior muestra que el código es fácil de leer y está bien resumido detrás de las funciones relevantes que hacen que el programa lea como la lógica que está tratando de implementar. Cada función hace una pequeña cosa y puede reutilizarse y probarse (por ejemplo, la funciónapplyToOneSideOfBread(...)
). Estas cosas se transfieren de un PL a otro, sin tener en cuenta la sintaxis. La idea de dividir esto en componentes más pequeños y construir programas a partir de eso también es de lo que se trata la programación. Estos componentes podrían llamarse clases en OOP o funciones en Haskell / Lisp. Esta capacidad de escribir código limpio también es independiente de PL. - Principios de diseño de software:
Estos son principios de abstracción, estratificación, separación de preocupaciones, etc., son abstracciones de nivel superior que no tienen mucho que ver con la sintaxis PL; más bien, enfóquese en la organización y abstracción del código como un todo para que el código sea más fácil de mantener / evolucionar con el tiempo. Nuevamente, esto es mucho más valioso que aprender la sintaxis y la semántica PL.
A medida que va bajando la lista, más valioso será para la organización. Las compañías están bajando la lista, arriba, para encontrar el ingeniero general adecuado . Si todo lo que sabes es cómo programar , lo más probable es que seas un desarrollador junior. Escribir código realmente limpio? Ingeniero de nivel medio. SOLID comprensión de los principios de diseño de software? Mayor. Gran comprensión de la arquitectura de software? Principio / Personal. ¿Se pueden vincular las iniciativas de software con los objetivos comerciales? Camino a CTO. ¿Conocimiento profundo de ingeniería de software e ingeniería de personas? Ruta gerencial o gran ruta CXO quizás y así sucesivamente.
Entonces, sí, ¡solicitamos empleos donde no conocemos el PL, todo el tiempo!
Mi primer trabajo fue Java (aunque lo sabía, a la compañía no le importaba). Luego trabajé en Golang / Python y tampoco sabía nada al respecto. Luego C # .Net, a pesar de que no tenía idea de ellos y ahora PHP / Scala donde realmente no usé ninguno y nunca usé programación funcional. Sin embargo, creo que, sin embargo, me está yendo bastante bien en mi trabajo 😉
Ahora que tiene la lista anterior, le ayudará a comprender mejor por qué los PL no importan al solicitar trabajo y qué tan fácil es aprender idiomas, si comprende bien los conceptos .