Problem solving with C++ by Walter Savage was the book that introduced me to the world of programming. It was my very first experience with the C++ language, and this book played a pivotal role in my learning journey. Back when I was taking a C++ class at Santa Monica College, this book was assigned to me. Unlike many other programming books, it didn't just present concepts with shallow examples. Instead, it delved into comprehensive explanations and practical applications.
The book covered a wide range of concepts essential for mastering C++, making sure I had a solid grasp of the language. Looking back, I remember how exciting it was to learn how to code for the first time. Everything felt fresh and intriguing. Sometimes, I even wish I could erase my memory and relive that initial learning process because of how enjoyable it was.
Before you start questioning my recommendation of jQuery, just give me a moment to explain. This book I've been diving into is structured in two parts, each focusing on distinct aspects.
The initial half concentrates on grasping the essentials of front-end coding using pure JavaScript. There are no intricate frameworks or libraries, just the basics. From functions and loops to objects, it covers the language's core aspects. Furthermore, you delve into the DOM (Document Object Model), essentially the structure of your browser's HTML content. Browser-specific attributes and events, like button clicks or altering button colors, become familiar territory.
The second portion of the book dives into jQuery. This phase enhances your comfort with working within the DOM. Despite jQuery's waning popularity, I firmly believe it's an excellent educational tool. It's particularly beneficial for newcomers in front-end development, as it imparts valuable insights into JavaScript frameworks. Through jQuery, you'll recognize the potency of utilizing a framework as opposed to solely relying on the language itself.
JavaScript: The Good Parts by Douglas Crockford is a true classic. This book addresses the flawed nature of the JavaScript language, highlighting its redeeming qualities and offering a curated subset that's both powerful and effective. Like any programming language, you don't need to use every feature; this book helps you focus on the essential parts. In other languages, people naturally gravitate toward specific constructs. For instance, I personally favor "for" loops over "while" loops. This book essentially guides you through choosing the right parts of JavaScript to work with. It's an enlightening journey into understanding JavaScript's scope intricacies, which can be quite convoluted. Despite that, if you're serious about JavaScript, especially in the context of front-end, full-stack, or Node.js development, this book is a must-read.
Interestingly, there was something about this book that clicked with me. The way the examples were presented and explained just made sense. Over time, this book has become my go-to resource for brushing up on concepts or revisiting specific topics.
It's worth mentioning that there are two versions of this book. The beginner's guide, which you're referring to, offers comprehensive coverage that's well-suited for Java development. However, if you're feeling ambitious, there's also a longer version intended as an exhaustive Java reference guide. I would advise against reading the latter cover to cover, given its extensive length of well over a thousand pages. Nonetheless, it serves as an excellent reference for consultation when needed.
Python Crash Course by Eric Matthes is a bit misleading in its title, given its hefty 500-page content. While a chunk of those pages might seem skippable—like instructions for installing Python or choosing a text editor—what really matters is the concise 200-page segment that covers the core concepts of the language. Once you account for the code examples, it's quite manageable. The learning curve is eased, especially if you're already familiar with C-like languages such as Java or C++.
The book then ventures into applying Python with various frameworks. It explores working with API frameworks like Django and delves into game development using Pygame. While I opted out of these sections, they're likely solid if you're interested in those areas.
For me, this book marked my entry into full-stack development and solidified my decision to pursue it professionally. While the content might seem like an immediate recommendation, there's a twist. My reservation lies with Angular—I'm not its biggest fan. Instead, I would suggest considering a MERN stack (MongoDB, Express, React, and Node) or exploring options like a Vue.js-based stack. React, in particular, stands out as one of the most prominent JavaScript frameworks today.
So, while the book certainly has merits, I'd encourage you to be discerning about your choice of front-end framework, ensuring it aligns with the current industry trends and your personal preferences.
This book is a go-to resource for iOS app development. This company specializes in publishing books related to app development, including Android, which is equally commendable. Their approach involves releasing updated editions in sync with major platform upgrades, ensuring that the content remains relevant.
Starting with the basics of creating a simple iOS app, the book gradually introduces you to Swift, the programming language for iOS app development. The content then delves into various iOS concepts and components. It's worth noting that the book emphasizes practical learning, enabling you to build your skills through hands-on experience.