[ / / / / / / / / / ] [ dir / ask / dcaco / fur / hypno / o / sl / ttgg / u ][Options][ watchlist ]

/prog/ - Programming

Programming board

Catalog

You can now write text to your AI-generated image at https://aiproto.com It is currently free to use for Proto members.
Name
Email
Subject
Comment *
File
Select/drop/paste files here
* = required field[▶ Show post options & limits]
Confused? See the FAQ.
Expand all images

File (hide): 1441319232476.jpg (146.49 KB, 2304x1497, 768:499, Java Map.jpg) (h) (u)

[–]

3c8503 (3) No.3193[Watch Thread][Show All Posts]

What's the best way to learn Java for someone who has never programmed before? All the books I can find seem to either be old, or meant for programmers.

d65cc8 (1) No.3194>>3211

Don't start with Java.

Java enforces paradigms that you won't understand.

Start with something simpler, or at least something where you don't have to learn what Object Oriented programming is at the same time as you're first learning what an object is when you don't even know what a datastructure is in the first place.

Python and C are good choices, and there are tons of beginner's guides for both.

C++ is fine enough, since you can dance around the object-oriented aspects for a while.

If you're intent on Java, you could probably get just as far just googling "java for non-programmers" or something.


5c5d85 (1) No.3208>>3227

https://see.stanford.edu/Course#Introduction to Computer Science

The first course is OOP junk, and it's all in Java

https://see.stanford.edu/Course/CS106A

The second course is C++, building on the OOP crap you learned in the Java intro https://see.stanford.edu/Course/CS106B

The third intro course is C/C++ memory management, with a survey of Python, C# and Objective-C https://see.stanford.edu/Course/CS107

Java is still needed sadly if you want to write any Android apps, or learn OOP Objective-C type shit for iOS development.

You can also just go to libgen.io (Library Genesis/Pirated books) and type Java into search and look for the most recent results. Here's one for Javascript "Eloquent Javascript: Modern intro to programming" http://libgen.io/book/index.php?md5=13c1bc1972c54a1ab592ec29a857cd86

Javascript is also sadly still needed for hacking browser DOM, or writing front ends for whatever shitty website you're building.


d01b2a (1) No.3211

File (hide): 1441597837781.jpg (42.05 KB, 599x399, 599:399, 1440823327342.jpg) (h) (u)

>>3194

Agreed, I am fluent in java and still have no idea what I'm doing sometimes. Object orientation is only useful in a professional environment.


5b3616 (1) No.3220

Hey OP, sorta in the same boat as you.

I'm a math student that decided to learn Java as a first language, so I'm currently going through Oracle's Java SE8 tutorials and doing the problems on ProjectEuclid and CodeAbbey, while learning little bits on the side about CS in general.

It's ok so far, nothing too difficult. I suggest, as earlier, to check out Oracle's official Java tutorials/documentation.


3c8503 (3) No.3227>>3235

>>3208

Why do they teach Java in the first course, and then switch to C++ in the second? Wouldn't it be better to stick with one? Also, I thought Javascript and Java were completely different languages. Is that wrong?


41efeb (1) No.3235>>3239 >>3263 >>3281 >>3308

>>3227

You learn OOP in the first, and they use Java because marketing and also it's a "General Intro" meaning non STEM majors will enroll in an intro to compsci, so a beginners language is chosen (C++ is not for beginners). A real intro to CS class you would use a learning language so you just learn the concepts and not get hung up on the sillyness of the language syntax but due to competitive pressues for enrollment universities bend to frivolous concerns and use Python or Java for intro CS courses sadly (except University of Chicago, and some others in Canada where you learn Racket/Scheme first).

Trying to teach somebody the insanity of C++ syntax, complexity and compiler options in a first course is too much you would drop out. Java is also an awful, AWFUL first language to learn, even moreso if you're using that bag of shit Eclipse to do it in. It gives you the horrible illusion that this is all programming is, which is ridgid templates and difficulty in getting anything done due to poor abstraction levels. Python isn't much better, whitespace errors and other bullshit like difference between versions get in the way of learning.

If you've never programmed before do yourself a favor and read SICP, or take a Racket course https://www.edx.org/course/systematic-program-design-part-1-core-ubcx-spd1x-0 you'll still learn the basics of OOP and can then jump into that second C++ course at Stanford.


3c8503 (3) No.3239

>>3235

SICP doesn't seem like it's meant for beginners. Also, I'm going to need to learn Java in any case.


1792dd (1) No.3263

>>3235

>eclipse

>bad


80d0b7 (1) No.3281

>>3235

>C++ is not for beginners

>Trying to teach somebody the insanity of C++ syntax, complexity and compiler options in a first course is too much you would drop out.

Sure, but the sooner you learn C++ the better. Java is a horrible place to start however. I wish universities would start with C instead of Python, because you have to unlearn so much when they do move you onto OOP.


75aa0a (1) No.3308

>>3235

I'd just start people on C++, honestly.

If you give them templates (include stuff they need for a problem, set namespace to std, etc) then they can just start running with it. Python abstracts away too many concepts, and Java is just a huge steaming pile that fights you at every turn.

I'd rather have just jumped in at C++ than wasted my time on something like Java just to learn about Objects. But I already had some experience with the concept. Dude in my class next to me didn't understand inheritance. I think he dropped out and changed majors. But are we catering to people like that?

My engineering friend at another school just had to learn MatLab. He hated it, but at least it's a tool for his line of work and not something like Java. I find it unlikely any engineering or other major students are going to crack out a Java program with their basic knowledge down the line. A real engineer might learn Python or C to script microcontrollers, but that's if they want to. They don't need to understand much to handle that.

SICP might be a bit much for people out the gate, though. But I do think C++ is easy enough to learn the concepts for if you have a teacher, supervisor, or templates to work within. Best part is that your errors expand as your knowledge does. A beginner won't have to debug across multiple files, or scopes. They won't have brackets floating a hundred lines down from where they started. They're unlikely to cause memory leaks outside of learning loops. It's not like they're using pointers and dynamic memory yet. Once they learn Objects and Recursion, they're more or less "done". Anything past that is only necessary for C++ programmers and computer scientists.




[Return][Go to top][Catalog][Screencap][Update] ( Scroll to new posts) ( Auto) 5
10 replies | 1 images | 9 UIDs | Page ?
[Post a Reply]
[ / / / / / / / / / ] [ dir / ask / dcaco / fur / hypno / o / sl / ttgg / u ][ watchlist ]