¡Hey Coders!, Cuando empece hace muchos atras en el tema de aprender a programar y escribir codigo, primero de forma autodidacta y luego pasando tambien por instituciones como la universidad, creo que me hubiera sido muy util tener muy en claro cosas que al dia de hoy yo creo que las tengo mas presente, asi que con el fin de que ustedes puedan aprender de mis errores y carencias que tuve y que aun hoy muchos de estas carencias las sigo trabajando, me gustaria darles un lista de "Cosas que me hubiera gustado saber cuando empece a estudiar programacion".
Por cierto algunos de estos temas que les mencionare los he tenido yo, pero tambien he añadido otros mas que son dificultades o errores de conceptos que han tenido compañeros cuando empezaron en carreras a fines de desarrollo de software.
empecemos.
Crea proyectos en lugar de solo escribir codigo
Muchos de las personas que empiezan en programacion pareciera que les llama la atencion estar sentado en un computador y pasar horas escribiendo codigo en el teclado, y si bien esto es justo lo que quiren muchos deben saber que el programar no solo se trata de escribir codigo, y escribir por escribir, sino por el contrario se trata de resolver problemas y el codigo es solo una herramienta para poder llegar a eso.
De hecho todo esto que les menciono en la practica se nota cuando tienes que crear algun software que resuelve un problema real, y a tu cliente le da igual el lenguaje de programacion que uses, el framework que uses, o el servicio web que uses, a tu cliente solo le importa que resuelvas el problema de la mejor forma que puedas.
Asi que antes de que estes entusiasmado por aprender todos los lenguajes de programacion, es mucho mejor enfocarse en un par o uno inicialmente, y aprender a usarlo para crear programas reales, en mi caso por ejemplo he aprendido lenguajes porque debido a proyectos en algun momento me hicieron falta usarlos, por ejemplo:
- cuando desarrollaba aplicaciones de escritorio use Java y C#
- cuando inicie en web web, toque PHP y Java
- cuando empece a desarrollar aplicaciones para clientes aprendi Javascript, Typescript, Python
- cuando empece a estudiar temas relaciona a data science, aprendi Python y R
- cuando empece a estudiar electronica y a programar hardware, aprendi C y C++
- cuando estudie sistemas operativos aprendi bash
- cuando empece a crear aplicaciones distribuidas, aprendi go y Rust
- cuando desarrollo aplicaciones moviles uso Dart
y aun tengo una lista de lenguajes que me gustaria probarlos, sin embargo tiene que ser con el objetivo siempre de crear algo con ellos y no solo aprenderlos por que si.
ademas como veran no es que estudie todo esto al inicio, a medida que vas conociento nuevos retos, vas a ir aprendiendo mas y mas, asi que la idea principal es ir tomando proyectos que intenten resolver algun problema real, quizas pequeño, pero que le sirva a alguien o a ti mismo, y tratar de usar tu lenguaje para eso, ademas esto te ayudara a tener más claro que debemos adaptarnos al cambio, y que nunca vamos a terminar de estudiar.
Ademas te ayudara a pasar esos temas que estudias a la practica, lo que te dara la experiencia real de usar codigo para resolver algun problema.
No aprender el Ingles desde temprano
Yo se que para algunos esto les incomoda este tema, porque que, tendria que ver el desarrollo de software o programacion con el ingles, bueno el ingles es el idioma de internet, recursos como libros, tutoriales, certificaciones, documentaciones, y hoy en dia tambien modelos inteligentes (LLM) estan disponibles principalmente en este idioma, así que el aprenderlo es muy util sino vital si quieres realmente aprovechar la mayor cantidad de ayuda que provee la web.
Y yo se que tambien se que puedes encontrar recursos en español de tus lenguajes o tus frameworks favoritos, pero siempre es una buena idea ir nosotros mismso directo a la fuente, en lugar de siempre esperar que alguien publique una traducción, un curso o tutorial de algun tema. En pocas palabras y aunque suene obvio el saber menos no te hace saber más, asi que dedicarle una hora de estudio y practica en tu dia a dia al ingles, familiarizandote con nuevo vocabulario, expresiones y pronunciacion, puede hacer mucha diferencia profesionalmene a largo plazo. Para esto tienes aplicaciones como Duolingo, puedes intentar leer de apocos libros de programacion en ingles, o ir anotando palabras que no entiendas para ir expandiendo tu vocabulario, o ir viendo peliculas, cambiar la configuración de idioma de tus dispositivos y así.
En mi caso Creo que una de las cosas que me ayudó a avanzar mucho en código cuando recien empece fue un dia ponerme a estudiar ingles de forma seria, es decir no saber solo saber algunas palabras o leer frases sino realmente poner a practicar un vocabulario de conceptos varios y entender un poco mejor su gramatica, escribirlas, repetirlos y repasarlos, esto con el fin de leer y escribir textos más largos, y empezar a formar un vocabulario enfocado por supuesto a programacion, porque como cualquier idioma este abarca todas las areas asi que no te va a servir mucho estudiar ingles con terminos medicos si nuestra areas es la informatica basicamente.
Por supuesto tambien hay cosas que es más difcil practicar solo, como la pronunciacion, pero aun asi para mejorar en codigo solo te hace falta leer, y ecribir, la mayor parte del tiempo, la escucha y la pronunciacion lo puedes ir practicando progresivamente.
Todo esto te serviria para poder acceder a contenido en ingles y escribir para cuando tengas que crear codigo.
Y para aprenderlo siempre es buena idea ayudarte de muchas herramientas que tenemos al dia de hoy, por ejemplo usar ChatGPT para decirle que simule una conversacion de practica en ingles de algun tema, o siempre practicar tu vocabulario con duolingo, o la forma en la que a mi me funciono en su momneto, es anotar cada palabra que no sabia su significado y luego buscarla, repasarla y al otro dia volver a revisar si se me habia quedado el concepto.
Todo esto parece simple pero hacerlo es lo que realmente te podria ayudar a mejorar.
No tener una forma organizada de estudiar y trabajar
Cuando empece a estudiar hace muchos años atras y me di cuenta que me gustaba esto de crear programas y ver como funcionaban, note que a mas estudiaba, encontraba mas y mas temas que nunca habia escuchado, y al tratar de aprender de todo, pues un dia leia algo de un tema, otro dia practicaba un poco de otro completamente distinto y asi, pero solo estudiaba, escribia un poco de codigo y se quedaba esa porcion de codigo perdido entre mis achivos, y aunque parezca que era productivo porque estudiaba mucho, en realidad tiempo despues note que perdia mucho el tiempo, usando este metodo de estudio, porque mi atencion estaba demasiada dispersa.
Y es que el tener un orden para llegar a un objetivo es mucho mejor que hacer muchas tareas a la vez que no llegan a nada en concreto. Y esta idea no solo es para cuando se estudia sino tambien cuando se trabaja.
Y aqui no me estoy refiriendo tampoco al tema de especializacion, sino mas a una forma organizada de llegar a terminar algo. Asi que, la idea es simple, primero planteas tu objetivo, como por ejemplo podria ser:
- crear una tienda online
- crear una app movil para reservar citas medicas
- crear un videojuego en 2d para movil
- crear un blog
o cualquier otra aplicacion o proyecto que tu has investigado y que crees que puedes llegar a hacer.
Luego empiezas a crear un listado de tareas que tienes que hacer, temas que tienes que estudiar o investigar mas, y cosas que tienes que probar de tal formal que todo lo que haces en tu dia a dia, te llevaran a eso que tu planteaste como un fin.
Para hacer esto hay muchas formas, pero la mas simple es empezar con aplicaciones que te permiten tomar notas, usando aplicaciones como google kept, evernote, onenote, notion u obsidian.
En lo personal yo uso dos aplicaciones principalmente, Notion y obsidian, principalmente por la facilidad para poder crear no solo notas, sino tambien para poder crear Boards, tablas, y graficos un poco más avanzados, esto parece mas trabajo, pero creeme que el poder ver dia a dia la cantidad de tareas y lo que tienes que hacer es muy util para ver si realmente lo vas a lograr, y te evita estar pensando todo el dia en lo que tienes que hacer porque ya sabes que solo tienes que revisar tu agenda, ademas que esto te forzara a evitar estudiar o dedicarle tiempo a otros temas que no tienen relacion con lo tu proyecto, porque quizas no te llevaran a tu objetivo asi que es mejor este enfoque de estar desperdigado en un mar de temas.
El usar aplicaciones de notas no tiene que ser complicado tampoco, no tienes que estudiar nada, solo apunta lo que tienes que hacer con tus propias palabras y eventualmente a medida que lo sigas usando, notaras que hay formas mas simples de organizarte alli, asi creo que lo mas importante es empezar a usarlas.
Dedicate un descanso proporcionado
Relacionado a lo anterior, con el asunto de organizar tu tiempo, una parte importante para poder seguir trabajando optimamente es tambien ir adaptandote a tener un debido descando despues de dicarle tiempo al trabajo y al estudio.
yo se que si estas empezando recien, quizas tienes mucho interes en el tema y quizas no te importe pasar todo el dia programando o estudiando programacion, de hecho yo lo hice en su momento, y amigos tambien siempre los veia practicamente todo el dia cuando estudiaban programacion, pero esto no es sano, no solo por el desgaste mental que ocasiona estar todo el dia con un solo tema o proyecto, sino tambien afecta fisicamente, por ejemplo a la vista, la posicion en la que estas todo el dia sentado puede afectar tu columna, e incluso hasta el estres de estar encerrado o en un mismo lugar puede ocasionar un desgaste mental o estres, que puede desenbocar en depresion o afectarte emocionalmente.
Asi que la solucion es muy simple, date algunos descansos despues de cada tarea o par de horas de trabajo o estudio, de tal forma que lo veas como una forma de sobrellevar las tareas que estas haciendo mas facilmente.
En mi caso por ejemplo, me levanto a las 7 por lo general, me aseo, paseo a mis perros, y empiezo a trabajar desde las 8 am hasta las 12 am, almuerzo, regreso a las 2 a trabajar, continuo hasta las 6, paseo otra vez a mis perros, descanso una hora y continuo trabajando un par de horas mas, luego descanso leyendo o haciendo otro hoby, y continuo trabajando hasta la medianoche o un poco menos por lo general. Lo que si lo piensas es casi como si estuviera trabajando para alguien, pero en realidad es mi propio horario. Ademas que tampoco lo veo como algo frustrante porque el trabajo que hago ya no es algo nuevo y es casi un tarea repetitiva del día a día, sin embargo siempre mis hobbies son la novedad de mi dia a dia y lo que me mantiene fuera de estres el resto de la semana.
Ahora tampoco es que haga esta rutina todos los dias, asi que escoge un par de dias a la semana en los que puedas descansar y relajarte sin tener que hablar de nada del trabajo, toma un hobby o estudia algo mas, esto va ayudar a tu cabeza a liberar estres y tambien aprenderas más cosas que te ayudaran a mejorar como persona si tomas un hobby que te guste, algunos van al gimnasio, otros practican como tocar un instrumento musical, otros aprenden a dibujar, otros hacen deportes, lo que tu gustes, solo dale a tu cabeza variedad y la mantendras saludable.
Ademas el darse un descando ayuda muchas veces a problemas dificiles de resolver, esto es porque en algun momneto mientras trabajas o estudias te vas a frustar con errores nuevos o simplemente no podras concentrarte tan facilmente, bueno una solucion es darse cierto tiempo en el que no se piense en tal tema, y que la frustracion desaparezca para despues continuar con la cabeza mas liberada.
Asi que el descanso es importante, es sano y tambien podrias planificarlo, sobretodo si trabajas o estudias mucho.
Aprovechar tiempos muertos
Esto quizas podra sonar contradictorio, pero en nuestro dia a dia fuera de nuestras horas de trabajo y fuera de nuestro tiempo que podriamos dedicar al descanso, todos llegamos a tener tiempos muertos, es decir tiempo en los que solo no hacemos nada, solo esperamos quizas a que una tarea se complete, o esperamos a que llegue la respuesta de algun lado, o simplemene, no hay nada que hacer.
Por ejemplo cuando viajas en un taxi durante 15 minutos, esperas a que el ascensor te deje en tu piso, o estas esperando en la fila de algun establecimiento, y asi. Es decir en nuestro dia a dia, hay momentos en lo que no hacemos nada, y esto muchos lo usan para entretenimiento, es decir lo usan para ver tiktok, o youtube, o jugar algo en el movil, y asi.
Y no es que este mal de hecho, pero podrias usar ese tiempo para leer algo, reorganizar tareas desde el movil, investigar o ir preguntandole a ChatGPT de algun tema que se te hace dificil, si se que puede sonar aburrido, pero justo por esto te menciona la idea anterior, de dedicarte un descanso respectivo, porque cuando no estes descansando debes seguir aprendiendo, y aprovechar estos tiempos muertos pueden ayudarte a aprender nuevas cosas que luego en el trabajo te pueden ayudar mucho más.
Lo que yo hago en mis tiempos muertos es o contestar comentarios, revisar twitter por noticias, leer alguna documentacion o preguntarle a GPT por temas que vere cuando vuelva a trabajar, a veces tambien reorganizao mis notas de notion y obsidian, o simplemente si pienso tomo notas de que debo hacer al llegar a mi casa, de esa forma no gasto ese tiempo y evito usar mucho las redes sociales que tambien causan un desgaste mental, y lo cambio por algo mucho más productivo.
Y finalmente otras cosas que tambien me arrepiento de no aprovechar en su momento:
- No haber aprovechado estudios basicos en escuela y universidad. Es No reforzar materias fundamentales como matematicas y fisica, o dedicarle mucho mas tiempo al estudio cuando era joven, asi que si ustedes aun estan en esa etapa, usen su tiempo más productivamente, quizas luzca como que tienen todo el tiempo disponbile ahora, pero recuerden que el tiempo que tienes de vida no va aumentando, sino disminuyendo cada dia, y un dia ya no tendras el suficiente, asi que es mejor tomar una sabia decision de saber a que dedicarle nuestro tiempo, sabiendo que es de las cosas más valiosas que tenemos, y si lo haces bien quizas en unos cuantos años cuando cumplan cierta edad, tengan ingresos, una profesion con futuro, y un gusto por lo que haces, quizas me agradeceras el haber usado tiempo mas sabiamente
- Tener miedo a invertir dinero en educacion. Una idea que quizas tuve en cierto tiempo fue ser muy precavido con el gasto de dinero, esto no parece algo malo, pero todo en exceso tambien es dañino, y el ahorrar demasiado no funciona, veras si tienes mucho dinero en lugar de guardarlo inviertelo en tu educacion en ganar una nueva habilidad, en mejorarte como persona, quizas fisicamente, quizas intelecualmnete, quizas animicamente, pero usa el dinero en algo que te dara paz en tu dia a dia, una epoca me arriesgue en gastar en mi educacion comprando libros, cursos, podcasts, pagando certificaciones, y al dia de hoy tengo en claro que solo hay dos rutas o ahorras, trabajas poco y vives austeramente, o inviertes, trabajas mucho y tienes comodidades. En nuestro dia a dia cambiamos el tiempo por el dinero, asi que cada cosa que no hagan o no intercambien por algo de valor, realmente estan intercambiando su tiempo de vida.
- No desarrollar habilidades sociales lo suficiente, este es un tema comun de programadores yo creo, la mayoria son asociales o quieren ser los lobos solitarios, y yo se que esto tiene muchos aspectos, pero justamente escogemos carreras como esta para no tratar con gente, de hecho por eso fui freelance en mis inicios, asi que no lo veo como algo mal, pero lo que si creo que no le ayudara en nada es a no saber comunicarse con otras personas, ha dejar las cosas claras, estos dias trato con muchas personsa pero creo que el tener cierto grado de formalidad y respeto por las personas ue conozcan hace que sea mucho más facil sobrellevar diferencias. Así que si eres un desarrollador que no te gusta tratar con personas, usa la formalidad como un medio para no entablar amistad pero si para tratar con clientes, colegas o llevar proyectos a cabo con otras personas, esto te ayudara a poder hacer mas rapido tus proyectos y mantendras tu introversion.
- Rodeate de gente que aporte. El contexto importa, y las personas con las que te rodeas tambien, si en tu dia a dia tratas con muchas personas que no tienen gusto por lo que hacen, no tienen metas o sueños, eventualmente te arrastraran a sus ideas y formas de vivir, y esto sera natural, es decir ni siquiera lo notaras, asi que si quieres mejorar como persona, tanto profesionalmente como en tu vida privada, rodeate de personas que te aporten o por lo menos intenta mantener cierta distancia con personas que te influyen negativamente. En mi dia a dia siempre fue un peso algunos familiares y amigos, pero conforme fui creciendo y me hice cargo de mis propias decisiones, empece a vivir mucho más tranquilo y ahora tengo muchas ganas de seguir aprendiendo y mejorando como persona. por supuesto esto es dificil de conseguir si vives quizas con tus padres o parientes, pero al menos intenta no formar parte de sus ideas negativas o se conscientes de ellas para que no seas uno mas de ellos. El tener siempre la mente positiva en este trabajo ayuda y mucho, porque a quei en codigo ya hay muchos problemas, no vas a querer tenerlos tambien en la realidad.
Más Temas
Ahora los temas anteriores, son temas que personalmente pienso que me hubiese gustado saber antes, pero tambien me gustaria comentarles algunos otros que he visto que otras personas lo tienen:
- Tratar la universidad como un colegio, muchos estudiantes que ingresan a estudiar ingenieria informatica, ingenieria de sistemas, o carrerar a fines a codigo, toman a instituciones como la universidad como si fuera el responsable de enseñarles todo lo que conlleva la carrera, que yo se que para muchos es asi, pero en la realidad van a notar que lo unico que les enseña la universidad es a tener un orden en sus estudios, manejar responsabilidades como la creacion de proyectos, trabjar en equipo y crear relaciones profesonales, y asi, es decir la universidad te da una estructura ordenada para que puedas estudiar, porque si hablamos del contenido, todos los temas ya estan en la web, y ha este punto ya hay demasidao contenido para poder aprender por cuenta propia. Y les comento esto no con el motivo de desmeritar a la universidad, para nada, porque hay profesiones relacionadas a ciencia de la computacion que es necesario pasar por la universidad, sino lo menciono porque no esperen que su educacion depende de una sola fuene de estudio, sino que fuera de sus horas de estudios universitarias deben seguir completando lo que les falta etudiando por cuenta propia, practicando, investigando, y esto es lo que los diferenciara del resto de miles de profesionales que poran encontrar en su misma area.
- Esperar a terminar de estudiar para empezar a trabajar. Relacionado a lo anterior tambien hay muchos estudiantes que esperan terminar la universidad para recien buscar algun empleo, y si se que muchas empresas buscan profesionales con experiencia, pero si recien terminas la unica forma de mostrar esto es con proyectos, por favor no esperen a terminar su carrera para recien empezar a crear un portafolio de proyectos, crear su hoja de vida, o llevar a cabo ese idea de negocio que tienen, porque quizas cuando terminen su carrera todas estas tareas les caeran de golpe y no podran afrontalas.
- Descuidar su salud, parecerá obvio, pero asi como dedicas mucho tiempo al estudio, dedicale tambien un cierto tiempo a cuidar de tu salud, hacer ejercicio y comer más sano, porque aunque no lo creas no eres un jodido ente metafisico que solo necesita informacion, obviamente tambien necesitas cuidar tu salud, de hecho el tener malos habitos alimenticios tambien tienda a afectar mentalmente y ocasiona muchos problema mentales que pueden afectar tu trabajo, asi que trata de considerar esto la proxima vez que decidas que comer o si decides quedarte todo el dia sentado en casa.
Y bueno almenos estos son algunos de las ideas que se me quedaron por alli, Finalmente si les gusto el video me serviria mucho que dejen un like, de esa forma podre saber si este tema fue de su interes, y podria crear otro enfocado a cosas que me hubiera gutado saber cuando empece como freelance profesionalmente, y temas mas relacionados al trabajo. De ustedes depende.
Gracia a todos porque quedarse hasta el final y nos vemos en el siguiente video.