Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-

what to do after ap java?

Name: Anonymous 2008-12-22 18:42

I'm a senior in high school and my ap java class is nearing its end. You can look up the scope of the class here http://www.collegeboard.com/student/testing/ap/sub_compscia.html
What java book/api/website should I study when this course ends?

Name: Anonymous 2008-12-22 19:02

Name: Anonymous 2008-12-22 19:22

I'm in a pretty good mood and don't really care if IHBT so fuck it.

As I recall from AP Comp Sci A, you've come out of it with a general sense of how to write a program in Java and how to use some of Java's datatypes and some basic sense of algorithms like sorting.
From your post I get the impression that you're looking to increase your Java voodoo magic, with enough of which you'll be able to solve most any problem.  This isn't entirely wrongheaded--it is very important that a programmer has a good working knowledge of their language and platform. 
However, there are some much more valuable things you can concern yourself with at this point in your progress as a programmer.

Firstly, you'll want an understanding of data types, algorithms, computability, complexity, and everything else which we call Computer Science.  This is a pretty large undertaking, which you've already begun in the AP course.  There are many good texts on this subject, but few that are really approachable for normal human beings.  I'll still, however, recommend Introduction to Algorithms1.  If anything goes completely over your head, reread, then reread again, then ask someone for help.

Secondly, you'll want an understanding of program development.  It seems pretty straightforward when you're doing small things like the course material, but as soon as you work on something nontrivial, things get real crazy real fast.  For this I'd recommend How to Design Programs2.

Are you going to continue education for a bachelor's in CS?  A lot of the above will be covered in a good course track, but it's still a good idea to get a head start.
____________________________________
1. You can probably get it by googling the title + "rapidshare" or somesuch.
2. http://www.htdp.org/
Addendum to our /prog/ regulars: are there any standard texts on data types?  I honestly can't recall ever dealing with one.

Name: Anonymous 2008-12-22 19:26

Fuck, ``data types''?  Please mentally replace all instances with ``data structures'', thank you.

Name: Anonymous 2008-12-22 19:42

Name: Anonymous 2008-12-22 19:54

>>5
Ha ha, NOT

Name: Anonymous 2008-12-22 20:34

>>2
Joel on Software?

That faggot spends all his time wanking to Visual Basic his own made up language that pretends it's Visual Basic. The only thing he's ever managed to produce with his stupid software company is a goddamn bug tracker and a ton of shitty blog posts about how damn smart he is because he was a code monkey for Excel back in the day.

Fuck, I hate that asshole.

Name: Anonymous 2008-12-22 20:40

>>7
Did you have any criticism about the article in particular?

Name: Anonymous 2008-12-22 20:48

>>7
OMG YEAH HES A BIG GAY JEW. WHAT CAN I POSSIBILY LEARN BY READING THE WRITINGS OF A BIG GAY JEW

Name: Anonymous 2008-12-22 20:49

>>8
I'm not >>7, but the idea that low-level languages require smarter programmers than high-level languages, and that Java is easier to use than C. Both bullshit.
There are very valid concerns about Java schools, but Joel is too busy masturbating to his own picture to see them.

Name: Anonymous 2008-12-22 20:49

>>7
At least he's not Paul Graham

Name: Anonymous 2008-12-22 20:50

>>9
Back to Stack Overflow, please.

Name: Anonymous 2008-12-22 20:55

>>12
That sounds liek the post of a BIG GAY JEW

Name: Anonymous 2008-12-22 20:56

>>8
Joel is cranky because he has to put up with hiring people, but that's his goddamn job, and by his own choices. If it bothered himi so much he could always get a job where that sort of thing didn't matter. I for one think Java is an excellent language to start with; it forces structure on the newbie programmer in a way that the more dynamic languages don't necessarily do.

The point shouldn't be to "scare away first-year students". That's a stupid idea. If they want to learn to be programmers, great. Give them a curriculum that teaches them how to program effectively, lay out and organize code logically, and teach them stuff they're actually going to use in the real world. Most acutal businesses use C++, Java, or Visual Basic. Sorry, it's true.

To his defense, I agree that lower-level languages should be required parts of any CS curriculum. Exposure to multiple, distinctly different languages is of obvious benefit; it reinforces concepts and teaches people how to learn a new programming language as opposed to simply how to use one. Show 'em Java, C, Assembly, Forth, Lisp, Haskell. By the end they'll be able to figure out pretty much anything you can throw at them, or they'll have changed majors because they just can't hack it. But for Christ's sake, some of these kids just don't have the mental grasp to understand the sort of complex logic required for successfully getting through SICP right from the first semester. Set the bar too low and you get dumbasses, but set it too fucking high and you don't get anyone.

Name: Anonymous 2008-12-22 20:58

Name: Anonymous 2008-12-22 21:01

s/himi/him/; s/acutal/actual/

Name: Anonymous 2008-12-22 21:03

>>15
Wow. He's an idiot.

Name: Anonymous 2008-12-22 21:06

>>15
Got 100% in less than five minutes.

Name: Anonymous 2008-12-22 21:12

>>14
I for one think Java is an excellent language to start with; it forces structure on the newbie programmer in a way that the more dynamic languages don't necessarily do.
You are insane. Java is a terrible starting language at least because:
- It forces you to memorize huge amounts of syntax, when you should be learning programming concepts.
- It rapes your brain with its perverted view of object-orientation.
- It doesn't force structure on the newbie programmer. Actually most Java `CS 101' start by telling you how to cook glorified spaghetti code in the form of static-everything, only later adopting `object-oriented' design using inane examples and no reasoning whatsoever. This isn't strictly a property of Java, but it is apparently hard to teach otherwise.
- It is decidedly single-paradigm, and places severe limits on how the new students think about programmatic problem solving.

Name: Anonymous 2008-12-22 21:30

>>19
Funny, because we didn't even touch code in my intro to Java class until roughly 1/4 the way through the course -- the first part of it was all about thinking OO-style. The first test was entirely done in terms of mostly-Java-looking pseudocode (i.e. none of the class structure or new or anything -- just straightforward thing.doThis() and otherThing.doThat(stuff, moreStuff) concepts) and the premise was describing an OO method to make a sandwich given "refrigerator", "bread", etc. objects. By the end of the class we all had working Java applets that did exactly the same thing and had mouse drag-and-drop -- and again, with very little crud code (which, may I add, was supplied to us already. As the instructor said, in the real world no one actually writes that boilerplate for every single program.

(And, obviously Java is single paradigm. It's meant to be, and that's why I said it was a good starting language.)

My point is, just because you can teach a language in a really fucked up way, doesn't mean you have to. The teaching style you described would be akin to starting a wood shop class by giving people nothing but a hammer and telling them how to cut a piece of plywood with it by beating the shit out of it.

Name: Anonymous 2008-12-22 22:13

>>19
- It rapes your brain with its perverted view of object-orientation.
They'res nothing THAT perverted about Simula-style OO. I suppose Smalltalk might be better, but it has arguably worse syntax.

Name: Anonymous 2008-12-22 22:35

>>21
You'd have a difficult argument on your hands.

Name: Anonymous 2008-12-22 23:14

>>21
prototype-based OO > class-based OO
everyone realizes this except sepplesfags and javafags.

Name: Anonymous 2008-12-22 23:26

>>23
I agree that prototype-based is a nicer model, but it happens to be SLOW AS FUCK.

Name: Anonymous 2008-12-22 23:49

>>24[citation needed]

Name: Anonymous 2008-12-23 0:00

Name: Anonymous 2008-12-23 0:04

>>26
So your entire argument is based on one slow as fuck language implementation?

Name: Anonymous 2008-12-23 0:12

Name: Anonymous 2008-12-23 0:24

>>28
So your entire argument is based on multiple slow as fuck language implementations?

Name: Anonymous 2008-12-23 0:39

1) Read:
SICP (Wizard Book)
and
Art of Computer Programming.
2) Learn:
Javascript (Rhino) is now part of JVM (SE 6).
Clojure is the other JVM language you need to learn.
After this C (GCC) and Lisp (SBCL).
Then ObjC for GNUstep, iPhone, and Mac OS X.
Python and Perl are the only others.
3) ?????

4) Profit

Name: Anonymous 2008-12-23 0:50

1) Read:
C++ for Java Programmers
and
Patterns of Enterprise Application Architecture
2) Learn:
Java is now at version 7 (Dolphin)
After this C++ and FORTRAN ('56).
Then Java for desktop programming and mobile devices.
Groovy and Scala are the only others.
3) ?????

4) Profit

Name: Anonymous 2008-12-23 0:52

My beautiful little canaray and I were very attached to each other. When I was in Europe I got very sick for 3 weeks, during that time my canary just sat on the rug or on the top of a chair and didn't sing.
As soon as I felt better my little Ti-Ti started to sing and took a bath and started to fly. My husband was amazed and so was I.
When I returned my little bird wouldn't let go of me. I noticed he was was dragging his leg but was flying a lot more.
I called the Vet who said to take him to see what was wrong. After giving a complete X-ray to his little body they gave him chelation thereapy. All that made him tired I am sure.
I got him back home his legg looked normal again, he nested on my shoulder in a strange way and didn't sing. I went to take a nap and my husband woke me up saying Ti-Ti is dead! His little body was still warm. We panicked called the Vet who said to take him right away. When we got there the Vet said Ti-Ti was dead they said he migh have died of a heart attack when I asked why was his little body warm they said the body stays warm for a few hours after death, they also said there was something wrong with and no one could detect it. My little Ti-Ti died November 7th and left a big empty space in my life. I was very attached to him. I would like to buy another one like him and don't really know what's the best time to look for a male who I pray will be Ti-Ti's alter ego.
I want to buy a bird who is a progeny from a mating of canaries that occurred after November 7th. Just hoping
God will allow me to find Ti-Ti once more in another yellow canary.

Name: Anonymous 2008-12-23 3:14

>>27,29
What computer so-called “scientists” don't know is that reality is a pretty strong argument.

Name: Anonymous 2008-12-23 4:19

Holy fucking faggy shit. My AP Comp Sci class was C++. I can't believe they are teaching fucking Java.

One of the goals of AP Comp Sci was to learn OOP.

Few of you faggots realize that C++ is not an object oriented language. It provides object oriented language extensions to C. You need to implement the OOP yourself.

For a basic example, when you create an instance of an object and then need to pass it to another scope the object needs to maintain its identity (and yes, I realize there are edge cases here where that is not always true). You need to pass some reference mechanism of that object instance to the new scope.

Java is a pass by value language. All variables are passed to a new scope using their value. C++ is the same way.

Except, all object variables in Java are pointers to the object instance. So you pass the value of the pointer for the object, not the value of the object itself to the new scope. You never use the lagnauge to work directly with the object value.

C++, not being oriented to maintaining object identity, passes the value of the object to the new scope.

Example:
In C++ if you declare an instance of a House class and then pass that variable to the Paint method of some other object, a new House will be built, painted and then destroyed. That of course would be a fucking wasteful and faggy thing to do. So you use some extra C++ syntax to pass a pointer or reference to your House and then you can Paint the actual House you are working with etc. House has maintained its identity.

In C++ you learn OOP because you have to implement it yourself. You can also learn evil OOP like multiple inheritance.

In Java, the details are mostly implemented for you. Learning OOP starting with Java does not reinforce those basic concepts.

Also, 90% the science part that you are supposed to learn is already implemented in the standard Java libraries. So learning how to do that shit in Java is pretty fucking stupid because a real computer scientist already implemented it, and I bet they did a better job (sometimes with Java though we can't always be too sure).

From a computer science perspective, Java is too complete to teach comp sci. From a practical perspective its to shitty to teach anyone.

Name: Anonymous 2008-12-23 4:22

And what fucking comp sci 101 class does not teach newfags about magic fucking numbers. AP comp sci in Java does not. For missing that basic, it is fail.

Name: Anonymous 2008-12-23 5:40

>>34
MI is not evil. C++'s implementation of it, however, is.

Name: Anonymous 2008-12-23 6:01

>>32
V-V > Ti-Ti

Name: Anonymous 2008-12-23 7:16

I agree that prototype-based is a nicer model, but it happens to be SLOW AS FUCK.
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=lisaac&lang2=javaxint

Name: Anonymous 2008-12-23 7:39

>>38
There's something fishy about Lisaac. I think that thing is actually a class-based OO language pretending to be prototype-based. You can't add slots to existing objects, thus you can't define new prototype at runtime. The only thing it has in common with prototype-based languages is that inheritance is delegation. And you can't use that as a loophole to add new behaviour to an object either, because static typing prevents you from doing so.

Name: Anonymous 2008-12-23 10:46

>>30 will make you wealthy.
>>31 will may keep you employed but you will need to be retrained.

Name: Anonymous 2008-12-23 15:52

>>39

I believe the problem there is that it is statically typed.

The weak type/prototype system in JavaScript is fucking stupid. I constantly find myself ensuring object meet contracts with hundreds of fucking:
if(something)
or
if(typeof(something) !== 'undefined')

Using logic statements in code to enforce variable contstraints from other scopes is fucking stupid.

Name: Anonymous 2008-12-23 16:00

>>41
 its the price you pay
 to not write every variable with type declaration.
But,i still think there should be something like
#define undefined=0;
and all this code will run without these extra checks.

Name: Anonymous 2008-12-23 17:55

>>42
This hack would introduce too many errors.

Name: Anonymous 2008-12-23 18:00

if(~undefined){alert("Undefined is false")}

Name: Anonymous 2008-12-23 18:01

to not write variable with type declaration.
learn2type inference

Name: Anonymous 2008-12-23 18:04

>>45
FUCK. i meant to quote that as
to not every variable with type declaration.
*fixes greasemonkey script*

Name: Anonymous 2008-12-23 18:35

>>42
You have failed at CPP.

Name: Anonymous 2008-12-24 2:18

>>47
>>Click here to be forwarded manually.<<

Name: Anonymous 2011-02-02 22:45

Name: Anonymous 2011-02-03 2:35

Don't change these.
Name: Email:
Entire Thread Thread List