How to choose what a programming language to learn first
11–20 of 20 posts
Re: How to choose what a programming language to learn first
#12If you're in Finland, this course online is free and grants university credit. If you're not, it's still the best tutorial I've found to date. https://programming-23.mooc.fi/
Python was the right choice when I started programming 15 years ago and it is even moreso the right choice today.
Re: How to choose what a programming language to learn first
#13Python and Javascript are probably the most beginner-friendly general-purpose programming languages to learn (while still being real languages in common professional use). It kinda depends on what you want to do, though (if you know). Python is often used in the sciences and data sciences and ML/AI stuff. Javascript powers the Web (among with some desktop apps, unfortunately, but that's a different story). Once you k…
Re: How to choose what a programming language to learn first
#14Re: How to choose what a programming language to learn first
#15If 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.
Re: How to choose what a programming language to learn first
#16Getting paid to learn something that enhances your value is sweet if you can get it.
Re: How to choose what a programming language to learn first
#17This is what I'd do if I was starting again and knew what I know now. Darts a decent language and simple to learn.
Re: How to choose what a programming language to learn first
#18Re: How to choose what a programming language to learn first
#19- Is already a development environment vs a toy console. E.g. some popular framework for making apps. Learn to make apps and to work in structures/boilerplates you can't yet understand. Don't be afraid of how big it is, this all will be useful and much less scary in the end.
- Is immediately presentable to you and someone else, in an entertaining way. Back in the day it was "graphics", today it's web apps with svg, img and styled ui controls. Don't start with "interpreter in console". That semantic gap between console and real apps will demotivate you.
- Has most of its wheels invented. That means a big community, a large package repository, an infinite amount of tutorials for different libs and toolkits. Languages that have no wheels invented cannot drive, because everyone is busy reinventing.
- Isn't low level, has little legacy. If you're not a programmer yet, high level programming alone will overwhelm you for a while, the hardest part being "broad" not "deep" (you'll see). Jobs are also mostly "broad".
That's how you choose. Addressing the "overwhelmed" part: it's both deeper and shallower than you think. Deeper in that there's many decades of knowledge packed into what we have today, and there's still work to do. Shallower in that you're likely 10x overestimating what it takes to start making average apps you see. 98% of fights in programming are with stupidity of something rather than with trying to grasp something too smart.