¿Cuáles son los mejores libros para aprender a codificar?

En primer lugar, me gustaría señalar que al “codificar” o “programar” probablemente se refiera a “ingeniería de software”, es decir, la ciencia de la creación de aplicaciones de software. Las personas nuevas en el campo a menudo confunden el conocimiento de un lenguaje de programación específico (por ejemplo, Java, C ++, PHP, Python) con la habilidad de la ingeniería de software. Un lenguaje de programación es simplemente un medio para lograr el objetivo de construir una aplicación.

En segundo lugar, no hay libros “mejores”, videos de autoinstrucción o programas universitarios sobre ingeniería de software. Se recomiendan pero no los “mejores”.

Si desea embarcarse en una carrera de ingeniería de software, le recomiendo que se arme con:

  1. Una elección de lenguaje y plataforma: C # y Windows son excelentes.
  2. Buen material de instrucción (libros, recursos en línea, video tutoriales, un curso introductorio a la universidad, etc.)
  3. Las herramientas que necesitará: una PC con Windows, Microsoft Visual Studio 2017 (gratis).
  4. Tiempo y paciencia.
  5. Pizza y refrescos con cafeína (para darle energía para alimentar su entusiasmo).

En cuanto al material de instrucción, su mejor opción es inscribirse en un curso (gratuito o de otro tipo). Ya sea un instructor dirigido o un video de capacitación a su propio ritmo, no hay nada como un curso formal para ayudarlo a comenzar con lo básico. Si elige aprender por su cuenta comprando uno o más libros, encuentre aquellos que cubran el siguiente programa de estudios:

Los conceptos básicos (cómo funcionan las balas):

  • Representación numérica
  • álgebra de Boole
  • Construcciones de programación (ejecución secuencial, if-then-else, bucles, declaración de cambio / caso)
  • Entrada y salida básica.
  • Programación modular (funciones, paso de parámetros)
  • Estructuras de datos (matrices, listas, listas vinculadas, colas, árboles, tablas hash, conjuntos)
  • Algoritmos: algoritmos numéricos, búsqueda, clasificación, recursividad, etc.
  • Excepciones y manejo de errores

Programación orientada a objetos (cómo funcionan las armas):

  • Objetos y clases
  • Encapsulamiento
  • Composición y herencia.
  • Polimorfismo

Patrones de diseño (cómo funcionan las ametralladoras):

  • Fábrica, patrón único, constructor, prototipo
  • Adaptador, fachada
  • Iterador, comando, mediador
  • Editor, suscriptor
  • etc.

Programación GUI (cómo pelear una batalla):

  • Conceptos básicos impulsados ​​por eventos
  • Formas y controles
  • Arrastrar y soltar
  • Portapapeles de Windows
  • Muchos otros temas demasiado numerosos para nombrar

Programación de Windows (cómo pelear una guerra):

  • E / S de archivo
  • Programación de red
  • Regex
  • Multimedia
  • Habla
  • Cifrado
  • Muchos otros temas demasiado numerosos para nombrar

¿Suena mucho? Es. Pero recuerde esto: cada océano comienza con una gota de agua.

Le deseo suerte y lo aliento a embarcarse en este maravilloso viaje de ingeniería de software. Espero que te traiga tanta alegría como me ha traído a mí. No hay nada más en la vida que quiera hacer que crear software útil, robusto y utilizable.

La era de los libros ha terminado.

Tenía cinco libros de algoritmos gráficos especializados en mi estante. La última vez que me preguntaba cómo hacer algo arcano con píxeles, miré la estantería, miré la computadora y escribí mi búsqueda.

La página 397 del Vol. 4 apareció en mi pantalla … del libro en mi estante.

Si quieres leer sobre codificación, lee Biografías de codificadores 😉

En cuanto a la parte “Aprender a codificar” de su pregunta:

Tome este ejemplo de una búsqueda en google:

rápido sin guiones gráficos

Ahora hemos obtenido el apoyo de aproximadamente 230,000 consultores pagados que tienen conocimiento especializado de nuestra área de interés.

Esta es la era de “Aprenda cualquier cosa”. Rock on …

Honestamente, depende de lo que quieras aprender.

Supongo que lo más probable es que desee crear una aplicación web o móvil.

Para hacerlo, deberá aprender HTML5 / CSS3 / JavaScript + un lenguaje del lado del servidor como PHP / Ruby / Python / C # / Java / Swift y necesitará familiarizarse con una base de datos SQL o NoSQL.

Recomendaría Free Code Camp. Sin embargo, si se opone a JavaScript, consulte los tutoriales de w3schools, ya que lo guiarán a través de HTML5 / PHP / SQL / JavaScript / jQuery y un marco de front-end JS llamado AngularJS.

Rara vez he encontrado libros que sean útiles para aprender código. Aprendo haciendo. Descargue un IDE, algunas hojas de trucos y comience a tratar de resolver problemas.

Dicho esto, Python Playground fue un buen libro. Y el código de Rosetta es un recurso útil para estudiar:

Código Rosetta

Puedo recomendar un libro para Java que utilicé. Creo que debe especificar qué lenguaje de codificación desea aprender para que las personas puedan darle recomendaciones específicas.

Java para aplicaciones de Android

C ++ es un lenguaje de programación de propósito general.

Python es un lenguaje de programación de uso general amigable para principiantes

html, css, javacript y php se utilizan en diseño web

C # se usa en aplicaciones multiplataforma con el marco Xamarin

Swift es para aplicaciones IOS.

He escrito dos libros dirigidos a estudiantes que no han codificado y no han codificado con Matlab antes. Ambos vinculados a continuación. Enseño el tema en mi universidad. Para ser honesto, los libros son un excelente lugar para comenzar, pero sería mucho mejor aprender las habilidades del sitio web de matemáticas y simplemente incursionar una vez que tenga lo básico.

Amazon.com: MATLAB BASICS eBook: Muhammad Bilal Alli: Tienda Kindle

Amazon.com: Física computacional: una guía para principiantes que buscan acelerar su computación eBook: Muhammad Bilal Alli: Tienda Kindle

La Internet; No compres ningún libro. Puede encontrar tutoriales y cursos pequeños en prácticamente cualquier idioma del mundo.