1. It's not ok to just be a programmer who goes to office, finishes work and comes back home. 2. It's not ok to just know about few things. You need to be full-stack engineer, mediocre developers are bad as the internet says. 3. Oh what are you doing at job, real programmers leave their job and pursue your dreams. 4. Oh you don't have a dream Very bad. You need one. 5. Oh you don't have passion you must have one. Look at all the founders, genius people who have become millionaires. 6. Oh you know javascript and jquery. Yes you can learn any new framework but Do you know Angular.js? How about Node.js. 7. Oh you work only with C#. A good prgrammer needs to know python if possible haskell etc etc. 8. Oh you have worked for 5 years but do you have a blog? do you have contributions to open source, do you have github account with regular commits? No? You're not good programmer. Sorry no job for you. 9. Oh you know a bunch of things but you don't know more than those silicon valley programmers. They are genius. Why aren't you genius? 10. Oh you are approaching age 30 but you're not famous. Why aren't you. Some kid made an app, some guy created this great business...why didn't you. 11. Add the list goes on.....
I have realized even if you are good at what you do, it's not enough. You have to meet right people at right place in right time who can give publicity and credit to even your small work. That makes you look good. But people who are not at the right place at right time, they think how the hell did that guy do it. How is he now regarded as great. Then the mind goes crazy. People feel down and depressed.
I did the same. I left a perfect job. Why? Well a programmer takes risk, learns new things. After a year? I have no job, no income, I'm unhappy, depressed. Because I was chasing a mirage.