Learning C++

Not about OpenMW? Just about Morrowind in general? Have some random babble? Kindly direct it here.
User avatar
ArashiAganawa
Posts: 74
Joined: 02 Feb 2017, 02:11

Learning C++

Post by ArashiAganawa »

As I stated earlier this year, my goal after getting married is to learn some C++ and join the project in whatever capacity I am able. To that end I am seeking out your help. What I would like to know is where I should go to learn (aside from family) and what applications do you suggest I use? If you have a reservoir of data I can dive into that will help me get started, I'd be very happy if you could point me in its general direction. If there is a way I can also practice it on my phone (Android Galaxy S9) then that too would be great, as I am often on the go these days.

It's a passion of mine to help out in this project. As stated before, this is literally a dream come true for me. Aside from bug testing (which I don't ever report on because I keep forgetting) I want to do all I can to help this project grow.
User avatar
AnyOldName3
Posts: 2668
Joined: 26 Nov 2015, 03:25

Re: Learning C++

Post by AnyOldName3 »

What experience do you have of programming in general? There are reasons why jumping straight into C++ with no prior experience of anything might not be the best idea ever, as you'll have to learn the language, and programming in general, and memory management etc. all at once.

My usual recommendation for people who've never done anything before is to try CodeAcademy's free Python course, as Python's pretty good at just letting you get on with things. When you're confident that you have the basics of things sorted, picking up new languages is much, much faster.
User avatar
ArashiAganawa
Posts: 74
Joined: 02 Feb 2017, 02:11

Re: Learning C++

Post by ArashiAganawa »

AnyOldName3 wrote: 31 Mar 2019, 17:54 What experience do you have of programming in general? There are reasons why jumping straight into C++ with no prior experience of anything might not be the best idea ever, as you'll have to learn the language, and programming in general, and memory management etc. all at once.

My usual recommendation for people who've never done anything before is to try CodeAcademy's free Python course, as Python's pretty good at just letting you get on with things. When you're confident that you have the basics of things sorted, picking up new languages is much, much faster.
Ya know what? It's been over a decade since I've done anything with coding... so I'm going to start there. That's probably for the best lol.

Thank you for pointing me in the right direction! :D
User avatar
sirherrbatka
Posts: 2159
Joined: 07 Aug 2011, 17:21

Re: Learning C++

Post by sirherrbatka »

Python is a weird language. I don't think it is all that great the first language.
User avatar
AnyOldName3
Posts: 2668
Joined: 26 Nov 2015, 03:25

Re: Learning C++

Post by AnyOldName3 »

Most of the inexcusable weirdness (like mad variable binding) went away with Python 3. The rest of the weirdness mostly related to using slightly nonstandard type names (such as dict instead of map and just having list instead of separate arrays, vectors and lists), and most people can probably cope with that.
User avatar
sirherrbatka
Posts: 2159
Joined: 07 Aug 2011, 17:21

Re: Learning C++

Post by sirherrbatka »

Strange mathematical operators overloading ([0]*5]), hidden type casts ([True, False][False]), no way to do a proper multi threading, classes don't define members like in a typical language, arbitrary syntax limitation for lambdas, very original syntax for other stuff... There is still a lot of weird things about python that seem normal only for programmer that already knows it.
AosSi
Posts: 5
Joined: 30 Mar 2019, 19:07

Re: Learning C++

Post by AosSi »

Since we are giving useless advices here, let me pitch in as well. If it is really the very first encounter with computer languages and you are doing it for general self-education rather than a specific purpose, then I would recommend to pick up something without gc (garbage collection). Since it appears that for many people who started with gc languages it is very hard to start thinking about memory management.

As to my personal preference, why not to start with C? From what I saw it is much easier to read for people with little coding experience (compared to C++ for example), it is used in many major projects, and later easy to expand your knowledge to C++ if that is what you are aiming for.
User avatar
AnyOldName3
Posts: 2668
Joined: 26 Nov 2015, 03:25

Re: Learning C++

Post by AnyOldName3 »

I cannot disagree more with the above post. Learning how to trick a rock into thinking for you (i.e. general programming skills) doesn't require any knowledge of memory management. It's not even that common to use C-like memory management any more even in languages which support it - smart pointers and the like are easier to use and safer. Learning that each malloc gets a free and each new gets a delete (unless there are smart pointers involved) isn't that hard to pick up later.
AosSi
Posts: 5
Joined: 30 Mar 2019, 19:07

Re: Learning C++

Post by AosSi »

Sure, there are a lot of languages that do many things for you without you having to worry about them. Like I said, it depends what he is interested in. If it a specific project he wants to start as soon as possible, then sure pick some light with straightforward syntax and "one obvious way to do it" language (again I think C++ doesn't fit into this category) be happy that it automates many things for you and treat it as a black box.

But if he is interested about programming in general and how things work, starting with a language that does many things you have no idea why or how might be very frustrating.
User avatar
raevol
Posts: 3093
Joined: 07 Aug 2011, 01:12
Location: Caldera

Re: Learning C++

Post by raevol »

Guys, let's not forget that this guy is just starting. Let's not scare him off with decades-old language hatreds.

Basically any commonly used programming language is a good choice to start, as long as you learn the strengths and weaknesses of each language down the road when you are ready to tackle bigger stuff.

Python is a great place to start because of the amazing documentation it has. Sure, it has bizarre quirks once you start getting into more advanced stuff, but so does every language.
Post Reply