Which language do i learn first?

>research programming languages
>C++ seems to be the way to go
>the "piano" of programming languages since the knowledge gained from learning C++ can be transposed to other languages but vice versa doesn't work

my main goal is to be able to create whatever i want that has mainstream appeal. phone apps popular websites etc. though i'm not discounting other endeavors which is why i read C++ is still the way to go. a fall back job of being able to program for a big company might be nice too. don't know if i need C++ for that but still sounds like the go to from my research. opinions? thanks for any feedback

Attached: i dunno.jpg (960x540, 37K)

Other urls found in this thread:

cprogramming.com/tutorial/c-tutorial.html
learn-c.org/
learncpp.com/
cplusplus.com/doc/tutorial/
cprogramming.com/tutorial/c -tutorial.html
en.cppreference.com/
isocpp.org/faq
learnpython.org/
codecademy.com/en/tracks/python
wiki.installgentoo.com/index.php/Programming_resources
udemy.com/the-web-developer-bootcamp/
twitter.com/NSFWRedditGif

do C, not C++, if you want understanding of the absolute fundamentals
from there you could look into java, C++ or Rust if you want to try getting into a niche - it may well go places. you should definitely try other things here and there though, experiment and learn what you need to pick up to achieve whatever goal becomes clear to you

python?

Firstly, googling around isn't fucking research. When your fucking dumbass high school librarian told you it was, they were fucking wrong, and they didn't finish teaching you about the actual process. Jesus fuck.

Just start programming, you dumb fuck, so you can take the criticism without putting up a wall of ignorance as your defense. It's time you fucking put your ego down and get going.

So you want to learn programming?

Pick a starting language. For beginners, there are generally two recommended "programming families" that you can choose to start learning:
-Dynamically typed/interpreted programming languages, such as: Python, Perl, Ruby
-Statically typed/compiled programming languages, such as: C, C++, C#

These are amongst the most popular languages in use worldwide, including 4 from the top 5. Both approaches are perfectly fine, and well-documented.
-Dynamically typed programming may be a bit more flexible, convenient, and forgiving. It is more popular in academia.
-Statically typed programming is a bit more suited for making general applications. It is more popular in industries.

Cannot decide? Flip a coin.

If you choose statically typed/compiled programming, you may want to start with C, then pick up C++. C is very well documented, and teaches many universal programming concepts. C++ is based on C, and adds new concepts. Sources:
For C:
The C Programming Language (K&R)
C Primer Plus (Prata)
cprogramming.com/tutorial/c-tutorial.html
learn-c.org/

For C++:
learncpp.com/
cplusplus.com/doc/tutorial/
cprogramming.com/tutorial/c -tutorial.html
en.cppreference.com/
isocpp.org/faq

If you choose dynamically typed/interpreted programming, you may want to start with Python. It is very easy to pick up. Here are some good sources:
learnpython.org/
codecademy.com/en/tracks/python

>BUT I WANT MORE SOURCES!
Read: wiki.installgentoo.com/index.php/Programming_resources

>BUT I WANNA START WITH [language x] INSTEAD!
Sure, if you like. But the languages above are considered good for beginners.

>BUT I WANNA MAKE A COOL WEBSITE!
Learn HTML, CSS, and Javascript.

>BUT I WANNA MAKE iPHONE GAMES!
Learn Objective C and/or Swift.

>BUT I WANNA MAKE ANDROID GAMES!
Learn Java.

>BUT I WANNA MAKE PC GAMES!
Learn patience.

I'm really glad to see you decided to learn programming. I'm a 29 year old professional programmer. My thoughts...

>knowledge gained from learning C++ can be transposed to other languages but vice versa doesn't work

I'm not sure what you are basing this on. Almost any programming language will teach you the fundamentals. About the only thing C or C++ will teach you that other languages might not is about manually managing memory. Even a lot of professionals don't get that right though which is why garbage collected (GC) languages are so popular and why Rust (borrow checker) is attracting a lot of attention.

>my main goal is to be able to create whatever i want that has mainstream appeal
Do you mean you want the language to have mainstream appeal or the application itself? There are a lot of popular applications written in many different languages.

>phone apps popular websites etc
C++ probably isn't the best choice then. While you certainly can write phone apps and website backends with C++, it typically isn't used for that. iOS apps are written in Objective-C or Swift. Android uses Java and JVM languages like Kotlin. Website backends are written in almost everything except C++.

>a fall back job of being able to program for a big company might be nice too
There are jobs for a wide variety of languages. The company I worked for is moving away from C++. Manual memory management caused too many bugs and security problems. There are still lots of C++ jobs, so I'm not saying you are wrong, but this shouldn't be a top reason. Almost any industry that isn't tech itself, but still requires custom software (banking, finance, insurance, health care, etc) will use Java, C#, or Python. You're far more likely to get a job where technology merely intersects with the industry rather than being at a company that can properly call itself a tech company. My company is part of the Insurance industry and though it may sound boring, I really enjoy my job.

interesting okay i can look into C as well. i know it's the older version of C++ but i didn't see it brought up as much so i figured it was outdated.

i hear this is the meme answer

i don know how to program :( don't i need a language to use to program? that's what i'm on here to find. just looking for feedback. and yeah fair enough i prob didn't do the best research. i know virtually nothing about this world. i was gifted a udemy course on web development and it sparked my interest. but when i was about to start learning from it i came into this board and saw that the programming language he was teaching was "basic" it's colt steels web developer bootcamp btw udemy.com/the-web-developer-bootcamp/

Attached: 1549871448915.png (382x387, 146K)

english

C is not an older version of C++, and it is absolutely not outdated
read a book faggot

Attached: red.png (500x500, 351K)

ANSI Common Lisp or bust.

your life is a meme faggot

You aren't going anywhere in tech if you care about what Jow Forums thinks. If the fact that this board calls a language a meme language dissuades you from studying it, give up now.

learn C, then learn other languages

this is badass. thank you i really appreciate it. so sounds like C is the direction i'm going in

>-Statically typed programming is a bit more suited for making general applications. It is more popular in industries.

this seems to make more sense to me.

cool thanks for the response. it's a helpful one

>I'm not sure what you are basing this on. Almost any programming language will teach you the fundamentals. About the only thing C or C++ will teach you that other languages might not is about manually managing memory. Even a lot of professionals don't get that right though which is why garbage collected (GC) languages are so popular and why Rust (borrow checker) is attracting a lot of attention.

I read online that it's easier to learn java after C++ than it is vice versa. Kinda like it's smarter to learn piano than to learn guitar at least that's my opinion. i didn't quite understand the rest but that gives me stuff to research thanks

>Do you mean you want the language to have mainstream appeal or the application itself? There are a lot of popular applications written in many different languages.

the application itself.

>C++ probably isn't the best choice then. While you certainly can write phone apps and website backends with C++, it typically isn't used for that. iOS apps are written in Objective-C or Swift. Android uses Java and JVM languages like Kotlin. Website backends are written in almost everything except C++.

i guess my thing is just i want to be prepared for anything. this goes back to the piano analogy if it's even accurate

>There are jobs for a wide variety of languages.

interesting. i guess fuck it just learn one and see what happens. thought i'd bounce some ideas off people.

Attached: 1547890075839.jpg (500x373, 30K)

>i know it's the older version of C++

It's not "the older version of C++". There are several different 'extensions' of C, including C#, Objective C and D, each of which are completely different, and C++ is only one of them. C++ is not this super ultimate elite programming language that people build it up to be, there are a number of languages that are both more powerful, in certain senses, and easier to use than it.

>i can look into C as well. i know it's the older version of C++ but i didn't see it brought up as much so i figured it was outdated.
I wouldn't describe C as an "older version of C++". They are different programming languages. C is older, but age doesn't really play a factor in programming languages. It's not like software applications where you might avoid Windows 95 because it is too old. Both C and C++ are widely used today.

>the programming language he was teaching was "basic" it's colt steels web developer bootcamp btw
I didn't see anything about BASIC on that page description. It looks like he is teaching HTML, CSS, and Javascript. I think that's a fine starting path.

The short version is that a lot of people are going to give you their opinion about what you should learn and pretend it's fact. It's mostly bullshit. My only advice is to pick a programming language that is at least somewhat mainstream so that you can find plenty of documentation, learning resources, etc. You can always branch out later. You aren't marrying your first language. Just have fun and enjoy learning and creating!

i thought i read that. maybe i was wrong

i wasn't dissuaded. just trying to be more informed

fuck it i'll do this. thanks dudes. still open to reading opinions though adios

Attached: 1524025253235.png (491x631, 377K)

nice. thanks for the advice. yeah the creating part sounds great. some guy described to me as having free resources to build whatever you want and that really sparked my interest as well

Attached: kanye's head.jpg (185x272, 7K)

There are effectively 3 groups of languages:

> typed, manual memory management
C, C++, Rust

> typed, automatic memory management
Java, Kotlin, C#

> untyped, automatic memory management
Python, Ruby, Javascript

1st group makes it easy to create memory leaks and bugs, as well as being a drag to write. It's fast but usually not that much faster than the 2nd group.

3rd group is usually suggested to newbies because it looks simpler on the surface, but actually it has a lot of complexity hidden under the hood. It also do a very poor job at protecting you from bugs because it's not typed. And it's slow as all hell.

2nd group would be my suggestion. It's easy to write, popular in the business world, and can do virtually everything except systems programming and AAA games.

wrt which language to choose:

> Web
Go, Kotlin, Java, C#

> Android
Kotlin, Java

> Apple
Swift

> Windows
C#

> Games
C#

> Command line
Go

> Command line
>Go

Attached: 1334503246505.jpg (1280x720, 188K)

Thanks for this thread, Jow Forums. If I had a vagina I'd let every single one of you creampie me (other than OP).

>Jow Forumsentlemen meme OP into learning C as her first language
every fucking time

Attached: 1504608876458.jpg (640x613, 217K)

Shut up you python brainlet

>SSSSSSS

Attached: snek.gif (500x375, 147K)

>manually managing memory
You don't do that in C++.
In C++, there is a constructor and destructor function for every class.
So when you hit the } or return and your class or data type goes out of scope, the destructor function is called.
Obviously you can allocate memory and free memory in these functions, but you can also wrap pointers in a class so this is done automatically. It ads a tiny overhead of an increment/decrement of certain functions and takes up a bit more memory as it is now a pointer + a counter so there is still some niche situation where you do it in the destructor yourself.
But I wouldn't say it is manual memory management.

>i can look into C as well. i know it's the older version of C++

Leave it to an anime poster to be completely ignorant and unaware of the most basic shit.

Stop confusing noobs even more by pretending C# is in the same family as C and C++. C# is just Microsoft's copy of Java after the court ruled they weren't allowed to EEE actual Java.

>But I wouldn't say it is manual memory management.

It absolutely is. Having to manually type out 'free' isn't the issue, it's that you need a scheme which guarantees that everything that should be deallocated is actually deallocated, as opposed to garbage collection.

>
++++
[>++++
[-]<
[>+>++>++>++>+>++>++>++>++>++>+>++>++>++>++>++>++>++>++>++>++++

I think that deterministic memory management is a more apt term.

Japanese

Attached: 13b3a74.jpg (533x578, 28K)