Done with Python, looking for new language

So I started with Python (as it seems everyone online advises), and I'm definitely read to move on. I've been at it for about a month, and although I've learned a lot (including loops, functions, data types, recursion, basic data structures, etc), I don't actually get how all of it works underneath. It's like I keep throwing together random things to solve a problem, then mash run and debug until I can get it to work, with a very shaky understanding of why any of it does what it does. Python's "it just works" mentality makes it so yeah, it works, but I hardly know why.

So I'm looking for a language that is minimalistic and simple, and that has little in the way of syntactic sugar or other things that obscure what is actually happening. My intuition tells me that C is a good idea, but people also tell me that it's dated and takes too long to do even simple things. Not sure who to believe.

In terms of what I want to do with programming, I'd like to gain a better understanding of how computers work, and also I'd like to make indie games eventually.

Attached: programming_languages.jpg (848x477, 92K)

Other urls found in this thread:

coursera.org/learn/programming-languages
twitter.com/SFWRedditVideos

learn the objectively best programming language C

K&R?

Learn Go

>better understanding of how computers work
you should read then, programming doesn't help super much

I'll just leave this here. (Obligatory)

Attached: toggl-how-to-save-the-princess-in-8-programming-languages.jpg (800x2798, 1.38M)

If u wanna make indie games someday, start now. Learn unity. It's difficult but you really just need to dive in. Watch tutorials and build your knowledge.

>I'd also like to make indie games eventually
Unity with C#

learn python

If you want to learn how a computer actually works, you need to go to a school or take a course. It doesn't help you at all unless you're planning on creating something that low level.

If you want to become a good programmer, then you need to learn your data structures and try implementing some algorithms. This and Leet code, and you can even land your first job. If you want to make python games that don't run like garbage, you'll probably need to implement data structures that reduce checks, so things like Quad trees, A^, etc.

If you REALLY want to make games and learn how to program at the same time, I recommend you use a framework. Seriously, nobody is going to give you points for writing everything yourself. Most software is just glue holding other software, and when you're just starting out it's a hard thing to accept and live with. When I was starting, I wanted to write everything, EVERYTHING. Every data structure, every line of code. I felt that if I didn't write it, then I was cheating. It's not. Most software is just about creating an experience, whether it's online, offline, a game, or an app. If you want to create good software, which should be your ultimate goal, then you need to look past the lines on your screen. Wanting to be the best programmer ever is like wanting to be the best hammerer ever. It doesn't matter, and people only care about their roofs and sheds and stuff.

Attached: 1550442106479.jpg (280x280, 27K)

>minimalist and simple
Lisp

>has little syntactic sugar
Lisp

Also the best way to learn how to program multicore systems is to learn Erlang. It basically makes parallel and concurrent programming trivial.

sorry im going to hijack this thread: whats the best way to start learning a programming language if im not going to school for it?
is there any website, books, videos that you guys can recommend that gives an introduction as well as beginner projects to work on?

C or assembly

#include

int main() {
fprintf(stdout, "Hello world.\n");
return 0;
}

.data
hello:
.ascii "Hello world\n"
.text
.globl _start
_start:
movq $0x1, %rax
movq $0x1, %rdi
movq $hello, %rsi
movq $0xc, %rdx
syscall
movq $0x3c, %rax
movq $0x0, %rdi
syscall

Why do you want to learn programming?

finish all three parts of this and you will be able to pick up any language
coursera.org/learn/programming-languages

>Also the best way to learn how to program multicore systems is to learn Erlang. It basically makes parallel and concurrent programming trivial.
I'd argue this actually makes it bad for learning both. As a language built entirely around concurrency, it allows you to avoid a lot of the complexity that you need to deal with in languages which don't have the BEAM.
It's excellent for writing distributed systems, but impractical for other applications like operating systems, high performance computing, or embedded systems. For those you need to learn traditional parallelism techniques.

What do you mean by "you dont understand how all of it works underneath"?

Yes. Everyone should start by learning C.

att is so fukin ugly

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!

this, best advice in thread

>the java knight is a pajeet
never noticed that before kek

pss..

Attached: meme language.png (1024x1024, 46K)

Learn Go / Golang

It has all the advantages of older programming languages like C and also most of the advantages of modern ones. And it's hella powerful.

Learn assembly

>No macros
>No generics
>Horrific syntax
>Garbage collected
Never

Pretty based and truthpilled. Learning not to reinvent the wheel is probably one the the hardest things non-normies have to come to terms with.

alright, let's start listing some advantages of C

>it is fast
hahahahahaha
>you get to manage memory
HAHAHAHAHAHA
>it's very primitive and therefore is simple to learn with a minimal standard library
NO
>it can go embedded
NO
>it's suitable for systems level programming
NO

if err != nil motherfucker