Beware! Dummy learning Java!

November 21, 2008


Discipline is the mother of all innovation…!

I’ve decided to dedicate one hour per day to learning Java. If I remember correctly, Jeremy did something similar, but I’m not sure it was for this language. Reasons for doing this are:

  • A good intro-language for code-dummies like me!
  • Built to be cross-platform: not only PC-wise, but on mobiles as well (I plan to write about the latter in a future post).
  • Plenty of resources around (more in this in a sec)!
  • The intellectual challenge!
  • Necessity: remember my last mantra?

After looking around for resources, of which there is no shortage, I’ve decided on a three-pronged approach:

  • A lecture-series, by Swinburne University of Technology, entitled “Object Orientated Programming” (free on iTunes U)
  • A book, called “Head First Java, 2nd Edition,” which got good reviews on Amazon, and is co-authored by Kathy Sierra. The lecture above recommends, “Core Java, Volume 1,” which I have to see whether that would make sense to get, in order to follow what they are saying.
  • Exercise-tutorials, to learn the basics, of which there is no shortage online. I am currently a third of the way with the tutorials on Javaomatic, and will see what happens afterwards.

Since I don’t like working solo on things, I think a logical next step is to take part in projects where I can practice my l33t haXing skillZ as well as contribute on the business developmental side.

My questions to the audience are:

  1. Where do you stand on Java as a language and as a standard? Personally, I have yet to come across a Java-app that I actually use day-to-day.
  2. What is the one Java app that I should check out to inspire me!?
  3. How easy is it to build on top of Java and learn/use other languages? What web-languages are most related to Java (yes, I am aware that Java could be a considered a web-language also)?

Enjoy the weekend!
Vincent

P.S. don’t forget to answer our poll !!!

9 Responses to “Beware! Dummy learning Java!”

  1. Jeremy Says:

    I’d say it’s not the language that matters, but the rationale, the logics of programming. Java is just one language syntax after all (J2EE is a platform, more complex).
    Focus on the basics. Code a lot (learn by doing). Move quickly to object oriented stuff.
    From what I remember, Sun’s tutorial on JAVA is of high quality. Going over it perfectly (meaning being able to do all the examples by myself and building simple software) took me about 6 to 8 months 2 years ago.
    Good luck.

  2. Toby Says:

    You had 3 questions. So i will answer them first and then give you my opinion about it..

    1. Not sure what software you use, but as far as i remember Open Office is written in Java. If you already started to code some, you probably use Eclipse or Netbeans, which are both written in Java.

    2. Sorry, no input on that one.

    3. It should be fairly easy to learn other languages, since Java is an Object-Oriented Programing Language, you should be able to handle most of the other languages as well.. The only issue you might encounter is working with pointers, but that should be of no concern if u stay away from C or C++. (Java only uses pseudo pointers)

    So now to my opinion.
    Java is a great language to start out with, but sadly its usage in the commercial environment isnt that significant.. at least to my opnion.. You should be able to achieve any program with it, u might have a slower program or some hardware-hungry program. It just depends…
    Although there are many Java Projects on sourceforge, I couldnt find any commercially available software so far.

    If anyone wants to enlighten me, feel free!

    I hope that kind of helped you!

    Bye,

    Toby

  3. Kari Silvennoinen Says:

    God, no. I wouldn’t say that Java is good for beginners. As for your questions #2, take a look at Vuze/Azureus and realize why people use μtorrent and transmission instead.

    As I think I told to Jeremy in his post, I’d go for Python or Ruby instead. Especially Ruby’s IRB-shell is teh shit for learning it.

    But sure, if necessity and mobile platforms are requirements, Java’s not a bad choice. And anyway, once you learn programming, changing to another language is just a syntax matter. Of course, the Right Way to do stuff in different languages is different, but that’s another topic…

  4. Herve Kabla Says:

    Vincent,

    Learning a programming language is not an easy task. It’s a long and difficult path to follow, similar to cooking: one day everything succeeds, the other day you wish you never started.

    Anyway, Java is a good choice: object orientated, quite simple (but quite complex the more you learn it), with a very large library of existing classes you can leverage.

    The best learning path is to start coding a small graphical applicatioj, that would require the user to enter a URL, a few parameters (to be determined), and to start browsing the internet in order to index the pages into a small database. You will have to go through UI, database, internet protocol, quite enough to understand a bunch of code in your old days.

    Feel free to contact me in case you need help on these topcis.

  5. ceciiil Says:

    Hi Vince,

    This is very weird. Why on earth would you like to learn java ? Java is mostly used for enterprise applications and not so much for the web hence the reason why you couldn’t find so many apps based on Java. (LinkedIn is, by the way).

    Anyway, if you really need to, Head First Java is an excellent choice. You could even prepare for the certification with it !

    I would probably start with JavaScript or PHP if I were you as these are the most popular web languages …

  6. Vincent van Wylick Says:

    Sorry for the late reply, traveling and not being online regularly. I’ll address your comments, one by one.

    @Jeremy: excellent advice, also really useful to know what kind of time-frame I’m looking at.

    @Toby: I didn’t think about Eclipse being a Java app, but that makes for an excellent example / piece of inspiration. Love the way it works so far! Don’t love that it starts up so slowly, which seems to be common with Java-apps, for reasons I’m starting to understand more.

    @Kari: you are echoing what most people seem to be saying, that Java isn’t a great language to start / code with, at least that it’s not what we consider “cool” these days. I don’t think I stated that in my post either. My rationale for choosing it is that a. I can learn about syntax / logic in coding — I’m already getting a lot that I didn’t get before. b. to understand the issues facing coders that code for different platforms (PC/Mac/Servers/Mobile etc.) — I’m no where near there yet.

    @Herve: thanks, excellent comment and I’ll definitely revisit your offer when I’m at the right stage.

    @Cecil: I’m known for doing weird things. I knew you would agree with my choice for Head First :) Regarding coding-direction, I actually have a lot of ideas in both the enterprise and B2C space, I know Java isn’t exactly a web-language either. I didn’t know that LinkedIN was Java-based though, very cool!

    @ ALL: I will have to revisit my rationale for learning language in a future, more lengthier post, but suffice it to say that I did look at other languages, but was looking to learn something fundamental. I don’t want to cheat my way into coding by learning an easy language like Ruby, but want to approach programming more holistically, which hopefully translates into becoming a better coder all-round (a theory), as well as a better manager of coders, whatever language is being used (theory 2).

  7. Kari Silvennoinen Says:

    Vince, it’s not really about the issue of “cool”. If you want to learn things “the hard way” and and understand platforms, I can only give you C.

    My main rationale for Python/Ruby from learning point of view is instant feedback. No compiling and interactive shells mean that you can try out stuff and get instant feedback on your mistakes. I wouldn’t say that it is “cheating” that they’re easy to pick up, because the obstacle in the programming shouldn’t be the language’s syntax, but the the coding problem you’re solving.

    I think they teach Java here at HSE for exactly for the reason you mentioned that “students would be better managers of coders”, but I think that doing it like that might even be counterproductive. Sure, a better manager knows the challenges of creating code (unpredictability, etc.), but teaching people to write a “Hello World” in Java probably doesn’t help to that end.

    I don’t undestand how someone could say that Java isn’t a web language. F.e. take a look at Glassfish, which is “teh shit” right now on Application Server front. (And thanks to Jython and JRuby, it’s not just for Java.) (Also, saying that Java is good because it’s object-oriented is bit irrelevant, because pretty much all modern languages are… but I digress.)

    Writing code and reading about code (especially the latter), will undoubtly make anyone a better coder. I kinda like O’Reilly’s materials, especially the Cookbooks are good once you’ve got the hang of the language.

    Don’t take any of this in a wrong way. By all means, learn Java. I can’t much Java myself, but I’d like to learn a little so that I could do some little apps for my phone.

    Anyway, once you’ve learned Java… take a look at Jython or JRuby… =) (but seriously, do.)

  8. Vincent van Wylick Says:

    OK, I will.

  9. Confessions of a Closet Programmer « Tech IT Easy Says:

    [...] 8, 2008 Previously on this blog, Vincent talked about learning Java. That reminded me of this post that I had kept as a draft for a very long time. It’s more [...]

Leave a Reply