19 votos

¿En qué idioma para el arranque en Linux?

Estoy por comenzar un 4-año de la seguridad de la información grado en la universidad Purdue. El grado no requiere ninguna programación de los cursos. Así que la única vez que voy a ser capaz de tomar uno es el ocasional electiva. Así que la mayor parte de mi aprendizaje será por mi propia cuenta. En el comienzo de mi último año de la secundaria, decidí cambiar completamente a Linux. Hasta ahora he estado aprendiendo un poco de Linux y la seguridad de las cosas. Sin embargo, también creo que va a ser importante para mí para aprender algunos de los lenguajes de programación.

Básicamente estoy pensando en aprender a programar en paralelo con el aprendizaje de cómo usar Vim. Así que lo más probable es que será un proceso lento. En la final, creo que valdrá la pena, aunque. Como ya he dicho, me voy a la seguridad, así que voy a ser en su mayoría de la creación de relacionados con la seguridad de aplicaciones, la mayoría de los cuales estarán relacionados con la red. También me gustaría empezar a desarrollar aplicaciones para Android, pero eso será más adelante en el camino.

Con lo que me dijo tiene un par de ideas. Yo estaba pensando en comenzar con JavaScript, ya que es multiplataforma, y he visto que se ha sugerido antes. También he estado escuchando mucho acerca de Ruby o podría ir a la natural Linux ruta con C. ¿Qué dirección debo ir?

53voto

psiko.scweek Puntos 23

Primero y principal: bash, junto con el común de utilidades de línea de comandos. Bash es el valor predeterminado de la interfaz de usuario para el sistema operativo, y un montón de programas que en un sistema Linux, será envuelto en una secuencia de comandos de shell en algún nivel. Puede ser peculiar, tiene peculiaridades, y a menudo parece francamente tonto, pero es algo que tendrá que lidiar con el, así que póngase cómodo con él. Las herramientas estándar como grep, diff, head, tail, sort, uniq, y así sucesivamente, va a ser muy útil no sólo con shell scripting, pero con su productividad en la línea de comandos.

Aprender al menos algunos c. Es lo que los niveles más bajos del sistema se escriben en el, y le dará una mejor comprensión del sistema como un todo.

Elija cualquier lenguaje de alto nivel que te gusta. Python, ruby, perl, java, lo que sea siempre y cuando te guste. Esto es donde realmente empiezan a aprender a "el programa", y a partir de aquí, será más fácil para aprender más idiomas, y seguir aprendiendo.

10voto

Symmetric Puntos 158

Usted encontrará que todo el mundo estará de más o menos que recomendar su idioma preferido. Mi idioma favorito es el Perl así que eso es lo que yo recomiendo. :) Sin embargo, más allá de mis preferencias personales, hay algunas buenas razones por qué usted debe considerar el uso de perl:

En primer lugar, perl es un maravilloso idioma de propósito general. Es fácil empezar en perl por la escritura de secuencias de comandos simples para hacer el mismo tipo de cosas que usted hace en los scripts de shell, como manipular archivos y tomar decisiones a partir de la entrada del usuario. Esto proporciona una manera muy fácil y la introducción gradual de las ideas generales de la programación. Perl ha sido de alrededor durante bastante tiempo, así que hay un montón de recursos (libros y sitios web) para empezar.

Segundo, perl es un increíblemente poderoso y expresivo del lenguaje que soporta todas las funciones de programación. He estado usando durante más de quince años y todavía estoy aprendiendo nuevas formas de hacer las cosas de manera más eficiente. Por ejemplo, si desea explorar la programación orientada a objetos en perl tiene que (especialmente a través de Alce).

Tercero, perl viene con el casi infinito poder y la flexibilidad de oficial de complemento en el repositorio, de CPAN. Por ejemplo, para seguir con la idea de escribir el software de seguridad, decir que quieres desarrollar algún tipo de red personalizada de escáner de seguridad. En lugar de escribir todo lo que usted mismo, usted podría empezar con el uso de NMAP::Escáner como un motor de escaneo y, a continuación, escribir sus propios ajustes y mejoras en la parte superior de eso.

Por último, si desea explorar la programación web, Perl tiene que demasiado. Uno de los más populares moderna para escribir software de la web en Perl es Catalizador, que ofrece una moderna web MVC framework para desarrollar rápidamente cualquier tipo de aplicación web.

Poner todo eso en conjunto, la ventaja de perl que permite que usted comience pequeño escrito poco de la línea de comandos de secuencias de comandos y programas, y a crecer poco a poco en la escritura completa de las aplicaciones modernas. Por supuesto, el precio de esta flexibilidad es la complejidad. Es hasta usted para estudiar y aprender a hacer las cosas de la manera correcta, perl no hacer cumplir las buenas prácticas de la manera en que otros lenguajes. Personalmente, me gusta esta libertad, especialmente junto con todos los grandes recursos en la web para el aprendizaje de cómo utilizar perl.

6voto

BMDan Puntos 4643

Tres idiomas se mantiene en una buena posición. En orden decreciente de importancia (es decir, la primera es la más importante):

  1. Pseudocódigo. A menudo, la aplicación con la que estamos trabajando, va a ser una amalgama de media docena de idiomas y herramientas, sólo algunos de los que te conocen directamente. Si usted sabe lo que el patrón está llevando a cabo, sin embargo, usted puede averiguar lo que de entrada se entregó a una pieza y qué resultado se debe dar, prueba en la exclusión, y averiguar si es la pieza que está rompiendo.
  2. C. Para mejor o para peor, es lo que se ejecuta la (Linux) universo, y que le da un cierre-suficiente-para-la-tierra a la vista de las cosas que usted puede entender lo que cualquiera de los de mayor nivel de idiomas que en realidad están haciendo (por ejemplo, PHP, de paso por referencia, o Java el hilo de la modelo).
  3. Simplemente Sobre Cualquier otra Cosa excepto de C++. Un lenguaje funcional como SQL o, mejor aún, Haskell, o algo no tan C-ey—si todo lo demás falla, Java puede funcionar para esto, pero es todavía muy procesal—get high marcas de aquí; la idea es envolver su cerebro alrededor de algo lo suficientemente completamente diferente de lo que has hecho antes de que usted no puede ayudar pero se dan cuenta de las limitaciones de lo que has hecho antes. En términos de pura utilidad, bash , probablemente, también pertenece a esta lista, pero si usted no tiene una base en otra cosa, usted acaba de terminar de escribir C con la sintaxis de bash en lugar de la exploración de su poder.

4voto

bgvaughan Puntos 206

Usted debe aprender varios idiomas. Sugiero comenzar con Python. Es ampliamente recomendado para ser fácil de aprender y de ser muy útil, muchas de excelente auto-estudio de los materiales están disponibles de forma gratuita, y deduzco que es ampliamente utilizado por los profesionales de seguridad de TI. Casi cada vez que veo a profesionales de seguridad de correos código de demostración, es Python.

4voto

MagicAndi Puntos 10128

Estoy a punto de comenzar una de 4 años, la seguridad de la información grado en la universidad Purdue. El grado no requiere ninguna programación de los cursos.

Soy el único uno a uno a pensar OMG!!!! en este punto?

Yo también creo que va a ser importante para mí para aprender algunos de los lenguajes de programación

Yo diría que sí. Aunque realmente no estás esperando para convertirse en un experto programador, usted probablemente necesitará las habilidades necesarias para simular / recrear los ataques y entender cómo el proceso de programación de las obras. Usted también tendrá la habilidad para analizar datos y extraer información de múltiples fuentes (como los registros). JimB ha mencionado bash - y mientras que usted va a ser sin lugar a dudas el uso de este ya que sólo se tarda un par de horas para aprender lo esencial de bits. De hecho el único lugar que alguna vez se pueden ver bash es en los sistemas Linux - pero el otro conchas son muy similares.

Me gustaría recomendar el aprendizaje de awk y/o Perl para los datos que se quebraban. No te preocupes de cualquier requisito para marcar un objeto-orientado a la caja, pero yo recomendaría mirar no procesal idiomas también.

El aprendizaje de C también se exponen a una gran cantidad de información acerca de cómo el código se convierte en un programa ejecutable (compilación es solo un paso en un proceso muy complejo).

La opción obvia para alguien interesado en Android/móvil de desarrollo java - java pero intenta aislar al programador de tener que lidiar con las realidades de la operación y protocolos - su mi experiencia esto es donde los problemas de seguridad con aplicaciones Java. es decir, puede ayudarle a alcanzar su objetivo final, y que se verá muy bien en su CV, pero no esperes el aprendizaje de Java para complementar sus conocimientos de seguridad mucho.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: