Un idioma para gobernar todo

Oculto bajo una capa de código languidece un idioma ansioso por aprender.



Al momento de escribir este artículo, la consulta "programar qué lenguaje aprender primero" produce 517 millones de resultados de búsqueda. Cada uno de estos sitios elogiará un idioma en particular, y el 90% de ellos recomendará Python o JavaScript.


Sin largos preludios, me gustaría declarar oficialmente que todos estos 517 millones de sitios están equivocados y declarar que el lenguaje que debe estudiarse primero es la lógica fundamental .


Solo saber codificar no es suficiente. El mercado está tan saturado de graduados de institutos y cursos que el puesto de junior casi dejó de existir *. Para tener éxito en el mundo de hoy, debe codificar y tener un pensamiento lógico fundamental avanzado.


* en lo sucesivo, recuerde que se trata de una traducción, y la situación en el mercado laboral para el autor y en su país puede ser diferente (como otros matices), lo que, sin embargo, en sí mismo no empeora el artículo original: aprox. perev.


Mi primera clase de informática


Mi primer contacto con la informática fue una asignatura optativa, que tomé en el décimo grado. El primer día, entrando en la audiencia, me encantó ver una gran cantidad de cubos de helado y varios ingredientes delante de mí. Después de que todos se sentaron, la maestra proclamó:


“Hoy probaremos el helado preparado por nosotros mismos. Pero con una condición: debe hacer una lista de instrucciones específicas sobre cómo preparar un postre, y las seguiré ".


No hay problema, pensé, esta lección no será larga. Aproximadamente un minuto después, dibujé una gran receta para el helado de mis sueños:


  1. Saque y ponga tres bolas de helado de frambuesa en un tazón
  2. Abra la salsa de chocolate y agregue dos cucharadas al mismo tazón.
  3. Agregue la crema batida a un tazón
  4. Espolvorea todo con palitos de azúcar y coloca la cereza encima

Mi maestro, la "computadora" en esta bonita metáfora, jugó una interpretación literal más sarcástica que nunca había visto antes. Ella comenzó a empujar celosamente un cubo de helado con una cuchara para bolas, sin siquiera tocar la tapa.


"Bien, bien, ¡pero primero debes abrirlo!" - Exclamé, tratando de obtener un regalo lo antes posible.


“No escribiste esto en las instrucciones, pero no pude hacerte helado. ¡SIGUIENTE!


Saltamos el tiempo antes del intento No. 2


  1. Abra el helado de frambuesa quitando la tapa.
  2. Saque y ponga tres bolas de helado de frambuesa en un tazón
  3. Abra la salsa de chocolate y agregue dos cucharadas al mismo tazón.
  4. Agregue la crema batida a un tazón
  5. Espolvorea todo con palitos de azúcar y espolvorea la cereza encima

Bueno, ahora seguro que no debería haber problemas. Por si acaso, me aseguré de que todos los ingredientes para hacer mi obra maestra culinaria estén abiertos.


La maestra quitó la tapa, recogió y puso tres bolas de helado en un tazón. "¡Finalmente, mi hermoso helado comenzó a encarnarse en la realidad!" Luego abrió la salsa de chocolate y agregó dos cucharadas al tazón. No "agregaste salsa de chocolate de dos cucharadas", no lo crees, ella, por supuesto, puso las cucharas en un tazón. No hay salsa en ellos. Nuevamente, no me molesté en pintar todo con seguridad. Después de que el resto se hizo con el mismo espíritu, obtuve un tazón con helado y dos cucharadas, apenas perceptible bajo el mar de crema batida. Encima había un par de palitos de azúcar.


Parece que en este momento finalmente me di cuenta: la computadora es lógica en el vacío. No sabe acerca de las circunstancias circundantes y no hace suposiciones. Sigue solo instrucciones claramente formuladas y las sigue palabra por palabra.


Mi resultado final fue el resultado de una serie larga pero necesaria de prueba y error:


  1. Abra, si aún no lo ha hecho, cada uno de los siguientes paquetes: helado de frambuesa, salsa de chocolate, crema batida, palitos de azúcar.
  2. Saca el tazón y ponlo frente a ti
  3. Tome una cuchara para helado y una por una ponga tres bolas de helado de frambuesa en un tazón. Pon la cuchara de helado en su lugar.
  4. Tome un frasco de salsa de chocolate, saque la salsa y vierta el contenido de una cucharada en un tazón. Repita con pala y vertiendo la salsa una vez más. Pon la cuchara y el frasco en su lugar.
  5. Tome y ponga el paquete de crema batida boca abajo y, sosteniéndolo por encima del tazón, vierta el helado sobre ellos durante 3 segundos, luego devuelva el paquete a su lugar.
  6. Tome una lata de palitos de azúcar, espolvoree unos cuarenta palitos en un tazón y coloque la lata en su lugar.
  7. Tome una cereza de un tazón de cerezas y colóquela encima del helado.
  8. Dele al alumno un tazón con helado preparado y una cuchara.

El último punto fue especialmente importante, ya que sin él, el penúltimo tiempo, la maestra simplemente comenzó a comer mi helado.


Pero esto es programación. Creando un conjunto completo de instrucciones para la computadora. Esencialmente, esto es a lo que todo lenguaje de programación se reduce: escribir instrucciones.




Programación de carrera


La programación ha llegado a un punto en el que es difícil discutirlo como una sola industria, así como es difícil usar una sola palabra "programador" como descripción del trabajo. El mercado puede exigir por igual a dos desarrolladores, conociendo idiomas completamente diferentes, lo que significa que la capacidad de desarrollo es más importante que el conocimiento de un idioma en particular. Un atributo universal común a todos los desarrolladores exitosos es la lógica fundamental .


El mejor programador puede mirar el código desde un nuevo ángulo. Y esto es fundamentalmente importante, porque la mayoría de los productos de software son una colección de piezas de código indocumentado. Necesitan constantemente unirse, cerrando las brechas según sea necesario. Las personas que no pueden conectar puntos dispersos en una sola línea tendrán que estar siempre al margen.


Todo esto me lleva a otra declaración, esta vez audaz: el conocimiento fundamental siempre ha sido y será primordial para el programador .


Los idiomas van y vienen. Los marcos se vuelven obsoletos y las empresas responden a la demanda cambiando la pila de tecnologías utilizadas. ¿Hay algo que nunca cambiará? Sí, ¡conocimiento fundamental, por eso se llama fundamental, que subyace a todo!




Cómo mejorar el conocimiento fundamental


Foto de Christopher Yeshke en Unsplash

Si está buscando un punto de partida para mejorar su pensamiento lógico fundamental, intente comenzar aquí:


Conozca la complejidad de su programa.


También llamado Big O, "la complejidad del algoritmo" se refiere a la dependencia del tiempo que lleva ejecutar un programa en el tamaño de sus datos de entrada (n) . Mantenerse al tanto de los algoritmos utilizados es un paso importante.


Conoce tus estructuras de datos


Las estructuras de datos son el núcleo de cualquier programa moderno. Saber qué estructura usar en qué caso es una disciplina independiente. Las estructuras de datos están directamente relacionadas con la complejidad del tiempo de ejecución y elegir la estructura incorrecta puede conducir a problemas fundamentales de rendimiento. La búsqueda de un elemento en una matriz es O (n) , lo que indica el alto costo de usar matrices como entrada. La búsqueda en la tabla hash es O (1) , lo que significa que en este caso el tiempo de búsqueda del valor es independiente del número de elementos.


La gente vino a mí para una entrevista que decía que era más rápido buscar por arreglo que por tabla hash. Era la señal más segura de que no debería contratarlos: conozca sus estructuras de datos.


Leer / Ver / Escuchar


Sitios como Udemy , Pluralsight y CodeAcademy son excelentes opciones para aprender nuevos lenguajes de programación. Pero para lo básico, consulte libros sobre principios generales, prácticas y estilos de codificación. Los libros más recomendados son Patrones de diseño, Refactorización. Mejora del código existente "," Código perfecto "," Código limpio "y" Pragmatista programador ". Finalmente, cada desarrollador debe tener a mano una copia de los " Algoritmos ".


Practica!


No podrás cocinar huevos fritos sin romper los huevos. Sitios como HackerRank , CodeWars , CoderByte , TopCoder y LeetCode ofrecen miles de tareas interesantes para probar su conocimiento de estructuras de datos y algoritmos. Pruebe su suerte para resolver el problema que desee, publique su versión en Github y luego vea cómo otros lo abordaron. Lo que nos lleva al último punto:


Leer el código de otra persona


El mayor error que solo se puede cometer siguiendo la ruta de desarrollo es hacer esta ruta solo. El desarrollo de software es en gran parte el trabajo en equipo. Juntos creamos estándares, cometemos errores juntos y, a pesar de todos los fracasos, mejoramos juntos. El tiempo dedicado a leer el código de otra persona valdrá la pena. Solo asegúrate de que este sea un buen código.




Bueno, el mejor consejo que puedo dar es que nunca te avergüences de que todavía no sepas algo. Como ya se mencionó, nuestra industria es enorme y la cantidad de tecnologías es inmensa. Se necesita mucho tiempo y esfuerzo para construir una imagen general, aún más para convertirse en un profesional en algo específico, y un orden de magnitud más para perfeccionar la habilidad en su campo. Te avisaré cuando lo logre yo mismo.

Source: https://habr.com/ru/post/456342/


All Articles