Is Java the go to beginner programming language?

Is Java the go to beginner programming language?

C

Python, probably

but there's always babbier shit

Why would you suggest that to someone who's never programmed before.

OP, I'd start with python. It's easy to get the hang of, and it's more important to understand the logic behind programming than it is to use a low level language for cool points.

Python

Then java

No, there's no goto in Java. I don't know why that's your criterion though, especially for beginners.

Because that's what most Unis start with for people who never have done programming before.

Scratch

Most unis start with Java you fucking idiot

>not starting with fucking BASIC
it's in the fucking name, jesus christ

Python, never javs

I kekked

For object oriented languages that should be smalltalk as it gives you a better understanding of the underlying concepts

For a beginner language you want something with few gotchas, that will encourage good habits, that will give you useful feedback on what you're doing wrong asap, and preferably will have an interpreter.

Viable languages along those lines include ML, OCaml, Ada, Haskell.

OCaml is god teir

Any CS program worth their salt starts with Scheme.

This guy knows what's up.

What stops me from agreeing with you is the dynamic typing and clunky syntax. The latter can be fixed with sweet-expressions, but they aren't exactly in widespread usage.

Java is trash, just like Asuka.

MIT uses python, so i assume it's worth something.

C and x86 assembly.

Maybe poorfag unis, C or Ada should be the start for anyone

>any CS program worth their salt starts with a language that's practically useless, looks like a mess and has little carry-over for languages that are actually relevant today
But muh meme book, right?

Out of all the languages I've tried out, Fortran's been the easiest for me to learn. Never tried Java though

My uni started with c for the bare fundamentals of programming and we were also tought with basic logic board to understand how cpus work. We used c++ for oop and java was used when we were doing socket programming. In my masters year, we used a weird language for parallel computing called occom. My go to language was c# though and still is today. We also did x86 asm and if you took the games modulr, you did ppc asm (our uni had thr most ps3 dev kits in the world i believe and it has the most ps4 dev kits in the world)

I'd definitely start with Fortran instead.

There's a big difference between someone being taught computer science from the ground up in a University setting, and someone who wants to learn on their own.

Python is much easier to grasp on your own, and spending a ton of time mired in the basics of C is not a great way to keep someone's interest in programming.

>keep someone's interest in programming
Not to be a dick here, but people should really be expected to have discipline if they want to learn anything seriously.

I know that, but at the same time it's good to be able to see some progress, especially in the early stages of learning something.

Obviously an extreme example here, but it's like teaching someone to work on a car by having them rebuild their engine as their first task.
They're probably going to be a bit overwhelmed, and not bother.

Not the best choice, no.

Too large, complex and introduces an unnatural way of thinking about things.

No, the natural "Cat and Dog inherits from the Animal class" example has nothing to do with real life Java (and C++ or C#, same interpretation of OOP).

Java = Pajeet programming language

I feel like it's C++. Object Oriented unlike C, slightly less hand holding than Java.

no...
maybe..
They teach it in a lot of schools, its probably more forgiving than other systems languages.

its not haskell and its not python so meh. It's fine w/e

yes.
And make sure you use the swing package whenever your making a GUI

lmao only hellholes or boonie-unis start with java or c++

[spoiler]like my university[/spoiler]

Java is still taught a lot at universities. It's terrible, when students should learn about algorithms they need to learn about public class public static void.

don't be a babby go for C++, by learning it you basically learn every other relevant programming language

real programmers use a magnetized needle and a steady hand

Assembly

Oh come on!

MIPS asm? PowerPC? SPARC? ARM? Z80? 68k? x86? Something else?

C or Python. I reckon Swift would be a good start as well.

Python is

YES.

I tried learning programming with Python, Ruby, JS, before giving JAVA a go.

Frankly, nothing stuck and I quit after a few weeks except JAVA.

Python/Ruby do too many things for you, too much "magic" you don't really know what's being done for you.

C is not used so much in production but useful to learn about computers. C++ is just too overwhelming for a beginner.

JAVA is the "golden middle" and a perfect beginner language.

Why not C??
C is suffitiently simple for everybody.
Teaches you how a computer operates
Teaches you memory management.

Now you have all these languages with Garbage Collection and these new programmers do shit that should be punishable by law, a.k.a. Chrome, Theses modern fancy editors. Check the RAM usage on these things. Knowing how memory is managed in C is knowing how memory is managed in your OS, Language and that new shinny framework youu must use.

C is not easy, it's frustrating but so is the path to enlightment.

children, women => scratch

complete newbie / general => python

complete newbie / CS student => java

of course CS students should eventually move onto other paradigms. usually C is a great second language for everybody.

>why not C?
Because it contradicts nearly every possible criteria you'd want in a beginner language, and is generally a bug prone poorly designed piece of shit. Consult the NASA Software Safety Guidebook for more information. Then put C back in the trash heap of history where it belongs.

Who is this
S E M E N
D
E
M
O
N

Asuka Langley Soryu, fucking retard.

Nice meme

Thanks

A cyкa

Started with Java in high school. Only used it for half a year of class, but for me it was perfect for learning the absolute basics.

I am not saying to develop a full satellite system, or whatever NASA does these days, but a simple beginner program like sum two number, know what is memory not an abstraction dealing with stuff that is important to fully understand a more high level language like Java, Python, C++.

>simple beginner program like sum two number
Better done with a REPL interpreter.
>know what is memory
Not a beginner thing, unless you're taking a beginner comp hardware class. For programming it's all about basic abstract algorithms and paradigms. (And before you go on about efficiency, I'll remind you that time/space complexity is both not a beginner topic and has nothing to do with C. Same goes for compiler theory.)

Also I'm fairly sure you didn't actually check the guidebook. Go on. The stuff it has to say about various programming languages, particularly C, is highly entertaining.

holy shit I want that dog to be mine

You couldn't reverse image search?

Assembly

Knowing how to handle memory is something that must be taught somewhere, I am not saying to teach everything about memory. but something simple like a malloc and free, the boilerplate part not the hacky stuff. that gives foundation for better practices in more high level language where you don't control the memory.

I agree with you efficiency is something more advanced, however teach some general principles in memory management is a must, as it builds a strong base for when efficiency is required.

The point I'm trying to make is that C is a base to understand other languges and their quirks and some advanced topics in other languages. You don't need to teach everything little aspect of the C programming language, but give the students some experience dealing with the underlying stuff of more higher level languages.

Started reading the manual, actually makes some sense, thank (You)

if you're a poo in the loo, yeah. Python or Go is basically straight up english

This, I actually started with Java but I would've had an easier time if I'd started with Python. I've been using Codecademy to learn html/CSS and it's going great

It depends. Does your teacher think you're retarded? Then Python is the new BASIC (and pretty bad at that).

Otherwise Scheme.

My uni started with Assembly and Python, then went to C, C++ and bash/Unix in the next semester. I don't even want to talk about the large amounts of math and structural programming theory. That was in the first year.

The reason everybody tends to recommend C is because once you can program in C, it is very unlikely that picking up a new language is going to be an issue for you. Up to you if you like that idea or not.

At the end of the day, your 'first' language doesn't matter as much as learning any language at all. You could learn javascript first if you want to be a masochist about the whole process, but at the end of the day if you can learn ANY programming language, you're probably gonna be able to manage another one. And then another. And so on.

most based answer

I would say C has to many constraints and details that you have to take care of and it hinders you to learn the basic concepts and foece you to fickle with smaller details. It takes away time and energy from learning the important concepts.
You can go into more detailed memory management when you have a basic understanding of core/basic CS concepts.

Electrical engineeringfag here. My uni taught me programming-related things in this order:
>Abstraction and modelling, Scheme (SICP)
>Numerical computation in MATLAB (Bleh. Kinda useful, I suppose.)
>Computer engineering, Motorola 68000 assembly
>Data structures, C++
Then, as part of a project course involving embedded systems, I taught myself C to make use of its legendary portability. The project required us to be able to remote-control the embedded stuff from a laptop, so I also took the opportunity to dust off the basic Java I learned back in high school and make a(n ugly) GUI for it.

Most of the above was done on Solaris, CentOS or Mint, so I also gained some limited Unix-like skills along the way.

pascal is the best language, both for beginner or for writing cross platform gui and shit.

Java is good for teaching oop and getting students a job. Cred Forums is full of contrarians so this probably isn't the best place to ask

you pretty much have to not-suck at adapting to computer language and can't depend on knowing just one or you'll have a shit QA job at the most in your lifetime.

you get stuck having to see whats being asked for because if your client asks for it and you don't know it, you loose your client.
a business makes you learn a new language if an incoming project demands learning it, if you can't adapt to that then you wont be going anywhere in programming.

BASIC has a goto command, as does C. I did not think that java has goto.

>implying goto is viable
>implying you're not completely wrong

java is a shit language

Either C or Java should be the first language. There are concepts in Java like memory allocated objects that are accessed by reference that might be easier to understand if you have some background in C. But there is a lot of weirdness about C that throws off beginners because C is supposed to be broken in order to do what it does. So its a chicken/egg problem

if you are going to start with java, at least learn C and x86 ASM with it.

Alexandra Gaier

>There are concepts in Java like memory allocated objects that are accessed by reference that might be easier to understand if you have some background in C.

the right reason why java is a shitty language.