{"id":13172,"date":"2022-04-21T15:05:56","date_gmt":"2022-04-21T18:05:56","guid":{"rendered":"https:\/\/frogmi.com\/index.php\/my-favorite-computer-science-books\/"},"modified":"2026-03-12T12:23:34","modified_gmt":"2026-03-12T15:23:34","slug":"my-favorite-computer-science-books","status":"publish","type":"post","link":"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/","title":{"rendered":"My Favorite Computer Science Books <span class=\"pv-auto-arrow\">\u2192<\/span>"},"content":{"rendered":"<div class=\"wpb-content-wrapper\">\r\n<p>[vc_row][vc_column][vc_column_text]Hi! I\u2019m Ignacio, CTO at Frogmi\u00ae. I&#8217;ve been working in the software industry for 10+ years, but I did not study computer science engineering. In fact, I&#8217;m an electrical engineer. Fortunately, I have had excellent friends who are software engineers, and who recommended me great computer science books, some of which had a strong impact on my professional development. Given the above, I decided to write this article sharing the books that contributed the most to me, along with why and what I enjoyed most about them.[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column width=&#8221;2\/3&#8243;][vc_column_text]<\/p>\r\n<h3><a href=\"https:\/\/www.amazon.com\/-\/es\/Tom-Stuart\/dp\/1449329276\">Understanding Computation<\/a>, by Tom Stuart<\/h3>\r\n<p>As you may imagine, I didn&#8217;t take courses like computer theory or programming languages while studying. Therefore, this book was instrumental in learning those topics. Understanding Computation is a book that shows you how Automatas, Turing-Machine, Compilers, and Functional Programming work. But its most remarkable feature is that all the examples are done in ruby, so it&#8217;s simple to understand how they work. I certainly recommend this book if you want to learn about these topics for the first time, like me, or if you want to revisit them following this new ruby approach.[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/3&#8243;][vc_single_image image=&#8221;4326&#8243; img_size=&#8221;full&#8221; alignment=&#8221;right&#8221; el_class=&#8221;img-libro&#8221;][\/vc_column][\/vc_row][vc_row css=&#8221;.vc_custom_1650552144176{margin-top: 50px !important;}&#8221;][vc_column width=&#8221;2\/3&#8243;][vc_column_text]<\/p>\r\n<h3><a href=\"https:\/\/www.amazon.com\/Robert-Martin-Arquitectura-limpia-estructura\/dp\/0134494164\">Clean Architecture by Robert C<\/a>., Martin<\/h3>\r\n<p><span style=\"font-weight: 400;\">This book explains how to design scalable and easy-to-maintain software. It describes the three main programming languages paradigms: procedural, object-oriented, and functional. Then, it depicts how to apply some helpful design principles, like SOLID principles.<\/span> <span style=\"font-weight: 400;\">What I liked most from this book is the concept that<\/span><a href=\"https:\/\/blog.cleancoder.com\/uncle-bob\/2012\/08\/13\/the-clean-architecture.html\"> <span style=\"font-weight: 400;\">business logic should never depend on details<\/span><\/a><span style=\"font-weight: 400;\"> (databases, frameworks, UI are details), and the usual way to resolve this is using<\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Dependency_inversion_principle\"> <span style=\"font-weight: 400;\">dependency inversion<\/span><\/a><span style=\"font-weight: 400;\">.<\/span>[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/3&#8243;][vc_single_image image=&#8221;4335&#8243; img_size=&#8221;full&#8221; alignment=&#8221;right&#8221; el_class=&#8221;img-libro&#8221;][\/vc_column][\/vc_row][vc_row css=&#8221;.vc_custom_1650552116308{margin-top: 50px !important;}&#8221;][vc_column width=&#8221;2\/3&#8243;][vc_column_text]<\/p>\r\n<h3><a href=\"https:\/\/www.amazon.com\/Robert-Martin\/dp\/0135974445\">Agile Software Development, Principles, Patterns, and Practices<\/a> by Robert C., Martin<\/h3>\r\n<p><span style=\"font-weight: 400;\">\u00a0<\/span><span style=\"font-weight: 400;\">Following Clean Architecture this is another book from Robert C. Martin (a.k.a. Uncle Bob). In this book, Uncle Bob explains the SOLID principles and how to use many practical design patterns, providing excellent examples (and a lot of code). Thanks to this book, I truly understood why OOP is essential for building scalable software. Despite it being from 2002, this book is still relevant today.<\/span><span style=\"font-weight: 400;\">\u00a0<\/span> <strong>Bonus:<\/strong><span style=\"font-weight: 400;\"> the book has a transcription of Uncle Bob&#8217;s pair programming session that is very useful to understand pair programming&#8217;s value.<\/span>[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/3&#8243;][vc_single_image image=&#8221;4339&#8243; img_size=&#8221;full&#8221; alignment=&#8221;right&#8221; el_class=&#8221;img-libro&#8221;][\/vc_column][\/vc_row][vc_row css=&#8221;.vc_custom_1650552071305{margin-top: 50px !important;}&#8221;][vc_column width=&#8221;2\/3&#8243;][vc_column_text]<\/p>\r\n<h3><a href=\"https:\/\/www.amazon.com\/Martin-Fowler\/dp\/0134757599\">Refactoring<\/a> by Martin Fowler<\/h3>\r\n<p><span style=\"font-weight: 400;\">Refactoring is the process of improving the code without changing its functional specifications, meaning that the existing tests aren&#8217;t modified. The way to achieve this is by following the sequence: doing small changes and running tests; doing small changes and running tests; and so on. This book catalogs those most common &#8216;small changes&#8217; for doing refactoring. On top of this, you will very insightful find a step-by-step refactoring example in the introduction.<\/span>[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/3&#8243;][vc_single_image image=&#8221;4341&#8243; img_size=&#8221;full&#8221; alignment=&#8221;right&#8221; el_class=&#8221;img-libro&#8221;][\/vc_column][\/vc_row][vc_row css=&#8221;.vc_custom_1650552077124{margin-top: 50px !important;}&#8221;][vc_column width=&#8221;2\/3&#8243;][vc_column_text]<\/p>\r\n<h3><a href=\"https:\/\/www.amazon.com\/Tom-DeMarco\/dp\/0321934113\">Peopleware<\/a> &#8211; by Tom DeMarco &amp; Timothy Lister<\/h3>\r\n<p><span style=\"font-weight: 400;\">This book is not as technical as the others on my list, but I absolutely recommend it. I heard someone saying that we, programmers, are more translators than anything else. Our job is to understand what people need and write it in a language that a computer can understand, and that&#8217;s undoubtedly a social ability. In this book, DeMarco and Lister show us, with data, how most issues in software development are not technical but sociological.<\/span> <span style=\"font-weight: 400;\">I hope these recommendations are as helpful to you as they were to me.<\/span> <span style=\"font-weight: 400;\">If you want to talk about them, I&#8217;ll be happy to hear from you. Just write me! =)<\/span><span style=\"font-weight: 400;\">In case you want to work with us and join Frogmi\u00ae, we are always looking for new talent! Check out our open job positions for developers<a href=\"https:\/\/www.getonbrd.com\/companies\/frogmi\"> here<\/a>.\u00a0<\/span>[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/3&#8243;][vc_single_image image=&#8221;4345&#8243; img_size=&#8221;full&#8221; alignment=&#8221;right&#8221; el_class=&#8221;img-libro&#8221;][\/vc_column][\/vc_row]<\/p>\r\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Hi! I\u2019m Ignacio, CTO at Frogmi\u00ae. I&#8217;ve been working in the software industry for 10+ years, but I did not study computer science engineering&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_focuskw":"","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","post_audio":"","_pv_blog_destacado":"","footnotes":""},"categories":[150],"tags":[],"class_list":["post-13172","post","type-post","status-publish","format-standard","hentry","category-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.1 (Yoast SEO v27.1.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>My Favorite Computer Science Books - Frogmi<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"My Favorite Computer Science Books\" \/>\n<meta property=\"og:description\" content=\"Hi! I\u2019m Ignacio, CTO at Frogmi\u00ae. I&#039;ve been working in the software industry for 10+ years, but I did not study computer science engineering....\" \/>\n<meta property=\"og:url\" content=\"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/\" \/>\n<meta property=\"og:site_name\" content=\"Frogmi\" \/>\n<meta property=\"article:published_time\" content=\"2022-04-21T18:05:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-12T15:23:34+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@marketing-admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/frogmi.com\/en\/#\/schema\/person\/bb9267f3e597947a2c8d2333d75a349b\"},\"headline\":\"My Favorite Computer Science Books \u2192\",\"datePublished\":\"2022-04-21T18:05:56+00:00\",\"dateModified\":\"2026-03-12T15:23:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/\"},\"wordCount\":780,\"commentCount\":0,\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/\",\"url\":\"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/\",\"name\":\"My Favorite Computer Science Books - Frogmi\",\"isPartOf\":{\"@id\":\"https:\/\/frogmi.com\/en\/#website\"},\"datePublished\":\"2022-04-21T18:05:56+00:00\",\"dateModified\":\"2026-03-12T15:23:34+00:00\",\"author\":{\"@id\":\"https:\/\/frogmi.com\/en\/#\/schema\/person\/bb9267f3e597947a2c8d2333d75a349b\"},\"breadcrumb\":{\"@id\":\"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/frogmi.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"My Favorite Computer Science Books\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/frogmi.com\/en\/#website\",\"url\":\"https:\/\/frogmi.com\/en\/\",\"name\":\"Frogmi\",\"description\":\"Ejecuci\u00f3n perfecta en retail impulsada por IA\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/frogmi.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/frogmi.com\/en\/#\/schema\/person\/bb9267f3e597947a2c8d2333d75a349b\",\"name\":\"admin\",\"sameAs\":[\"https:\/\/frogmi.com\",\"https:\/\/x.com\/marketing-admin\"],\"url\":\"https:\/\/frogmi.com\/en\/blog\/author\/frogmi\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"My Favorite Computer Science Books - Frogmi","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/","og_locale":"en_US","og_type":"article","og_title":"My Favorite Computer Science Books","og_description":"Hi! I\u2019m Ignacio, CTO at Frogmi\u00ae. I've been working in the software industry for 10+ years, but I did not study computer science engineering....","og_url":"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/","og_site_name":"Frogmi","article_published_time":"2022-04-21T18:05:56+00:00","article_modified_time":"2026-03-12T15:23:34+00:00","author":"admin","twitter_card":"summary_large_image","twitter_creator":"@marketing-admin","twitter_misc":{"Written by":"admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/#article","isPartOf":{"@id":"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/"},"author":{"name":"admin","@id":"https:\/\/frogmi.com\/en\/#\/schema\/person\/bb9267f3e597947a2c8d2333d75a349b"},"headline":"My Favorite Computer Science Books \u2192","datePublished":"2022-04-21T18:05:56+00:00","dateModified":"2026-03-12T15:23:34+00:00","mainEntityOfPage":{"@id":"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/"},"wordCount":780,"commentCount":0,"articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/","url":"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/","name":"My Favorite Computer Science Books - Frogmi","isPartOf":{"@id":"https:\/\/frogmi.com\/en\/#website"},"datePublished":"2022-04-21T18:05:56+00:00","dateModified":"2026-03-12T15:23:34+00:00","author":{"@id":"https:\/\/frogmi.com\/en\/#\/schema\/person\/bb9267f3e597947a2c8d2333d75a349b"},"breadcrumb":{"@id":"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/frogmi.com\/en\/blog\/my-favorite-computer-science-books\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/frogmi.com\/en\/"},{"@type":"ListItem","position":2,"name":"My Favorite Computer Science Books"}]},{"@type":"WebSite","@id":"https:\/\/frogmi.com\/en\/#website","url":"https:\/\/frogmi.com\/en\/","name":"Frogmi","description":"Ejecuci\u00f3n perfecta en retail impulsada por IA","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/frogmi.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/frogmi.com\/en\/#\/schema\/person\/bb9267f3e597947a2c8d2333d75a349b","name":"admin","sameAs":["https:\/\/frogmi.com","https:\/\/x.com\/marketing-admin"],"url":"https:\/\/frogmi.com\/en\/blog\/author\/frogmi\/"}]}},"_links":{"self":[{"href":"https:\/\/frogmi.com\/en\/wp-json\/wp\/v2\/posts\/13172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frogmi.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/frogmi.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/frogmi.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/frogmi.com\/en\/wp-json\/wp\/v2\/comments?post=13172"}],"version-history":[{"count":1,"href":"https:\/\/frogmi.com\/en\/wp-json\/wp\/v2\/posts\/13172\/revisions"}],"predecessor-version":[{"id":13778,"href":"https:\/\/frogmi.com\/en\/wp-json\/wp\/v2\/posts\/13172\/revisions\/13778"}],"wp:attachment":[{"href":"https:\/\/frogmi.com\/en\/wp-json\/wp\/v2\/media?parent=13172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/frogmi.com\/en\/wp-json\/wp\/v2\/categories?post=13172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/frogmi.com\/en\/wp-json\/wp\/v2\/tags?post=13172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}