¿Cuál es el consejo de Adam D’Angelo para ingenieros de software principiantes?

Esta fue una respuesta que escribió a una pregunta similar en julio del ’10 que creo que todavía es relevante hoy:

Creo que la mayoría de la programación consta de dos partes: matemática / algoritmos / teoría discretos, y una gran cantidad de cosas pequeñas que básicamente solo puedes aprender por experiencia. Esto es algo como:

  • tener una idea de cuándo usar variables, funciones y otras abstracciones para evitar códigos repetidos
  • Comprobación de casos extremos
  • depuración
  • tener un modelo mental de cuánto tiempo llevan varias operaciones
  • conocimiento de las API
  • leyendo el código de otras personas
  • escribiendo buenos comentarios
  • patrones de problemas que ha resuelto en el pasado con los que puede hacer frente
  • patrones de errores que ha realizado en el pasado y que sabe evitar
  • ser capaz de cavar a través de elementos internos del sistema como un archivo .h o un módulo python incorporado y avanzar sin comprender completamente todo

Hay muchos otros conocimientos especializados y habilidades que puede adquirir, como sistemas distribuidos, subprocesos múltiples, aprendizaje automático, compiladores, etc., pero eso es diferente de lo que considero “programación” en general.

Debería trabajar en algunos proyectos grandes de principio a fin si desea mejorar. Tal vez hacer algunos juegos o algunas aplicaciones web. Necesitas escribir programas que sean lo suficientemente largos como para que no puedas salirte con la tuya. Las tareas escolares tienden a ser cortas porque tienen que completarse en semanas, por lo que puede alejarse sin realmente aprender mucho de estas cosas.

No sé cuál será el consejo de Adam, pero estoy bastante seguro de que estará de acuerdo con mi respuesta.
¿Qué es el software?
El software tiene que ver con la humanidad, utilizando la tecnología informática para hacer una vida más fácil y brillante para la humanidad.
Entonces, como ingeniero de software, uno debe comenzar a pensar en pequeños problemas de la vida diaria y tratar de resolverlos escribiendo algunas aplicaciones pequeñas. Día a día descubrirás un problema biger, obtendrás una curva de aprendizaje impresionante y, al final del día, una buena cantidad de proyectos para mostrar en tu CV. 🙂
Feliz codificación ..

Este video puede ayudarte. 🙂

More Interesting

¿Por qué patrocina Microsoft Apache Software Foundation (desarrollador de OpenOffice)?

¿Qué es una casa de software?

¿Qué calificación es esencial para convertirse en un arquitecto de software?

En un principio de patrón de diseño, qué hace 'Programar a una interfaz, no a una implementación'. ¿media?

¿Cuál sería una buena plataforma / marco para usar?

¿Qué es BAP (Bedien und Anzeigeprotokoll) y sus usos en el desarrollo de software automotriz?

¿Cómo es el mercado de trabajos de prueba de software en Bangalore?

¿Es necesario que un ingeniero informático conozca el desarrollo de aplicaciones?

¿Por qué los desarrolladores de software son tan caros en Silicon Valley?

Dada la falta de empresas de Internet de consumo altamente exitosas en la pila .NET, ¿por qué Microsoft no hace un mayor esfuerzo para lograr la adopción de .NET entre las nuevas empresas emergentes orientadas al consumidor?

Si no voy a una escuela superior, ¿debería hacer ingeniería informática en lugar de ciencias de la computación para ser competitivo para las oportunidades de trabajo de software?

¿Cómo es la pasantía en Palantir?

¿Cómo es la arquitectura del software Siemens Teamcenter?

¿Cuál fue la primera reverberación basada en software disponible? Sé que los VST no se desarrollaron hasta mediados de los noventa, pero ¿qué reverberación de software digital sin hardware podría usar en los años ochenta, presumiblemente por una audiencia increíblemente mínima?

Cómo abordar un proyecto que tiene miles de líneas de código