Estoy usando Ubuntu desde hace 2 años pero todavía soy un usuario ingenuo. ¿Cómo puedo ser bueno en eso? ¿Qué tipo de enfoque debería seguir para ser bueno en Linux?

Creo que esto es posible de dos maneras:

  1. Sea creativo con el shell: para todo lo que desea lograr, comience a usar el shell, la mayoría de las personas encuentran esto muy insoportable para empezar, pero a medida que se acostumbran a su teclado y forman una imagen mental de los diversos comandos que necesitan a diario Es muy simple y requiere la menor cantidad de atención de usted y será una parte natural de su vida diaria. En resumen, la concha oscila.
  2. Sea curioso: aprenda lo que sucede debajo del capó e intente ver si puede replicar lo mismo. En la mayoría de los casos, comenzar con esto implicará aprender algunos conceptos básicos sobre cómo se diseñó e implementó el sistema operativo Unix. También tenga curiosidad sobre lo que están haciendo los demás y eche un vistazo a los diversos recursos en línea, mire las preguntas de stackoverflow y las preguntas de quora, intente responderlas, sea criticado (sin juego de palabras) y de alguna manera humillado por los geeks y nerds que viven allí. La mayor parte de sus vidas dentro de una terminal y aprender de ellos.

Si está buscando un libro o un tutorial, no hay un libro. Por supuesto, puede comenzar con cualquiera de los libros de este hilo:

Libro sobre programación shell de Linux

Si desea convertirse en desarrollador, lo primero que debe hacer es salir de la mentalidad de “usuario” / su zona de confort.

Algunas cosas que recomendaría:

1. Deje de usar Gui (interfaz gráfica de usuario) para las operaciones diarias que generalmente consisten en hacer clic en iconos y operaciones como hacer clic con el botón derecho y seleccionar una opción. Por ejemplo:

  • Si tiene que copiar algunos archivos, abra el terminal y active el comando ‘cp’, no haga clic derecho sobre él y copie y pegue.
  • si tiene que formatear una memoria USB / una partición de disco, use ‘mkfs’ o ‘mkdosfs’ como comandos.
  • si necesita hacer una unidad usb de arranque, use el comando ‘dd’
  • intente instalar un firmware usando ‘apt’ (en Ubuntu) o ‘yum’ (fedora)

Point está aprendiendo a usar estos pequeños comandos, que son los pequeños pasos que debe seguir para familiarizarse con Linux. Hay muchos de ellos.

2. Su próxima tarea puede ser poder trabajar en un sistema que no tiene GUI en absoluto. Puede instalar tales distribuciones en sus máquinas o puede eliminar la GUI de la máquina existente (que tiene sus propios problemas) e instalar herramientas mínimas de GUI como ‘openbox’. Ubuntu presentó muchos problemas de dependencia cuando eliminé la GUI, pruebe Debian 8 y todo debería estar bien.

3. Después de eso, intente hacer cambios en los archivos de Linux como ‘sudoers’, ‘apt.conf’, creando un alias, etc. Esto es solo para tener una idea de cuán flexible y fácil puede ser Linux.

4. Intente instalar diferentes distribuciones de Linux (hay muchas y no todas son tan fáciles de instalar como Ubuntu). Mientras realiza la instalación, intente deshacerse de la asignación automática de memoria de varias particiones que Linux crea, haga el manual (le dará una idea sobre los directorios como / usr, / var, / tmp, swap, boot, etc.)

5. Y, por último, si usted es un programador y está interesado en la programación del núcleo, intente realizar cambios en el núcleo de Linux real. Puede comenzar con ¿Cómo puedo convertir el código fuente de ext4 en un módulo usando su Makefile e insertarlo en Linux usando Insmod? (guiño)

Compre MacBook air, conviértase en un desarrollador más productivo y disfrute de su vida en lugar de perder el tiempo configurando Linux y haciendo que funcione correctamente.

More Interesting

¿Cómo se puede extraer el contenido textual principal de una lista de sitios heterogéneos sin conocer de antemano la estructura de la página?

¿Hay alguna forma científica de comparar soluciones de software?

¿Es incómodo ser ingeniero de iOS en una empresa, como Microsoft, que compite directamente con Apple?

¿Cuáles son algunas herramientas de desarrollo de Python que todo programador autodidacta debe aprender y cómo pueden aprender sobre ellas?

¿Qué lenguaje de programación debería uno estudiar en la novena clase para convertirse en ingeniero de software?

¿Tengo una buena oportunidad para conseguir un trabajo de desarrollador inicial en Austin, TX, con mis credenciales enumeradas en los detalles?

¿Cuáles son algunos problemas en astronomía que podrían resolverse (pueden ser resueltos fácilmente por los astrónomos) mediante el uso del software adecuado, pero no hay ningún software que los ayude?

¿Cómo se puede reducir y gestionar la complejidad del software?

¿Crees en las pruebas de software Mitos?

¿Los ingenieros de software están contentos con sus vidas?

¿Qué tan pronto una compañía producirá un producto que permita que una aplicación común de Windows escrita en Visual FoxPro se ejecute en un navegador en cualquier dispositivo?

¿Puedo ser empleado en trabajos como un graduado en ciencias de la computación como en ingeniería de software si mi título es en tecnología de la información?

¿Qué piensa sobre los hallazgos sobre el artículo y los resultados del "mayor elemento disuasorio para las mujeres en tecnología"?

¿Cuáles son las preguntas / conceptos imprescindibles para una entrevista con un ingeniero de software?

Desarrollador independiente vs empleado?