Why does Sup Forums always recommend python for beginners as opposed to C? C is like Latin to programming languages...

Why does Sup Forums always recommend python for beginners as opposed to C? C is like Latin to programming languages, teaches fundamentals much better.

>C is like Latin to programming languages
Figures, since latin is also garbage.

Who the fuck learns latin as their first language ?

the romans

This. That was a goddamn stupid analogy.

as to be expected of OP

>Listening to what Sup Forums says

Nobody recommends python, its a terrible choice for beginners and professionals.

no, it doesn't. knowing good C memory management techniques won't help them learn to write algorithms. stupid post

>ITT computer science majors younger than 20

Not only I am way older than that, but there were better things bofore each C and latin.

Yes, but if you learn C you know the basics of most commercial programming languages.

You basically learn the syntax and shallow semantics of if-branching and while loops. That's all they really have in common. And every dunce could do that without C. And in many cases is better of without C.

Still today in uni's they teach C as the first programming language for CS students, must be a reason why? My guess is it is a good way to separate the people that are gonna be able to deal with the programming and those who wont. If you cant into C, then you are not the right material.

You've fucked up your loop and wrote 1 element past the end of your array. Which would you rather see as a beginner?
>Segmentation fault. If you run it in gdb you get a useless backtrace because you overwrote the return address and $pc is now nonsense. Valgrind will find it for you, and at least give you a line number.
>An exception when you write to the invalid element, along with the line number and full backtrace.

FORTRAN should be the first programming language people learn

>teaches fundamentals much better
Contrary to what Sup Forums would tell you, the actual fundamentals of programming from the perspective of the programmer are basic things like loops, control flow, functions, recursion, arrays, etc., and most importantly, actually being able to turn some abstract idea in your head into a program. Not >muh pointers or >muh memory management. Yes, those are important too, but you shouldn't learn to run before you can walk.
Another advantage of python is that it's much easier to write programs that don't just read input from the terminal and print shit in response, which makes it more likely for people to stay interested in programming.

It's only the foundation of fucking everything

>C
>not learning how to build everything in COBOL

there is no C book like that

OK, so which programming language should a complete noob choose then? I thought it would be C, since C++ is getting a lot of shit for being overly complex and messy if you don't what you're doing, not to mention the learning curve.

Then Python gets called out being just a way to write as much code as possible in short period time.

So where do I begin?

>C
>COBOL
Seriously why people nowadays are such a bunch of plebs, the best way to teach programming is using machine code on punch card machines

>Still today in uni's they teach C as the first programming language for CS students
no, they don't. they teach java or python

I always thought Java was nice for beginners.
That or C#.

yes it is garbage without which most good languages could not have developed

if you want to teach retards a language then you have to start high or else it will inevitably fail because they are too dumb to do something more complex

Because python is actually psudocode designed to trick people into thinking they can actually program.

In my school they taught me PHP first, then Java. I think i got introduced to programming pretty well.

Not everyone here. Some of us know that python sucks.

Because you definitely can't speak other languages without knowing latin first. What a stupid fucking analogy.

if you study general CS they will, if you study applied CS (like system design or something), they probably wont

if you're too stupid to write standard loops then maybe you shouldn't program in C

Actually there have been better languages BEFORE C.

template metaprogramming in C++ should be the first thing beginners learn

Losers want everyone to sink to their level.

>which most good languages would have been better off not being influenced by
FTFY

What a disappointment, I looked up that comic after seeing this post and the earlier ones (like in op) looked pretty good, but the later ones lost all originality and are imitating the generic 'totally AWESOME cool popular web artist' style and just look disgusting.

Python is a good first language to teach CS because there are a lot of resources online for it


At the end of the day, the language used matters very little, learning how programming works is much more important

You can always pick up a different language later on by yourself or in a different class

No, algol64 is the latin of programming languages.

LISP is latin to programming languages, not C.

Yes they do, programming 101 was C at my college, followed by c++ in 201.
We also had to learn python, javascript, java and CPU12 asm .

No it isn't, lisp is a functional language more akin to haskell you tard.

Because you definitely can't write code in other languages without knowing Python first. What a stupid fucking analogy.

Because it doesn't really matter what programming language you start with if you really have what it takes to be a professional programmer.

As I said right before you, its algol64. Go look some of the things it introduced. You know when you look at Bash, C and other important languages and think "hmm, this one thing is suspiciously identical on all of them"? That's probably algol legacy.

>being American
stick with your germanic ramblings.

Play with LISP or Scheme for a week and you'll know what I'm talking about.

It has nothing to do with programming paradigms. LISP's syntax, like Latin's, is both the ugliest and the most beautiful thing in the language.

Knowing a Romance language makes learning other Romance languages a lot easier.

algol 60, my bad. Mixed some other things with it.

>programs that don't just read input from the terminal
#include
FILE *fopen(const char *path, const char *mode);
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);

Get off your high horse. We're talking about languages for beginners. Noobs. People who don't know how to do stuff yet. We were all there at one point.

Great analogy, Python is like english, C is like latin. English takes some rules from latin but is its own unique language in its own right. Latin is dead, and everyone speak's its children (french is c++ because only the worst people write c++)

Completely false. All of our data structures and algorithms classes were in C++ and our systems classes were in C. Didn't touch Java or Python until junior year, as it should be.

Makes sense I suppose from an analogous standpoint. Latin had archaic features in it such as a case system that pretty much all of its children have abandoned, making it much harder to understand from the simplified ones. A case system adds flexibility to the language and forces the user to really understand grammar to be able to speak it. A case system forces the user to mark what part of the sentence certain words are. In English, the closest example to this would be 's which changes the meaning of the following noun to become possessed by the noun 's is on. So imagine having to say "world(the subject) greets you(the object)". Reminds me a lot of pointers and memory management. You have to specify the relationship a memory address and its pointer have constantly. Pic related is a noun in Finnish and all of its case variations.

I don't think Python is ideal for beginners. Its looping and case statements can be confusing to understand imo compared to most languages. I had a friend learning Python who asked me for help it didn't click for them until I expanded the statements and broke them down via similar Java statements (the person had no programming experience). It was awhile ago so I don't remember specifics.
Imo it should be something a bit more verbose that Python. It's much easier to get lost in Python code with what something means if you don't understand everything compared to most languages. Something like Java or C++ I think would be good, provided in the beginning you steer clear of memory management in C++.

Python is a good language for those who don't really need to program anything.

Literally the opposite. C is the best for learning algos.

Java or C++. C++ can be messy, but you can avoid the messiness as a beginner. I started with Java and after that, Python seemed really easy and simple, but confusing in some aspects to make me think people starting with it wouldn't really understand what's going on. A mediocre example would be Python is like playing a racing game in an arcade with a steering wheel and stuff. Java would be driving an automatic car. C++ would be driving an automatic car with optional stick shift. C would be driving a big rig trailer truck. The difference is is that Python is actually useful, but it doesn't 100% prepare your for driving a real car. If you do want to learn Python, I'd say just go back to it later and it'll be super easy.

I think a scripting language is definitely a good way to get your foot in the door for beginners. I learned mirc scripting which can load DLLs written in C. Fundamental concepts can be learned through scripting but learning a lower level language is equally important once you grasp the basics.

Yea java is nice for beginners as a starting point.
This though. Everyone's talking shit on OP's analogy but it's not terrible. You have to be very precise with the grammar in Latin otherwise it can completely change the meaning of a sentence, similarly to how a single misplaced ; or bad ()'s in a program can completely change how the program behaves if at all.
t. 3 years of Latin.

Like everybody you don't know Latin, can you speak? Yes

Why the shit would you recommend C++ to a beginner? There are already enough C++ programmers who have no idea what they're doing.

yes

>implying that wasn't just a hyperbole
>being a tripfag

BASIC was the language that many programmers today first learned on, not C

This

I was first introduced to programming when my father showed me QuickBASIC at age 9.

>punch card machines
By punch card machines you mean Jacquard looms right?

Gotta crawl before you can walk, and by the time you're walking, you'll have an elegantly embroidered shirt to boot!

Lisp = Latin
C = French
Java = Olde English
Python = Pidgin English
Haskell = Telepathy

what would LISP be?

german here
Pascal and C in 8th and 9th grade
C++ in university

Python is literally perfect noob language. If you have no experience, it really helps to get you in the right mindset as to what programming actually is, without needing to delve into memory management and shit like that. But after the basics, move to a proper language like java, C# or whatever the fuck. But learning C as a beginner language is the equivalent of getting a windows user considering switching to Linux to learn LFS

They still teach C++, why?

There are alot of good alternatives for learning imperative programming, OOP etc.

mainly because some professors are old and lazy. not willing to learn anything new, even if its for the sake of education.
I have young professors aswell that focus on current tech, but for whatever reason, they are not the ones doing the programming classes.

So on old side I have C++ (which is required), IIRC they added Java (which is optional), then on the shiny and new side I have e.g. Virtual Reality (optional) and Machine Learning (optional)

Still haven't seen good uses for VR besides medical research and surgery and those concerns don't apply to ordinary people.

Python is better for learning imperative and OOP. C if you need to understand low level programming, pointers etc.

I like Golang but it's an industry oriented language and doesn't really need to be taught in schools.

I work in a bank and i despise my job. I wana get into programming. I started learning some basic html/css but what would you recommend i learn first? What is the fastest way i can learn? Keep in mind i work for 10h a day and i cant quit my job because i need the income.

symbolic differentiation, in just a dozen lines was cool

(define (deriv exp var)
(cond ((number? exp) 0)
((variable? exp)
(if (same-variable? exp var) 1 0))
((sum? exp)
(make-sum (deriv (addend exp) var)
(deriv (augend exp) var)))
((product? exp)
(make-sum
(make-product (multiplier exp)
(deriv (multiplicand exp) var))
(make-product (deriv (multiplier exp) var)
(multiplicand exp))))
(else
(error "unknown expression type -- DERIV" exp))))

English is 49% romantic

torille

Word origins are not the whole language. Phonologically, syntactically, grammatically, etc. English is Germanic.

sure ok

Why wouldn't you just start with C if you were teaching C++. The standard hello world has shit like namespaces and the overloaded bitshift operators in it. Most of the standard features are just going confuse beginners and its how you get retards that think

stupid post. Programming languages are not like languages. You cant go "more to the source". People like to recommend python because its easy and once you learn it makes learning other ones easier where as you jump in to something like C it takes for ever with no previous knowledge and you get the same fundamentals out of it.

Because memory management is not an essential fundamental concept for beginners and first year students.

1+1 = 2. Of course memory management is important, until you've coded your very first memory manager + XOR - (AND/NOT) Logic Gate.

It's important, just not important for beginners.

Technically I'm nothing, so, obviously not that important seeing as I was able to grasp the concept without ever being truly checked on my code quality.

Humans never really set the bar for their linguistic constructs and shouldn't really question if computers take over.

Study python in schools. Study C in the first year in uni. Most of people who will go to cs-related degree will benefit form knowing C, most of those who wont will still benefit from understanding basic python. Literally no flaw, yet all first year in my shitty uni was java.

Languages are made of words, idiot.

Had this exact problem yesterday (writing one element past the end of an array) and it was a complete pain in the ass to fix. I'm still a noob so it's nice to see encouragement on Sup Forums. Thanks user.

For me, BBC BASIC was the perfect beginner language. I still write programs in it for fun sometimes. In my opinion they should still each it in schools, it's at least as good as python for teaching programming, possibly even better.

Latin is a dead language that no one speaks, much like C in a decade or two. You can't even make a good analogy for it.

Just so you know, I reported your post for racism. Prejudice doesn't belong on Sup Forums.

Why not start with French, Spanish or Portugese then? Spanish covers like 60% of neo-latin language users, French is 20% and Huespeak is somewhat irrelevant, as only 100mil football players and favela monkeys know this language.

C is like Latin indeed, but Python is like English.

Because python works better with modules/frameworks for beginners.

People need to learn how to use modules on top of basic variables/operators.

Don't bother with html/css. When the time comes you can learn both in a day or two. I'd start with Java just because thats what I learned in highschool. The fastest way to learn would just be pick a project and work a little everyday. Aim for about 1,000 lines every week. Good luck

I see it recommended often, actually. What do you recommend instead?