Red de conocimiento informático - Espacio del host - Quiero aprender programación pero no sé cuál es mejor.

Quiero aprender programación pero no sé cuál es mejor.

Confirma que realmente quieres ingresar al campo del desarrollo de software

El desarrollo de software es una actividad puramente intelectual (la gente ahora se da cuenta de que sobrecargar la programación continua durante mucho tiempo no mejorará la productividad del software Tendrá un gran impacto negativo en la calidad del software, por lo que aunque muchos programadores todavía trabajan horas extras durante largos períodos de tiempo, este fenómeno está disminuyendo gradualmente y eventualmente desaparecerá, por lo que los requisitos físicos no son mayores que en otras industrias), si usted es No es una persona con una inteligencia superior al promedio. Para ser honesto, el desarrollo de software no es adecuado para usted. Es básicamente imposible que alcance altos logros y estatus en el campo del desarrollo de software, y pronto será eliminado a medida que envejezca.

Si sigues el ejemplo de esos héroes del software y hackers famosos que han desarrollado el software más compartido, determina convertirte en uno de ellos y empuñar espadas como los héroes de las novelas de artes marciales. Primero quiero echarte mucha agua fría y llevarte de la fantasía a la realidad. En primer lugar, la complejidad y la escala del software actual son mucho mayores que antes. Es básicamente imposible que una persona complete un software de mayor escala por sí sola (aunque todavía hay algunas excepciones, pero créanme, esas son solo excepciones, por favor). no se arriesgue, imagine ser un superhombre único, un tipo afortunado); en segundo lugar, ya sean héroes del software o los mejores piratas informáticos del mundo, sus habilidades de desarrollo de software e inteligencia superan con creces el nivel promedio de los practicantes en el mundo. Industria del software. Sin años de acumulación y tenacidad, son extraordinarios con la perseverancia humana. En otras palabras, si quieres ser uno de ellos, puedes, pero primero conviértete en un desarrollador de software calificado.

Si no estás satisfecho con tu trabajo actual debido al llamado "salario alto" de los programadores y tienes la idea de cambiar de carrera, te aconsejo que lo pienses nuevamente. En términos generales, el salario de los programadores es más alto que el promedio, pero está lejos de ser un salario alto. Y, según la carga de trabajo actual de los programadores, de hecho, por el mismo esfuerzo, lo que obtienen los programadores puede estar a la par del promedio. , la competencia y eliminación de programadores también es extremadamente cruel. La velocidad de actualización de la tecnología es poco común en otras industrias. Cada programador debe seguir corriendo para mantenerse al día y no quedarse atrás. Por lo tanto, en este nivel, nadie puede detenerse y descansar. El único que puede acumular experiencia es usted. de ello puede añadir fichas a su competitividad.

Habiendo dicho todo esto, no estoy siendo despectivo deliberadamente, pero espero contarles la verdadera situación de la industria del desarrollo de software que conozco. En base a esto, considere cuidadosamente si realmente desea ingresar. campo de desarrollo de software.

Volver al inicio de la página

Comprueba si eres apto para ser programador

En mi opinión, para ser un programador cualificado necesitas tener las siguientes varias condiciones:

1. Gran curiosidad y sed de conocimiento

2. El espíritu de búsqueda de la perfección

3. Buena capacidad de análisis lógico.

En casi todas las publicaciones similares se mencionan otras condiciones: si no vas a luchar solo, las habilidades de trabajo en equipo son esenciales; soy demasiado vago para hablar inglés y no tengo la capacidad básica para leer materiales en inglés. No hay razón para recomendarte que abandones la idea de convertirte en programador; si no estás haciendo algoritmos, la habilidad matemática de nivel secundario es suficiente, pero debes tener buenas calificaciones.

Entonces, ¿por qué hago hincapié en los tres puntos enumerados anteriormente?

Tener una gran curiosidad y deseo de conocimiento puede permitirle mantenerse al día con el ritmo del desarrollo tecnológico. Simplemente confiando en un sentido de crisis y responsabilidad, su aprendizaje tecnológico tendrá una fuerte naturaleza utilitaria, lo que conducirá a. su avance tecnológico. El sistema no puede formar un todo autónomo y es difícil tener un alto nivel de comprensión y dominio de la tecnología.

Un diseñador de sistemas senior que conozco me dijo: al crear software, "hacerlo" y "hacerlo bien" son conceptos completamente diferentes, y la inversión y el nivel técnico requeridos son mundos diferentes.

Hoy en día, muchos programadores en China sólo consideran el desarrollo de software como un medio de vida para mantener a sus familias. La mentalidad de arreglárselas y trabajar descuidadamente en la era de la economía nacional planificada también ha penetrado en la industria del software. No considere mejorarlos en absoluto. La reutilización y la capacidad de mantenimiento no se tienen en cuenta para mejorar la estabilidad y la velocidad de ejecución. Incluso el código es desordenado y no se siguen los estándares básicos de codificación (en mi opinión, esa persona no merece el título de "programador"). "). Cuando condenamos en voz alta el pobre entorno de la industria nacional del software, que depende de conexiones para realizar proyectos, no tiene un sistema de garantía de calidad y jefes que no valoran a los programadores y los explotan locamente, deberíamos preguntarnos: ¿eres simplemente ¿Mirándolos a otras personas?

Hoy en día, existen todo tipo de kits de desarrollo de software, todo incluido, y las herramientas de programación también son extremadamente poderosas y convenientes para el sistema MIS convencional en China, no es difícil completar una función. pero si el sistema es en su conjunto, la mayoría de ellos son sistemas que se ejecutan lentamente, ocupan demasiados recursos, tienen poca compatibilidad, poca capacidad de mantenimiento y son inestables. Si es así, ¿lo encontrará? que puedes desarrollar un software excelente, lo difícil que es, lo exigente que es técnicamente y lo rápido que mejoras mientras te esfuerzas por ser perfecto. Sin el espíritu de búsqueda de la perfección, no importa cuán bueno sea el entorno externo, no desarrollará un software excelente. Lo que le espera son modificaciones y mantenimiento interminables ~, y su nivel técnico siempre se mantendrá en la etapa de codificación simple y en. Al final sólo serás eliminado y obligado a cambiar de carrera.

Volver al principio

Bien, soy realmente apto para ser programador, entonces, ¿cómo empiezo?

Primero elige un lenguaje de programación y una plataforma de sistema operativo.

Las plataformas de sistemas operativos más populares en China son Windows, Linux (Unix) y Mac OS. En términos generales, todos eligen la plataforma Windows, porque esta plataforma es un sistema operativo monopolizado en China y hay muchas herramientas de desarrollo excelentes para elegir. La desventaja es que la apertura de la plataforma Windows no es alta y es difícil de elegir. explorar la capa inferior (Pero me disgusta bastante la idea de hablar de la capa inferior. No todos los desarrolladores necesitan conocer muy bien la capa inferior. Hacer un sistema que satisfaga a los usuarios es lo fundamental que perseguimos. Jugar con la Los trucos de la capa inferior son solo una especie de autosatisfacción. Por supuesto, necesitamos algunos maestros que dominen la tecnología subyacente, pero esto es una cuestión de elección personal), y los programadores que están acostumbrados a Windows son relativamente débiles en configuración, secuencias de comandos, etc. Linux es una plataforma de código abierto. Por supuesto, en teoría puedes controlar todo lo relacionado con Linux, pero ¿cuántas personas pueden alcanzar este nivel? Los programadores que recién comienzan a aprender a desarrollar solo pueden desarrollar algunas aplicaciones de software en Linux. Las herramientas de desarrollo en Linux no son lo suficientemente fáciles de usar, pero esta situación se está aliviando gradualmente. Eclipse es una excelente plataforma de desarrollo. Al desarrollar en Linux, puede obtener una gran cantidad de código fuente excelente y todo es transparente (siempre que lo desee), pero debe aprender muchas instrucciones de la línea de comandos, dominar varias configuraciones y scripts de parámetros y sistemas.

La elección del lenguaje de programación es aún más problemática. No he incursionado mucho en él. Para algunos lenguajes, no puedo dar ninguna sugerencia. todos. Solo doy algunas explicaciones sobre C y Java. Por supuesto, esto solo se basa en experiencias personales y definitivamente no es una opinión autorizada: P

C sigue siendo el lenguaje de desarrollo principal (para más detalles, puede leer). La información relevante en TCPL Discussion), y el desarrollo o desaparición de un lenguaje es un proceso gradual. En el futuro previsible, C seguirá siendo un lenguaje de desarrollo importante, pero creo que los campos y direcciones a los que apunta se pueden ajustar más. Un cambio importante es que C se retirará gradualmente del mercado de sistemas MIS comerciales.

La razón para elegir C es que existen los mejores libros y herramientas de desarrollo sobre C, y los recursos relacionados también son extremadamente ricos. Después de dominar el desarrollo de aplicaciones generales, puede aprender varias tecnologías en profundidad sin transición, porque en esto. etapa, se explica la capa inferior del sistema. Los libros sobre tecnologías arcanas y avanzadas básicamente usan C\C como lenguaje de ejemplo. Junto con la plataforma de desarrollo Visual Studio de Microsoft, cuidadosamente construida, o la serie C Builder de Borland, el aprendizaje es aún más poderoso. Pero las deficiencias actuales de C también son relativamente obvias. Mi sentimiento más profundo es que no es compatible con XP y Agile Development.

Java simplifica la sintaxis de C y es más fácil de aprender (pero con la creciente popularidad y desarrollo de Java, no me atrevo a decir si podrá continuar manteniendo esta ventaja). La plataforma soporta todo el proceso de XP: diseño, pruebas, codificación, reconstrucción... El lenguaje principal para el desarrollo ágil de software en esta etapa es Java. Y las funciones multiplataforma de Java son una gran ventaja.

De hecho, no importa qué idioma elijas. Simplemente elige de acuerdo con tu plan de desarrollo y el entorno actual que te rodea. No es necesario seguir la tendencia.

Ok, suponiendo que elijas C como lenguaje de desarrollo y desarrolles en la plataforma Windows, te daré las siguientes sugerencias de aprendizaje (agrega activamente otras opciones...):

El aprendizaje del lenguaje C es, por supuesto, la base en esta etapa, dado que no tenemos ninguna experiencia de desarrollo en una plataforma específica, solo podemos ingresar y ejecutar los ejemplos uno por uno de acuerdo con los ejemplos del libro. la interfaz gráfica familiar por el momento y volver al antiguo DOS. La selección de libros de referencia es una preocupación para muchos amigos en esta etapa. "Essential C" y "C Primer" de Stan Lippman son mis recomendaciones prioritarias, y "Essential C" es más pequeño, tiene un contenido explicativo apropiado y utiliza C STL. Hay muchas descripciones que parecen bastante prácticas y creo que es la más adecuada para principiantes. No importa qué libro elijas como libro de texto introductorio, debes digerirlo uno por uno, no seas demasiado rápido, pero al mismo tiempo debes concentrarte en el contenido clave. Todo lo que aprendemos es para resolver problemas prácticos, así que concéntrese en las partes más utilizadas en nuestra práctica, en lugar de profundizar demasiado en algunos detalles y tecnologías oscuras y poco comunes.

En este punto nos encontraremos con muchos problemas que pueden parecer muy simples e ingenuos en retrospectiva, como por qué ocurren errores de compilación, por qué falla la compilación cuando se ingresa de acuerdo con los ejemplos del libro, los archivos de encabezado no se pueden encontrado, etc. En términos generales, esto se debe a que acabo de entrar en contacto con el desarrollo de programas, mi comprensión de los programas aún es muy rudimentaria y no sé lo suficiente sobre el entorno de desarrollo utilizado. El compilador específico tiene diferentes niveles. de soporte para el estándar C. Lea la documentación diversa sobre el entorno de desarrollo que está utilizando y consulte la documentación de ayuda. Tomando Visual C y MSDN, que uso con mayor frecuencia, cuando ocurre un error de compilación que no puedo entender, presionar la tecla F4 saltará automáticamente a la ubicación del error actual y la siguiente ventana de salida también mostrará el código de error (como C ××××), escriba el código de error, abra MSDN, ingrese el código de error en la columna de índice, puede encontrar una descripción detallada del error, por supuesto, en inglés (no pregunte qué debe hacer si no sé inglés), que es un requisito básico). Las herramientas de desarrollo actuales son muy convenientes para la resolución de problemas. Por supuesto, a veces la causa de muchos errores no es dónde lo indica el compilador, sino en algún lugar hacia adelante o hacia atrás. La experiencia de programación a largo plazo puede mejorar la velocidad de detección de errores. Practique también técnicas de depuración en este momento.

En esta etapa, siempre que pueda dominar los elementos básicos del lenguaje C, tener cierta comprensión de la programación estructurada y el diseño basado en objetos y poder completar algunos programas pequeños y simples, será Después de todo, los programas de DOS son muy difíciles ahora, lo que despierta nuestro deseo de aprender: P Después de esto, puede decidir si aprender la estructura de datos de acuerdo con su propia situación es un curso obligatorio para los programadores. Tiene un estado muy importante. Incluso si desea ingresar al mundo del desarrollo de programas de interfaz gráfica de inmediato, también le recuerdo que se ponga al día con esta lección lo antes posible.

Por fin podemos adentrarnos en el mundo gráfico. Tenemos que empezar con la programación del SDK. No te preocupes, no te llevará mucho tiempo, pero es un buen momento para profundizar. comprensión del mecanismo de ejecución de los programas de Windows Aquí todos mis esfuerzos no serán en vano (créame, no hay libros de referencia para considerar en este momento). El básico es "Programación de Windows" de Charles Petzold. es "Programación básica de Windows". Comience con "Programación de Windows". El libro de Charles Petzold es fácil de entender y muy fácil de aprender, y no requiere grandes conocimientos de lenguaje. Solo necesita saber C.

La mayoría de los problemas que puede encontrar en este momento están relacionados con la configuración del proyecto. Si usa Visual C, presione Alt F7 para abrir el cuadro de diálogo de configuración del proyecto y verificarlo detenidamente, lea los documentos relevantes. y familiarizarse con el significado de cada configuración.

En esta etapa, concéntrese en dominar el método de escritura de los programas SDK de Windows, el mecanismo de ejecución de los programas de Windows y el mecanismo de mensajes de Windows, y las API de Windows de uso común. Podemos ir un paso más allá: intentar utilizar el conocimiento de C aprendido en la etapa anterior para realizar una transformación preliminar del programa SDK de procedimientos y hacer que el programa que escribimos en la computadora sea reutilizable, de acuerdo con nuestra propia comprensión del pensamiento basado en objetos. y pensamiento orientado a objetos. Comprender y reescribir el programa de ejemplo.

Bien, ahora ha comenzado a comenzar, domina el uso básico de C, tiene una comprensión vaga y moralista de la orientación a objetos y también puede escribir programas de Windows, aunque todavía es un poco Simple y un poco complicado, pero después de todo es una interfaz gráfica. Empezando a sentir algo, ¿verdad? :P No se apresure a avanzar, deténgase y establezca una base sólida de C y Windows SDK, no muerda más de lo que puede masticar. En este momento, hay muchos libros clásicos esperando que los domine y hay temas casi ilimitados para que practique. Lea tanto como sea posible y comuníquese con los siguientes recursos: "C Primer", "Windows Core Programming" y "Application Debugging". Tecnología "Desarrollo y diseño orientado a objetos La sección Platform SDK y la sección de publicaciones periódicas del libro MSDN (contiene una gran cantidad de valiosos artículos técnicos sobre C y SDK). El código fuente relevante en CodeProject es un buen material de aprendizaje complementario

Ahora continúe. Después de todo, usar SDK para desarrollar a veces requiere demasiado tiempo y trabajo. Es mejor usar marcos de desarrollo de aplicaciones más avanzados. Los principales son MFC y VCL. Debate sobre cuál de estos frameworks es mejor o peor. En una frase, puede ayudarnos a completar la tarea, no son más que herramientas, puedes elegir lo que quieras. Pero después de hacer su elección, debe comprender que cuanto más comprenda su herramienta, más poderosa será. Si elige MFC, le recomiendo estudiar los siguientes libros: "Introducción detallada a MFC": No hace falta decir que este libro, aunque algunas personas lo siguen menospreciando, su estado es incuestionable y también es el más útil para mí. de los libros.

"Programación MFC" "Visual C Technology Insider"

Entonces deja de buscar libros, los innumerables códigos fuente en los sitios de desarrollo en línea son los mejores maestros...

Volver a la página primero

¿Qué debo hacer si encuentro problemas durante el proceso de aprendizaje?

Siempre creo que los problemas encontrados en el proceso de aprendizaje del desarrollo de software solo se pueden resolver haciendo todo lo posible para resolverlos. Para aquellos que siempre publican problemas en línea y esperan que los expertos los ayuden a resolverlos, lo recomiendo firmemente. No estoy de acuerdo con este enfoque, porque no aprenderá mucho de él. Lo que te sugiero es que primero intentes resolver el problema por tu cuenta. Es normal que dediques unas horas a resolver un problema cuando realmente no puedes hacerlo. resuelto, intente reducir el alcance del problema tanto como sea posible. Resuma el problema y inicialmente forme su propia conclusión, luego use el motor de búsqueda o la función de búsqueda en el foro de desarrollo para buscar respuestas a sus preguntas; Ninguno, publica para pedir ayuda. Por favor, comprenda una cosa: los problemas que encontró los han encontrado otros y debe haber soluciones listas para usar en Internet (porque aún no ha alcanzado el nivel de desarrollo e investigación de problemas sin precedentes: P). puede encontrarlo o no. Haga todo lo posible para utilizar los recursos existentes en lugar de molestar a los demás.

Los foros de CSDN y los documentos en línea de MSDN son muy buenos recursos. Básicamente, podemos encontrar respuestas a los problemas que encontramos aquí.