¿A cuánto asciende el salario de un programador de Linuxc en Beijing?
El texto original es el siguiente: vi tu mensaje en el campamento de aprendizaje de csdn
Perdón por molestarte
Actualmente estoy usando el lenguaje C para desarrollar grandes software a escala en aplicaciones Linux
Me gustaría preguntar si vale la pena aprender el kernel de Linux en profundidad
No tengo mucho tiempo
En Además, he desarrollado en Windows durante muchos años experiencia en aplicaciones
Mi respuesta es:
Creo que todavía es una cuestión de dirección de aprendizaje: Oh, creo que esto todavía es una pregunta de la dirección del aprendizaje
Esta es una cuestión de dirección del aprendizaje. Tengo muchos años de experiencia en el desarrollo de aplicaciones en Windows
Mi respuesta: Oh, creo que esto todavía es una cuestión de dirección de aprendizaje
Esta es una cuestión de dirección de aprendizaje: Oh, Creo que esto sigue siendo una cuestión de dirección de aprendizaje.
Linux se ha desarrollado cada vez mejor en los últimos años. Al menos en muchos mercados de servidores de aplicaciones, Linux ha reemplazado a Windows como la primera opción. En el entorno integrado, Linux se ha convertido gradualmente en algo común.
Esto ha llevado a que muchos programadores que originalmente eran programadores de Windows, paulatinamente se decantan por el desarrollo de Linux por necesidades laborales. Por supuesto, esto también implica un problema de aprendizaje.
Yo soy uno de ellos. 1
Antes de esto, había estado desarrollando Windows, usando g para desarrollar en DOS, y también traduje djgpp
Sin embargo, cuando la compañía hizo arreglos para que desarrollara oficialmente en Linux. en 2007 todavía estaba muy preocupado cuando usaba servidores comerciales
Porque también tenía problemas de aprendizaje
Mirando los libros en el mercado, estaba muy confundido. Pasé un día entero en la librería Hantang y analicé cuidadosamente libros relacionados con el desarrollo de Linux. Descubrí que hay varios tipos. El primero es la programación de shell. Miré esto durante media hora y lo encontré inútil. Parece que no sé cómo usar el servidor de transmisión. Creo que es útil. No mucho
Para filtrar condiciones realmente complejas, mi costumbre es escribir un programa de análisis léxico y analizarlo yo mismo, y no lleva mucho tiempo, así que lo he estado haciendo.
Luego está el lenguaje C y la programación en lenguaje C. Eché un vistazo más de cerca y descubrí que cuando se trata de desarrollo, se trata del kernel de Linux. Lo pensé detenidamente y descubrí que mi problema no se había resuelto.
Incluso si sé cómo funciona el kernel y qué habilidades de desarrollo contiene, no será de mucha ayuda para mi trabajo.
Estaba trabajando en la parte del servidor de transmisión de la base de datos distribuida, aunque tenía múltiples subprocesos y alto rendimiento, todavía estaba limitada a la capa de aplicación y no involucraba demasiados núcleos.
No creo que sea de mucha utilidad
En cambio, creo que necesito repasar la programación de sockets
Elegí un programa de sockets que funciona para mí , pero no sé qué quiero hacer Qué. Después de terminar la selección, elegí un libro para mí. El primer volumen de "Programación de redes UNIX" trata sobre la comunicación de red y el segundo volumen trata sobre la comunicación entre procesos. Creo que es muy bueno que mi programa se ejecute con múltiples. -threads, y el hilo en sí es No es necesario pensar demasiado en la comunicación asincrónica al compartir memoria. Además, mi hábito es que para la comunicación entre procesos, los sockets generalmente se usan directamente. La ventaja es que mi proceso se puede implementar en máquinas a voluntad y puedo usar sockets para comunicarme con otras máquinas.
Entonces, solo compré el primer volumen, que está dedicado a los enchufes. Este es un buen libro, tengo que sacarlo ahora.
Además, también compré un This. "El arte de la programación Unix" también es un buen libro.
Por ejemplo, en la era DOS, los discos duros solían ser muy pequeños y las particiones de usuario muy desordenadas.
Si queremos guardar un archivo temporal en el disco lo mejor es buscar la unidad C, incluso si no hay muchos ordenadores con la unidad D.
El sistema Windows proporciona un servicio que puede consultar el estado del sistema. directorio de archivos temporales a través de la API. Esto es mucho mejor y, en Linux, es una convención. Todos usamos /var como directorio temporal.
Está bien, leí este libro y. Seguí la mitad, jaja, no todo, enfatiza que el programa es un filtro.
Enfatiza que el programa es un filtro, que filtra información útil del flujo de información y la procesa, pero no permite que el programa destruya el flujo de información. También enfatiza que el flujo de información debe fluir sin problemas. a la siguiente empresa. Estoy de acuerdo con esto, y es un principio de programación que he ido dominando gradualmente en los últimos años
Pero enfatiza la construcción de módulos, con lo cual no estoy de acuerdo, y los programadores de Unix tienen una Mal hábito de abusar de las tuberías. Esto ha llevado a muchos programadores a utilizar tuberías. Abuso, esto hace que muchos programas sean pequeños programas que están conectados entre sí a través de tuberías para completar una función poderosa. Esto es una cuestión de opinión, pero en mi campo de desarrollo, enfatizo las sólidas capacidades de análisis del sistema y las ideas integrales de diseño del sistema. eliminación de muchos errores lógicos potenciales desde la etapa de diseño del sistema. En resumen, doy gran importancia a la armonía entre los distintos módulos del sistema.
Bueno, también enfatiza el desarrollo conciso, y solo estoy de acuerdo con la mitad. El programa debe escribirse de manera concisa. Cada función y cada clase debe ser muy simple para reducir los errores. Los nombres de variables y funciones introducidos son solo abreviaturas, que son incomprensibles, lo cual es demasiado escandaloso.
Sin embargo, este es mi hábito y lo encuentro objetable para los demás. Siento que mis razones son más sostenibles. así que me quedo con el mío.
Además, todo comienza con la práctica. Las computadoras son las más justas. Incluso los expertos fallarán con programas complicados. Si escribes programas con cuidado, incluso un hermano pequeño puede escribir programas muy hermosos. /p>
De esta manera, tomé prestados estos dos libros y los leí lentamente. Más tarde, la mayoría de mis hábitos seguían siendo Windows, y ahora desarrollé todo. Edité el programa en VC y luego escribí un archivo MAKE y lo ftp. a la máquina virtual para compilar y ejecutar, y ha llegado hasta el día de hoy
Más tarde descubrí que no aprendí el shell, no aprendí el kernel y no aprendí muchas regulaciones de libros de texto. No aprendí las cosas que tenía que aprender. No aprendí el shell, no aprendí el kernel, no aprendí muchas de las cosas que los libros de texto dicen que debes aprender y acabo de terminar mi programa. . En nuestro proyecto del año pasado, después de 9 rondas de pruebas, solo se encontraron 51 errores, de los cuales solo 7 eran errores en lenguaje C y lenguaje C. Esta es la fuerza de mi insistencia en mi propio método de programación libre de errores.