¿Qué debo hacer para convertirme en un ingeniero de software autodidacta?

No voy a recomendar libros sobre C ++, sino libros que puedan influir en su forma de pensar sobre programación, sobre ingeniería de software. La programación y la ingeniería de software se pueden practicar a un nivel más alto que cualquier lenguaje dado (aunque el uso de un lenguaje de computadora es necesario para poner en práctica sus pensamientos). Los idiomas son fáciles, pensar es más difícil.

Dos libros sorprendentemente influyentes para la ingeniería de software han sido The Timeless Way of Building y su sucesor / compañero A Pattern Language , ambos del arquitecto Christopher Alexander. Estos dos libros sobre cómo construir edificios han tenido una fuerte influencia en el “movimiento de patrones” dentro de la ingeniería de software.

También recomendaría libros sobre “Programación extrema, como Explicación de la programación extrema de Kent Beck , segunda edición , así como estudiar algunas de sus prácticas, como Desarrollo guiado por pruebas (Kent Beck también tiene un desarrollo guiado por pruebas por ejemplo ). Extreme Programming se basa en la idea de tomar una serie de “Mejores prácticas” de ingeniería de software y luego, en palabras inmortales de Nigel Tufnel, convertirlas en 11. Si la revisión del código es buena, ¿por qué no la revisión continua del código (programación de pares) , si la prueba es buena, ¿por qué no probar todo el tiempo (lo que lleva a un desarrollo impulsado por la prueba), etc. Incluso si nunca entra en un entorno donde puede practicar XP, es útil conocer las mejores prácticas que propugna y por qué trabajar mejor juntos

Estás aprendiendo C ++. Le recomiendo que siga aprendiendo un idioma muy diferente, como Scheme, F # o Haskell. El libro The Structure and Interpretation of Computer Programs , (SICP) de Abelson y Sussman, fue el libro de texto de ciencias informáticas de primer año en el MIT durante 28 años y, en mi opinión, es una excelente introducción al pensamiento sobre la computación y el software de maneras muy poco comprensivas. C-like. Es un libro de 5 capítulos, que va de “introducción a la computación” a “compiladores de compilación”, que no introduce el concepto de estado mutable (es decir, poder decir, en términos de C ++, x = x+1 hasta el capítulo 3 Su enfoque no es Scheme, pero usa Scheme. Probablemente sea posible, con un poco de persuasión, usarlo para F #, ocaml o Haskell (al menos, hasta el capítulo 3). También es gratis en Enlace que le di.

Hay dos problemas diferentes. Una es cómo puedes aprender las habilidades necesarias para ser un buen ingeniero de software. La otra es cómo realmente obtienes un trabajo de ingeniería de software si eres autodidacta. No sé la respuesta a la segunda pregunta, por lo que recomendaría que obtenga un título universitario en un programa de CS. Dices que todavía estás en la escuela secundaria, así que tienes la oportunidad de hacer esto. No veo ninguna razón para complicarte las cosas al no hacerlo.

Entonces, la pregunta se reduce a esta: si estudias CS en la universidad, ¿cómo puedes ir más allá de otros estudiantes y aprender más que ellos, para que puedas ser un buen ingeniero de software? Para eso, vea: ¿Cuáles son los 10 mejores consejos de carrera que Brian Bi daría a futuros ingenieros de software?

Vea la respuesta de Richard Kenneth Eng a ¿Cómo empiezo con una carrera de codificación?

More Interesting

¿Cuáles son los estudios sobre "espacio abierto vs. oficinas individuales"?

¿Qué empresas organizan hackathons u otros eventos de ingeniería de software?

¿Hay algún punto intermedio entre la ingeniería electrónica y la ingeniería de software para trabajar y ganarse la vida?

¿Cómo puede ser feliz un ingeniero de software que trabaja en corporaciones multinacionales como TCS, Wipro, CSC, etc.?

¿Cuál es el tamaño del mercado de TI de Waterloo, Ontario, Canadá? ¿Qué es un rango de pago para un ingeniero de software?

¿Qué puede proponer alguien sobre cómo construir un trabajo independiente o de negocio propio para un ingeniero de software?

¿Crees que, algún día, crear programas será arrastrar y soltar? ¿Esto reducirá las necesidades de los ingenieros de software, ya que todos podrán programar?

¿Debo ser ingeniero de software o no?

¿Cómo fue tu viaje de aprendizaje para ser ingeniero de software / informático?

¿Los ingenieros de software ganan mucho dinero en Pittsburgh PA?

¿Cuáles son los errores típicos que hacen los nuevos graduados de doctorado al unirse a Facebook como ingenieros de software?

¿Qué es una rutina diaria que me puede ayudar a estar en forma, saludable, inteligente y rico? Soy un ingeniero de software masculino de 26 años que trabaja de 9 a 6 años.

¿Qué piensan los estadounidenses de los ingenieros de software indios?

¿Cuáles son las ventajas y desventajas de ser ingeniero de software?

¿Los ingenieros de software programan mucho?