Best way to learn C++? (Or other better languages)

Monado_III

Well-Known Member
Member
Joined
Feb 8, 2015
Messages
722
Trophies
0
Location
/dev/null
XP
1,443
Country
Canada
That is so false, in my experience teaching friends/coworkers starting out with C# then moving onto C++ is way faster than both C -> C++ and moving directly onto C++.
It's also faster from what I've seen for beginners to just start with C and then write homebrew in that. Why learn C#->C++->C++ homebrew when you could just go like C->homebrew + C++->C++ homebrew. C# would act as more of an introductory to programming concepts and stuff if you're just going to learn C++ right after that (and possibly never need C# again). And there's no need to learn a whole language when you could just learn programming concepts online. Just my 2 cents.
 
  • Like
Reactions: TheToaster

zoogie

playing around in the end of life
Developer
Joined
Nov 30, 2014
Messages
8,560
Trophies
2
XP
15,000
Country
Micronesia, Federated States of
Everybody arguing about what language to start with lol.

What happens is people simply recommend the language they started with. Nobody here for sure can determine if they would have been better off learning that language as opposed to something else. You can't 'redo' being a beginner and put your theory to the test.

So it's a pointless argument. Just starting any language is the important thing.
 

TheToaster

Kishore
Member
Joined
Aug 11, 2015
Messages
467
Trophies
0
Location
USA
XP
979
Country
United States
It's also faster from what I've seen for beginners to just start with C and then write homebrew in that. Why learn C#->C++->C++ homebrew when you could just go like C->homebrew + C++->C++ homebrew. C# would act as more of an introductory to programming concepts and stuff if you're just going to learn C++ right after that (and possibly never need C# again). And there's no need to learn a whole language when you could just learn programming concepts online. Just my 2 cents.

And on top of that C# is a Windows only language, so many of the concepts you learn will apply mostly to Windows only, and therefore useless to homebrew development. There is no need to learn a full programming language which you will never use. Now, aside from the fact C# is a "newer" and "cooler language, it by no way provides the amount of low level manipulation that C++ provides. And to quote a book I read, "C++ is like a road. You can go anywhere you want, but there are no boundaries and traffic lights to keep you from getting hurt."
 
  • Like
Reactions: Monado_III

Monado_III

Well-Known Member
Member
Joined
Feb 8, 2015
Messages
722
Trophies
0
Location
/dev/null
XP
1,443
Country
Canada
And on top of that C# is a Windows only language, so many of the concepts you learn will apply mostly to Windows only, and therefore useless to homebrew development. There is no need to learn a full programming language which you will never use. Now, aside from the fact C# is a "newer" and "cooler language, it by no way provides the amount of low level manipulation that C++ provides. And to quote a book I read, "C++ is like a road. You can go anywhere you want, but there are no boundaries and traffic lights to keep you from getting hurt."
This, was going to point it out that it's Windows-only, but thought that people would just say that it's irrelevant even though for someone using linux, like me, it's kinda a big deal if I can only use mono and use several workaround just to run basic stuff. Why I intend to eventually learn python as my goto language for more basic stuff.
 
Last edited by Monado_III,
  • Like
Reactions: TheToaster

mbcrazed

Well-Known Member
Member
Joined
Nov 10, 2012
Messages
695
Trophies
1
Location
GBATemp
XP
2,082
Country
United States
If you learn C++ first all other languages will seem easier to do, and it can be used in the future. I've always seen programming languages go hand in hand with each other. I personally learned JavaScript first. (Don't really consider it a language. Not object oriented.) Then I learned C#, and now I'm learning Python. I think if you don't have programming experience at all then you should start with Python. It's easier to learn and reads better. However, C++ gives you a LOT of individual power as a programmer to make stack-level and system-architecture level decisions, which is not possible with Python very easily. If you don't want to learn Python, then I'd just go with Learning C first. That's my input.
 
  • Like
Reactions: zoogie

Monado_III

Well-Known Member
Member
Joined
Feb 8, 2015
Messages
722
Trophies
0
Location
/dev/null
XP
1,443
Country
Canada
If you learn C++ first all other languages will seem easier to do, and it can be used in the future. I've always seen programming languages go hand in hand with each other. I personally learned JavaScript first. (Don't really consider it a language. Not object oriented.) Then I learned C#, and now I'm learning Python. I think if you don't have programming experience at all then you should start with Python. It's easier to learn and reads better. However, C++ gives you a LOT of individual power as a programmer to make stack-level and system-architecture level decisions, which is not possible with Python very easily. If you don't want to learn Python, then I'd just go with Learning C first. That's my input.
So I guess C isn't a language either?? OO isn't the make-or-break for programming languages, lots of times OO isn't necessary in the slightest (read: this TLDR: It isn't always necessary but some devs treat it like a god-sent command of how you have to do things when it really isn't). /end mini rant
 
  • Like
Reactions: mbcrazed

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,405
Country
United Kingdom
Everybody arguing about what language to start with lol.

What happens is people simply recommend the language they started with. Nobody here for sure can determine if they would have been better off learning that language as opposed to something else. You can't 'redo' being a beginner and put your theory to the test.

So it's a pointless argument. Just starting any language is the important thing.

Though I do largely agree with the "everybody programs very well in the language they first learned" thing there are wrong answers to the question of the first language to learn, and I am not just talking about the esoteric stuff and Basic.
 

filfat

CTO @ Nordcom Group Inc.
Member
Joined
Nov 24, 2012
Messages
1,261
Trophies
1
Location
Gothenburg, Sweden
Website
www.sweetsideofsweden.com
XP
1,749
Country
Sweden
And on top of that C# is a Windows only language, so many of the concepts you learn will apply mostly to Windows only, and therefore useless to homebrew development. There is no need to learn a full programming language which you will never use. Now, aside from the fact C# is a "newer" and "cooler language, it by no way provides the amount of low level manipulation that C++ provides. And to quote a book I read, "C++ is like a road. You can go anywhere you want, but there are no boundaries and traffic lights to keep you from getting hurt."
Um, no C# hasn't been a "Windows" language for the last 5-7 years, heck it recently went open source on top of that.
That were true back when C# didn't compile and just ran on top of the .net subsystem (kind of like Java is today) but we moved on from that a long time ago.
Also, just learning coding for homebrew is stupid, why not use the acquired skills to actually make something that you can sell?

So no, starting with web then moving over to C# and lastly C++ is a great idea as it is the fastest way to reach the whole market.
 

TheToaster

Kishore
Member
Joined
Aug 11, 2015
Messages
467
Trophies
0
Location
USA
XP
979
Country
United States
Um, no C# hasn't been a "Windows" language for the last 5-7 years, heck it recently went open source on top of that.
That were true back when C# didn't compile and just ran on top of the .net subsystem (kind of like Java is today) but we moved on from that a long time ago.
Also, just learning coding for homebrew is stupid, why not use the acquired skills to actually make something that you can sell?

So no, starting with web then moving over to C# and lastly C++ is a great idea as it is the fastest way to reach the whole market.

...Who cares? This thread has completely turned into a debate on programming languages.
My point was that C++ is not a bad first language.
So, for the OP, the point is you should learn whatever you feel comfortable with. If you want to start with C# or C, that's fine. If you want to jump right into C++, that's fine too.

Case closed.
 
Last edited by TheToaster,
  • Like
Reactions: filfat

filfat

CTO @ Nordcom Group Inc.
Member
Joined
Nov 24, 2012
Messages
1,261
Trophies
1
Location
Gothenburg, Sweden
Website
www.sweetsideofsweden.com
XP
1,749
Country
Sweden
...Who cares? This thread has completely turned into a debate on programming languages.
My point was that C++ is not a bad first language.
So, for the OP, the point is you should learn whatever you feel comfortable with. If you want to start with C# or C, that's fine. If you want to jump right into C++, that's fine too.

Case closed.
No, no, I didn't mean that C++ is a bad language to start with (I started with it). I just gave my recommendation on the fastest route in my experience :)


Cheers! :)
 
  • Like
Reactions: TheToaster

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,405
Country
United Kingdom
Also, just learning coding for homebrew is stupid, why not use the acquired skills to actually make something that you can sell?

We are going to have to disagree on that one. Having a work-hobby split is something I see a lot of people seek and coding is a fine hobby.
 

Tomy Sakazaki

Well-Known Member
Member
Joined
Oct 23, 2006
Messages
880
Trophies
0
Website
Visit site
XP
812
Country
Brazil
IMO the language itself don't matter at all if you are starting learning how to program because you won't use specific features of the language in this stage, essentially the differences will be only how you write the commands itself (lexical differences, like the signal to attribute a value in a variable is := in Delphi but it's only = in C, C++ and Java) and the complexity will lie in what development environment you'll be using and how you'll setup it.
In this stage I recommend that you first learn how to do simple tasks directly in RAM, like sorting numbers in a array. Then learn how to deal with text, how to prevent out of bound situations while dealing with arrays and strings.
Then learn how you can make data structures to mix and group information together (and that can lead to actual object orientation paradigm).
Only after this, learn how your language of choice deals with files (how you load files, how you can manipulate it's contents and how you save it).

After you get the grasp on how to use the language you'll be starting using specific features of that language like how to program using Object Orientation, how to optimize code for embedded hardware, how you can develop web services, homebrew at consoles and the list goes on. At this stage you'll start using features that your chosen IDE will have (if you hadn't before).

Like some people said, one thing that will help you to program anything, with any language, learn how to break down your project in steps, if possible plan ahead of time how you'll break those steps in smaller steps until you find an optimal scale of project.

Learn to put on paper your ideas and how your programs will do things, at least try to learn how to draw a flow graph of your first tutorial lessons. Even if in the end don't use this tool in your everyday programming, you can eventually resort to it to actually see where you're doing something wrong when things don't work the way you intended.
 

TheToaster

Kishore
Member
Joined
Aug 11, 2015
Messages
467
Trophies
0
Location
USA
XP
979
Country
United States
Try this.
https://www.google.com/url?sa=t&sou...c47B4o&usg=AFQjCNF7jAoDyDmZFQ7zYkOFMhwgVE4YuA

This is where I first learned C++ when I was just 13 years old. After reading this, get a more advanced C++ book, like "Professional C++ 3rd Edition " by Marc Gregoire. Learn about how C++ works and the OO paradigm. You will need to wait before making Homebrew, start on PC first and build up to Homebrew. This way, you can set a goal for yourself.

If you are planning on doing advanced things like creating DS emulators, exploitation and ROM hacking. I would look at ARM assembly and get fluent in how the DS/3DS works.
 

Pleng

Custom Title
Member
Joined
Sep 14, 2011
Messages
2,444
Trophies
2
XP
2,832
Country
Thailand
C++ is like a road. You can go anywhere you want, but there are no boundaries and traffic lights to keep you from getting hurt."

So it's not much like a road (on which you can only go places it goes through, and which does feature boundaries and traffic lights) then!
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: I wonder how much damage it did to crts VS flat screens