How did you choose programming language?
Posted by summonthejson@reddit | learnprogramming | View on Reddit | 82 comments
There's so many programming languages. It makes it hard to choose the first one. What was your approach to choose the first programming language to learn?
ackley14@reddit
learn something. ideally something that is easy enough to develop a working idea without much else (i.e. don't get something that needs complex compilation or setup). just to start. get your feet wet. learn the way problem solving works. pick something object oriented. i chose javascript because it was really really easy to pop it inside of html and run it on a web browser. literally stupid easy. i also learned powershell script because again i could literally just pop it into powershell and do some basic file manipulation.
and remember, this is so important to remember. focus not on learning the language, but rather learning to learn. what i mean by this is, don't just google the answer. google ideas around the answer. google adjacent to your goal and fill in the gaps. then google adjacent to adjacent answers and fill in the gaps further. google concepts, google broad scope solutions. and adapt these things into whichever language you're working in. the better you get at reading a solution in any language, and casting it to yours, the more useful the internet will be to you. and the easier a time you'll have adapting to new languages.
OSSlayer2153@reddit
Yep, you need curiosity. When I was learning swift questions would pop into my mind. Id see some interesting syntax and think “i wonder why that works” “or i wonder if i changed it in this way” or just any question - thats curiosity. Then id go and google it and Id learn about this new feature in swift and the reasoning behind it etc. If something just didnt make sense to me, why does it have to be written that way, etc, I would look that up too.
If you don’t naturally get questions like that which appear in your head then I dont know how to help you though.
TallGirlKT@reddit
I started from low to high level: Assembly, C, C++, Java, C#
Many-Resource-5334@reddit
I will always find people starting with ASM impressive. How do you have that much determination?
Maui-The-Magificent@reddit
I am not saying this in an attempt to dismiss assembly an not impressive, it is. But something I don't like is that people seem afraid or look at assembly languages as something where understanding is unattainable to all, except for a select few.
the lower level programming you do the simpler it becomes. Computers do very simple things, its just that they do a lot of them very quickly. Assembly is one level of abstraction above machine code and uses a lot of bit manipulation. Bit-wise operations are very simple to understand, and you get to decide what the bits mean.
Having said that, some assembly languages are harder than others and don't mistake simplicity for being easy.
OSSlayer2153@reddit
Its more like the max of the complexity of the language (higher level = more complex) and the complexity of what you are trying to accomplishz
deadcatdidntbounce@reddit
No choice. Basic is really frustrating and very slow to get anything done.
Acorn Atoms had a RISC 6502a at 2 MHz but the ROM allowed users to write assembly easily and the books/user manual explained how to grab control from the machine etc. 6502 being RISC has only 56 instructions. It doesn't take long to learn the various binary algorithms, two's compliment etc. before long you're writing the apps you're taking for granted now as ROMs yourself. My first big project was a word processor, because there wasn't one. Word Wise came out the year after I wrote it.
TallGirlKT@reddit
It helps you understand memory allocation, pointers and how to control hardware peripherals and write drivers. If you don't care about any of that, then start with a higher level language.
TheeManhole@reddit
I think going from high to low level would be much easier and natural
HawH2@reddit
bs advice a beginner has no need to learn assembly
StructureLegitimate7@reddit
I recommend c. It’s the easiest to learn.
imascreen@reddit
I asked god to choose the best for me , searched in Reddit about programming languages then ended up learning C# and I'm super happy with it
imascreen@reddit
A fellow redditor recommended C# as a good language to start with , I tried it and I'm super happy with it
Raevain@reddit
Lua because I wanted to make a Roblox game
Responsible-Row366@reddit
Depending on your goal.
example,my goal is to become an ai engineer so I choose python.
Musicworldinthehouse@reddit
Applied to whatever available job openings started with react, going strong and good
bigdawgie@reddit
The wand chooses the wizard, Mr. Potter
fromage9747@reddit
I chose mine from my personality. I am a very rule and organisation driven person so I went with typescript. Happy as a pig in shit.
hridiv@reddit
For me, it was the one that my school taught (Python).
In any case, I think people have it wrong. The important question shouldn't be - which language to choose? It should be - which field to choose? Once you have figured out the field that you want to go to, choosing the language shou;dn't be hard
rab1225@reddit
Ruby and its framework Ruby on Rails is the language I got curious about AFTER spending hell in college because me and Java(the language they taught us in college) have a love/hate relationship.
Fun fact: my thesis even got rejected at one point because i was not using Java. I was trying to do something with machine learning, and I was planning to use Python, this is back in 2013 ish since python was becoming popular then. Reason was that NONE of the professors know python and insisted I use Java instead.
deadcatdidntbounce@reddit
Late seventies:
School had a Research Machines computer in the school office which the students all shared. That sharing got old quickly. That was Basic I think.
Spend days in the library looking at all the different languages to decide what to learn for myself. Eventually, it became obvious that Basic and assembler were the only viable choices. I wanted something like ALGOL but I didn't know where to find a set of compilers at my level. Sadly I didn't see a C book on the shelves at the time. I was about ten.
All the microcomputers of the 1970s had a version of Basic. I bought myself an Acorn Atom - same people that created ARM - and programmed that in basic and 6502 assembly, which the Atom ROM made easy to use inline. Then bought a BBC B.
University courses were usually based on Pascal in my day, late 1980s, but I learned 68000 assembler to write a Forth interpreter for one late course. Basic was done, Pascal was so the students learned to use subroutines not write spaghetti code.
Taught myself C (Borland C++ on 85743 5.25 inch floppies) in a job in a derivatives hedge fund in 1991. The company used visual basic - the original - and I wanted something quick for the trading floor because computers (386 variants) were too slow to price derivatives in a reasonable time. Our floor was the very very last of the barrow boys, for that reason.
pandafriend42@reddit
I didn't. The first course at university was Java.
Personally I recommend either Python or Java. For Web stuff Javascript could be a good first language, but it has some rather strange design choices. C# is also fine and especially for GUI stuff a good choice. Especially if you want to develop stuff for Microsoft Office, but overall it has probably the easiest to use GUI tools. It is probably the easiest to set up, just install Visual Studio and you're done.
Another advantage is that after the log4j incident some corporations who previously used Java switched to C#, so it's a good pick for working in the IT departments of many non IT related corporations. It also has good documentation. For starting out game development it's also a good choice, because the Unity Engine utilizes C#. It's well documented by Microsoft and the Documentation is written similar to a guide.
Java gives you more insight into the Code. While C# is the easiest to set up it also generates a lot of stuff in the background and overall you have less control. You can mess up your project by removing/moving/renaming files outside of Visual Studio.
Java on the other hand is showing you everything. That's why it's slightly better for getting a full grasp over your program.
But that should be of secondary concern for a beginner.
It's also easier to set up cross platform. While technically Visual Studio works on Linux too it can be a pain to set up.
Regarding IDEs you should pick up Eclipse or IntelliJ IDEA. Personally I recommend the Community Edition of the latter, but Eclipse is also fine.
A downside is that setting it up is not as trivial as installing an IDE, you need to install Java separately or set environment variables. You can also download it through IntelliJ IDEA though. Also you need to pick a distribution, but it doesn't really matter which one you pick (I'd recommend Temurin, but that's due to licensing, which is not something a private coder needs to care about).
This still isn't very hard, but I've seen people struggling with it.
In my opinion Java is slightly easier to follow than C#, but that might be because it was the first language I learned.
When it comes to Python it's a good language for beginners, because it's syntax is very simple. It also uses an interpreter, which means that no separate file for running it needs to be generated. This enables it to change stuff while running the code. The downside is that it's slower, but that's not something which matters for a learner.
But even at a later point it's fast enough for most things. The only time when it wasn't fast enough was when I had to process large amounts of training data through my own algorithms (the German Wikipedia).
The downside is that it hides a lot of things. So while it's much easier and faster to learn than most other languages you also learn less about programming, because the language does it for you.
That shouldn't be a huge issue, but it should be kept in mind.
For setting it up I'd recommend using a Conda environment. That's a whole different topic, but in practice you only need to install Anaconda and learn how to create environments, which is very easy to do and enables control over which version of Python to use, because each environment has its own list of packages (which includes Python).
You also can use Jupyter Lab, which enables the use of Jupyter notebooks, a special type of file for carrying your code. That's also where the strength of it being an interpreted language really shines, because you can separate your code into fragments and run them separately. It also supports markdown and text, which means you can get nicely formatted tutorials in the shape of Jupyter Notebooks and can write down notes without relying on comments only.
You should also install a linter and code completion for jupyter lab. A linter is a piece of software which tells you when your code doesn't follow conventions. In practice that means writing easier to read and better formatted code, if you follow what the linter tells you.
For web development there's no way around Javascript. Under javascript.info there's also a great tutorial.
I only started to learn it last year, so I'm far from an expert, but I don't think it's a bad language for beginners. However it has some weird design decisions.
prodleni@reddit
I kinda just picked based on what I needed. Lua because as a kid I wanted to make Roblox games, then Python because it was easiest, then Java because it was being taught at school, then PHP for a summer job, etc.
RandomUserOmicron@reddit
I bounced around starting with MATLAB and hopping around C++, C#, Java, Python, R, C, Rust, Zig, and Go.
Of those languages I enjoy programming in C, Java, C#, and Python.
Big-Ad-2118@reddit
whats your idea? one time i want to build websites, i was choosing between php or javascript but i ended up using javascript
LowProfile404@reddit
I learn the one my school was teaching lol. It was Java.
Rockarmy321@reddit
Did that for the exact same language and now i don't remember a single bit of it
LowProfile404@reddit
Oh what language do you program in now?
SmallPlayz@reddit
Probably for the best.
KarlJay001@reddit
this
NewPointOfView@reddit
same language for the same reason haha
sayasyedakmal@reddit
Start with what you going to build or what is your end goal.
Then, learn the basic each one. Get you feet wet with the syntax, tooling(IDE, compiler, runtime, supported OS or platform), and optionally some history(and some industry trends)(this is just to see where your heart and mind will go).
Then, choose your personal favorite. That is your languange.
Last but not least, keep your option wide. Sometimes more than one language can have the same purpose and learning more than one language is good for long term.
virtualrsmith@reddit
I started with what was available to me easily. For me that was QuickBasic4 when I was 9 years old. (Yes, I am old) Then moved to Visual Basic. Then in High School first did C++ and Java. C# was just coming out when I graduated. DId Java and C++ in college. Haven't touched C++ since. Done some java, mostly for android dev.
EntertainmentNeat931@reddit
what do you want to build? use that.
SirGreenDragon@reddit
If you are in school, learn the one that you know the least about that fulfills the requirements. If you want to work on a project, see if you can figure out which one works for the thing you want to build. Other than that, it should be Swift because Swift is amazing.
mierecat@reddit
Ruby because I like how it looks and the philosophy behind it
Agreeable_Hall458@reddit
For the love of all that is holy, do not start with C++. 30+ year programmer here. I’ve written plenty of C++. It’s a miserable language to learn and if you start with that the odds of you continuing on in programming are much less than if you start with something like python.
Which one you choose depends on what you want to do. If you primarily want to build front end code - learn JavaScript/TypeScript. If you want to do data analysis- learn Python.
For resume driven development- look through Indeed or LinkedIn jobs and see what is hiring.
LoneArcher96@reddit
I was 13 and I wanted to know two things
Researching back then on which language to start with if I wanna make a game, and I found bias towards VB dot net (which is weird to me thinking about it today), started with it, used it for years until I was 17, I discovered Unity, and it was my transition from VB to C#, never back again.
I played a bit with Python and C++, even made medium projects with both of them, C# stays my all time favorite and best mix between ease and control and performance.
ask me today, I will tell you know your goals first then you can easily choose a first language.
for example Python is well known today for scripting in the fields of AI, data analysis and visualization, go for it if you want something easy and wanna focus on the task more so than having full control.
if you want something high performance low level for making sophisticated apps and being so close to the hardware and managing everything (think developing game engines from point zero and big apps like photoshop and 3d editors etc), C++ it is
C# if you want something in the middle for desktop or web dev
if you wish to program front end for web then it's mandatory to study HTML, CSS, and JS.
end goal is everything.
kirstynloftus@reddit
Started with Python because it was required my first year (stats major), then went to R as most of my classes used it. I know a little HTML/CSS too, basic stuff really, wanted to make a web app with user interface so I learned what I needed to
uceenk@reddit
i mostly choose language that are popular or available immediately in front of me
my dad own book on Basic, i was so fascinated by it, i read multiple times
i even attempted to write the code on paper since we didn't have PC yet
once i got computer, my dad introduced me to pascal (only give me floppy disk that he brought from his office)
bought a book and playing with it
on this moment i decided want to be a coder
when GUI application got more popular, i want to build something, bookstrore clerk recommend me to Delphi and Visual Basic, i bought both
i feel VB is more easier, so i learned that and ditched Delphi
i wanted to go uni on cs major, sadly my dad got fired, he couldn't afford uni, so i went to 1 year course instead and learned web development
learned html, javascript, PHP, Oracle, Mysql, ASP.net (including C#.net)
love both PHP and C# equally, after graduation i applied job several times and got a job on small software house
they mainly use PHP, so i use PHP more
one day my boss brought couple of books like python, ruby, objective-c, J2ME
we were told to read it and pick 1 technology and spend at least 1 hour everyday to learn it
i picked ruby and eventually learned Ruby on Rails, wow the syntax feel so cool, i told my boss that ruby is so much better than PHP, more faster to develop etc etc
couple weeks later he brought a ruby project and told me and my friend to work on it, so i switched completely from PHP to Ruby
in this company i eventually become lead developer, taught many new recruits ruby
after spent 3 years, i quit and become self-employed
during this time i played with golang, erlang, objective-c, but never go deep only learned on surface level
at 2018, i burned out, i no longer have motivation to learn new programming language anymore
so since then, i only stick with Ruby
these day, i want learn more about AI development (python), rust and flutter, but it's so hard to step aside time, just don't have energy anymore, my main job already drained me
Quokax@reddit
I didn’t choose my first language, my computer science teacher did. The first language I learned on my own was Swift and it’s still one of my favorites. I like it because you can use emojis in your code.
zipqt@reddit
I learned Java because a friend recommended it. Not a bad first language. I would go with either Python (simplicity, widely used) or C# (very good for learning OOP, also widely used) for a first language. The language you pick first doesn't matter as much as it may seem, so just pick up and get to learning!
steveplaysguitar@reddit
For my first degree in automation engineering I learned C++ and PLC ladder logic. It was what was required of me.
Now I'm majoring in data science for degree 2 and fairly solid at python. I genuinely love doing machine learning and working with data. I'm a finance geek so during the winter break I started coding my own financial programs for trading lol.
Wooden_Philosophy396@reddit
Start with Python or Java both are relatively easy for beginners (Python is the easiest to comprehend imo). Then work to other languages, just pick up a language and then try to learn others, doesn’t matter that much what to choose.
blight231@reddit
Just pick one.
I would do python to start. Then move to a more low level language with a compiler like C++
Maui-The-Magificent@reddit
The first language i chose to learn myself was Rust. C# was my first language, but it was "forced" upon me.
freakytapir@reddit
The one the school made us learn?
babypho@reddit
"We use this at this company"
"Ok"
RajjSinghh@reddit
I started with Python because my school taught it. Then I moved to JavaScript because it was popular. Then I went to university, did more Python, Javascript, then started C, Haskell and C# because my university taught it. Then my final year project I needed performance but something more ergonomic than C, so I chose C++ for performance and the STL. Then I tried Rust because it was popular but didn't like it.
TrenaissanceMan@reddit
C++, C#, Javascript are all good to learn and sorta similar.
cguti94@reddit
Trial and error. I am completely new to programming and started learning C++, Python, Go, OCaml, looked into Zig, and Rust. (Not at the same time) Something clicked with Rust and I enjoy learning it.
Putnam3145@reddit
I used what I needed to do what I wanted to do. It was Lua. Very little about its design has helped me in what I actually do. Your first language doesn't really matter.
baileyarzate@reddit
Become very proficient one of them (C++), then all other languages is just learning the syntax and how it’s different than your initial learned language. As you scale, you can start to see the benefits / weaknesses of each language.
NothingWasDelivered@reddit
Just find whatever Learn To Program curriculum you like (whether it’s formal or video courses or whatever) and go with what they teach. The concepts will all translate to pretty well through most modern programming language.
Mahjongasaur@reddit
Years ago, my brother said “I’m building this website, but I only want to do the backend. Learn JavaScript while building the frontend for me, thanks”
And learn it I did. Still love JavaScript. And then he said “I want to make a game in Unity, so learn C#”. Turns out, I also love C#.
Moral of the story, any language is good. Decide what you want to make, pick a language well-suited for it, and go for it
Dpope32@reddit
Data/AI/ML: Python Web: TypeScript/JavaScript Mobile: React Native (primarily TypeScript) Low-Level Control/System: Rust Job Market: C++, C#, .NET
Also, there’s much more to programming than just languages. Framework driven development is a mindset not a skillset
Tasty-Chipmunk3282@reddit
Tcl/Tk might seem a bit out of fashion, but it lets you build graphic programs in no time
FornPreakzZz@reddit
I am currently doing a retraining to become a developer. In school we learnt the absolute basics in C#, Java, Python and JS.
In the company where I am doing my mandatory internship, they first gave me a Udemy java course to complete, and now I am programming my Project for my exam in C#. So I am proficient in both java and C# but the decision was because I needed to learn them for my company, but I would probably gone with C# myself, as Microsoft has a very good learning platform that you can use completely for free.
TCB13sQuotes@reddit
This is 2025, pick JavaScript/TypeScript. Everything else will, eventually, fade away.
dzpoa@reddit
Web, PHP, 20+ years ago
h4570@reddit
I personally wanted to do something specific. There were many tutorials in VB.NET in this topic and just tried.
SheebaSheeba5@reddit
School or work goals. What do you want to achieve or make?
Aglet_Green@reddit
I really had no choice in the matter. My computer only had Commodore BASIC on it. Well, PET BASIC or whatever it was officially called.
Mediocre-Gazelle-400@reddit
Decide what you want to develop, then find out what program languages will be best suited for your goals.
Strange_Space_7458@reddit
I went to college for a CS degree and took the classes as they came.
zxcvbnm9174@reddit
python choose me
ovjrehfw@reddit
I learned C because I thought it would teach me some basic concepts. It was cool. Then I went to Python for leetcodes/codeforces, then C++. I like C++. I want to learn C# now.
JimmDunn@reddit
which companies have money to pay me? the ones using microsoft.
ReverendRocky@reddit
I picked python because its easy for begonners and lots of training materials for it.
Now i prefer doing stuffs in javascript mostly ngl
supercoach@reddit
JavaScript or typescript?
ffrkAnonymous@reddit
Choose? We had fortran and c. Some weirdos learned pascal.
dudeman618@reddit
Are you in school or at a job? Find out what is the common language most people are using, this will help for sharing knowledge. You need to learn concepts and functions, most functionalities have similar concepts across different languages, so once you learn how to break down concepts you can translate into a new language. I'm a data guy, so SQL is my go-to. Learning an object oriented language would be great, most everything is at this point, but I'm old enough to have converted from scripted to object oriented language, it's a different way of thinking. Find a business group or online group where you can share knowledge, practice presenting your projects and communicating with others, this is always a good skill for anything you do.
rawcane@reddit
Started with Basic, learned a bit of C in a course, got introduced to Perl through my first job which to me was just like C on steroids (or maybe acid) and used that for years. Spent a long time not coding because manager then recently started learning Dart because I wanted to make a mobile app and Flutter seemed like the best option. Oh and did a bit of Python along the way but it annoyed me because of the whitespace thing and the fact it was just less useful than Perl.
dboyes99@reddit
Look at the problem first. What characteristics does it need? Once you know that, language choice is obvious.
Super_Letterhead381@reddit
Python because I'm interested in data (it's linked to my interest in libraries).
Aztarium@reddit
Started with C# Windows forms on a highschool course (game programming- technician), it wasn't difficult for me and I was able to transfer that knowledge easily to other languages. Last year (2024) I taught python to highschool/technicians also and it was awesome.
My suggestion would be to start with python, grab some book: AI's automate boring stuff, or think python, or python crash course: a hands on introduction (my personal favorite) and start building, just go for it!
Beregolas@reddit
I started with what my university gave me. The language you start in doesn’t really matter in reality. Some make grasping certain concepts a little easier, but in the big picture, it’s like the difference between picking up a cordless or a corded drill first.
melody_melon23@reddit
Assembly, C++, Java, and Python
AbdErahman_007@reddit
I think programming language is just a tool, choose the most useful tool for your needs, if you don’t know what field you are interested in just follow any readmap or program like CS50
EtTruciMesorem@reddit
I started with something easy like python, then moved to C to learn more about how to mess with memory and build up my knowledge and understanding to help me with high level OOP, then assembly because it interested me. Finally did Java. Think I’m gonna master python fully tho, and then maybe get my hands wet with C++
ern0plus4@reddit
Started with Assembly (6502, later 68000 and 8086) and programmable calculators (TI-59 and similar), so I know not only how computers work, but I appreciate confortable high-level languages, smart editors etc.
I started programming with Basic, later MUMPS, then Pascal and C, and it was a joy to able to "expand" the language with my own "instruction" (functions). Then learned Java and OOP, it helps to build complex systems - don't believe to OOP haters, it's a logical step forward, although, it's easy to overengineering things.
Recently I'm learning Rust, which have a bit less OOP, which is cool, and provides lot of goodness. If you know the low level, you'll love Rust.
newodahs@reddit
Professionally, I went low to high here. Assembler (x86 and Motorola 68000), C/C++, Java, Perl, PHP, Python, Golang
All out of necessity of work; there are a smattering of others from hobbies, but didn't really count those much these days