[ home / board list / faq / random / create / bans / search / manage / irc ] [ ]

/prog/ - Programming

Programming board

Catalog

The next generation of Infinity is here (discussion) (contribute)
A message from @CodeMonkeyZ, 2ch lead developer: "How Hiroyuki Nishimura will sell 4chan data"
Advertise on this site
Name
Email
Subject
Comment *
File
* = required field[▶ Show post options & limits]
Confused? See the FAQ.
Embed
(replaces files and can be used instead)
Options
Password (For file and post deletion.)

Allowed file types:jpg, jpeg, gif, png, webm, mp4, pdf
Max filesize is 8 MB.
Max image dimensions are 10000 x 10000.
You may upload 1 per post.


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

7ea498 No.3193

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.

d13381 No.3194

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.


84b243 No.3208

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.


889c30 No.3211

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

>>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.


fc7c04 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.


7ea498 No.3227

>>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?


9d827d No.3235

>>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.


7ea498 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.


ec4d6c No.3263

>>3235

>eclipse

>bad


9f0860 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.


a866be 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][Post a Reply]
Delete Post [ ]
[]
[ home / board list / faq / random / create / bans / search / manage / irc ] [ ]