Page 1 of 3

Learning C++

Posted: 31 Mar 2019, 17:36
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.

Re: Learning C++

Posted: 31 Mar 2019, 17:54
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.

Re: Learning C++

Posted: 01 Apr 2019, 15:39
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

Re: Learning C++

Posted: 02 Apr 2019, 14:50
by sirherrbatka
Python is a weird language. I don't think it is all that great the first language.

Re: Learning C++

Posted: 02 Apr 2019, 15:16
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.

Re: Learning C++

Posted: 03 Apr 2019, 11:29
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.

Re: Learning C++

Posted: 03 Apr 2019, 14:21
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.

Re: Learning C++

Posted: 03 Apr 2019, 14:50
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.

Re: Learning C++

Posted: 03 Apr 2019, 17:56
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.

Re: Learning C++

Posted: 03 Apr 2019, 22:59
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.