a varias fuentes, el salario promedio para Codificación Jobs es de ~ £ 47.5k en el Reino Unido, que es ~ 35% más alto que el salario medio de aproximadamente £ 35k.
Entonces, la codificación es una habilidad muy valiosa que le dará más dinero, sin mencionar que es muy divertido.
He estado codificando profesionalmente durante 4 años, trabajando como científico de datos e ingeniero de aprendizaje automático y en esta publicación, explicaré cómo aprendería a codificar si tuviera que hacerlo de nuevo.
Mi viaje
Todavía recuerdo la vez que escribí mi primer código.
Eran las 9 a.m. el primer día de mi estudiante de física, y estábamos en el laboratorio de computación.
El profesor explicó que el cálculo es una parte integral de la física moderna, ya que nos permite ejecutar simulaciones a gran escala de todo, desde colisiones de partículas subatómicas hasta el movimiento de las galaxias.
Sonaba increíble.
Y la forma en que comenzamos este proceso fue al pasar por un libro de texto para aprender Fortran.
Sí, escuchaste eso bien.
Mi primer lenguaje de programación fue Fortanoespecíficamente Fortran 90.
Aprendí los bucles antes de los bucles. Definitivamente soy una rareza en este caso.
En esa primera sesión de laboratorio, recuerdo haber escrito “Hello World”, como es el rito habitual de iniciación y pensamiento, “Big Woop”.
Así es como escribes “Hello World” en Fortran en caso de que estés interesado.
program hello
print *, 'Hello World!'
end program hello
En realidad, realmente luché por codificar en Fortran y no lo hice bien en las pruebas que tuvimos, lo que me desanimó la codificación.
Todavía tengo Algunos proyectos de codificación antiguos En Fortran en mi Github que puedes ver.
Mirando hacia atrás, la curva de aprendizaje para la codificación es bastante empinada, pero realmente se compone, y eventualmente, solo hará clic.
No me di cuenta de esto en ese momento y evité activamente los módulos de programación en mi título de física, de lo que me arrepiento en retrospectiva, ya que mi progreso habría sido mucho más rápido.
Durante mi tercer año, tuve que hacer una colocación de investigación como parte de mi maestro. La compañía para la que elegí trabajar para/con un lenguaje de programación gráfico llamado Labview para ejecutar y administrar sus experimentos.
LabView se basa en algo llamado “G” y me enseñó a pensar en la programación de manera diferente a la basada en script.
Sin embargo, no lo he usado desde entonces y probablemente nunca lo haré, pero fue genial aprender entonces.
Disfruté un poco el año de investigación, pero el ritmo al que se mueve la investigación, al menos en física, es dolorosamente lento. No imaginé nada como el “apogeo” de principios del siglo XX.
Un día después del trabajo, se me recomendó un video en mi página de inicio de YouTube.
Para aquellos de ustedes que desconocen, este fue un documental sobre Ai Alphago de Deepmind que venció al mejor jugador Go del mundo. La mayoría de la gente pensó que una IA nunca podría ser buena en Go.
Desde el video, comencé a comprender cómo trabajaba y aprendía sobre redes neuronales, aprendizaje de refuerzo y aprendizaje profundo.
Lo encontré todo muy interesante, similar a la investigación física a principios del siglo XX.
En última instancia, es cuando comencé a estudiar para una carrera en Ciencia de datos y aprendizaje automático, donde necesitaba enseñarme Python y SQL.
Aquí es donde me llamé “me enamoré” con la codificación.
Vi su potencial real para resolver problemas, pero lo principal era que tenía una razón motivada para aprender. Estaba estudiando para entrar en una carrera en la que quería estar, lo que realmente me llevó.
Luego me convertí en científico de datos durante tres años y ahora soy un Aprendizaje automático ingeniero. Durante este tiempo, trabajé mucho con Python y SQL.
Hasta hace unos meses, esos eran los únicos lenguajes de programación que conocía. Aprendí otras herramientas, como Bash/Z-Shell, AWS, Docker, Data Bricks, Snowflake, etc. Pero no cualquier otro lenguaje de programación “adecuado”.
En mi tiempo libre, hice un poco con C hace un par de años, pero me he olvidado prácticamente todo ahora. Tengo Algunos scripts básicos en mi github si estás interesado.
Sin embargo, en mi nuevo papel que comencé hace un par de meses, usaré Rust and Go, que tengo muchas ganas de aprender.
Si está interesado en todo mi viaje para convertirme en científico de datos e ingeniero de aprendizaje automático, puede leer sobre él a continuación:
Elija un idioma
Siempre recomiendo comenzar con un solo idioma.
De acuerdo a Testgorillahay más de 8,000 lenguajes de programación, entonces, ¿cómo elige uno?
Bueno, diría que muchos de estos son inútiles para la mayoría de los trabajos y probablemente se han desarrollado como proyectos de mascotas o para casos realmente de nicho.
Puede elegir su primer idioma en función de la popularidad. El Encuesta de la pila de desbordamiento 2024 tiene una gran información sobre esto. Los idiomas más populares son JavaScript, PitónSQL y Java.
Sin embargo, la forma en que le recomiendo que elija su primer idioma debe basarse en lo que desea hacer o trabajar.
- Web front-end-JavaScript, HTML, CSS
- Web back-end-Java, C#, Python, Php o Go
- aplicaciones de iOS/MacOS– Swift
- Aplicaciones Andriod– Kotlin o Java
- Juego– C ++ o C
- Sistemas integrados– C o C ++
- Ciencia de datos / aprendizaje automático / AI– Python y SQL
Como quería trabajar en el espacio AI/ML, centré mi energía principalmente en Python y algunas en SQL. Probablemente fue una división del 90% / 10% ya que SQL es más pequeño y más fácil de aprender.
Hasta el día de hoy, todavía conozco a Python y SQL a un estándar “profesional”, pero eso está bien, ya que casi toda la comunidad de aprendizaje automático requiere estos idiomas.
Esto muestra que no necesitas saber muchos idiomas; He progresado bastante lejos en mi carrera, solo conozco a dos a una profundidad significativa. Por supuesto, variaría según el sector, pero el punto principal sigue en pie.
Por lo tanto, elija un campo que desee ingresar y elija el lenguaje más demandado y relevante en ese campo.
Aprenda el mínimo
El mayor error que veo que cometen los principiantes es atascarse en el “infierno del tutorial”.
Aquí es donde tomas curso tras curso, pero nunca se ramifican por tu cuenta.
Recomiendo tomar un máximo de dos cursos en un idioma, literalmente cualquier curso de introducción, y luego comenzar a construir de inmediato.
Y literalmente quiero decir, construir sus propios proyectos y experimentar la lucha porque ahí es donde se realiza el aprendizaje.
No sabrá cómo escribir funciones hasta que lo haga usted mismo, no sabrá cómo crear clases hasta que lo haga usted mismo, y literalmente no comprenderá los bucles hasta que las implemente usted mismo.
Entonces, aprenda lo mínimo e inmediatamente comience a experimentar; Prometo que al menos 2 veces tu curva de aprendizaje.
Probablemente haya escuchado mucho este consejo, pero en realidad es así de simple.
Siempre digo que la mayoría de las cosas en la vida son simples pero difíciles de hacer, especialmente en la programación.
Evite las tendencias
Cuando digo que evite las tendencias, no me refiero a no concentrarme en áreas que están funcionando bien o en demanda en el mercado.
Lo que estoy diciendo es que cuando eliges un cierto idioma o especialismo, quédate con él.
Los lenguajes de programación comparten conceptos y patrones similares, por lo que cuando aprende uno, mejora indirectamente su capacidad de recoger otro más adelante.
Pero aún debe centrarse en un idioma durante al menos unos meses.
No desarrolle “Síndrome de objetos brillantes” y persiga las últimas tecnologías; Es un juego que desafortunadamente perderás.
Ha habido tantas tecnologías de “distracción”, como Blockchain, Web3, AI, la lista continúa.
En cambio, concéntrese en los fundamentos:
- Tipos de datos
- Patrones de diseño
- Programación orientada a objetos
- Estructuras de datos y algoritmos
- Habilidades de resolución de problemas
¡Estos temas trascienden los lenguajes de programación individuales y son mucho mejores para dominar que el último marco de JavaScript!
Es mucho mejor tener una gran comprensión de un área que tratar de aprender todo. Esto no solo es más manejable, sino que también es mejor para su carrera a largo plazo.
Como dije antes, he progresado bastante bien en mi carrera al conocer solo a Python y SQL, ya que aprendí las tecnologías requeridas para el campo y no me distraí.
No puedo enfatizar cuánta apalancamiento tendrá en su carrera si documenta su aprendizaje públicamente.
Documente su aprendizaje
No sé por qué más personas no hacen esto. Compartir lo que he aprendido en línea ha sido el mayor cambio de juego para mi carrera.
Literalmente cometer su código en GitHub es suficiente, pero realmente recomiendo publicar en LinkedIn o X, e idealmente, debe crear publicaciones de blog para ayudarlo a consolidar su comprensión y mostrar su conocimiento a los empleadores.
Cuando entrevisto a los candidatos, si tienen algún tipo de presencia en línea que muestra sus aprendizajes, eso es inmediatamente una marca en mi casilla y una ventaja adicional sobre otros solicitantes.
Muestra entusiasmo y pasión, sin mencionar el aumento de su superficie de la casualidad.
Sé que muchas personas tienen miedo de hacer esto, pero sufre el efecto de foco. Wikipedia define esto como:
El efecto de atención es el fenómeno psicológico por el cual las personas tienden a creer que se están notando más de lo que realmente son.
A nadie literalmente le importa si publica en línea o piensa en usted hasta el 1% como cree.
Entonces, comience a publicar.
¿Qué pasa con AI?
Podría pasar horas discutiendo por qué la IA no es un riesgo inmediato para cualquiera que quiera trabajar en la profesión de codificación.
Debes adoptar la IA como parte de tu kit de herramientas, pero eso es lo que llegará, y definitivamente no reemplazará a los programadores en 5 años.
A menos que un avance de AGI ocurra repentinamente en la próxima década, lo cual es muy poco probable.
Personalmente dudo que la respuesta a AGI es la función de pérdida de entropía cruzadaque es lo que se usa en la mayoría de los LLM hoy en día.
Se ha mostrado tiempo y tiempo Nuevamente, estos modelos de IA carecen de fuertes habilidades de razonamiento matemático, que es una de las habilidades más fundamentales para ser un buen codificador.
Incluso el llamado “asesino de ingeniería de software” es no tan bueno como lo comercializaron inicialmente los creadores.
La mayoría de las empresas simplemente están tratando de impulsar su inversión promocionando la IA, y sus resultados a menudo son exagerados con Pruebas de referencia controvertidas.
Cuando estaba construyendo un sitio web, ChatGPT incluso tuvo problemas con simples HTML y CSS, ¡lo cual puede argumentar es su pan de pan y mantequilla!
En general, no se preocupe por la IA si desea trabajar como codificador; ¡Hay un pez mucho más grande para freír antes de cruzar ese puente!
Neetcode ha hecho un excelente video que explica cómo la IA actual es incapaz de reemplazar a los programadores.
¡Otra cosa!
Únete a mi boletín gratuito, Repartir los datosdonde comparto consejos semanales, ideas y consejos de mi experiencia como científico de datos en ejercicio. Además, como suscriptor, obtendrás mi Plantilla de currículum de ciencia de datos gratuita!