¿Qué necesitan aprender los programadores?
Los programadores necesitan aprender:
1. Dominar los conocimientos básicos relacionados con los datos y su transformación, la representación interna de datos, las operaciones aritméticas y lógicas y las matemáticas aplicadas;
2, comprender la composición de la computadora y los indicadores de rendimiento de los componentes principales;
3. Dominar los conocimientos básicos de sistemas operativos y lenguajes de programación;
4. con los métodos operativos básicos del software de oficina;
5. Dominar las estructuras de datos básicas y los algoritmos comunes;
6. Dominar el lenguaje de programación C y uno de C++, Java y Visual Basic. ;
7, estar familiarizado con los conocimientos básicos de bases de datos, redes y multimedia;
8. Dominar los conocimientos básicos de ingeniería de software, comprender los conocimientos básicos de los procesos de software y el sentido común. de gestión de proyectos de desarrollo de software;
9. Comprender los conocimientos básicos de los estándares de tecnología de la información de uso común, las leyes y regulaciones de seguridad y relacionadas;
10. Comprender los conocimientos básicos de informatización e informática. aplicaciones;
11. Leer y comprender correctamente la información de campo informática en inglés sencillo.
Habilidades esenciales para los programadores:
1. Competente en herramientas de desarrollo
Como programador, dominar al menos dos o tres herramientas de desarrollo es la base de un programador. . Entre ellas, C/C++ y JAVA son las herramientas de desarrollo más recomendadas. C/C++ se ha convertido en una poderosa herramienta entre las herramientas de desarrollo debido a su alta eficiencia y alta flexibilidad. Muchos software a nivel de sistema todavía están escritos en C/C++.
La naturaleza multiplataforma de JAVA y su buena integración con WEB son sus ventajas, y es probable que JAVA, con su conjunto de tecnologías relacionadas JAVAOne, se convierta en una de las principales herramientas de desarrollo en el futuro.
En segundo lugar, es mejor dominar una herramienta de desarrollo visual simple, como VB, PowerBuilder, Delphi, CBuilder, que reduce la dificultad de desarrollo y fortalece los conceptos de modelo de objetos de los programadores.
Además, también es necesario dominar lenguajes de scripting básicos, como shell, perl, etc. y al menos comprender el código del script.
2. Familiarícese con las bases de datos
Como programador, naturalmente tiene sus propias razones: muchas aplicaciones se centran en datos de bases de datos y existen muchos productos de bases de datos, entre las que se encuentran las bases de datos relacionales. Siguen siendo la forma principal, por lo que los programadores deben dominar al menos una o dos bases de datos, tener muy claros los elementos clave de las bases de datos relacionales y dominar la sintaxis básica de SQL.
Aunque muchos productos de bases de datos proporcionan herramientas visuales de administración de bases de datos, SQL es la base y un método de operación de bases de datos comúnmente utilizado. Si no tiene acceso a sistemas de bases de datos comerciales, utilizar productos de bases de datos gratuitos es una buena opción, como mySQL y Postgres.
3. Comprender el sistema operativo
Los principales sistemas operativos actuales incluyen Windows y Linux/Unix. El dominio del uso de estos sistemas operativos es necesario, pero no suficiente.
Para convertirse en un verdadero maestro de la programación, debe comprender el sistema operativo, su mecanismo de administración de memoria, programación de procesos/hilos, señales, objetos del núcleo, llamadas al sistema, implementación de la pila de protocolos, etc.
Linux, como sistema operativo para desarrollar código fuente, es una buena plataforma de aprendizaje. Linux tiene casi todas las características de un sistema operativo moderno. Aunque hay poca información sobre el mecanismo de implementación del kernel del sistema Windows, se puede obtener mucha información a través de Internet. Comprender el protocolo de red TCP/IP.
Hoy en día, con la popularidad de Internet, si no domina la pila de protocolos TCP/IP, debe ponerse al día con esta lección rápidamente. La tecnología de redes ha cambiado la forma en que opera el software.
Desde la primera estructura cliente/servidor hasta los servicios WEB actuales y la futura computación grid, todo esto es inseparable del soporte de protocolo de red basado en la pila de protocolos TCP/IP. El protocolo IP es muy necesario.
Al menos, es necesario comprender el modelo de protocolo ISO de siete capas, los principios de protocolos comunes como IP/UDP/TCP/HTTP y el mecanismo de protocolo de enlace de tres vías.
4. Comprender la importancia de DCOM/CORBA/XML/WEBServices.
Con el desarrollo de la tecnología, la perfecta integración del software y la red es una tendencia inevitable, y la independencia de ubicación de los sistemas de software es una de las características importantes de los futuros modelos informáticos. DCOM/CORBA es una plataforma intermedia para dos sistemas informáticos distribuidos convencionales. DCOM es una extensión de Microsoft COM (Modelo de objetos componentes) y CORBA es una especificación compatible con OMG.
La importancia de XML/WebServices es evidente. XML se llama "esperanto" en Internet debido a su representación estructurada y su capacidad súper expresiva, y es una de las piedras angulares de la informática distribuida.
5. No separar la ingeniería de software de la CMM.
En el desarrollo de sistemas de software a gran escala, el control del desarrollo de ingeniería reemplaza el heroísmo personal y se convierte en la garantía del éxito del sistema de software. Los programadores no son necesariamente buenos programadores.
Un excelente programador combina orgánicamente excelentes habilidades de programación y desarrollo con un pensamiento riguroso en ingeniería de software. La programación es sólo una parte del ciclo de vida del software. Un buen programador debe dominar las habilidades básicas en cada etapa del desarrollo del software.
Tales como análisis de mercado, análisis de viabilidad, análisis de demanda, diseño estructural, diseño detallado, pruebas de software, etc.
6. Capacidad para comprender los requisitos
Los programadores deben comprender correctamente los requisitos descritos en la lista de tareas. Lo que debería quedar claro aquí es que los programadores no sólo deben prestar atención a los requisitos funcionales del software, sino también a los requisitos de rendimiento del software.
Si un programador experto con dos o tres años de experiencia en proyectos no comprende correctamente el impacto y las amenazas potenciales de su módulo en todo el proyecto, sólo significa que puede que haya trabajado duro, pero no lo ha hecho. Trabajé duro.
7. Capacidad de pensamiento modular
Como excelente programador, su pensamiento no puede limitarse a la tarea actual. Piense si el módulo que escribió puede existir independientemente del sistema actual y usarse directamente en otros sistemas u otros módulos mediante una simple encapsulación.
Hacer esto puede hacer que el código sea reutilizable, reducir el trabajo repetitivo y hacer que la estructura del sistema sea más razonable. La mejora de la capacidad de pensamiento modular es un indicador importante para mejorar el nivel técnico de un programador.
Dirección del empleo:
1. Desarrollo de redes
Ahora Internet se ha convertido en un puente para la comunicación mundial. Parece que la mayor parte del desarrollo web utiliza Javascript, PHP y Ruby.
2. Desarrollo de software empresarial
Los lenguajes de desarrollo como JAVA, C# y VB han logrado los objetivos del desarrollo orientado a objetos y se utilizan con mayor frecuencia en el desarrollo empresarial. sistemas.
3. Software del sistema
El desarrollo de software del sistema y el desarrollo integrado utilizan principalmente lenguaje C, C++ y Objective-C.
Por supuesto, esta clasificación no es absoluta. JAVA, C# y VB se utilizan a menudo en el desarrollo de sitios web dinámicos. En muchos proyectos de desarrollo, se utilizan métodos de desarrollo integrados y se utilizan varios lenguajes de desarrollo en el mismo proyecto, cada uno de los cuales muestra sus puntos fuertes y se desarrolla simultáneamente.
Sin embargo, al principio, se recomienda elegir una herramienta de desarrollo que se adapte a sus necesidades, "concéntrese en aprender y luchar duro".
Datos ampliados:
Solo aquellos que entienden la programación y los lenguajes informáticos pueden unirse a la marea del desarrollo de Internet y disfrutar de los dividendos del desarrollo económico digital. Durante un tiempo, las instituciones de formación de programadores en la sociedad se volvieron extremadamente populares.
Pero ahora, los resultados del análisis de datos de los expertos le dicen que si desea mantenerse al día con el desarrollo de la economía digital, no puede simplemente dedicarse a la programación. Esta industria carece de talentos integrales y de alto nivel. .
165438+En la tarde del 22 de octubre, el Centro de Investigación de Gobernanza y Desarrollo de Internet de la Facultad de Economía y Gestión de la Universidad de Tsinghua y LinkedIn publicaron conjuntamente "Transformación digital de la economía de China: talento y empleo", que revela la situación actual. situación de los talentos y tendencias digitales de China.
El informe muestra que el desarrollo de la economía digital de China se enfrenta al desafío de la escasez de talento, pero esta escasez se refleja principalmente en la baja proporción de talentos digitales con habilidades profesionales intermedias y superiores, y la cantidad de talentos. con tecnologías de vanguardia como la inteligencia artificial y la fabricación inteligente es menor.
En comparación con Estados Unidos, el Reino Unido, Canadá y otros países, la reserva de talento digital de China todavía está muy por detrás.
Además, según el análisis de datos de la demanda de talento, el informe muestra que la demanda de habilidades de los talentos digitales de China ya no enfatiza habilidades de programación únicas, sino que presta más atención a habilidades integrales como tecnología y gestión. y liderazgo.
En 2015, había alrededor de 3,5 millones de personas dedicadas a las industrias de transmisión de información, software y servicios de tecnología de la información en mi país, pero no había muchos talentos de nivel medio a alto, especialmente talentos digitales con corte. -tecnologías de punta. Según una investigación del grupo de expertos LinkedIn China, en el campo de la inteligencia artificial, Estados Unidos tiene más de 850.000 empleados, India tiene 150.000, el Reino Unido tiene 140.000 y China solo 50.000.
El profesor Chen Yubo, responsable del informe y vicedecano de la Facultad de Economía y Gestión de la Universidad de Tsinghua, afirmó que China tiene una evidente brecha de talento en los campos de big data e inteligencia artificial.
Explicó que actualmente más del 85% de los talentos digitales de China se distribuyen en investigación y desarrollo de productos, mientras que el número total de talentos con análisis en profundidad, fabricación avanzada, marketing digital y otras funciones es inferior al 5%, por lo que hay una brecha enorme. Hay rezagos y deficiencias en el cultivo de talentos técnicos emergentes y talentos innovadores.
Los datos básicos de este informe de investigación provienen de los 36 millones de usuarios individuales de LinkedIn en China. Se graduaron en más de 6.5438+05.000 universidades nacionales y extranjeras, están distribuidos en 364.000 empresas y poseen más de 23.000 habilidades. .
El equipo de investigación de Chen Yubo examinó 720.000 talentos digitales, extrajo perfiles de usuarios de múltiples dimensiones y realizó un seguimiento de sus trayectorias profesionales para predecir información sobre tendencias de talento en diferentes regiones, como el flujo de talento, la tasa de empleo, las habilidades de bienvenida del empleador, etc.
Chen Yubo dijo que, según los resultados del análisis de datos, en general, aunque domina la demanda de habilidades de programación y análisis de datos, a medida que la industria digital madura, las empresas no solo enfatizan las habilidades de programación, sino que también pagan gradualmente. Más atención a las habilidades integrales de los talentos técnicos, de gestión y de liderazgo.
En los últimos años, la demanda de habilidades de "tecnología + gestión", como la gestión de proyectos y la operación de productos, ha mostrado una importante tendencia al alza, y los talentos que entienden la tecnología y la gestión se consideran "difíciles de encontrar".
Zeng Zhiheng, presidente en funciones de LinkedIn China, también recordó que si estás interesado en transformarte a funciones digitales, no debes centrarte solo en tus capacidades técnicas, como la comunicación y el liderazgo, serán la clave. a destacar.
Chen Yubo espera que los resultados de esta investigación puedan servir de referencia para la industria educativa y los departamentos gubernamentales. Dijo que la industria de la educación puede planificar mejor la dirección de la formación de talentos en función de las tendencias de la oferta y la demanda de los puestos, y el gobierno también puede comprender mejor la dirección del flujo de talentos y las brechas tecnológicas, a fin de formular estrategias específicas de introducción de talentos.
Responsabilidades laborales del programador:
1. Responsable ante el director del proyecto, responsable del diseño detallado, codificación y pruebas internas de proyectos de software, participando en el análisis del sistema de pequeños proyectos de software y Completar la implementación de los proyectos asignados y el soporte técnico.
2. Ayudar a los gerentes de proyectos y al personal relacionado a comunicarse con los clientes y mantener buenas relaciones con ellos.
3. Participar en estudios de demanda, análisis de viabilidad de proyectos, análisis de viabilidad técnica y análisis de demanda.
4. Familiarizarse y dominar las tecnologías de software relevantes para la entrega de proyectos de software desarrollados por el departamento de software.
5. Responsable de proporcionar retroalimentación oportuna sobre el estado del desarrollo del software al gerente del proyecto y hacer sugerencias de mejora basadas en la situación real.
6. Participar en la resolución de problemas técnicos importantes en el proceso de desarrollo y mantenimiento de software, y participar en la primera instalación y depuración de software, intercambio de datos, capacitación de usuarios y promoción de proyectos.
7. Responsable de la redacción de documentos técnicos relevantes.
8. Responsable de analizar e investigar las tendencias de desarrollo tecnológico en el ámbito empresarial.
Libros relacionados:
Muchos programadores respondieron y escribieron sus propios comentarios al recomendar. Los internautas nacionales han presentado esta lista de libros para programadores antes, pero todos recomendaron los 9 libros principales.
De hecho, a excepción de los primeros nueve libros, los treinta libros más recomendados son todos clásicos. El autor compiló este artículo de preguntas y respuestas y extrajo algunos de los comentarios de los jueces.
Lo siguiente está ordenado según la cantidad recomendada de cada libro.
1. Steve McConnell, Libro de códigos
2. "La práctica del programador"
3. La estructura de los programas informáticos y su explicación.
4. Introducción a los algoritmos
5. Refactorización: mejorar el diseño del código existente
6 Patrones de diseño
7 .El mito del hombre y la luna
8. El arte de la programación informática
9. Principios de compilación (Libro del Dragón)
10. /p>
Enciclopedia Baidu - Programadores
Materiales de referencia:
People's Daily Online: casi el 40% de los programadores tienen un salario anual promedio de 6,5438+9 millones de yuanes.
Materiales de referencia:
People's Daily Online - ¿Puedes convertirte en codificador si sabes programar? La industria carece de talentos integrales de alto nivel.