I think this question is really important for developers careers and unfortunately gets answered most of the times in a wrong way, so let me share my personal story before answering so i can make my point clear in the end.

I am 35 years old, i 've never studied Computer Science but i graduated from Hellenic Naval Academy. I was an officer for some years. We are talking about warships here. One day i realized i wanted to be creative in this life and face new challenges every day. My career seemed so conservative. Of course this is my very personal opinion and i know that many people have a dream to follow a career like that and i respect them a lot. It is a great goal but i simply wanted more freedom and creativity in my life. I cannot compromise easily and i hate boundaries in life. I searched a lot and i was lucky to find web development.

I started studying like a lunatic. I had 2 very young kids back then and it was very difficult for me to do my job, come back and study and help with kids raising. My wife supported me a lot to make my dream come true - that's why she is my hero. So, i was able to follow some gurus out there and learn from them. All these online tutorials and videos make this so easy. With all this free content online, there is no excuse if you want to become a professional developer. Trust me i 've done this starting from 0 point so i think you can really do it too.

I felt so passionate. I wanted this. I wanted to participate in conferences and meetups so i can hang out with people like my online mentors. I thought that all developers are like these guys, super-smart and capable people with high goals. I was certain that my working environment would be so great full of visionaries and passionate people. I was so naive.

After a couple of years i resigned and started a new career by becoming a frontend developer. This was a smart move because frontend world or even better javascript world suits me well. I can learn new things every day and discuss about complicated problems and functionalities with other guys all over the world who share same interests and passion with me. Progress is rapid so i have never felt i got bored learning and studying. This evolution keeps that fire burning inside of me still.

During all these years i was like oh this year i ll master Angular or even ReactJS and Redux. Last years ES6 obviously was the primary goal and lately static type checking. This year i 'll make some open source contributions and this semester i ll give some public talks here and there. This month i 'll help an old colleague of mine in a side-project and get some extra money etc Hmm sounds like a race right? Race to do what? Learn more? Staying competitive? Earn more? Hmmm, really?

All these seem like toys for a naughty kid. New toys every day. What about all the things i dreamt of back then? What about my visions and ideas? What about all these passionate guys i wanted to meet and hang out with them? Hmm i met some i won't lie but during these years i met many cocky guys, shitty managers and arrogant developers. Omg it is like a waterfall in my brain right now. So many of them out there. These guys are the majority of IT world. Many times i said "Hmm, why smart people act like this? Are they spoiled kids or sth? Why this guy avoids sharing his knowledge and experiences? Why these guys never share the real side of the story? Why this manager insults his team in public? What is he expecting after humiliating them? Why so much bargaining all over the place? Why i hear words like client needs, deadlines, revenue so often and words like idea, plan, vision are rarely used? Where is passion in these people? Is all about money? Is this a race? Why? Where is the fun?".

This is the reality out there and it is very far away from my vision. I realized that the most important thing is passion. This is the key. This makes us good developers, good employees, successful and happy people and so on. Earning more money is the natural way after becoming better and better. You cannot earn more and live a better life if you are a bad coder and a bad coder mostly is not passionate about his work. So the key is passion and i need to keep this flame inside me alive. How? By moving away from managers who want to suck my blood and disrespect me. By turning down jobs which are boring but pay well. By keeping close to me passionate persons i admire. By saying "thank you" to all guys out there who taught me something. By contributing to open-source projects i use. By not forgetting why i made that career switch in the first place. By not treating myself as a horse that runs to win a race. It is not a race. I didn't make that switch to earn more. I made that switch in order to smile everyday and feel happy.

So this is my high goal and my advice. I want to keep this passion burning inside me so i can stay happy and live a balanced life with my family. For every developer out there this means different things so i cannot say do this or avoid that. Only thing i can say is don't let all these shitty managers out there ruin your dreams. It is not a race. Stay passionate and free and you will thrive, i am sure.

Thanks for reading!!