The Ultimate Guide to Java Programming & Reference:

OP
JGuru

JGuru

Wise Old Owl
What do companies look for a candidate to get a IT job?

Qualification : BE/BTech/ME/MTech, MCA, MBA etc.,

Percentage : 60% (Som Companies ask for 70%)

Programming Languages : C/C++, Java, Oracle etc.,

Project : Project in C++, Java (JavaSE, JavaEE), C#

Other Skills : English language (Communication), problem-solving skills (Arithmetic)

Java Books Recommended

1) Core Java by C .S Horstmann (2 volumes) - Java language core concepts

2) Java FAQ by Jonni Kanerva - Helps you to answer interview questions

3) Data Structures & Algorithms in Java by Robert Lafore - Learn algorithms & data structures

4) John Zukowski's Definitive Guide to Swing - Master Java Swing classes

5) Java How To Program by H M Deitel & P J Deitel - Learn how to program using Java language

Books for Arithmetic Aptitude/ IQ Puzzles

1) Arithmetic Aptitude by RK Aggarwal

2) Competition Success Review magazine

3) Shakuntala Devi puzzles

Not all candidates get the IT job or any other job. If you go to Bangalore or Chennai - Only 10 out of 10000 get a IT job!!!
So be serious. Study these books , learn programming, practise arithmetic aptitude solutions.
So work hard, and come up victorious in life.
 

TheSloth

The Slowest One
May be we can use this thread to post Java related content.

Here is a video on introduction of Virtual Threads and how to use it in Spring Boot apps, by Josh Long and Venkat Subramaniyam. It was long but nice so, I thought of sharing it here.
*www.youtube.com/watch?v=-t2O1UDwXlM

Please share Java related videos here which you think would benefit people here on the forum.

Side note, I am learning from book Reactive Spring by Josh Long as of now. It doesn't dive deep but surely give good hands on the new Reactive features.
Project Reactor reference : *projectreactor.io/docs/core/release/reference/coreFeatures.html
Please share good resources to learn reactive programming (in Spring/Java ecosystem) if you come across.
 

Desmond

Destroy Erase Improve
Staff member
Admin
I tried reactive programming with Spring a bit and found it to be somewhat harder to maintain and test. Might give WebFlux a try once again someday when I get some spare time from work.
 

TheSloth

The Slowest One
Yeah, same for me. there are so many things to learn, I am struggling to remember the methods and follow good practices to implement solutions.

There are reactive components in Java as well, under Flow package.
*docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/Flow.html

Has anyone here used this in production code? I am looking for some general guidelines and tips and tricks to follow when coding with Flow.
 

Desmond

Destroy Erase Improve
Staff member
Admin
Hmm interesting. Though not very scalable. It will work inside a single JVM but little reason to use if you are targeting distributed systems or microservices.
 

TheSloth

The Slowest One
Yes I agree with you, need to be careful with multiple threads in distributed systems.

Just to share a personal incident which recently happened with me, I was given a task to fix a prod bug where a record was pushed 2 times so we needed to mark the 2nd one as duplicate. The challenge came when both records came at the same time, and different threads were handling the data. The record whichever comes gets persisted in db, then duplicate validation was done at later stage where the record in current flow, if finds another record with same hash, mark itself as duplicate. These 2 records were pushed at the same time, finds each other already in db, mark themselves as duplicate and stop themselves for next process. The entire code is written in reactive Spring, i tried few things but could not implement a working solution for a distributed system running multiple instances. I ended up losing the story to a senior dev who then implemented a db constraint on a table which checks for the hash before persisting the data. such a simple solution and i could not think of it.

All this story to ask this, please share good resources to learn these kinds of solutions. Or key things to remember when working on microservices or distributed systems :)
I understand all these comes with experience, but it would be nice to follow a path which other devs followed, by avoiding common pitfalls and without wasting too much time on theory or over engineering simple things.
 

Desmond

Destroy Erase Improve
Staff member
Admin
That's what I would have done as well. Data consistency should be the responsibility of the db, not the application code (when persisting).

I don't think there is a course for a lot of these solutions, most developers just learn such things from experience as you said. You try, fail and learn from it.

How much experience you have?
 

TheSloth

The Slowest One
That's what I would have done as well. Data consistency should be the responsibility of the db, not the application code (when persisting).

I don't think there is a course for a lot of these solutions, most developers just learn such things from experience as you said. You try, fail and learn from it.

How much experience you have?
Hmm, make sense.

I have 8 years of exp, but I am learning lot of things only now. Long way to go ahead, smh.

I always get lost among so many topics to choose for my experience or for further into my career. Could you please recommend some topics which will help me grow, like system design ?

I apologize for asking so many questions
 

Desmond

Destroy Erase Improve
Staff member
Admin
You should look into design patterns. Get the book "Head First Design Patterns" if you can. It has code examples in Java. Alternately, you can look up the most common design patterns and how to implement them in Java.

Someone with your level of experience must also know Domain Driven Design and Hexagonal Architecture I think.

Like I said, there is no formal training for such things. You have to identify what knowledge you need and then learn those things. You can post some specific use-case questions here and I can answer those on a case by case basis.
 
Top Bottom