What did they mean by that?

What did they mean by that?

They meant that java is a bad introductory language

Is there anything worse than non-technical writers writing about programming?

His biggest argument was that the classic hello world in Java is scary to beginners.
Should we dumb down math and law because it's scary to beginners?

Of course not.

Of course we do.
You're not a racist, right user? People in the community need good jobs so we have to make programming easy like TV.

this is boring

you're boring

>hurrrrr da mafs and brogrammin is HARD like I LIKE IT because IM SMART XD

Fucknuts, people gradually learn math, each year in class building upon the previous year. You don't immediately start out doing 3 variable derivation and integration in kindergarten.

Likewise, it's fucking stupid to start with a language with so much syntactic bullshit that it makes it annoyingly hard to get started. My CS 101 and 102 classes taught Java and the drop rate was higher than 60%. Start with something simple, like C, where it's easy to understand procedural and gradually learn things like pointers and memory management. Then later on they can learn Java or Python or any other OOP.

Because Java teaches you OOP properly and teaches you to abstract things. C doesn't.

It will probably take another 20 years and they will realize that Scheme is pretty good as an introductory language

>According to the University website, “[CS 106J] covers the same material as CS 106A but does so using JavaScript, the most common language for implementing interactive web pages, instead of Java.”
lmao stanford confirmed meme school
enjoy your hundreds of dollars down the drain

What the fuck
whats so hard about
system.out.println("Hello World"){
}

>Make a class
What's that?
>Hush
It didn't work
>It has to be the same name as the file
Ok, now what
>Public static void
What?
>Hush. Now main(String[] args)
What's that for?
>Be quiet.

>Is there anything worse than non-technical writers writing about programming?

Journalist who know jackshit about science writing about science?

Thanks to one of those half of the world still believe the crap that "we only use 10% of our brain".

Probably because

Public static void main(String[] args)
Which really takes like two minutes to explain

>Start with something simple, like C
Top kek
"What do you mean I can't make an array without knowing the size before"

>It didn't work
>>It has to be the same name as the file
Kek


Really do there is no reason to have a class file and name it something else.
>Hurr why can't I have two different color headlights on my car

you have exactly 2 minutes to explain it now

keep in mind you are explaining it to someone who never wrote or read a line of code in his life.

Someone who can't understand a simple thing like that probably shouldn't code.

It is a stupid entry point function tho, i was learning java because of jvm but then i found kawa scheme.

You don't have to explain public, static and void yet, it's enough that they know that's the entry point.

>11:55
>13:55
bruh

>A completely implicit rule about naming an unexplained abstract CS concept is somehow common sense

Another retarded detail on the pile of shit no one learning lisp or python would have to immediately worry about

>The program always starts at the method called main
>Public means it can be accessed from outside of the method
>Static means it doesn't need to create an instance to be run from
>Void means the method doesn't return anything
>String[] args are the flags the program is run with. You don't need this in the beginning it's the kind of thing autistic neckbeards type into a terminal

>What are objects and classes
"We're gonna discuss that now it's really easy"

Really are you gonna judge a programming method by the two lines of overhead to create hello world?

>"What do you mean I can't make an array without knowing the size before"
That's the perfect way to start teaching people, though. The great thing about C is that it makes it crystal clear how memory allocation works. If you don't know the size of an array beforehand, then how the fuck is the computer supposed to know how much memory it takes up? Answer: it doesn't. If you want arrays to dynamically grow or shrink, that's going to be a performance hit. Teaching C first gives students a good idea of exactly why dogshit languages like java or python are so slow.

To be fair, a Hello World in Java introduces far too many concepts at once. You shouldn't need to understand what classes and objects are to deal with Hello World, nor should you need to understand the difference between a static method and a regular method. Languages like C, Python, and JavaScript need only explain one abstraction: the procedure call. Beginners can learn new abstractions as they go along, but you shouldn't bombard them with the kitchen sink on the first day.

the
public class MyProgram {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
part.

It would be really nice to not have to explain what public, static, and class mean.

Actually I agree python is a better entry level language for other reasons. I'm just saying that PSVM scaring people away is retarded. Like if you drop out of uni because you cannot stand to get PSVM and objects explained for five minutes it just wasn't meant to be

My university's intro class is Intro to C, like why not just use C?

>What's a method?
>What's an instance?
>return what?
>What are flags? Oh we don't need it? Cool!

Back then I did a lot of tutoring for semester 1 students and it's horrible if they start with Java or any C-like language.

Python is probably the best way to teach fresh students programming even though I don't like Python.

?

That's correct but having 4-5 lines of code with just 1 being relevant is ineffective and confusing for most average CS students.

I'm a permavirgin let me be smart please.

true

>It would be really nice to not have to explain what public, static, and class mean.
IT IS A FUCKING HEADER
HOW DIFFICULT IT IS TO TREAT IT AS A FUCKING HEADER
IT IS NOT FUCKING DIFFICULT, IT IS SIMPLE, KEEP PASTING THAT SHIT TILL LEARNING IT BECOMES A NEED
IF YOU CAN'T GRASP THAT YOU SHOULDNT EVEN BEEN ON THIS FUCKCING COURSE
LEARNING PROGRAMMING IS NOT EASY ON BRAINLETS
IF YOU ARE A BRAINLET, DONT FUCKING COMPLAIN OR GTFO REEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

It does keep the script kiddies / hacker wannabes at bay.

>Python is probably the best way to teach fresh students programming even though I don't like Python.
I agree completely. Python isn't that fast, but it teaches people how to code without having to worry a lot about resizing array, memory allocation, arrays of different types etc. You can just make the program you want. And if you just need some small scripts for yourself it isn't so bad at all really.

>he doesn't know about the rapist nigger
fuck off to reddit please

They realize C is better senpai.

Rust does everything python does minus the good python libraries.

C is even worse lol

Java requires using a lot of features that don't make sense to anyone just starting out; setting up a class and a public static void main function to write a hello world program feels like an arcane ritual for beginners. Java is structured in a way that only makes sense when you start considering software engineering and management, and this isn't getting into throwing newbies headfirst into OOP.

A good introductory language should have a clear correspondence between lines of code and what they do, which is a clear advantage of something like BASIC. Everyone understandably wants to avoid that and the bad habits it teaches, though, so Python is probably the best bet among the popular languages. has a point, but it's pretty removed from conventional paradigms (which is a selling point, but maybe not for a first taste).

No, C is a great language to start learning the concepts. Using C today is fucking stupid, especially since we've learned that perhaps too much reliance on the programmer is a bad thing. But because of it's simplicity, it's a great way to teach how memory allocation works, what references are, and explain functions in a simple manner.

Then, you move to Java and explain things like classes, and the OO paradigm. Explain that Java handles the memory management, which is pretty nice but there are performance hits against this. Explain that Java is newer than C, and as such implements some features that language creators have since learned are important, like, array boundaries. So on, and so fourth.

My university didn't require I take my "Intro to Programming Languages" until my junior year which really hurt desu. I think it should be one of the first classes you take, right after CS 101. Better yet, integrate it into CS 101 and 102. Explain all the languages, their benefits and drawbacks, and etc. Intro to PL was probably my most favorite class; our semester project was creating our own programming language interpreter in ML.

Java starts to make sense when you realize it's built to be exploited by Sun and the alphabet boyz. You're building your application to have a nice uniform tree-like architecture that can be scanned, exploited and to run arbitrary injected objects.

Remember to conform to OSI model and use GUID for whatever for no reason really. Federate your authentication protocol and pass arbitrary data for telemetry.

Java is the introductory programming language though.

It's the language for shitters. The whole language is engineered to make it as difficult as possible for one shitter to mangle beyond repair a codebase hundreds contribute to.

The biggest problem with C for babby's first language is that having to include stdio to print and return an int from the main function could seem arbitrary to someone without context, and giving them said context off the bat might confuse the point of programming.

>What is #include and why do I need it?
>What is int main(int argc, char **argv) and why do I need it?

>What is a public class MyProgram and why do I need it?
>What is a public static void main(String[] args) and why do I need it?

In the end, the answer is the same; it doesn't matter until later.

We can't avoid everything. In terms of easiness Python would be the best, but I think C teaches a lot of important things, and gives a stable ground to build on. A lot of languages have similar syntax, and they only have the learn the basics once. Using Pyton they wouldn't even learn about variable types.

>Using Pyton they wouldn't even learn about variable types.
No, that actually comes quite naturally.
Try in python to do 4 + "5". It won't work because + is not defined for an int and a string. No confusing implicit conversions like in JS or PHP.
From that the utility of data types and casts flows naturally.

I'm not really a programmer, but I learned C in my first semester of business informatics, and Java in my second.
Now as a working student I'm confronted with C# and it's just the best of both worlds.

Java is the worst even C is easier.

My university started people out with C++.

I don't know if that's good or bad.

Except the performance.

You shouldn't start C++ until you've seen C and Java/C#.

C++ is just a fucking mess. It's a mess with a lot of utility, but you need to understand why it's a mess before you can really get cracking with it.

filter out the retarded normies freshmen year? sounds good to me

Teach C++ instead, problem solved

My community college goes C++ -> Java

I would say that I started with C++, teaching myself using books and the internet when I was 12, and it was easy, but looking back I did all my code in main and used goto instead of methods, not having any clue about what "void" or "class" could mean. I was 12 though, so it's not necessarily the language's fault, but I would start with C now.

C++ is easier to grasp than C for beginners.
Just start with modern features such as smart pointers and auto and leave the more complex parts and the C legacy stuff for later.

...

Half C++ "tutorials" you'll find on the web are garbage "C with classes" stuff.
Just grab one of Bjarne's books, he knows his stuff. I think he even has one dedicated for beginners without prior programming experience.

Scheme is literally the perfect language to learn programming.

>Just start with modern features such as smart pointers and auto and leave the more complex parts and the C legacy stuff for later.
That would be a disaster.
Even if your aim is to teach idiomatic, modern C++ in the style of auto myObject = make_unique();, jumping right into that is a nightmare. What does auto mean? What does make_unique do? What do the angle brackets signify?

MyClass* myObject = new MyClass(); or possibly auto myObject = new MyClass(); is much more legible. You want to teach good practice early, but not too early.

>Start with something simple, like C, where it's easy to understand procedural and gradually learn things like pointers and memory management.
On something like 8086 or even 8-bit mcu preferably, so they would learn the concept of optimization instead of LOL MOAR COREZ and muh 16gb meme any time they hit any kind of resource limit

If you think Java is "good" you're a moron.

Why do we even start with hello world?
Even if you strip it down to say("Hello World"), you still have to explain what a function is, and what a string literal is.

Why not start from the bottom?
This is a function, this is a variable, this is a string literal, you can assign to variables with the assignment operator.

Java is for tards and is useless, pascal should be the beginner language so students can learn tail recursion

You are an idiot.

Actually scheme was my introductory language almost 20 years ago. Not great but I understand the pedagogical approach.

t. java """developer"""

I'm always amazed how people have such a difficult time understanding that different languages work best for different uses. I really like using C since I often write firmware, its what C is good for. Its not good for higher level programming like web applications.