¿Quieres escuchar mi historia? Soy un desarrollador de software. Pero mi especialidad no era CS, ni siquiera relacionada con la ciencia. Comencé mi carrera como desarrollador de software a principios de este siglo porque tuve la oportunidad de realizar una pasantía en una pequeña empresa de software en mi último año de universidad. En ese momento, los idiomas como VB, PB se usaban mucho. La característica de estos idiomas es que puede crear una ventana y colocar algunos controladores, como botones, cuadros de entrada, y luego tiene una aplicación GUI. Y además, estos controladores admiten algunos eventos, por lo que si rellena algún código en los métodos de eventos de los controladores, obtendrá una aplicación GUI interactiva o un software viable que podría venderse por dinero. Básicamente, si tiene un pensamiento lógico fundamental y puede usar frases como “si más, mientras, para”, y toma un libro sobre VB y obtiene un conjunto de Visual Studio 6 y realiza algunas prácticas, ahora es un desarrollador de software. Tuve suerte porque en ese momento la empresa carecía de recursos humanos, así que me dejaron encargarme de un producto pequeño. Aprendí de ese producto y luego lo mantuve y le agregué nuevas características en varios meses, luego me convertí en un empleado de esa compañía después de dejar la escuela.
En los años siguientes, aprendí Java como mi principal lenguaje de programación y bases de datos para desarrollar el denominado software empresarial, ahora se llaman aplicaciones CRUD. He utilizado todo tipo de servidores de aplicaciones J2EE y todas las principales bases de datos que podría haber escuchado. Pero al igual que tú en este momento, estaba ansioso porque sentí que no conozco las computadoras. Bueno, puedo hacer CRUD bastante bien, conozco varios lenguajes de programación y muchos productos de bases de datos. Pero no sé nada bajo el capó. ¿Son mis habilidades lo suficientemente buenas para apoyar una carrera de por vida, especialmente en estos días de rápido desarrollo? Tal vez debería cambiar un trabajo que sea menos competitivo y que no necesite aprender constantemente.
Bueno, no estoy seguro si es una forma correcta o no todavía. Recogí libros en mis treinta años. Lo bueno de hoy es que hay muchos materiales de aprendizaje gratuitos y también tenemos Google en caso de que necesite ayuda. Así que tomé varios cursos de MIT OCW y Coursera, leí muchos libros e hice innumerables prácticas. ¿Que aprendi? Suena como un cliché, lenguajes de programación como C y C ++, sistema operativo Linux, estructuras de datos, algoritmos y matemáticas, etc. Con estos fundamentos, encuentro que hoy en día puedo aprender cosas mucho más rápido de lo que solía ser y realmente no hay. tantas cosas nuevas que necesita aprender constantemente, solo conceptos nuevos en un marco antiguo que puede obtener realmente rápido si conoce el marco. Recientemente he estado tomando algunos cursos de inteligencia artificial de Coursera, solo me están dando los mismos sentimientos. Aprendizaje automático, solo cálculo, álgebra lineal, probabilidad y sus aplicaciones. Minería de datos, solo cálculo, álgebra lineal, probabilidad y sus aplicaciones …
Entonces, si todavía tienes la oportunidad de ingresar a la universidad para aprender CS, no tienes nada de qué preocuparte. Solo haz lo mejor para aprender los cursos que tu escuela organiza para ti, estos son los verdaderos tesoros para un ingeniero de software profesional. Cosas como php, html, css, puede aprenderlas de la noche a la mañana si domina C ++.
- De Intel a los procesadores ARM. En un futuro cercano, si se confirman los rumores, ¿a qué direcciones iría Apple?
- ¿Hacia dónde se dirige la humanidad con las tendencias actuales en el avance tecnológico?
- ¿Cuándo se ejecutarán la mayoría de las casas y automóviles con energía solar?
- ¿Cómo va a afectar HTTP2 a los dispositivos móviles de UX cuando están conectados a una red inalámbrica?
- ¿Cómo va a afectar la realidad virtual la experiencia de juego para el usuario?
Si necesita aprender CS por su cuenta, por supuesto, primero debe aprender Matemáticas. Pero todavía las estructuras de datos y los algoritmos son los más importantes. MIT OCW y Coursera tienen excelentes cursos sobre estos. Pero te recomiendo encarecidamente que tomes el curso “Matemáticas para Ciencias de la Computación” de MIT OCW, me gusta mucho. C y C ++ son las mejores opciones para lenguajes de programación. Hoy en día soy adicta a C ++. Aunque apenas uso C ahora, creo que debería aprender C primero, luego C ++. Estos dos libros, “The C Programming Language (The K&R C Bible)” y “Computer Systems: A Programmer’s Perspective (2nd Edition)”, forjaron mi fundación. Si puedes hacer todos los ejercicios de “K&R C”, no necesitas ningún otro libro de C en absoluto. Bueno, no realmente, este impresionante libro, “Interfaces e implementaciones en C: Técnicas para crear software reutilizable”, definitivamente vale la pena de todos tus esfuerzos. No puedes aprender C ++ de 1 libro, en realidad no puedes aprender C ++ de ni siquiera 10 libros. Aprender C ++ es un negocio a largo plazo. He leído más de 20 libros sobre C ++, pero siento que solo he arañado la superficie del lenguaje. Por lo tanto, solo recomiendo un libro introductorio para usted, “C ++ Primer”, tanto en la 4ª Edición como en la 5ª Edición.
Esperemos que esto te pueda ayudar un poco. El trabajo de programación es increíble. En realidad no creo que haya un mejor trabajo que él. Hoy, cuando miro hacia atrás, me siento tan afortunado de haber tenido la oportunidad de entrar en este campo cuando se suponía que no debía hacerlo. Y no tengas miedo de aprender. Deja que sea tu hábito y se convertirá en un placer. Si no aprendo nada o leo un par de páginas antes de irme a la cama, me siento avergonzado y perdido.