16 Computer Science Books That Experts Trust and Use

Recommended by Satya Nadella, Kirk Borne, and John Maeda for Computer Science mastery and innovation

Satya Nadella
Kirk Borne
John Maeda
Max Levchin
Hilary Mason
David Heinemeier Hansson
Mark Tabladillo
Updated on June 28, 2025
We may earn commissions for purchases made via this page

What if I told you the key to unlocking the vast world of Computer Science lies within a few carefully chosen books? In a field that shapes everything from artificial intelligence to software engineering, the right books can accelerate your learning beyond what typical tutorials offer. Today, Computer Science is not just about coding — it's about understanding complex systems, algorithms, and innovative technologies that drive our digital future.

Leading voices like Satya Nadella, CEO of Microsoft, Kirk Borne, Principal Data Scientist at Booz Allen, and John Maeda, Global Head of Design at Automattic, have pointed to specific titles that profoundly influenced their mastery of the discipline. For example, Nadella highlights Deep Learning for its thorough approach to AI, while Borne praises Hands-On Machine Learning for practical implementation guidance.

While these expert-curated books provide proven frameworks and deep knowledge, you might want more tailored content based on your current skills, goals, or industry focus. In that case, consider creating a personalized Computer Science book that builds on these insights but hones in on what matters most to you.

Kirk Borne, Principal Data Scientist at Booz Allen and a leading voice in data science, highlights this book as a fundamental resource for mastering machine learning and deep learning through practical Jupyter Notebooks. His endorsement reflects the book’s ability to clarify complex topics like TensorFlow and Keras in a way that resonates with data scientists and AI practitioners alike. This hands-on approach helped him deepen his understanding of machine learning fundamentals and applications, making it a strong recommendation for anyone seeking to build real-world skills. Alongside him, Mark Tabladillo from Microsoft recognizes its value as an evolving, in-depth learning tool that bridges theory and practice effectively.
KB

Recommended by Kirk Borne

Principal Data Scientist, Booz Allen

#Jupyter Notebooks — Fundamentals of #MachineLearning and #DeepLearning: ——————— #abdsc #BigData #DataScience #Coding #Python #DataScientists #AI #DataMining #TensorFlow #Keras ——— + See this *BRILLIANT* book: by @aureliengeron (from X)

Aurélien Géron, drawing on his extensive experience as a Machine Learning consultant and former YouTube video classification lead, offers a highly practical guide to machine learning using Python frameworks. You explore a progression from simple linear regression models to sophisticated deep neural networks, with hands-on examples using Scikit-Learn, Keras, and TensorFlow. The book breaks down complex algorithms into digestible parts, such as support vector machines, clustering techniques, and generative adversarial networks, making these accessible even if you're new to machine learning. Whether you're a programmer eager to implement intelligent systems or a data scientist looking to deepen your toolkit, this book provides concrete projects and exercises that sharpen your skills without overwhelming theory.

View on Amazon
Best for hands-on Python beginners
Eric Matthes is a high school science and math teacher in Alaska who has been programming since childhood. His experience teaching introductory Python courses inspired him to write this book, aiming to simplify programming for newcomers. By focusing on hands-on projects and current Python tools, Eric connects classroom insights with practical skills that help you learn by doing.

After years of teaching Python to high school students in Alaska, Eric Matthes crafted this book to make programming accessible and hands-on. You’ll move from fundamental concepts like variables and loops to building interactive games and web applications using Python’s latest libraries. Chapters on testing with pytest and deploying Django apps show you how to write reliable, real-world code. If you want a practical introduction that balances foundational knowledge with creative projects, this book gives you the tools to start coding confidently and enjoyably.

View on Amazon
Best for personalized learning paths
This AI-created book on computer science mastery is designed specifically around your background and learning ambitions. By sharing which subtopics you want to focus on and your current skill level, you receive a custom book that covers exactly what you want to explore in depth. This personalized approach makes complex subjects more approachable and meaningful, giving you a clear path through foundational and advanced topics that matter to you.
2025·50-300 pages·Computer Science, Algorithms, Data Structures, Programming Paradigms, Systems Design

This personalized book on computer science mastery offers a tailored journey through foundational and advanced topics, carefully matched to your background and learning goals. It explores core concepts such as algorithms, data structures, programming paradigms, and systems design while delving into specialized areas that align with your interests. The content reveals complex ideas in an accessible way, allowing you to build deep understanding without wading through unrelated material. By focusing on your specific goals, this tailored guide helps bridge expert knowledge and your unique learning path, producing a coherent synthesis of the vast field of computer science. It invites you to engage directly with the most relevant ideas, enhancing both comprehension and practical application.

Tailored Guide
Expert Content Synthesis
1,000+ Happy Readers
Donald E. Knuth, renowned for his pioneering work on algorithms and programming and inventor of the TEX and METAFONT systems, has dedicated decades to this seminal series. Beginning in 1962 during his graduate studies, he crafted these volumes to comprehensively cover classical computer science topics. His numerous honors, including the ACM Turing Award and the Kyoto Prize for advanced technology, underscore his authority. This set reflects his unique blend of scholarly rigor and practical insight, making it a foundational resource for serious programmers.
2022·736 pages·Computer Science, Algorithms, Combinatorial Algorithms, Sorting, Searching

The breakthrough moment came when Donald Knuth, a pioneer in algorithm analysis and programming techniques, created this multivolume series that blends rigorous theory with practical programming challenges. You’ll explore fundamental algorithms, seminumerical methods, sorting, searching, and combinatorial algorithms with a precision and clarity rare in technical writing. For example, Volume 4B delves into combinatorial search spaces and introduces dancing links, a technique that elegantly manages matrix manipulations. This set is ideal if you’re committed to deepening your understanding of algorithm design and computational problem-solving at a scholarly level. However, if you seek a light or introductory read, this series may feel dense and demanding.

View on Amazon
Best for advanced combinatorial algorithms
Donald E. Knuth is renowned worldwide for pioneering work in algorithms and programming, inventing the TEX and METAFONT systems, and authoring 26 influential books. As Professor Emeritus at Stanford, he has dedicated decades to his multivolume series on classical computer science, beginning during his graduate studies at Caltech. His numerous honors, including the ACM Turing Award and the Kyoto Prize, reflect a career committed to deepening understanding of algorithms. This volume continues his exploration of combinatorial algorithms, blending theoretical rigor with practical insights for readers who want to engage with foundational computer science concepts.
2022·736 pages·Algorithms, Computer Science, Programming, Combinatorics, Backtrack Programming

What happens when decades of algorithmic mastery meet the intricate world of combinatorial problems? Donald Knuth, a towering figure in computer science, extends his seminal series with Volume 4B, delving into backtrack programming and SAT solvers. You’ll explore elegant data structures like Dancing Links and understand how they simplify complex search spaces, with practical applications ranging from sudoku puzzles to circuit design. The book’s mix of rigorous theory, playful puzzles, and detailed exercises makes it ideal for those ready to deepen their grasp of classical algorithms and their modern relevance. If your work or study involves algorithm optimization or combinatorial logic, this volume offers precise tools and insights worth mastering.

ACM Turing Award Author
Kyoto Prize Recipient
Author of 26 Books
View on Amazon
Best for programming fundamentals and concepts
Max Levchin, co-founder of PayPal and CEO of Affirm, brings a unique perspective to this book’s value, given his pioneering work in complex software systems and fintech innovation. His endorsement signals the book’s rigorous approach to programming fundamentals essential for building scalable, reliable applications. With decades of experience navigating both startup chaos and mature technology landscapes, Levchin’s backing highlights how this text serves as a foundational resource for anyone serious about mastering programming at a conceptual level. Alongside him, Bret Victor, noted for his design and research at Apple, adds weight by recognizing the book’s deep exploration of computational thinking, reinforcing its status as more than just a coding manual but a guide to understanding the very structure of programming itself.
JM

Recommended by John Maeda

Global Head of Design at Automattic

@jesseddy The best book in classical and “hands-on example” terms is Structure and Interpretation of Computer Programs — but it requires maybe a year to get thru and for me, 10 years more to marinate over. *A* book is the one I am finishing now to come out Nov 2019. (from X)

Structure and Interpretation of Computer Programs: JavaScript Edition (MIT Electrical Engineering and Computer Science) book cover

by Martin Henz, Tobias Wrigstad, Harold Abelson, Gerald Jay Sussman, Julie Sussman··You?

2022·640 pages·Programming, Computer Science, JavaScript, Language Processors, Recursion

Drawing from decades of teaching experience at MIT and extensive research in programming languages, the authors have crafted a foundational text that reinterprets classical computing concepts through the lens of JavaScript. You’ll explore core programming paradigms, including recursion, interpreters, and compilers, gaining mental models that apply across languages. The book delves into nuanced subjects like language parsing and stack discipline, illustrated with JavaScript examples compliant with ECMAScript 2020. If you’re aiming to deepen your understanding beyond syntax to the architecture of computation itself, this book offers a rigorous, thoughtful path, though it demands patience and commitment.

View on Amazon
Best for personal coding plans
This AI-created book on coding proficiency is crafted based on your current programming skills, specific interests, and learning goals. By sharing your background and preferred focus areas, you receive a book that targets exactly what you need to develop. Tailoring makes sense here because coding growth often hinges on practicing the right challenges at the right level. Instead of generic advice, this book provides a personalized route through coding exercises and projects that match your pace and ambitions.
2025·50-300 pages·Computer Science, Programming Fundamentals, Project-Based Learning, Algorithm Design, Code Optimization

This personalized book explores focused programming projects and exercises designed to boost your coding proficiency rapidly. It examines essential concepts and practical techniques tailored to your background and goals, ensuring you engage with material most relevant to your interests. The content reveals a pathway through progressively challenging tasks, matching your current skills and desired growth areas. Through this tailored approach, you can deepen your understanding and sharpen your programming abilities efficiently. By concentrating on hands-on practice, the book creates a customized learning journey that bridges expert knowledge with your unique pace and objectives. This focused exploration nurtures both confidence and competence in coding.

Tailored Content
Skill Acceleration
1,000+ Happy Readers
Hilary Mason, a data scientist and founder known for her work in machine learning and data-driven companies, highlights how this book turns programming into a series of rewarding moments. She shares, "The best part of programming is the triumph of seeing the machine do something useful. Automate the Boring Stuff with Python frames all of programming as these small triumphs; it makes the boring fun." Her experience underlines how this book transforms tedious computer tasks into manageable projects, making it a valuable guide for anyone eager to boost productivity through automation. Following her insights, Mashable praises its practical lessons for office and academic users, reinforcing its broad appeal.
HM

Recommended by Hilary Mason

Data scientist and founder

The best part of programming is the triumph of seeing the machine do something useful. Automate the Boring Stuff with Python frames all of programming as these small triumphs; it makes the boring fun. (from Amazon)

What happens when a software developer dedicated to teaching beginners tackles automation? Al Sweigart created this guide to help you write Python programs that handle tedious tasks like renaming files, filling spreadsheets, or scraping web data. You’ll learn Python basics and practical skills like input validation, Gmail automation, and working with PDFs, all built around making your daily computer work easier. This book suits anyone new to coding who wants to stop wasting hours on repetitive tasks and start making their computer do the heavy lifting for them.

View on Amazon
Best for improving existing code design
David Heinemeier Hansson, creator of Ruby on Rails and CTO of Basecamp, is a highly respected figure in software development whose endorsement adds significant weight to this book's authority. His expertise in building scalable web applications underscores why he values Martin Fowler's approach to improving existing code design. Alongside him, Steve Yegge, an influential programmer and blogger, further confirms the book’s relevance to developers seeking to elevate their coding practices. Their combined recognition highlights this work as a key resource for anyone serious about software craftsmanship.
DH

Recommended by David Heinemeier Hansson

Creator of Ruby on Rails, Founder & CTO of Basecamp

Martin Fowler's decades of experience as Chief Scientist at ThoughtWorks inspired this book that reshaped how developers approach existing code. You gain a clear understanding of identifying "code smells" and practical refactoring techniques that improve code readability and maintainability without altering functionality. The book includes updated refactorings with JavaScript and functional programming examples, making it relevant beyond traditional object-oriented paradigms. If you're aiming to write cleaner, more adaptable software and want to deepen your grasp of software design principles, this book guides you methodically through the process.

View on Amazon
Best for quantum computing insights
The New York Times, known for its comprehensive coverage of cutting-edge technology, highlights Michio Kaku’s skill in linking the history of computing with the emerging quantum revolution. Their review notes, "Kaku spends much of [Quantum Supremacy] recounting the history of computing, bringing listeners back to the Turing machine and the invention of transistors as crucial foundations. That mind-blowing future is the focus. . . . [Kaku's] lucid prose and thought process make abundant sense of this technological turning point." This perspective not only grounds you in the evolution of technology but also clarifies why quantum computing is poised to reshape industries. Science echoes this sentiment, praising Kaku’s ability to clear up common misconceptions and make complex science approachable, making this book an important read for anyone eager to grasp the next wave in computer science.

Recommended by The New York Times

Kaku spends much of [Quantum Supremacy] recounting the history of computing, bringing listeners back to the Turing machine and the invention of transistors as crucial foundations. That mind-blowing future is the focus. . . . [Kaku's] lucid prose and thought process make abundant sense of this technological turning point. (from Amazon)

Michio Kaku, a physics professor at the City University of New York and cofounder of string field theory, brings his deep expertise to unravel the complexities of quantum computing in this book. You learn how quantum computers operate at an atomic level and why this shift from silicon chips signals a new era in computing power. The book explores practical implications, such as advancements in medicine, energy, and environmental science, with clear explanations and helpful metaphors that make difficult concepts accessible. If you want to understand the scientific and technological forces shaping the future, this book offers a thorough and engaging perspective without oversimplifying the challenges.

New York Times Bestseller
View on Amazon
Best for modern JavaScript learners
Brad Traversy, a respected full stack web developer and educator known for his comprehensive coding tutorials, highlights this book as a strong resource for those beyond the beginner stage. He points out that while it may not be ideal for novices, its depth offers substantial learning for those ready to deepen their JavaScript skills. Traversy’s endorsement comes from extensive experience teaching web development, making his perspective particularly valuable for serious learners seeking a thorough understanding of modern JavaScript programming.
BT

Recommended by Brad Traversy

Full stack web developer and online educator

@EddyVinckk @adamudev @DThompsonDev @florinpop1705 @umaryusufkd @JSJabber I agree. Eloquent JS is a great book, but not the best for beginners (from X)

What if everything you knew about learning JavaScript was challenged by Marijn Haverbeke’s approach? This book dives deep into the language’s core, focusing on writing clear, effective code through practical projects like a robot simulation and a pixel art editor. You'll learn fundamental programming concepts, from control structures and functions to asynchronous programming and browser scripting, all grounded in modern JavaScript features like arrow functions and async/await. If you're ready to move beyond surface-level tutorials and truly understand how JavaScript powers web applications, this book will sharpen your skills and broaden your perspective. It’s a solid fit for those comfortable with basic coding looking to build real-world programming fluency.

View on Amazon
Best for SQL beginners and analysts
BookAuthority, a respected publication in book curation, highlights this guide as "one of the best Databases books of all time" and praises it for its thorough coverage of relational databases. Their endorsement reflects the book's solid grounding in practical SQL skills essential for managing complex data. If you're looking to build foundational knowledge in databases and SQL programming, this guide offers a clear path drawn from Walter Shields’ extensive real-world experience.

Recommended by BookAuthority

One of the best Databases books of all time One of the best Relational Databases books of all time (from Amazon)

After nearly two decades working with SQL at major organizations like Target and NYC Transit Authority, Walter Shields developed this book to demystify database management for newcomers. You’ll get clear explanations of how databases function, along with practical guidance on writing key SQL queries to retrieve and analyze data effectively. The book includes helpful visuals and examples that make abstract concepts tangible, such as navigating relational databases and crafting queries to answer real business questions. Whether you’re a developer expanding your skills or a manager seeking to understand data-driven decision-making, this guide lays out the essentials without jargon or unnecessary complexity.

View on Amazon
Best for understanding computer architecture
Jonathan E. Steinhart has designed graphics hardware and software and built systems for leading companies like Apple and Intel. His deep technical background informs this book, which unpacks the foundational concepts behind how computers operate and how programs execute at the hardware level. Drawing from decades of experience, Steinhart offers readers a path to writing more effective and efficient code by truly understanding what happens inside the machine.
2019·504 pages·Computer Science, Computer Architecture, Programming Fundamentals, Hardware Design, Software Optimization

Jonathan E. Steinhart’s extensive experience designing graphics hardware and software shines through in this detailed exploration of what happens beneath the surface when code runs on a machine. You’ll gain a clear understanding of computer hardware fundamentals like logic gates and memory, and see why aligning your programs with hardware architecture can boost performance and security. Chapters on converting software into machine language and efficiency techniques such as loop invariance provide concrete skills for writing better code. This book suits programmers eager to deepen their technical insight and avoid common pitfalls that lead to bugs or vulnerabilities.

View on Amazon
Best for aspiring professional programmers
BookAuthority, known for curating top books in software and technology, highlights this title as "One of the best Software Design books of all time." Their recognition carries weight for anyone seeking reliable guidance in programming. This endorsement reflects the book’s practical depth, helping you transition from coding basics to professional software engineering skills with confidence.

Recommended by BookAuthority

One of the best Software Design books of all time (from Amazon)

What started as Cory Althoff's personal struggle to bridge the gap between learning to code and working professionally became this guide for aspiring programmers. You’ll begin with Python fundamentals and advance through object-oriented programming, version control, and essential tools like Git and Bash. The book also tackles core Computer Science concepts such as data structures and algorithms, culminating in practical advice for coding best practices and job preparation. This approach benefits anyone serious about moving beyond hobbyist coding to a sustainable software engineering career.

View on Amazon
Best for comprehensive deep learning theory
Satya Nadella, CEO of Microsoft, offers a strong endorsement that resonates given his leadership at one of the world’s leading tech companies deeply invested in AI innovation. His recognition signals the book’s authority and relevance for those serious about understanding deep learning comprehensively. Alongside him, Craig Brown shares his journey exploring the book’s content through his blog, reflecting the value it holds for professionals bridging technology and business. This blend of perspectives highlights the book’s appeal to both researchers and practitioners aiming to master deep learning's complexities.
SN

Recommended by Satya Nadella

CEO of Microsoft

Deep Learning (Adaptive Computation and Machine Learning series) book cover

by Ian Goodfellow, Yoshua Bengio, Aaron Courville··You?

2016·800 pages·Deep Learning, Computer Science, Machine Learning, Neural Networks, Convolutional Networks

When Ian Goodfellow, Yoshua Bengio, and Aaron Courville combined their deep expertise in machine learning and academia, they crafted a resource that goes beyond introductory texts. You get a rigorous yet accessible exploration of deep learning's mathematical foundations—covering linear algebra, probability, and numerical computation—along with practical techniques like convolutional networks and sequence modeling. The book also surveys diverse applications from natural language processing to bioinformatics, making it ideal if you're aiming to build both theoretical understanding and applied skills in this fast-evolving field. Chapters on structured probabilistic models and generative models give you insight into cutting-edge research themes, though this is best suited for those with some prior grounding in computer science or statistics.

View on Amazon
Best for applied deep learning with Python
François Chollet is a software engineer at Google and creator of the Keras deep-learning library. With extensive contributions to the TensorFlow framework and research published at major AI conferences, Chollet brings authoritative expertise to this book. His focus on computer vision and machine learning applications informs the clear explanations and practical examples that guide you from foundational concepts to advanced deep learning techniques using Python.
Deep Learning with Python book cover

by Francois Chollet··You?

When François Chollet first realized how deep learning could reshape software development, he set out to demystify this complex field using Python and Keras, the library he created. This book guides you through the fundamentals of neural networks and machine learning, then advances to practical implementations in computer vision and natural language processing. You’ll gain hands-on experience with image classification models, sequence processing, and generative techniques like neural style transfer. If you’re comfortable with Python but new to machine learning frameworks, this book offers a clear path to mastering deep learning concepts and applying them to real projects.

View on Amazon
Best for compiler construction experts
Jim Larus, a distinguished researcher at Microsoft Research, values this book for its blend of established methods and innovative algorithms in compiler construction. He discovered it while seeking comprehensive resources during complex compiler development projects. As he notes, "Keith Cooper and Linda Torczon are leading compilers researchers who have also built several state-of-the-art compilers. This book adeptly spans both worlds, by explaining both time-tested techniques and new algorithms, and by providing practical advice on engineering and constructing a compiler." Larus’s endorsement reflects the book’s ability to clarify intricate concepts and guide engineers through building sophisticated compilers, making it a recommended read if you want to deepen your expertise in this field.

Recommended by Jim Larus

Microsoft Research expert on compilers

Keith Cooper and Linda Torczon are leading compilers researchers who have also built several state-of-the-art compilers. This book adeptly spans both worlds, by explaining both time-tested techniques and new algorithms, and by providing practical advice on engineering and constructing a compiler. Engineering a Compiler is a rich survey and exposition of the important techniques necessary to build a modern compiler. (from Amazon)

Engineering: A Compiler book cover

by Keith D. Cooper, Linda Torczon··You?

2011·824 pages·Compilation, Compiler, Computer Science, Code Optimization, Code Generation

Keith Cooper, a Doerr Professor at Rice University, and Linda Torczon, a senior research scientist, bring firsthand expertise from their work on the Massively Scalar Compiler Project to this detailed guide on compiler construction. You’ll gain a solid grasp of key techniques like static single assignment form, instruction scheduling, and graph-coloring register allocation, all essential for building modern compilers. The book balances foundational concepts with practical insights drawn from the authors’ extensive research and development experience, making it suitable for those aiming to deepen their technical understanding. If you’re involved in compiler design or want to master advanced code optimization and generation techniques, this book offers clear explanations backed by examples from multiple programming languages.

View on Amazon
Best for writing maintainable software
Robert C. Martin, also known as Uncle Bob, is a renowned software engineer and co-founder of the Agile Alliance with decades of experience in software development. His advocacy for agile methodologies and clean coding practices underpins this book, which distills his insights on writing maintainable, efficient code. Martin’s influence on the software engineering community is evident in how this book guides you to rethink your coding values and improve your craft through practical examples and principles.

Drawing from decades of software engineering expertise, Robert C. Martin offers a deep dive into what it means to write code that’s not just functional but clean and maintainable. In this book, you’ll learn how to recognize the subtle differences between good and bad code, master naming conventions, structure functions and classes effectively, and implement robust error handling without cluttering your logic. The book’s case studies challenge you to transform messy codebases into elegant solutions, reinforcing the craft of programming beyond mere syntax. If you’re committed to improving your software craftsmanship, this book provides concrete methods to elevate your coding discipline.

View on Amazon

Get Your Personal Computer Science Strategy

Stop following generic advice. Get targeted learning tailored to you in 10 minutes.

Tailored learning paths
Focused skill building
Accelerated progress

Trusted by top Computer Science professionals and educators

Computer Science Mastery Blueprint
30-Day Coding Accelerator
Emerging Tech Trends Code
Insider Developer Secrets

Conclusion

These 16 books collectively cover the theoretical roots, practical programming, and emerging frontiers of Computer Science. Whether you're wrestling with algorithms, diving into machine learning, or refining your coding craftsmanship, there’s guidance here for every ambition.

If you're starting out, Python Crash Course and Automate the Boring Stuff with Python offer accessible, project-driven introductions. For those seeking to deepen algorithmic rigor, The Art of Computer Programming boxed set is unmatched. Meanwhile, professionals aiming for cleaner, maintainable code should turn to Clean Code and Refactoring.

For a more personal learning path, you can create a personalized Computer Science book that tailors these foundational concepts to your unique context. These books can help you accelerate your learning journey and build real expertise efficiently.

Frequently Asked Questions

I'm overwhelmed by choice – which book should I start with?

If you're new to programming, Python Crash Course or Automate the Boring Stuff with Python are excellent starting points. They balance theory and hands-on projects to build confidence quickly.

Are these books too advanced for someone new to Computer Science?

While some, like The Art of Computer Programming, are deep and demanding, others like The Self-Taught Programmer and Eloquent JavaScript can guide beginners through core concepts.

What's the best order to read these books?

Begin with practical introductions such as Python Crash Course, then progress to foundational theory with Structure and Interpretation of Computer Programs and Art of Computer Programming.

Should I start with the newest book or a classic?

Classics like Knuth's Art of Computer Programming remain relevant for understanding fundamentals, while newer books like Hands-On Machine Learning cover cutting-edge applications.

Can I skip around or do I need to read them cover to cover?

You can tailor your reading based on needs. Some books, like Clean Code, are great for specific topics, while others like Deep Learning are best read thoroughly.

How can I apply these expert books to my personal learning goals?

These expert books offer solid foundations, but creating a personalized Computer Science book helps bridge general principles with your unique background and goals for focused learning.

📚 Love this book list?

Help fellow book lovers discover great books, share this curated list with others!