I am a Java developer, Ask Me Anything!

Did you find this post useful? Show some love!
DISCUSSION (45)

IntelliJ of course! and visual studio code :)

I like visual studio code, can you make visual studio code more like intelij idea ? such as auto resolve when move file, or flatten package view

I hated Eclipse when I was at school, for its multiple strange issues I encountered. The first time I ran it, it failed (had to change some properties to make it work on my machine if I remember).

Then I had to use Eclipse again in my first job, couldn't understand why I had to clean the project from time to time because it wasn't compiling anymore...

Pretty sure it's usable, but it just didn't with me. I quickly switched for netbeans, then IntelliJ.

Preach to this! Eclipse was okay for learning but didn't end up liking it after a while, IntelliJ has been my go to for over 3 years now.

What version of Intellij do you use? Community Version or Enterprise Version?

I have an Ultimate license, I don't use lots of plugins, the only one I really need is Lombok:
projectlombok.org/

It has been a few years (2014) since I worked on a project where I touched Java. How would you suggest I get "caught up" or familiar with the changes in the Java landscape?

Specifically, I want to get myself prepped so I can join a project and work on the Java backend.

I never implemented a backend with Hibernate, I updated the existing domains and Restful responses, but I generally always did maintenance work.

Well, it depends on what project you're going to take. Most of the project I worked on in the past years were developed with Java 8, Spring, Spring MVC and JPA/Hibernate. But you may have to work with older versions of Java.

To have a good understanding of what have changed since 2014 in the java platform, I strongly suggest to watch videos and read about Java 8 and its implementation of the functional programming paradigm .

For instance, you can watch this conference about lambda expressions:

youtube.com/watch?v=e4MT_OguDKg (and in general, every videos of venkat subramaniam :) )

About Hibernate, it would be more interesting to learn about JPA (which is the standard specification, Hibernate is an implementation). I don't think you will start from scratch in new project, so configuration hassle doesn't matter in your case.

I strongly suggest you to learn Spring, Spring Boot and then Spring Data JPA, the latests hide the boilerplate code you would write in order to configure JPA in a project, but you will need at least the basics in Spring and JPA to be comfortable with these new stuff.

Try to create a simple application with Spring MVC and JPA/Hibernate, like a crud or something like that. If you're stuck with configuration issues or misunderstanding, I will be more than happy to help you, don't hesitate to ask me specific questions about the problems you may have (would be easier if the code is on github).

Also, I'm doing a small "hello world" project with Spring Boot to show how simple Java became over the years, I suggest you to check my latest post. I will normally add a simple example of using Spring Data JPA later today :)

I'm good at core java and I want to know about advanced java which involves JSP, servlets. How they can be used in web development and how they stand out from popular frameworks?

JSP and servlets are too low-level. Not sure you will ever work with them directly in a job (except for the older project).

Have a look at Spring first, then Spring MVC, and finally Spring Boot. Give me more infos about your current knowledges, and I will try to give you a correct roadmap to do web development in java.

You can also check a sample project I made that does what you're looking for :) VueJS and Spring Boot:

github.com/naterivah/helloworld-sp...

I've hands on experience with Angular and I'm keen about learning a back end framework. I'm confused which one to pick out of Node.js/.NET Framework/Spring. Compared to javascript and C# I'm very well versed with Java so I think Spring will be a good one to start off. Can you provide me some resources where I can learn Spring and develop sample projects.

Starts with a simple hello world project with spring mvc and JPA, then you can learn spring boot and spring data

Ben Halpern DEV.TO FOUNDER

Hey there, we see you aren't signed in. (Yes you, the reader. This is a fake comment.)

Please consider creating an account on dev.to. It literally takes a few seconds and we'd appreciate the support so much. ❀️

Plus, no fake comments when you're signed in. πŸ™ƒ

Hello! Imma copy my question for one of the previous AMA:

I really admire Java as a language, and have always believe that most languages would be better if they adapt some of Java's OOP goodness. But for development (either web or mobile), it's really overwhelming to get started since every IDE does its own thing and there's a ton of configuration just to set things up. This is pretty apparent when you compare a "Hello World Web App": setting up with PHP, Python, or even Rails is wayyy simpler than Spring or JEE.

So my question is: what's a good strategy to not get overwhelmed with these details? Any tips with this context in particular?

  • Learn spring boot! It hides configuration for you, very easily :)
  • I just did a small hello world project in 5 minute using spring boot and docker, have a look at it here :

github.com/naterivah/helloworld-sp...

  • you don't need java or maven to run it if you have docker installed
  • only 3 classes: the Main class which is the only configuration class you have in the project, a rest controller, and a dto
  • let me know if you want me to add more stuff, like a database access or something
  • let me know in case you have any trouble, wrote it in 5 mins as said :P)

I burned out hard on Java and have been writing primarily Ruby ever since.

What has changed in the past 7 or so years that could convince me to give it another try?

And how has the day-to-day changed? How about fooling? I just felt like nothing was all that easy or fun.

[deleted]

functional programming is one of the major change on the platform.

You can also have a look on my last article, I made a project to show how it became easy to do web development with java / docker / vuejs.

If I have a good handle on Core Java, can I try to learn by diving into the source code of ElasticSearch, etc.?

Why would you do that? :o

[deleted]

Learn and improve these fields and you will do more than reading their code, you will fix bugs for them :p

  • coding style, good design
  • unit testing
  • object-oriented programming, the right way
  • functional programming

Examples of books to read first:

  • effective java
  • clean code

this the the correct answer, but not the correct response... WHY JAVA was a shortened question to:

  • why do you choose or prefer Java over all other languages?
  • what is it better at?
  • what cant it do?
  • where is it fast?
  • what does it do inefficiently?
  • what domains are suitable for Java? and why?

why do you choose or prefer Java over all other languages?

- I do not prefer Java over all other languages
- I choose a language depending on the problem I have to solve. 
- In my country (belgium), it is way easier to find a job in java, and a job pays bills
- Most of my professionnal experience is in Java
- That doesn't mean I only focus in java, as I said in a previous comment

what is it better at?

- it has a lot of stable and robust libraries/frameworks to build enterprise-grade apps
- the open-source community around it is backed by major companies
- to build concurrent and distributed applications way easier than you would do in C++
- Implements the newer/hyper concepts (event-driven, cloud architecture, functional/reactive programming, actor/based concurrency) thanks to the 3 previous points
- That doesn't mean other languages cannot do the same. Languages evolve like F1 cars, today it's mercedes, tomorrow it might be Golang/Rust/whatever

what cant it do?

- Frontend apps. I mean you can, but you will suffer, a lot

where is it fast?

- where the developer can optimize his code to use concurrency
- performance always comes with the average level of a team and the architecture chosen to solve a problem, no matter what language you choose  

what does it do inefficiently?

- Secure web apps. Way too complex to use JWT for instance. Thats why I rather prefer to mix languages/platforms depending on the needs. 
- Frontend stuff. Things like Java Server Faces are crap and should never be used

what domains are suitable for Java? and why?

- Backend stuff, as explained in the previous points

Have you ever worked with PHP?. Why do you like Java?.

Yes, I worked with Symfony 2 and Slim framework, and I try to stay up to date with the latest versions of PHP.

I like java because it is a very mature platform with tons of frameworks and libraries you won't find anywhere else (eureka, zuul, ribbon, hystrix,...are some examples).

Java may have been bad 15 years ago, but things change over the time (think about the difference between PHP 3 and PHP 7.2).

If softwares like Redis or ElasticSearch are developed in java, there's a reason.

I liked PHP for its simplicity, it was my first choice to quickly build a website or a REST API, but since ES6 was released, I prefer the nodejs platform with expressJS / VueJS for that.

Another thing is that Java pays almost twice more than PHP in my country (belgium).

In a year or two, my first choice could be different!

Redis is developed in Java?! Holy crap! 😱 😱 😱

Oups, redis is written in C, my mistake :p

Which libraries and frameworks do you use, and which do you prefer?

  • Java 8+
  • Spring MVC (Spring boot when I can)
  • JSF/Primefaces (I avoid it when I can)
  • JPA/Hibernate (Spring data when I can),
  • JMS/ActiveMQ
  • rxJava
  • Spring websocket
  • Spring Session / Security / Data Redis
  • Lucene / ELK
  • Jenkins
  • Maven
  • Mockito
  • junit
  • Apache Camel (Loved it for a while, one of the best integration library I used).

my favorites (actually):

  • spring cloud. Combined with docker and it helps to create your own cloud architecture with it, which is super cool.

Have you tried Kotlin, if so what do you think?

not yet,but I tried Scala, Groovy and Clojure (also languages that compile in bytecode).

I prefer to wait one or two years to see what happen with kotlin.
I remember how Scala was marketed as the next big thing in the java world...

Now that java implements functional programming and offers new releases every six months, I feel that the other languages of the jvm look less interesting.

I prefer to learn something like Rust, Elixir or Golang, which have been less hyped because of their syntax and more about the problems they try to solve.

How to deal with spring security?
what are some best practices using spring boot 2.0.4 with it?

Depending on your need, you can stick with the default configuration, or not. Have a look at the documentation, it is really straightforward, most of the time :P
if you have a specific issue and if your code is on github, I will be happy to have a look!

What is the LIMIT clause alternative in JPQL?

stackoverflow and google are your friends :)
stackoverflow.com/questions/445658...

Do you get money with freela java? What you to do for get more money with extra jobs?

Sorry if my english it is not good.

Classic DEV Post from Apr 22

Often neglected skills new devs should learn?

A discussion of often neglected skills that new devs should learn.

READ POST
Follow @colinmtech to see more of their posts in your feed.
Nordine Bittich
Passionate by every aspect of my work.
More from @naterivah
Build a Web App in 5 minutes with Java and Spring
#spring #java #docker #web
Trending on dev.to
Learning Algorithms with JS, Python and Java 8: Sentence Capitalization
#beginners #javascript #python #java
Why I Turned Down a Job Opportunity
#career #perspective
Thoughts on Dashboard Design
#data #dashboard #dataanalysis #productivity
Do you hide dev signatures in your code?
#discuss
Kotlin - The Good, the Bad and the Ugly
#kotlin #java
What Open-source Load Balancer Have You Used Before or Still Using Now?
#opensource #help #discuss
Live coding streams recommendations?
#discuss #livecoding #backend #devops
Juggling Multiple Languages Simultaneously
#discuss