May 1, 2024
Updated May 6, 2025
27 minute read
Programming
Programming, at its core, is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a particular task. It involves tasks such as analysis, generating algorithms, profiling algorithms' accuracy and resource consumption, and the implementation of algorithms in a chosen programming language. In essence, programming is how humans communicate instructions to computers, enabling the vast array of digital technologies that shape our modern world. For those new to the concept, imagine giving a very precise set of instructions to a robot to make a sandwich; every step must be explicit and unambiguous – that's akin to programming.
tie28o|
Find a path to becoming a Programming. Learn more at:
OpenCourser.com/topic/tie28o/programmin
Reading list
We've selected 41 books
that we think will supplement your
learning. Use these to
develop background knowledge, enrich your coursework, and gain a
deeper understanding of the topics covered in
Programming.
This monumental work comprehensive treatise on algorithm design and analysis. It valuable resource for anyone who wants to deeply understand the foundations of computer programming.
This multi-volume work comprehensive treatise on the art of computer programming. It covers a wide range of topics, from basic algorithms to advanced data structures. Knuth is one of the most influential computer scientists of all time, and his book is considered one of the most important works in the field.
A highly influential book that offers practical advice on a wide range of software development topics, including writing maintainable code, learning continuously, and managing a programming career. It's valuable for programmers at all stages, providing timeless wisdom that transcends specific technologies. is often recommended as essential reading for developers looking to improve their craft.
This classic textbook provides a comprehensive overview of algorithm design and analysis, covering topics such as sorting, searching, graph theory, and dynamic programming. It is an excellent resource for students and professionals alike.
This comprehensive reference book covers all aspects of the Java programming language. It includes detailed explanations of the language's syntax, semantics, and libraries. Schildt leading Java expert, and his book is considered one of the most authoritative works on the subject.
Focuses on the principles and practices of writing clean, readable, and maintainable code. It provides detailed guidance on naming conventions, function design, and code structure, which are crucial skills for developing robust and understandable software. While the examples are primarily in Java, the concepts are universally applicable to any programming language. It is considered a must-read for developers aiming to improve code quality.
This textbook provides a comprehensive introduction to the field of artificial intelligence. It covers a wide range of topics, including machine learning, natural language processing, and computer vision. Russell and Norvig are both leading AI researchers, and their book is considered one of the most authoritative works on the subject.
Provides a comprehensive guide to algorithm design. It covers a wide range of topics, including sorting, searching, graph algorithms, and dynamic programming. Skiena leading algorithm designer, and his book is considered one of the most authoritative works on the subject.
This seminal work introduces 23 design patterns that can be used to solve common software design problems. It is an essential resource for anyone who wants to improve their object-oriented design skills.
A comprehensive guide to software construction, covering everything from design and coding to debugging and testing. It synthesizes best practices and provides detailed advice on building high-quality software. valuable reference for both students and professionals, offering insights into the entire software development process.
Authored by the 'Gang of Four,' this book presents a collection of reusable design patterns for object-oriented software. Understanding these patterns helps in writing more flexible, maintainable, and efficient code. It's a valuable resource for intermediate to advanced programmers looking to improve their software design skills.
This practical guide offers valuable advice on software development best practices, including coding conventions, testing, debugging, and project management. It must-read for anyone who wants to improve their programming skills.
A widely-used textbook in universities, this book provides a rigorous introduction to fundamental algorithms and data structures. It covers a broad range of topics essential for understanding the efficiency and complexity of programs. While mathematically intensive, it foundational text for anyone pursuing a deeper understanding of computer science and programming.
A popular hands-on, project-based introduction to programming with Python. It's well-suited for beginners and those new to Python, covering fundamental concepts and leading into practical projects. The third edition is updated to reflect recent Python practices and includes coverage of relevant tools and libraries.
Definitive guide to the process of refactoring, which is restructuring existing code without changing its external behavior. It provides a catalog of refactoring techniques and explains when and why to apply them. This crucial book for any developer working on real-world software projects to improve code quality and maintainability.
Teaches Python programming by showing how to use it to automate practical tasks, such as working with spreadsheets, web scraping, and sending emails. It's an excellent resource for beginners who want to learn programming by immediately applying their skills to solve real-world problems. It assumes no prior programming knowledge.
This classic textbook provides a comprehensive introduction to the C programming language. It covers all the essential features of the language, including data types, control flow, functions, and pointers. Kochan is an experienced C programmer, and his book is known for its clear and engaging writing style.
Provides a programmer's view of computer systems, bridging the gap between high-level programming and the underlying hardware. It covers topics such as data representation, assembly language, memory hierarchy, and operating systems. Understanding these concepts is crucial for writing efficient and effective programs, especially in systems programming or performance-critical applications.
Following up on Clean Code, this book focuses on the professional aspects of being a programmer, including topics like professionalism, time management, and working with others. It provides valuable guidance for developers transitioning into or working in professional environments. It complements the technical skills learned from other programming books.
This comprehensive guide to the Scala programming language covers both the basics and advanced topics such as functional programming and concurrency. It is an excellent resource for anyone who wants to learn Scala.
This official guide to the Rust programming language provides a comprehensive overview of the language's features and benefits. It is an excellent resource for anyone who wants to learn Rust.
Provides a comprehensive introduction to the C++ programming language, covering both the basics and advanced topics such as object-oriented programming and generic programming. It valuable resource for anyone who wants to learn C++.
This comprehensive guide covers all aspects of programming in Python, from the basics to advanced topics such as object-oriented programming and database programming. It is an excellent resource for both beginners and experienced programmers alike.
Popular resource for preparing for coding interviews at technology companies. It contains a wide range of programming problems and their solutions, covering data structures, algorithms, and other key areas. It's particularly useful for undergraduate and graduate students, as well as working professionals seeking new opportunities.
For more information about how these books relate to this course, visit:
OpenCourser.com/topic/tie28o/programmin