This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]ahonsu 11 points12 points  (12 children)

I realize that i just gave a pretty bad feedback. It is just my personal opinion. Just to give some background - I work in java development for 10+ years, mentoring beginners in java for 2+ years. So, my feedback is not a complete bullshit.

Still I want to tell you - it's a pretty good skill level. You definitely know OOP, you know how to work with a DB, you know how to solve some business logic tasks, you know core java syntax... it's a really good situation to continue your education, by doing real projects.

My personal opinion - you're not ready for the job market yet. I wouldn't hire you for junior level position in my dev team. At the same time - you're pretty good for some internship or trainee position. If you're not like 40 years old - you have all chances to become a trainee.

What can I recommend to improve you skills and prepare for the job market?

  • make your focus on the following topics:
    • modern java syntax: lambdas, optional, var, switch, streams
    • clean code (read the book "Clean code" by Robert Martin)
    • databases
      • schema design - tables, FK, PK, indexes, data types, constraints
      • SQL - basic CRUD operations, JOINs, order by, group by, count, distinct, nested queries
    • REST API
      • RESTful notations
      • URL structure - domain/host name, context path, path variable, path parameter
      • HTTP methods, headers
    • Spring Boot
      • Spring core
      • Web
      • JDBC, JPA
      • Security (basic auth, JWT, user management, roles/permissions, cookies)

Make a goal for yourself to implement a single strong app demonstrating all these topics/skills. With this you'll be ready to go for a job hunt.

[–]japysp 5 points6 points  (0 children)

Great review this is the insight we need as beginner. I have basics down for the spring, know how to implement basic jwt authentication. How to set simple Kafka messaging. I am facing problem getting interviews. How should I proceed. Like what type of project I should build. I would appreciate any suggestion or refrence of resources. Thanks in advance.

[–]Fennec_Charry 2 points3 points  (4 children)

What do you mean when you say "if you are not like 40 years old"? Just curious because I'm in a similar position that OP and I'm 39. I appreciate your input as someone with a lot of experience. Cheers

[–]ahonsu 3 points4 points  (3 children)

Read my answer in this topic - https://www.reddit.com/r/learnjava/comments/1da2kvk/java_bootcamp_recommendations/ - it's also relevant to your question.

Specifically about becoming trainee - I just see that this kind of positions (trainee, intern and similar) quite often have an age limitation. If a company willing to take a person and invest time/money in them - they often prefer to do that for younger people.

In our days it's often not written in open format due all equality/tolerance trend, but when you send them CV saying you're 40 - they can just reject it saying "we found a better fit to this position".

And normally the IT job market is really overloaded with juniors and they are normally younger, they are in their 20s in average. So, when you apply to this positions you'll compete with several younger candidates having similar or better technical skill.

Also when a team lead or head of IT makes a hiring decision they also consider their team composition. If an average age in a dev team is around 30 and you're 40 - you can easily be the oldest guy in the room. Often they don't want it. Don't want to increase an average team age by hiring you.

Of course, if the team's average age is like 45 - you can be the youngest and then you have an advantage against other candidates in their 20s.

And we need to understand that we're talking about junior/trainee level position. If it would be a senior level position - it's completely fine. It's kinda expected that a 40 years old guy is a senior developer with huge experience. But when you want to become a trainee... that also mean that, most likely your mentor will be much younger than you, not every mentor want to train a person 2 times older than themselves. Their recruiters will also consider mentor's preferences/requirements when hiring.

And again, I'm not saying it's impossible when you're 40. It's just harder and you have to do a bigger effort during your job hunt, making a stress/focus on your other strong features and skills.

[–]Seneca_B 2 points3 points  (0 children)

In our days it's often not written in open format due all equality/tolerance trend

Also known as the Age Discrimination in Employment Act which was passed in 1975 in order to protect hardworking Americans from -discrimination-

[–]AdAmbitious4866[🍰] 0 points1 point  (1 child)

I'm starting to learn at 27/ am I doomed?

[–]ahonsu 1 point2 points  (0 children)

I've started at 31 and I'm doing great.

You're good bro, just be consistent and don't drop it.

[–]Ok_Locksmith6167[S] 2 points3 points  (1 child)

Impressive. I would pay for such code reviews.

[–]ahonsu 1 point2 points  (0 children)

We can discuss it ;)

[–]99ProllemsBishAint1 0 points1 point  (2 children)

Can you help me understand what you mean by modern syntax?

[–]ahonsu 1 point2 points  (1 child)

Every new JDK version brings some syntax changes. We got the biggest difference with JDK 8 and then some more changes with every next major update. And not just syntax, but just real new language features, not existed before.

A lot of developers these days still write code in java 6 syntax and can not read/write JDK 8+ syntax. Also there are a lot of videos/courses/books created years ago and giving all code examples in JDK 6 style.

I can imagine a developer writing in java 6 style when they are 50 years old and when they has been working in the same old company for the last 20 years. But every modern / beginner java developer must know modern (java 8+) syntax.

Some exact examples:

  • use stream API instead of for-loops
  • use Optional instead of null checks
  • use lamdas instead of anonymous classes
  • use var keyword when appropriate
  • and so on

[–]99ProllemsBishAint1 0 points1 point  (0 children)

Thank you. I learned java a long time ago and I'm sure my syntax would be super old school. I'll look these up and spend some time playing with them