Software development is an 18+ hour a day job. Clients pay for solved problems and don’t have much patience, some problems are difficult to solve, some are easy.
Clients don’t appreciate the work you do, you need to be driven internally. You need to get enough kicks out of building cool stuff as most times the pay will not be worth the time it takes to build what people want and few people will bother to say thank you
No one gives a shit how long you spent working on a problem or how little you slept. People couldn’t care if your family is starving, all they want is the code finished yesterday and for cheap. Everything that goes wrong is your fault and you will get it fixed before getting any sleep.
Don’t go into this career if you’re looking for constant gratitude and congratulations, few people truly care.
Software development is a mostly thankless job, if you’re the boss thank your team even when no-one thanks you, because they deserve it.