Ser programador, es básicamente tener o aprender habilidades especiales, (“como si fueras un superhéroe”), y para cada tipo de programador, hay una habilidad muy desarrollada la cual guía su mente en el área en el que se desempeña (“como si fueras un superhéroe”). Un hacker por ejemplo, no siempre sabe programar mejor o más rápido que un programador de sistemas administrativos, lo que los diferencia básicamente es que el hacker se interesó por vulnerabilidad y seguridad de software y hardware, redes y conexiones, etc y puede ver con más facilidad, defectos y debilidades en estos, y programa su herramienta de hacking para solucionar ese problema (“o empeorarlo mucho más… un cracker ¡un supervillano, muajajaja!”)
Pero si en vez del hacker, vemos al programador de redes en una empresa de vídeojuegos como Riot Games, u Blizzard veremos que igual tiene que saber de conexiones de redes, de envío de paquetes, de sistemas, etc etc. (“¡cof, cof! Un super héroe… cof, cof!) Si vemos las habilidades del programador de Inteligencia Artificial, que no solo tiene que hacer que un enemigo o un NPC busque determinado camino para encontrarte, sino que se tiene que defender, te tiene que rastrear, y detectar, veremos a un genio de las matemáticas, geometría, análisis de datos y patrones, etc (“lo dicho, un sup…” – eh, tu… basta)
… Y así con todas las áreas. Sin embargo, si estás empezando, tienes que aprender, racionalizar y entender bien, con calma, todo lo que ves, lees, o te guían y corrijan otros. Esta mini lista con 8 consejos para programadores principiantes que, luego de pensar mucho, sobre todo en mi etapa de principiante, quiero compartirles, lo que, creo, que me llevó a mi a ser un mejor programador. En la guía que estoy regalando, al subscribirse a la lista del Equipo de Genios, comento estos puntos y muchos más. Abajo al final, está el formulario para que la obtengas totalmente gratis. Si lo haces, revisa el spam o correo no deseado y pon el correo en favoritos para que no te pierdas nada.
1 Leer y escribir, y mucho. Leer no solo libros técnicos, donde te enseñen a programar, tal o cual programa, sino leer libros, novelas de fantasía, ciencia ficción, de suspenso, relatos, conspiración, (“¡y de superhéroes!” – shhh!) que abran tu mente a caminos nuevos, sin ver una imagen literal que te describa la escena, tu empezarás a imaginar lo que te describan, imaginarse el final de una novela de detectives, motivos, etc. Todo esto hará que tu mente analice y cree nuevos patrones de razonamiento, lo cual en programación siempre es bueno y más si son videojuegos. Y luego escribir, escribir sin miedo, para ti o para el resto del mundo, si quieres ser programador de verdad, y no solo analista de sistemas te vienen horas de escritura. Y debes practicar. Ve abriendo un blog. Recuerda que no solo vas a programar, vas a escribir notas de qué hace cada instrucción, un manual, lo que sea, y debes saber escribir bien. Leer y escribir te darán dominio en el arte de hilar frases coherentes, de razonar y seguir un orden para poder decir lo que quieras. Esto es la base de la programación.
2 Aprender lógica y algoritmo.
Aunque para muchos programar es un arte que necesita dones con los que se nacen, la verdad es que razonar, actuar de manera coherente, establecer pasos sin contradicciones y poder llegar a una meta o solución de algún problema de manera satisfactoria, lo hacemos todos los humanos absolutamente todos los días de nuestra vida, incluso hay animales que lo hacen… (ya me estoy pareciendo al otro). Hay maneras, ejercicios prácticos, mini juegos mentales que dan la habilidad para mejorar nuestro proceso mental lógico, y mejorar nuestros procesos mentales en la ejecución de tareas y resolución de problemas. La base de este y de todos los expuestos, la verdad, en esta lista, son mi punto de partida y reglas para dar la Mentoría: Lógica y Programación de Videojuegos para Principiantes que ya tiene algunos participantes muy desesosos de comenzar.
3 Practicar programación. Al tener las bases de la programación en la mente, hay que practicar, intentar dominar métodos, funciones, estructuras de datos, son muchos elementos que hay que conocer para poderlos usar bien, y en el momento en el que deben ir. Debes estar consciente en todo momento de lo que estás haciendo y recordar siempre que el programa no se equivoca, que la computadora sigue las instrucciones al pie de la letra dando el resultado que obtiene por todos los pasos que tu escribiste. Necesitas horas de vuelo, no vas a aprender a programar solo leyendo libros o escribiendo algoritmos. Escoge un lenguaje que te llame la atención con un nivel de abstracción alto, y practica.
4 Equivocarse sin miedo, y dejar que te corrijan sin que se atraviese tu ego.
Aprender a programar, como cualquier otro aprendizaje, se basa en cometer errores, analizarlos, corregirlos o volverlo a intentar. Si no puedes con una solución, pregúntale a alguien que sepa más que tu, un profesor, mentor, guía, o instructor de turno. No pienses que tu lógica es infalible. No te cierres a ver soluciones en alguien que incluso consideres con menos conocimiento que tu. Deja el ego para después. Mientras aprendes (y en programación esto dura toda la vida) no hay egos, hay lógicas que dan con la solución o hay quienes se estrellan. Así de simple y terrible. Aprende de otros, y nunca te quedes con una duda, tienes permiso de copiar códigos de Internet, pero es mejor que sepas no solo lo que hace cada instrucción, sino como llegar a ese resultado con tu propia.
5 No te quedes solo con copiar código y entender lo que hace cada instrucción.
Nunca diré lo suficiente cuan agradecido estoy con profesores, instructores, autores de libros, tutoriales y cursos en internet o fuera de la redes. Me han permitido aprender cosas nuevas, pero el paso que diferencia a los programadores normales de (“…”) si… los superheroes (“¡Lo dijo, lo dijo!”) la diferencia grande entre programadores normales y los superhéroes de cada área, es que no se quedaron con lo que leyeron en un tutorial o libro, y copiaron el código exactamente entendiendo o no, cada instrucción, función o método creado, sino que entendieron el proceso lógico para llegar a este resultado, y pudieron traducirlo óptimamente con su propia lógica a su propio código. No es cambiar nombres de variables, es entender el proceso de razonamiento lógico que hubo detrás. Esto no se enseña siempre en todo libro, o tutorial visto. Y debe ser tarea tuya, tratar de buscar al menos como hacer lo mismo, por otro método o razonamiento.
6 Aprender que cada lenguaje fue hecho para algo en específico. Así como determinado software fue creado para hacer una tarea determinada, y quien importa es el usuario que esta detrás, igual pasa con los lenguajes de programación. Si un principiante no entiende estas diferencias y cree que programando en HTML5 + CSS + JavaScript + PHP va a hacer el próximo GOW o lo que sea, la va a tener mucho mas complicado del que empezó sin complejos a programar en el insultado Visual Studio con C# y Unity. Que en JAVA se puedan hacer gráficos bonitos en 3D, no significa que sea el mejor lenguaje para hacer un juego de estrategia 3D en tiempo real con decenas de personajes combatiendo en pantalla. Y que C++ sea robusto no significa que sea hoy en día el mejor para hacer una aplicación para un celular, o una nevera o un Smart TV. No es que no sea todo un reto hacer algo en un lenguaje que no fue diseñado para esa tarea. Se ve con curiosidad, el ejemplo de raytrace programado en Macros de VB y funciones de EXCEL, y sirve para aprender muchísimo, pero a la hora de ser profesional, no da tiempo de ir retando al destino y al creador del lenguaje. Cada lenguaje para lo que fue creado.
7 Ir buscando que área te gusta más y en cual eres mejor.
A medida que pasa el tiempo de aprendizaje en el mundo de la programación, te vas a dar cuenta de qué área te llama más la atención, o en qué eres realmente bueno. y que lamentablemente, no siempre es lo mismo. Debes ir especializándote en algo. En programación de vídeojuegos hay tantas áreas que explorar, que obligatoriamente sentirás que una te gusta más que otra, y que eres mejor en alguna seguro, más que en las demás. Escoge de una vez y abre tu camino al aprendizaje de esa área. Estas son algunas de las áreas en programación de juegos.
8 No caer en discusiones, competencias y peleas estériles que se dan en cada ámbito de la informática.
Es muy famosa la batalla campal entre fans de 3ds max vs Maya vs C4D vs Blender, (“todos sabemos que Maya es mejor para juegos” – nope) Todo programa tiene fans y haters. Todo en informática tiene fans y haters. Los lenguajes no son la excepción. Es muy común escuchar peleas, discusiones y hasta bully por determinados lenguajes. Pero eso de comparar PHP con Java, o C# por ejemplo, no tiene sentido. (“Claro, porque PHP no es un verdadero lenguaje de progr…” shhhh jajajaja) Perder el tiempo en estas batallas te aleja de tu principal objetivo, te pone trabas en el aprendizaje. Si necesitas aprender PHP para conectar tu juego, con una base de datos en un servidor Linux y MySQL y tienes ya estas trabas, no lo vas a aprender. Mi mejor consejo es que al menos al empezar, no te unas a ningún club, deja el fanatismo para los e-Sports (“Overwatch es mejor que Fortnite” uff… baneado de por vida – sudo userdel superheroe340).
Kommentarer