¿Cuán eficientes eran las personas para aprender a programar antes de que Internet fuera una fuente disponible para ayudarlos? ¿Aceleró Internet el aprendizaje de códigos?

En mi opinión, los programadores antes de Internet fueron mucho más eficientes, con la advertencia de que la afirmación es la noción implícita de “en promedio”.

Nací en 1991 y cuando comencé a codificar en la universidad, Internet ya era una de mis herramientas más valiosas para el aprendizaje. Los estudiantes y eruditos de la antigüedad tenían que buscar respuestas de libros de texto , otros humanos , o sentados allí y simplemente pensando . En contraste, la fuente inmediata más típica para responder a problemas o adquirir conocimiento en la era moderna es Internet. Hablemos de las ventajas de las 3 fuentes de conocimiento arcaicas mencionadas anteriormente.

FUENTES DE CONOCIMIENTO:

1) Libros de texto . Resulta que soy un lector voraz de libros de texto. Esto se debe al hecho de que mi cerebro no puede hacer frente a una conferencia de 50-90 minutos donde un profesor, carismático o no, solo habla. Lo que me han enseñado los libros de texto, y como me han dicho mis profesores mayores, es que obtengo muchos más detalles que la mayoría de mis compañeros que NO leen sus libros. Por ejemplo, mientras mis compañeros en mi primera clase de ciencias de la computación luchaban con el tema de los ‘punteros’, no tuve ningún problema. ¿Por qué?

[http://moodle.perins.net/mod/page/view.php?id=50880]

El profesor, utilizando limitaciones de tiempo, habló sobre punteros. Lo que hacen y cómo usarlos de manera efectiva. Pero el texto de ese curso entró en el tema con mucho más detalle, explicando qué son, por qué son útiles, cómo funcionan y cómo usarlos. Mientras que otros estudiantes intentaban memorizar cuándo y cuándo no usar ” * ptr ” o ” & ptr ” o ” ptr”, no tenía memorizar nada porque ya lo había aprendido completamente a través de mi libro de texto; ¡La conferencia del profesor solidificó aún más mi conocimiento y todo fue bueno!

Nota: De hecho, quiero señalar que la cantidad de veces que he defendido (y ganado) apunta hacia atrás a través de tareas, cuestionarios o exámenes al citar un libro de texto, ya que mi fuente es probablemente alrededor de 5 veces al año. Los profesores y sus TA no son perfectos, y a veces cuando les demuestras que el libro de texto dice tal y tal, no pueden discutir contigo y obtienes puntos que tengo la sensación de que muchos otros estudiantes se perdieron.

2) Otros humanos. Un libro de texto no puede ver la mirada perpleja en tu rostro; tampoco puede el brillante programador de Stack Overflow responder sus preguntas. Todavía no he visto UNA respuesta de Stack Overflow, Quora o del foro a la pregunta académica de alguien que fue seguida por el póster / interrogador original respondiendo: “Lo siento, todavía estoy confundido. ¿Puede explicar esto y aquello más? ? ”

O bien, todos los que responden preguntas en Internet escriben respuestas perfectas que tienen COMPLETO sentido la primera vez para la mente confundida, o la mente confundida no se molesta en profundizar. Me he dado cuenta de que el 90% de mis estudiantes confundidos que soy tutor no me pedirán que explique más detalladamente mi (s) respuesta (s) a su (s) pregunta (s); ¿Pero cómo sé que están confundidos? Porque su cara se ve así -> 0_O

Sus grandes ojos y mordiscos en los labios traicionan su confianza, por lo que preguntaré calurosamente: “¿Eso tiene sentido?” y admitirán “no” Entonces esto me da la oportunidad de explicar de una manera diferente, al tiempo que desafía mi conocimiento del tema. Esto es beneficioso para el alumno y el maestro.

3) Pensamiento Esta es probablemente la herramienta más importante para el aprendizaje que es absolutamente crítica para la comprensión genuina de un tema. Muchos estudiantes y compañeros parecen resolver problemas de esta manera: Internet-> Piense por 1 minuto-> Espere hasta la fecha de vencimiento de la tarea para darse cuenta de que están confundidos.

Nos hemos vuelto tan dependientes de Internet para resolver o ayudar a terminar las partes difíciles, pero atractivas, de nuestras tareas que hacemos todo el minuto antes de su vencimiento porque confiamos en que Internet lo resolverá por nosotros. Esto no solo ha creado hábitos terribles, sino que nuevamente, nos ha enseñado a confiar en otra persona y no en nuestro propio cerebro para resolver nuestros problemas.

Entonces, todo esto me lleva a mi conclusión: los programadores, antes de tener Internet como herramienta para el aprendizaje, probablemente eran, en promedio, mejores que el programador promedio en el entorno actual. No quiero ser, por falta de una palabra mejor, un imbécil, pero estoy 99% seguro de que la mayoría de los graduados universitarios modernos en ingeniería y ciencias no tienen la tenacidad para completar sus títulos u obtener tan lejos como lo hicieron solos. Apuesto a que confiaron mucho en Internet para terminar la escuela. Lo que está bien, pero lo que estoy diciendo es que los programadores que salieron de la clase de 1985 probablemente podrían correr círculos alrededor de los programadores de la clase de 2015. Las razones son que los estudiantes que lo hicieron en ese entonces probablemente eran más independientes confiable, ingenioso, seguro (que impacta dramáticamente la capacidad de uno para resolver problemas), conocedor (usted recoge MUCHA más información, inútil y crítico, cuando lee libros y pide ayuda a sus compañeros), y francamente académico en su búsqueda del aprendizaje.

Nota: Sin embargo, también argumentaría que hay un pequeño porcentaje de individuos de élite que aprendieron a programar por su cuenta gracias a Internet. Las personas así a menudo no tienen paralelo en varias formas, en las que no entraré porque estamos más preocupados por el perfil del programador típico.

Una aclaración basada en la respuesta de Richard:

Con “antes de Internet” quise decir “antes de que generalmente se usara la WWW”, que podría no haber sido la intención del OP.

La Internet propiamente dicha es simple y simple una red mundial de computadoras interconectadas que utilizan TCP / IP como protocolo de comunicación. Lo que se ejecuta además de eso realmente no tiene nada que ver con el término.

Pero cuando la gente dice Internet, tienden a referirse a la World Wide Web (como en HTML (etc.) sobre HTTP), así que eso fue lo que busqué.

———-

El alcance del conocimiento necesario era más pequeño y especializado, en mi opinión la documentación era mucho más consistente, ya que generalmente había una sola fuente: el proveedor de los chips, el lenguaje de programación, la herramienta de desarrollo, etc. Cuando compraste una herramienta de desarrollo, usualmente recibía un manual grueso con todo lo que necesitaba saber (o al menos lo que el proveedor quería que supiera; usualmente no menciona los muchos errores). Además, se esperaba que un programador fuera un experto dentro de esa “caja”, y había muchos menos programadores compitiendo por la “caja” en cuestión.

Todo el mundo parece querer convertirse en un programador de aplicaciones exitoso hoy, por lo que las herramientas deben ser más simples de usar y mucho más avanzadas (considere, por ejemplo, el desarrollo de juegos con 3D y física; extremadamente complejo anteriormente; ahora también hay muchos marcos para eso) ) La necesidad de interfaces de usuario complejas también ha aumentado su magnitud, incluso en aplicaciones básicas, lo cual es una complejidad en sí misma.

Caso en cuestión: Tome, por ejemplo, PhoneGap / Cordova / PhoneGap Build con el que trabajo a diario: cada organización alberga su propia documentación inconsistente, hay un foro en cada uno y hay desbordamiento de pila, Quora, etc. donde puede hacer preguntas y respuestas, y hay numerosos marcos construidos en PhoneGap / Cordova que están en diferentes estados de preparación (ver, por ejemplo, Ionic que está en alfa, lo que sea que eso signifique). Es un desastre, pero de alguna manera es factible, porque Internet. Tal desorden no sería aceptado y no existía en ese entonces. Podría decirse que el código abierto tampoco era realmente una cosa en ese entonces. El código abierto requiere que Internet prospere.

También considere la diferencia entre, por ejemplo, desarrollar para Windows nativo (que usa Visual Studio y elegir un lenguaje de programación, en ese entonces principalmente Visual Basic; todo proporcionado en un paquete ordenado que estaba (y está) listo para funcionar) y desarrollo web (que requiere conocimientos de CSS, HTML, Javascript, marcos, CMS, secuencias de comandos del lado del servidor como PHP, RoR, Python, Java, etc., gestión de bases de datos como MySQL, PostgreSQL, etc., alternativas de alojamiento, administración del sitio, etc., y con proveedores de herramientas completamente diferentes, especificaciones, etc.).

Todo el panorama se ha desplazado a lo que es importante saber en este momento, ya que las cosas cambian rápidamente, lo que requiere la dinámica de Internet. Si es más eficiente o no ahora, no sé cuándo hablar del resultado esperado. Se está haciendo mucho más ahora, y ahora hay muchas más opciones.

La tecnología crea la necesidad de más tecnología, eso crea la necesidad de más tecnología …

Hay dos caras de esta moneda.

Por un lado, recuerdo ser súper creativo y usar algunos métodos locos para lograr cosas bastante simples porque no podía buscarlos en Google. Entonces, en ese sentido, Google, etc., me ha hecho más eficiente, tomando la ruta más directa a la solución y haciéndolo en una fracción del tiempo.

Por otro lado, antes de Google y StackOverflow, etc., si sabías algo, lo sabías frío. Seguramente lo había memorizado, tenía una sección en un libro asignado (compré un libro específicamente porque resolvió como el 40% de un script de bash complejo que había estado tratando de crear), y lo entendió en un nivel profundo.

Aunque técnicamente no hay nada que le impida hacer eso hoy, en general es mucho más fácil y rápido saltar, obteniendo solo una comprensión superficial de piezas específicas de código. Probablemente tengamos que buscar mucho más cuando necesitemos usarlo nuevamente, y haya menos memorizado y entendido completamente.

Pero con eso viene mucha velocidad, así que como dije … Es una compensación.

Se necesita alguna aclaración sobre el término “antes de internet”. Internet comenzó en 1969 y en 71 había 15 computadoras. Creció rápidamente en la academia y los negocios después de eso. La pregunta podría interpretarse como antes de la World Wide Web, que realmente despegó alrededor de 1995.

En 1986, cuando me conecté por primera vez a Internet, todas las universidades tenían acceso a Internet. Muchas computadoras estaban ejecutando algún tipo de Unix para el cual había un extenso manual en línea, (simplemente escriba “man man” en un sistema Linux o OSX para ver este manual), se imprimieron versiones de este manual que tenían 7 volúmenes gruesos. fácilmente disponibles. Por supuesto, no había una red mundial en ese momento, pero había muchos otros servicios en línea: ftp se usaba para acceder a grandes repositorios de bibliotecas de códigos, telnet se podía usar para iniciar sesión en varias máquinas remotas, Usenet era la madre de todos foros de discusión con discusiones sobre cada tema que pueda pensar, puede hacer una buena comparación de Quora con usenet, en términos de aliento y calidad de contenido. Está mejor organizado que Quora y es más libre. Todas las ideas de una pregunta frecuente surgieron de usenet como una forma de abordar la pregunta frecuente en cualquier tema en particular. Había muchos foros relacionados con la computadora y muchas preguntas frecuentes para resolver problemas de programación.

Antes de tener acceso a internet, teníamos revistas. Las revistas de computadoras del día estaban llenas de listados de códigos. Puede escribir la lista en su ZX Spectrum y obtener un juego que funcione, a menos que haya cometido un error y nunca se haya ejecutado. Además de las listas, había muchas secciones de cómo hacer con la programación. A principios de los 80 había poco que hacer en una computadora que no fuera escribir código, los juegos pagados realmente no eran tan buenos (aparte de Elite).

La gente era más eficiente en el aprendizaje de la programación previa a Internet. Para empezar, había menos idiomas disponibles y menos libros, por lo que no tenía que preocuparse por el “último y mejor”. Lo más probable es que esté aprendiendo C con páginas de manual de K&R y Unix o documentos de IBM PC / Microsoft DOS. Toda una clase de problemas que tienes hoy simplemente no existía en ese entonces (web, informática distribuida, GUI avanzadas, multiprocesamiento).

Además, reddit / Quora / Stackoverflow pueden convertirse fácilmente en distracciones si no tienes fuerza de voluntad de hierro fundido. En aquel entonces, las personas resolvían problemas programando prueba y error … porque esa era la única forma. La experimentación fue clave, y eso te convirtió en un mejor programador.

Aquí está la cosa, sin embargo … estás hablando de informáticos aquí. Los mismos científicos que inventaron la red mundial como la conocemos, como un proyecto en el acelerador de partículas en el CERN. La razón más importante por la que la web mundial ha tenido éxito es porque el HTML nos permite copiar y pegar, para ver ideas de origen de otros diseñadores web y científicos … y esto es igualmente cierto para otros grandes esfuerzos de programación. Comencé a programar computadoras mucho antes que la web mundial, cuando Internet estaba lejos de ser accesible o ubicuo, y pasé mucho tiempo leyendo libros y revistas, y compartiendo ideas con otros entusiastas; pero te diré cuando empecé a aprender más, y no fue de internet.

Cuando comencé a trabajar en un gran proyecto de software tras otro, comencé a ver cómo otras personas resolvían problemas similares de diferentes maneras. A veces, encontraba una solución elegante para un problema complicado, y hacía una nota mental. Comencé a participar en revisiones de códigos y a compartir notas arquitectónicas con mis colegas. Muy pronto, pasé menos tiempo aprendiendo de los libros y más tiempo aprendiendo de mis compañeros de trabajo.

Entonces, sí, a menudo respondemos a un problema comparando las búsquedas de Google ahora, pero la búsqueda de Google no puede acceder al repositorio real de todo el conocimiento; es accesible por CVS, por SVN o Git; y pensamos en ello, la cantidad de código maduro que está disponible para aprender en Github es realmente fenomenal. Dicho esto, StackOverflow y jsFiddle también son notables por cómo hacen que mi trabajo sea más fácil.

Utiliza la palabra “eficiente” como si significara algo. No lo hace No hasta que defina en qué medida está tratando de ser eficiente.

Me enseñé FORTRAN en 1967 del libro McCracken. Lo que estaba tratando de hacer eficiente fue mi aprendizaje. Insertar mis líneas de código en tarjetas perforadas me dio una visión íntima de mi código y su sintaxis. Como solo obtengo una carrera por día, aprendí por las malas que un paréntesis perdido cambia el significado del programa. Aprendí el valor de corregir mi código de una manera que nadie aprende hoy en día. Hoy en día se ejecuta la cosa sin molestarse en corregir, y si el compilador no encuentra nada, se supone que el programa es correcto.

Codificamos para minimizar el uso del tiempo de la computadora porque eso era lo que se facturaba y era monstruosamente costoso. Podríamos hacer en 8K de RAM cosas que a los jóvenes les cuesta hacer en 100 MB.

En algún lugar alrededor de mediados de los 70, IBM se dio cuenta de que el precio de la potencia de cómputo estaba cayendo lo suficientemente rápido como para hacer que la eficiencia del programador fuera la mejor opción. El resultado es un enlace importante del documento ‘El valor económico del tiempo de respuesta rápida’ El valor económico del tiempo de respuesta rápida y la invención de los principales equipos programadores, la programación estructurada y la mayoría de los otros paradigmas de programación de ese período, que no fueron tan estúpidos como la gente hoy en día dice que sí.

Hoy en día, es obvio que la potencia de cálculo no cuesta nada o casi nada, y los programadores son dos por un centavo. Entonces, lo que todo el mundo parece ser eficiente es lograr que el código entre en producción en el menor tiempo posible. ¿No han aprendido nada de todos los errores que cometimos?

Estoy de acuerdo con la mayoría de las respuestas hasta ahora.

Me tomaré la libertad de extender la pregunta un poco y relatar cómo era programar antes que las computadoras personales, SI no tuvieras acceso a una computadora en la escuela o en un lugar de trabajo.

Quería probar la programación, a principios de mediados de los 70. El problema era obtener tiempo de computadora para verificar sus programas. Tenga en cuenta que dije verificar … esto se debe a que uno pasó un poco de tiempo escribiendo el programa en papel (no había computadoras personales, y como corolario no había procesadores de texto o editores de texto) e iba una y otra vez el código en papel intentando para buscar posibles errores por inspección.

Logré pasar unas horas en la computadora de una pequeña empresa. El acuerdo era que podía tener 2 horas a partir de las 9 p.m. los martes y jueves en la mini computadora de su pequeña empresa (todavía es algo demasiado caro para que una persona lo compre).

Entonces revisaba mis programas escritos a mano tan cuidadosamente como podía para poder aprovechar al máximo las 4 horas de tiempo de computadora que tenía cada semana.

Oh, sí, la computadora era una máquina de 8 bits que solo tenía un lenguaje ensamblador 8080 y un soporte de lenguaje orientado a los negocios de alto nivel, aprendí ambos … Una vez necesitaba valores exponenciales y logarítmicos para resolver un problema numérico. escribe las expansiones de la serie de Taylor para calcularlas ya que el lenguaje de negocios no tenía esas funciones …

Con respecto a las personas que hacen programación, la vida es un sueño absoluto hoy.

En pocas palabras: ¡los libros fueron nuestra fuente!

Antes de internet, había menos cosas que aprender. No había HTML, CSS, JavaScript, PHP, Ruby, etc. Básicamente conocía la lógica / algoritmos y uno o dos lenguajes de programación (como BASIC, Cobol, Fortran, C, Pascal).

Comencé a programar en 1987, leyendo libros y practicando en una computadora . Solía ​​escribir un ejemplo del libro / manual y ajustaba aquí y allá para ver qué pasaba. En realidad, todavía lo hago hoy, pero compro menos libros de lo que solía hacerlo.

Y no había nadie para “ayudarme” cuando necesitaba alguna orientación. Si tenía un problema, tenía que encontrar la forma de resolverlo solo. Y (además de la melancolía) esa era una buena forma de aprender.

Veo muchos programadores copiados / pasados ​​en estos días. Son demasiado vagos para esforzarse, solo porque es mucho más fácil (y rápido) pedir prestada la solución en línea a otra persona que haya pasado un tiempo difícil para resolver el problema. A veces, pasan mucho más tiempo buscando la solución en línea, que si intentan resolver por sí mismos.

Admito que es (muy a menudo lo que deseo) es necesario pedir ayuda a alguien (gracias Stack Overflow), pero veo tanta gente haciendo preguntas “falsas”, que me pregunto cómo codifican sin una conexión a Internet.

Reformule la pregunta a “¿cuán eficientes eran las personas para aprender CUALQUIER COSA antes de que Internet fuera una fuente disponible para ayudarlos?” y puede comenzar a imaginar cómo la gente aprendió a programar antes de internet. Otros recursos que las personas podrían usar fueron:

  • Colegio
  • Libros, revistas y televisión.
  • Padres, miembros de la familia u otros adultos conocidos que trabajaban / tenían conocimiento en el campo.
  • Jugar con la electrónica del hogar (y probablemente buscar algunos de los recursos mencionados anteriormente)

Para responder a su pregunta real, por supuesto, muchas de estas cosas son menos eficientes cuando no se complementan con Internet. Pero si alguien tuvo la suerte de aprender a codificar en la escuela (probablemente en la universidad), apuesto a que aprendió a programar con la misma eficiencia que cualquier otra materia. Siento que aprendí a codificar más fácilmente porque tenía Internet como recurso, ¡pero también me siento así con respecto a cualquier otra materia que haya estudiado!

En primer lugar, las máquinas eran mucho más pequeñas y menos potentes. La gente se centró MUCHO en escribir código muy eficiente.

En segundo lugar, la gente trabajó en problemas más simples (bueno, en términos de tamaño del código, no necesariamente de complejidad matemática o algorítmica).

Tercero, mucha gente estaba INVENTANDO enfoques computacionales, no ensamblando código desarrollado por otros.

Secom

Internet aceleró todo el aprendizaje. Antes de eso teníamos que ir a estas cosas llamadas bibliotecas: eran como Netflix, pero en persona y tenían libros en lugar de películas. Raro, verdad?

Con toda seriedad, antes de Internet, ¿qué tan eficiente era la computación en su conjunto?

Cuando aprendí por primera vez cómo aprender a programar en C, Internet, aunque existía, no era una mercancía. Esto fue antes de que incluso tuviéramos un motor de búsqueda (todo lo que teníamos era algunos servicios de directorio que solo tenían una lista de sitios web de mierda para cada una de las categorías).

No me resultó tan difícil. Tenía un libro que venía con un código fuente y pude aprender mucho del libro. Si tuviera una pregunta, iría a una biblioteca y trataría de encontrar un libro diferente y simplemente escanearía los índices. Simplemente no se me ocurrió que las cosas pueden ser mucho mejores que eso (ahora no puedo vivir sin desbordamiento de pila). Tampoco era un desarrollador de software profesional en ese entonces. Yo era solo un niño de quinto grado tratando de entender la programación, por lo que el tipo de preguntas que tenía estaba prácticamente cubierto en casi todos los libros de C.

He sido programador desde 1958, U of IL, ILLIAC 1 – fue divertido, cinta de papel, teletipos, 1024 palabras de memoria, palabras de 20 bits, 2 instr / palabra – esos fueron los días.

¿Qué hace que un programador sea eficiente?

En los días en que no teníamos megabytes de memoria, la programación era un arte, vea The Art of Computer Programming , Donald Knuth Stanford – IMO, Dr. Knuth tituló bien su conjunto de 3 volúmenes. ¿Conocer bien esos algoritmos me haría eficiente? ¿Qué tal saber a dónde ir para encontrar algoritmos?

Otra pregunta reciente sobre Quora fue la de ¿hay suficientes programadores? No, nunca lo ha sido, dudo que hasta que tengamos programación de robots nunca lo haremos. Muchos programadores no deberían serlo, pero la demanda los exige.

Internet aceleró la programación de computadoras porque las personas están haciendo que su código esté disponible para que otros lo usen. Predigo que esta tendencia continuará.

Ellos usaron PAPER para escribir programas y también crearon PAPER para ejecutar códigos binarios, imagínense cuán eficiente sería, intente eso … jajaja