Un idioma para gobernarlos a todos

Escondido bajo una capa de código, un lenguaje languidece y anhela ser aprendido.

Un idioma para gobernarlos a todos

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

Sin más preámbulos, me gustaría dejar constancia de que todos estos 517 millones de sitios web están equivocados y que el idioma que uno debe aprender primero es lógica fundamental.

No basta con saber codificar. El mercado está tan saturado de graduados de institutos y carreras que el puesto junior prácticamente ha dejado de existir*. Para tener éxito en el mundo actual, es necesario codificar y tener un pensamiento lógico fundamental avanzado.

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

Mi primera lección de informática.

Mi primer contacto con la informática fue una asignatura optativa que tomé en décimo grado. El primer día, al entrar al aula, me encantó ver frente a mí una gran cantidad de cubos de helado y diversos aderezos. Después de que todos estuvieron sentados, la maestra anunció:

“Hoy degustaremos helados de preparación propia. Pero con una condición: debes hacer una lista de instrucciones específicas sobre cómo preparar el postre, y yo las seguiré”.

“No hay problema”, pensé, “esta lección no será larga”. En aproximadamente un minuto había anotado la receta perfecta para el helado de mis sueños:

  1. Saque y coloque tres bolas de helado de frambuesa en un bol.
  2. Abre la salsa de chocolate y añade dos cucharadas al mismo bol.
  3. Agregue la crema batida al tazón
  4. Espolvorea todo con palitos de azúcar y ponle una cereza encima.

Mi maestra, la “computadora” en esa linda metáfora, realizó una actuación más sarcástica y literal de la que jamás había visto antes. Comenzó a pinchar celosamente el cubo de helado con una pala sin siquiera tocar la tapa.

"Está bien, está bien, ¡pero primero debes abrirlo!" - exclamé intentando conseguir el premio lo más rápido posible.

“No escribiste esto en las instrucciones y no pude hacerte helado. ¡PRÓXIMO!"

Avancemos rápido para intentar el punto 2.

  1. Abre el helado de frambuesa quitando la tapa.
  2. Saque y coloque tres bolas de helado de frambuesa en un bol.
  3. Abre la salsa de chocolate y añade dos cucharadas al mismo bol.
  4. Agregue la crema batida al tazón
  5. Espolvorea todo con palitos de azúcar y coloca una cereza encima.

Bueno, ahora definitivamente no debería haber ningún problema. Por si acaso, me aseguré de que todos los ingredientes para hacer mi obra maestra culinaria estuvieran abiertos.

La maestra quitó la tapa, tomó y colocó tres bolas de helado en un bol. “¡Por ​​fin mi hermoso helado ha comenzado a hacerse realidad!” Luego abrió la salsa de chocolate y añadió dos cucharadas al bol. Ella no "agregó salsa de chocolate de dos cucharadas", no lo creo, ella, por supuesto, puso las cucharas en el tazón. No tienen salsa. Una vez más, no me molesté en escribir todo exactamente. Después de hacer el resto con el mismo espíritu, recibí un cuenco de helado y dos cucharadas, apenas perceptibles bajo el mar de nata montada. Encima había un par de palitos de azúcar.

Parece que en ese momento finalmente me di cuenta: una computadora es lógica en el vacío. No es consciente de las circunstancias que lo rodean y no hace suposiciones. Sólo sigue instrucciones claramente formuladas y las sigue palabra por palabra.

Mi resultado final fue el resultado de una larga pero necesaria serie de pruebas y errores:

  1. Si aún no lo has hecho, abre cada uno de los siguientes paquetes: helado de frambuesa, salsa de chocolate, nata montada, palitos de azúcar.
  2. Saca un cuenco y colócalo frente a ti.
  3. Coge una bola de helado y coloca tres bolas de helado de frambuesa una a una en un bol. Vuelva a colocar la bola de helado en su lugar.
  4. Coge un tarro de salsa de chocolate, saca la salsa y vierte el contenido de una cucharada en un bol. Repita el proceso de sacar y verter una vez más. Vuelva a colocar la cuchara y el frasco en su lugar.
  5. Toma el paquete de nata montada boca abajo y, sosteniéndolo sobre el bol, viértelo sobre el helado durante 3 segundos, luego devuelve el paquete a su lugar.
  6. Tome un frasco de barras de azúcar, vierta unas cuarenta barras en un bol y vuelva a colocar el frasco.
  7. Toma una cereza del bol de cerezas y colócala encima del helado.
  8. Entregue al alumno un bol con el helado terminado y una cuchara.

El último punto fue especialmente importante, porque sin él, la penúltima vez la maestra simplemente empezó a comerse mi helado.

Pero esto es programación. El estrés de crear un conjunto cuidadoso de instrucciones para una computadora. Básicamente, esto es a lo que se reduce todo lenguaje de programación: escribir instrucciones.

Carrera en programación

La programación ha llegado a un punto en el que es difícil discutirla como una sola industria, del mismo modo que es difícil utilizar la palabra "programador" como descripción del trabajo. Dos desarrolladores pueden tener la misma demanda en el mercado y conocer idiomas completamente diferentes, lo que significa que la capacidad de desarrollo es más importante que el conocimiento de un idioma específico. Un atributo universal compartido por todos los desarrolladores exitosos es lógica fundamental.

El mejor programador es aquel que es capaz de ver 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 fragmentos no documentados de código incorrecto. Es necesario unirlos constantemente, llenando los vacíos según sea necesario. Las personas que no puedan conectar puntos dispares con una sola línea tendrán que mantenerse al margen para siempre.

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

Los idiomas van y vienen. Los marcos se están volviendo obsoletos y las empresas están respondiendo a la demanda cambiando la tecnología que utilizan. ¿Hay algo que nunca cambiará? Sí, conocimiento fundamental, que se llama fundamental porque es la base de todo.

Cómo mejorar los conocimientos fundamentales

Un idioma para gobernarlos a todosFoto de Cristóbal Jeschke 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 Gran o La "complejidad del algoritmo" se refiere a la dependencia del tiempo que lleva ejecutar un programa del tamaño de sus datos de entrada. (norte). Mantenerse al tanto de los algoritmos que se utilizan es un paso importante.

Conozca sus estructuras de datos

Las estructuras de datos están en el corazón de todo programa moderno. Saber qué estructura utilizar y en qué caso es una disciplina en sí misma. Las estructuras de datos están directamente relacionadas con la complejidad del tiempo de ejecución y elegir la estructura incorrecta puede generar problemas fundamentales de rendimiento. Encontrar un elemento en una matriz es O (n), lo que indica el alto costo de utilizar matrices como datos de entrada. Búsqueda de tabla hash: O (1), lo que significa que en este caso el tiempo para buscar un valor no depende de la cantidad de elementos.

La gente vino a mí para una entrevista y afirmó que buscar en una matriz era más rápido que buscar en una tabla hash. Esta fue la señal más segura de que no deberías contratarlos: conoce tus estructuras de datos.

Leer / mirar / escuchar

Sitios como UdemyPluralsight и CodeAcademy - Una excelente opción para aprender nuevos lenguajes de programación. Pero para conocer los conceptos básicos, consulte libros sobre principios, prácticas y estilos generales de codificación. Los libros más recomendados son “Design Patterns”, “Refactoring. Mejora del código existente", "Código perfecto", "Código limpio" y "Programador pragmático". Finalmente, cada desarrollador debe conservar una copia del "Algoritmos" a mano.

¡Práctica!

No se pueden cocinar huevos revueltos sin romperlos. Sitios como HackerRankGuerras de códigosCoderByte, TopCoder и Código Leet Ofrezca miles de acertijos interesantes para poner a prueba su conocimiento de estructuras de datos y algoritmos. Pruebe suerte resolviendo un problema que le guste, publique su solución en Github y luego vea cómo otros la abordaron. Lo que nos lleva al último punto:

Leer el código de otras personas

El mayor error que puede cometer al emprender el camino del desarrollo es hacerlo solo. El desarrollo de software es en gran medida un esfuerzo de equipo. Creamos estándares juntos, cometemos errores juntos y, a pesar de todos los fracasos, mejoramos juntos. El tiempo dedicado a leer el código de otras personas dará sus frutos con creces. Solo asegúrate de que sea un buen código.

Bueno, el mejor consejo que puedo darte es que nunca te avergüences de no saber algo todavía. Como ya se ha dicho, nuestra industria es enorme y la cantidad de tecnología es infinita. 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 sus habilidades en su campo. Te avisaré cuando lo logre yo mismo.

Fuente: habr.com

Añadir un comentario