Red de conocimiento informático - Conocimientos de programación - ¿Qué necesitan aprender los programadores?

¿Qué necesitan aprender los programadores?

Existen muchas demandas laborales para los programadores. Por ejemplo, las grandes empresas de Internet, las empresas de desarrollo de software, etc., necesitan programadores.

Los programadores necesitan aprender:

1. Datos maestros y su conversión, representación de datos en la máquina, operaciones aritméticas y lógicas, y conocimientos básicos relacionados de matemáticas aplicadas;

2. Comprender la composición de una computadora y los indicadores de rendimiento de sus principales componentes;

3. Dominar los conocimientos básicos de sistemas operativos y lenguajes de programación;

4. Ser competente en computadoras de uso común, métodos operativos básicos de software de oficina

5. Competente en estructuras de datos básicas y algoritmos de uso común

6. uno de C, Java y Visual Basic

7. Familiarizarse con los conocimientos básicos de bases de datos, redes y multimedia

8. Conocimiento básico de procesos de software y gestión de proyectos de desarrollo de software. Sentido común;

9. Comprender los estándares comunes de tecnología de la información, la seguridad y el conocimiento básico de las leyes y regulaciones relevantes;

10. conocimientos básicos de informatización y aplicaciones informáticas;

11. Leer y comprender correctamente materiales sencillos en inglés en el campo de la informática.

Habilidades esenciales para programadores:

1. Competente en herramientas de desarrollo.

Como programador, debes dominar el uso de al menos dos o tres herramientas de desarrollo. Esta es la base de los programadores. C/C y JAVA son las herramientas de desarrollo más recomendadas. C/C se ha convertido en una herramienta poderosa entre las herramientas de desarrollo debido a su alta eficiencia y alta flexibilidad. C. Escrito en C.

La multiplataforma de JAVA y su buena integración con WEB son las ventajas de JAVA, y es probable que JAVA, su conjunto de tecnologías relacionadas JAVAOne, se convierta en una de las principales herramientas de desarrollo en el futuro.

En segundo lugar, sería mejor dominar una herramienta de desarrollo visual simple, como VB, Delphi y CBuilder. Estas herramientas de desarrollo reducen la dificultad del desarrollo y pueden fortalecer el concepto del modelo de objetos del programador.

Además, es necesario dominar los lenguajes de script básicos, como Shell, Perl, etc., y al menos poder leer estos códigos de script.

2. Familiarícese con las bases de datos

Como programadores, naturalmente tienen sus propias razones: muchas aplicaciones se centran en datos de bases de datos y existen muchos productos de bases de datos, incluidas las bases de datos relacionales. 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 el método universal de operación de bases de datos. Si no tiene acceso a sistemas de bases de datos comerciales, es una buena opción utilizar productos de bases de datos gratuitos, como mySQL, Postgres, etc.

3. Comprender el sistema operativo

Los principales sistemas operativos actuales son Windows y Linux/Unix. Es necesario un uso competente de estos sistemas operativos, pero no son suficientes.

Para convertirse en un verdadero maestro de la programación, debe tener un conocimiento profundo del 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. etc.

Linux, como sistema operativo para desarrollar código fuente, es una buena plataforma de aprendizaje. Linux tiene casi todas las características de los sistemas operativos modernos. Aunque hay menos información sobre el mecanismo de implementación del kernel de los sistemas Windows, aún se puede obtener mucha información a través de Internet. Comprender el protocolo de red TCP/IP.

Hoy en día, cuando Internet es tan popular, si aún no domina la pila de protocolos TCP/IP, el protocolo de soporte de Internet, debe ponerse al día rápidamente con esta lección. La tecnología de red ha cambiado. la forma en que se ejecuta 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 del protocolo de red basado en la pila de protocolos TCP/IP. Una comprensión profunda de TCP/IP. El protocolo 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 la existencia 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 modelos informáticos futuros. DCOM/CORBA es la plataforma intermedia para los dos sistemas informáticos distribuidos actuales. DCOM es una extensión de Microsoft COM (Modelo de objetos componentes) y CORBA es una especificación. apoyado por Dios mío.

La importancia de XML/WebServices es evidente. XML es conocido como el "esperanto" en Internet por su método de representación estructurado 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 la ingeniería reemplaza el heroísmo personal y se convierte en la garantía del éxito del software. system Un maestro en programación No es necesario ser un buen programador.

Un excelente programador combina excelentes habilidades de programación y habilidades de desarrollo con un pensamiento estricto de ingeniería de software. La programación es solo una parte del ciclo de vida del software. Un excelente programador debe dominar todos los aspectos del desarrollo de 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 de comprensión de requisitos

Los programadores deben ser capaces de comprender correctamente los requisitos descritos en el orden de tareas. Aquí debe quedar claro 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.

Para poder evaluar correctamente el impacto y las amenazas potenciales de su propio módulo en todo el proyecto, si un programador experto con dos o tres años de experiencia en proyectos no entiende esto, solo puede significar que Puede ser que trabajé duro, pero no trabajé duro.

7. Capacidad de pensamiento modular

Como excelente programador, su pensamiento no puede limitarse a las tareas de trabajo actuales. Debe pensar si los módulos que escribe se pueden separar de los actuales. El sistema existe y se puede utilizar directamente en otros sistemas u otros módulos mediante una simple encapsulación.

Esto puede hacer que el código sea reutilizable, reducir la duplicación de trabajo y hacer que la estructura del sistema sea más razonable. La mejora de la capacidad de pensamiento modular es un indicador importante de la mejora del 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 se están desarrollando lenguajes como. Javascript, PHP y Ruby son los más populares. Parte de ellos se utilizan para el desarrollo web.

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 de. sistemas empresariales.

3. Software del sistema

El lenguaje C, C y Objective-C se utilizan más en el desarrollo de software del sistema y en el desarrollo integrado.

Por supuesto, esta clasificación no es absoluta. JAVA, C# y VB se utilizan a menudo en el desarrollo de sitios web dinámicos. El desarrollo integrado se utiliza en muchos proyectos de desarrollo. Se utilizan varios lenguajes de desarrollo en el mismo proyecto, cada uno de los cuales muestra sus puntos fuertes y se desarrolla simultáneamente.

Pero cuando comience, se recomienda elegir primero una herramienta de desarrollo adecuada para usted, "concéntrese en aprender y ataque con todas sus fuerzas".

Información ampliada:

Si sabes programar y utilizar lenguajes informáticos, podrás unirte a la marea del desarrollo de Internet y disfrutar de los dividendos del desarrollo de la economía digital durante un tiempo. Las instituciones de formación de programadores en la sociedad se han vuelto extremadamente calientes.

Pero ahora, los resultados del análisis de datos de los expertos le dicen: si desea mantenerse al día con el desarrollo de la economía digital, no puede simplemente programar. Esta industria ahora tiene escasez de productos integrales de alta gama. prendas.

En la tarde del 22 de noviembre, 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 el estado actual y Tendencias de los talentos digitales de mi país.

El informe muestra que el desarrollo de la economía digital de mi país enfrenta el 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 avanzadas, y el número de Los talentos con tecnologías de vanguardia como la inteligencia artificial y la fabricación inteligente son aún mayores.

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, el informe se basa en el análisis de datos de la demanda de talento. Los resultados muestran que la demanda de habilidades de los talentos digitales de mi país ya no enfatiza habilidades de programación únicas, sino que presta más atención a habilidades integrales como la tecnología. , gestión y liderazgo.

En 2015, había alrededor de 3,5 millones de personas trabajando en 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 en corte. tecnologías de punta. Según una investigación del grupo de expertos LinkedIn China, en el campo de la inteligencia artificial, el número de profesionales en los Estados Unidos es más de 850.000, la India tiene 150.000, el Reino Unido tiene 140.000 y China tiene sólo más de 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, dijo que mi país tiene actualmente una evidente brecha de talento en los campos de big data y artificial. inteligencia.

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 en análisis en profundidad, fabricación avanzada, marketing digital y otras funciones es inferior al 5% Hay una gran brecha y las industrias emergentes tienen rezagos y deficiencias en el cultivo de talentos técnicos e innovadores.

Los datos básicos de este informe de investigación provienen de los 36 millones de usuarios individuales de LinkedIn en China. Estos usuarios se graduaron en más de 15.000 universidades nacionales y extranjeras, están distribuidos en 364.000 empresas y tienen más de 23.000 elementos. .

El equipo de investigación de Chen Yubo examinó 720.000 talentos digitales, extrajo perfiles de usuarios de múltiples dimensiones y siguió sus trayectorias profesionales para predecir flujos de talento, tasas de empleo, habilidades populares entre los empleadores y otra información sobre tendencias de talento en diferentes regiones.

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 al talento. Capacidades técnicas, de gestión y de liderazgo integrales.

En los últimos años, la demanda de habilidades de "gestión técnica", como la gestión de proyectos y las operaciones de productos, ha mostrado una evidente tendencia ascendente. 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á interesado en transformarse a una función digital, no puede centrarse únicamente en sus capacidades técnicas, como la comunicación y el liderazgo, que se convertirán en la clave. para que destaques.

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, las brechas técnicas, etc., para formular una introducción de talentos específica. estrategias.

Responsabilidades laborales del programador:

1. Responsable ante el director del proyecto, responsable del diseño detallado, codificación, organización e implementación de pruebas internas de proyectos de software y, al mismo tiempo, responsable del análisis del sistema. de pequeños proyectos de software. Completar la implementación y soporte técnico de los proyectos asignados.

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 investigaciones 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 al gerente del proyecto sobre la situación del desarrollo del software y hacer sugerencias de mejora basadas en la situación real.

6. Participar en la solución de los principales problemas técnicos en el proceso de desarrollo y mantenimiento del software, y participar en la instalación y depuración inicial del software, la transferencia de datos, la capacitación de los usuarios y la promoción del proyecto.

7. Responsable de la formulación de documentos técnicos relevantes.

8. Responsable de analizar e investigar los desarrollos tecnológicos 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 solo recomendaron los 9 libros principales.

De hecho, a excepción de los primeros 9 libros, los 30 libros más recomendados se consideran clásicos. El autor compiló y compiló esta publicación de preguntas y respuestas y extrajo algunos de los comentarios de los recomendadores.

A continuación se ordena según el número de recomendaciones de cada libro.

1. "La Enciclopedia del Código" de Steve McConnell

2. "El Camino de la Formación de Programadores"

3. Construcción e Interpretación de la "Programación Informática". "

4. "Introducción a los algoritmos"

5. "Refactorización: mejora del 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. "Vivo"