In this blog post I'm gonna go through three skills that i think that every programmer should have in order to be able to create any company that you want so straight away. These three skills are app development, networking basics and databases.
With only one of these skills, the average yearly income in the US ranges from eighty thousand dollars to a hundred thousand dollars, so not only could it provide you with an above average income, it will also equip you with the tools that you need to become the next Bill Gates or Mark Zuckerberg if you were to build something like Facebook or WhatsApp.
Knowing all three of these will mean that you alone can build these things giving you the opportunity to create wealth from basically nothing. So these are the skills that will allow you to create companies or things that can make you money and they're not what you need to get a job but they're skills that I think every programmer should have because of the leverage and infinite opportunities it will provide you. These are the skills behind some of our world's most profitable businesses and the most important one being to be able to create apps.
I suggest learning flutter or react native but for maximum leverage you want to learn the fewest number of things possible that will give you the largest return. Flutter and react native both allow you to build for android and iOS at the same time which means you only need to build your app once and then you can run it anywhere. I think that the most useful skill that you could have as a programmer is to be able to build multi-platform apps and this is not because I think that cross-platform frameworks are better than native ones.
It's just that I think that for most of the apps you can come up with, you don't really need native development and there's very few reasons that would actually motivate building an app twice so go multi-platform.
For web development I recommend react you learn how to work with javascript, html and css. Using a web framework React is the web framework this is especially useful. Since react is also available for mobile with react native so that means that by learning react you essentially learn how to build websites and mobile apps. Again minimum work for maximum leverage learn one framework and build for web and mobile simultaneously being able to build the thing that people interact with is only step one. To truly make this useful you need to understand the basics of networking, specifically you want to learn about the different types of http requests - how clients versus servers work how APIs work and also how to create one.
And going back to the facebook example - the first skill lets us build the shell of facebook. It lets us build something that looks like facebook. This step lets us understand how facebook works under the hood so the different types of http requests that gets sent when you press a like button, for instance how the front end talks to the back end via an API. If the app building part is the skin, the networking part is the organs and the brain that lets the organism function.
This combined with the next skill on this list is essentially backend development under this umbrella category of networking. I would also include learning how to work with json and this combined with the next skill on our list is essentially backend development. Once you know that, then the final piece of the puzzle is to figure out how databases work.
Databases are super important to know how to work with and as with all of the things on this list I'm not saying that you should know this by heart or without using google. I'm saying that you should try these things out and try to build something that actually works that implements all of these technologies because once you've done that once you'll be able to do it again. And probably better programming is not about knowing exactly what to type. To get the code to run it's about understanding how, what you want to do can be done. You only need to understand how these skills generally work and when and where to use them.
If you know that then you can just google the specifics if I were to build something like facebook today then, I would still need to google all the stuff like how to build a rest API using python, how to start a postgres database, how to host the code on a server somewhere, and how to build the site or app but the key thing is that I know what to use and I've done it before.
So even though i still need to google all of this stuff and lots and lots of things I still have these things in my head somewhere and it won't take too long to reignite them. So aim for general understanding and not mastery because I think that mastery is overrated. These are the skills that I believe will give anyone who learns them the basic tool set needed to create financial freedom for themselves. The only thing left after learning these skills is to figure out what to build and make no mistake because this is the most difficult part.
So if you liked what you just read, do give a thumbs up or leave your comments below.