Learning C++ programming language

I wouldn't recommend you any languages for getting started but more starting getting some more general knowledges first or you might stuck really fast and just give up on c++ or any other one.

The important thing is not the language itself but the goal you have and wich language(s) fit the best with it.

If you still wishe to start directly to learn c++ without specific goal try to take some good habits along you are learning it.

Planning your code before writing anything to verify your logic first, is really important and doesn't require much knowledges as long you understand basis of any languages.

Try to challenge yourself aswell. If a part of the book / tutorial / video tutorial you decide to follow is talking about something specific try to build something a bit harder yourself just ... play around you know ? :) learning doesn't mean don't have any fun. And when you will encounter some epic fail trust me you will get a lot of it :D

If you hurt some walls don't give up internet is the biggest dev community ( ironicaly ) you will always find a ressource or forum that can help you.


Here are some interesting websites:

https://www.thenewboston.com/ ( don't have much feedback on it but seems really popular and videos seems to be made by pro )

https://www.codecademy.com ( great content for learning python if you decide to give it a try, interactive on top of that ! )

If you are familiar with IRC there is a lot of bearded dev ready to help as long they have time for that and if you do the effort to work a lot on your side.

And then if you want to use books then i will be glad to ask someone with more c++ knowledges than i have and ask him to share them here :)

Good luck to you !
Hf :)
Last edited by Heli0nix on Oct 22, 2015, 12:11:35 AM
"
Heli0nix wrote:

https://www.thenewboston.com/ ( don't have much feedback on it but seems really popular and videos seems to be made by pro )


Yeah, thenewboston has some ~4000 videos on their Youtube channel. I used to watch them when I was learning Visual Basic
You make my ochinchin go doki doki.

I don't recommend learning from TheNewBoston unless you're doing it just as a hobby or you're wanting to see an example of X after having a good understanding of what you're doing already. I truly feel as if his channel is just for people not knowing anything and just want to muck about. He's a good alternative to other methods of learning, but I just believe in the traditional way.

I personally recommend that you start on Google and go from there. There's plenty of great websites for whichever language you're trying to learn - in your case, C++. I'd also recommend joining a subreddit for programming as that's always a big help. Join a C++ forum as well, just for a greater audience for feedback.

I also recommend you check out 'livecoding.tv'. It's a website specifically for livestreams of programming. It's great for seeing how real programmers go about real problems they come across while working on a project of their own. It's truly great for understanding how to break down issues you're encountering and how to get through it - even when it seems like there's no light at the end of the tunnel.

Quora(.com). This is the place to go if you have a question about anything that you're working with or anything that's on your mind. StackOverflow is a great, reputable source of learning information, but Quora is slightly different and just as good. It doesn't hurt to have more than one source of gathering information. It's great if you have any question, period. Programming or not. There is people with real knowledge on this website and you would be a fool to not take advantage of it.
Last edited by Kreskya on Oct 22, 2015, 4:44:58 PM
"
Mephasm wrote:
If you just want to make games I would suggest you start with Unity, and C# language.

Unity is totaly free, even for professional use (assuming you make less than 100k/year from development) and there are many many tutorials.

C++ is powerful, but very archaic. I wouldn't learn it unless you absolutely need to, like if you want to work on game engines.

saying c++ is 'very archaic' is really wrong, no matter what semantics for 'archaic' you use.
backend of nearly anything that requires performance and efficiency runs on...c or c++

majority of games use c++. majority of servers use c++. embedded systems or systems where resources are a constraint use C. operating systems are mostly written in C/C++. linux kernels are built on C

c++ is the ultimate language in terms of flexibility. it doesn't hide anything (well compilers are another topic) and you get as much rope as you want. sure you can hang yourself, but if you are good, you can be God. most other languages that are higher-level hide behind abstractions. at some point not knowing about anything underneath will bite you in the ass

Ive used a good amount of C# at work, and I'll say when it comes to making anything serious, I would not be doing a project in C#. C# is basically a .NET, less portable java with a lot of cool things such as intuitive generics, LINQ (probably my favorite feature in C#)and other goodies. It's a fun language to use and fun language for getting something done quick (python while being very different definitely qualifies here even more); if something is performance-unimportant and you want it to run on windows, C# is definitely a great language to use.

however, lack of real memory management is already a huge major strike for a *serious project*, just as it is with java.

the garbage collector might be very smart, but it isn't smarter than a good programmer. with C and C++ you have deterministic memory management. with java and c#, you just do not. and while it might be 'friendlier', once you start writing efficient code that deals with managing resources without leaking, things like disposable pattern, finalizers and wrapping them in a using block imo are way more confusing to a newbie than 'kosher' RAII-based straightforward destructors where YOU control WHERE and WHEN memory is deallocated
Last edited by grepman on Oct 25, 2015, 8:50:47 PM
a good starting point if you are actually interesting in programming, imo is actually learning basics of architecture. basically CPU (+pipeline), clock, memory, I/O, virtual memory, caching. doesnt have to be in depth but kind of basics. then basics of assembler. just basics so you know whats underneath the language. C/C++ is compiled directly into binary so then thats the next stop.

my favorite stackoverflow question that I always bring up when someone asks 'why learn about the underneath stuff'

http://stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster-than-an-unsorted-array


personally when I was learning programming back in school, the vertical visualization really helps put it all together. you learn how your computer really works, from hardware transistors to ALU doing work in CPU doing logical operations to assembler to C/C++

if you just want to learn programming as a tool to do things fast without worrying much about underneath performance and other stuff, python is pretty good. other scripting languages can be friendly. MATLAB is great for science modeling and other stuff (frankly its like a programming language in its own nowadays- havent used it since college)

UNITY is mostly a graphics engine that mostly allows C#-style scripts (if I recall correctly- never used unity so just from what Ive read) and to put together a game if you have assets for it.

I think learning coding for UNITY specifically, is not a great idea. It's kinda like learning chemistry to be a nuclear physicist. the leap is too great, there needs to be an intermediate kind of a step to your learning process, otherwise you will be overwhelmed

"
grepman wrote:
UNITY is mostly a graphics engine that mostly allows C#-style scripts (if I recall correctly- never used unity so just from what Ive read) and to put together a game if you have assets for it.

I think learning coding for UNITY specifically, is not a great idea. It's kinda like learning chemistry to be a nuclear physicist. the leap is too great, there needs to be an intermediate kind of a step to your learning process, otherwise you will be overwhelmed



Unity also allows for Javascript and Boo, which is similar to Python IIRC.

UE4 allows you to code in C++. Their Blueprint feature is a godsend.
You make my ochinchin go doki doki.

I used to have an interest in coding back a few years ago, I tried out Python 3 and most of my programs ended up being math based loops to solve tricky math problems. I'm sure that type of thing is very useful for programmers, but math was never an interest for me, therefore I also lost interest in programming as well. I used an udacity course when all udacity courses were completely free and I was learning a lot of interesting things, I just ended up not having an practical use for anything I was learning, besides trying to solve complicated math problems.

I wasn't looking to learning coding for a job though, just for personal knowledge and to contribute to some small open source project, but my main problem was finding practical applications for what I was learning.
"Come along fool, a direct hit to the senses will leave you disconnected."
"
grepman wrote:
Stuff


Yeah, but the OP asked for:

"
mjkittredge wrote:

I just want to create something super basic like pong to start off, just to see some kind of result that works and be proud of it that I grasped the basics, feel like I'm making progress. Branch out with more complexity from there.


I'm just speaking from my personal experience as someone who tried to start with C++ many years ago. I ended up getting bogged down and gave up after about 2 months, which then gave me the false impression that programming was just too difficult. Its not, I was just trying to swallow a watermelon whole.

I reccomended Unity and C# (or Java) because they are easy to learn and you get to see results, which is perhaps the most important part of the learning process. It is also a more practical place to start, especially if you plan to become an indie developer. Because unless you have a very generous friend who is a graphical artist, you will need to learn how to make models, textures, sprites, etc, yourself. This will consume the majority of the time it takes to make a game, even one with shitty graphics. One way of sidestepping this is to use procedural generation for terrain, think Minecraft or Terraria. But depending on what type of game you want to make, this might not be possible.

If your end goal is to be a programmer, sure learn C++ its a great language, but if you want to be a game developer I would go with unity first. Unity will help you achieve results, which is what most game studios look for. They want to see what projects you have worked on or completed, and usually don't care much about education.



Last edited by Mephasm on Oct 27, 2015, 6:49:18 PM
I started with Harvard's CS50 course which you can do online for free: https://www.edx.org/course/introduction-computer-science-harvardx-cs50x

And if you need the uni credits you can pay for a certificate (90 bucks or so).

Best starting point when it comes to learning programming as a complete noob imo.
GGG banning all political discussion shortly after getting acquired by China is a weird coincidence.
I recommend finding simple sample code and open source projects once you got the very basics. Its much easier to understand the 'how' and the 'why' by looking at working code rather than simply be given the tools (in tutorials and lectures) and then be expected to know what to do with them.

I would suggest modifying a MUD until you feel you are ready to create something of your own from scratch. http://www.mudconnect.com/resources/Mud_Resources:Mud_Code_and_Snippets.html
For years i searched for deep truths. A thousand revelations. At the very edge...the ability to think itself dissolves away.Thinking in human language is the problem. Any separation from 'the whole truth' is incomplete.My incomplete concepts may add to your 'whole truth', accept it or think about it

Report Forum Post

Report Account:

Report Type

Additional Info