• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • Paul Clapham
  • Devaka Cooray
  • Bear Bibeault
Sheriffs:
  • Junilu Lacar
  • Knute Snortum
  • Liutauras Vilda
Saloon Keepers:
  • Ron McLeod
  • Stephan van Hulst
  • Tim Moores
  • Tim Holloway
  • Piet Souris
Bartenders:
  • salvin francis
  • Carey Brown
  • Frits Walraven

How to stay up-to-date with Java ?

 
Bartender
Posts: 1259
39
IBM DB2 Netbeans IDE Spring Java
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi there,

this question was born in my mind after I  finished reading Effective Java, 3rd Edition, by Joshua Block, from cover to cover. It's an amazing book, full of precious advices for a better Java usage in everyday programming work, and very interesting when illustrates some of the flaws that still pollutes JRE after so many years after first release ( it's somehow conforting to know that even Sun's best programmers did mistakes ... )

In chapter nine, where some general advices about programming in Java are discussed, I found an "item" (i.e a topic, in the book's jargon) particularly challenging, where the author talks about the need for any Java programmer to know, in detail, what the standard library offers. With great lucidity, Bloch agrees that it's practically impossible to study all the details and facets of the whole standard library, while he states that any java programmer should, at least, know well java.io, java.util, java.lang and subpackages.
This implies, as far I understand, that it's mandatory to keep oneself updated with java standard library.

Hence a question raises spontaneously: even if I claim to be a senior java developer - and I believe that's true, in the sense that I've been professionally practicing java programming for the last fifteen years - I wonder if I ever over-existimated myself,
in the sense that a long experience measured in terms of working years doesn't automatically imply a deeper knowledge of the matter (in this case, Java).

In my professional work, I'm stuck with Java 1.6, and sadly it's not upon me to move towards last version of the language. I used Java 8 only now and then, for niche applications,  so that at practical level I'm a beginner with Streams,for example. Never used fork-join, or try-with-resources, "new" concurrency APIs (latches, semaphores, and so on).

Reading Effective Java I discovered there's a lot of things I don't know, and I think it's good, because it shaked me from a false sense of confidence. At the same time, I'm a bit scaried because I'm evaluating jobs for a Software architect role, and I think to be to much ambitious with respect my real knowledge.
Despite the fact I think to be able to learn quickly new Java features, I wonder if it would be a terrible mistake to move on a new job, where maybe I would be expected to be already a guru.
What would suggest me to do, friends ?


 
Saloon Keeper
Posts: 11866
253
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I suggest you keep up to date. If your professional situation doesn't allow for that, you need to do it at home.

Always use the latest version of Java on your home computer. When a new version rolls out, read the release notes to see if there are big changes to the API, and try to use new features when you're working on hobby projects. Don't have a hobby project? Start one. When looking through the API documentation to brush up on a method you haven't used in a while, make sure to quickly browse through the overview to see if there are cool new methods you haven't seen before.

If you can't get some new stuff to work right away, force yourself to fix it. The other day I had problems getting some Java 9 modules to work correctly with Maven and NetBeans. I learned a lot about Java 9 by forcing myself to find the root cause of the problems.
 
Marshal
Posts: 68851
275
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Stephan van Hulst wrote:. . . . If your professional situation doesn't allow for that, you need to . . . .

. . . find a different job. It is, at least to some extent, part of the employer's and employee's responsibility to keep up to date. Employers should provide opportunities for keeping up to date, and employees should avail themselves of them.
Give an informal half‑hour talk over a cup of coffee about the Java9 module system, or private methods in interfaces, or something. Or get one of the juniors to do the same.
Get your company to buy a few of the most recent books; if you wait a bit you can find a half‑price offer from the publisher
Go to Devoxx, JavaOne, or similar. Tell your employers it is a valuable experience and that they ought to pay for the ticket.
Post solutions here on the Ranch using new code; if it doesn't work, rest assured somebody here will know how to sort it out
 
Sheriff
Posts: 7602
521
Mac OS X VI Editor BSD Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I recently also had to fulfill some gaps in my knowledge, and I found pluralsight (note: I don't get any benefit for mentioning it or am connected to it in any way) to be a very useful resource, hence bought a subscription, where you can watch courses of nowadays trend technologies/topics, courses seem to be very well organized and to the point. Content in particular I'd say is of a high quality as follows not just a-Z random content, but rather in addition to main theory, wraps content in some real life situations what you probably may encounter at work. Lecturers seem to be well experienced either in academia or industry or both. The reason I'm mentioning that is, that it is fairly hard to find trusted content on Internet let's say as a reference for something or as a full tutorial, unless you have enough experience to assess yourself (but even that takes a lot time), so that makes this resource especially valuable for the beginners.

Courses range from computer science topics, data structures and algorithms to frameworks and etc. Search is organized by languages, IT roles, etc...

Fairly recently I've finished course "Applying Concurrency and Multi-threading to Common Java Patterns" which I found to be very useful.

And I know at least 2 companies who buy their employees subscriptions as part of training process so they could go and watch certain courses.

So consider pinging your current employer or consider buying yourself a subscription, which possibly could help you stay up to date. Of course what Stephan and Campbell mentioned, practice would be the main activity which you'd need to spend time on regardless.
 
Stephan van Hulst
Saloon Keeper
Posts: 11866
253
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Campbell Ritchie wrote:. . . find a different job.


Not everyone is in the position to do that.

It is, at least to some extent, part of the employer's and employee's responsibility to keep up to date.


Some jobs require legacy technology to be used, and they're still jobs that need to be done, with employees that need to do them. Why do you think COBOL programmers get paid so well?

I agree that it's not ideal to work at a place where you can't work on the bleeding edge and advance your knowledge, and if it makes you unhappy you need to find something else. It however, is NOT the responsibility of the employer to make sure every job is always done with the newest technology that's out there.
 
Campbell Ritchie
Marshal
Posts: 68851
275
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I think I have laid it on a bit too thick. Sorry.
I didn't mean that all jobs should require bleeding‑edge technology, but even COBOL programmers need to keep their skills up to date. Even if legacy languages don't change, best practice does change. For example to go back to what Claude posted, if you look in the three editions of Effective Java, you will find Bloch takes a different view of inheritance in 1/2 and 3. None of them complimentary, but it shows that although the inheritance mechanism hasn't changed, awareness of its problems has, and best practice has. Even COBOL programmers should get together and share best practice or experimental techniques fo try out.
 
Saloon Keeper
Posts: 3888
154
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In Holland, actuaries that are member of the Actuarial Society, must gain at least 60 study points in a period of three years (something likewise for accountants, doctors et cetera). Does such an obligation not hold for professional IT people?
 
Claude Moore
Bartender
Posts: 1259
39
IBM DB2 Netbeans IDE Spring Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Stephan van Hulst wrote:I suggest you keep up to date. If your professional situation doesn't allow for that, you need to do it at home.

Always use the latest version of Java on your home computer. When a new version rolls out, read the release notes to see if there are big changes to the API, and try to use new features when you're working on hobby projects. Don't have a hobby project? Start one. When looking through the API documentation to brush up on a method you haven't used in a while, make sure to quickly browse through the overview to see if there are cool new methods you haven't seen before.



This is a good advice. Let me say that it's pretty much what I've always tried to do, i.e try to keep myself up-to-date essentially studying good books and developing some toy projects, which I published to GitHub just to practice with git. In these projects I try to work on some "difficult" topic, for example I developed a multitenant spring boot application where not only the target database, but also the actual implementation of services depends upon the REST-request being processed at a given time; I played a bit with docker + spring; I made some experiments with Angular, REST, and microservices.
I think that's all pretty good stuff to workout with Java technology, but at the same time, I feel that without a "proof on field" all of the hobby projects I develop are essentially toys. Real world applications deal with very different and challenging issues.
 
Claude Moore
Bartender
Posts: 1259
39
IBM DB2 Netbeans IDE Spring Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Piet Souris wrote:In Holland, actuaries that are member of the Actuarial Society, must gain at least 60 study points in a period of three years (something likewise for accountants, doctors et cetera). Does such an obligation not hold for professional IT people?


Generally speaking, I don't know if there's a country where you need to get a degree in Computer Science  (or equivalent title) to work in IT fields. At least, not  in Italy. Personally, I don't know if it's a good or a bad thing. If you're clever at programming, shouldn't do that job for life just because you don't have a degree ?
 
Claude Moore
Bartender
Posts: 1259
39
IBM DB2 Netbeans IDE Spring Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

I agree that it's not ideal to work at a place where you can't work on the bleeding edge and advance your knowledge, and if it makes you unhappy you need to find something else. It however, is NOT the responsibility of the employer to make sure every job is always done with the newest technology that's out there.



That's right. It's perfectly reasonable that an employer wants to be conservative with respect to the technology used, especially when the codebase written in a given technology is huge. But at the same time, innovation is essential in IT fields.
I've always been propositive with my boss, and willing to use my free time - at home, during holidays and so on - to study new technologies.
But if practice lacks, at the very end I feel I'm studying something I'll have never a chance to use in a real world scenario, and that all my effords are a big  wasting  of spare time I could had dedicated  to my family instead.
This is really frustrating, believe me !
 
Campbell Ritchie
Marshal
Posts: 68851
275
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I think it is going the other way in UK, but I am not certain. I think the problem is that, for a long time, Universities didn't recognise Computer Sciences as a “real” subject. Here, we had a Computing department back in the 1960s, but then we were a Poly rather than a University. In those days, most places either didn't teach computer sciences, or thought it was a branch of Maths. That means lots of people have gone into computing jobs without a relevant degree; as Claude says, you can't sack somebody who has been working successfully for fifteen years because they haven't got a degree. Or have got a degree, in History Chemistry or Music!

Piet Souris wrote:In Holland, actuaries . . . must gain at least 60 study points in a period of three years (something likewise for accountants, doctors et cetera).

Some of those people will be working as self‑employed people, or in a partnership; they can lose their accreditation to work, and therefore their jobs, if they fail to provide evidence of the 60 study hours. Presumably the expenses for such study are borne by the practice or employer, and if they earn fees rather than a salary, constitute a small proportion of all clients' fees.


[edit]Add 3 words underline, and one spelling correction.
 
author & internet detective
Posts: 39956
804
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Are they planning to upgrade soon? Java 6 is out of extended support.

This is an opportunity to become the "local" expert on Java 8!
 
Claude Moore
Bartender
Posts: 1259
39
IBM DB2 Netbeans IDE Spring Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Jeanne Boyarsky wrote:Are they planning to upgrade soon? Java 6 is out of extended support.

This is an opportunity to become the "local" expert on Java 8!



Actually, yes. I think we're going towards Java 8, even if I'd prefer adopt directly java 11.
 
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Twitter is the best tool to keep yourself up to date and there are many ways to stay current- reading books, reading blogs attending conferences and more. I am not suggesting you stop doing any of this. If you want to learn online Java then click: cetpainfotech dot com/en-ng
 
Stephan van Hulst
Saloon Keeper
Posts: 11866
253
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
How would you stay up to date on Java over Twitter? I think Twitter is a terrible medium for that.
 
Claude Moore
Bartender
Posts: 1259
39
IBM DB2 Netbeans IDE Spring Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Stephan van Hulst wrote:How would you stay up to date on Java over Twitter? I think Twitter is a terrible medium for that.



Well, personally I follow some Java Champions, and some company involved in Java ecosystem  (Spring, Quarkus and others).
Of course, you can hardly learn anything directly from Twitter, but more or less you can hear about some news and then investigate topics you want to deepen.

And of course, don't forget Java ranch.... it's a great place where you can here about trends, hot topics and so on....
 
Ranch Foreman
Posts: 141
5
IntelliJ IDE Eclipse IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You could try getting a subscription to O'reilly books online. They regularly conduct webinars or training sessions for technical and non-technical subjects. In fact, they have one recurring webinar on whats new in Java 8 to 14. Here is the link https://learning.oreilly.com/live-training/courses/discovering-modern-java/0636920367956. As an aside, you can get recorded sessions if you can't make it to the live one, provided that you sign up for the webinar.

As of 2020, the yearly subscription to O'reilly books online costs $500 USD and the monthly one costs $50. But, it is a small investment compared to what you get in return to boost your career. It has books from many publishers, webinars and case studies of real, well known companies implementing a particular technology. Moreover, you can ask questions during the live webinars and the instructors answer it. $500 might seem a lot initially, but you could easily recover that money by becoming eligible for higher paying jobs thanks to the training. This is the part that many people don't understand.

Lynda/LinkedIn, Pluralsight etc are other options. But, they don't offer as much as O'reilly does and you can't even comment on the courses or ask questions. Unless, you need something which is only available in those other platforms, I'd recommend getting O'reilly only.
 
Ranch Hand
Posts: 1403
8
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Stephan van Hulst wrote:I suggest you keep up to date. If your professional situation doesn't allow for that, you need to do it at home.

Always use the latest version of Java on your home computer. When a new version rolls out, read the release notes to see if there are big changes to the API, and try to use new features when you're working on hobby projects. Don't have a hobby project? Start one. When looking through the API documentation to brush up on a method you haven't used in a while, make sure to quickly browse through the overview to see if there are cool new methods you haven't seen before.

If you can't get some new stuff to work right away, force yourself to fix it. The other day I had problems getting some Java 9 modules to work correctly with Maven and NetBeans. I learned a lot about Java 9 by forcing myself to find the root cause of the problems.




Thanks
 
Sheriff
Posts: 3070
440
Android Eclipse IDE Angular Framework TypeScript Redhat MicroProfile Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Here's my pattern for keeping up-to-date with Java and software engineering/technologies in general:

• Listen to podcasts to become aware of new (to me) subjects (including Software Engineering Radio, Software Engineering Daily, airhacks.fm, and mobycast)
• Start an on-line video course (Udemy courses are almost always available for $12USD)
• Buy a good book (Manning frequently has books for 50% off, Packt has $5 ebooks sales several times a year)
• Read-through the book, not worrying if I fully understand every the first time through
• Return to the on-line video course, pausing at the end of each lesson to try-out for myself what I have just seen/learned
• Read-through the book again, hoping that some of the topics which were not clear before now make sense
• Find a project where I can use the newly acquired knowledge
• Share what I have learned (water cooler talk, lunch-and-learn presentation, etc.)
 
Monica Shiralkar
Ranch Hand
Posts: 1403
8
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
One way is to check and learn what are some of the new features introduced in the newer version of Java even though you may not use the latest version right now.
 
Lasagna is spaghetti flvored cake. Just like this tiny ad:
Java file APIs (DOC, XLS, PDF, and many more)
https://products.aspose.com/total/java
    Bookmark Topic Watch Topic
  • New Topic