years usar tipos through the que programming programar programación programacion principiantes para lenguaje languages language introducción informatica historia evolution desde cursos curso computadoras computadora computacion completo como chart cero basico basica aprender actividades programming-languages hardware history

programming languages - usar - Aprendiendo computadoras y programación



que es programar (17)

¿Cuál sería una buena metodología para aprender cómo funcionan las computadoras y la programación de computadoras?

Por ejemplo, ¿recomendaría aprender cómo funcionan los circuitos, luego el lenguaje ensamblador y luego los lenguajes de nivel superior?


  1. Nunca sabrá todo lo que hay que saber sobre computadoras.
  2. Si intentas aprender toda la historia, nunca la alcanzarás.

Dicho esto, nunca dejes de aprender. Puede ser imposible aprenderlo todo, pero eso no significa que no puedas probar :)

hay muchos recursos por ahí de los que puedes aprender. Wikipedia sería un gran lugar para comenzar con el aprendizaje de la historia.

Al principio fue la línea de comando para aprender un poco sobre la línea de comando


Bueno, primero no creo que tengas tiempo suficiente para aprender todo ...

  • En primer lugar, debe aprender muchas matemáticas, incluida la teoría de números y la lógica.
  • Entonces necesitas aprender sobre teoría computacional y leer los trabajos de Gödel, von Neumann y Turing.
  • Lea acerca de Herman Hollerith e IBM y la aplicación de la tecnología de telar jacquard para contar cosas.
  • Entonces necesitas aprender la ciencia de la electricidad, para entender cómo funcionan los triodos / transistores. Esto te dará una idea de cómo funciona un procesador de computadora.
  • También deberías leer sobre Coloso, la computadora electromecánica que se usó para descifrar los códigos alemanes durante la Segunda Guerra Mundial.
  • Entonces necesitas elegir una arquitectura de hardware para comenzar. Si REALMENTE desea comprender, busque un circuito integrado realmente antiguo con un conjunto de instrucciones simple. O comience con un chip moderno y aprenda ensamblaje.
  • Aprenda cómo el ensamble escribe en el código de la máquina.
  • Cree un compilador para un lenguaje de nivel superior. Recomendaría algo simple como un LISP, ya que no tendrá que preocuparse por el análisis complejo.
  • Aprende FORTRAN. Y no uno de los modernos. IV sería bueno. Obtenga un lector de tarjetas perforadas para experimentar realmente la historia.
  • Aprenda Smalltalk para aprender sobre Programación Orientada a Objetos
  • Agregue CLOS a su compilador LISP.
  • Implementa tu propio sistema operativo
  • Implemente su propio sistema de archivos
  • obtenga un título de Física Cuántica si realmente quiere comprender cómo funcionan los discos duros modernos y los chips de memoria (es decir, Spintronics, limitaciones cuánticas para los microprocesadores)

Eso debería darle un buen comienzo para aprender todo .


Construye uno. Mejoralo. Úselo. Prográmelo. Instale diferentes sistemas operativos. Lee esos libros gordos. Haz muchas preguntas Ve a obtener un grado CS. No dejes de aprender


Creo que descubrirá que cuanto más aprenda, más no sabrá, como es el caso en todos los temas. Puede llegar al punto en que nadie más sepa las respuestas ... entonces puede hacer una tesis de doctorado :)


Encuentro que la mayor parte de la diversión es porque el tema es muy profundo. Elige cualquier dirección y síguela siempre que sea interesante.

Dicho esto, cortar los dientes en algunos programación real antes, en lugar de más tarde. Java, c, .NET, cualesquiera herramientas que sean útiles o estén siendo usadas por tipos que conoces. Tener algunas personas en el momento puede ser invaluable.


Eso es una gran tarea.

Lado del hardware:

  • construir una computadora barata, siempre me han gustado las guías de compilación de Arstechnica .
  • Lee toneladas de artículos de arquitectura.
  • Instale diferentes sistemas operativos (Windows, Linux, etc.)

Lado del software:

  • Aprender Asamblea
  • Libro de inicio sobre C
  • Deep C Secrets por Peter Van Der Linden (libro impresionante)

Aleatorio otros buenos libros

Sigue leyendo, sigue haciendo preguntas, sigue aprendiendo.


Sugeriría una licenciatura en ingeniería informática.


Yo diría que comience con la programación, luego vaya al emulador, luego a la arquitectura. Sí, en contra de la historia.

Un buen lenguaje le enseñará cómo interactuar con una computadora. Construir su propio emulador le enseñará cómo funciona el hardware desde el lado del software ... la construcción de la computadora termina la ecuación.

Si comienzas desde el hardware, no ayuda a programar tanto como la programación te ayuda a aprender el hardware.


Comience con los 0.

Después de que hayas dominado eso, pasa a los 1''s.


Desafortunadamente, obtener conocimientos de informática o ingeniería informática no lo convertirá en un experto en todos los temas de la informática o la programación. En primer lugar, debe tener en cuenta que no es una tarea fácil y puede tomar varios años, por lo que debe ser paciente y le recomiendo que siga el principio de YAGNI (no lo va a necesitar), al principio intente para obtener un fondo en varios campos de la informática. Luego elige el que más te guste y conviértete en un experto en ese tema.



Sugiero comenzar aquí , para obtener una buena visión general.



Sin ningún orden en particular ...

Considere trabajar en QA por un tiempo. Tendrá el efecto de hacer que vea sus programas del mismo modo que los matemáticos ven los teoremas. Muchas personas que escriben código pueden caer en la seducción de crear algo que luego contemplan sin crítica. Una temporada en QA puede tener buenos efectos en el establecimiento de buenos hábitos de programación. También lo ayudará a ser un buen depurador.

Aprenda a trabajar sin un IDE para que sepa lo que está sucediendo detrás de escena. De lo contrario, el IDE se convierte en una muleta.

Obtenga una comprensión básica de cómo funcionan las computadoras, incluida la relación entre CPU, memoria e IO. No importa qué idiomas aprenda o herramientas que utilice, todo se basa en estos principios. Aprender esto te servirá bien.

Finalmente, toma una computadora, deshazte de ella y vuelve a armarla. Si una descomposición física no es factible para usted, entonces comience con el SO en su lugar. Comience con una computadora "vacía", solo el sistema operativo en funcionamiento. Luego comience a ser destructivo y elimine cosas, cambie las protecciones de archivos, etc. Explorar los efectos de acciones específicas le revelará patrones que lo llevarán a descubrir los fundamentos del sistema operativo. ¿Qué es lo peor que puede pasar? Por lo tanto, debe volver a formatear el disco y reinstalar el sistema operativo. ¿Y qué? Lo que se gana es mucho más valioso. Lo mismo se puede hacer con un programa que funciona perfectamente. Tome su fuente y comience a romperla, una cosa a la vez. Los mensajes de error resultantes le dirán mucho sobre el compilador.

Esto lleva a la última sugerencia. Una vez que comience a codificarse, adquiera el hábito de agregar partes pequeñas y compilar a menudo.


Quería aprender exactamente lo que estás buscando. Por supuesto, la respuesta completa es: nunca dejes de aprender, etc. ... pero si quieres el curso acelerado más condensado y personalizado, lee el Código de Charles Petzold : El lenguaje oculto del hardware y software informático y luego lee Los elementos de los sistemas informáticos: Construcción una computadora moderna de los primeros principios .

Esto impulsará su comprensión general mejor que media docena o más de cursos universitarios especializados.

No hay una bala mágica aquí y estos libros no contienen ningún secreto. Simplemente están súper enfocados con exactamente el objetivo de comprender los conceptos relacionados con la informática de una manera accesible de arriba a abajo.


Decidí hacer exactamente eso cuando tenía 15 años, y me mantuve así para siempre, para siempre.

Aprendí a programar de manera básica el libro que venía con mi computadora (El primer trs-80 vino con un gran libro dirigido a prácticamente cualquier edad, no estoy seguro de haber visto un buen libro para principiantes desde entonces).

Conjunto aprendido y código binario codificando manualmente las instrucciones de CPU de un databook de CPU z-80. Aprendí todo acerca de los registros y cómo funciona una CPU a partir de eso. También se molestó con el montaje en nuestro DEC PDP-11 en la escuela (Simplemente me encantó el hecho de que utilizó Base 8 en lugar de Hex debido a la diferencia de tamaño de palabra)

Saber el montaje me ayudó mucho con mi primer trabajo en C. No conocía C en ese momento, pero había retomado el concepto de punteros al acceder a las variables básicas del ensamblaje, por lo que realmente no hubo muchas sorpresas. Acostumbrarse a las excepciones sintácticas fue la única parte difícil (el bucle for, por ejemplo, es diferente a cualquier otra cosa, y me irritó mucho al principio)

Tomó algunas clases de electrónica y prestó especial atención a las puertas y chanclas. Todavía no podía entender cómo pasar de un grupo de compuertas y flip-flops a una CPU, lo que llevó a aprender sobre el tiempo.

Aprendí sobre las señales de temporización (una parte crítica de ponerlo todo junto) en la marina - una de sus clases involucró la solución de problemas de una caja que era esencialmente una CPU explotada. Podrías operar en cualquier transistor, y subir todo el camino hasta conectar las instrucciones de la CPU a través de interruptores de palanca y hacer que la CPU los ejecute (memoria de 100 bytes). Podrían romper cualquier transistor y tenías que poder encontrarlo. (Fuera del entrenamiento cada vez que discutes algo, simplemente cambiaste las cartas hasta que funcionó).

Editar: Por cierto, la mejor parte de esta clase fue el libro de 50 páginas de esquemas de aproximadamente 2/3 del tamaño de un escritorio que tenía cada parte de ese objeto diagramada. Estudié cada pulgada de eso hasta que "obtuve" lo que hacía cada cable (al menos en un nivel lógico, olvídate de las cosas de la fuente de alimentación).

Tomé un trabajo ensamblando PC (porque hasta ese momento no me sentía realmente cómoda con el ariete, el cambio de tarjetas y discos duros, el intercambio de fuentes de alimentación, ...)

Tomé trabajos en finanzas, base de datos y casi cualquier campo que pude encontrar. Cada vez que tomaba un trabajo, una gran consideración era cuánto aprendería de él. Intentó enfocarse en aprender las prácticas y herramientas comerciales. Trabajé donde pasé mucho tiempo en sitios de clientes.

Fueron los primeros 15 años de mi carrera, los últimos 10 han sido la tarea posiblemente más difícil de entender el diseño de alto nivel (Focusing on OOD), aprender a pensar en términos de quién está leyendo o usando tu código (en lugar de simplemente hacer código resuelve un problema) y pensar más en términos de hacer que otros sean más productivos por la forma en que interactúo con ellos.

Creo que una gran parte nunca fue tener miedo de saltar. Nunca miré la computadora haciendo algo y dije: "Chico, nunca podría hacerlo". Si alguien necesitaba algo, simplemente lo hice.

Saber sobre la historia de cómo surgieron todas estas cosas (la versión de la escuela y quién inventó qué) para mí es completamente irrelevante. Recojo trozos y piezas aquí y allá, pero en su mayor parte me importa cómo funciona. Me concentro en los patrones de diseño y los libros que se aplican a mi trabajo, los que no puedo aplicar aún, trato de entenderlos para saber cuándo debo aplicarlos, etc.

Maldita sea, esto está empezando a parecerse demasiado a un currículum de psicópata informático. Lo siento.