Learn C++ with 0 knowledge in coding

>Is C++ the best language to start?
I am not brainlet, but I don't know If it is convenient to start with it (maybe I need a pre-understanding of something else?)
>From where can I learn to code [in any language]?
There's A LOT of info out there and it is very overwhelming. Where can I find a good and solid tutorial/course/info [without paying, as I am kinda poor.]

Many thanks in advance, my friends. Godspeed.

Other urls found in this thread:

amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113
Sup
youtube.com/watch?v=YnWhqhNdYyk
cs.cmu.edu/~15122/schedule.shtml
cs.cmu.edu/~213/schedule.html
matt.sh/howto-c
cert.org/secure-coding/publications/books/cert-c-secure-coding-standard.cfm?
firedrop.com/23f2d9de7281c2afabf9ccb0ddf1eddb
twitter.com/NSFWRedditGif

Generally going through YouTube tutorials for python is the best. Easy entry point.

>Is C++ the best language to start?
It's not very beginner friendly to say at the very least

>From where can I learn to code (C++)
There are a lot of shitty C++ books/tutorials out there, so be frosty. This one is really good for both beginners and intermediate developers:
amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113

Since you are not a brainlet, I'm sure you can figure out how to get this book without paying that much.

C++ has its place, but it's way too big and complicated as a first language.

Since you are planning on learning it, however, I would unironically go with C.
Unlike C++, it is a very small language with few, but fundamental and powerful features.

Just remember that good practices in C are almost never good practices in C++. This doesn't mean that learning C is a waste of time: on the other hand, it will give you the right mindset for programming in general, which is what a beginner needs thw most. Plus, C itself is widespread and useful, so it can't hurt.

I agree with this user

C++ is a shitty language.

why the fuck can anyone may want to learn c++ in 2018

Learn English first.

this

What language are you posting in?

>t. Pajet

C++ was my first language and my suggestion is learn C and Python in tandem.
C++ is much more complex and has far more gotchas. Plus the tooling is pants-on-head retarded, it's a pain in the ass even when you're not new to the language.
C is good for learning important fundamentals for lower level programming, and Python is good for learning higher level constructs.

Pajet on suicide watch

theres only one reason to learn it now days and that's game dev. everything else is better off written in memory safe cross platform languages.

time is running out
we're all gonna make it

can you still become a game dev in 2018+ ?
i want to create stuff, creative stuff
and i love computers so coding is a very logical step
i started with java, liked it, droped it because i dont know what i need
i want to work as a programmer but i dont know how to start
can anyone help me out, thanks!

...

Of course, but understand that gamedev is a completely different skill than programming.

Most hardcore programmers will find it more rewarding to code game systems than to polish a game itself.

While others have created absolutely amazing games with barely any understanding of how programming or computers even work.

thanks for the reply.
...so sould i start with python and learn the basics and then get unity and start playing around in C# while workling myself up to C++?
also do i need a CS degree for gamedev
cant i just show a nice Portfolio with a lot of games etc

>but I don't know If it is convenient to start with it
It's what good schools start with.
>(maybe I need a pre-understanding of something else?)
No.
>There's A LOT of info out there and it is very overwhelming. Where can I find a good and solid tutorial/course/info [without paying, as I am kinda poor.]
Get a book, read it, do the exercises, repeat:
Sup Forums-science.wikia.com/wiki/Computer_Science_and_Engineering

C# is a pretty good starting language and has a wide variety of uses, and for me was a good stepping stone for C++. C# hides memory management, pointers, etc. away but you still learn the concepts from a high level eg. using IDisposable types, and learning the difference between value and reference types helps a lot in understanding pointers.

I still use C# a lot because I simply don't need to get low level with C++.

That said, don't trust any single course/guide/tutorial. There's a lot of intro courses out there that are clearly not qualified.

bad bait

bump for interest

Dont want to derail OPs thread but whats the growing pains like going from JS to C++ anyone done this? How hard?

>sick of webshit JS & frameworks
>I'm JS stack, react, vue & nodejs & understand design patterns etc.

C++ is terrible to start with. Most books and resources assume you know C.

C is a nice first language though, nice primer resources, you learn a little bit of computer architecture and memory managment on the way. It's great.

Lean C first, once you have good knowledge of memory management, structs, arrays & pointers you can go for C++
C++ isn't bad by any means but it's big, you can write a book on the STL alone, learn all about OOP (structs will serve you well here), learn about data structures (it's one of the most important topics for a competent programmer) and then learn about functional programming (C++ can do this too, don't fall for the Haskell meme).

guys, can someone reply i really want to know

Anyone ever try SoloLearn?
Seems pretty good for basics, so far

you should ask

You can literally start anywhere. There are tons of guides out there for programming.

And what you should focus on depends on why you want to learn. Do you want to learn for work? Then look up the main languages in use (or if you wanna be a little ahead of the game, some rolling out into popularity). Those will provide a solid base to work from and get you in the door.

And if this is for hobby stuff, then look at whatever got your interest. Because if you really want to learn it, there is more than enough information out there and most programmers are self taught and just get the degree to be able to show jobs that they can show up on time.

> I am no brainlet

Brainlet detected

This. Though it was ASM -> C -> C# -> C++ for me

I cant speak for C++ (because I dont know it), but when it comes to self learning different languages I've always applied this:

>1. READ -as much variety as you can dont worry about understanding it all at once, you'll know what you'll need to read again.

>2. WATCH -tutorials, videos of parjeets even if they're useless and how others completed tasks

>3. DO - do little things you've learned and it'll all add up (eventually). This probably the most important part.

youtube.com/watch?v=YnWhqhNdYyk

You should take a listen to this. It's about not teaching c++ by teaching c first but instead focusing on actual c++ unique features like RAII etc.

additionally there are shitton of subtle differences where the same syntax is interpreted differently in C and C++
Personally would recommend to learn Rust before C++ since all the RAII, resource scoping and ownership is much more comprehensive and cleaner in Rust.

Youtube tutorials are completely worthless for anything related to programming, as you cannot reference code back and forth on the fly. Stop giving advice about matters that do not concern you.
Hell, if the retarded OP had any intention of learning a programming language, he would be on google looking for books or tutorials, not starting an attention-whoring thread.

Stay the FUCK away from c#
Fuck around with python or ruby for a while, I’d suggest ruby over python, then go straight into c++
Or just do c++ from the get go, it’s not a friendly language but the first language you learn is what you think in for the rest of your career, get a versatile language down early so you’re not rapid prototyping in java or some shit

It depends on what you eventually want to do with your programming knowledge.
C++ is fairly complex but it also does a good job of teaching you about some of the more underlying concepts that other languages completely gloss over.

If you plan on doing something a bit more tech orientated than front-end web dev stuff C++ is definitely a good thing to learn. It's something that is pretty invaluable as any kind of Engineer, when I was getting my Electrical Engineering Masters we had a huge focus on it right from the start.

I'd recommend Bjarne Stroustrup's Programming: Principles and Practice Using C++. He was one of the main guys behind the creation of C++ and his book is a very good entry point into programming even if you have no prior knowledge whatsoever as long as you have a good head on your shoulders.
Many entry-level books just straight up tell you exactly what to do and require almost no thinking, this one is the exact opposite. He doesn't just run you through it step by step, he explains what all the different building blocks are for, how to properly use them, and then only guides you along as you actually learn programming yourself instead of just following a script.

Don't listen to the memelords, C++ is a great language but incredibly complex.
Getting started is arguably easier on linux than on windows (stay away from visual studio as it's cancer).

I tried going from C++ to JS because jobs and i hate everything about JS, truly terrible language.

Learn the basics of C and then start C++ with the basics like arrays and pointers and then it should be easier to understand it.
Atlast thats how they teached me in school years ago

>teached me
Where do all you fucking 3rd worlders come from? Fucking hell go learn some english.

Just woke up and making sure not to write any grammar error in a Taiwanese cheese making forum is the least of my concerns.

TLDR: Pls sir no bully or rape u next week bitch lasagna

>3rd worlders
Im from the India and we are not 3rd worlder country. English is shit sometimes. Sorry.

Why is visual studio trash?

VS is great. The thing is almost nobody actually uses more than a tiny amount of its feature set, so in a lot of cases you'd be more efficient resource-wise by using a different IDE.

>Im from the India and we are not 3rd worlder country.
:DDDDD

Every beginner should start out on SQL and perhaps html5.

>50gb install size
>loads 3 years on every startup
>requires an account to even use
>ms compiler is centuries behindt the standard
>bloated work environment with a tiny window to actually read/write code in
>project files will be deprecated in the next version every time
If you're a skiddie following some youtube tutorial then go right ahead and enjoy visual studio.
If you want to learn how to program C++ then get a decent editor and a new-ish version of GCC and start learning.

For real?
I like the fact that you have no idea what you're talking about and you're just regurgitating Sup Forums memes.

MSVC is completely C++14 compliant and marginally less C++17 compliant compared to GCC and clang. By marginally I mean a few small features for a standard that came out March 2017. Wish I could say the same for C99 but for C++ its practically just as compliant with c++17 as GCC and clang, neither of which are compliant yet.

>efficient resource-wise

It's not the 1980s anymore, people have more than 16kb of ram, and a mouse, and a graphics processor.

I like the fact that you cherry pick one argument and then admit it's literally worse than GCC and then continue to ignore all the other arguments.
Fuck off MS drone.

>memory increased
>programmer skill decreased

holy shit my sides

C++ is definitely a viable option, even if you have 0 knowledge in programming. I had an option to learn it in my school, but some tutorials are just as good, if not better.

No. It's a terrible place to start. I'm a career programmer and I feel like c++ is teeth pulling every time.

Go with something that has default package management, easy cross platform and high level abstractions.

>I'm a career programmer and I feel like c++ is teeth pulling every time.
brainlet_wojak.jpeg

I concur with this user.

I can do it but everything is a fucking pain in the ass.

Marshaling different library string types around fucking sucks.

So you're upset because you're not smart enough for C++?
Are you a webdev code artisan?

I am currently paid to write scala primarily.

It's not that I can't deal with c++... It's that c++ is so fucking limited doing the most trivial things takes inordinately more time.

Watch 60 videos. naaah

Learn C or Java if you want to get something done.
C++ just has too much stuff to learn for a beginner.

>lvalue/rvalue
>classes/inheritance
>templates
>constexpr
>the 10 types of initialization
>reference/move semantics
>exceptions
>all the idioms
>the entire fucking stl

The list goes on..

>learn java

>Coming from a pure JS background im intrigued

1)How many and what type of 'gotchas' are there in C++? Theres a fuckton in js so you always have to work in strict.

2)what's it like working with real classes?

Pointers tend to bite most people in the ass

The best way to learn anything in IT or engineering is to do a project.

You don't learn a language from tutorials so that you can eventually do something with it. You set out to do something, and then learn the language needed to make it happen.

it's much easier that way.

>>Is C++ the best language to start?

Yes if you can find can find a good book. I recommend

Programming: Principles and Practice using C++ (Second Edition)

>There's A LOT of info out there and it is very overwhelming. Where can I find a good and solid tutorial/course/info [without paying, as I am kinda poor.]

Pirate! Unless you live in germany or a anglo country.

>Unless you live in germany or a anglo country.
wot

I recommend learncpp.com

Better than most books.

Regards, Mike Aisman

Those countries are know to take piracy seriously!

It is said that if you torrent copyrighted material in germany, the cops will be at your doorsteps in about an hour.

> the cops will be at your doorsteps in about an hour.

That does sound awfully German.

Remove stadfx.h
Only write in C
Problem solved.

this happened to a friend in munich. 1000 euros fine for a pirated movie. not good at all

I use C++ to program embedded MCU like ST32. Fag

No ironicamente pienso que este user está en lo correcto, por otro lado, déjame poner una guía que encontré acá hace un tiempo.


Step 1: Read K&R, realize the style of declarations used in it won't be used today but it still is the definitive resource on how to read a declaration/bracket order operations ect.

Step 2: Read these lecture notes, slides/additional resources cs.cmu.edu/~15122/schedule.shtml

Step 3: Watch these lectures, read the course book (click on 'old lectures') cs.cmu.edu/~213/schedule.html

Step 4: Read this modern C guide matt.sh/howto-c

Final step: Read this and use for reference cert.org/secure-coding/publications/books/cert-c-secure-coding-standard.cfm?

That's all you need. K&R will teach you what is undefined behavior. 15-122 will teach you to write safe programs and how to analyze existing programs. 15-213 will teach you what C looks like at the assembly level, stack frames, two's complement representation, floating point ect. That 'How to C in 2016' guide will teach you how modern C is written to avoid classic C problems like throwing around char's and ints. The CERT guide is a good desktop book to have around to make sure the shit you are writing cannot under any circumstances lead to undefined behavior. Whatever project you decide to contribute to after doing all this to obtain base competence in modern C programming, they will have a contributor's style guide which you must read like the kernel.org style guide or OpenBSD man style
Personally, before level 0, I would go with Hacking, The Art of Exploitation (2nd) which teaches you C syntax in pseudocode and then it jumps to some little C programs, and after that you even learn some ASM and what not, it's not a huge book but its got tons of important information, while making it fun.

firedrop.com/23f2d9de7281c2afabf9ccb0ddf1eddb

Here's a DL for the whole stuff, old ubuntu vm + src code.

C++ was my first language back in the early 90s.
I then went to C and learned that one in and out. Later after some years of learning different languages I got back to C++ and found it to be amazing. But hell, I'll tell you, when you figure out how to learn a language you will realize that C++ is definitely the opposite of beginner friendly. There are tons of possibilities all deeply nuanced. If you really know what you are doing and more importantly know what you want to do, C++ gives you immense control. If you don't need that level of control I think every other language is a better solution.

So honestly, I think as a beginner you should choose either a) a functional language, because if you don't know a lot of imperative programming it is a lot easier to get into functional stuff. Haskell to my mind is a great starter
b) a language like Javascript or Python. Because they expose you to a lot of concepts and keep you motivated. You will actually get something done, even as a beginner
c) C. Because this language exposes you to the horrors of programming more than any other language. You will soon realize how important a good tool chain is, that tests actually make sense and how everything works under the hood.

In the end, I would not even say that C++ is hard, because today with C++ 17, a lot of the pain is taken away from you. But C++ is huge. That is the main problem. It is just incredible big and you can get lost in it very easily.

No ironicamente pienso que este user está en lo correcto, por otro lado, déjame poner una guía que encontré acá.

Step 1: Read K&R, realize the style of declarations used in it won't be used today but it still is the definitive resource on how to read a declaration/bracket order operations ect.

Step 2: Read these lecture notes, slides/additional resources cs.cmu.edu/~15122/schedule.shtml

Step 3: Watch these lectures, read the course book (click on 'old lectures') cs.cmu.edu/~213/schedule.html

Step 4: Read this modern C guide matt.sh/howto-c

FInal step: Read this and use for reference cert.org/secure-coding/publications/books/cert-c-secure-coding-standard.cfm?

That's all you need. K&R will teach you what is undefined behavior. 15-122 will teach you to write safe programs and how to analyze existing programs. 15-213 will teach you what C looks like at the assembly level, stack frames, two's complement representation, floating point ect. That 'How to C in 2016' guide will teach you how modern C is written to avoid classic C problems like throwing around char's and ints. The CERT guide is a good desktop book to have around to make sure the shit you are writing cannot under any circumstances lead to undefined behavior. Whatever project you decide to contribute to after doing all this to obtain base competence in modern C programming, they will have a contributor's style guide which you must read like the kernel.org style guide or OpenBSD man style

STEP 0!!: (imho), not the previous pasta.
Personally, before level 0, I would go with Hacking, The Art of Exploitation (2nd) which teaches you C syntax in pseudocode and then it jumps to some little C programs, and after that you even learn some ASM and what not, it's not a huge book but its got tons of important information, while making it fun.

firedrop.com/23f2d9de7281c2afabf9ccb0ddf1eddb

Here's a DL for the whole stuff, old ubuntu vm + src code.

Also when you reach step 4, be wary because there's a lot of dissent regarding what that dude matt wrote, so I'd suggest you to ask here, stackoverflow, or even leddit when the time comes.

Not OP, but what language should I learn If I want to build a desktop app where I can quickly search for technical info that I usually need (like a data base that I can access quickly)? Thanks in advance.

just learn rust

The rust evangelism strikeforce is here again.

no, its a shit job
get a fucking decent job
and then find a hobbie

I believe python is a better entry point, and then go with C and finally C++. That's what I did.

As others said, learn C before C++. You wouldn't understand why most of the C++ features are the way they are and why they exist at all unless you have a good grasp on C first.

piggybacking off this to ask; any good guides on moving from C# to C++?

pls somebody respond

provide more info

Try Pharo it's a smalltalk dialect.
Unless you want all your problems solved by copy-pasting from stackoverflow in which case use java or python. But those are bad, so I suggest you don't.

Start with C then read the tour book then read effective STL

>Is C++ the best language to start?
You got to start somewhere. If you intend to learn C++, it is the best place to start.
The whole idea about learning one language to understand another is flawed.
>From where can I learn to code [in any language]?
step 1. find a tutorial and get a Minimal Working Example (MWE) up and running.
step 2. learn the syntax of the language
step 3. Get a book on the subject
step 4. While you read stuff in that book, make projects that uses the stuff you learned.
step 5. learn optimal ways to do things
And if we are talking about c++ specifically:
step 6. read up on the new c++ standard

C++ was the first thing taught to me in Uni

The language is only as hard as you want it to be.