What do you guys think is the best programming language to start with as a beginner? I've heard Python...

What do you guys think is the best programming language to start with as a beginner? I've heard Python, but I've also heard beginners should start with something more complicated like C++ as it will make them better in the long run.

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
en.m.wikipedia.org/wiki/FRACTRAN
mitpress.mit.edu/sicp/full-text/book/book-Z-H-10.html
artofasm.com/
twitter.com/NSFWRedditVideo

>What do you guys think is the best programming language to start with as a beginner?

Ruby is good.

Very intuitive and easy to learn and really teaches you OOP. I like the syntax and it's just a pleasure to use

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.

Python or ruby

Ruby is effectively a legacy language these days, so go with Python

There is absolutely no fucking reason to use C anymore you fucking pleb

Javascript hands down.

You can fuck around in your browser with 0 setup or tools necessary.

It's by far the best documented language which will get you to more interesting things quickly.

Chase after whatever piques your curiosity and expect to end up going a lot of places you didn't plan to. It's all about the journey, there is no final destination.

>tfw work for multi-million dollar company in health insurance
>still use visual basic

Same relative

Javascript

document.write("Hello world!");

Question: Can I program if I'm not creative? In sandbox games like Garrys Mod I usually find myself not knowing what I should "Build" and getting bored. I'm afraid if I learned Phyton "for fun" I would not know what to do with it, what to learn it for.

Just Python. You can easily grow after getting started with it. You don't lose anything by not starting with C++, but C++ is less intuitive and can hurt your motivation or cost time for little things.
Of course, you'd probably be even better off by just learning something instead of learning which thing you should learn. Go on amazon and by the first programming manual you find. That'll be just as valid.

Learn Lua and code for Gmod :^)

C, no contest.

That sort of creativity in Garry's Mod is sort of creating problems. If you go and find interesting problems you might find that you're still creative at solving them with python. A lot of the sort of creativity that people think that composers and painters have is learned and refined skill anyway. Not practising because you assume you're not creative is self fulfilling. Just forget that such thing as 'creativity' exists.

haskell

If you aim to just create dumb websites with zero crud functionality then I would agree that learning only javascript and html is sufficient.
Otherwise you would need to learn a server-side language like php.

>really teaches you OOP
Then it probably shouldn't be what beginners start with.

fuck off tripfag

>haskell
kek

Obviously Perl6, because you can opt in any feature/paradigm you want.

Familiarity with OOP is kind of necessary for being a good programmer. Call me paranoid but I'm a little suspicious of people saying you don't need that kind of skill.

I think you should start with C. You would learn a lot about how computers work and then you'll realize its shortcomings and actively try to learn a new language to write programs usable in modern world (excluding engineering tools and low level stuff, if those are the things you are going for then it's mostly C, C++ with a Java frontend)

You should be familiar with objects, but not object oriented programming, as in the dying religion - you'll be better off for the future.

>implying you cant use javascript on the server-side

Python's fine for beginners and basics, C++ for anything advanced

Sup Forums pls, don't tell noobs to learn meme languages

I hate these threads, just choose anything and start. The language isn't as important as learning the logic behind programming.

The most powerful programming language is Lisp. If you don't know Lisp (or its variant, Scheme), you don't know what it means for a programming language to be powerful and elegant. Once you learn Lisp, you will see what is lacking in most other languages.

Unlike most languages today, which are focused on defining specialized data types, Lisp provides a few data types which are general. Instead of defining specific types, you build structures from these types. Thus, rather than offering a way to define a list-of-this type and a list-of-that type, Lisp has one type of lists which can hold any sort of data.

Where other languages allow you to define a function to search a list-of-this, and sometimes a way to define a generic list-search function that you can instantiate for list-of-this, Lisp makes it easy to write a function that will search any list — and provides a range of such functions.

In addition, functions and expressions in Lisp are represented as data in a way that makes it easy to operate on them.

When you start a Lisp system, it enters a read-eval-print loop. Most other languages have nothing comparable to `read', nothing comparable to `eval', and nothing comparable to `print'. What gaping deficiencies!

Lisp is no harder to understand than other languages. So if you have never learned to program, and you want to start, start with Lisp. If you learn to edit with Emacs, you can learn Lisp by writing editing commands for Emacs. You can use the Introduction to Programming in Emacs Lisp to learn with: it is free as in freedom, and you can order printed copies from the FSF.

You can learn Scheme (and a lot of deep ideas about programming) from Structure and Interpretation of Computer Programs by Abelson and Sussman. That book is now free/libre although the printed copies do not say so.

Please don't buy books (or anything) from Amazon!

FRACTRAN
en.m.wikipedia.org/wiki/FRACTRAN

Really 82.46.85.224

I want to start with c but I'm bad at math

Don't use Ruby. It's plagued by SJW.

Then study.

What the fuck does that even mean?

>mitpress.mit.edu/sicp/full-text/book/book-Z-H-10.html

reading now

Why do people think that they need to be good at math to program? The most math I've had to use was deciding how long and wide I wanted to make a menu in C++.

At best using math.h to create a calculator....

With the development tools in dot-net you can literally draw this sh*t. Twelve year olds use it!

It means anyone who programs in it is probably a SJW, and anyone who hires you to program in it is DEFINITELY a SJW. Same problem with Rust.

ITT: we post meme books.
If you want to go hardcore, learn assembly. artofasm.com/

I started with Visual Basic but quickly moved on to Java once I knew the basics of variables and loops.

I still love Java. It is such a great language and framework for getting shit done.

Since then I have learnt and used the following languages as a professional developer

C, C++, Go, Clojure, JavaScript, C#, Lisp, Python and Objective-C. And I am currently learning Swift and Rust.

Java is still my favourite though. It isn't suited to everything but for most things I work on it is close to perfect.

The only negative for Java as a first language is that it is very OOP-oriented. This can be a bit of an overload on a newbie but it really isn't that hard. In general I will go with Java for any kind of serious program and usually Python if it is something small that can be done in 15-30 lines of code.

Python isn't a bad place to start either but I am not super fond of the way it does a lot of things. IMHO it is only really helpful for very small things.

you need to be good at math to program *well*

algorithm optimization and statistical analysis

Quick question: I'm learning Python right now and I love it because it all makes sense just wonderfully. Just one thing I didn't grasp so far and that's the parentheses just at the end, like in: "if something_something():" what purpose are they having there exactly?

Java

Are you calling a method?

There shouldnt be brackets there mate

yeah if was wrong. should be "def something_something()"
Why the brackets? Pretty much all the other stuff makes sense to me but the brackets seem random.

It's a function with no arguments, you need the brackets to distinguish between when you are calling the function or manipulating the function as an object.

Depends on what you want to archive.
Python is not simpler or easier than C, in fact it is a MUCH more complex language. But, unlike C, you don't have to know much about python in order to just do something pretty (or even useful), whereas in C you do need to known the language well in order to use it.
Also, doing pretty or useful things in C is much more work. The language is very simple, it is strict, and libraries aren't as convenient to use as those in Python.
So, if you want to get deep into programming and CS in general, learn C. If you want to be able to program pretty/useful stuff and don't have too much interest in knowing more about CS and care about the practical aspects more than the theoretical ones, learn Python.

Basic. Always start with Basic.

This. You get c-like syntactics and programming basics. Otherwise try C. Or Python for dynamic typed - but for beginner, better get a hang on static typing.
[spoiler]Lisp. Just don't. Don't. Really. [/spoiler]

Lisp for countless gay jokes.

Guess what language 90% of the code your computer runs every day is written in.

Haskell.

Guess what language 90% of bank and insurance systems are written in.

Cobol, but that doesn't mean we should start creating systems using cobol.

JavaScript