¿Cuáles son algunos libros de informática para principiantes?

Yo diría que hay dos preguntas en esta pregunta:
– ¿Cuáles son los mejores libros para principiantes en informática?
– ¿Cuáles son los mejores libros para principiantes en programación?

En lo que respecta a lo último, no hay una respuesta general, y depende principalmente de qué idioma le gustaría aprender y de qué marco. Seguramente algunos títulos “grandes” son “El arte de la programación de computadoras”, Kernighan-Ritchie “C” y para el adicto a Java está el famoso “Pensamiento en Java”.

Mejor, aprende probando y usando el codeacademy.com ya mencionado y el impresionante stackoverflow.com.

Para un libro de propósito general sobre cómo funcionan los lenguajes de programación, que es muy importante para convertirse en una programación competente, prefiero sugerir “Programming Language Pragmatics” de Scott.

Sin embargo, la parte más interesante es la primera pregunta. Creo que convertirse en un buen informático requiere pasión, tiempo y una mente abierta. Claramente, estos no están dados por un solo libro, pero ciertamente hay un libro que puede mostrarle estos diferentes aspectos de la Informática con los que terminará tratando y abrirá su mente sobre ellos. Se llama “Escher, Goedel, Back: an Eternal Golden Braid” y fue escrito por el físico y científico del lenguaje Douglas Hofstadter.

Todavía no he leído nada mejor que Code: The Hidden Language of Computer Hardware and Software por Charles Petzold .

Es un libro fantástico. No lo lleva a los algoritmos típicos (al menos eso recuerdo), sino que explica de la manera más intuitiva posible cómo se construye una computadora desde flip flops y lógica binaria hasta ensamblaje, lenguaje intermedio y compilación completa de Un lenguaje utilizable.

Básicamente, los programadores principiantes pueden adquirir una amplia comprensión de la base sobre la que se basan los programas que está construyendo al leer este libro. Se lee más como una exposición de no ficción que como un libro tutorial de lenguaje de programación, es decir, dado su tema, es una lectura fácil que puedes hacer en el sofá. Dependiendo de su habilidad y nivel de conocimiento, puede haber algunas secciones que tenga que volver a leer varias veces hasta que lo entienda, pero no sentirá que necesita ir a la silla de su computadora e intentar algo para comprender completamente eso.

Si puede hacer aritmética básica, puede leer este libro. Esa parece ser la premisa oculta. Que las computadoras son fáciles y deberían ser fáciles de entender. Este libro es un testimonio de eso. Aunque estoy seguro de que algunos descubrirán que esto no es lo suficientemente profundo. Pero el punto es: aprender generalmente creará muchos puntos de entrada para que pueda seguir en su viaje hacia la programación y la informática. Aclarará muchas cosas y esencialmente hará que el camino parezca menos aterrador y fuera de alcance. Este libro lo logra muy bien. Los programadores de alto nivel saldrán sintiéndose mucho menos inseguros sobre su falta de conocimiento de los fundamentos de lo que sea que estén desarrollando. Sé que lo hice. No puedo decir lo suficiente sobre este libro. Es el verdadero negocio. Estoy seguro de que aquellos con un título en informática podrían tener más que decir (es probable que piensen que es una descripción general), pero creo que para todos los demás es un título en informática en un libro que pueden leer en una o dos semanas. Al menos la mitad del grado. Para la segunda mitad, recomiendo Algorithms In A Nutshell. ¡Y hecho! Vuelva a programar su aplicación de JavaScript de alto nivel y continúe con su vida.

En una nota al margen: es mi opinión que la teoría primero es el camino equivocado. Primero, la aplicación, según sea necesario, es el enfoque correcto. De lo contrario, es como aprender teoría musical antes de que sepas que incluso te gusta tocar música. Puede que ni siquiera te guste ser programador o ser natural en eso. Y si pasas 4 años estudiando teoría primero, habrás pasado mucho tiempo para descubrir lo que podrías tener en un mes. Además, puede absorber la alegría y la diversión de la exploración de la programación y la informática. Es natural y divertido aprender mientras te sumerges en problemas reales. Todo lo que puedes aprender está en internet. Es muy gratificante y, a menudo, más rápido aprender cosas cuando está aprendiendo a alcanzar un objetivo específico. La teoría que aprendes parece tener mucho más sentido frente a alguna meta a la que tratas de aplicarla. En resumen, a lo largo de su carrera informática puede aprender las mismas cosas mucho más rápido y mucho más divertido si lo hace junto con problemas reales.

Pero dicho esto, a veces debes retroceder y asignar tiempo para los fundamentos, incluso si no tienes un problema específico con el que estén relacionados. Sin embargo, sabrá cuándo es hora de repasar los algoritmos, o finalmente aprender cómo funciona la computadora por debajo de su nivel de abstracción diario. Solo sepa que un porcentaje cada vez mayor de nosotros los programadores fuimos por la ruta aplicada, en lugar de la teoría de la informática primero + ruta de educación formal. Probablemente sea la mayoría de los programadores en este momento. En resumen, no estás solo aprendiendo esto a medida que avanzas. Aprende a disfrutar eso desde el principio y a salvarte del dolor de la inseguridad de no saberlo todo. Esta es una exploración e investigación, y quizás haga algunos descubrimientos que nadie más haya podido hacer, y mucho antes de que haya dominado y entendido todo lo que hay que saber sobre la computadora. Tal vez ese sea el mayor argumento de venta: ¡no tiene que saberlo todo para poder contribuir al mundo de la informática! Así que disfruta de tus actividades en la programación, sabiendo en tu exploración única en cualquier momento que puedas encontrar algo altamente novedoso y valioso.

La educación universitaria de “Ciencias de la Computación” es un riguroso programa de 4 años que le enseña a razonar y construir entidades computacionales. La mayor parte es abstracta, con una gran dosis de matemáticas discretas. Los estudiantes implementan los fundamentos que se les enseñaron mediante la programación de computadoras.

Según su pregunta, parece que está más interesado en aprender a programar y también aprender algunos de los principios del diseño de software en el camino. Yo recomendaría Programación Python: una introducción a la informática”. Este libro también se usa en MIT CS 6.00 para enseñar a estudiantes de primer año de CS que podrían tener cero experiencia en programación.

Python es un lenguaje muy agradable, de propósito general y fácil que puede ilustrar múltiples estilos de razonamiento sobre computación. No hay nada en contra de C (o C ++) de mi lado; Lo aprendí en la escuela secundaria y lo he programado ampliamente en la universidad. Sin embargo, es un lenguaje de nivel bastante bajo más adecuado para el desarrollo de software del sistema. Debe tener en cuenta que la elección del lenguaje de programación influirá mucho en su pensamiento sobre la computación. C no tiene funciones como ciudadanos de primera clase, por lo que su pensamiento sobre la construcción de software si solo lee C se limitará a un estilo imperativo.

Una vez que tenga fluidez en al menos un lenguaje de programación, debe dedicar un tiempo a comprender las estructuras de datos y los algoritmos básicos. Recomendaría un libro de texto muy básico para él, algo parecido a “Estructuras de datos y algoritmos en Java” de Robert Lafore. Como ya sabes algo de C, Java será muy fácil de aprender. Al igual que otros carteles mencionados, también puede usar Cormen et. Alabama. para comprender Algoritmos, sin embargo, tenga en cuenta que es un libro de texto avanzado, que generalmente se usa a nivel de posgrado. Un buen conocimiento de las estructuras de datos es imprescindible para convertirse en un buen programador. Piense en ellos como una colección de herramientas para atacar cualquier problema, similar a una caja de herramientas de un carpintero o mecánico. Después de esto, es posible que desee “mirar debajo del capó” y pasar algún tiempo entendiendo la arquitectura de la máquina. Un excelente libro para este propósito es “Computer Systems: A Programmers Perspective” de Randal E Bryant de la Universidad Carnegie Mellon. No puedo recomendarlo lo suficiente. Una vez que sepa cómo funcionan realmente las computadoras, puede comenzar a aprender y utilizar técnicas de programación avanzadas como el subprocesamiento múltiple para utilizar máquinas multiprocesador y crear programas ultra rápidos y escalables.

CS es un campo fascinante y me alegra que te interese. Al final, diviértete y no rehuyas el uso de sitios web de cursos abiertos de libre acceso de MIT, Stanford, etc. Aquí hay un enlace al curso de Introducción a CS en MIT que mencioné anteriormente:

http://ocw.mit.edu/courses/elect

¡Hola!
La informática es el enfoque científico y práctico de la computación y sus aplicaciones. Es el estudio sistemático de la viabilidad, estructura, expresión y mecanización de los procedimientos metódicos (o algoritmos) que subyacen a la adquisición, representación, procesamiento, almacenamiento, comunicación y acceso a la información, ya sea que dicha información esté codificada como bits en una memoria de computadora o transcrita en genes y estructuras de proteínas en una célula biológica. Un científico informático se especializa en la teoría de la computación y el diseño de sistemas computacionales. Lea los siguientes libros para obtener el conocimiento sobre el tema.
1. Introducción a los alogritmos por Thomas H. Cormen
2. Estructura e interpretación de programas de computadora por Harold Abelson
3. El lenguaje de programación C por Brian W. Kernighan
4. El programador pragmático: de Journeyman a master por Andrew Hunt
5. El arte de la programación de computadoras, volumen 1-3 por Donald Ervin Knuth
Obtenga todos estos libros y muchos más de nuestro sitio web MyPustak de forma gratuita. Visita pronto y feliz lectura !!
¡¡Gracias!!

Mi respuesta no respondería exactamente a tu pregunta. Sin embargo, te será útil.

Para convertirse en profesional como ingeniero informático, hay varios temas, debe saber. Por ejemplo: estructura de datos, base de datos, lenguaje orientado a objetos.

Lo primero que puede hacer es enumerar todos los temas y conceptos importantes de cada tema.
Para conocer los conceptos clave sobre el tema, consulte cualquier libro relacionado con el tema en Amazon y lea la sección de contenido.

Después de eso, Google será el mejor recurso en lugar de leer algún libro. Busque cada tema / concepto, cualquier sitio que le brinde el mejor ejemplo y explicación, tenga en cuenta eso. Después de eso, puede revisar su nota y le dará la mejor explicación de los conceptos que puede recordar y explicar fácilmente a otros.

No importa cuántos idiomas conoces. Mientras esté familiarizado con un idioma, puede aprender fácilmente otro idioma. Asegúrese de saber cuáles son las mejores prácticas para codificar. Para principiantes, diría que primero aprenda sobre C / C ++.
Estará en buen lugar si tiene un buen conocimiento de un idioma y una base de datos como SQL u Oracle.

Espero que esto responda tu pregunta.

Simplemente complete su opinión personal, pero podría decirse que el comienzo de la “informática moderna” comenzó con este libro:


… Recomiendo las versiones BSD y ANSI C, pero ambas están bien.
Hay tantas copias de este libro por ahí, que puede recoger una en una tienda de libros usados ​​o incluso en el Ejército de Salvación.

La mayoría de las cosas de Java que puedes encontrar en línea.

Además, los “Libros de camellos” para perl de O’Reilly


… Perl es un excelente lenguaje de script que es mucho más fácil de trabajar con bases de datos que la mayoría de los otros idiomas.

… lo que nos lleva a las bases de datos … Puede descargar Oracle y jugar con él de forma gratuita, pero no es un software abierto (muchos proyectos excelentes están orientados a MySQL). Aquí encontrará un buen libro:

O bien, puede descargar SQL Server de forma gratuita y usarlo, y hay mucha buena documentación en línea.

… Entonces, con estos, tiene referencias en programación de sistemas, scripting, desarrollo de sistemas orientados a objetos y base de datos … No es un mal comienzo.

Quizás un mejor sustituto de Perl sería Ruby, que sería esta guía;

… Pero hay docenas de libros geniales sobre Ruby. Soy parcial hacia O’Reilly porque tienen un estilo de escritura consistente y tienen libros sobre todo. es posible que desee ver qué es lo mejor para usted;

Si es un principiante, debe comenzar a leer sobre Selenium Webdrvier, que se utiliza para pruebas de software (en Automatización de pruebas):

Las herramientas de prueba automatizadas son capaces de ejecutar pruebas , informar resultados y comparar resultados con ejecuciones de pruebas anteriores. Las pruebas realizadas con estas herramientas se pueden ejecutar repetidamente, a cualquier hora del día. El método o proceso que se utiliza para implementar la automatización se denomina marco de automatización de prueba .

La prueba de automatización de software es el proceso de verificación de software en el que las herramientas para la prueba automática realizan la función básica y los pasos de prueba , como la ejecución, la inicialización, la ejecución, el análisis y la entrega de resultados.

Selenium Webdriver: WebDriver es una herramienta para automatizar las pruebas de aplicaciones web y, en particular, para verificar que funcionan como se espera. Su objetivo es proporcionar una API amigable que sea fácil de explorar y comprender, más fácil de usar que la API Selenium -RC (1.0), que ayudará a que sus pruebas sean más fáciles de leer y mantener.

Selenium proporciona una herramienta de grabación / reproducción para crear pruebas sin aprender un lenguaje de secuencias de comandos de prueba ( Selenium IDE). También proporciona un lenguaje específico de dominio de prueba (Selenese) para escribir pruebas en varios lenguajes de programación populares, incluidos Java, C #, Groovy, Perl, PHP, Python y Ruby.

Algunos mejores libros (debe leer):

Los principiantes en informática deberían centrarse más en divertirse programando. Necesita tener una idea de cómo funcionan las computadoras y cómo puede ordenarle que haga el trabajo. Es posible que no entres en los detalles esenciales al principio.

Comienzas con un lenguaje de programación. La mayoría de las personas que conozco y yo mismo comenzamos con C. Me estaba divirtiendo incluso cuando la computadora era una caja negra con solo un entorno de programación como mi interfaz con ella. Puede comenzar con cualquier lenguaje decente como Python y comenzar a jugar. Por lo tanto, es bueno tener un libro sobre el idioma que elija .

Debe comprender cómo su programa puede hacer lo que pretende. Pasarán años antes de que tenga una visión de alto nivel de esto. Pero primero debe obtener una comprensión aproximada del modelo de ejecución. Por lo tanto, es bueno tener un libro sobre arquitectura básica de computadoras .

Después de divertirse programando durante un tiempo, es posible que desee hacer una o dos cosas que son más que un simple programa. Para esto, es posible que desee utilizar algunos algoritmos estándar y una nueva estructura de datos . Por lo tanto, los libros sobre esos serán útiles.

También es bueno saber cómo funciona el sistema operativo está utilizando Works, porque es su interfaz con el hardware de la computadora y el que realmente lleva sus comandos a la computadora y los ejecuta. Por lo tanto, también es bueno tener un libro sobre el sistema operativo que elija utilizar .

  • Introducción a los algoritmos , Cormen, Rivest, et al.
  • Estructura e interpretación de programas de computadora, Abelson, Sussman & Sussman – Bienvenido al sitio web de SICP
  • Matemáticas concretas, Knuth, Patashnik http://amzn.com/0201558025
  • Matemática integral para informáticos 1 + vol 2 , Mazzola, Milmeister, Weissman

También vea las respuestas a ¿Cuáles son algunos de los mejores libros sobre informática?

En realidad, no abordaría esta pregunta, sino que lo alentaría a tomar cursos en línea tal como están

  • MUCHO más fácil que leer libros
  • MUCHO más productivo.

Por ejemplo, si no puede programar, es muy poco probable que le resulte difícil depurar y probar su código y perder su tiempo y centrarse en mierda como errores de sintaxis porque la gente que escribe el libro realmente no sabe cómo pensar como un novato (no los culpo, ¡es difícil!)
En el curso en línea, si comete un error tonto, probablemente haya personas que hicieron lo mismo. Y usualmente hay algunos tipos que descubrieron cómo lidiar con eso.

No sé qué tan alto es su dominio de programación, así que les dejaré estos enlaces:
https://www.coursera.org/courses
https://www.edx.org/course-list

Los libros son geniales, pero ¿aprendiste a andar en bicicleta leyendo un libro? ¿Aprendiste a nadar leyendo un libro? ¿Aprendiste algún idioma extranjero al leer un libro (me refiero a un idioma que algunas personas hablan, no latín o acadio o griego antiguo)? Si realmente PUEDES hacer algo, leer libros puede ampliar tu conocimiento.

Computer Fundamentals de pk sinha es un buen libro para aprender sobre los fundamentos de la informática para principiantes. El libro tiene numerosos diagramas ilustrativos, ejemplos prácticos, resúmenes de capítulos, preguntas al final del capítulo y un glosario de términos importantes. Los principiantes en informática pueden consultar este libro para obtener orientación, ya que proporciona una idea clara sobre el funcionamiento de la máquina. El libro también se puede utilizar como material de autoaprendizaje debido a su lenguaje sencillo y contenido bien refinado.

El libro ha cubierto algunos temas importantes como sistemas numéricos, códigos de computadora, aritmética binaria, álgebra booleana y circuitos lógicos. Se han agregado introducciones a nuevos conceptos en informática, nuevos temas y clasificaciones. Se han actualizado e incluido diagramas ilustrativos y notas de clase.

Para la programación en C, vaya a http://www.amazon.com/C-Programm

Para algoritmos y estructuras de datos, lea http://mitpress.mit.edu/algorithms/ .

Lo más importante, ¡debes PRACTICAR! comience a resolver problemas en un juez en línea como SPOJ o codechef.

Hay muchos libros introductorios sobre programación , pero si desea una introducción a la informática , hay algunas buenas opciones.

Uno que llega al romance de algunas de las grandes ideas de la informática sin entrar en detalles técnicos es Gödel, Escher, Bach. Es un poco anticuado en este momento, pero un clásico.

Este libro ofrece una introducción laica a la complejidad computacional, nuevamente sin ningún detalle técnico: El boleto dorado: P, NP y la búsqueda de lo imposible

Si está interesado en ensuciarse las manos con algunas matemáticas simples, entonces es difícil encontrar un texto de introducción mejor que Sipser: Introducción a la teoría de la computación: Michael Sipser: 9781133187790: Amazon.com: Libros

No puedo creer que 4 personas respondieron antes que yo, y nadie dijo “Cormen – Introducción a los algoritmos”. Es el libro. También es un libro de texto de MIT.

Este libro es, sin duda, difícil de leer, sin embargo, contiene todo lo que necesita, desde lo básico hasta los temas avanzados. Tiene muchos problemas que puede resolver para mejorar / probar la comprensión de cada capítulo.

La teoría de la computación de Vivek Kulkarni parece bastante buena. Solo he comenzado recientemente. Miré un montón de libros y tomé en cuenta el precio y las reseñas de Amazon.

Sin embargo, es realmente un libro de texto, por lo que tendrá que trabajar en lugar de ser exactamente entretenido. Estaba buscando específicamente algo que hablara sobre las máquinas de Turing, lo que hace este libro. También habla de expresiones regulares desde un punto de vista teórico, gramáticas, capacidad de decisión y otras cosas.

(Esto supone que realmente quieres un libro sobre informática, y no programación)

No hay libros que sean mejores para ser profesional en cualquier materia. Lo que necesitas es práctica. Como principiante, es posible que necesite leer algo para obtener un concepto de lo que es la programación. Te aconsejaré que comiences con Python (si fuera hace 5 años, le habría dicho a C. Pero C, como parece, es un lenguaje bastante anticuado porque es solo un lenguaje de procedimiento).

Después de aprender fragmentos y descubrir qué es la programación, puede comenzar a hacer cosas. Tienes que construir y construir y construir continuamente. Cuando comience a hacerlo, se quedará atascado en los puntos, buscará una solución en el desbordamiento de pila o similares, aprenderá y ejecutará cosas nuevas y así será profesional en cualquier campo.

Puedes comenzar de aprender a codificar, ofrecen un buen curso de Python. ¡Feliz codificación!

No busques libros de texto. Para saber qué es CS y cuáles son los conceptos principales, navegue por la web: puede encontrar los temas principales en Outline of computer science (Wikipedia) y también en Introduction to Computers (Wikiversity), también List of Topics in Computer Science (Cosmolearning )

Si está interesado en un enfoque más estructurado, pruebe uno de los cursos en línea: Introducción a la informática (edX), también Computer Science 101 (Coursera).

Para un gran clásico sobre los principios de programación, puede ir a Estructura e interpretación de programas de computadora (libro) o SICP (video conferencias); probablemente un poco viejo, pero excelente de todos modos.

¿Qué tan principiante eres?

Ir a pensar como un científico de la computación: beneficios de este libro de texto interactivo

Es interactivo, basado en navegador y te enseña muchísimo. Tiene la cantidad correcta de gratificación instantánea (que es necesaria en el aprendizaje) y visión, además de estar orientada a principiantes.

Hay toda una serie que puede enseñarle la mayoría de lo que necesita en el navegador:

Principios de CS: grandes ideas en la programación
Resolución de problemas con algoritmos y estructuras de datos

Aprender sobre CS de un libro sin un enfoque práctico es difícil. Es mejor que el libro tenga la capacidad de “ejecutar programas dentro de las páginas”.

También vaya a CodeNewbie para obtener ayuda en su viaje para aprender a codificar.

Espero que esto ayude.

Debe tener para los estudiantes de CS:

C: Déjenos c por Yashwant Kanetkar
C ++: Vamos a c ++ por Yashwant Kanetkar
Algoritmos: Introducción a los Algoritmos por Thomas H. Cormen
Base de datos: Conceptos del sistema de base de datos (Korth, Silberschatz, Sudarshan)
Redes: Redes de computadoras de A Tanenbaum
Sistema operativo: Conceptos del sistema operativo por Avi Silberschatz
Computer Architecture: Computer System Architecture por M Morris Mano

Supongo que eso sería suficiente 🙂

¿Quieres ‘hacer que las computadoras hagan cosas’ o ‘aprender informática’? ¿Entiendes la diferencia? ¿Qué tipo de cosas quieres que hagan las computadoras por ti?

¿No entiendes la diferencia, quieres hacer que las computadoras hagan cosas o aún no estás seguro? Forme parte de la comunidad en torno a Processing.org. Escribirás código que hace cosas geniales rápidamente.

Si realmente quieres aprender ciencias de la computación, y realmente sabes lo que eso significa, algunos clásicos son The Little Schemer (el más gentil con el menor conocimiento presunto), The Structure and Interpretation of Computer Programs (el más difícil) o Cómo diseñar programas (un sucesor más suave al anterior).

Todo esto te hará un mejor programador. La parte importante es descubrir lo que quieres hacer y seguir haciéndolo.