Red de conocimiento informático - Espacio del host - ¿Qué especialidad en informática debería estudiar?

¿Qué especialidad en informática debería estudiar?

Deberías aprender informática.

El desarrollo de software es una actividad puramente intelectual (ahora la gente se ha dado cuenta de que sobrecargar y escribir programas continuamente durante mucho tiempo no sólo no mejorará la productividad del software, sino que tendrá un gran impacto negativo en la calidad). del software, por lo que aunque todavía hay muchos programadores trabajando horas extras durante mucho tiempo, este fenómeno está disminuyendo gradualmente y eventualmente desaparecerá, por lo que los requisitos físicos no son mayores que en otras ocupaciones), y si no eres una persona con Inteligencia por encima del promedio Gente, para ser honesto, el desarrollo de software no es para ustedes. Es básicamente imposible para ustedes lograr mucho éxito o estatus en el campo del desarrollo de software y, a medida que envejecen, serán eliminados rápidamente.

Si sigues el ejemplo de esos héroes del software y hackers famosos que desarrollaron software maldito, aspira a convertirte en uno de ellos y lucha como los héroes de las novelas de artes marciales. Déjame echarte mucha agua fría primero y traerte de vuelta 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 un poco más grande por sí sola (aunque todavía hay algunas excepciones, pero créanme, esas son solo excepciones, por favor). No se imagine a sí mismo como un superhéroe único, un tipo afortunado); en segundo lugar, ya sean héroes del software o grandes hackers con espadas, sus habilidades e inteligencia en el desarrollo de software superan con creces el nivel promedio de los profesionales de la industria del software, sin años de experiencia. La acumulación y la perseverancia son imposibles de lograr. 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 nivel promedio, pero está lejos de ser un salario alto. Calculado en función de la carga de trabajo actual de los programadores, de hecho, con el mismo salario, lo que los programadores pueden obtener está a la par del nivel promedio. Programadores La competencia y eliminación de miembros es extremadamente cruel. La velocidad de la actualización de la tecnología es rara en otras industrias. Cada programador tiene que seguir corriendo para mantenerse al día y no puede quedarse atrás, por lo que en este nivel nadie puede detenerse y descansar. , pero no mucha experiencia que pueda aumentar tu competitividad.

Dicho todo esto, no te estoy menospreciando deliberadamente, pero quiero contarte la verdadera situación de la industria del desarrollo de software que conozco. Sobre esta base, reconsidera si realmente quieres ingresar a ella. Ingrese al campo del desarrollo de software.

Volver al inicio

Prueba si eres apto para ser programador

En mi opinión, para convertirte en un programador cualificado necesitas cumplir las siguientes condiciones :

1. Gran curiosidad y sed de conocimiento

2. Casi todas las condiciones en publicaciones similares han mencionado: Si no está preparado para trabajar solo, entonces la capacidad de trabajar en un equipo es indispensable; soy demasiado vago para hablar inglés. Sin la capacidad de leer materiales básicos en inglés, te aconsejo que abandones la idea de convertirte en programador. no estás haciendo algoritmos. Las habilidades matemáticas del nivel de la escuela secundaria son suficientes, pero deben estar bien calificadas.

Entonces, ¿por qué debería enfatizar los tres puntos anteriores?

La fuerte curiosidad y la sed de conocimiento te permitirán mantenerte al día con el ritmo del desarrollo tecnológico. Depender únicamente de un sentido de crisis y responsabilidad hará que su aprendizaje de la tecnología sea muy utilitario, lo que provocará que su sistema tecnológico no pueda formar un todo completo y autónomo, y dificultará la comprensión y el dominio de alto nivel de la tecnología. tecnología.

Un diseñador de sistemas senior que conozco me dijo: Al crear software, "hacerlo" y "hacerlo bien" son dos conceptos diferentes, y la inversión requerida y el nivel técnico son aún más diferentes. Hoy en día, muchos programadores en China sólo consideran el desarrollo de software como un medio para ganarse la vida. La mentalidad de hacer las cosas al azar en la economía planificada nacional también ha penetrado en la industria del software. No se considera mejorar la capacidad de mantenimiento, ni se considera que mejore la estabilidad o la velocidad. ¡El código es incluso desordenado y no se siguen los estándares básicos de codificación! (En mi opinión, este tipo de personas no merecen en absoluto el título de "programador").

Cuando condenamos en voz alta el pobre entorno de la industria nacional del software, que depende de conexiones para sacar proyectos, no tiene un sistema de garantía de calidad y jefes que no valoran a los programadores y los exprimen locamente, deberíamos preguntarnos: ¿se están concentrando solo en los demás? ?

Hoy en día, hay varios kits de herramientas de desarrollo de software disponibles, con todo incluido, y las herramientas de programación son extremadamente poderosas y convenientes para los sistemas MIS domésticos convencionales, no es muy difícil completar una función, pero si es así. comience desde el sistema En general, la mayoría de los sistemas se ejecutan lentamente, ocupan muchos recursos, tienen poca compatibilidad, poca capacidad de mantenimiento y son inestables. Si es así, puede intentar desarrollar un sistema excelente. ¿Alguna vez has intentado desarrollar un gran sistema? Si es así, descubrirá lo difícil que es desarrollar un software excelente, qué tan altos son los requisitos técnicos y qué tan rápido se puede mejorar en el proceso de esforzarse por alcanzar la perfección. Sin el espíritu de búsqueda de la perfección, no importa cuán bueno sea el entorno externo, no podrá 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 al final solo podrá verse obligado a cambiar de carrera.

Volver al inicio

Está bien, soy realmente apto para ser programador, entonces, ¿cómo empiezo?

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

En China, las plataformas de sistemas operativos más populares son Windows, Linux (Unix) y Mac OS. En términos generales, todo el mundo elige la plataforma Windows porque es el sistema operativo monopolista de China y tiene muchas herramientas de desarrollo excelentes para elegir. Sin embargo, la desventaja es que la apertura de la plataforma Windows no es muy alta y es difícil de descubrir (pero. No estoy familiarizado con él). No me interesan las plataformas Windows). Explorar el fondo es más difícil (pero debo decir que la idea de tocar fondo es repugnante. No todos los desarrolladores tienen una buena comprensión de tocar fondo. Satisfacer a los usuarios es la base de nuestra búsqueda del sistema. Jugar algunos trucos para explorar el fondo es simplemente autorrealización. Por supuesto, necesitamos tener una cierta comprensión de 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 y secuencias de comandos. , etc. Por supuesto, Linux es una plataforma de código abierto. 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 en Linux solo pueden desarrollar unas pocas aplicaciones. 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 buena plataforma de desarrollo. Obtienes una gran cantidad de código fuente excelente y todo es transparente (si lo deseas), pero tienes que aprender muchos comandos de línea de comandos, configuraciones de parámetros y sistemas, y scripts.

La elección del lenguaje de programación es aún más problemática. No sé mucho sobre lenguajes de programación y no puedo dar ninguna sugerencia para algunos de ellos, por lo que solo puedo esperar a que lleguen expertos en este campo. para agregar. Solo quiero dar algunas explicaciones sobre C++ y Java. Por supuesto, esto solo se basa en mi experiencia personal y definitivamente no es una opinión autorizada:P

C++ sigue siendo un lenguaje de desarrollo convencional (puedes aprenderlo). más detalles en TCPL) 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 su lenguaje de destino no es el más popular. C++ seguirá siendo un lenguaje de desarrollo importante en el futuro previsible, pero el dominio y la dirección de su lenguaje de destino pueden cambiar. Creo que el cambio principal será la retirada gradual de C++ del mercado de sistemas MIS comerciales. La razón por la que elegí C++ es porque C++ tiene los mejores libros y herramientas de desarrollo, y los recursos relacionados también son muy ricos. Después de dominar el desarrollo general de aplicaciones, no es necesario pasar a una investigación en profundidad sobre diversas tecnologías, porque en esta etapa, los libros sobre los misterios subyacentes y las tecnologías avanzadas del sistema básicamente utilizan C\C++ como lenguaje de ejemplo. Junto con la plataforma de desarrollo cuidadosamente construida de Microsoft, Visual Studio, 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 el soporte para XP y el desarrollo ágil no es bueno.

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á seguir manteniendo esta ventaja). La plataforma de desarrollo admite todo el proceso de XP: diseño, prueba, codificación, refactorización... El lenguaje principal para el desarrollo de software ágil en esta etapa es Java... y la característica multiplataforma de Java es una ventaja muy grande.

De hecho, no importa qué idioma elija. Simplemente elija de acuerdo con su propio plan de desarrollo y el entorno actual. No es necesario seguir la tendencia, y la persistencia posterior es la última palabra. .

Bien, suponiendo que elijas C++ como tu lenguaje de desarrollo en la plataforma Windows, te daré las siguientes sugerencias de aprendizaje (agrega comentarios positivos sobre otras opciones...):

El aprendizaje de C++ es, por supuesto, la base del lenguaje. En esta etapa, dado que no tenemos ninguna experiencia de desarrollo en una plataforma específica, solo podemos aprender de los libros. En esta etapa, dado que no tenemos ninguna experiencia de desarrollo en una plataforma específica, solo podemos ingresar y ejecutar los ejemplos del libro uno por uno, despedirnos temporalmente de la interfaz gráfica familiar y regresar al DOS anterior. La selección de libros de referencia es un tema que preocupa a muchas personas en esta etapa. "Essential C++" y "C++ Primer" de Stan Lippman son mis recomendaciones prioritarias. Entre ellos, "Essential C++" es el más adecuado para principiantes. Corto y bien explicado, y hay muchas introducciones sobre el uso de C++ STL, que en mi opinión son bastante prácticas. Creo que este libro es mejor para principiantes. No importa qué libro elijas como libro de texto introductorio, debes analizarlo caso por caso, no codiciar más, pero al mismo tiempo resaltar los puntos clave. Todo el conocimiento 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 prestar demasiada atención a algunos detalles y técnicas oscuras y poco comunes.

En este punto, nos encontraremos con muchos problemas que son muy simples e ingenuos en retrospectiva, como por qué ocurre el error de compilación, por qué la entrada no se puede compilar de acuerdo con los ejemplos del libro, el archivo de encabezado no se puede encontrar, etc. Esto se debe en gran parte a que acabo de entrar en contacto con el desarrollo de programas y mi comprensión de los programas todavía es muy rudimentaria, así como mi comprensión del entorno utilizado en el desarrollo. Los compiladores específicos también tienen diferentes niveles de. soporte para C++ estándar. Esto se debe principalmente a que es nuevo en el desarrollo de programas y no comprende el entorno de desarrollo que está utilizando. Lea la documentación de su entorno de desarrollo y consulte los archivos de ayuda. Tomando como ejemplo mi Visual C++ más utilizado con MSDN, cuando ocurre un error de compilación incomprensible, presione la tecla F4 y el editor saltará automáticamente a la ubicación del error actual, y la siguiente ventana de salida también proporcionará el código de error (como como: C××××), escriba el código de error, abra MSDN, ingrese el código de error en la columna de índice, puede encontrar una explicación detallada del error, la explicación está en inglés (por supuesto). Las instrucciones, por supuesto, están en inglés (no preguntes qué si no entiendes inglés, este es un requisito básico). Hoy en día, las herramientas de desarrollo son muy útiles para comprobar errores y solucionar problemas. Por supuesto, a veces la causa de muchos errores no es el lugar indicado por el compilador, sino algunos lugares hacia adelante o hacia atrás. La experiencia de programación a largo plazo puede mejorar la velocidad de detección de errores. En este momento, practique más habilidades de depuración.

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 ahora son muy complejos. Es difícil despertar tu deseo de aprender: P Después de este período de estudio, puedes decidir si aprender la estructura de datos de acuerdo con tu propia situación. Ambos son indispensables. El estado es muy importante, incluso para los programadores. La estructura de datos es un curso obligatorio para los programadores. Es indispensable y tiene un estatus muy importante. Incluso si desea ingresar al mundo del desarrollo de programas GUI ahora, me gustaría recordarle que recuerde tomar esta lección temprano.

Finalmente podemos ingresar al mundo de los gráficos. Tenemos que comenzar con la programación del SDK. No te preocupes, esto no te llevará mucho tiempo, pero es un buen momento para comprender el mecanismo de ejecución. de programas de Windows. Aquí está. Sus esfuerzos no serán en vano (créame, no hay ningún libro de referencia en el que pensar en este momento). El básico es "Programación de Windows" de Charles Petzold, y el avanzado es "Programación de Windows". ". La "Programación de Windows" de Charles Petzold es la base. La "Programación básica de Windows" es avanzada. Comience a aprender con el libro "Programación de Windows". Es fácil de entender y muy fácil de aprender, y no requiere grandes habilidades lingüísticas. Solo necesita conocer el lenguaje C.

Actualmente, la mayoría de los problemas están relacionados con la configuración del proyecto. Si está utilizando Visual C++, presione Alt+F7 para abrir el cuadro de diálogo de configuración del proyecto para verificarlo cuidadosamente y lea la documentación relevante para familiarizarse con el significado de varias configuraciones.

El enfoque de esta etapa es cómo escribir programas SDK de Windows, cómo ejecutar programas de Windows, cómo usar los mensajes de Windows y cómo usar las API comunes de Windows. También podemos ir un paso más allá: intentar usar. el C++ aprendido en la etapa anterior Conocimiento para realizar algunas modificaciones iniciales al programa SDK de procedimientos y hacer que el programa que se escribe en la computadora sea reutilizable para que pueda reutilizarse de la manera que queramos.

Reescribiremos el programa de muestra basándonos en nuestra propia comprensión de las ideas basadas y orientadas a objetos para convertirlo en un programa reutilizable.

Bien, ahora has comenzado, dominas el uso básico de C++, tienes una comprensión vaga y presumida de la orientación a objetos y puedes escribir programas de Windows, aunque todavía es un poco simple y un poco feo. Sin embargo, sigue siendo una interfaz gráfica. Está empezando a sentirse mejor, ¿no? :P No se apresure, deténgase y construya una base sólida en C++ y Windows SDK, no se exceda más de lo que puede masticar. En este punto, hay un montón de libros clásicos que dominar y un número casi infinito de temas que practicar, así que lea todo lo que pueda y busque los siguientes recursos: Introducción a C++ Programación central de Windows Técnicas de depuración para aplicaciones orientadas a objetos Libros de desarrollo y diseño MSDN La sección Platform SDK, la sección Publicaciones periódicas (que contiene mucha información sobre cómo usar el SDK) y la sección Windows SDK. La sección de publicaciones periódicas (contiene una gran cantidad de valiosos artículos técnicos sobre C++ y SDK). El código fuente relevante en CodeProject es un muy buen material de aprendizaje complementario.

Después de todo, a veces usar el desarrollo de SDK también lo es. Consumen mucho tiempo y son laboriosos, por lo que es mejor utilizar marcos de desarrollo de aplicaciones más avanzados, principalmente MFC y VCL. En cuanto a estos marcos, todos los encuentran lentos y laboriosos, por lo que es mejor utilizar marcos de desarrollo de aplicaciones más avanzados, principalmente MFC. y VCL. y VCL, estoy cansado de escuchar cuáles de estos frameworks son buenos y cuáles son malos. En resumen, siempre que puedan ayudarnos a completar la tarea, no son más que una herramienta y puedes elegirla a tu antojo. Pero después de elegir, debes comprender que cuanto más comprendas tu herramienta, más podrás liberar su poder. Si eliges MFC, te recomiendo que estudies los siguientes libros: MFC en profundidad: No hace falta decir que este libro, aunque algunas personas lo han menospreciado, su estatus es incuestionable, y también es uno de los libros que me ayudó a mayoría. "Programación MFC" "Visual C++ Tech Insider"

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

Volver al inicio

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

Siempre creo que el mayor beneficio de aprender a desarrollar software es hacer todo lo posible para resolver los problemas encontrados. No estoy de acuerdo con las personas que publican sus problemas en línea y esperan que los expertos te ayuden a resolverlos, porque no aprenderás nada de ellos.

Lo que sugiero es que primero intente resolver el problema usted mismo. Es normal que dedique algunas horas a resolver un problema. No se dé por vencido después de unos minutos. Si realmente no puede resolverlo, intente reducir el alcance. alcance del problema y resúmalo. Forme su propia conclusión; luego utilice el motor de búsqueda o la función de búsqueda en el foro de desarrollo para buscar respuestas a sus problemas; Por favor, comprenda: los problemas que encontró han sido encontrados por 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), solo tiene que encontrarlas tú mismo, por favor Aprovecha al máximo lo que tienes y no molestes a los demás.

El foro de CSDN y la documentación en línea de MSDN son buenos recursos. Básicamente, podemos encontrar respuestas a todas las preguntas que encontramos aquí.