Aquí hay algunos puntos que creo que son útiles:
- Persistencia. El desarrollo de software a menudo puede ser como golpearse la cabeza con sangre contra una pared hasta que finalmente se abre paso hacia el otro lado. Sin embargo, una vez que lo logras, a menudo se siente genial. Olvidar rápidamente toda la frustración que algo te causó es probablemente vital para tu salud mental a largo plazo 😉
- Pensamiento abstracto. La mayoría de las cosas en ingeniería de software son muy abstractas. Pero es de gran ayuda si eres capaz de imaginar cómo se “ven” y entender cómo “interactúan” entre sí. Los diferentes programadores manejan esto de manera diferente, pero poder visualizar cosas / interacciones abstractas dibujando y haciendo diagramas simples es probablemente la forma más común.
- Sencillez. El software es intrínsecamente complejo, por lo que es importante mantener las cosas lo más simples posible. Si no tiene cuidado, la complejidad comenzará a arrastrarse por todas partes en su sistema, haciendo que el sistema sea difícil de entender y mantener. También aumenta el riesgo de mal funcionamiento.
- Fundamentos Comprenda los componentes básicos de una computadora, como la memoria, el almacenamiento (discos duros), las redes, etc. Todo el software está construido sobre estos, por lo que es importante comprender las propiedades básicas y el comportamiento de ellos.
- Algoritmos Como mencionaste algoritmos, tengo que comentar sobre eso. Esas preguntas a menudo aparecen aquí en Quora y creo que la gente piensa en algoritmos de bajo nivel como los algoritmos de clasificación, etc. En mi experiencia, esto no es muy importante. Estos son “problemas resueltos” que son compatibles con la mayoría de los lenguajes / entornos de programación, por lo que, a menos que sea muy especializado, rara vez necesitará implementarlos usted mismo.