Re: Should I Start With Java?

Posted 06 November 2012 - 08:29 AM

Amen to that. And remember: math isn't just about getting through to calculus. There's huge areas of math that are a lot of fun, and arguably much more relevant to the programmer - sets and number theory, for example. Also, obviously, graphs are hugely important when you get to understanding data structures like lists, trees, and, well, graphs. And the nice thing is, these topics are not that hard to get your head around.

Re: Should I Start With Java?

Posted 06 November 2012 - 04:19 PM

jon.kiparsky, on 07 November 2012 - 02:11 AM, said:

This is exactly where we diverge. The compiler output, in my view, is much better feedback for the programmer. Having to go back and find the problem for yourself actually forces you to learn it. Punching keys until the red goes away is more like Skinner training pigeons than anything to do with learning.

Again if you're using it as a tool rather than a crutch, and you're actually actively attempting to learn as you go and not punching keys until the red goes away, the IDE isn't a magic bullet if you're applying yourself.

jon.kiparsky, on 07 November 2012 - 02:11 AM, said:

If the IDE does it for you, you don't learn anything from that. This is like saying you can take pictures with an automatic camera and learn about aperture settings.
Programming is a practice, you learn it by doing it. Hiring someone to do it for you defeats the purpose.

That's a pretty big overdramatization. Programmers are given the opportunity to see their code get changed at the lowest level applicable. Photographers wouldn't generally have the same intimate relationship with a matrix representation of their image. I agree you learn to code by doing it, but I disagree that being shown the correct way that the code should be formatted is going to stifle a new programmer's ability to grasp what's required of them.

jon.kiparsky, on 07 November 2012 - 02:11 AM, said:

If you're typing

Foo foo = new Foo(

and you don't know what comes next, this is exactly what I mean by an IDE allowing you to go ahead without knowing what you're doing. And this is a disaster - you're really making my case for me!

It's not a disaster at all, it seems like a logical progression to me. In the context of classes that are self-explanatory for example Date, there are many different arguments you can construct the class with. Knowing every single option you can construct a Date class with off the bat is unheard of and a waste of time. Referring to Javadocs gives the exact same result as Eclipse's content assist functionality listing possible constructors.

This isn't a special case, you can know theoretically how a class works but potentially have the order of the arguments muddled up in your head. If you don't know how the class works, then it's time to read Javadocs.

jon.kiparsky, on 07 November 2012 - 02:11 AM, said:

I don't have a lot of faith in someone's ability to work with complex systems if they can't get up and running in vi in a few hours, frankly. Think of it as a low bar to step over. If they learn it and prefer not to use it, that's another thing, but you're learning a handful of keystrokes to get yourself editing text. If you can't manage that, you might as well hang it up and go home.

I'm not saying learning vi or emacs is a bad thing. I quite like using vim but certainly wouldn't consider myself overly great at it. But if you're going to spend time learning just a handful of keystrokes to edit text and not use the functionality of vi or emacs to assist you in writing code faster, why not suggest the use of a more relatable text editor such as Notepad++? Yes I understand the perks of not needing to lift the mouse when wanting to select things etc, but as I've said before learning a quite involved text editor like vi in conjunction with finding your bearings in a programming language isn't going to be the best of times.

Re: Should I Start With Java?

Posted 06 November 2012 - 04:59 PM

Java is a great language to learn, and career opportunites are endless (atleast in my area they are). However, if you posted the exact same thing in the C forum, they would say C is a great starter language with great career opportunities. I personally think the best thing to do is test the water with a couple of simple tutorials across a couple of languages. Find a language you feel comfortable with, and progress from there.

Re: Should I Start With Java?

Posted 06 November 2012 - 05:43 PM

I find Java a great language and it has its strengths for sure. I think it simplifies many things that are just too verbose in .NET languages. However, for easy reading and usability I do enjoy C# as well. But as a beginning language, Java is perfectly fine.

As for the sub discussion on whether or not to learn on an IDE, I am of the mind that you should at least learn for a few weeks on notepad and the command line. It does help you understand a bit of what is going on behind IDEs and has been invaluable for me in diagnosing IDE troubles. Now when Eclipse throws a fit, I can quickly get past it knowing what it is trying to do in compiling.

As for it being a very safe bet, job sites are a good indicator, such as indeed.com. Nationwide, in the U.S., a recent search for Java yielded 75k openings, (.NET 69k) c# 32k, c++ 35k php 19k, objective-c 3k.

Re: Should I Start With Java?

Posted 07 November 2012 - 06:51 AM

In all fairness to farrell2k, java has been number 1 or 2 for years now on tiobe. If I am not mistaken, it has just been overtaken by C, so it is now number 2 again. And I have just finished looking for jobs, and I can honestly say that java dominated this market. There were far more java jobs than any other job, and they seemed to pay more aswell. One thing to note though that 95% of these jobs are not asking for core java developers, I found that quite strange. 80% of the jobs I looked through wanted strong experience in Spring and surrounding technologies, and the other 15% wanted some kind of additional third party knowledge.

Re: Should I Start With Java?

Posted 07 November 2012 - 08:17 AM

I'm not sure what questions we think TIOBE answers. The ranking is based, as I understand, on which languages come up most in various search enginges - this is interesting, but hardly conclusive. In any case, the results haven't changed much in the last several years that I've been watching: C and Java dominate, almost certainly because they are the most common languages of instruction in introductory courses.
One thing to note here is the persistence factor: web pages don't tend to go away. So if someone has created "java-answers.com" in 1999, that work will count in 2000, 2001, etc. This biases TIOBE's numbers immensely, unless they're doing something to control for it - I don't know if they do, but it doesn't look like it.

The interesting thing in TIOBE recently is the rise in Objective-C, which is clearly based solely on one use case. This tells you a lot about the i-* market. By the same token, I think we could expect a corresponding rise in Java's rankings from its use in Android. I think it's worth considering the hypothesis that we're actually seeing this rise, and therefore that there's an overall decrease in desktop java, or at least a plateau effect. This is borne out to some extent by chatter around the interwebs.

Not to say I don't think Java is a good language to learn, I just don't think TIOBE is a strong argument for that position.

Re: Should I Start With Java?

Posted 07 November 2012 - 02:04 PM

Tackle every language you have an interested in, check the job search websites, see which are in demanded, learn it, but it is not bad to know more than 1. For myself, I want to know Java, C#, PHP, and whatever else I see popular..