Red de conocimiento informático - Espacio del host - ¿Qué habilidades y certificaciones se necesitan para convertirse en ingeniero de software?

¿Qué habilidades y certificaciones se necesitan para convertirse en ingeniero de software?

Para convertirse en un excelente ingeniero de software, debe tener las siguientes habilidades:

Si desea participar en la capacitación o obtener más información, puede ir al sitio web en "Changsha Dongtang Strength" en Baidu para obtener más información. .

1. La tecnología es el camino central, necesario y real, pero no es en absoluto suficiente entender solo la tecnología. También es necesario tener considerables habilidades sociales. Resumí las habilidades técnicas y sociales que cualquier ingeniero debería poseer y evalué la importancia de estas habilidades. Como se muestra a continuación:

Categorías técnicas

1. Conceptos básicos de la arquitectura informática: este es el más básico, pero solo se requiere un concepto general. Si un ingeniero de software no tiene ningún concepto de arquitectura informática, no es un ingeniero cualificado. Para los arquitectos de hardware o los ingenieros de controladores de dispositivos y kernel del sistema operativo, se requiere una investigación más profunda.

b. Conceptos básicos de los principios del sistema operativo: los principios del sistema operativo pueden ayudar a los ingenieros a comprender mejor el significado de la programación. Muchas aplicaciones de software extraen lecciones de las ideas del sistema operativo. Se puede decir que comprender los principios del sistema operativo puede ayudar a los ingenieros a diseñar mejores software o componentes. Por supuesto, los ingenieros de controladores de dispositivos y kernel del sistema operativo necesitan una investigación más profunda.

c. Conceptos básicos de algoritmos y estructura de datos: dominar ciertos conocimientos puede permitir a los ingenieros tener un impacto en los problemas que desean resolver y alentarlos a diseñar e implementar programas más eficientes y hermosos. Del mismo modo, para los desarrolladores de aplicaciones, el grado de dominio requerido varía según las diferentes áreas problemáticas. El cifrado/descifrado, el procesamiento de imágenes y el procesamiento de vídeo/audio requieren algoritmos superiores.

D. Conceptos básicos del lenguaje ensamblador: En la actualidad, el lenguaje ensamblador juega un papel cada vez menor en la programación, pero esto no afecta su estado. Un ingeniero serio debe tener algunos conocimientos de lenguaje ensamblador. El desarrollo de controladores y kernel del sistema operativo requiere un ensamblaje de nivel superior. El procesamiento de vídeo/audio e imágenes a veces requiere mucho montaje.

e. Lenguaje C: ¿No entiendes el ensamblado? No importa, siempre y cuando puedas entender C, después de todo, está cerca del lenguaje ensamblador, aunque es un lenguaje de alto nivel. Cualquier ingeniero serio debería conocer C y poder diseñar programas utilizando su conjunto básico de funciones.

f. Capaz de desarrollar aplicaciones en al menos una plataforma de sistema operativo: el programa no puede existir independientemente del entorno operativo. Aunque estamos comprometidos con el desarrollo de programas portátiles, al menos deberíamos comprender mejor las características de una plataforma.

Conocimientos de ingeniería de software: ¿Puedo ser ingeniero sin conocimientos de ingeniería? Como el proceso de desarrollo de software.

g. Conocimientos de OO: imprescindible. No es necesario dar más detalles.

H. Patrones de diseño: No es necesario conocer todos los patrones, pero al menos debes conocer los principios de la programación: interfaces de programación. También sepa para qué los está usando, no modele por modelar.

1. Uso de herramientas de documentos comunes: el uso competente de herramientas de documentos le permite expresar mejor sus opiniones a todos y registrarlas para su verificación.

Uso de J.IDE: No necesario. Pero dominar un IDE puede mejorar cierta eficiencia.

k Uso de la cadena de herramientas: creo que la mayoría de los ingenieros en la plataforma Linux tendrán al menos una: gcc+make+binutils.

Uso de herramientas CM: como clearcase, o cvs. No sólo necesitas saber cómo utilizarlos, sino también para qué los utilizas.

Expresiones regulares: Muchas veces el trabajo diario de los ingenieros incluye procesar una gran cantidad de archivos de registro, etc. Dominar las expresiones regulares consiste en mejorar la eficiencia.

Meter (abreviatura de metro)) al menos un lenguaje de scripting: perl, UNIX shell, python, etc. A menudo se utiliza en el trabajo diario.

n. Conceptos básicos de los principios de compilación: no hace falta decirlo. Si ni siquiera tiene una idea básica de cómo escribir su propio programa a partir de texto en un archivo ejecutable, entonces venda kebabs. Esto es mucho más prometedor que ser ingeniero.

Conocimientos matemáticos: ni demasiado ni demasiado avanzados. Pero los ingenieros que se dedican a cálculos matemáticos o investigación de algoritmos requieren conocimientos matemáticos avanzados.

2. Habilidades sociales

a. Espíritu de equipo: no es necesario enfatizar. Los días del heroísmo individual han quedado atrás para siempre. El trabajo en equipo es la forma de sobrevivir.

b. Habilidades de comunicación: esto incluye lo más básico: poder expresarse con claridad.

Nadie quiere tratar con alguien que no tiene habilidades comunicativas. Los equipos con buenas habilidades de comunicación serán más eficientes.

c. Capacidad de abstracción: si no puedes pensar desde un nivel más amplio y superior, siempre permanecerás en la etapa de escribir código.

d. Buenas habilidades de documentación: 3 y 4 en realidad implican esto. No es necesario que seas escritor, pero sí debes poder expresar tus problemas de manera concisa y clara en tu idioma de trabajo (como tu lengua materna). Nadie quiere leer un documento en forma de envoltura para los pies.

E. Capacidad de análisis y resolución de problemas: relacionado con 3. Esto requiere mucho conocimiento y suficiente experiencia, lo que conduce a:

f. Capacidad de aprendizaje continuo: no solo aprender nuevos conocimientos, sino también ser bueno para resumir experiencias y lecciones. En resumen, es aprendizaje + resumen.

G. Humildad: Nadie quiere trabajar con alguien arrogante, ¿verdad? No hace falta decir más que la humildad hace progresar a las personas.

Apertura: Voluntad de compartir conocimientos y comunicarse con los demás. Al compartir sus conocimientos con otros, no tiene que preocuparse por ser superado o reemplazado por otros. Recuerda: son tus características (o carisma) las que te hacen único, no tus conocimientos. Compartir conocimientos también puede hacer que su comprensión del conocimiento sea más sólida.

H. Ama la vida: El arte surge de la vida, pero es superior a la vida. La programación también es un arte.

1. Sea diligente y práctico: coma poco a poco, aprenda conocimientos poco a poco y trabaje poco a poco. No sigas la tendencia y no mires qué tecnología te genera dinero y aprende más; lo más importante es estar ansioso por lograr un éxito rápido. El software y el aprendizaje son lo mismo.

j. Sé bueno siendo vago: No es que no lo hagas, sino que tienes que esforzarte al máximo para dejar que el ordenador lo haga por ti.

K. Capacidad de pensamiento lógico: esto es lo que todo el mundo debería tener: los ingenieros de software deberían tener una mejor capacidad de pensamiento lógico.

l. Capacidad de gestión: incluso si no eres un líder, aún la necesitas, porque gestionar tu propio trabajo, tiempo y base de conocimientos también es un tipo de gestión.

m, caprichoso: de ahí surge la innovación.

Sustantivo (abreviatura de sustantivo) Optimismo: no siempre te quejes del software o la documentación deficientes de otras personas; nadie es perfecto.

o.Serio pero no serio: Tomarse en serio cada asunto y cada decisión. Todo es racional. Ser serio pero no serio puede controlar mejor el problema, en lugar de entrar en discusiones y riñas interminables. A veces es necesario hacer concesiones, pero éstas requieren razones de peso.

Comprueba uno por uno para ver si eres un ingeniero de software cualificado.