Entrance Chat Gallery Guilds Search Everyone Wiki Login Register

Welcome, Guest. Please login or register. - Thinking of joining the forum??
February 18, 2026 - @625.32 (what is this?)
Activity rating: Four Stars Posts & Arts: 83/1k.beats Unread Topics | Unread Replies | My Stuff | Random Topic | Recent Posts Start New Topic  Submit Art
News: :seal: Thank you for today! :seal: Guild Events: There are no events!

+  MelonLand Forum
|-+  Virtual Worlds
| |-+  ❤︎ ∙ World Building
| | |-+  is c++ too much for a beginner?


« previous next »
Pages: [1] Print
Author Topic: is c++ too much for a beginner?  (Read 389 times)
eternalworm2008
Jr. Member ⚓︎
**
View Profile WWWArt


⛺︎ My Room

Artifacts:
Joined 2026!
« on: February 10, 2026 @294.10 »

my only experience with coding is html and css, if you even count that. i have pretty much abandoned html and tried a little bit of c, but ive shifted my focus to c++, mainly because i would like to make a game, more details about that here;

https://forum.melonland.net/index.php?topic=5210.msg50315#msg50315

my ultimate goal with progamming is to make my own operating system from nothing, including my own language, compiler, bootloader, kernal etc. all hand made. reading osdev, im many years from doing this, im not even learning c. but its a nice thought. i might make it a bit bloatware-like by adding my own search engine, image viewer, video player, mp3 player, text editor, etc.

essentially, i want to be someone, i want to become someone who did something cool and is respected for it.

i wouldnt mind becoming a meme, like terry davis, any kind of attention.

 :eyes:
Logged
Tuffy!
Full Member ⚓︎
***
View Profile WWW


⛺︎ My Room

Guild Memberships:
Artifacts:
Lovey DoggoFrom Tuffy with ❤️Met Dan Q on Melonland!Joined 2025!SideEyeDoggo
« Reply #1 on: February 10, 2026 @340.29 »

You got my attention. I would like to participate in the alpha and beta testing of your operating system. I always enjoy trying out new things. Just make sure to support old hardware as some of my machines  :pc:  are kind of antique  :transport:
Logged

Proud member of the NEW
Forum Revival Movement


Artifact Swap: Wurby
Dan Q
Sr. Member ⚓︎
****
View Profile WWWArt


I have no idea what I am doing
⛺︎ My Room
RSS: RSS

Guild Memberships:
« Reply #2 on: February 10, 2026 @467.94 »

@Tuffy!: I left a message on @eternalworm2008's profile page a while back about how I learned (what little I know about) how to write an operating system from scratch. There's a book recommendation there, if you're interested.

Anyway, onto the question of programming languages:

The old saying is that C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your leg off.

Personally, I don't think the choice of what programming language to learn first is particularly important. There are so many different languages in so many different paradigms, and increasingly it doesn't matter much which you write because all the major general-purpose languages are pretty-well optimised for all kinds of purposes nowadays. Just about the only exception is if you're writing an operating system, for which you will absolutely 100% need to get a handle on some Assembly at some point. But there's no need to start with that.

The important thing to know is that if you start learning a programming language and don't "get on" with it, you should try a different one. I've known people who've tried and failed to learn an object-oriented language and, when they've not "got" it, decided that they "can't program"... but when they're introduced to a procedural or a functional language, that makes all the difference. Or vice-versa.

Aaaanyway; if we ignore declarative and markup languages like CSS and HTML for a moment, and query languages like SQL (because they can feel very different from everything else!)... if you're learning your first language: what a language is often used-for (e.g. games) is much less-important than what language "feels right" to you.

If you're not sure, I'd suggest starting with a language that's known for (or designed for) being beginner-friendly, is popular, and is well-documented. JavaScript, Python, Ruby, and C are all solid starters, and they're all quite different so if you don't like one, you can try another from the list. But again: the right choice for you might not be the right choice for anybody else.

Personally, I started in Locomotive Basic, then x86 Assembly, C, Pascal, Delphi, Perl, Java, PHP, ASP Classic, JavaScript (and some dialects of it), C#, Ruby, Go... probably some others along the way. I've enjoyed them all in their own ways, with the exception of Java (which I don't personally get on with) and ASP Classic (which is just catastrophic).
Logged


Artifact Swap: PolyamorousI met Dan Q on Melonland!Joined 2025!Lurby
eternalworm2008
Jr. Member ⚓︎
**
View Profile WWWArt


⛺︎ My Room

Artifacts:
Joined 2026!
« Reply #3 on: February 10, 2026 @518.39 »


I would like to participate in the alpha and beta testing of your operating system.

youre going to be waiting quite a while, as i havent even been coding for two months....
Logged
eternalworm2008
Jr. Member ⚓︎
**
View Profile WWWArt


⛺︎ My Room

Artifacts:
Joined 2026!
« Reply #4 on: February 10, 2026 @520.56 »


JavaScript,

javascript is beginner friendly? ive only heard things about how hard it is.

anyways i will be buying a book on assembly, as there arent many youtube videos on it, im not good at learning through reading so ill have to put some extra effort into it...

Logged
Dan Q
Sr. Member ⚓︎
****
View Profile WWWArt


I have no idea what I am doing
⛺︎ My Room
RSS: RSS

Guild Memberships:
« Reply #5 on: February 10, 2026 @531.63 »

There's a lot of good things to be said about JavaScript

  • It's enormously popular, so there's a lot of documentation and tutorials and lots of people are able to help with it.
  • It can do things that no other language can, like manipulating Web pages within the browser, but it's also nowadays a versatile general-purpose language (suitable for writing non-Web applications too).
  • You need no special tooling to get started: if you have a Web browser you can start writing it: nothing to install!
  • It's relatively easy and fault-tolerant. Compared to C, for example: you don't have to learn about memory management, the difference between passing by value and passing by reference, it won't blow up on you if you accidentally negatively-index an array or something, loops are "sensible", objects are (for most people) easier to understand than structs, etc.

JavaScript has traditionally had some problems that have tripped beginners. E.g. its lack of type-safety can frustrate people (you can work around this by using TypeScript, if you care about it enough). But many of these problems are solved in "modern" JavaScript.

For example: JavaScript variable scope and definition has often tripped up beginners... but you can completely solve that by chucking a 'use strict'; at the top of your file and by using const/let instead of var. Some of its APIs are a bit wonky, like those for date processing (why is JS the only programming language to zero-index months; WHY!?)... but there are modern APIs that supercede these (e.g. the Temporal API for dates). These kinds of modern improvements and general improvements to standardisation 'fix' most of the things that have traditionally tripped-up new JS programmers.

There are still edge cases that make JS a bit gnarly... but that's true of almost every programming language. And at least in modern JavaScript they're less-likely to be things you'll find organically and be surprised by.

So yeah - I didn't always recommend JS as a starter programming language, but modern JS is much-improved and doesn't have all the same problems... and its widespread availability, versatility, and the quantity of learning resources available mean that nowadays I do suggest it as a starter.
Logged


Artifact Swap: PolyamorousI met Dan Q on Melonland!Joined 2025!Lurby
Bone-A Lisa
Jr. Member ⚓︎
**
View Profile WWWArt


Feelin' Spooky
⛺︎ My Room
SpaceHey: Friend Me!
StatusCafe: bonealisa
Matrix: Chat!

Guild Memberships:
Artifacts:
Joined 2024!
« Reply #6 on: February 10, 2026 @965.51 »

I'm going to echo @Dan Q here (Albeit with much less experience it seems lol!  :ohdear:) and say that ultimately the language you pick doesn't matter... kind of. All languages are going to be hard to start with, because you're going to be learning two things at once: How to write in X language, and more importantly, how to think about programming. The latter is significantly harder than the former and also much more important, so what language you pick will have little bearing on the difficulty of learning to program... within reason... because most of your mental effort will be spent on thinking about how to program. Of course, certain languages make it easier or harder based on their number of footguns (Looking at you JavaScript lmao  :tongue: ), but ultimately you will be shooting yourself in the foot plenty no matter the language you start in due to your lack of experience (and that's OK!). So ultimately just pick what feels the best. Try a few of them out for a week or two and see what feels best. If C++ is the one that feels the best to you, then go for it! Once you have some programming experience under your belt, you can re-asses what the language you are learning is and isn't capable of, and make the switch if something better suits your needs at that time, because learning a new language after you already understand a bit about programming paradigm is so much easier than the first time.

Now, I'll go off on a bit of a tangent and let my bias slip and say that I personally think there are two primary languages that are easiest to learn in: Python and Go, and here is why:

Python is extremely flexible, powerful, and most importantly enforces that code is readable. I started learning on Python, and reading other peoples code examples were much easier, because the way Python forces you to write code, makes your code much more readable than I found example C++ code. This is of course personal preference, but I found it a big plus for me. Plus Python is extremely ubiquitous. From games, to statistics, to scripting, to writing real applications, Python is capable of doing it all, and there are tons and tons of examples out there.

I love Go a lot, and that's because its dead simple. I am still learning Go, as I've only written like two apps in it so far, and its syntax is extremely simple and easy to use. The environment around Go has a lot of opinions that prevent you from making certain weird mistakes that other languages let you make (Not being able to compile your code with unused variables for example). The biggest downside IMO is that its so simple that it can be a bit boring at times lol :skull:

Anyways, that's my little side-tangent lol, I hope your programming journey goes well, and I too would be happy to be a beta tester for the OS you eventually write  :cheesy:
Logged





Artifact Swap: The Wizards Orblil wizsmol torchMagic CauldronditherGreat Posts Pacman
Dan Q
Sr. Member ⚓︎
****
View Profile WWWArt


I have no idea what I am doing
⛺︎ My Room
RSS: RSS

Guild Memberships:
« Reply #7 on: February 11, 2026 @439.55 »

How to write in X language, and more importantly, how to think about programming. The latter is significantly harder than the former and also much more important, so what language you pick will have little bearing on the difficulty of learning to program... within reason...

👆 @Bone-A Lisa put this much better than I did. Thanks!

Now, I'll go off on a bit of a tangent and let my bias slip and say that I personally think there are two primary languages that are easiest to learn in: Python and Go, and here is why:

Just to really hammer home the point that there's no "one right answer": I really don't like Python! I can "get by" in it, but I usually find it frustrating and (unpleasantly) surprising.

I mention this not because I think it's a bad "first programming language": I don't! Python seems to be a great first language! I mention it only to reinforce the point that the right language for you isn't necessarily the right language for me. If I'd have learned Python as my first language (and disliked it as much as I do today!) it might have put me off programming entirely, and that would have been sad. I hope I'd have had the stamina to try a second (or third!) language to see if it was a better fit for me.

So yeah, I second Python and Go as good starter languages, even though (a) I don't like Python at all and (b) I find that the things that make Go unusual (and special) might make it a weaker stepping-stone to other languages. They're both still fine. The important thing is to find the one that works for you.
Logged


Artifact Swap: PolyamorousI met Dan Q on Melonland!Joined 2025!Lurby
Bone-A Lisa
Jr. Member ⚓︎
**
View Profile WWWArt


Feelin' Spooky
⛺︎ My Room
SpaceHey: Friend Me!
StatusCafe: bonealisa
Matrix: Chat!

Guild Memberships:
Artifacts:
Joined 2024!
« Reply #8 on: February 11, 2026 @898.55 »

I mention this not because I think it's a bad "first programming language": I don't! Python seems to be a great first language! I mention it only to reinforce the point that the right language for you isn't necessarily the right language for me. If I'd have learned Python as my first language (and disliked it as much as I do today!) it might have put me off programming entirely, and that would have been sad. I hope I'd have had the stamina to try a second (or third!) language to see if it was a better fit for me.

Yea this is a really great point! JavaScript would be the same for me. I do not like working in JavaScript, even though I know its generally a really strong language that is useful absolutely everywhere. It simply didn't spark any joy for me when I was trying to work in it, so I moved on and tried something else.

Realistically even a language as challenging as Rust can be a good first programming language if it brings you joy to use! :grin:
Logged





Artifact Swap: The Wizards Orblil wizsmol torchMagic CauldronditherGreat Posts Pacman
Dan Q
Sr. Member ⚓︎
****
View Profile WWWArt


I have no idea what I am doing
⛺︎ My Room
RSS: RSS

Guild Memberships:
« Reply #9 on: February 11, 2026 @940.01 »

Yea this is a really great point! JavaScript would be the same for me. I do not like working in JavaScript, even though I know its generally a really strong language that is useful absolutely everywhere. It simply didn't spark any joy for me when I was trying to work in it, so I moved on and tried something else.

Just remember that tastes change. I used to not be able to stand JavaScript, but nowadays it's probably in my top-four "go-to" general-purpose programming languages! It's been helped a lot by the fact that JavaScript got (a) standardised and (b) better, generally... but it's probably also been affected by my changing tastes over time.

We're not one of us "finished", and we all look back with the same unfamiliarity on us-ten-years-ago as us ten-years-hence will look on us today!
Logged


Artifact Swap: PolyamorousI met Dan Q on Melonland!Joined 2025!Lurby
Rubbereon
Casual Poster ⚓︎
*
View ProfileArt


⛺︎ My Room

Artifacts:
Joined 2025!
« Reply #10 on: February 12, 2026 @680.22 »

my only experience with coding is html and css, if you even count that. i have pretty much abandoned html and tried a little bit of c, but ive shifted my focus to c++, mainly because i would like to make a game, more details about that here;

my ultimate goal with progamming is to make my own operating system from nothing, including my own language, compiler, bootloader, kernal etc. all hand made. reading osdev, im many years from doing this, im not even learning c. but its a nice thought. i might make it a bit bloatware-like by adding my own search engine, image viewer, video player, mp3 player, text editor, etc.

essentially, i want to be someone, i want to become someone who did something cool and is respected for it.

i wouldnt mind becoming a meme, like terry davis, any kind of attention.


Take my comment with a punch of salt because I'm not a proficient programner (I only know like 2 programming languages lol) and I'm going off vibes here, but I would say that yes C++ might be a little too hard to start off. To compare how difficult it is compared to other programming languages I'll use a tier list where F is baby's first steps and S is the hardest thing ever.

SAssembly + All esototeric langages
AAda (wtf is this syntax  :ziped: ) + most low-level programming languages like C for stuff like memory management and programming entire games from scratch
BJava, Rust and other programming languages that have a long-winded or complex syntax system. Just looking at a simple "hello world" Java example makes me wanna pass out  :drat:
CC++ & Most high level languages, though they vary in complexity and learning curve
D(Assuming you're not doing anything complicated) low-level programming languages like C. The basic stuff like printing text on screen or editing variables  is so simple that you can probably remake rogue in C for a game jam
EJavascript (Closer to C-tier syntax-wise, but thanks to the extensive documentation and online resources, I don't have too many issues with it) and Lua
FPython, GO, XML and HTML + CSS (Not really a programming language, but you get the point)

I dunno if others agree with me, but I reckon if I were to make a game I'd use javascript (personally) or python, not c++ also I heard it was slowly getting replaced by rust, so not ideal if you want to pivot into becoming a fulltime stack developer.


Also as for the operating system bit, note however that for your goal you WILL need to learn C, Basic and Assembly in some capacity. You can make an operating system entirely in python or C++, but it's never gonna turn out good. The whole thing is ambitious though, but even then I'm sorry to sound like a pessimist, but to take an example of what you got inspired by to pursue this dream, Terry Davis the sole creator of TempleOS had to become a person of interest to some not-so-cool internet communities and gossip forums and then end it all to achieve the fame you're trying to get, especially given the fact there are hundreds of obscure oses that aren't the typical Windows, Mac, Linux, FreeBSD and Amiga most people know about and there's a high likelihood yours gets added to the pile, but still I wish you good luck in your endeavior.  :unite:
« Last Edit: February 12, 2026 @681.62 by Rubbereon » Logged

Fuzzy fwiend
Linux user
You can also find me on Comfybox.
Dan Q
Sr. Member ⚓︎
****
View Profile WWWArt


I have no idea what I am doing
⛺︎ My Room
RSS: RSS

Guild Memberships:
« Reply #11 on: February 12, 2026 @700.16 »

HTML + CSS (Not really a programming language, but you get the point)

This one's a bit spicy for some people, but I disagree with the assertion that "HTML is not a programming language" (ditto CSS). I refer you to this Webbed Briefs video on the topic for the most-sarcastic-possible (but still accurate) explanation why, but the short of it is that just because something is a declarative or markup language does not make it not-a-programming-language, and the folks who claim that it does tend to find themselves siding with programming gatekeepers.

Also as for the operating system bit, note however that for your goal you WILL need to learn C, Basic and Assembly in some capacity.

Basic???

If you're going to write an operating system you'll almost certainly need assembly, yes. C would certainly be useful too. But Basic??? That's an interesting assertion! Where's that come from?


You can make an operating system entirely in python or C++, but it's never gonna turn out good.

I don't think you can make an operating system in Python. It's not a case of whether or not it'll "turn out good"; it's a case of whether it's even possible.

My understanding is that Python compiles to bytecode for a virtual machine (like Java does), which functionally makes it only one step away from an interpreted language. Bytecode and interpreted languages are not suitable for developing operating systems, because your output has to be able to "cold boot": that is, to run on hardware that doesn't have any software already running on it (except that which is given to you by the BIOS etc., which is effectively nothing). There does not exist any processor that can run  Python bytecode directly: it might be the case that it's impossible to build a general-purpose processor that can do so (this is theorised to be the case for all languages that require object-orientation)! When you run a Python program, the bytecode is translated on-the-fly ("Just-In-Time" or JIT) by a virtual machine, and that virtual machine only exists for operating systems (which provide it with things like the necessary process and memory management). I suppose, at a stretch, you could build an operating system that is "just" a Python bytecode machine, and then write all of the application software in Python... but then that still wouldn't be an operating system written in Python: bits of it would still need to be written in another language (probably C - the reference implementation for the Python VM is written in C!).

Now if you're feeling picky then you could argue that there exists a subset of Python that can be transpiled, via C, to machine code. But the trick there is "via C". You're "writing" Python... but really you're writing C.

So yeah: it's my opinion that it's fundamentally impossible to write an operating system in Python, not just undesirable.

C++ is certainly possible, but you're likely to struggle with a pre-UEFI bootloader because of size limitations. Suppose you're targeting x86 processors and want pre-UEFI support: the total size of your bootloader has to be no more than 512 bytes. 512 bytes! Half a kilobyte! That's almost nothing! The principal benefits of C++ over C necessarily result in larger binaries, and by the time you omit those benefits... you might as well be writing C!

(Though: fun fact - every C compiler I've ever tried adds OS-specific headers to its binaries which need manually stripping-off before you can use it as a bootloader anyway. It's amazing how bad the tooling out there is for "building an operating system!" It's almost as if it's something people don't often do! :cheesy:)

Okay, I just wrote a lot. Here's the skinny:


  • I mostly agree with your ordered list (although I don't think all esoteric languages are "hard": HQ9+ is hilariously easy, for example!)
  • I disagree with the (popular) assertion you've shared that HTML and CSS are not programming languages
  • I'm not sure why you suggest that Basic is a useful skill for writing an operating system
  • I'm confident that it's impossible to write (all of) an operating system in Python
  • It might be possible to write (all of) an operating system in C++, but only if you sometimes limit yourself to C-only features

Of course, I could be wrong! Low-level programming ain't my speciality!
Logged


Artifact Swap: PolyamorousI met Dan Q on Melonland!Joined 2025!Lurby
Rubbereon
Casual Poster ⚓︎
*
View ProfileArt


⛺︎ My Room

Artifacts:
Joined 2025!
« Reply #12 on: February 12, 2026 @816.22 »

Basic???

If you're going to write an operating system you'll almost certainly need assembly, yes. C would certainly be useful too. But Basic??? That's an interesting assertion! Where's that come from?

I didn't know it was a high-level programming language mb.
"BASIC is a family of general-purpose, high-level programming languages designed for ease of use." - from Wikipedia.

Basic is very popular on older systems like the commodore (for example LodeRunner was written in it), so going off that and given the fact games on the Nintendo 64 are usually written in C while games on the NES and Gameboy are all written in Assembly I believe, I thought Basic was just like C and Assembly.

I'm not sure if the commodore and amiga can compile and run C++, Java and Python code, that's part of why I got the impression they were high-level programming languages compared to C, Basic and Assembly which can run on something as old as the N64, Amiga and Commodore.
Logged

Fuzzy fwiend
Linux user
You can also find me on Comfybox.
Dan Q
Sr. Member ⚓︎
****
View Profile WWWArt


I have no idea what I am doing
⛺︎ My Room
RSS: RSS

Guild Memberships:
« Reply #13 on: February 13, 2026 @420.68 »

I'm not sure if the commodore and amiga can compile and run C++, Java and Python code, that's part of why I got the impression they were high-level programming languages compared to C, Basic and Assembly which can run on something as old as the N64, Amiga and Commodore.

Ah! I see where you're coming from!

By default, the Commodore 64 interpreted Basic, but compilers were available. The difference being that interpretation is "running the source code" by parsing each instruction with an interpreter, whereas compilation is transforming it into machine code that runs directly on the hardware.

It's definitely possible to write C code and compile it for a C64's 6502 processor, which I suppose by proxy means that you could theoretically transpile Python via C to something that would run on a C64... assuming that you could keep it small enough to fit into to 64K of RAM!

I don't know how feasible writing an OS for a C64 would be, though! A C64's operating system (KERNAL) is ROM-resident: it's burned-in to a chip that's soldered onto the mainboard before it leaves the factory, and can't be changed. Even its alternative OS GEOS depends first on having loaded KERNAL, so I don't consider GEOS to be an operating system in its own right. I guess I'm opinionated on OSes: if they can't self-host, they don't count! (Others might disagree with me on that, though, and that's fine!)

Plus: there's absolutely nothing to stop you replacing the ROM chip in a C64 (or whatever other microcomputer with a "built-in" OS you like) with one running an OS of your very own... or even with some kind of flash memory or perhaps some kind of BIOS so that it can boot multiple different operating systems!

I guess we came at this from different angles! When I hear "I want to make an OS" I immediately assume that we're talking about x86/x64 architecture, and that's not really fair. There's plenty of other chips out there!

But I reckon that for any of them, at least an understanding of assembly would be necessary. Assembly maps 1:1 onto machine code, and you need to have an understanding of the instruction set of a processor if you're going to write something as low-level as an OS.

So I guess what I'm saying is that if you want your own OS... some assembly is required.  :cheesy:
Logged


Artifact Swap: PolyamorousI met Dan Q on Melonland!Joined 2025!Lurby
Pages: [1] Print 
« previous next »
 

Melonking.Net © Always and ever was! SMF 2.0.19 | SMF © 2021 | Privacy Notice | ~ Send Feedback ~ Forum Guide | Rules | RSS | WAP | Mobile


MelonLand Badges and Other Melon Sites!

MelonLand Project! Visit the MelonLand Forum! Support the Forum
Visit Melonking.Net! Visit the Gif Gallery! Pixel Sea TamaNOTchi