¿Cuáles deberían ser mis primeros pasos para construir una carrera de programador? Soy un estudiante universitario de ciencias de la computación.

Lo primero que debe sacarse de la cabeza es la noción de que la programación se trata de lenguajes de programación. No lo es Los lenguajes de programación son una moneda de diez centavos. Una vez que haya aprendido una pareja, elegir una nueva es principalmente una cuestión de aprender las nuevas características que el lenguaje pueda introducir. También hay molestias menores, como descubrir la sintaxis, que a menudo es muy similar, pero sutilmente diferente a cualquier otra cosa.

Además del lenguaje, se encuentran todas las bibliotecas y marcos estándar que puede admitir. No necesita aprenderlos todos para ser efectivos. Si conoce los conceptos básicos y tiene alguna idea de lo que está disponible, debería estar bien. Luego vienen las bibliotecas y marcos de terceros. Para un desarrollador junior, la exposición a cualquier conjunto que una compañía en particular pueda estar usando es útil, pero no debe ser requerida a ningún programador nuevo recién salido de la universidad. Nuevamente, estas son cosas que puede aprender con relativa facilidad, especialmente si hay un desarrollador senior decente que lo asesore.

El desarrollo de software se trata de encontrar y obtener una comprensión de un problema a resolver o de una oportunidad, idear una posible solución para el problema o una idea para explotar esa oportunidad, construir esa solución y entregar el producto completo y probado al cliente / cliente / usuario. Aprender a hacer todo esto bien es lo que lleva mucho tiempo. Cuanto antes comience a aprender cómo desarrollar software, mejor será.

Para hacerlo, debe crear proyectos que atraviesen todo ese proceso, incluso si el usuario final es solo usted. Puede usar estos proyectos como una forma de aprender un nuevo lenguaje de programación, nuevos marcos, etc. Esto proporciona motivación y un ejemplo útil, útil (o interesante) para ayudarlo a absorber realmente lo que aprende.

Comencé mi primer proyecto cuando tenía 12 años, en una versión temprana del lenguaje BASIC. Era un juego / simulación del mercado de valores basado en datos que encontré en la biblioteca de negocios de la universidad de Dartmouth (crecí en la ciudad). Mi próximo gran proyecto fue un juego de combate de naves espaciales en 3D escrito en PL / I, usando gráficos de personajes en una pantalla de 80 columnas por 24 filas. Se me ocurrió una pantalla dual 2-D, una que muestra el XY, la otra el XZ. Tenía alrededor de 15 años en ese momento.

Estos proyectos fueron mis ideas, basadas en mis intereses en ese momento. Aprendí mucho, a través de la documentación, la asistencia ocasional de los estudiantes de posgrado que trabajaban en el sistema operativo local que el mainframe de Dartmouth estaba ejecutando, y mucha prueba y error. También aprendí sobre todo el proceso de desarrollo y gané el amor por el desafío de abordar cosas nuevas.

Para el registro, las tecnologías de los 90 = principalmente C. Eventualmente aprendimos C ++ pero solo cosas como punteros y algoritmos de clasificación / búsqueda. Luego se nos enseña a la mierda * n asamblea qué querido señor no quiero volver a ver. Me encantaría que nos enseñaran Java, pero no, tenía que enseñarme a mí mismo. Mi queja sobre mi universidad es que, aunque nos enseñaron algunas cosas, nunca nos enseñaron realmente cómo se conectan entre sí. Como si tuviéramos una clase mySql, pero nunca utilizamos ninguna base de datos en ningún programa que hicimos. Sé cómo hacer algunas consultas SQL, pero no puedo implementarlas en ninguno de los programas que puedo hacer.
Principalmente, lo que no me gusta es que, sea lo que sea que haga, parece que no me “beneficia” de ninguna manera, como si no estuviera cerca de recibir un pago por hacer esto. Parece que tengo que subir tantos tramos de escaleras y ni siquiera sé si estoy perdiendo el tiempo o no. Sé que esto es lo que quiero hacer, simplemente no sé si / cuál es la ruta correcta y cuándo finalmente estaré listo para el trabajo.

Cuánto aprendes en la escuela depende de ti. No esperes que tus profesores te den de comer todo lo que necesitas saber. Cuando dices que te están enseñando “lenguajes de programación de los 90”, supongo que te refieres a Java o C ++, que todavía se usan hoy en día y, de hecho, son algunos de los lenguajes más populares para escribir software de producción. Las tecnologías van y vienen, pero la base teórica que obtienes de una educación en informática se puede aplicar a cualquier tecnología o dominio. Como programador de carrera, se espera que aprenda continuamente nuevas tecnologías emergentes, por lo que debe acostumbrarse a ellas. Y si no puedes convencerte de estudiar, entonces no tienes la curiosidad suficiente sobre el tema. Encuentra algo que realmente te entusiasme y aprende. No importa cuán popular sea. Si eres bueno en eso, puedes hacer una carrera con eso.

Siempre he tenido muchas dificultades para estudiar, a menos que lo que sea que esté estudiando esté directamente relacionado con algo que quiero construir.

Intente crear una cartera de proyectos, algo fácilmente accesible como páginas web o aplicaciones móviles, para que pueda incluir enlaces a sus proyectos en su CV.

El empleador no querrá pasar más de un minuto revisando sus proyectos, por lo que deben ser realmente fáciles de usar e impresionar en los primeros segundos de uso.

Si los empleadores están impresionados por su cartera, a nadie le importará su calificación, o incluso si terminó su curso.

Espera, ¿estás aprendiendo programación? ¿O estás aprendiendo lenguajes de programación?

Primero debe aprender a programar: analizar un problema, analizar sus recursos y encontrar una solución al problema. Todo en ingles. La programación no es codificación, es resolución de problemas. Si aún no tiene una solución, no tiene nada que codificar.

Y algunas personas simplemente no son lo suficientemente analíticas para aprender el análisis de problemas lo suficientemente bien como para poder programar. Si eres uno de esos, elige una carrera diferente. (No puedes “aprender” a ser analítico más de lo que puedes “aprender” a ser alto).

Convéncete a ti mismo para estudiar. No estudiar no aumentará tu profundidad.

Los lenguajes de los 90 (C es la excepción) adoptan la necesidad de incorporar nuevas capacidades. Esto es solo una excusa para no estudiar. Es una pena que no tenga un interés profesional que se eleve al nivel de una pasión, porque es cuando se enseña a sí mismo en lugar de ser enseñado pasivamente.

Comencé en la universidad como pasante remunerado. Lo llamaron programa “cooperativo” en el pasado.

La paga fue bastante buena y obtienes experiencia y generalmente una buena calificación.

IDK cuál es el equivalente en estos días.