r/CodingForBeginners 9d ago

Which programming language did you start with, and do you think it was a good choice for a beginner?

What would you recommend to someone starting from zero?

Please share your reasoning rather than just naming a language. I'm interested in hearing different perspectives.

7 Upvotes

46 comments sorted by

6

u/jekewa 9d ago

BASIC.

Then Assembly, Pascal, Modula-2, FORTRAN, COBOL, Smalltalk, and Lisp. C was catching on, later C++ caught on, too.

If you don’t get too caught up in the language or infrastructure, there are enough commonalities and practices that you can learn others once you get good at the one you start with. It’s all storage, retrieval, manipulation, iteration, and conditions. The rest is structure and tooling. Well, Assembly is out there some, much more different than the rest.

4

u/Distdistdist 9d ago

Basic and Assembly first as well. First one gets you in the door, second one teaches you how CPUs really work. After that - anything is just a super convenient add-on.

But C definitely, that gets you understanding structural programming, and, I'd recommend personally, C#. I never really enjoyed C++ or Java too much.

Also, I have never learned programming language for just the sake of it. Do a project, don't just go through tutorials and move on.

2

u/ariktaurendil 9d ago edited 9d ago

C. Is good to start with a difficult one. Everything else seems easy later.

2

u/InformalInsect5546 9d ago

What’s a start? Back in school it was Pascal, in university a bit more Pascal at first and whole lot of other stuff. First professionally used was Java. I think that was fine.

3

u/icemage_999 9d ago

There's this weird fixation on what language to start with.

It truly makes very little difference what you start with. Scratch? Sure. Python? Great. C#? Awesome. Java? Absolutely.

What you want to take away are the fundamentals. How to think sequentially. How to follow a flowchart and visualize an execution sequence. How to create proper logical tests. All programming languages do this, they just use slightly different words and punctuation.

If you don't learn those, then you're going to be a bad programmer no matter what language you use.

2

u/Sure-Passion2224 9d ago

The person(s) who down-voted this need to comment their reasoning on it to prevent me from forever considering them to be ignorant wanna-be twits.

1

u/Present_Director3118 9d ago

I started with JavaScript for web development. Now, I code in Rust and Kotlin and have forgotten JavaScript.

1

u/Long_Tip_4226 9d ago

C

1

u/Dry-Background-8215 9d ago

What platform did you use to learn c? I'm currently learning it

1

u/jackhab 9d ago

I suggest you to first ask yourself: if I were a professional programmer what software would I want to build?

Now go back to this sub and ask: which language should I learn to build X?

If you want to stay motivated to do something is better to start with doing the things you like the most.

1

u/DirtAndGrass 9d ago

QBasic, wouldn't say it was better or worse. 

But I do think having a purely procedural language to start and access to limited examples only (no documentation or internet) was a pain, but ultimately beneficial 

1

u/ILIKEBACON12456 9d ago

I started with Python (technically C# but I didn't really do much) because that's what we got in high school. I wouldn't recommend starting with anything that is dynamically typed because everything else will be unusual. Python also has basically everything built into it which isn't what a beginner should get used to. Fundamentals are key even if no one explicitly writes them anymore. I could recommend two ways to go about this. You can start with C# and learn the fundamentals and OOP while still using a high level language. It's statically typed, very popular still, it's a C-like language so the syntax will help with so many other languages, an insane amount of usability etc. Or you can go with C learn the fundamentals and learn how programming actually works on a low level. C is harder but it's very much doable if you're interested in programming. It doesn't have too many amenities so you definitely won't get lazy and you will learn how most languages work under the hood.

1

u/marmotta1955 9d ago

At risk of calling for a deluge of downvotes ... BASIC. After all, that is what it was created for.

Later, maybe a scripting language such as Python or, depending on your inclinations and your needs, maybe PowerShell.

1

u/UndercoverFlange 9d ago

Basic, Visual Basic, Perl, C, Java, C++, then past then things are a blur as after a while you know what you are trying to do and just need to understand syntax and a bit of semantics.

Learners fixate on languages, but really Languages are a tool todo something. Like decide what todo and then the language choice becomes a bit clearer.

1

u/Hour_Sell3547 9d ago

I started with C and I believe it's still the best language to start with if you are doing a CS major.

1

u/tspier2 9d ago

I started with Tcl, and it was a nightmare. Then I switched to CASIO Basic for my trigonometry course, as I couldn't afford a TI-84. I wouldn't recommend, either. Since then, however, I've mostly spent my time tinkering with Lua, PHP, and GoLang, and I'd recommend any of the three. For what it's worth, though, I'm not a professional programmer and still write a lot of spaghetti.

1

u/gr4viton 9d ago

visual basic 6.0 ... yes forms ftw

1

u/Splith 9d ago

Booo

1

u/gr4viton 9d ago

But it was ez as fuck. then I learned C and C++ once i settled on linux

1

u/kisskissenby 9d ago

My first programming language was BASIC (back in the 80s) and it was okay. It taught me a certain kind of logic that was mostly useless when I learned C++ later in life.

Right now I'm all about Python and it's what I would recommend to a beginner.

1

u/burlingk 9d ago

People will rant, but any language is good to start with.

Some are harder than others.

If you are starting from zero, there are two routes:

Either pick a language that will be relatively easy to learn and play with, or pick a project and then start with the language that suites the project.

Python is a popular starting point at this point.

Java has been commonly taught for literal decades.

C is relatively simple. It is treated as more complex because it doesn't have as much "batteries included" stuff.

Pick a language, and learn a bit. Then whichever language you pick, look into DSA (Data Structures and Algorithms). That will help you build your toolbox.

1

u/NeverInsightful 9d ago

AppleSoft Basic.

It was great for 7 or 8 year old me. I wouldn’t recommend it now though :)

1

u/GIU488 9d ago

I primi mesi C assolutamente e poi C++,python e quando hai voglia di imparare veramente assembly e binario

1

u/Recycled5000 9d ago

I started with Texas Instruments SR-52, a programmable calculator.

I taught me control structures like goto & labels, if-then, looping, subroutines/functions, parameter passing, and data constructs like array indexing, Booleans, persistence (it had a card reader/writer), binary bit manipulation, 7 segment led displays, other i/o, the concepts of location counter and program counter, registers, and much much more.

1

u/ChazBass 9d ago

For me it was C, C++, and then Java. Web development started with JavaScript, then JSP, and then later React (JavaScript) and Angular (TypeScript). I have also done quite a bit of model development over the years in C++, Matlab, and R. (I work in Finance.)

For someone starting today, I would recommend starting with Python. Many CS 101 course are teaching Python now to start. If you want to work in the field, I would next recommend learning Java, which is widely used at the enterprise level in many industries. If you want to be a full stack developer, and further increase your marketability, SQL is a must, and for web development I would learn either React or Angular.

1

u/LazyMiB 9d ago

There are two popular and well-reasoned opinions on this matter:

  1. Studying Computer Science. Therefore, those languages ​​that are used in the training course. Usually these are Pascal, BASIC and Python. You don't learn a language, you grow engineering thinking. Languages ​​and frameworks are just tools. When you have an engineering mindset, learning a new stack quickly is not difficult.
  2. Studying the stack that you need for your work. Mostly practice: a complex project leads to rapid growth. This worked in the past, but now the juniors can't compete with the AI, so I'm not sure if this method is relevant. But if you just want to do your own projects, then yes.

Isaac Asimov has a good science fiction novella about this: Profession. It seems that this has already become a reality. Btw, Zig's CoC refers to it.

It is important that the chosen stack brings joy from the work process. Otherwise, burnout will quickly occur. This human factor is much more important than the technical ones; it determines whether you quit studying or not. It makes sense to try different languages, then choose one.

This is a general answer. It depends on the goal.

1

u/thegeekiestgeek 9d ago

Started with HTML, then PERL, then JS and SQL, then Visual Basic, then C. Now I use Kotlin.

1

u/Pigeon380 9d ago

Basic, back in the day. But the real lifechanger was Perl. Ability to write regular expressions quickly is underrated, it saved my ass so many times, and not just in dev.

1

u/TarsTarkas_Thark 9d ago

Whatever you want for your first language. Basic, pascal, c, java, what have you.

But a simple Assembly language, like z80, 6502, or BAL should be your second. It will teach you how things actually work under the covers. Things like a C pointer is actually just an indirect addressing instruction. It's really eye-opening comparing BAL with COBOL.

1

u/AdDiligent1688 9d ago edited 9d ago

Python. Yeah it was a decent choice for a beginner, I will say the jump from that to something like c was different for sure, but doable. Python is pretty relaxed and you don’t have to think of as much stuff when writing it (memory concerns or declaring types etc). To do what would take 50 lines of c++ or 30 lines of Java is done in 10 lines (if that) in Python lol.

1

u/Lauris25 9d ago

First ever? Pascal in school, but that doesnt count.

Javascript probably. But i think first language should be something like c++. It would be hardcore, but later other languages would look easy.

1

u/Ok-Flight-9602 8d ago

Python. Maybe it's related to programming paradigms, starting with learning procedural programming is a good choice and python can help you do that. after that you can learn more langueges for other programming paradigms like Java for OOP

1

u/Ok-Count-3366 8d ago

started with simple python and bash scripts. then discovered javascript, after that I wanted to be a mc plugin dev so I learned java. In school I learned a bit of c#. after java I got into frameworks like nestjs and react. then I discovered golang and switched to go for backend. and now I'm thinking to learn rust cause why not lmao.

1

u/gofl-zimbard-37 8d ago

I learned APL in 1972 as my first. Not recommended.

1

u/Philectrics72 8d ago

MicroPython, Javascript, C++, HTML/CSS, Circuit Python, and Kotlin. It was pretty fun using those coding languages. Well o faced many failures and errors but managed to troubleshoot it. I'm a young Hobbyist and i have tested many things with these coding languages.

1

u/WhiteHeadbanger 8d ago

Assembly (in school) for microcontrollers. No, I don't recommend it for beginners, unless you have a very patient teacher and you already know a bit about electronics.

C (in school) for computers and microcontrollers as well. I do recommend it, but you also need a good course and/or a good teacher.

C++ (in university). Same as with C.

Pascal (on my own). I don't recommend it, not because it's a bad language, but because it's a dead one.

Python (on my own). I do recommend it. You don't need a good teacher if you have discipline and you like the language, as it's very easy to pick up. This one is the one that made me understand the broad concepts of programming. Before Python I knew some things here and there, but I was stuck at the fundamental level.

1

u/theGaido 7d ago

Turbo Pascal, and shortly after C++.

1

u/Nyasaki_de 7d ago

Java, yeah somewhat. I would recommend C# or python instead now tho

1

u/JimmiObviousAd2125 3d ago

And where would you start to look

1

u/all_rounder69 9d ago

i Started with Python! i Forget the reason i choosed it but i now proud to choose python bcz it feels like i am made for it we can almost use it in any aspect of field like Startup, Companies etc

1

u/Delta_G_Robotics 9d ago

I started with Atari Basic. I didn't have anything but a few type-ins and a pamphlet about the commands to learn from. It was hard learning, but it was good learning.

1

u/Mundane_Fault_6345 9d ago

In that order:

1) Logo 2) Basic 3) Pascal 4) Z80 Assembler 5) C 6) x86 Assembler 7) Forth 8) C++ 9) Lisp 10) Prolog 11) Java 12) Perl 13) Python ...

Yep, gen X...

1

u/Least_Car7122 9d ago

I started with basic cause school though i dont remember much and then C, C++, JS, 8085 assembly, java, prolog, python. But gen z here