Red de conocimiento informático - Conocimiento informático - ¿Qué tipo de trabajos puedes encontrar en el futuro si aprendes C y el lenguaje C?

¿Qué tipo de trabajos puedes encontrar en el futuro si aprendes C y el lenguaje C?

Creo que muchas personas están expuestas a la programación debido a la clase de programación en lenguaje C en la universidad. Sin embargo, esta clase solo le dice qué es un lenguaje de programación, pero no le dice cómo dominar la programación de manera competente. . Por lo tanto, es inevitable que muchas personas descubran en vísperas de graduarse que, aunque han aprendido C, parecen no tener idea de qué pueden hacer, qué tipo de trabajo pueden encontrar y para qué tipo de empresa pueden trabajar. . Entonces, este artículo comenzará desde la perspectiva de C y hablará sobre mi comprensión del lenguaje C.

Esta vez no hablaremos de escenarios de aplicaciones complejos, ni de las características de optimización subyacentes del lenguaje. Hablemos simplemente de lo que puedes hacer después de aprender C en la universidad. Por supuesto, debido a la estrecha relación entre el lenguaje C y C, hablaremos de ellos juntos. Los principios son similares.

1 Desarrollo de laboratorio

No me atrevo a decir que C sea el mejor lenguaje del mundo, pero C es básicamente un lenguaje muy popular entre los estudiantes de ingeniería. No hablemos de carreras de informática por el momento. Muchas carreras de ingeniería, como telecomunicaciones, electricidad, comunicaciones y otras carreras, básicamente usan C en el aprendizaje normal.

Se dice que C tiene características orientadas a procesos y a objetos, una excelente velocidad de ejecución y buenas capacidades de desarrollo de proyectos a gran escala, que pueden dominar los laboratorios universitarios. Por supuesto, sabemos que otro lenguaje que también es comparable a C en los laboratorios universitarios es Matlab.

Por ejemplo, cuando era estudiante de posgrado, usaba Matlab para realizar pruebas con mi mano izquierda y optimización de C con mi mano derecha. Las patentes en papel y otros asuntos dependen del enfoque doble de estos dos lenguajes. Todavía recuerdo que en el laboratorio, básicamente todos los algoritmos se escribían en C/C.

Las primeras personas que aprendieron C fueron básicamente ancianos de ciencias e ingeniería. No importa lo difíciles que sean de entender los punteros y no importa lo despiadadas que sean las tablas de funciones virtuales, nunca podrán apagar el entusiasmo de los estudiantes de ingeniería como nosotros por la programación.

2 Desarrollo back-end

Pero cuando se trata de buscar trabajo, ese no es el caso. Escuché que ya es el ocaso de los dioses en el campo de los algoritmos, lo que ha provocado que una gran cantidad de personas se apresuren a dedicarse al desarrollo back-end.

Solo existen unos pocos lenguajes de desarrollo back-end convencionales, liderados por Java y C, seguidos de cerca por Python y Go. Como viejo codificador de C que ha estado escribiendo durante tantos años, ¿cómo no puedo unirme a la diversión?

Entonces, después de aprender C, la primera opción es, por supuesto, entrevistarse para un puesto de desarrollo backend. Lo que pasa es que todos solemos decir que el idioma no es lo más importante. Entonces, para los estudiantes que han aprendido C y quieren encontrar desarrollo back-end, ¿qué es lo más importante?

De hecho, solo hay unas pocas habilidades que la ingeniería de desarrollo de software debe dominar, y ya se han discutido varios intercambios de experiencias y entrevistas. Pero esas son sólo direcciones generales. Hay muchos conceptos específicos y puntos técnicos involucrados, y es imposible enumerarlos todos aquí. En general, si desea encontrar un trabajo de desarrollo back-end adecuado a través de C, le sugiero que mejore en los siguientes aspectos:

Primero, una base sólida de programación.

Esta base sólida primero significa que está familiarizado con el lenguaje C, conoce las características del lenguaje de diferentes versiones (como la diferencia entre C11 y el nuevo C20) y está familiarizado con los mecanismos comunes del lenguaje (como como polimorfismo, tablas de funciones virtuales, plantillas, etc.) tienen su propia comprensión de la capa subyacente.

Aunque no importa el idioma que utilices, al menos tienes que dominar un idioma. ¿Cómo ser considerado competente? Probablemente necesite comprender los mecanismos subyacentes de C, la programación multiproceso y la programación multiplataforma.

Además, la alfabetización en habilidades de programación también se refleja en la comprensión de ideas algorítmicas y estructuras de datos. Después de todo, la base de los programas son los algoritmos y las estructuras de datos. Por lo tanto, es mejor dominar algunas estructuras de datos básicas, como listas vinculadas, matrices, árboles binarios, colas, etc., así como algunas ideas algorítmicas básicas, como codicioso, divide y vencerás, programación dinámica, etc. El segundo es el conocimiento teórico sistemático.

Ésta es la diferencia obvia entre especialidades y no especialidades. Muchos estudiantes en clases no técnicas son en realidad muy capaces en programación, pero debido a que no han recibido un aprendizaje teórico sistemático, sufrirán en el aprendizaje teórico. El desarrollo back-end implica muchas cosas, desde la red hasta el rendimiento y la arquitectura, y todas ellas requieren una teoría informática sistemática para respaldarlas.

Entonces, si nunca ha visto libros sobre redes informáticas, sistemas operativos, principios de composición informática y principios de compilación, debe comprar algunos libros rápidamente para calmarse.

El tercero es la base back-end.

Si quieres hacer desarrollo back-end, al menos debes saber qué es el back-end. Esto significa que debe tener conocimientos básicos de ingeniería de software, arquitectura de software, patrones de diseño, etc. Al mismo tiempo, ¿cómo es posible que no comprenda la base de datos al crear un backend? Entonces, ¿no es necesario aprender algunas operaciones básicas de bases de datos como MySQL y Redis?

Por supuesto, a estas alturas, puede considerarse un nivel de entrada. Cuando realmente comienzas con el desarrollo back-end, también debes incluir en tu agenda el aprendizaje de conceptos y tecnologías relacionados, como microservicios y middleware (Kafka/Zookeeper/Hadoop, etc.).

Por supuesto, para las admisiones escolares, dado que de hecho hay una falta de experiencia en proyectos en línea a gran escala, los requisitos para los conceptos básicos de back-end no son demasiado altos. Depende más de la capacidad de programación y la teoría de la computación. base. Sin embargo, para los estudiantes que ya están trabajando y quieren cambiar de carrera, los conceptos básicos de back-end seguirán siendo más importantes.

En mi opinión, estos tres puntos son los que las empresas de Internet valoran actualmente. Cada uno puede reflexionar sobre si tiene tales capacidades. Si aún no lo has hecho, puedes tomarte el tiempo para prepararte.

3 Desarrollo de clientes

Después de todo, C ya es un lenguaje muy maduro, por lo que además del desarrollo back-end, en realidad tiene muchas otras posiciones de desarrollo para elegir. Naturalmente, fue el desarrollo del cliente.

Creo que la mayoría de los estudiantes que aprenden C han utilizado C para escribir software de escritorio. En ese momento, probablemente todavía usaba MFC. Podía escribir una interfaz relativamente simple con solo escribir el libro de códigos. Entonces, si no desea trabajar en backend, definitivamente puede confiar en C para encontrar un trabajo de desarrollo de clientes.

Sin embargo, el cliente tampoco lo tiene fácil. Ser cliente también requiere una base sólida en programación y teoría informática. Es posible que también deba estar familiarizado con los mecanismos de compilación y vinculación de Windows/C, los sistemas de tecnología de desarrollo de clientes QT, los mecanismos de mensajes de Windows y otras tecnologías.

Entonces, si estudiaste C y no te importa la inexplicable cadena de discriminación laboral en la industria, también es muy bueno encontrar un trabajo de desarrollo de clientes. Pero en comparación con el desarrollo back-end, es posible que deba reexaminar el papel del cliente.