Making Games
There is a difference in the following: Making games because you like playing games. Making games to make money. Making games for a professional career. Making games for fun. In your career, understand your skin in the game and what game you are playing. Work accordingly.

Games make a unique class of software. Unless you are extremely passionate about games, have artistic, idealistic tendencies, and hate money, do not pursue game development as a profession. Make games as hobbies, maybe, but not to make a living. Making money in games is a gamble and high risk. Do it if you can afford that risk. If you have achieved financial independence, you can do it.
Programming games is hard when compared to other forms of software development. To program web and servers you need programming skills. Games, other than programming skills, require a sound knowledge of physics, rendering, mathematics, graphics, 3D modeling, textures, and memory to make something good. Marketing, sales, and storytelling are entirely different things. To make some games you might have to study behavioral psychology, history, and random obscure literature. It can be very rewarding as an experience and journey but that is it. There isn’t much tangible gain in the gaming industry as a software development professional. Many engineers go into programming out of a love of games. Do not get stuck with it. With time you will get over it. If you are in your teens or early 20s, you might be hell-bent on making and playing games. Trust me, 90%, if not 100%, are going to get over it. I know this first hand. I gave it up and most of my peers did too. It’s hard to imagine when you are so passionate and young but you will get over it.
However, if you are really not interested in a sound life, you may proceed further. Making games as a day job is very different than making games for yourself. In a day job, you would be a small cog in a complex contraption that produces a game. There is deep specialization in many different aspects of game programming. Graphics programming is drastically different than gameplay programming which is very different than physics programming.
With the latest tools, a lot of work is offloaded to game engines. If you are serious about game development do understand the basics of what you are doing. For example, if you use Unreal to make a 3D game, you should understand, rendering and rasterization, shaders, light and how it interacts with the environment, basic mathematics, projectiles, gravity, kinematics, physics, collisions, sound and how it propagates in an environment, game design, animations, controls and a lot more. Throwing things together in an engine and making it work is one thing but anyone serious about developing a long-term career should understand the basics really well. They will serve you for life. You will need those to make a successful career but to make a successful game you don’t need to learn most of that or any of that. Why do you not need that for a successful game? Games are a hit-based business. Flappy bird was a success. Many games with 100x investment and forethought weren't.
I used to make games for a game studio. All of us were quite naive in selling, marketing, and distributing games. Not so naive in building games. We put a lot of effort and work into the games that we built. We were all gamers and most of us were nerds. We tried to create the best experiences. We, as software engineers, were doing what we were supposed to do. There was no one responsible for selling them except the app stores. After a few years, that studio was shut down. We made one game that had the distribution thought out and it was a mediocre success. That game was so boring no one of us would have wanted to build and play. But it made money.
The people who make money in games are the publishers. Publishers to game developers are just like publishers are to book writers. Another analogy is that of VCs to startups. The chance of success of a game is skewed and slim. Top 1% nets all the money. Just like artists, musicians, startups, and the B2C world. Every other year game development studios run out of business and new ones are established. Publishers rarely go bust. The reason is that publishers, be it games or books, put their bets on multiple things. Even publishers don't know what would be a hit. They merely try to improve the odds. Since they spread their investments out they don't go bust.
If you are interested in making money from games, make very small games. Something you can develop in a couple of days. A week max. Make a lot of them. Learn the craft and business of publishing them. You won't know what would hit but take very small bets. Once you get a hang of what works, put more chips in that area. Not all of them. Think like a VC if you are in for money.
There is a difference in the following: Making games because you like playing games. Making games to make money. Making games for a professional career. Making games for fun. In your career, understand your skin in the game and what game you are playing. Work accordingly.
This post is from a series of related posts about software engineering. It is part of an attempt to write a book in public. I seek your feedback. Raise your opinion. Share with people who can benefit from it. Contribute in the comments section, on social media, over a cup of coffee, or however you prefer. This will help me and the community tremendously.