¿Qué clase sería mejor para un programador principiante como yo?

Creo que la pregunta se reduce a cuál de los dos se beneficiará más en un ambiente de clase . Ambos te ayudarán como programador, especialmente si planeas hacer desarrollo de aplicaciones web como carrera. No conozco el alcance de ninguna de las clases, así que no estoy seguro de qué se ofrece exactamente, así que aquí están las suposiciones de las que estoy trabajando solo por los títulos del curso (estas son las cosas que considero básicas):

Shell de Unix / Linux / MacOS:

  • uso básico y convenciones
  • navegación (diseño del sistema de archivos unix, cd, ls)
  • Utilidades comunes: man, cat, less, grep, find, etc.
  • encadenamiento de comandos – tuberías, redireccionamientos
  • configuración de shell y scripts (scripts de bash, variables de entorno, etc.)
  • edición y procesamiento de cadenas (sed, awk, quizás algo de perl)

Aplicaciones Javascript:
Supongo que esto no es JavaScript introductorio: ya conoce algunos conceptos básicos de programación y JS, y está buscando aplicaciones cliente y / o del lado del servidor. Si la clase no cubre al menos uno u otro (cliente o servidor) en profundidad, puede que no valga la pena su tiempo.

  • secuencias de comandos del lado del cliente: manipulación del DOM HTML
  • descripción general de los marcos de aplicaciones comunes del lado del cliente: jQuery, Dojo, AngularJS, Bootstrap
  • secuencias de comandos del lado del servidor – Introducción a NodeJS *
  • Conceptos de NodeJS: E / S sin bloqueo y secuencias de comandos asincrónicas
  • Módulos NodeJS: uso de NPM y estructura de módulo de nodo
  • Módulos Common NodeJS: conectividad de base de datos CommonJS, Express

* Es posible que no se le enseñe ninguna de las cosas de NodeJS dependiendo de la antigüedad del plan de estudios y las opiniones del instructor sobre el desarrollo del lado del servidor.

Ok, entonces supongamos que eso es lo que estás aprendiendo. La pregunta ahora es, ¿de cuáles de las dos asignaturas vas a obtener más en un ambiente de clase? ¿Cómo piensas y cómo aprendes? Lo que pasa con ambas asignaturas es que siempre podrá encontrar una gran cantidad de información y tutoriales en Internet, y definitivamente lo hará independientemente de cuál de las dos clases tome (o cuál tome primero) .

Entonces pregúntate esto:

¿Cuánto sabes sobre los proyectiles * nix? ¿Te sientes cómodo con las convenciones básicas de Unix o un terminal Unix te intimida? Cuando miras las respuestas a las preguntas del administrador de sistemas en stackexchange, ¿tienen sentido para ti o es griego? ¿Ejecutas un * nix de alguna variedad en casa: Linux, MacOS, BSD y obtienes el uso diario?

Unix es grande, es un poco arcano, y la documentación suele ser extremadamente técnica. Tener un fanático incondicional de Linux para hacer preguntas le ahorrará enormes cantidades de tiempo haciendo las cosas de la manera difícil porque hay un comando simple o invocación que hará exactamente lo que necesita, simplemente no ha oído hablar de él. Si tomas una clase, ese nerd será (con suerte) tu profesor.

¿Cuánto sabes sobre JavaScript y la programación en general? ¿Entiende conceptos básicos de programación como variables, funciones, declaraciones de control de flujo y objetos? ¿Entiende las excentricidades y beneficios de javascript, como la herencia prototípica, los cierres, las funciones anónimas? ¿Tienes idea de las secuencias de comandos asincrónicas utilizando devoluciones de llamada? ¿Has jugado con algunos de los grandes marcos de aplicaciones de JavaScript como Bootstrap y jQuery?

Javascript es probablemente el idioma más fácil del mundo para aprender a través del autoestudio, no porque sea un lenguaje simple, sino porque la web está construida sobre él y, por lo tanto, la web está repleta de información al respecto. Los novatos tienden a luchar más con las partes inusuales: los cierres y el modelo de herencia. Si ya tiene los conceptos básicos de programación y obtiene las peculiaridades de javascript, será muy fácil en relación con el shell de Unix. Si todavía está mojado detrás de las orejas, es posible que desee ese tiempo en el aula para reforzar sus habilidades y darle acceso rápido a un tutor experto.

Por último, pero no menos importante, ¿qué es lo que obtienes de un ambiente de clase? ¿Aprendes de conferencias y debates? ¿Trabajas bien en grupos? ¿O prefiere un libro de texto, música a todo volumen y ejercicios prácticos cuando es hora de aprender algo nuevo? Personalmente, la única razón por la que tomo clases es para poder decir que pasé una clase, pero soy el último tipo de alumno. Usted puede ser el primero (¡y eso no tiene nada de malo!) Elijo las clases que puedo aprovechar para que no me coman demasiado y guarde las cosas que me interesan para el autoaprendizaje. Entonces, basándose en las preguntas anteriores y en cómo aprende, elija la materia en la que es más débil y, si aprende en el aula, tome esa clase; Si eres más autodirigido, toma la clase en la que eres más fuerte.

¿En qué quieres trabajar?

Yo diría si el objetivo final es un trabajo … ir con javascript. Como hay TONELADAS de trabajos que implican el uso de JS. Linux / OSX / Shell son súper útiles, pero diría que se usan en menos trabajos, al menos en la actualidad.

Sin embargo, si fuera YO, iría por la clase linux / shell. Si quieres trabajar en problemas DUROS … Linux hasta el final. Mis intereses abarcan desde la quimioinformática hasta las aplicaciones biológicas: todos los campos HUGELY de Linux dominante.

En noticias relacionadas, casi TODAS las supercomputadoras actuales ejecutan Linux como su sistema operativo principal:
Linux domina las supercomputadoras como nunca antes | ZDNet

Estoy de acuerdo con usted en que ambas clases serían potencialmente útiles, pero en este caso elegiría la clase javascript. Aprender acerca de los sistemas operativos, cómo funcionan y cómo hacer algunos scripts de shell sin duda será útil, pero si realmente quiere sumergir los dedos de los pies en un lenguaje en crecimiento, Javascript no puede ser mejor.

Javascript es el lenguaje que se ejecuta en todos nuestros navegadores. Si abre una consola en Chrome, Cmd + Opt + I y escribe

console.log("Hello World!")

Habrás escrito tu primer programa javascript.

El lenguaje tiene sus peculiaridades, y cada habilidad no debe elegirse en función de lo “caliente” que sea en este momento. Pero realmente creo que Javascript funcionará bien como una introducción a la programación.

Si terminas haciendo la clase Unix, no te preocupes porque aún puedes aprender un montón de idiomas modernos de forma gratuita en codecademy.

Y si desea un libro realmente completo para aprender el idioma de arriba a abajo, lea JavaScript: La guía definitiva: David Flanagan.

La verdadera lección es, toma lo que quieras, porque puedes aprender lo que necesitas usando los recursos que tienes a tu disposición en línea.

Depende totalmente de cuál sea su interés y de cuán profundas sean estas clases en cada materia.

Si está interesado en la codificación y quiere ser desarrollador, debe ir con las clases de Javascript. Puede aprender sobre los sistemas operativos mientras trabaja en varios sistemas. Si desea aprender sobre sistemas operativos y trabajar en software de nivel de sistema, entonces sí puede aprender sobre sistemas operativos. Puedes aprender scripts de shell y muchas cosas de administración. Pero como dije, todo depende de cuán profundas sean tus clases.

Respuesta corta: tómalos a los dos, pero primero toma la clase unix. Es más fundamental y estará en un lugar mucho mejor para desarrollar JavaScript una vez que comprenda mejor las herramientas y la infraestructura subyacentes.