The two names are acronyms, and the words inside them are the whole idea. P stands for polynomial time — problems with a known algorithm whose runtime grows as a polynomial in the input size (n, n², n³ — never exponential). Doubling the input only multiplies the work by a predictable factor. Routing, sorting, matching, scheduling on one machine — all in P.
NP stands for nondeterministic polynomial time. The "nondeterministic" part is a piece of theoretical-computer-science jargon for a hypothetical machine that gets to guess the right path; the working definition that matters in a planning meeting is the equivalent one — NP is the class of problems whose candidate answers can be verified in polynomial time, even when finding the answer in the first place may take forever. Sudoku is the everyday example: checking a filled grid is trivial, filling an empty one is hard.
A common misread: NP does not mean "non-polynomial." Every P problem is also in NP — if you can solve it fast, you can certainly check it fast. Whether every NP problem is also in P (whether P = NP) is the most famous unsolved question in computer science. The working assumption — and the basis of every engineering plan — is that the two are different. Knowing which category a problem lives in determines whether the work is a week or a quarter.