En muchos sentidos, ¿aprender a programar ahora es más difícil de lo que era en el pasado (por ejemplo, los 80) cuando las cosas eran mucho más simples?

En general, creo que es excepcionalmente más difícil.

En la parte de arriba:

  • Herramientas mucho mejores
  • Riqueza de información (internet)

A la baja…

Más idiomas requeridos

Por ejemplo, una aplicación web típica de pila completa que está viendo en HTML, CSS, JavaScript, algunos marcos de JavaScript, un lenguaje del lado del servidor y SQL.

En el día en que normalmente tenías un idioma y una terminal.

La Internet
Espera, pero acabo de poner eso como un alza. El inconveniente es que hay demasiada información y que Internet nunca se olvida. El programador novato no puede distinguir entre consejos buenos y malos, información antigua y nueva, lo que está en desuso frente a lo actual. Es muy frustrante para el principiante repasar toda la información.

Rápido ritmo de cambio
Especialmente en la web las cosas están evolucionando muy rápidamente, superando a los libros. Para el principiante, esto es muy desafiante ya que no están equipados para saber sobre las versiones y cómo investigar las cosas correctas relacionadas con eso.

La industria apesta en la enseñanza de la codificación.
Por eso empecé The Software Guild. Las universidades apenas pueden mantenerse al día, la disciplina en comparación con otras es aún joven, y la mayoría de los tipos de personalidades de programadores no se prestan para ser buenos maestros. Incluso los programadores expertos a menudo olvidan lo que es “no saber” y no enseñan las cosas en un orden lógico a sus aprendices.

Realmente no creo que haya sido fácil o al menos menos difícil que hoy. Ahora tienes todo tipo de herramientas que te ayudarán a poner todo en orden y todo a tu medida. Ahora tienes todo tipo de IDE que hacen que la programación en java, una combinación de clics aleatorios y ctrl + enter.

No es así como solía ser en aquel entonces. Tenías un terminal remoto, tenías que escribir códigos allí. Si hace mucho tiempo, para ejecutar estos programas, programaría un trabajo en una computadora y esperaría el resultado por uno o dos días (y si hay un error en su código, debe hacerlo todo otra vez).

Ahora el mundo del software es mucho más complejo de lo que solía ser. Acordado. Tienes que correr a través de este ridículo javascript framework jungle si eres un desarrollador front-end. Entonces tienes Saas / Less / Coffeescript. Como si esto no fuera suficiente, tienes toneladas de cosas en el backend. Mi punto es que hoy hay tanto que aprender que es casi imposible saber algo en toda la eternidad.

Comparando esto con una época en la que el único lenguaje significativo era C, el pasado suena más simple y más fácil. Pero las herramientas más simples no se traducen necesariamente en un trabajo más simple. En realidad, es todo lo contrario. Como ejemplo, si estuvieras trabajando en el desarrollo de sistemas operativos en los años 80, no tendrías Grub, ni Lilo ni wikipedia (y Google) para arrancarte. Todo lo que tendrá es un cliente de correo electrónico basado en una terminal tonta, un teléfono y una terminal. No podría hacer frente a algo como OSDevelopment o Compiler Design con solo un libro y sin que ningún blog te dé ejemplos en vivo y código fuente para hacer cosas.

Además, había muchos otros problemas también. No hay un framework de compilación estandarizado (y no me refiero a algo como un Makefile, me refiero a algo como Maven y Ant o quizás a Yeoman o Rails). No habría ningún marco de implementación continua (ni siquiera de implementación) como heroku / app engine. Tampoco habría servicios de AWS.

Con todo, las personas siempre tienden a romantizar el pasado y piensan que las cosas eran más simples en ese entonces. Eso no es necesariamente cierto. La codificación y un trabajo de software son mucho más fáciles hoy en día que en la forma en que se encontraba en ese entonces.

En los años 70 compró su ensamblador en una papelería: un bloc de notas, algunos lápices y un buen erser. Tenías que conocer algunas CPU (8080, 6800, 6502, quizás Z80) y eso fue todo. Usted programó en el metal desnudo.

Ahora, no creo que nadie sepa todos los idiomas y técnicas en uso. Te especializas Un gran diseñador de sistemas tendría problemas para diseñar una UI para un sitio web.

¿Fue más fácil? En muchos sentidos, sí. Usted sabía lo que estaba sucediendo dentro de la CPU para cada instrucción. Ahora estás tan alejado del metal que la mayoría de los programadores no podrían escribir una rama de tiempo igual si tuvieran que hacerlo (o incluso saber a qué se refiere, pero si estás escribiendo un puerto serie en ensamblaje, será mejor que hacer que ambas ramas tomen el mismo tiempo).

Hoy es más fácil, ya que puedes escribir una línea de código que habría tomado una hora en ese entonces. Y si llama a una clase, es un minuto para configurarlo y usarlo, en lugar de escribir el mismo código para el proyecto de evcery. (Solíamos decir que un buen programador escribe un buen código, pero un gran programador le roba el código).

Sankalp Srivastava y Peter Liu hacen grandes puntos. Voy a poner mi credo Geek en la línea y decir que la programación en el ’80 fue mucho más simple. Digo esto porque tanto el ambiente como las expectativas eran mucho más simples. Sí, no existía un IDE (acabo de recibir mi disquete del editor de Underware’s Brief) y escribir código de comunicaciones era mucho más que una habilidad sin una biblioteca TCP, pero los clientes estaban muy contentos con un programa de DOS que funcionaba. Hoy en día, algunas de las primeras preguntas que salen de la boca del cliente que no es programador son “¿qué pasa con las versiones de Android e iOS del programa?” y “¿Está esta aplicación web y en la nube habilitada?”. En aquel entonces, un programador podía construir un producto en la mesa de su cocina sin dinero de VC. Dios, echo de menos esos días.

De hecho:
IDE se vuelve más poderoso.
Sintaxis / Lib se vuelven más convinentes.
Las comunidades se vuelven más enérgicas.

Pero somos más inquietos e impacientes que nuestros antecesores.