Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Wasting my time learning Java?

Options
  • 13-01-2011 12:05pm
    #1
    Closed Accounts Posts: 8,866 ✭✭✭


    Hi guys,

    I'm looking at picking up a new skillset, and going by the job sites java seems to be in relatively high demand compared to other languages. I'm wondering if you think this will remain the case over the next couple of years, or would there be something trending right now that would be of more use to me in the medium to long term? there's just so much out there it's hard to keep track!

    thanks


Comments

  • Moderators, Politics Moderators Posts: 39,854 Mod ✭✭✭✭Seth Brundle


    Its been around for over 15 years and doesn't look like its going anywhere just yet.
    Anyhow, even if it did the syntax, logic, etc. would make learning a new language much easier.


  • Registered Users Posts: 515 ✭✭✭NeverSayDie


    Adam wrote: »
    Hi guys,

    I'm looking at picking up a new skillset, and going by the job sites java seems to be in relatively high demand compared to other languages. I'm wondering if you think this will remain the case over the next couple of years, or would there be something trending right now that would be of more use to me in the medium to long term? there's just so much out there it's hard to keep track!

    thanks

    Java's been around for a good while, and is going nowhere. Think about it - all those ads you see for Java devs - even if Java fell out of fashion bigtime for some reason, all the software they're working on wouldn't cease to exist.

    In any case, as kbannon points out, the main thing is to learn how to program, and learn software development on top of/along with that. Once you have that, the choice of language/platform is very much secondary. Obviously we all have our particular platforms we're specialised in, but a competent developer should be able to work in whatever language there's a need for. Eg, I mainly work with C#/.NET, but I started out commercial work with a lot of Perl, got thrown into some VB6, I've had to dabble with C++ on various occasions, and am now mostly focussed on C#. I haven't hit much Java, Ruby or PHP yet, but I expect to stumble over all three at some point.

    So yeah, Java is a perfectly good choice to work with, but don't get too hung up on choosing a language or platform, especially on the basis of its future. That's a) hard to predict, and b) as any COBOL repairman will tell you, a long-term game.


  • Registered Users Posts: 18,272 ✭✭✭✭Atomic Pineapple


    I learned Java from my 4 years at college and started out working a year ago on Android which is based around Java, a year into the job and I'm starting to branch out a bit, I've started learning PHP, C/C++ and will now need to learn objective C, learning Java has given me the platform to work from and branch out.


  • Registered Users Posts: 2,089 ✭✭✭henryporter


    Do many of you guys have Java Certification as well as whatever 3rd level studies you completed?


  • Registered Users Posts: 5,246 ✭✭✭conor.hogan.2


    Java will still be in demand for the foreseeable future.

    May not be a main player in android in the future if oracle keep going, but thats a small part of the overall picture.

    Java is one of those languages that if you can you should learn even if you dont plan on working with it.

    Going from java to most oop languages isnt a huge stretch once you get the basic oo concepts down.


  • Advertisement
  • Registered Users Posts: 2,164 ✭✭✭hobochris


    draffodx wrote: »
    I learned Java from my 4 years at college and started out working a year ago on Android which is based around Java, a year into the job and I'm starting to branch out a bit, I've started learning PHP, C/C++ and will now need to learn objective C, learning Java has given me the platform to work from and branch out.

    Objective C? I suppose you probably should port your apps for the sheeple.. :D


  • Closed Accounts Posts: 8,866 ✭✭✭Adam


    thanks for the responses guys. i've started working through Java, How to Program(Deitel), it's proving an enjoyable read so far, and i think i'll enjoy learning Java and OOP rather than staring with C.

    one more question: do you think that i would need to go back to college for a degree to pick up a job in java development?


  • Registered Users Posts: 1,514 ✭✭✭Dermo


    I personally don't think a college degree is needed if you have java certification but sadly that is not what most hr people think. Most places will just throw away your cv if you don't have a college degree :(


  • Registered Users Posts: 9 notouts


    Hi adam, choosing Java for yourself will be fine. Its widely used, its an object-orientated language etc. Maybe you should provide a bitmore info though if you want a little more tailored device. e.g. have you any college qualification, IT experience etc. By the way a college degree is not a requisite, my boss has no college qualification but is an excellent developer/system architect.
    I cant speak for other companies but having a qualification like SCJP will do you no harm, although that qualification is easier to master once youve got even a little bit of experience


  • Closed Accounts Posts: 8,866 ✭✭✭Adam


    notouts wrote: »
    Hi adam, choosing Java for yourself will be fine. Its widely used, its an object-orientated language etc. Maybe you should provide a bitmore info though if you want a little more tailored device. e.g. have you any college qualification, IT experience etc. By the way a college degree is not a requisite, my boss has no college qualification but is an excellent developer/system architect.
    I cant speak for other companies but having a qualification like SCJP will do you no harm, although that qualification is easier to master once youve got even a little bit of experience
    basically i'm 24, i've always been an avid tech head since i was about 14, but didn't go to college and only got into programming when i was 18, after leaving school. i started learning php and mysql, but was entirely self taught and was using lots of different online sources and tutorials rather than a legitimate publication, so i probably only ever hit an intermediate level with no knowledge of best practices or what i was really doing right/wrong, though i do have a good understanding for programming in general, the logic of it suits me.

    i went on to learn html, css, some js and ajax and started freelancing webdev, like half the country it seemed! but design is not where my brain excels, so i could never aim to high in terms of clients.

    jump to now and i'm in an unrelated low paying job, with little or no real career prospects, and i feel like i'm going to start getting too old too fast and end up doing something menial that i dislike for the rest of my working life! dramatic? maybe a little :) but you get the point!


  • Advertisement
  • Registered Users Posts: 7,412 ✭✭✭jmcc


    Adam wrote: »
    Hi guys,

    I'm looking at picking up a new skillset, and going by the job sites java seems to be in relatively high demand compared to other languages. I'm wondering if you think this will remain the case over the next couple of years, or would there be something trending right now that would be of more use to me in the medium to long term? there's just so much out there it's hard to keep track!

    thanks
    For most, Java is just a bootcamp to teach the basics for programming. It is not that difficult to learn and the principles can be applied to almost any computer language. However the problem that most people, especially academics, miss when dealing with a computer language is the amount of time that it takes to become a competent programmer in a computer language. Good programmers can, to a certain extent, think in a computer language but to get to that level of fluency takes a few years of constant use and working in the language. Learning the language is only the beginning. There is a vast difference between writing a toy application for a college exam and writing something that people will rely upon in the real world.

    Given the use of Java for Android applications, there may be a need for it but some of the business use of Java can require knowledge of other areas such as database development. Even if you don't get a job from it, it will still be useful to know.

    Regards...jmcc


  • Closed Accounts Posts: 4,564 ✭✭✭Naikon


    If you really want to understand the machine at a low level learn assembly and C. I like this kind of programming(especially playing around with the stack) and I reckon you should do this if you want to go low level. Here is a good staring point for learning about buffer overflows for instance: http://insecure.org/stf/smashstack.html Otherwise, Java isn't a bad lang to learn the concepts of programming(I don't agree with it's forced OO ideas though). Learn procedural coding methods first, then move onto object orientation. My advice isn't gospel, you need to decide what is best for you.

    To really get motivated though, think of some problem you have(even trivial) and try to implement the algorithm you devise to solve the problem in code. This will deffo get you moving. Good luck.


  • Registered Users Posts: 1,922 ✭✭✭fergalr


    You should still learn java - its not going anywhere in the immediate future.


    I'm think its, eh, star might be starting to wane, though.

    I think the Oracle acquisition of Sun isn't a good thing for the language. Oracle don't have as good a relationship with openness, and are a little more cut-and-thrust in their business dealings; which might have a negative effect on java, and its technology stacks in the long term.

    There also seems to be a rise in popularity of some competing languages.

    Python is growing in popularity.
    Other modern languages targeting the JVM are also on the rise - more sophisticated languages like scala are drawing attention. Objective C is obviously on the scene in a way it wasn't several years ago, due to the rise of apple devices.

    It depends on what you want to do - there isn't a one size fits all language.
    But most enterprise development doesn't move very fast - for a lot of reasons, such as investment in existing technology, availability of developers in the labour market etc.
    If the idea is to maximise the amount of programming jobs available, rather than target a specific subset of the market thats of interest, then you could do worse than learn java.


  • Registered Users Posts: 1,922 ✭✭✭fergalr


    Do many of you guys have Java Certification as well as whatever 3rd level studies you completed?

    You wouldn't generally need it in addition to a CS degree.

    Some places might ask for it.
    It does show you know the particular language rules in a lot of depth, and it'd force you to learn lots of specifics you mightn't know, which probably doesn't hurt - but its not essential to be a java programmer, or get java programming jobs, in general.


    Having looked at the java exams before, they require quite a fine detail of the java language. I'd be more than happy to go for a job as a java developer - and have wrote java professionally before - but I wouldn't actually know the language in quite the level of detail the exams ask for.

    This might be different if I worked solidly in just java for a year or two, but I think unless you are specialising in just one language, you don't need quite that level of detail in your working set - broader skills and understanding are more valuable.


  • Closed Accounts Posts: 8,866 ✭✭✭Adam


    fergalr wrote: »
    You wouldn't generally need it in addition to a CS degree.

    Some places might ask for it.
    It does show you know the particular language rules in a lot of depth, and it'd force you to learn lots of specifics you mightn't know, which probably doesn't hurt - but its not essential to be a java programmer, or get java programming jobs, in general.


    Having looked at the java exams before, they require quite a fine detail of the java language. I'd be more than happy to go for a job as a java developer - and have wrote java professionally before - but I wouldn't actually know the language in quite the level of detail the exams ask for.

    This might be different if I worked solidly in just java for a year or two, but I think unless you are specialising in just one language, you don't need quite that level of detail in your working set - broader skills and understanding are more valuable.
    thanks fergal. i'm enjoying the learning curve right now, and while i'm not necessarily going to set my sights on a career in java dev before i even learn the language, i figured if i'm going to learn something then why not start with something that's fairly secure and in demand.

    while you're here, mind if i ask for a few examples of what you did with your time in java dev? i have an idea of certain things, but i feel like i just don't know what it's actually capable of as a language, and where it's generally applied? what i mean is that a lot of tutorials will take silly examples of application like creating basic ATM systems and 2d shapes that you can move around the screen and such, but where does it go beyond there in to practical applications?


  • Registered Users Posts: 5,246 ✭✭✭conor.hogan.2


    +1 on Oracle, killed the curiosity I had for Java but I will still be learning it.

    If you are going to focus on one field and hope to get employed specifically in that field then getting certified specifically in that field on top of a degree or in place of a degree is much much better but it is more needed for MS or with hardware etc than with programming jobs, but cant hurt.


  • Registered Users Posts: 1,922 ✭✭✭fergalr


    Adam wrote: »
    thanks fergal. i'm enjoying the learning curve right now, and while i'm not necessarily going to set my sights on a career in java dev before i even learn the language, i figured if i'm going to learn something then why not start with something that's fairly secure and in demand.
    Well - depends on what you already know, what your background is, and what your long term goals are, you might start with a language that teaches you the fundamentals in a better way.
    This is the kind of thing Naikon was getting at in the earlier post on C and Assembly - but this is well trod ground, on this forum and elsewhere, everyone has an opinion on what to start with, but it suffices to say that many universities teach java as a first programming language, so you could do worse than start there.

    Adam wrote: »
    while you're here, mind if i ask for a few examples of what you did with your time in java dev? i have an idea of certain things, but i feel like i just don't know what it's actually capable of as a language, and where it's generally applied?
    I'm not sure a guided tour of the Java parts of my software developer career would be that useful - I'm sure other posters have much wider industrial java experience, particularly people specialising in the language.

    Briefly, in a nutshell, vaguely chronologically, in java, I've done a few months writing multiplayer games for mobile+desktop devices, modifying a reference server implementation, all written in java (mobile was J2ME).
    So, a network stack written all in java, and building clients to play simple video games - slightly tricky code, industrial strength netcode always gets a little tricky. Probably be a lot easier for me now than it was back then, but that was my first proper dev job, so it was quite challenging :-)

    I also did some work on porting J2me games for a different company - this was completely different, very tight and fast code, largely ported from old C codebases, really just nasty nasty C, with all static memory allocation, but written in j2me.

    Later I worked on maintenance and (typically minor) feature additions to a large (1m+ SLOC) desktop java app - this was a very complex large enterprise desktop application written in java, that had huge amounts of features.
    I also did similar work in a large java web app, built using a technology called 'struts' that controlled a fairly complex enterprise application - networked machines in a pretty complex IT Security system.

    Finally, I've worked building java web frontends for standard backoffice CRUD business applications in the finance domain.

    These last few were all fairly complex enterprise projects involving teams of people.


    I've also worked, non professionally, on plenty of small java projects over the years.

    But for the last couple of years, I'm doing research (which is what you do late at night, incidentally), and tend to write fairly little Java. If I need code written quickly (which is the a lot of the time) I write fast Python. If I need to write code to process massive data, I'm often writing low level C or C++. The only java I've been doing is Hadoop, which is for very large scale computation, that needs to be split across many different computers.


    Writing that out there, that might sound like a lot, but actually, Java is a pretty small part of what I've done, I've just ended up working on a lot of different projects; some of those projects I'd have only worked on for 3 months, others maybe over a year.


    Adam wrote: »
    what i mean is that a lot of tutorials will take silly examples of application like creating basic ATM systems and 2d shapes that you can move around the screen and such, but where does it go beyond there in to practical applications?

    Well, the reason I bothered to list out what I've done is to maybe show that there's a vast quantity of software that can be written in Java. People have used it to write pretty much everything at this stage.
    The only application domains you are still fairly unlikely to come across it is in low level, close-to-hardware applications.
    Which doesn't mean its the best tool everywhere - just that its quite widely applied.

    So, to answer your question, java goes pretty much everywhere.

    How you get there as a programmer, is that you don't, yet.

    Start small, learn the fundamentals.
    Programming competition questions are a great start to get your algorithms in order, and build proficiency.
    Once you can knock those building blocks out, then writing small games (eg, snake, asteroids, pacman, space invaders) is a good test at modelling a small application domain.
    After you can write 2-5k lines of code into a coherent application, with some good OO modelling, then start working on progressively larger problems that you are interested in.
    At the same time, a major skill of a java developer is to understand how to make targeted changes to large enterprise source bases - so then download a mid size open source java project, and try figure out how to fix a few bugs.
    After that, learn a framework that you are interested in working in, or apply for entry level java positions.


  • Registered Users Posts: 5,618 ✭✭✭Civilian_Target


    Java is the most common programming language out there, but I would say that, at this point, it has peaked. If you want to pick a safe bet, then Java's not a bad choice. Java is my main language.

    But if you want to learn a more in-demand language, it's better to learn an upwards trending language, where there is a stronger ratio of job demand to already trained programmers. And in that market, I'd recommend Python, Ruby or Objective-C.

    Check out the graph here.
    http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html


  • Closed Accounts Posts: 486 ✭✭De Dannan


    Java is the most common programming language out there, but I would say that, at this point, it has peaked. If you want to pick a safe bet, then Java's not a bad choice. Java is my main language.

    But if you want to learn a more in-demand language, it's better to learn an upwards trending language, where there is a stronger ratio of job demand to already trained programmers. And in that market, I'd recommend Python, Ruby or Objective-C.

    Check out the graph here.
    http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

    Might be a silly question but for example Python has been around for quite a while too, is there any reason why its in a big upward trend at the moment :confused:


  • Moderators, Society & Culture Moderators Posts: 9,689 Mod ✭✭✭✭stevenmu


    De Dannan wrote: »
    Might be a silly question but for example Python has been around for quite a while too, is there any reason why its in a big upward trend at the moment :confused:

    I don't know a huge amount about python, but from my understanding it doesn't offer anything hugely revolutionary, just lots of little niceties. In contrast when Java came out it was a C++ like syntax language that ran in an VM for cross platform compatability, had garbage collection and a few other things that made it easy to put forward a compelling argument to switch to it. Python, as far as I know, doesn't offer any real headline features like that, so it's hard to justify re-training development teams, switching code bases etc (especially since many places had done so to java in recent memory). So it had to build momentum being used by enthusiasts, hobbyists, academics etc.

    I also believe that python was created by hobbyists initially, compared with languages like Java and C# which were backed by major corporations. This means a few things, it took a little longer to mature, it didn't have the same "push" factor by big names, and it didn't have the credibility that big name backing brings (for e.g. I think it was Ruby that was pretty much destroyed by community in-fighting, businesses don't want to run the risk of adopting a platform that may happen to)

    Considering it's obstacles I think it's pretty impressive how well it has done.


  • Advertisement
  • Registered Users Posts: 1,922 ✭✭✭fergalr


    De Dannan wrote: »
    Might be a silly question but for example Python has been around for quite a while too, is there any reason why its in a big upward trend at the moment :confused:

    Personally, while python is a great language, and more people do seem to be using it, I don't think its rapidly encroaching on Java's enterprise space.
    Tools for python aren't as mature, and - just speaking from personal experience - I'm not sure how well it scales to large enterprise style applications.

    That's 'scales' in terms of codebase complexity; deployed in certain settings - like google app engine - it'll of course scale to whatever computational level you want.

    The python app engine stuff is streets ahead of the java version, from what I've seen.


    As to why its getting a bit more popular now?
    Its very hard to say.
    Maybe computers have gotten faster. Maybe its shifts in the industry. Maybe its the existence of easier multi computer environments. Or maybe its just luck - how the use of an innovation spreads around can be very counter intuitive, and there isn't necessarily a single, or a good, reason for why something is becoming popular; often we don't ever see the 'real reasons'.


  • Registered Users Posts: 5,618 ✭✭✭Civilian_Target


    De Dannan wrote: »
    Might be a silly question but for example Python has been around for quite a while too, is there any reason why its in a big upward trend at the moment :confused:

    Yes - it's rapidly replacing Perl as the scripting language of choice, so as Perl systems are upgraded, there's an upward trend. Similarly, it's taking over from VB as the language of choice for desktop apps - it's relatively OS independant, easier than C++, and lighter than Java.

    But it's more complimentary than competitive to Java: Java is the language of heavy backend enterprise applications and system integration


  • Registered Users Posts: 981 ✭✭✭fasty


    De Dannan wrote: »
    Might be a silly question but for example Python has been around for quite a while too, is there any reason why its in a big upward trend at the moment :confused:

    Python is becoming quite popular thanks to frameworks like Django, it's use on large sites like Reddit and because it's the language of choice for Google App Engine.

    It's a lovely language and one that seems to be recommended a LOT as a beginner language on a few other forums I visit.

    As for Java, no need for me to repeat what's been said already in the thread. I haven't coded in it since college apart from helping a few people with their homework but I never struggle to pick up C, C++, C#, Objective C, Python, Javascript or anything as a result of learning Java. It probably helped.


  • Closed Accounts Posts: 4 petergall


    hi,
    I am a programmer who started with basic, yes the original on a zx81, just shows how old I am, also done C, C++, Perl, Python, VB6and Java. C# and .net formats are all fine for the internet, however, if you consider going into c++, there is no automatic garbage collection, no deconstructers and unlike everything that has been mentioned except for c++, no real time response. This is only important if you intend to work on time critical response systems. So yes, I would say you are safe in sticking with java. The thing with perl and python is they are also a language that takes time to react. So unless you are also into a 3D rendering programme like Blender, I would stick with java, and maybe expand into J2ME, which has a much smaller library, and crucially some mobile operators have much smaller gateways for jar files.


  • Registered Users Posts: 7,412 ✭✭✭jmcc


    De Dannan wrote: »
    Might be a silly question but for example Python has been around for quite a while too, is there any reason why its in a big upward trend at the moment :confused:
    Just a theory but it could be Visual Basic programmers moving upward. Python might be easier than Perl for these programmers. It is also a nice language. The regexp syntax takes a bit of work to get used to if you don't think in that format but other aspects make it very usable.

    Regards...jmcc


  • Closed Accounts Posts: 11 Acidjoker


    JAVA is always nice to know, as it shares many of the same syntax-es as C++, and C# (and other programming languages i suspect)

    If your good at java, its quite easy to transform your skills into other OOP languages.

    Plus, the "Android" system used by many smartphones, tablets, and even tv's today uses java as the main programming langues.

    Should you learn another programming language?
    it all depends on what you want to program.
    web sites? web applications? windows forms? system tools? or something else?

    Each programming language has its own strength and weakness.
    Java programs can be "memory hogs" if you're not careful.
    But it main strength is that it is platform independent, and widely used around the world.


  • Registered Users Posts: 7,412 ✭✭✭jmcc


    This is the best explanation for learning programming languages (plural) and not limiting yourself to one. :)

    http://www.youtube.com/watch?v=d8Oe9SteE3M

    Regards...jmcc


  • Closed Accounts Posts: 8,866 ✭✭✭Adam


    jmcc wrote: »
    This is the best explanation for learning programming languages (plural) and not limiting yourself to one. :)

    http://www.youtube.com/watch?v=d8Oe9SteE3M

    Regards...jmcc
    the car chase would have motivated me more :p


  • Closed Accounts Posts: 4,564 ✭✭✭Naikon


    The Original C programming book by the authors is a hard read, but it's great for learning the nitty gritty details of the C lang/standard libraries. It even has a malloc implementation for learning purposes. Don't start out with it, but don't disregard it either.

    The exercises are worth doing to flex your C skills. Combined with a decent book on X86 or even MIPS assembly, you can't go wrong imo.


  • Advertisement
Advertisement