We may earn an affiliate commission when you visit our partners.

Programming

Save
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.

Path to Programming

Take the first step.
We've curated 24 courses to help you on your path to Programming. Use these to develop your skills, build background knowledge, and put what you learn to practice.
Sorted from most relevant to least relevant:

Share

Help others find this page about Programming: by sharing it with your friends and followers:

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.
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.
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.
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.
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 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.
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.
Table of Contents
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser