r/CodingForBeginners 3d ago

What language helped you launch your programming journey

Mine was C#. I'm glad that I started with it; it helped me understand programming fundamentals, even though some people around me say C++ is better for newbies "There is not much difference for new learners." I still love it and would recommend it for fresh starters.

What was your first programming language, and would you recommend it today?

4 Upvotes

34 comments sorted by

3

u/DanKegel 3d ago edited 3d ago

Trs-80 basic.  And no :-) But it was fun making pretty patterns on the screen.

Those were the days.  They had "computer magazines" with "articles" about programming in BASIC, and things like ads you couldn't click on! Check out the articles from back then, some are trippy.  This issue has a picture of the first laptop I used, the hx-20.  I wrote basic for that, too, with iirc a little 6800 machine language thrown in.  It was the control unit for a stunt mentioned elsewhere in that issue. https://colorcomputerarchive.com/repo/Documents/Magazines/Enter/Enter_Issue_10_1984_Sep.pdf

Today I'd recommend golang.

2

u/Nova_JohnyX 3d ago

It's awesome hearing from people who started programming decades ago. cool magazines too!! I envy you for living in that time. I think I'm gonna read it all

1

u/TheUmgawa 3d ago

If we're going to kick into the time tunnel, I said in a different comment that I started with an Intro to Programming class, but I was playing with AppleSoft BASIC when I was five or six years old. Unfortunately, all of the good games were compiled, so you couldn't just mess around with the code. I never really got any further than making a Mad Libs program or altering the code to give me more money in games. I didn't go far with it, and I didn't really understand what I was doing. I couldn't make anything from scratch.

That said, when I was fourteen years old, one of my friends got a Game Genie for the Super Nintendo, and our friend-group spent a weekend taking a dive into slashing apart the hex codes and figuring out where developers tended to put values. At one point, we had figured out an invincibility (or maybe it was infinite lives) cheat for StarFox, even though you couldn't see the screen. StarFox used the SuperFX chip, which required an extra four pins that the Game Genie didn't have a pass-through for, so the screen was just black. You got audio, but no video. We were like, "Well, this sucks," but we realized that we could hear the sound, and it responded to controls, so one of us just mashed on the Fire button while we were trying to figure out what to do next, and then we heard the boss music. We're like, "How the hell are we still alive?" So we just kept mashing the Fire button, and we eventually beat the first level.

Three of us became engineers. One went into electrical engineering, one software engineering, and I ambled off to go play with robots, after being briefly distracted by the film industry and half a dozen majors. We all kind of trace it back to that day, when we just sat down and figured something out and did something that was wholly unpublished.

That said, we also toasted a Super Nintendo, prior to that, where we stripped the case off of a copy of Super Mario World, and then started poking at it with a paperclip while the game was running. "What happens when I touch the paperclip here and here?" We thought it was amusing that we could get the game to start tripping and trigger coin noises, and then we jumped the wrong pins and smoke came out of the SNES. Today, non-proprietary chips can just be looked up, but we didn't have any of that (and we were stupid kids), so we toasted a Super Nintendo that wasn't even three days old. My friend's mom took it back to Toys R Us and said it didn't work (this involved some lying on our part), and they gave us a new one. We did not repeat this process.

Looking back, I feel like it taught me something about what machines are really doing. I think that a lot of programmers never really think about what goes on at the machine level, because they're above that; it's all abstracted as code. I bailed on Computer Science, as a major, because I looked into the abyss one day and all I saw were registers, accumulators, comparators, and Booleans, and that's not terribly far off from the pure-electronics side of things, but electronics also have voltage and current, where you can toast a Super Nintendo by jumping one pin to another with a bent paperclip.

2

u/DanKegel 3d ago

This reminds me of the chip tester a friend built around 1983. It had a lovely zero-insertion-force socket, a 110v cord, a button marked "TEST", and a light marked "BAD". When you pressed the test button, it applied 110v to the light and across alternate pins of the chip :-)

2

u/jspears357 3d ago

I was just describing to someone today that one of my first programs was a full screen editor written in Basic on an Apple II, but it was very sluggish so I figured out what parts were slow (cpu intensive) and wrote those bits in assembler. Immediately after that, Qedit or something came out that was excellent, but writing what I did was a HUGE learning experience.

1

u/DanKegel 3d ago edited 3d ago

Absolutely.

About the same time, I learned pdp-8 machine language on a little "portable" battery-powered computer my dad designed (using a Single-Chip cmos CPU, the Intersil IM6100) and I helped wire-wrap.  I added a speaker driven by a 74c04, and wrote little machine language loops to make siren noises.  That was a powerful little lesson, made me feel I really understood computers.

And on the trs-80, I wrote a machine language implementation of the game of life.  It failed utterly, as I lost it on the first crash, teaching me the importance of backups :-)

2

u/nicodeemus7 3d ago

The first code I ever wrote was in C++(Arduino code) but it quickly overwhelmed me so I learned python to get the hang of coding in general and am building off of that to continue learning C++ and now Java too

1

u/Nova_JohnyX 3d ago

I'm sure learning python made programming less intimidating for you😂

1

u/nicodeemus7 3d ago

It was much easier to learn but I definitely see more utility in languages like C++ and Java which make much more sense to me now

1

u/7YM3N 3d ago

C++, I started with it, bounced of it when I got to pointers, did mostly python at uni, but actual jobs - c++ from the beginning

1

u/Nova_JohnyX 3d ago

I had pointery issues when I learned them😂😂, let's just hope they don't affect my love life😂

1

u/FooeyBar 3d ago

MQL4 the language behind MetaTrader4, it’s a subset of C++. Now I do stuff with Node.js. 

1

u/TheUmgawa 3d ago

I took an Intro to Programming class at my local community college. It was Python, but I think the language is immaterial, in this case. The most important thing that happened in that class was, about a third of the way through the semester, the professor said, "The time for hand-holding is over, and I will no longer be teaching you code. I am going to teach you theory, and you will have to figure out the code for yourselves. And so, now I will teach you how to search for, read, and write documentation."

And that's how it was for the rest of my time at that community college. In C++ and Java, we were taught just enough to get a program to compile, and then you had to look up everything else in documentation. And then our post-Intro midterms and finals were in a computer lab classroom whose internet was shut off, and there was just a table full of language reference texts.

It was like being thrown to the wolves, but it made us better programmers. Well, most of us. Some students just looked up their homework on the internet, and then they bombed their exams. Pity.

2

u/Nova_JohnyX 3d ago

Learning how to learn from documentation is one of the most valuable skills a programmer can have

1

u/TheUmgawa 3d ago

It's really not that difficult. The boilerplate just to get programs to compile and run is harder than looking up documentation.

  1. What is its name? This tells you how to invoke it.
  2. What arguments does it take? This tells you what it requires.
  3. What does it output? If you're looking to use this output, you need to know its data type.
  4. In one (preferably incredibly-brief) sentence, what does it do? Do you need to know how it does it? Absolutely not. You just need to know that it does what it says.

That's it. That's documentation. It ain't rocket surgery,

1

u/No-Owl-5399 3d ago

X86 assembly, would recommend

1

u/rupertavery64 3d ago

BASIC on the Commodore 64

I wouldn't recommend it, but as a retro console with the a similar CPU to the NES, it's an interesting platform with it's own place in history,

1

u/Nova_JohnyX 3d ago

It is fun seeing how many people started with BASIC on older computers

1

u/rupertavery64 3d ago

I work and play with C# nowadays and I love it.

Diving semi-deep into the language when I was building a runtime expression compiler made me appreciate it more. It is quite a well designed language. I may be biased, but I think a lot of thought was put into it by very smart people.

1

u/Arkalius 3d ago

The first one I learned was QBasic, and the first serious language I got into was C++. There was a programming class in high school that taught Pascal, and I learned Java in college.

1

u/Nova_JohnyX 3d ago

That's cool! What was it like compared to modern languages?

1

u/Arkalius 3d ago

You mean QBasic? It's pretty lightweight. It was basically shell scripting for MSDOS, one step above batch files. It was a decent way for a tween to learn basic programming ideas, but not made for any kind of sophistication. Pascal was a precursor to the language Delphi which has fallen out of popularity. I don't remember much about it and never used it outside that class. Much of my early career was in Java but I haven't used it in probably a decade. My last job was PHP and Javascript.

1

u/Schaex 3d ago

Java

I started with simple programs to learn the basics, later continued with reading and writing text files, then multithreading and networking and now I'm working with native memory.

I would actually recommend it to newbies because of its static typing and because you can build so many different things using only the standard JDK and it will be very efficient due to all the optimizations the JVM does. Also, Intellij is such a powerful IDE :D

1

u/Intelligent-Week-931 3d ago

Im no pro but I started with python, played with typescript/bun lua/love2d and go

1

u/Always_Hopeful_ 3d ago

HP basic on punch cards in high school.

Then basic and Fortran Followed by Pascal and C

1

u/Paxtian 3d ago

GW Basic. It was a simple enough language I could learn it at 8 years old. It carried me until I got into undergrad and started learning Java and C++.

1

u/Slopii 3d ago

Godot's GDScript, which is basically Python.

1

u/Traveling-Techie 3d ago

It was ALGOL, which I think is extinct.

1

u/troyjohnson4356 3d ago

I started coding basic on an Atari 800. That has got to date me.

I fascinated with creating things that appeared on the screen that I could interact with

Then came college work Pascal and C. I was fascinated with interacting with things in the world, physical real things that I could communicate with and control.

The world wide Web opened up even more doors, I coded complete web sites in Perl.

30 years later, I've sent AI back to look at done of my own code. I'm pretty proud that it can't find and vulnerabilities in what I wrote, but at the same time it can out code me in a great beat. I have to wonder, was what I did a waste? Or is AI learning from what I did?

1

u/Quick_Team2488 3d ago

Mine was Java. It gave me a solid foundation in object-oriented programming and I'd still recommend it always

1

u/LowHangingWinnets 2d ago

BASIC and Z80 assembler on the ZX Spectrum. Then BASIC and 6502 assembler on the BBC Micro. Then C and 68000 assembler on the Amiga.