Live data from Hacker News

How to choose what a programming language to learn first

news.ycombinator.com

11–20 of 20 posts

Re: How to choose what a programming language to learn first

#12
Start with Python. Problem solved.

If 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

#13
post #3

Python 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…

Seconded. You can power an entire career solely on the backs of Python and JavaScript. (You might not want to, but you can.)

Re: How to choose what a programming language to learn first

#14
If you have friends or other people in your organisation that can help, consider choosing the language they use. Otherwise choose a general purpose language that has a longish history. I would say Python, JS/Node, C# would all be reasonable and maybe Java as well. Choosing anything more obscure or specific might limit you. Consider what you want to build and choose the right tool for the job.

Re: How to choose what a programming language to learn first

#15
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.

Re: How to choose what a programming language to learn first

#16
Pick whichever language you can get paid to learn. That is, is there any job assignment in your current role (or adjacent to it) where you can do some programming? What language do you need for it? Pick up the rudiments of that language on your own if you have to, and then get paid to use it (and thereby get better at it).

Getting 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

#19
I'd advise you to NOT start with "what you want to do", cause you're likely not even sure. Take something that:

- 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.

Post reply on HN