¿Cómo aprender a programar Shell de forma sistemática?
Pasos/Métodos
Sistemas de gestión de bases de datos (DBMS)
Sistemas de gestión de bases de datos profesionales y duraderos, como PostgreSQL, Oracle, Microsoft SQL Server y capacidades de scripting de Informix. se proporcionan a través de procedimientos almacenados o funciones almacenadas. Quizás las opciones de lenguaje más reconocidas sean TransactSQL, utilizado por Microsoft SQL Server y Sybase, y PL/SQL, utilizado por Oracle. PostgreSQL proporciona una extensión de programa similar a PL/SQL para SQL llamada PL/pgSQL, pero también ofrece una variedad de otros lenguajes, incluidos PL/Perl, PL/Python, PL/Ruby y PL/Tcl.
Aunque esta oportunidad de programación se limita a un conjunto específico de áreas problemáticas, si es un DBA (administrador de bases de datos) o su trabajo implica el desarrollo y generación de informes de bases de datos, sabrá de primera mano que esto es muy útil. . Útil.
Complementos
Muchos juegos de computadora nuevos ofrecen la posibilidad de escribir y cargar complementos. Por ejemplo, "World of Warcraft" proporciona un sistema de complementos que utiliza el lenguaje de programación Lua. A medida que Firefox se ha vuelto famoso y ampliamente utilizado, los navegadores web modernos a menudo proporcionan sistemas de complementos flexibles; en el caso más simple, los complementos de Firefox están escritos en JavaScript; Los navegadores de código abierto suelen ser más atractivos que los navegadores de código cerrado en términos de desarrollo de complementos, y es probable que el sistema de complementos del navegador Chromium se convierta en el segundo objetivo más importante para los desarrolladores de complementos. Esto se debe al navegador Google Chrome. Estrategia de marketing de alto perfil y política de licencias permisiva.
Muchas otras aplicaciones tienen sistemas de complementos y extensiones que brindan amplias oportunidades para desarrollar estas florecientes habilidades de codificación, incluidos incluso algunos emuladores de terminal y editores de texto basados en consolas como Vim. (Una buena noticia: contribuí con un poco de código al proyecto urlpicker).
Preguntas prácticas
Puedes intentar resolver los problemas proporcionados por la lista de verificación genérica en el código. tarea, que está especialmente diseñada para brindar oportunidades de pasantías para programadores. El Proyecto Euler es un proyecto popular, independientemente del lenguaje de programación, que incluye "una serie de desafiantes problemas matemáticos/de programación informática". El Proyecto Euler es una colección de cientos de problemas, que generalmente varían de fáciles a difíciles, suficientes para mantenerte ocupado durante mucho tiempo.
Otros ejemplos incluyen RubyQuiz, que ha sido popular en la lista de correo de Ruby-talk durante muchos años. También está CodeKata, un proyecto más pequeño y de corta duración de Dave Thomas. Dave Thomas es uno de los coautores del libro "The Pragmatic Programmer".
Estas opciones no son adecuadas para su uso como tareas de aprendizaje exploratorio automotivadas porque harán que la gente se rasque la cabeza, pero si le resultan divertidas, puede utilizarlas junto con otros métodos de educación práctica en programación.
Teléfonos inteligentes
La mayor nueva moda en la industria del desarrollo de aplicaciones son las aplicaciones para teléfonos inteligentes. Estos dispositivos a menudo requieren que los desarrolladores utilicen un lenguaje específico como plataforma de aplicación que maximice las capacidades del dispositivo, al menos de una manera oficialmente autorizada.
Está surgiendo una industria emergente en el sistema de desarrollo de teléfonos inteligentes, que permite a los desarrolladores escribir su propio código en otros idiomas que no son nativos de la plataforma del teléfono inteligente y luego convertirlo en aplicaciones en el idioma nativo. Dado que no es necesario aprender el lenguaje de desarrollo de aplicaciones oficial de ninguna plataforma de teléfono inteligente específica, las aplicaciones web también han ganado terreno como método de desarrollo de aplicaciones para teléfonos inteligentes.
Otra opción para elegir idioma en lugar de plataforma es usar un dispositivo como el N900 de Nokia, que ejecuta la distribución Debian de Linux y puede ejecutar una amplia gama de software, incluidos muchos no diseñados para teléfonos inteligentes.
Han surgido libros y tutoriales en línea que se centran en varios métodos de desarrollo de aplicaciones para teléfonos inteligentes, especialmente para dispositivos Android y iPhone. Algunos marcos de terceros "compilan" código escrito en todo, desde HTML + JavaScript hasta Ruby o Python en aplicaciones "nativas" para múltiples plataformas, que a veces incluyen no solo plataformas de teléfonos inteligentes, sino también sistemas de escritorio. Quizás lo más interesante de esta situación es que estos marcos y los IDE asociados no tienden a intentar resolver todos los problemas de programación, a diferencia de los principales marcos como Visual Studio y .NET Framework, que son igualmente buenos en programación. Esto permite simplificar significativamente el proceso de desarrollo al reducir las opciones a un área problemática manejable. El resultado es un estilo de desarrollo de software muy accesible para principiantes.
La desventaja es que mientras aprendes a programar, puede resultar difícil escribir una nueva aplicación para tu teléfono inteligente todos los días. Sin embargo, si el sistema operativo de su teléfono inteligente es tipo Unix (como el del N900), el mismo proyecto de desarrollo de gadget puede resultar muy útil tanto en estaciones de trabajo como en servidores.
Hojas de cálculo
Si utilizas un programa de hoja de cálculo que viene con un potente sistema de macros, tendrás una forma rápida de leer el código de otras personas (o cosas) y escribir tu propio código. . Primero, registre en una macro una tarea que realiza con frecuencia y que normalmente requiere varios pasos tediosos. A continuación, abra el código fuente de la macro, léalo y edítelo para hacerlo más adecuado para uso general. Este es un enfoque muy limitado que no conducirá a mucho progreso, pero puede ayudarle a seguir el camino para caer naturalmente en el código de secuencias de comandos simple.
Probablemente el programa de hoja de cálculo más común que utiliza este tipo de script sea Microsoft Excel. El VBA que utiliza Excel es un lenguaje pobre, pero si usa mucho Excel en su trabajo diario, esta es probablemente una habilidad que debería dominar de todos modos. OpenOffice.org utiliza un sistema de macros similar y lo utiliza de forma muy parecida, y LibreOffice, al igual que Microsoft Office, ofrece oportunidades para aprender a codificar.
En cualquier caso, la barrera de entrada para escribir programas es ligeramente más alta que escribir código de script de shell de línea de comandos simple, ya que las opciones de menú y los botones requieren hacer clic para habilitarlos. El costo de comenzar es similar al de iniciar un nuevo proyecto con uno de los principales IDE del mercado, pero para un "proyecto" significativamente reducido. Sería una buena idea asegurarse de que esta no sea solo una oportunidad de secuencias de comandos en su entorno de desarrollo diario, sino que sería útil aprovecharla.
Unix
Si utilizas regularmente algún sistema similar a UNIX, tienes una gran ventaja a la hora de buscar formas de practicar tus primeras habilidades de programación. UNIX ofrece más oportunidades para la automatización de scripts simples que cualquier otro sistema operativo doméstico de uso general, gracias a la gran flexibilidad de administrar scripts en la plataforma. En su forma menos compleja, un script de administración podría no ser más que guardar una serie de comandos de shell en un archivo. Sobre esta base, puede utilizar bucles simples y estructuras condicionales, procesamiento de entrada y salida, lectura y escritura de archivos y tareas programadas para expandirse.
Después de divertirse escribiendo scripts de shell simples, vale la pena que cualquier administrador de sistemas Unix dedique algún tiempo a aprender a escribir scripts administrativos en Perl, Python y Ruby. Las habilidades clave para usar estos lenguajes en un entorno Unix incluyen acceder a flujos de texto a través de canalizaciones y redirecciones de UNIX, manejar opciones de línea de comandos, leer y escribir archivos y usar expresiones regulares para buscar y manipular texto. Los administradores también quieren conocer los conceptos básicos públicos de la programación, como el procesamiento de resultados, los bucles (o de forma recursiva en algunos casos) y la toma de decisiones basadas en criterios claramente definidos a través de la programación utilizando estructuras condicionales.
Escribir herramientas de línea de comandos Unix es un terreno fértil, con muchas oportunidades para llevar el tremendo poder de los lenguajes de scripting a la programación.
Debido a los requisitos de flexibilidad y simplicidad del desarrollo de scripts administrativos, las herramientas de creación pueden variar desde unos pocos ejemplos mínimos de herramientas útiles hasta potentes procesos de servidor e incluso automatización masiva de tareas paralelas, equilibrio de carga, filtrado heurístico y algunas otras tareas interesantes de resolución de problemas que despertar el interés de los mejores programadores del mundo.
Aunque casi todos los sistemas operativos de propósito general tienen alguna capacidad para utilizar scripts administrativos, muchos de ellos tienen un propósito específico y otros son más equilibrados. Unix es superior en términos de condiciones para administrar scripts. Debido a que los sistemas similares a Unix, como las principales distribuciones de Linux y los sistemas BSD Unix, comparten el mismo diseño básico del entorno de ejecución, todos pueden administrar scripts y la portabilidad entre plataformas de scripts. mientras escribe estos scripts de acuerdo con los requisitos de portabilidad (por ejemplo, usando sh o Perl en lugar de bash, eligiendo valores sysctl estándar del sistema en lugar del sistema de archivos proc de la fuente de datos).
Este trabajo también se aplica a lenguajes distintos de los lenguajes interpretados, dinámicos y de muy alto nivel. C, C++, Haskell, Objective-C, Objective Caml y muchas otras opciones son ideales para la tarea de escribir herramientas Unix simples de todo tipo. Para muchos de estos lenguajes, incluso completar un proyecto de ingeniería simple como una pequeña herramienta de administración requiere aprender una gama más amplia de habilidades que para lenguajes como Perl, Ruby y Bourne Shell. Pero en comparación con el desarrollo de aplicaciones GUI, la programación de sistemas y otras tareas de uso frecuente (especialmente en otras plataformas), estas tareas son mucho menos difíciles para los principiantes en programación.
De hecho, parte del valor de un entorno similar a UNIX para programadores novatos es aprovechar al máximo los comandos de Unix, dado que la filosofía Unix a lo largo de los años ha proporcionado una gran cantidad de herramientas de uso común que tienen estrictas reglas. divisiones de trabajo (en su mayor parte) y funcionan bien. El poder del entorno anima a los usuarios a pensar como programadores, no como audiencias.
Páginas web
Esta es una sugerencia peligrosa, aprender a programar jugando con JavaScript. Esto no se debe a que JavaScript sea un mal lenguaje, sino a que, en la búsqueda de una experiencia de usuario dinámica, las páginas web se han visto saturadas con un abuso desenfrenado de JavaScript y, por lo tanto, complacer a los programadores novatos en la web puede considerarse una falta de respeto. JavaScript también tiene algunos usos positivos en la web, y los novatos están cada vez más interesados en la idea de escribir aplicaciones de escritorio que se ejecuten en un navegador, lo que nos da muchas razones para comenzar a aprender JavaScript lo antes posible en nuestras carreras de programadores.
De hecho, JavaScript es el script web independiente más común del lado del cliente, lo que también significa que JavaScript puede ser el lenguaje más fácil de aprender leyendo el código de otras personas. Busque cualquier página web que tenga elementos dinámicos del lado del cliente, luego haga clic derecho y seleccione la opción para ver la fuente de la página, y encontrará que está llena de fragmentos dispersos de JavaScript. Para páginas dinámicas más complejas, la página web (X)HTML puede incluso hacer referencia a un archivo .js independiente que sea código puro.
Comprueba el código cuidadosamente antes de subirlo a un servidor web de acceso público; asegúrate de que sea bueno. Si desea que se ejecuten secuencias de comandos más útiles de forma nativa, las extensiones del navegador le permiten aplicar secuencias de comandos arbitrarias a las páginas web que ve, y solo a su experiencia de navegación personal. Greasemonkey de Firefox es un ejemplo.