Cómo aprender todo sobre las computadoras.

Le sucede a los programadores más ambiciosos.
¡Querer hacer demasiado, demasiado rápido todo al mismo tiempo!

Si desea viajar desde la India a los EE. UU., Hay muchas opciones por aire, barco o tierra. El camino que elija dependerá de sus criterios: tiempo, esfuerzo, recursos.

Sin embargo, solo puede viajar en un solo modo de transporte a la vez . Aceptamos esta limitación para viajes físicos, pero no para viajes mentales, es decir, proyectamos nuestro deseo de alcanzar nuestros variados objetivos como podemos visualizarlos ahora mismo.

Si viaja con frecuencia, es posible que desee optimizar en estos 3 frentes para obtener mejores resultados, más rápidos y más económicos, para cualquiera de los 2 criterios al máximo en un momento dado.

La llamada multitarea alcanza rápidamente su límite con unos pocos objetivos menores. Así que aprende a hacer una sola tarea a la vez.

Eres humano, acéptalo. Todas estas son solo herramientas para alcanzar tu meta. Trátelos como tales. Serás más feliz y harás las cosas.

Si desea obtener información sobre el núcleo de la programación, esta puede ser una buena lista a tener en cuenta, personalizando según sus necesidades: la respuesta del usuario de Quora a la codificación soy nueva. ¿Qué lenguaje de programación me ayudaría a poner en marcha mi campaña, de manera que sentaría las bases, mientras aprendía otros idiomas?

Si ha aprendido uno o más lenguajes de programación y está algo familiarizado con la programación, pero se pregunta qué hacer a continuación para desarrollar sus habilidades técnicas / carrera en programación: la respuesta del usuario de Quora a ¿Qué pepita de oro de ingeniería de software ha descubierto en Internet?


Ver también :

  • Learning Programming Answer Cache por Gurudutt Mallapur en techtalkies
  • techtalkies

Bueno, no hay daño en intentarlo, pero reconozca que todo es un gran cuerpo de conocimiento. Puede comenzar haciendo un resumen de lo que constituye “todo sobre las computadoras”. Un comienzo decente en el nivel superior es decir que hay temas de hardware y temas de software. No estoy seguro de si las aplicaciones de las computadoras pertenecen al nivel superior de la jerarquía del esquema, o si se ubican mejor como un subtema de software. Podría decirse que las interfaces de usuario son uno de sus principales temas que obviamente no es hardware o software. El establecimiento de una red tal vez pertenece en el nivel superior de su esquema.

En el lado del hardware, tiene un diseño lógico (por ejemplo, dadas y o-puertas, cómo hacer un medio adidor o un sumador completo o un flip-flop), y diseño de componentes (cómo se hace un and-gate o una o-puerta). Y luego está la física: ¿Cómo almacenan la información los discos duros? ¿Por qué el calor es un gran problema?
¿Cuáles son los factores que influyen en los tiempos? ¿Demoras en la propagación? Quizás en el tema de hardware, debería tener representaciones de datos (punto flotante, complemento a 2, complemento a 1, signo + valor, valores decimales), estructuras de memoria (bytes, palabras, páginas, segmentos, cachés), conjuntos de instrucciones (Risc, Cisc , microcódigo). Dejo los sistemas operativos y los lenguajes de programación como subtemas en “software”. El multiprocesamiento y la sincronización entre procesadores tal vez sea un tema de hardware. Estoy indeciso sobre dónde colocar gráficos de computadora. Un montón de hardware especializado para controlar pantallas de alta resolución, pero tal vez eso sea mejor cubierto por la parte de la interfaz de usuario de la taxonomía, ya que debajo de todo esto se trata en cuestiones de percepción humana. La computación cuántica es otro subtema del hardware en este punto de su desarrollo.

En el lado del software, tiene sistemas operativos, lenguajes de programación, metodologías de desarrollo (cascada, ágil, scrum, XP), la gestión de proyectos puede ser otro subtema, pero interprete de manera tan amplia como sea necesario para cubrir temas como mantener a las personas motivadas y coordinadas El uno con el otro, así como el presupuesto y el calendario. Odio decirles cuán poblados serán los lenguajes de programación que forman parte del subárbol de software. Puede iniciar directamente en una enumeración de lenguajes de programación en el siguiente nivel en la jerarquía, o puede intentar ajustar una capa más en el diseño del esquema aquí. Lenguas imperativas, lenguajes funcionales. Mi problema aquí es que quiero romper “lenguajes orientados a objetos”, pero luego voy a tener más de un lugar en la taxonomía a la que pertenece Python, por ejemplo. Sea flexible y decida por sí mismo qué desglose mejor le ayuda a obtener la búsqueda de aprender todo organizado. Gestión de bases de datos, simulación, optimización (programación lineal, programación dinámica, …), algoritmos, análisis de complejidad de tiempo y espacio. Técnicas de implementación de lenguaje (compiladores, intérpretes, optimizadores, compilación JIT, procesamiento de macros, bibliotecas estáticas y compartidas, enlazadores), control de versiones (CVS, SVN, git, …), seguridad, pruebas, inteligencia artificial.

En lugar de balbucear con tratar de pensar en lo que pertenece a esta taxonomía de conocimiento sobre computación, le pasaré la tarea. Como consejo general, le sugiero que sepa que todo esto es conocible, pero no intente forzarlo todo en su cabeza de un solo trago. No se sorprenda si encuentra que algunos temas son más interesantes para usted que otros. Concéntrese principalmente en lo que le interesa en lugar de tratar de dominarlo todo. Mantenga buenas notas. Existen herramientas que pueden ser más útiles que el papel, el lápiz y las tarjetas de notas. Creo que Pearltrees es una forma útil de mantener organizada mi colección de enlaces a páginas web y mis notas escritas a mano, pero hay muchas de esas herramientas para elegir.

Le insto a que se involucre en proyectos, escribiendo código, construyendo cosas en lugar de simplemente acumular conocimiento del libro. Práctica práctica práctica.

Espero que esta respuesta te haya ayudado en tu aventura. He estado en esto por más de 50 años y todavía no me quedan cosas por aprender y explorar. Un campo realmente fascinante.

En un contexto académico, este artículo puede ayudarlo a comprender la amplitud del campo: la guía ilustrada para un Ph.D.

¿Que quieres saber?

Cosas de electrónica de “bajo” nivel como:

  • Cómo funciona un transistor / resistencia / condensador, etc.
  • Comprender las formas de las señales, el ruido, el retardo y cómo limitan su velocidad
  • Aspectos más prácticos: cómo ensamblar, soldar cosas juntas.

“Medio” capa de cosas como:

  • ¿Cómo funcionan las puertas, cómo construir la lógica desde cero?

“Alto” nivel de cosas como:

  • ¿Cómo se ve la arquitectura moderna del procesador internamente?
  • Aspectos más prácticos: ¿Mantenerse al día con las últimas piezas de hardware?

Con una pregunta tan amplia, siguen dos respuestas amplias:

  1. Tomar un grado de ingeniería
  2. Comienza con lo que te interesa y resuelve lo que surja en el camino.

Suponiendo 2, es posible que desee comenzar con un proyecto Arduino. Eso te dará a conocer todo esto en partes manejables. P.ej

  • Mida la temperatura de la habitación en la que se encuentra y lleve esa temperatura a su computadora
  • Empieza a controlar algo por ahí en el mundo real.
  • Encuentre un chip de electrónica digital más funky para integrarse, descubra cómo va a obtener los datos para obtenerlos y para que funcione de manera confiable
  • Si eres ambicioso, agrega un FPGA con, por ejemplo, VHDL o algo así como la Plataforma Papilio FPGA y haz algo con eso

El cielo es el límite desde allí.

Descubrí que dejar que tus intereses te guíen te mantendrá motivado y mientras resuelvas y comprendas los problemas que aparecen, aprenderás mucho a lo largo del camino.

Técnicamente aprendiendo todo te llevará a ninguna parte.

¡Debes conocer los conocimientos y la poca práctica que te permiten conseguir un trabajo a cualquier costo!

Por ejemplo, debe haber estudiado ingeniería de software pero necesita habilidades como Pruebas de automatización (como ejemplo) para que le ofrezcan cartas después de la graduación.

¡Digamos que conocer herramientas como Selenium Webdriver sería una elección perfecta! ¡Solo necesita implementar su conocimiento en java o .net para escribir scripts de automatización para Selenium!

Si crees que necesitas comenzar desde algún lugar, te sugiero que leas un libro en lugar de mirar YouTube, asistiendo a cualquier entrenamiento (intento costoso), por lo tanto, vale la pena ir al 100% de las siguientes lecturas:

haga clic en upvote y guarde esta información en un documento de Word en el escritorio; ¡será útil!

Siendo curioso acerca de las computadoras y su trabajo. Hay un millón de pequeñas cosas que hacen que una computadora haga lo que hace, pero hay relativamente pocos principios que pueda comprender que puedan facilitar el aprendizaje posterior.

Hay muchos aspectos del funcionamiento de las computadoras, circuitos electrónicos, comunicación entre piezas de hardware, sistemas operativos, lenguajes de programación de alto nivel, la teoría de la computación, computadoras conectadas en red para realizar una tarea compleja dividiéndola y dividiéndola entre sí y muchos Más. Es muy difícil cubrir todo esto, y mucho menos profundizar en cada uno de ellos.

Si está buscando principalmente codificar a un alto nivel, le sugiero que comience a codificar. Aprende los conceptos básicos de cualquier lenguaje de alto nivel y comienza a jugar. Diviértete, si no, entonces no es bueno en absoluto. Lea la documentación o pida ayuda cuando lo necesite. Sirve mejor cuando se trata de algo que quieres hacer que de algo que quieres hacer. De esa manera tiendes a intentarlo por tu cuenta. Me sentaba en mi computadora (que en ese momento no tenía conexión a Internet) y probaba cosas pequeñas y algunas encajaban y hacían algo mejor. Algunas veces, iba a una tienda de Internet para leer y, a veces, guardaba (en un disquete) páginas web, principalmente de Wikipedia. Ahí es donde aprendí muchas cosas. Pero creo que no podría hacerlo ahora si tengo que hacerlo, muchas distracciones. La programación requiere mucho enfoque y el entusiasmo para lograr que la computadora haga lo que usted desea.

Tenga en cuenta que usted (o cualquier otra persona) no podrá aprender todo, solo una pequeña parte.

Comience con algo de experiencia en programación básica y matemáticas discretas, seguidas de algoritmos y estructuras de datos. Mientras tanto, intente obtener cierta exposición a diversos campos dentro de Ciencias de la computación (CS teórico; algoritmos aplicados como el análisis numérico y la criptografía; la IA y la interacción hombre-computadora; bases de datos; sistemas operativos; redes; arquitectura informática; y así sucesivamente). Para algunos campos es posible que necesite conocimientos matemáticos adicionales, como álgebra lineal (para el aprendizaje automático y el análisis numérico), probabilidad y / o estadística (para el aprendizaje automático y la informática teórica), teoría de los números (para la criptografía), etc.

En algún momento, debe encontrar un buen compromiso entre lo que disfruta y lo que hace bien. Luego enfócate en uno o dos campos.

En primer lugar, como en cualquier otro campo de la ciencia (física o química …) la informática también es infinita y sigue creciendo a un ritmo mucho más rápido. Cada año nuevas tecnologías vienen reemplazando a las antiguas. También se introducen varios idiomas nuevos cada década para conveniencia y beneficios para el desarrollador.
Por lo tanto, le sugiero que estudie los conceptos básicos de la informática, como el algoritmo, las estructuras de datos y la metodología de programación que siempre se mantendrá igual en su sentido original. Entonces, para la práctica de estos conceptos, puede seleccionar cualquier tecnología, no importará mucho si se trata de C o C ++ o Java.
Pero sería mejor echarle un vistazo primero a uno de los lenguajes de procedimiento como C que ir a los OOP que admiten lenguajes como C ++ o Java.

Bueno, no puedes. Pero definitivamente deberías intentarlo. Por supuesto, te encantará intentarlo, y te encantará leer sobre todo, y te encantará aprender cosas, porque las computadoras son lo mejor que puede pasar en la humanidad. Lo más desafiante que puedes hacer quedándote en casa. 🙂

Desafortunadamente, el campo es demasiado profundo para dominar TODO. Definitivamente puedes intentarlo; pero encima de las computadoras, el hardware y todo, hay un gran tema de software, y las computadoras son una combinación de hardware y software que hace que todo funcione en conjunto. Si hay algo que es más complicado que el hardware, es el software que se ejecuta en él.

Como señalan otras respuestas, nunca puedes aprender todo, pero puedes obtener un conjunto útil de conocimientos y una colección de habilidades.

Pragmáticamente, sugeriría comenzar con HTML y publicar sus propias páginas web. Es un lugar muy fácil para comenzar, que conduce progresivamente a otras tecnologías como ejecutar su propio servidor web, programación de backends, páginas web dinámicas, contenido activo, apis de dominios cruzados o incluso escribir extensiones de navegador.

“La gente piensa que enfocarse significa decir sí a lo que tienes que enfocar. Pero eso no es lo que significa en absoluto. Significa decir no a las otras cien buenas ideas que hay. Usted tiene que escoger con cuidado. En realidad estoy tan orgulloso de las cosas que no hemos hecho como las cosas que he hecho. La innovación es decir no a mil cosas “. – Steve Jobs

No se apresure y trate de hacer todo al mismo tiempo. No puedes aprender todo en un domingo por la noche. Simplemente acepte el hecho de que no va a suceder en un día, semana, mes o año. Entrar en el largo plazo.

Decide enfocarte en una idea / proyecto y dedícate a ella hasta que se complete. Luego pase a otra idea / proyecto, y repita lo mismo.
Repetir esto el resto de tu vida es cómo vas a aprender.

Construya una computadora, cargue un sistema operativo, como Linux, construya otra computadora, cargue Linux, conecte en red las dos computadoras, haga de una de las dos computadoras un servidor web, use la otra computadora para husmear el tráfico, o ataque la otra computadora, o haga una de las dos computadoras es un firewall y conecta tu red a internet a través de tu firewall.

o

Aprenda sobre electrónica digital y construya una simple CPU de 4 bits a partir de componentes discretos (chips lógicos TTL / CMOS, sin necesidad de utilizar un transistor completo) y continúe construyendo en su computadora doméstica, desarrolle memoria, I / O tal vez un sistema operativo …

La mejor manera más rápida de aprender acerca de las computadoras es “hacer”. Ahora no sé qué desea específicamente aprender acerca de las computadoras, las cosas que proporcioné anteriormente fueron algunas respuestas rápidas y simples. Y aprenderás más acerca de las computadoras haciendo que lo harás de otra manera.

En primer lugar, no te dejes abrumar ; Comience en lugar de un concepto central de una mentalidad de codificador: dividir y conquistar , es decir: abordar un gran problema fragmentándolo en subproblemas más pequeños.

O, en otras palabras, no te detengas una vez que veas esa enorme montaña, sino que subes un paso tras otro. Una vez en la cima, probablemente verás montañas mucho más altas, pero eso está bien: estás aquí, tendrás mejores piernas, resistencia y habilidades para encontrar el camino.

Dicho esto, siempre que sea posible, intente conseguir un mentor . Una buena es una que no le proporciona las soluciones, sino que le da los consejos correctos y lo mantiene desafiado en lo que está haciendo, sin limitar ni guiar demasiado lo que va a hacer a continuación.

No conseguí uno, supongo que ser orgulloso incluso para los estándares italianos no me ayudó, y ese fue mi mayor éxito como programador autodidacta.

Pero de alguna manera logré obtener al menos cursos virtuales con los cursos y las clases correctos: escribí sobre mi selección personal de recursos de aprendizaje en línea gratuitos y creo que podría encontrar una buena inspiración allí, si no seguir el mismo camino.

Comience de manera simple, prepárese para una frustración inevitable (CS es difícil y si no obtiene nada … Bueno, entonces lo está haciendo demasiado lento y / o demasiado fácil) y nunca deje de desear para aprender más .

Comencé fácil, con los cursos muy sencillos de CodeCademy (bueno: en aquel entonces, no eran tan simples para mí), y luego fui cambiando gradualmente. Un paso a la vez, hasta ahora. Y aunque no puedo ni remotamente pensar que lo hice, ahora puedo elegir mis próximos pasos en campos que ni siquiera sabía que existían.

Y esto solo ya valdría la pena por todos los esfuerzos que puse en ello.

Si estás listo para obtener en tu vida mucho de lo que llamo las 4 P ( pasión, perseverancia, paciencia y práctica ), nada te detendrá.

Espero que haya sido útil y, si así lo desea, manténgame informado sobre sus progresos (algún otro quorán tuvo la amabilidad de hacerlo y nos apoyamos mutuamente en nuestros esfuerzos de autoaprendizaje).

Feliz codificación 🙂

Hermano, nunca puedes aprender “todo” acerca de las computadoras

Aunque puedes aprender paso a paso. Pregúntate, cuál es tu interés. Puede ser Programación o Gráficos o simplemente Juegos. Entonces empieza a aprender haciendo. Un día puedes convertirte en el Tech Guru entre tus amigos.

Y no te olvides de consultar revistas de tecnología o sitios web de tecnología … Buena suerte

Si no sabe nada acerca de las computadoras, primero comience desde los conceptos básicos de la informática y aprenda los lenguajes de programación en C simultáneamente. Encuentre un buen mentor para el lenguaje de programación en su área para la programación en C, de lo contrario, vaya a un buen centro de aprendizaje donde haya un buen mentor disponible. Elija el libro, The C pogramming language “por ritchie. Es suficiente para C. Haga todo el ejercicio. Busque más ejercicios en internet, tome tiempo, gástelo. Después de este proceso, llegó a saber qué idiomas son adecuados. para usted luego pasar a los idiomas de alto nivel.

FUTURO
No hay futuro para la informática y los programadores cuando los dinosaurios vienen a vivir en la tierra en lugar de los seres humanos.

COSAS INTERESANTES
Suscribirse revistas relacionadas con la informática.

¡En primer lugar trata de aprender qué es la informática ! La mayoría no sabe qué es realmente CS. Después de eso voy a elaborar sobre dónde y cómo empezar.

PD: si sabes qué CS en realidad es, tú mismo podrás hacer un mapa para aprender todo sobre CS.

He estado diseñando hardware y software durante más de 40 años (y desarrollé algunas de las cosas que eran revolucionarias en ese momento y que ya ni siquiera se usan) y probablemente hay más que no conozco sobre ellas que lo que sé. si sabe sobre ellos, entonces el primer requisito probablemente sería vivir al menos 200 años aproximadamente.

Aprende programación (comienza con algoritmos y estructuras de datos). Calcule al menos 6 meses para obtener los conceptos básicos de manera sólida.

Luego aprende programación orientada a objetos.

Luego aprende algunos idiomas. (Para cuando esté listo para eso, puede que haya nuevos y que algunos ya no estén en uso, por lo que no haré ninguna recomendación).

En cuanto al “alcance futuro”, no hay manera. Hace quince años, nadie habría predicho los teléfonos inteligentes. O la computación cuántica. Cuando era niño, era un hecho que solo unas pocas estrellas raras tenían planetas. (Parece que tal vez solo unos pocos raros). A menos que su bola de cristal realmente funcione, olvídese de pronosticar el futuro. Tienes al menos un 99.9% de probabilidad de adivinar mal.

¡No solo lea como los otros han sugerido! Eso te hará bookish. Ensuciarse las manos Construye tu propia computadora a partir de puertas lógicas.
Los elementos de los sistemas informáticos

Para patadas, también puede comenzar en el nivel de transistor.

Me gustaría sugerirle que visite la página mencionada a continuación y revise mi respuesta por una vez. Es una hermosa visión de “Informática”!

Informática para programadores

¡También comenta a continuación cómo te sentiste después de leerlo!

Aprendo mejor poniéndome manos a la obra. Me uní al club de computación en mi universidad y tuvimos que reparar las computadoras de los estudiantes allí. Un montón de gran xp. Si no tiene esa oportunidad, diría que para ir a YouTube, prefiero los consejos de Professor Messer, Eli the Computer Guy y Linus Tech. Puede comenzar a estudiar para el certificado A + (asegúrese de que sea la nueva serie 900) que es todo lo básico del hardware y el software. Finalmente, asegúrate de ponerte manos a la obra. Puede comprar computadoras baratas en tiendas de segunda mano o en craigslist y puede desgarrarlas una parte y volver a armarlas para aprender o desarmar algunas y Frankenstein una de las partes. Puedes encontrar un SO gratuito como Linux para usar.

Solo busca en Google lo que quieras y hay cientos de archivos PDF de libros bien escritos … k sigue leyendo … ¡esa es la clave!

Redes de un enfoque de arriba hacia abajo

Co un enfoque cuantitativo

¿Hay buenos libros y archivos PDF disponibles a solo un clic de distancia?