| This mostly depends on what you want to do. Languages have their unique pros and cons so excel and are overrepresented in certain use cases. If you want a corporate IT job languages like Java are great because Java is an old, slow moving, battle-tested, statically typed language which leans into a lot of what you might look for in the corporate world. On the other end of the spectrum you have languages like Python and PHP. PHP is a great language if you just want to bash out a website quickly and Python is great if you need to quickly hack together a script to process some data. These languages really excel when it comes to productivity, but at the cost of strict static typing and the maturity of the ecosystem. That's not to say they're bad and many companies and coders use them (including myself), but they tend to be used by smaller companies that are less risk-adverse (generally anyway). You also have languages which are very closely tide to specific types of development. So if you want to do iOS development for example you'll probably want to learn Swift. Same is true of Kotlin if you want to do Android development. So first I'd decide broadly what area you want to go into – do you want to focus on web development, app development, video games, AI, etc. Then once you have area in mind decide specifically what you'd like to focus on – eg backend web development or iOS games. At this point there will probably only be 1 to 3 decent languages to pick from. If you have absolutely no idea what you want to do though I'd probably recommend learning Java, and specifically focusing on building Spring boot applications. I say that because Java is a great language if you just want to learn something in demand, with a reasonable amount of flexility in terms of what it can be used for. It will push you towards good practices such as static typing and object-orient programming. Although the learning curve is much less severe, my personal opinion is that languages like Python and JavaScript are fairly bad first languages because it's so easy to write bad code if you don't know what you're doing. |