LinuxParty

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

Sin lugar a dudas, Linux fue creado por brillantes programadores que empleaban un buen conocimiento de la informática. Permita que los programadores de Linux cuyos nombres usted conozca compartan los libros que los iniciaron y las referencias tecnológicas que recomiendan para los desarrolladores de hoy. ¿Cuántos de ellos has leído?

Linux es, sin dudas, el sistema operativo del siglo XXI. Si bien Linus Torvalds tomó muchas buenas decisiones empresariales y de la comunidad al crear la comunidad de código abierto, la principal razón por la que los profesionales y desarrolladores de redes adoptaron Linux es la calidad de su código y su utilidad. Mientras que Torvalds es un genio de la programación, ha sido asistido por muchos otros desarrolladores brillantes.

Le pregunté a Torvalds y a otros importantes desarrolladores de Linux qué libros les ayudaron en su camino hacia la excelencia de la programación. Esto es lo que me dijeron.

Iluminando C

Linux se desarrolló en la década de 1990, al igual que otras aplicaciones fundamentales de código abierto. Como resultado, las herramientas y los lenguajes que usaron los desarrolladores reflejaban los tiempos, lo que significaba mucho lenguaje de programación C. Mientras que C ya no es tan popular, para muchos desarrolladores establecidos fue su primer lenguaje serio, lo que se refleja en la elección de libros influyentes.

"No debería comenzar a programar en los lenguajes que yo comencé formarme", dice Torvalds. Él empezó con BASIC, pasó a código de máquina ("ni siquiera lenguaje ensamblador, código de máquina de números reales", explica), luego lenguaje ensamblador y C.

"Con ninguno de esos lenguajes nadie debería comenzar más", dice Torvalds. "Algunos de ellos no tienen ningún sentido hoy en día (BASIC y el código de máquina). Y aunque C sigue siendo un lenguaje importante, no creo que deba comenzar con eso ".

No es que no le guste C. Después de todo, Linux está escrito en GNU C. "Sigo pensando que C es un gran lenguaje con una sintaxis bastante simple y es muy bueno para muchas cosas", dice, pero el esfuerzo para empezar es demasiado alto como para ser un buen lenguaje para principiantes según los estándares actuales. "Sospecho que te sentirías frustrado. Pasar de tu primer programa 'Hello World' a algo que realmente podrías usar".

Aprender a programar en C/C++ paso a paso, para Linux, Windows y Mac

Desde esa época, el único libro de programación que se destacó para Torvalds es Brian W. Kernighan y el lenguaje de programación C de Dennis M. Ritchie (en inglés), conocido en círculos serios de programación como K & R. "Fue pequeño, claro, conciso", explica. "Pero necesitas tener un fondo de programación para apreciarlo".

Torvalds no es el único desarrollador de código abierto que recomienda K & R. Varios otros citan sus copias bien hojeadas como referencias influyentes, entre ellos Wim Coekaerts, vicepresidente senior para Linux y desarrollo de virtualización en Oracle; El desarrollador de Linux Alan Cox; Google Cloud CTO Brian Stevens; y Pete Graner, vicepresidente de operaciones técnicas de Canonical.

Si quiere abordar C hoy, Jeremy Allison, cofundador de Samba, recomienda 21st Century C. Entonces, sugiere Allison, haga un seguimiento con Experto en Programación C más antigua pero aún completa, así como con la Programación con Hilos POSIX.

Si no es C, ¿qué?

Las recomendaciones de los desarrolladores de Linux para los libros de programación actuales son, por supuesto, una derivación de las herramientas y los lenguajes que consideran más adecuados para los proyectos de desarrollo actuales. También reflejan las preferencias personales de los desarrolladores. Por ejemplo, Allison cree que los desarrolladores jóvenes se beneficiarían al aprender Go con la ayuda de The Go Programming Language y Rust with Programming Rust .

Pero puede tener sentido pensar más allá de los lenguajes de programación (y, por lo tanto, de los libros para enseñarles sus técnicas). Para hacer algo significativo hoy, "comience desde un entorno con un juego de herramientas que le haga el 99 por ciento de los detalles oscuros, para que pueda guiar las cosas a su alrededor", recomienda Torvalds.

"Honestamente, el lenguaje en sí mismo no es tan importante como la infraestructura que lo rodea", continúa. "Quizás comiences con Java o Kotlin, no por esos lenguajes per se, sino porque quieres escribir una aplicación para su teléfono y el SDK de Android terminan haciendo esas mejores elecciones. O tal vez le interesan los juegos, entonces comienza con uno de los motores de juego, que a menudo tienen un lenguaje propio de scripting ".

Esa infraestructura incluye libros de programación específicos para el sistema operativo en sí. Graner siguió a K & R al leer los libros de Programación en Red Unix de W. Richard Stevens. En particular, el TCP/IP Illustrated, Volume 1: The Protocols de Stevens, Volumen 1: Los Protocolos se considera aún relevante a pesar de que tiene casi 30 años. Debido a que el desarrollo de Linux es en gran medida relevante para la infraestructura de redes, Graner también recomienda los muchos libros de O'Reilly en  Sendmail, Bash, DNS, e IMAP/POP.

Coekaerts también es aficionado al diseño del sistema operativo Unix, The Design of the Unix Operating System.de Maurice Bach. También lo es James Bottomley, un desarrollador de Kernel de Linux que usó el tomo de Bach para separar Linux cuando el sistema operativo era nuevo.

El conocimiento del diseño nunca se queda obsoleto

Pero incluso eso puede ser demasiado específico de la tecnología. "Todos los desarrolladores deberían comenzar con el diseño antes de la sintaxis", dice Stevens. " El diseño de las cosas cotidianas ". “The Design of Everyday Things" es uno de mis favoritos".

A Coekaerts le gusta La Práctica de la Programación, The Practice of Programming, de Kernighan y Rob Pike. El libro de práctica de diseño no existía cuando Coekaerts estaba en la escuela, "pero se lo recomiendo a todos que lo lean", dice.

Cada vez que le pregunta a los desarrolladores serios a largo plazo acerca de sus libros favoritos, tarde o temprano alguien mencionará The Art of Computer Programming. de Donald Knuth. Sin embargo, Dirk Hohndel, director de código abierto de VMware, lo considera intemporal, sin duda, "no necesariamente súper útil hoy".

Lea código Montones de código

Si bien la programación de libros puede enseñarle mucho, no se pierda otra oportunidad única de la comunidad de código abierto: leer el código . Hay innumerables megabytes de ejemplos de cómo resolver un problema de programación dado y cómo puede meterse en problemas también. Stevens dice que su "libro" No. 1 para perfeccionar las habilidades de programación es tener acceso al código fuente de Unix.

No pase por alto la oportunidad de aprender en persona, también. "Aprendí BASIC estando en un club de computación con otras personas aprendiendo juntas", dice Cox. "En mi opinión, sigue siendo la mejor manera de aprender". Aprendió el código de máquina de Mastering Machine Code en su ZX81 y los manuales del compilador Honeywell L66 B, pero trabajar con otros desarrolladores marcó una gran diferencia.

"Sigo pensando que la mejor forma de aprender es estar con un grupo de personas que se divierten y tratan de resolver un problema que les importa juntos", dice Cox. "No importa si tienes 5 o 55 años".

Lo que más me impresionó acerca de estas recomendaciones es la frecuencia con la que los mejores desarrolladores de Linux comenzaron en un nivel bajo, no solo en C o ensamblador, sino en lenguaje de máquina. Obviamente, ha sido muy útil para ayudar a los desarrolladores a comprender cómo funciona la informática en un nivel muy básico.

Entonces, ¿estás listo para probar el desarrollo de Linux de núcleo duro? Greg Kroah-Hartman, el mantenedor de kernel de la rama estable de Linux, recomienda la Programación Práctica C de Steve Oualline y el Manual de Referencia C: A de Samuel Harbison y Guy Steele. A continuación, lea " CÓMO hacer el desarrollo del kernel de Linux ". Entonces, dice Kroah-Hartman, estarás listo para comenzar.

Mientras tanto, estudie mucho, programe lotes y tenga la mejor de las suertes siguiendo los pasos de los mejores programadores de Linux.

Empieza con: Aprender a programar en C/C++ paso a paso, para Linux, Windows y Mac

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política