Honestly? I very often think about changing my profession. And this happens at least once a year for the past 5 years.
Yes, programming doesn't require a lot of physical strength, yes, it gives enough freedom and time, yes, it pays well, BUT it drains so many mental juices out of you that freedom, time, and money simply stop bringing pleasure because you don't have enough emotional energy to use them.
I haven't encountered as many "dead inside" people as in programming (well, maybe musicians too, but they use it for creativity, and programmers don't).
Conditionally, it's better to earn $1000 and spend $100 of it with pleasure while constantly striving for more, than to earn $5000 and not want to get out of bed.
I've heard there's statistics showing that chemists and physicists suffer from mental illnesses less often than theoretical mathematicians. This is because the former often interact with the real world (when building structures or working with chemical elements), while the latter spend so much time in the world of abstractions that they lose touch with the material world and stop finding themselves in it.
So, programming is the same as theoretical mathematics; we constantly live in a world of abstractions that differs from the real world as much as natural physics differs from quantum physics (i.e., completely).
But why do I keep doing it then?
And here's one specific answer: I f***ing love the process and the result of solving problems.
I've been playing Divinity Original Sin 2 non-stop for several weeks: I've started it over 7 times, I've read over 100 articles, and watched tens of hours of videos on builds just to find and test builds that would allow me to beat it with 1-2 characters instead of 4.
I was getting tired of it, but I could wake up in the middle of the night and go try a new build until I finally found 2 unconventional combinations that I really liked.
So, programming is a search, a search for a way to solve a specific problem with an indefinite number of tools.
I get angry when I can't figure it out, I constantly try new things. If I don't see anything new, I sit for hours reading articles, books, and watching videos to find this "new." If I see that I don't know something, it irritates me so much that I can't not learn it.
All of this creates the high.
And the most interesting thing is that programming, in this case, is more of a tool than a reason. The reason is the thought: "What do you mean I can't solve this logic puzzle?" – and most likely, if I weren't a programmer, I would have found another profession where I would also have to solve problems of a similar nature.
And now, from old man ramblings, we move on to advice for beginners:
I believe the most universal advice that will help you check if programming is for you is: come up with something you want to develop and start developing it.
No courses, no mentors, no attempts to "find a suitable market," just without all that bullshit, take the wildest idea you can think of that could be programmed and start doing it.
Courses, mentors, books, languages – these are just tools, and in the process of solving your task, you will try different ones, find what you need, and start applying it.
If, after six months, you haven't been able to sit your ass down to start coding something, then IT'S NOT FOR YOU AND THANK GOD.
I'm sure that if I had spent the same amount of effort on something else instead of programming, I would have been just as successful in it.
The main thing is to find your style (of work / life / clothes / leisure / etc.).
I wish you luck in finding it.