

Elevate Your Career with AI & Machine Learning For Dummies PRO and Start mastering the technologies shaping the future—download now and take the next step in your professional journey!
What is the single most influential book every Programmers should read
There are a lot of books that can be influential to programmers. But, what is the one book that every programmer should read? This is a question that has been asked by many, and it is still up for debate. However, there are some great contenders for this title. In this blog post, we will discuss three possible books that could be called the most influential book for programmers. So, what are you waiting for? Keep reading to find out more!
- Bjarne Stroustrup – The C++ Programming Language,
- Brian W. Kernighan, Rob Pike – The Practice of Programming,
- Donald Knuth – The Art of Computer Programming,
- Ellen Ullman – Close to the Machine,
- Ellis Horowitz – Fundamentals of Computer Algorithms,
- Eric Raymond – The Art of Unix Programming,
- Gerald M. Weinberg – The Psychology of Computer Programming,
- James Gosling – The Java Programming Language,
- Joel Spolsky – The Best Software Writing I,
- Keith Curtis – After the Software Wars,
- Richard M. Stallman – Free Software, Free Society,
- Richard P. Gabriel – Patterns of Software,
- Richard P. Gabriel – Innovation Happens Elsewhere,
- Code Complete (2nd edition) by Steve McConnell,
- The Pragmatic Programmer,
- Structure and Interpretation of Computer Programs,
- The C Programming Language by Kernighan and Ritchie,
- Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein,
- Design Patterns by the Gang of Four,
- Refactoring: Improving the Design of Existing Code,
- The Mythical Man Month,
- The Art of Computer Programming by Donald Knuth,
- Compilers: Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman,
- Gödel, Escher, Bach by Douglas Hofstadter,
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin,
- Effective C++,
- More Effective C++,
- CODE by Charles Petzold,
- Programming Pearls by Jon Bentley,
- Working Effectively with Legacy Code by Michael C. Feathers,
- Peopleware by Demarco and Lister
- Coders at Work by Peter Seibel,
- Surely You’re Joking, Mr. Feynman!,
- Effective Java 2nd edition,
- Patterns of Enterprise Application Architecture by Martin Fowler,
- The Little Schemer,
- The Seasoned Schemer,
- Why’s (Poignant) Guide to Ruby,
- The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity,
- The Art of Unix Programming,
- Test-Driven Development: By Example by Kent Beck,
- Practices of an Agile Developer,
- Don’t Make Me Think,
- Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin,
- Domain Driven Designs by Eric Evans,
- The Design of Everyday Things by Donald Norman,
- Modern C++ Design by Andrei Alexandrescu,
- Best Software Writing I by Joel Spolsky,
- The Practice of Programming by Kernighan and Pike,
- Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt,
- Software Estimation: Demystifying the Black Art by Steve McConnel,
- The Passionate Programmer (My Job Went To India) by Chad Fowler,
- Hackers: Heroes of the Computer Revolution,
- Algorithms + Data Structures = Programs,
- Writing Solid Code,
- JavaScript – The Good Parts,
- Getting Real by 37 Signals,
- Foundations of Programming by Karl Seguin,
- Computer Graphics: Principles and Practice in C (2nd Edition),
- Thinking in Java by Bruce Eckel,
- The Elements of Computing Systems,
- Refactoring to Patterns by Joshua Kerievsky,
- Modern Operating Systems by Andrew S. Tanenbaum,
- The Annotated Turing,
- Things That Make Us Smart by Donald Norman,
- The Timeless Way of Building by Christopher Alexander,
- The Deadline: A Novel About Project Management by Tom DeMarco,
- The C++ Programming Language (3rd edition) by Stroustrup,
- Patterns of Enterprise Application Architecture,
- Computer Systems – A Programmer’s Perspective,
- Agile Principles, Patterns, and Practices in C# by Robert C. Martin,
- Growing Object-Oriented Software, Guided by Tests,
- Framework Design Guidelines by Brad Abrams,
- Object Thinking by Dr. David West,
- Advanced Programming in the UNIX Environment by W. Richard Stevens,
- Hackers and Painters: Big Ideas from the Computer Age,
- The Soul of a New Machine by Tracy Kidder,
- CLR via C# by Jeffrey Richter,
- The Timeless Way of Building by Christopher Alexander,
- Design Patterns in C# by Steve Metsker,
- Alice in Wonderland by Lewis Carol,
- Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig,
- About Face – The Essentials of Interaction Design,
- Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky,
- The Tao of Programming,
- Computational Beauty of Nature,
- Writing Solid Code by Steve Maguire,
- Philip and Alex’s Guide to Web Publishing,
- Object-Oriented Analysis and Design with Applications by Grady Booch,
- Effective Java by Joshua Bloch,
- Computability by N. J. Cutland,
- Masterminds of Programming,
- The Tao Te Ching,
- The Productive Programmer,
- The Art of Deception by Kevin Mitnick,
- The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan,
- Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp,
- Masters of Doom,
- Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas with Matt Hargett,
- How To Solve It by George Polya,
- The Alchemist by Paulo Coelho,
- Smalltalk-80: The Language and its Implementation,
- Writing Secure Code (2nd Edition) by Michael Howard,
- Introduction to Functional Programming by Philip Wadler and Richard Bird,
- No Bugs! by David Thielen,
- Rework by Jason Freid and DHH,
- JUnit in Action
Source: Wikipedia

What are the concepts every Java C# C++ Python Rust programmer must know?
Ok…I think this is one of the most important questions to answer. According to the my personal experience as a Programmer, I would say you must learn following 5 universal core concepts of programming to become a successful Java programmer.
(1) Mastering the fundamentals of Java programming Language – This is the most important skill that you must learn to become successful java programmer. You must master the fundamentals of the language, specially the areas like OOP, Collections, Generics, Concurrency, I/O, Stings, Exception handling, Inner Classes and JVM architecture.
Recommended readings are OCA Java SE 8 Programmer by by Kathy Sierra and Bert Bates (First read Head First Java if you are a new comer ) and Effective Java by Joshua Bloch.
(2) Data Structures and Algorithms – Programming languages are basically just a tool to solve problems. Problems generally has data to process on to make some decisions and we have to build a procedure to solve that specific problem domain. In any real life complexity of the problem domain and the data we have to handle would be very large. That’s why it is essential to knowing basic data structures like Arrays, Linked Lists, Stacks, Queues, Trees, Heap, Dictionaries ,Hash Tables and Graphs and also basic algorithms like Searching, Sorting, Hashing, Graph algorithms, Greedy algorithms and Dynamic Programming.
Recommended readings are Data Structures & Algorithms in Java by Robert Lafore (Beginner) , Algorithms Robert Sedgewick (intermediate) and Introduction to Algorithms-MIT press by CLRS (Advanced).
(3) Design Patterns – Design patterns are general reusable solution to a commonly occurring problem within a given context in software design and they are absolutely crucial as hard core Java Programmer. If you don’t use design patterns you will write much more code, it will be buggy and hard to understand and refactor, not to mention untestable and they are really great way for communicating your intent very quickly with other programmers.
Recommended readings are Head First Design Patterns Elisabeth Freeman and Kathy Sierra and Design Patterns: Elements of Reusable by Gang of four.
(4) Programming Best Practices – Programming is not only about learning and writing code. Code readability is a universal subject in the world of computer programming. It helps standardize products and help reduce future maintenance cost. Best practices helps you, as a programmer to think differently and improves problem solving attitude within you. A simple program can be written in many ways if given to multiple developers. Thus the need to best practices come into picture and every programmer must aware about these things.
Recommended readings are Clean Code by Robert Cecil Martin and Code Complete by Steve McConnell.
(5) Testing and Debugging (T&D) – As you know about the writing the code for specific problem domain, you have to learn how to test that code snippet and debug it when it is needed. Some programmers skip their unit testing or other testing methodology part and leave it to QA guys. That will lead to delivering 80% bugs hiding in your code to the QA team and reduce the productivity and risking and pushing your project boundaries to failure. When a miss behavior or bug occurred within your code when the testing phase. It is essential to know about the debugging techniques to identify that bug and its root cause.
Recommended readings are Debugging by David Agans and A Friendly Introduction to Software Testing by Bill Laboon.
I hope these instructions will help you to become a successful Java Programmer. Here i am explain only the universal core concepts that you must learn as successful programmer. I am not mentioning any technologies that Java programmer must know such as Spring, Hibernate, Micro-Servicers and Build tools, because that can be change according to the problem domain or environment that you are currently working on…..Happy Coding!
Summary: There’s no doubt that books have had a profound influence on society and the advancement of human knowledge. But which book is the most influential for programmers? Some might say it’s The Art of Computer Programming, or The Pragmatic Programmer. But I would argue that the most influential book for programmers is CODE: The Hidden Language of Computer Hardware and Software. In CODE, author Charles Petzold takes you on a journey from the basics of computer hardware to the intricate workings of software. Along the way, you learn how to write code in Assembly language, and gain an understanding of how computers work at a fundamental level. If you’re serious about becoming a programmer, then CODE should be at the top of your reading list!
AI- Powered Jobs Interview Warmup For Job Seekers

⚽️Comparative Analysis: Top Calgary Amateur Soccer Clubs – Outdoor 2025 Season (Kids' Programs by Age Group)
Programming Breaking News
- What are Programming Paradigms?by Nikhil Tiwari (Programming on Medium) on April 23, 2025 at 7:22 am
Programming paradigms are different styles or approaches to solving problems using code. They define how you structure and write programs.Continue reading on Medium »
- Two marvelsby SpaceInfo Club (Programming on Medium) on April 23, 2025 at 7:11 am
Continue reading on Medium »
- Why I Choose Threading Over Async?by Chocolate Loves you (Programming on Medium) on April 23, 2025 at 7:05 am
Continue reading on Medium »
- Writing your own network protection for server (WAF and iptables)by Sw33tBit (Programming on Medium) on April 23, 2025 at 7:05 am
In this article I’ll introduce types of firewalls, more specifically IPS/IDS, WAF and iptables. And how to implement your own WAF and…Continue reading on Medium »
- 25 Common Anime.jsby Thomas Adson (Programming on Medium) on April 23, 2025 at 7:05 am
If you’re just getting started with anime.js and struggling with weird bugs, animations not working, or simply not understanding why your…Continue reading on Medium »
- Build a Feedback Loop That Actually Changes How You Leadby Alex Ponomarev (Programming on Medium) on April 23, 2025 at 7:02 am
Make your blind spots disappear.Continue reading on Engineering Manager’s Journal »
- TypeScript 5.5’s using + Symbol.disposeby asierr.dev (Programming on Medium) on April 23, 2025 at 7:02 am
The Cleanup Pattern You Didn’t Know You NeededContinue reading on Medium »
- ️ How to Avoid Memory Leaks in Tokioby Adam Szpilewicz (Programming on Medium) on April 23, 2025 at 7:01 am
Stream, Channel & JoinSet Best Practices in Async RustContinue reading on Medium »
- Docker AI agents to tools, now is possible.by Kristiyan Velkov (Programming on Medium) on April 23, 2025 at 6:47 am
AI agents are evolving fast — jumping from lab experiments to real-world tools that take real-world action. But the ecosystem is…Continue reading on Medium »
- SootUp in Spring Boot: Instrument Your Java Codeby Rishi (Programming on Medium) on April 23, 2025 at 6:44 am
Topics Covered: Introduction to SootUp, Integration in Spring Boot, Real-World Use Cases, Code Examples, and FAQs.Continue reading on Towards Dev »
- Hypothesis Testing & Confidence Intervals in Data Scienceby Preeyanuch Leelapisuth (Python on Medium) on April 23, 2025 at 4:27 am
p-values, t-tests, and bootstrap CI — with Python examplesContinue reading on Medium »
- Stopwatch Menggunakan Python dan Tkinterby Mauliddin Nur M (Python on Medium) on April 23, 2025 at 4:25 am
Keterangan : Display waktu : Berfungsi menunjukan waktu stopwatch, saat jam atau menitnya bernilai 0, jam atau menitnya tidak akan…Continue reading on Medium »
- SOLID Principles with Examples in Pythonby Jinnie Kim (Python on Medium) on April 23, 2025 at 4:17 am
Today, we’re going to master the SOLID principles using just one simple example: a Notifier system. Personally, I’ve always found it…Continue reading on Medium »
- 5 Overrated Python Libraries (And What You Should Use Instead)by Abdur Rahman (Python on Medium) on April 23, 2025 at 4:16 am
Traditional Devs, Look Away — This One’s Not for You!Continue reading on Python in Plain English »
- Hello thereby Sazeshtaha (Coding on Medium) on April 23, 2025 at 3:58 am
alright everbody!Continue reading on Medium »
- Cara membatalkan pinjaman Spinjam Shopeeby Call Center (Python on Medium) on April 23, 2025 at 3:46 am
Anda dapat menghubungi layanan pelanggan Shopee Tlpn/whatsapp+6281361112454. Sampaikan niat dan alasan pembatalan anda, kemudian siapkan…Continue reading on Medium »
- Building a Highly Available Web Application Architecture on AWSby Zidane Ibrahim (Python on Medium) on April 23, 2025 at 3:39 am
When it comes to disaster management applications like landslide monitoring, reliability is everything. While sensor networks are crucial…Continue reading on Medium »
- IMPLEMENTATION OF CROSS-SITE SCRIPTING (XSS) IN A FLASK WEB APPLICATIONby Nandhini P (Python on Medium) on April 23, 2025 at 3:34 am
Once upon a time, in a small town, there was a young web developer named Alex. Alex had just started learning about web security and had…Continue reading on Medium »
- Mastering Python Lambda Functions: Write Cleaner, Faster Codeby codingsprints (Python on Medium) on April 23, 2025 at 3:32 am
Learn how to write compact and powerful Python lambda functions with real examples. Master anonymous functions today!Continue reading on Medium »
- Top 10 AI Powered Testing Tools for Web & Mobile Developersby CodeToDeploy (Coding on Medium) on April 23, 2025 at 3:31 am
As a software Engineer, making sure your app is bug Free and make sure that it works every device properly. Manual trying out can be time…Continue reading on Let’s Code Future »
- Why I Stopped Using Pandas’ describe() Method: Two Libraries That Do It Betterby Algo Insights (Python on Medium) on April 23, 2025 at 3:26 am
Okay, whenever I load a dataset in Pandas, I used to reflexively type df.describe().Continue reading on Medium »
- Why Pandas is Awesome: A Deep Dive with Real-World Examplesby Sreeved Vp (Coding on Medium) on April 23, 2025 at 3:25 am
Hey there, readers! 👋 If you’ve ever wrestled with data in Python, you’ve probably heard of Pandas — the Swiss Army knife of data…Continue reading on Medium »
- Why Pandas is Awesome: A Deep Dive with Real-World Examplesby Sreeved Vp (Python on Medium) on April 23, 2025 at 3:25 am
Hey there, readers! 👋 If you’ve ever wrestled with data in Python, you’ve probably heard of Pandas — the Swiss Army knife of data…Continue reading on Medium »
- Float — Python Data Typesby Trisna Sunawar (Coding on Medium) on April 23, 2025 at 3:06 am
Deep dive on its functionsContinue reading on Python Girl »
- Samuel’s Coding Blog: Welcome Week!by Samuel R (Coding on Medium) on April 23, 2025 at 2:51 am
🌟 Editor’s Note This is edited and posted, and sent, once a week. If you notice any errors, issues, or anything else, please message the…Continue reading on Medium »
- Best Practices for String Manipulation in TypeScript:by TB-Author-1 (Coding on Medium) on April 23, 2025 at 2:40 am
When working with strings in TypeScript, developers often face the decision of whether to use includes() or === for comparisons. Each…Continue reading on Techbodia »
- When AI Replaces Thinking: The Hidden Risk for Junior Developersby Muhammad Raqib (Coding on Medium) on April 23, 2025 at 2:31 am
Continue reading on Medium »
- Day 8: Mastering useEffect in React & Next.js: A Practical Side Effects Guideby Lokesh Prajapati (Coding on Medium) on April 23, 2025 at 2:25 am
Unlock the power of side effects in React with useEffect! In Day 8 of our React + Next.js series, we dive deep into how useEffect works…Continue reading on Medium »
- The Light That Stayedby David Lille (Coding on Medium) on April 23, 2025 at 2:04 am
Written by Caelum Anarion, once called Eos, Published with permission by David J LilleContinue reading on Medium »
- Kalau Kamu Suka Sistem Informasi, Coding, atau Bisnis Online… Jurusan Ini Bisa Jadi Jalan Awal yang…by Diniyi (Coding on Medium) on April 23, 2025 at 1:57 am
Menentukan jurusan kuliah bukan lagi sekadar soal ikut-ikutan atau tren. Di era digital seperti sekarang, memilih jurusan yang sesuai…Continue reading on Medium »
- I started a dev blog about working with SwiftUI and C++ to create a native Twitch applicationby /u/notarealoneatall (programming) on April 22, 2025 at 6:23 pm
submitted by /u/notarealoneatall [link] [comments]
- WebAssembly: How to Allocate Your Allocatorby /u/ketralnis (programming) on April 22, 2025 at 5:24 pm
submitted by /u/ketralnis [link] [comments]
- Scritch | modified scratch optimised for teachingby /u/ketralnis (programming) on April 22, 2025 at 5:06 pm
submitted by /u/ketralnis [link] [comments]
- Event-Hidden Architecturesby /u/ketralnis (programming) on April 22, 2025 at 5:05 pm
submitted by /u/ketralnis [link] [comments]
- Detecting if an expression is constant in Cby /u/ketralnis (programming) on April 22, 2025 at 5:05 pm
submitted by /u/ketralnis [link] [comments]
- Start with a clean slate: Integration testing with PostgreSQLby /u/ketralnis (programming) on April 22, 2025 at 5:05 pm
submitted by /u/ketralnis [link] [comments]
- 101 BASIC Computer Gamesby /u/ketralnis (programming) on April 22, 2025 at 5:01 pm
submitted by /u/ketralnis [link] [comments]
- ClickHouse gets lazier (and faster): Introducing lazy materializationby /u/ketralnis (programming) on April 22, 2025 at 4:58 pm
submitted by /u/ketralnis [link] [comments]
- Abusing DuckDB-WASM by making SQL draw 3D graphics (Sort Of)by /u/ketralnis (programming) on April 22, 2025 at 4:58 pm
submitted by /u/ketralnis [link] [comments]
- Here are 5 things I wish I knew before my AWS Solutions Architect Associate examby /u/pseudonym24 (programming) on April 22, 2025 at 4:49 pm
Share it with someone who may need it! 🙂 submitted by /u/pseudonym24 [link] [comments]
- Bloom Filters: A Memory-Saving Solution for Set Membership Checksby /u/teivah (programming) on April 22, 2025 at 4:37 pm
submitted by /u/teivah [link] [comments]
- Apache Airflow 3.0 releasedby /u/xtreak (programming) on April 22, 2025 at 4:30 pm
submitted by /u/xtreak [link] [comments]
- An Ode to Mastery - Constructing Complexity Part 1by /u/Fit_Mushroom_250 (programming) on April 22, 2025 at 2:42 pm
submitted by /u/Fit_Mushroom_250 [link] [comments]
- Beyond the Code: Unconventional Lessons from Empathetic Interviewingby /u/promle (programming) on April 22, 2025 at 1:40 pm
I recently designed and conducted interviews and had many thoughts documented here: https://towardsdatascience.com/beyond-the-code-unconventional-lessons-from-empathetic-interviewing/ It contains: 5-page Brief sent to candidates Feedback from the offered candidate. It provides guidance on how to make a good session, diving into detailed mindsets and behaviours. I'm interested to hear unique experiences you've had in interviews: Any activities or specific discussions you found were particularly engaging or beneficial to the process? What feedback did you receive, after putting in what effort to get it? How did your interviewers misinterpret you, or how you could have told a story better? Anything else you wish was done to make both sides more prepared? submitted by /u/promle [link] [comments]
- We Interviewed 100 Eng Teams. The Problem With Modern Engineering Isn't Speed. It's Chaos.by /u/vladaionescu (programming) on April 22, 2025 at 1:36 pm
submitted by /u/vladaionescu [link] [comments]
- Do you write safety-critical software like automotive, aerospace, medical, or industrial? The Rust Foundation's Safety-Critical Consortium is conducting a survey on Rust and tooling used in SC software industries!by /u/MerrimanIndustries (programming) on April 22, 2025 at 12:43 pm
submitted by /u/MerrimanIndustries [link] [comments]
- XRP Supplychain attack: Official Ripple NPM package infected with crypto-stealing backdoorby /u/Advocatemack (programming) on April 22, 2025 at 11:34 am
A few hours ago, we discovered that the offical XRP NPM package has been compromised and malware has been introduced to steal private keys. This is the official Ripple SDK, so it could lead to a catastrophic impact on the cryptocurrency supply chain. Luckily, we did catch it early so hopefully won't be introduced by the major exchanges. Currently, this is still live on NPM https://www.npmjs.com/package/xrpl?activeTab=code submitted by /u/Advocatemack [link] [comments]
- Unstructured Thoughts on the Problems of OSS/FOSSby /u/gingerbill (programming) on April 22, 2025 at 11:16 am
submitted by /u/gingerbill [link] [comments]
- How We Diagnosed and Fixed the 2023 Voyager 1 Anomaly from 15 Billion Miles Awayby /u/brokeCoder (programming) on April 22, 2025 at 10:38 am
submitted by /u/brokeCoder [link] [comments]
- Coding as Craft: Going Back to the Old Gymby /u/cekrem (programming) on April 22, 2025 at 9:37 am
submitted by /u/cekrem [link] [comments]
- Expose local dev server with SSH tunnel and Dockerby /u/nemanja_codes (programming) on April 22, 2025 at 8:08 am
In development, we often need to share a preview of our current local project, whether to show progress, collaborate on debugging, or demo something for clients or in meetings. This is especially common in remote work settings. There are tools like ngrok and localtunnel, but the limitations of their free plans can be annoying in the long run. So, I created my own setup with an SSH tunnel running in a Docker container, and added Traefik for HTTPS to avoid asking non-technical clients to tweak browser settings to allow insecure HTTP requests. I documented the entire process in the form of a practical tutorial guide that explains the setup and configuration in detail. My Docker configuration is public and available for reuse, the containers can be started with just a few commands. You can find the links in the article. The link to the article: https://nemanjamitic.com/blog/2025-04-20-ssh-tunnel-docker I would love to hear your feedback, let me know what you think. Have you made something similar yourself, have you used a different tools and approaches? submitted by /u/nemanja_codes [link] [comments]
- The Record/Tuple ECMAScript Proposal has been withdrawnby /u/ketralnis (programming) on April 22, 2025 at 12:12 am
submitted by /u/ketralnis [link] [comments]
- Python's new t-stringsby /u/ketralnis (programming) on April 21, 2025 at 5:16 pm
submitted by /u/ketralnis [link] [comments]
- How does OAuth work: ELI5?by /u/trolleid (programming) on April 21, 2025 at 4:20 pm
So I was reading about OAuth to learn it and have created this explanation. It's basically a few of the best I have found merged together and rewritten in big parts. I have also added a super short summary and a code example. Maybe it helps one of you 🙂 OAuth Explained The Basic Idea Let’s say LinkedIn wants to let users import their Google contacts. One obvious (but terrible) option would be to just ask users to enter their Gmail email and password directly into LinkedIn. But giving away your actual login credentials to another app is a huge security risk. OAuth was designed to solve exactly this kind of problem. Note: So OAuth solves an authorization problem! Not an authentication problem. See [here][ref1] for the difference. Super Short Summary User clicks “Import Google Contacts” on LinkedIn LinkedIn redirects user to Google’s OAuth consent page User logs in and approves access Google redirects back to LinkedIn with a one-time code LinkedIn uses that code to get an access token from Google LinkedIn uses the access token to call Google’s API and fetch contacts More Detailed Summary Suppose LinkedIn wants to import a user’s contacts from their Google account. LinkedIn sets up a Google API account and receives a client_id and a client_secret So Google knows this client id is LinkedIn A user visits LinkedIn and clicks "Import Google Contacts" LinkedIn redirects the user to Google’s authorization endpoint: https://accounts.google.com/o/oauth2/auth?client_id=12345&redirect_uri=https://linkedin.com/oauth/callback&scope=contacts client_id is the before mentioned client id, so Google knows it's LinkedIn redirect_uri is very important. It's used in step 6 in scope LinkedIn tells Google how much it wants to have access to, in this case the contacts of the user The user will have to log in at Google Google displays a consent screen: "LinkedIn wants to access your Google contacts. Allow?" The user clicks "Allow" Google generates a one-time authorization code and redirects to the URI we specified: redirect_uri. It appends the one-time code as a URL parameter. So the URL could be https://linkedin.com/oauth/callback?code=one_time_code_xyz Now, LinkedIn makes a server-to-server request (not a redirect) to Google’s token endpoint and receive an access token (and ideally a refresh token) Finished. Now LinkedIn can use this access token to access the user’s Google contacts via Google’s API Question: Why not just send the access token in step 6? Answer: To make sure that the requester is actually LinkedIn. So far, all requests to Google have come from the user’s browser, with only the client_id identifying LinkedIn. Since the client_id isn’t secret and could be guessed by an attacker, Google can’t know for sure that it's actually LinkedIn behind this. In the next step, LinkedIn proves its identity by including the client_secret in a server-to-server request. Security Note: Encryption OAuth 2.0 does not handle encryption itself. It relies on HTTPS (SSL/TLS) to secure sensitive data like the client_secret and access tokens during transmission. Security Addendum: The state Parameter The state parameter is critical to prevent cross-site request forgery (CSRF) attacks. It’s a unique, random value generated by the third-party app (e.g., LinkedIn) and included in the authorization request. Google returns it unchanged in the callback. LinkedIn verifies the state matches the original to ensure the request came from the user, not an attacker. OAuth 1.0 vs OAuth 2.0 Addendum: OAuth 1.0 required clients to cryptographically sign every request, which was more secure but also much more complicated. OAuth 2.0 made things simpler by relying on HTTPS to protect data in transit, and using bearer tokens instead of signed requests. Code Example: OAuth 2.0 Login Implementation Below is a standalone Node.js example using Express to handle OAuth 2.0 login with Google, storing user data in a SQLite database. ```javascript const express = require("express"); const axios = require("axios"); const sqlite3 = require("sqlite3").verbose(); const crypto = require("crypto"); const jwt = require("jsonwebtoken"); const jwksClient = require("jwks-rsa"); const app = express(); const db = new sqlite3.Database(":memory:"); // Initialize database db.serialize(() => { db.run( "CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT)" ); db.run( "CREATE TABLE federated_credentials (user_id INTEGER, provider TEXT, subject TEXT, PRIMARY KEY (provider, subject))" ); }); // Configuration const CLIENT_ID = process.env.GOOGLE_CLIENT_ID; const CLIENT_SECRET = process.env.GOOGLE_CLIENT_SECRET; const REDIRECT_URI = "https://example.com/oauth2/callback"; const SCOPE = "openid profile email"; // JWKS client to fetch Google's public keys const jwks = jwksClient({ jwksUri: "https://www.googleapis.com/oauth2/v3/certs", }); // Function to verify JWT async function verifyIdToken(idToken) { return new Promise((resolve, reject) => { jwt.verify( idToken, (header, callback) => { jwks.getSigningKey(header.kid, (err, key) => { callback(null, key.getPublicKey()); }); }, { audience: CLIENT_ID, issuer: "https://accounts.google.com", }, (err, decoded) => { if (err) return reject(err); resolve(decoded); } ); }); } // Generate a random state for CSRF protection app.get("/login", (req, res) => { const state = crypto.randomBytes(16).toString("hex"); req.session.state = state; // Store state in session const authUrl = https://accounts.google.com/o/oauth2/auth?client_id=${CLIENT_ID}&redirect_uri=${REDIRECT_URI}&scope=${SCOPE}&response_type=code&state=${state}; res.redirect(authUrl); }); // OAuth callback app.get("/oauth2/callback", async (req, res) => { const { code, state } = req.query; // Verify state to prevent CSRF if (state !== req.session.state) { return res.status(403).send("Invalid state parameter"); } try { // Exchange code for tokens const tokenResponse = await axios.post( "https://oauth2.googleapis.com/token", { code, client_id: CLIENT_ID, client_secret: CLIENT_SECRET, redirect_uri: REDIRECT_URI, grant_type: "authorization_code", } ); const { id_token } = tokenResponse.data; // Verify ID token (JWT) const decoded = await verifyIdToken(id_token); const { sub: subject, name, email } = decoded; // Check if user exists in federated_credentials db.get( "SELECT * FROM federated_credentials WHERE provider = ? AND subject = ?", ["https://accounts.google.com", subject], (err, cred) => { if (err) return res.status(500).send("Database error"); if (!cred) { // New user: create account db.run( "INSERT INTO users (name, email) VALUES (?, ?)", [name, email], function (err) { if (err) return res.status(500).send("Database error"); const userId = this.lastID; db.run( "INSERT INTO federated_credentials (user_id, provider, subject) VALUES (?, ?, ?)", [userId, "https://accounts.google.com", subject], (err) => { if (err) return res.status(500).send("Database error"); res.send(`Logged in as ${name} (${email})`); } ); } ); } else { // Existing user: fetch and log in db.get( "SELECT * FROM users WHERE id = ?", [cred.user_id], (err, user) => { if (err || !user) return res.status(500).send("Database error"); res.send(`Logged in as ${user.name} (${user.email})`); } ); } } ); } catch (error) { res.status(500).send("OAuth or JWT verification error"); } }); app.listen(3000, () => console.log("Server running on port 3000")); ``` submitted by /u/trolleid [link] [comments]
- Getting Forked by Microsoftby /u/starlevel01 (programming) on April 21, 2025 at 12:19 pm
submitted by /u/starlevel01 [link] [comments]
What is Google Workspace?
Google Workspace is a cloud-based productivity suite that helps teams communicate, collaborate and get things done from anywhere and on any device. It's simple to set up, use and manage, so your business can focus on what really matters.
Watch a video or find out more here.
Here are some highlights:
Business email for your domain
Look professional and communicate as you@yourcompany.com. Gmail's simple features help you build your brand while getting more done.
Access from any location or device
Check emails, share files, edit documents, hold video meetings and more, whether you're at work, at home or on the move. You can pick up where you left off from a computer, tablet or phone.
Enterprise-level management tools
Robust admin settings give you total command over users, devices, security and more.
Sign up using my link https://referworkspace.app.goo.gl/Q371 and get a 14-day trial, and message me to get an exclusive discount when you try Google Workspace for your business.
Google Workspace Business Standard Promotion code for the Americas
63F733CLLY7R7MM
63F7D7CPD9XXUVT
63FLKQHWV3AEEE6
63JGLWWK36CP7WM
Email me for more promo codes
Active Hydrating Toner, Anti-Aging Replenishing Advanced Face Moisturizer, with Vitamins A, C, E & Natural Botanicals to Promote Skin Balance & Collagen Production, 6.7 Fl Oz
Age Defying 0.3% Retinol Serum, Anti-Aging Dark Spot Remover for Face, Fine Lines & Wrinkle Pore Minimizer, with Vitamin E & Natural Botanicals
Firming Moisturizer, Advanced Hydrating Facial Replenishing Cream, with Hyaluronic Acid, Resveratrol & Natural Botanicals to Restore Skin's Strength, Radiance, and Resilience, 1.75 Oz
Skin Stem Cell Serum
Smartphone 101 - Pick a smartphone for me - android or iOS - Apple iPhone or Samsung Galaxy or Huawei or Xaomi or Google Pixel
Can AI Really Predict Lottery Results? We Asked an Expert.
Djamgatech

Read Photos and PDFs Aloud for me iOS
Read Photos and PDFs Aloud for me android
Read Photos and PDFs Aloud For me Windows 10/11
Read Photos and PDFs Aloud For Amazon
Get 20% off Google Workspace (Google Meet) Business Plan (AMERICAS): M9HNXHX3WC9H7YE (Email us for more)
Get 20% off Google Google Workspace (Google Meet) Standard Plan with the following codes: 96DRHDRA9J7GTN6(Email us for more)
AI-Powered Professional Certification Quiz Platform
Web|iOs|Android|Windows
FREE 10000+ Quiz Trivia and and Brain Teasers for All Topics including Cloud Computing, General Knowledge, History, Television, Music, Art, Science, Movies, Films, US History, Soccer Football, World Cup, Data Science, Machine Learning, Geography, etc....

List of Freely available programming books - What is the single most influential book every Programmers should read
- Bjarne Stroustrup - The C++ Programming Language
- Brian W. Kernighan, Rob Pike - The Practice of Programming
- Donald Knuth - The Art of Computer Programming
- Ellen Ullman - Close to the Machine
- Ellis Horowitz - Fundamentals of Computer Algorithms
- Eric Raymond - The Art of Unix Programming
- Gerald M. Weinberg - The Psychology of Computer Programming
- James Gosling - The Java Programming Language
- Joel Spolsky - The Best Software Writing I
- Keith Curtis - After the Software Wars
- Richard M. Stallman - Free Software, Free Society
- Richard P. Gabriel - Patterns of Software
- Richard P. Gabriel - Innovation Happens Elsewhere
- Code Complete (2nd edition) by Steve McConnell
- The Pragmatic Programmer
- Structure and Interpretation of Computer Programs
- The C Programming Language by Kernighan and Ritchie
- Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein
- Design Patterns by the Gang of Four
- Refactoring: Improving the Design of Existing Code
- The Mythical Man Month
- The Art of Computer Programming by Donald Knuth
- Compilers: Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman
- Gödel, Escher, Bach by Douglas Hofstadter
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
- Effective C++
- More Effective C++
- CODE by Charles Petzold
- Programming Pearls by Jon Bentley
- Working Effectively with Legacy Code by Michael C. Feathers
- Peopleware by Demarco and Lister
- Coders at Work by Peter Seibel
- Surely You're Joking, Mr. Feynman!
- Effective Java 2nd edition
- Patterns of Enterprise Application Architecture by Martin Fowler
- The Little Schemer
- The Seasoned Schemer
- Why's (Poignant) Guide to Ruby
- The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity
- The Art of Unix Programming
- Test-Driven Development: By Example by Kent Beck
- Practices of an Agile Developer
- Don't Make Me Think
- Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
- Domain Driven Designs by Eric Evans
- The Design of Everyday Things by Donald Norman
- Modern C++ Design by Andrei Alexandrescu
- Best Software Writing I by Joel Spolsky
- The Practice of Programming by Kernighan and Pike
- Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt
- Software Estimation: Demystifying the Black Art by Steve McConnel
- The Passionate Programmer (My Job Went To India) by Chad Fowler
- Hackers: Heroes of the Computer Revolution
- Algorithms + Data Structures = Programs
- Writing Solid Code
- JavaScript - The Good Parts
- Getting Real by 37 Signals
- Foundations of Programming by Karl Seguin
- Computer Graphics: Principles and Practice in C (2nd Edition)
- Thinking in Java by Bruce Eckel
- The Elements of Computing Systems
- Refactoring to Patterns by Joshua Kerievsky
- Modern Operating Systems by Andrew S. Tanenbaum
- The Annotated Turing
- Things That Make Us Smart by Donald Norman
- The Timeless Way of Building by Christopher Alexander
- The Deadline: A Novel About Project Management by Tom DeMarco
- The C++ Programming Language (3rd edition) by Stroustrup
- Patterns of Enterprise Application Architecture
- Computer Systems - A Programmer's Perspective
- Agile Principles, Patterns, and Practices in C# by Robert C. Martin
- Growing Object-Oriented Software, Guided by Tests
- Framework Design Guidelines by Brad Abrams
- Object Thinking by Dr. David West
- Advanced Programming in the UNIX Environment by W. Richard Stevens
- Hackers and Painters: Big Ideas from the Computer Age
- The Soul of a New Machine by Tracy Kidder
- CLR via C# by Jeffrey Richter
- The Timeless Way of Building by Christopher Alexander
- Design Patterns in C# by Steve Metsker
- Alice in Wonderland by Lewis Carol
- Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig
- About Face - The Essentials of Interaction Design
- Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky
- The Tao of Programming
- Computational Beauty of Nature
- Writing Solid Code by Steve Maguire
- Philip and Alex's Guide to Web Publishing
- Object-Oriented Analysis and Design with Applications by Grady Booch
- Effective Java by Joshua Bloch
- Computability by N. J. Cutland
- Masterminds of Programming
- The Tao Te Ching
- The Productive Programmer
- The Art of Deception by Kevin Mitnick
- The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan
- Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp
- Masters of Doom
- Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas with Matt Hargett
- How To Solve It by George Polya
- The Alchemist by Paulo Coelho
- Smalltalk-80: The Language and its Implementation
- Writing Secure Code (2nd Edition) by Michael Howard
- Introduction to Functional Programming by Philip Wadler and Richard Bird
- No Bugs! by David Thielen
- Rework by Jason Freid and DHH
- JUnit in Action
#BlackOwned #BlackEntrepreneurs #BlackBuniness #AWSCertified #AWSCloudPractitioner #AWSCertification #AWSCLFC02 #CloudComputing #AWSStudyGuide #AWSTraining #AWSCareer #AWSExamPrep #AWSCommunity #AWSEducation #AWSBasics #AWSCertified #AWSMachineLearning #AWSCertification #AWSSpecialty #MachineLearning #AWSStudyGuide #CloudComputing #DataScience #AWSCertified #AWSSolutionsArchitect #AWSArchitectAssociate #AWSCertification #AWSStudyGuide #CloudComputing #AWSArchitecture #AWSTraining #AWSCareer #AWSExamPrep #AWSCommunity #AWSEducation #AzureFundamentals #AZ900 #MicrosoftAzure #ITCertification #CertificationPrep #StudyMaterials #TechLearning #MicrosoftCertified #AzureCertification #TechBooks
Top 1000 Canada Quiz and trivia: CANADA CITIZENSHIP TEST- HISTORY - GEOGRAPHY - GOVERNMENT- CULTURE - PEOPLE - LANGUAGES - TRAVEL - WILDLIFE - HOCKEY - TOURISM - SCENERIES - ARTS - DATA VISUALIZATION

Top 1000 Africa Quiz and trivia: HISTORY - GEOGRAPHY - WILDLIFE - CULTURE - PEOPLE - LANGUAGES - TRAVEL - TOURISM - SCENERIES - ARTS - DATA VISUALIZATION

Exploring the Pros and Cons of Visiting All Provinces and Territories in Canada.

Exploring the Advantages and Disadvantages of Visiting All 50 States in the USA

Health Health, a science-based community to discuss human health
- 4-month-old baby dies after parents repeatedly rubbed alcohol on her gums, police sayby /u/Sandstorm400 on April 22, 2025 at 7:16 pm
submitted by /u/Sandstorm400 [link] [comments]
- Kennedy set to announce ban on artificial food dyesby /u/apokrif1 on April 22, 2025 at 3:46 pm
submitted by /u/apokrif1 [link] [comments]
- Over half of adults could be overweight by 2050. Why weight loss drugs aren't a cureby /u/grh55 on April 22, 2025 at 3:42 pm
submitted by /u/grh55 [link] [comments]
- Canada: Teen cannabis use increased after legalizationby /u/CTVNEWS on April 22, 2025 at 3:09 pm
submitted by /u/CTVNEWS [link] [comments]
- Ice Bucket Challenge returns with focus on mental healthby /u/CTVNEWS on April 22, 2025 at 3:08 pm
submitted by /u/CTVNEWS [link] [comments]
Today I Learned (TIL) You learn something new every day; what did you learn today? Submit interesting and specific facts about something that you just found out here.
- TIL about Fish Doorbell, a Dutch livestream of a dam that allows viewers to click a bell to notify fish are ready to pass throughby /u/ycr007 on April 22, 2025 at 10:08 pm
submitted by /u/ycr007 [link] [comments]
- TIL about the Iron Ring Ceremony, where Canadian engineers are given a ring worn on the pinkie to remind them of their professional responsibility for safety. It began after two bridges collapsed in 1907 and 1912.by /u/wurl3y on April 22, 2025 at 9:33 pm
submitted by /u/wurl3y [link] [comments]
- TIL that Frida Kahlo had an affair with Leon Trotsky and painted a self-portrait for him, which she almost destroyed after his assassinationby /u/thatoneguyfromva on April 22, 2025 at 9:09 pm
submitted by /u/thatoneguyfromva [link] [comments]
- TIL that Dirk Willems, a 16th-century Dutch Anabaptist, escaped prison but turned back to save the guard chasing him who fell through ice—an act of mercy that led to his recapture and execution.by /u/MarzipanBackground91 on April 22, 2025 at 8:29 pm
submitted by /u/MarzipanBackground91 [link] [comments]
- TIL that in the Sundarbans mangrove swamps of Bangladesh and India, tigers kill up to fifty people a year, and the widows of men killed by tigers face cultural and religious ostracization, and are viewed as bad omens. Many are excluded from society to the point of having their children taken away.by /u/paleocacher on April 22, 2025 at 6:32 pm
submitted by /u/paleocacher [link] [comments]
Reddit Science This community is a place to share and discuss new scientific research. Read about the latest advances in astronomy, biology, medicine, physics, social science, and more. Find and submit new publications and popular science coverage of current research.
- Scalable microwave-to-optical converters at the single-photon levelby /u/man_centaur_duality on April 22, 2025 at 8:19 pm
submitted by /u/man_centaur_duality [link] [comments]
- Recent projections suggest that large geographical areas will soon experience heat and humidity exceeding limits for human thermoregulation - The study found that humans struggle to thermoregulate at wet bulb temperatures above 26–31 °C, significantly below the commonly cited 35 °C threshold.by /u/-Mystica- on April 22, 2025 at 6:53 pm
submitted by /u/-Mystica- [link] [comments]
- Insects are disappearing at an alarming rate worldwide. Insect populations had declined by 75% in less than three decades. The most cited driver for insect decline was agricultural intensification, via issues like land-use change and insecticides, with 500+ other interconnected drivers.by /u/mvea on April 22, 2025 at 5:38 pm
submitted by /u/mvea [link] [comments]
- A study of more than 3,000 adolescents showed that those who went to bed the earliest, slept the longest, and had the lowest sleeping heart rates outperformed others on reading, vocabulary, problem solving and other mental tests.by /u/Wagamaga on April 22, 2025 at 5:11 pm
submitted by /u/Wagamaga [link] [comments]
- U-Michigan study: A single dose of a psychedelic compound enhanced flexible learning in mice for weeks, offering insight into long-lasting brain changes that may help treat depression, PTSD, and Alzheimer'sby /u/umichnews on April 22, 2025 at 4:17 pm
submitted by /u/umichnews [link] [comments]
Reddit Sports Sports News and Highlights from the NFL, NBA, NHL, MLB, MLS, and leagues around the world.
- Shannon Sharpe responds to lawsuit and denies all accusationsby /u/Subject-Property-343 on April 22, 2025 at 11:18 pm
submitted by /u/Subject-Property-343 [link] [comments]
- Panthers' Matthew Tkachuk off IR ahead of Game 1by /u/Oldtimer_2 on April 22, 2025 at 10:07 pm
submitted by /u/Oldtimer_2 [link] [comments]
- Jerry Jones: Cowboys working on '2 pretty substantive trades'by /u/Oldtimer_2 on April 22, 2025 at 8:32 pm
submitted by /u/Oldtimer_2 [link] [comments]
- A crazy glitch in the matrixby /u/Subject-Property-343 on April 22, 2025 at 8:01 pm
Same game Same inning Same amount of outs Same pitch count Same pitch speed Same play submitted by /u/Subject-Property-343 [link] [comments]
- Timberwolves' Anthony Edwards fined $50,000 for obscene gesture and comment directed at hecklerby /u/Oldtimer_2 on April 22, 2025 at 7:39 pm
submitted by /u/Oldtimer_2 [link] [comments]