Discover useful tools, tutorials, and helpful resources organized by category
Beej’s Guide to Network Programming by Brian “Beej” Hall is one of the most approachable and widely recommended introductions to socket programming and low-level networking in C. Written in a friendly, humorous, and highly practical style, the book breaks down complex networking concepts like TCP/IP, sockets, client-server communication, and IPv6 into clear explanations backed by real working code examples. Rather than overwhelming readers with theory, Beej focuses on helping programmers quickly understand how network communication actually works under the hood, making it especially valuable for developers who want to build a strong foundation in systems programming, backend development, or networked applications. Despite being beginner-friendly, the guide remains a respected reference among experienced developers and has been widely used for decades by students, engineers, and hobbyists alike.
The article explains why modern CPUs use multiple cache levels (L1, L2, L3) instead of one large cache. The key idea is that cache design involves trade-offs: smaller caches can be placed closer to the CPU core and accessed extremely quickly, while larger caches are slower but more space-efficient and can store much more data. By organizing caches in layers—small and very fast near the core, and larger but slower further away—CPUs balance speed, capacity, power consumption, and coordination between cores. The result is a hierarchy that keeps the most frequently used data close to the processor while still providing access to larger pools of memory when needed.
The Netflix Tech Blog is the official engineering journal from Netflix where its engineers share real technical insights about how they build and run one of the largest streaming platforms in the world; it covers everything from distributed system architecture and cloud scalability to data processing, personalization algorithms, video encoding, resilience practices, and other hard engineering problems the company encounters as it delivers high-performance streaming to audiences globally.
clig.dev is an open-source guide dedicated to the art of building high-quality command-line tools that balance traditional Unix principles with modern usability. Rather than just listing technical specs, the site provides a thoughtful framework for "human-first" design, covering everything from empathetic error messages and consistent flag naming to the nuances of composability and subcommands. It serves as a go-to manifesto for developers who want to move beyond basic functionality and create CLI programs that are genuinely intuitive, robust, and delightful for other humans to use.
This document from Google discusses performance tuning principles, emphasizing that small speed improvements are valuable and should be considered early in development to avoid larger problems later; it suggests estimating performance impacts and using back-of-the-envelope calculations to make informed decisions.
Tsoding is a programming-focused creator whose YouTube content (especially under the Tsoding Daily channel) revolves around live-coding sessions, deep dives into software and game development, and explorations of languages like C, Rust, and other low-level technologies, often featuring long streams where he builds interesting projects, discusses implementation details, and shares his thought processes as he codes.
Qwen3-Max 11:23 AM Ah, my mistake—thank you for the correction! Programming Pearls by Jon Bentley is a classic collection of insightful essays that explore the art and science of writing efficient, elegant, and clever code. Originally based on Bentley’s columns in Communications of the ACM, the book presents real-world programming problems and walks through the thought process of solving them—emphasizing algorithmic thinking, data structure selection, code tuning, and problem refinement over rote syntax. With a focus on clarity, simplicity, and performance, Bentley teaches programmers how to think deeply about their solutions, often revealing surprising optimizations and elegant approaches. Whether you're wrestling with sorting algorithms, memory constraints, or debugging tricky edge cases, Programming Pearls offers timeless lessons that sharpen your problem-solving instincts and remind you that great programming is as much about insight as it is about implementation.
This influential textbook takes programming far beyond syntax and language features to focus on the deeper ideas of abstraction, processes, and system design. Through the Scheme dialect of Lisp it covers how to build powerful procedures, represent and manipulate data, manage state and control, and even model computation itself from interpreters to compilers. Its goal is not just to teach how to code, but to teach how to think about programming: how to build large, maintainable systems, how to control complexity, and how the language you use shapes how you think. More than a “how-to”, it reads like an intellectual exploration of what programming is and could be—challenging, rigorous, and deeply rewarding for anyone serious about software.
Introduction to Algorithms provides a sweeping, rigorous, and deeply structured exploration of algorithm design and analysis. It balances mathematical proof and intuition to explain core topics—sorting, graph algorithms, data structures, dynamic programming, greedy methods, and NP-completeness—while also introducing newer material like online algorithms, matchings in bipartite graphs, and machine learning applications. With pseudocode that’s largely language-agnostic, each chapter stands alone and includes exercises that challenge the reader, making the book both a foundational teaching text and a long-term reference for professionals.
The Pragmatic Podcast (a part of The Pragmatic Engineer) dives into the inner workings of tech, bringing real-world insights from engineers and leaders at big tech companies and startups alike. It unpacks how software gets built, scaled, maintained, and organized—drawing from firsthand experience to guide engineers, architects, and tech managers. By blending stories, lessons learned, and interviews, it helps listeners make sense of the complex challenges in software and system design.
Software Architecture: The Hard Parts dives deeply into the thorny decisions and trade-offs inherent in designing distributed systems. The authors—Neal Ford, Mark Richards, Pramod Sadalage, and Zhamak Dehghani—use a continuous story (the “Sysops Squad”) to explore topics like service granularity, data ownership, distributed transactions (sagas), workflows, contracts, and decoupling strategies. Rather than prescribing “best practices,” the book emphasizes a structured method for weighing trade-offs and articulating architectural reasoning. Throughout, it helps architects document decisions (via ADRs), analyze coupling, manage consistency vs availability tensions, and select patterns suited to their context. The result is a practical yet conceptually rich guide to the challenges that real systems architects face in splitting, connecting, and evolving distributed architectures.
The Staff Engineer’s Path helps senior individual contributors transition into staff engineering roles by unpacking what such roles actually entail across organizations. It lays out three core pillars—big-picture thinking, effective execution, and elevating other engineers—and combines those with practical advice on defining your scope, choosing impactful work, and influencing without formal authority. Reilly emphasizes clarity around expectations, writing strategy, and aligning with leadership, showing how staff engineers can set technical standards and drive meaningful change while continuing to grow in their domain.
Computer Systems: A Programmer’s Perspective (3rd Edition) is a systems textbook that explains how computers work from a programmer’s point of view. It covers a wide range of topics, from data representation, machine-level code, processor architecture, program optimization, memory hierarchy, linking and loading, exception control flow, virtual memory, and system-level I/O, to network and concurrent programming. The book emphasizes the idea that “understanding systems makes you a better programmer,” and reinforces this through hands-on labs and exercises that help readers turn theory into practical skills.
Refactoring: Improving the Design of Existing Code (2nd Edition, ISBN 0134757599) by Martin Fowler is a classic guide that teaches programmers how to improve the internal structure of existing code without changing its observable behavior. This updated edition adds modern examples (including JavaScript), expands the catalog of refactorings, and covers topics like code smells, core refactoring principles, test-driven development, modular design, restructuring conditional logic, data organization, API design, and addressing misuse of inheritance. Fowler emphasizes that refactoring should be a continuous part of the development process, carried out in small, verifiable steps to make code more understandable, flexible, and maintainable.
Martin Fowler’s website is a long-standing hub for software developers and architects, featuring his deep writings on topics like refactoring, agile practices, enterprise architecture, and domain modeling, alongside contributions from other authors. While technology evolves, the principles and practices he discusses remain highly relevant and valuable for modern software development.
The Art of Computer Programming by Donald Knuth is a multi-volume, foundational work that dives deeply into algorithms, data structures, and the precise mathematical analysis of computational methods. It was originally meant to be a single book, but grew into a projected seven-volume series; volumes 1–3 and parts of volume 4 have been published so far. Knuth uses a hypothetical assembly language (MIX, later moving toward MMIX) to express algorithms so efficiency and memory costs can be rigorously reasoned about. The work is famed not just for breadth, but for its mathematical rigor, challenging exercises, continuous updates, and Knuth’s dedication to errata and precision.
The Pragmatic Programmer (20th Anniversary Edition) by David Thomas and Andrew Hunt is a timeless guide that blends practical wisdom with philosophy, aimed at helping developers become more thoughtful, adaptable, and effective. It emphasizes principles over tools: things like owning your work, continuous learning, avoiding duplication (DRY), decoupling, writing flexible code, and leveraging good tools like version control and automation.
Code Complete: A Practical Handbook of Software Construction by Steve McConnell is a comprehensive guide for developers who want to write high-quality, maintainable code. It argues that software construction (i.e. the detailed work of coding, debugging, testing, and integration) should be front and center in a project, and that improving code quality early leads to faster and more reliable delivery. The book covers both micro-level techniques (good naming, clear routines, minimizing complexity, defensive programming) and macro considerations (architecture, design decisions, managing change), blending theory with real examples. It’s often praised as one of the definitive “how to write great code” handbooks for software engineers.
This is the full lecture video series for MIT’s undergraduate algorithms course, taught by Charles Leiserson and Erik Demaine. The course covers a wide spectrum of fundamental algorithmic topics: from basic sorting algorithms, asymptotic analysis, divide & conquer, data structures (trees, hashing), dynamic programming, graph algorithms (shortest paths, MST), to more advanced topics in the later lectures. Though a couple of lectures (20 and 21) are not available in video form, most sessions are online, along with supporting readings, problem sets, and course materials. Altogether it’s a deeply valuable resource for anyone who wants a rigorous, structured introduction (or refresher) to algorithmic theory and practice.
The Missing Semester of Your CS Education (MIT) is a course designed to teach the “missing” practical tools that many computer science curricula skip: mastering the shell, version control (Git), editors like Vim, scripting, debugging, profiling, data wrangling, security, and more. It’s meant to smooth out the friction engineers often face when they spend tons of time fighting their tools instead of using them.
Max’s blog is a deep dive into the world of compilers, programming languages, and low-level systems. He regularly writes about topics like register allocation, intermediate representations (IRs), optimizations, garbage collection, tooling, and more, often with hands-on examples and reflections. The posts are technical but accessible, with a focus on both theory and practical implementation. Also worth noting: the source for much of the blog is open-source, and he invites community feedback and corrections.
David Heinemeier Hansson — creator of Ruby on Rails, CTO/co-owner of 37signals, and author — uses his blog to share sharp thoughts on tech, business, software development, remote work, and culture. His writing often challenges common industry norms: simplicity over complexity, profit and sustainability over hype, the costs of constant growth, and doing meaningful work without sacrificing quality of life. Posts range from reflections on product architecture and open source, to social commentary, ethics, and how teams should best operate.
This paper demystifies the complexities of the memory subsystem on modern commodity hardware—laying out the evolution of memory, the rationale behind CPU caches, and the distinct roles of RAM, memory controllers, and cache hierarchies. It walks programmers through how caches—L1, L2, L3—and virtual memory operate, illustrates memory access latency with insightful diagrams, and delves into NUMA considerations. Crucially, it equips developers with practical strategies to write performant code by aligning data structures, leveraging locality, understanding concurrency impacts, and optimizing for cache behavior.
The Changelog Podcast is a dynamic weekly show for software enthusiasts, blending concise developer news, in-depth technical interviews, and a relaxed weekend-style talk show. Hosted by Adam Stacoviak and Jerod Santo, it delivers engaging discussions with industry leaders, innovative thinkers, and open-source contributors—making it a go-to resource for those passionate about the evolving tech landscape.
The Netflix Engineering YouTube channel showcases the innovative technical efforts behind one of the world’s largest streaming platforms, offering engineers and enthusiasts an inside look at topics like chaos engineering, UI and studio systems, and large-scale experimentation frameworks. Through tech talks and behind-the-scenes walkthroughs, the channel highlights how Netflix builds resilient infrastructure and tools that support its 200+ million users while maintaining rapid iteration and operational excellence.
Julia Evans is a software developer based in Montreal who shares her genuine delight for programming through clear, curiosity-driven writing. Her blog features deep yet accessible explorations of low-level systems—covering topics like kernels, traceroute, gzip, and databases—often accompanied by her signature hand-drawn zines that make traditionally intimidating technical subjects approachable. Julia regularly writes posts that demystify complex concepts, reflecting her belief that clarity, curiosity, and humility beat sounding like a know-it-all.
Yegor Bugayenko, commonly known as yegor256, maintains a widely respected tech blog focused on practical insights in object-oriented programming, software engineering ethics, and developer career growth. As a seasoned software architect, author of Elegant Objects and Angry Tests, and founder of projects like Zerocracy and Zold, Yegor blends deep technical reflection with hands-on experience. His writing—often updated weekly—covers topics like testing, type systems, and coding philosophy with clarity and provocation, aimed at elevating how developers think about code, craft, and software systems.
Brendan Gregg’s blog is a treasure trove for systems performance enthusiasts, offering a steady stream of deep technical posts focused on Linux performance, eBPF observability, cloud computing, and AI-enabled tooling. As an Intel Fellow and globally respected expert—formerly with Netflix and Sun Microsystems—Gregg often explores topics like flame graphs, performance methodologies, and real-world debugging strategies, all delivered with clarity and backed by decades of experience.
Ars Technica—Latin for “art of technology”—is a revered technology news and analysis site founded in 1998 by Ken Fisher and Jon Stokes, covering topics ranging from hardware and software to science, policy, and gaming. Now owned by Condé Nast, it’s known for its deep-dive reporting, long-form features, and tech-savvy audience.
Stripe’s YouTube channel serves as a central hub for content related to Stripe’s products, developer tools, and industry insights. The channel features a variety of videos, including interviews with founders, builders, and leaders, as well as discussions on topics like AI pricing strategies and the future of payments. One notable video is a conversation with Sir Jony Ive, where he joins Stripe CEO Patrick Collison for a fireside chat at Stripe Sessions. Additionally, the channel offers tutorials and demos, such as a comprehensive guide on Stripe Webhooks using Next.js. With over 70,000 subscribers and nearly 300 videos, the channel is a valuable resource for developers and businesses interested in Stripe’s ecosystem.
Daniel Lemire’s Blog is a long-running, highly respected resource for deep dives into software performance, data engineering, and algorithm optimization. Authored by Daniel Lemire, a computer science professor at the University of Quebec and one of GitHub’s top 1,000 developers, the blog covers topics such as SIMD vectorization, memory access patterns, and practical coding techniques. Lemire’s writing is known for its clarity and rigor, often accompanied by open-source code examples and performance benchmarks. The blog is also among the top 50 most popular blogs on Hacker News.
Coding Horror is the personal blog of Jeff Atwood, co-founder of Stack Overflow and Discourse, where he shares reflections on software development, programming culture, and the human side of tech. Launched in 2004, the blog features a mix of technical insights, productivity advice, and social commentary, often infused with Atwood’s signature wit and curiosity. It’s known for its thoughtful, long-form essays and has influenced a generation of developers seeking to improve both their craft and their perspective on the profession.
The Clean Coder Blog is the personal blog of Robert C. Martin (Uncle Bob), a renowned software engineer and author, where he shares insights on software craftsmanship, design principles, and programming ethics. The blog features articles on topics such as functional programming, clean architecture, and the importance of professionalism in software development. Uncle Bob emphasizes the significance of writing clean, maintainable code and advocates for practices like Test-Driven Development (TDD) and the SOLID principles.
Salvatore Sanfilippo—better known in the tech world as antirez, the original creator of Redis—maintains antirez.com as a personal blog where he blends deep technical reflections, distributed systems insights, and candid commentary on software development. Through posts covering topics like performance theory, algorithmic design, life after Redis stewardship, and licensing philosophy, the site offers a rare, unfiltered glimpse into the mind of a developer who values simplicity, craftsmanship, and open-source ethos.
Coding Blocks is an educational platform offering podcast-driven insights and hands-on programming courses—primarily focused on data structures, algorithms, full-stack development, and interview preparation. With expert mentors, real-time doubt support, structured project-based learning, and placement assistance, it’s a resource designed for programmers looking to level up their skills and career readiness.
Founded in 1899 and now an independent media company owned by the Massachusetts Institute of Technology, MIT Technology Review delivers authoritative, in-depth reporting on emerging technologies—including AI, biotech, energy, and policy—that helps informed readers anticipate and understand tech’s evolving impact.
LWN.net (originally Linux Weekly News) is a technical webzine launched in 1998 that delivers in-depth, analyst-driven coverage of Linux and open-source software development. It publishes daily and weekly content—including kernel development insights, security notifications, distro updates, and community happenings—often accompanied by thoughtful discussion threads. Much of the newest, longer articles are initially reserved for subscribers and then become freely available after two weeks, a model that allows LWN to remain both independent and sustainably reader-supported.
DEV (stylized as dev.to) is a welcoming, open-source platform where software developers—ranging from complete beginners to seasoned practitioners—write articles, participate in discussions, and grow their professional profiles. Built on the open Forem framework, it emphasizes inclusive collaboration and transparent community-driven learning, enabling anyone to share insights, ask questions, or craft long-form technical stories in an environment grounded in respect and constructive feedback.
r/programming is a long-standing, high-quality subreddit dedicated to thoughtful news and discussions in software development. Launched in 2006, it boasts around 3.7 million members and serves as a curated space for technical write-ups, industry insights, new technologies, and programming philosophy—avoiding support requests or promotional content. The community is moderated to maintain relevance and clarity, with rules disallowing generic “I made this” posts, surveys, or job listings, and encouraging substantive contributions instead. Its content quality drops now as more and more promotional content come in and loose moderation.
HackerNoon is a vibrant, community-driven tech publishing platform founded in 2016 that empowers technologists worldwide to share, learn, and explore stories across programming, AI, startups, Web3, cybersecurity, and more. It hosts over 45,000 contributing writers and sees some 4 million monthly readers, offering a more inclusive and flexible publishing experience than traditional media—backed by a unique hybrid of AI tools, Web3-driven transparency, and human editorial oversight that supports fast publishing, diverse voices, and high-quality content.
Slashdot, launched in 1997 by Rob “CmdrTaco” Malda, pioneered the concept of collaborative tech news by combining editor-curated posts with a lively user comment ecosystem, embodying its tagline: “News for Nerds. Stuff that Matters.” It quickly gained traction among the tech community, becoming known for the “Slashdot Effect”—a sudden spike in traffic to linked sites. Over the years, its influence has continued through its moderation system, community engagement tools, and longevity, making it one of the oldest, most enduring tech news and discussion platforms on the web.
The Uber Engineering Blog offers a behind-the-scenes look at the innovative technology powering Uber’s global operations. Whether you’re interested in Data and Machine Learning, Backend systems, Mobile development, Security, Web interfaces, or cutting-edge topics like Uber AI, this blog covers them all. Recent articles highlight how Uber optimizes services at scale—from migrating massive datasets and accelerating data processing pipelines to reducing operational costs with generative AI tools like PerfInsights and deploying conversational data agents like Finch. It’s a smart, engineering-forward resource that reveals how Uber continuously refines its platform to meet evolving technical challenges and global demand.
Lobsters is a computing-focused community centered around link aggregation and discussion, launched on July 3rd, 2012. New user needs to be invited to join and submit links. It also provides tags/categories for the links submitted.
A tech news aggregator with links submitted by users. Have very insightful and update-to-date news from all around the world curated for tech lovers. Discussions there are also very interesting. Should be daily visit site.