JavaRush /Blog Java /Random-ES /Un idioma para gobernarlos a todos

Un idioma para gobernarlos a todos

Publicado en el grupo Random-ES
Hay un lenguaje que se encuentra debajo de cada capa de código, en cualquier lenguaje de programación. Y espera ser descubierto... Traducción y adaptación de un artículo de Eric Girois de la comunidad de programación Better en Medium. Un idioma para gobernarlos a todos - 1Cuando escribí este artículo, la cantidad de consultas de búsqueda del estilo "qué lenguaje de programación aprender" superó los 517 millones (!). Cada página de la lista de resultados de búsqueda informa sobre las ventajas de un idioma en particular sobre otros, y en el 90% de los casos se le recomendará lo mismo, como Python, JavaSctipt (o algo de las 3 calificaciones más autorizadas de idiomas). La calificación actual de julio está aquí ;) Permítanme ser audaz y estar oficialmente en desacuerdo con los 517 millones de resultados y decir que el primer lenguaje de programación que debe aprender es la lógica . No basta con saber escribir código. El mercado está abarrotado de graduados de diversas carreras, por lo que el puesto de desarrollador junior prácticamente ha dejado de existir. Para tener éxito en estas realidades, no sólo es necesario escribir código, sino también tener una mente lógica.

Mi primera lección de informática.

Mi primer contacto con la informática ocurrió en una clase optativa en el décimo grado. Llegué a clase y sentí una sensación de alegría: había un montón de cajas de helado y tarros de almíbar en el aula. Cuando tomamos asiento, la maestra anunció: “Hoy haremos domingos ( un postre a base de helado y almíbares - nota del editor ). Pero con una condición: debes escribir las instrucciones exactas para preparar el postre y yo las seguiré”. “ No hay duda ”, pensé, “ será fácil ”. En solo un minuto, anoté las instrucciones perfectas: Coloque tres bolas de helado de frambuesa en una taza Vierta dos cucharadas de jarabe de chocolate en esa taza Agregue crema batida a la taza Agregue chispas y una cereza encima del domingo Entonces mi Cuando la maestra, actuando como “computadora”, siguió exactamente las instrucciones, realizó la actuación más cáustica que jamás haya visto. Comenzó a “atacar” furiosamente la caja de cartón con helado, pero la tapa duradera permaneció ilesa. "Está bien, primero quita la tapa", dije, esperando conseguir el postre rápidamente. “¡No pudiste escribir las instrucciones correctamente para mí, así que desafortunadamente no pude asistir al domingo SIGUIENTE!”

Avance rápido para intentar el n.° 2

Abra un cartón de helado de frambuesa quitando la tapa Coloque tres bolas de helado de frambuesa en una taza Abra el almíbar de chocolate y agregue dos cucharadas a esa taza Abra la crema batida y agregue un poco a la taza Agregue chispas y una cereza encima del domingo estaba seguro de haberlo logrado una vez. La maestra quitó la tapa, tomó tres bolas de helado y las puso en una taza. ¡Por fin mi domingo está a punto de estar listo! Luego abrió el almíbar de chocolate y puso dos cucharadas en la taza. Pero no dos cucharadas de almíbar, ¡solo cucharadas, sin él! Mis instrucciones nuevamente no fueron lo suficientemente precisas. Cuando todo terminó, recibí una taza de helado, dos cucharas de metal, una tonelada de crema batida y unas 300 bolas de chispas. Parece que en ese momento todo quedó claro para mí: una computadora es una entidad que se guía por pura lógica. No comprende el contexto y no hace suposiciones. Sigue un estricto conjunto de instrucciones y las sigue al pie de la letra. Las instrucciones finales para preparar el domingo fueron terriblemente largas, pero eran necesarias: ​​si aún no se han abierto, abra el paquete de todos los siguientes artículos: helado de frambuesa, jarabe de chocolate, aderezos y crema batida. Tome una taza de el estante y colóquelo frente a usted. Tome una bola de helado y, una a la vez, saque y coloque tres bolas de helado en una taza. Cuando esté todo hecho, pon la cuchara sobre la mesa. Toma una cuchara de jarabe de chocolate si aún no tienes una. Luego toma una cucharada de almíbar de chocolate y viértela en una taza. Haz esta acción dos veces. Coloque el almíbar de chocolate en un estante cuando esté listo. Voltee la botella de crema batida y presione el botón cerca del pico de la botella con el dedo durante tres segundos, luego regrese la botella a su posición original. Espolvorea 40 gránulos de chispas sobre el helado y el jarabe de chocolate en la taza, luego regresa el mezclador de chispas a su posición original. Retire una cereza del frasco de cerezas y colóquela con cuidado encima del domingo. Entregue al alumno la cuchara del domingo y de postre. El último comando de las instrucciones fue muy importante, porque sin él la maestra empezó a comer ella misma el domingo. Esta es la realidad de la programación: es necesario darle las instrucciones más precisas a la computadora. En esencia, todos los lenguajes de programación se componen de instrucciones.

Carreras en desarrollo de software

El desarrollo de software se encuentra en una etapa de su desarrollo en el que hablar de él como una industria separada parece demasiado general. Y la posición “desarrollador de software” suena vaga a la luz de esto. Dos desarrolladores con diferentes habilidades pueden tener la misma demanda en el mercado laboral, lo que sugiere que una carrera exitosa en desarrollo requiere algo más que habilidades de programación. Los desarrolladores experimentados tienen un rasgo común que está separado de la lógica de programación . Los mejores desarrolladores son fuertes en pensamiento crítico. Esto es significativo porque la mayoría de los proyectos de desarrollo de software son pesadillas mal documentadas. Se necesitará alguien con pensamiento crítico para recopilar todos los datos y llenar los vacíos. Por lo tanto, aquellos especialistas que no son capaces de conectar los hechos en un todo se quedan atrás. Todo esto lleva a otra afirmación muy importante: los fundamentos de la informática, tanto ahora como en el futuro, son primordiales. Son más importantes que la capacidad de escribir código. Los idiomas populares van y vienen. Los marcos se están volviendo obsoletos y las empresas están respondiendo a las cambiantes demandas del mercado combinando el conjunto de tecnologías utilizadas. ¿Qué permanece sin cambios? Conceptos básicos de lo básico.

Cómo desarrollar el pensamiento lógico

Se puede y se debe desarrollar el pensamiento lógico y crítico. Te aconsejo que prestes atención a lo siguiente:

1. Estudiar la efectividad de los algoritmos en entornos de ejecución.

La notación conocida como Big-O se utiliza para describir la complejidad de los algoritmos. Si puede evaluar su código en términos de Big O y analizar la cantidad de pasos realizados versus el tiempo invertido, considere que ha dado el primer paso en la dirección correcta.

2. Aprenda estructuras de datos

La estructura de datos es la base de todo programa complejo. Saber qué tipo es mejor usar y en qué caso es una habilidad importante. Las estructuras de datos están directamente relacionadas con la complejidad de los algoritmos, porque elegir la estructura incorrecta puede matar el programa.

3. Leer/ver/escuchar

Bueno, para comprender los conceptos básicos, lea libros sobre conceptos de diseño, mejores prácticas y estilo de codificación. Se recomienda encarecidamente a aquellos que están aprendiendo programación que lean:
  • “Técnicas de diseño orientado a objetos. Patrones de diseño” (E. Gamma R. Helm R. Johnson J. Vlissides),
  • “Refactorización. Mejorar el código existente” (M. Fowler),
  • “Código perfecto” (S. McConnell)
  • “Código limpio” (B. Martin)
  • “Programador pragmático” (E. Hunt)
  • “Algoritmos: construcción y análisis” (T. Cormen, C. Leiserson, R. Rivest y K. Stein)

4. ¡Practica!

No puedes convertirte en un buen violonchelista sin cientos de horas de práctica. La práctica diaria es la clave para el éxito de la programación. Hoy en día existen muchas plataformas en línea donde se pueden encontrar miles de tareas que requieren comprensión de estructuras de datos y algoritmos (HackerRank, LeetCode, CodeWars y otros).
Los problemas de programación Java, desde simples hasta complejos, están disponibles en JavaRush. El curso incluye más de 1200, además de miniproyectos y juegos de tareas .
Para mí, la forma más eficaz de trabajar con este tipo de plataformas es pensar en un enfoque único para el problema y publicar su solución en Github. Luego, observe las mejores soluciones a un problema similar y analice los enfoques de otros programadores. Esto nos lleva a nuestro consejo final:

5. Analiza el código de otras personas.

El principal error al aprender a programar y en las etapas iniciales del trabajo es el autoaislamiento. El desarrollo de software es un campo que depende en gran medida del trabajo en equipo. Creamos estándares juntos, cometemos errores y, con el tiempo (nuevamente, mediante prueba y error), descubrimos qué funciona mejor. Tomarse el tiempo para leer el código de desarrolladores experimentados dará sus frutos. Solo asegúrate de que el código sea realmente bueno.

Conclusión

Consejo personal: nunca te avergüences de lo que (todavía) no sabes. Como se indicó anteriormente, esta industria es enorme, la cantidad de idiomas es increíble y hay un mar de información. Se necesita mucho tiempo y esfuerzo para formarse al menos una idea general de programación, aún más para adquirir experiencia y muchas veces más para convertirse en un verdadero profesional. Cuando finalmente lo consiga te lo haré saber :)
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION