DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
View Events Video Library
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Modern Digital Website Security: Prepare to face any form of malicious web activity and enable your sites to optimally serve your customers.

Low-Code Development: Learn the concepts of low code, features + use cases for professional devs, and the low-code implementation process.

E-Commerce Development Essentials: Considering starting or working on an e-commerce business? Learn how to create a backend that scales.

Getting Started With Jenkins: Learn fundamentals that underpin CI/CD, how to create a pipeline, and when and where to use Jenkins.

Related

  • Exploring Lightweight Concurrency With Virtual Threads: A Developer-Agnostic Perspective
  • Unraveling Lombok's Code Design Pitfalls: Exploring Encapsulation Issues
  • Java: A Time-Tested Programming Language Still Going Strong
  • Java Developers, Don't Throw Out Your Mac Yet: Apple Will Contribute To OpenJDK

Trending

  • CI/CD Software Design Patterns and Anti-Patterns
  • Harnessing Integration Platforms To Unscramble the Data Mess
  • An Executive Architect’s Approach to FinOps: How AI and Automation Streamline Data Management
  • The Role of AI Ethics: Balancing Innovation with Social Responsibility
  1. DZone
  2. Coding
  3. Java
  4. How to Become a Competent (Java) Developer

How to Become a Competent (Java) Developer

From one developer to the rest, see what sort of skills and experience Java devs should have in their back pockets to succeed in today's world.

Armel Nene user avatar by
Armel Nene
·
Oct. 27, 16 · Opinion
Like (86)
Save
Tweet
Share
37.6K Views

Join the DZone community and get the full member experience.

Join For Free

For the past couple of years, government and societies have been trying to make “Geek” cool again. Presidents and prime ministers are recommending that computer programming be part of schools’ curriculum. Politics aside, becoming a competent programmer today is more challenging than ever. Just being an introvert genius no longer suffices.

Companies and organizations are looking for people with cognitive skills to add to their technical abilities. It is difficult to put a number on this as it is very company-dependent, but the 70/30 rule could be applied here. That means that people should possess roughly 70% technical skills and 30% soft (cognitive) skills. A “hardcore” developer hardly moves into management if he/she lacks the soft skills required. I have managed many teams across multiple verticals and developed some job descriptions and career progression paths along the way that are in use in some of the largest companies in the world. Let’s try to sum up a few aspects of what seems to be the pattern when companies are recruiting or promoting.

Technical Skills

Well, this is a no-brainer; your technical skills will get you the interview. When recruiting a Java developer, companies are looking for several factors.

The Fundamentals

An understanding of the fundamentals of the Java programming language.

It is good to know how to write code, but knowing the reasoning behind your code and/or your chosen algorithm will make you stand out from the crowd.

Mainstream Programming Tools

Today, the fact is that you cannot be a jack of all trades (master of none). You have to pick which tool you are going to master. This is sometimes dictated by the environment you are working in, but let’s say it is a good bet to go with the following:

  • Build tools: Maven or Gradle.

  • SCM: Git (not GitHub. Big difference).

  • Build automation: Jenkins.

  • IDE: Netbeans or Eclipse – not just for writing code, but also code refactoring and debugging from the IDE. I came across plenty of developers who did not how to debug from their favorite IDEs.

  • Bug tracker: Bugzilla or Jira.

Mainstream Programming Frameworks

  • Spring MVC for web development

  • Knowledge of JSF

Application Servers

  • All Java developers should know how to deploy in Apache Tomcat.

  • As Glassfish development is halting, the next best thing is JBoss WildFly.

Cloud Development

  • Get a free account on Amazon EC or PaaS.

  • An alternative option to Amazon is Red Hat OpenShift.

Cognitive Skills

It's great that you have a deep knowledge of the Java programming language and various tools, but your employer/clients will also be assessing you on the following aspects.

Communication

Communication is key to everything we do. We have to interact with the environment around us, whether it is in our private or professional lives. This is not just the ability to put words together, but how to communicate problems that we are facing, or proposing solutions to those problems. A great communicator knows how to express herself in front of various groups; remember that something that makes clear sense to you might not be the same from someone else's perspective.

Problem Solving

Developers are problem solvers, philosophers, and thinkers. Don’t be one of those programmers who only writes code and doesn't get involved in the discussion about how to solve problems. Don't be the programmer who says, "Tell me what to create and I’ll create it. Don’t ask me if it is the best way to do it."

Team Player

All developers work as part of a team, whether it's with paired programming or a large project. You need to contribute to the team's objectives and goals. Help mentor junior members along the way or assist struggling members in overcoming their hurdles. Don’t have an “I’m just here to do my job and then go home” attitude. Be part of the team. You don’t have to make silly jokes to become “team clown” or always go out on team events but be a team player.

Self-Learning

This is a very important skill to have; the ability to acquire new skills on your own time. Do not always wait for the company to provide you with training. You need to go out there and learn new technologies and advance in your field. From front-end development to architecture patterns, there is always something new happening. Read blogs and articles and try to join local meet-up groups. What you learn can open up new vertices for your career.

This blog post was not supposed to be this long, but the aim was to tailor it to be useful for aspiring developers — or even veterans.

Drop me a line if you want to have a quick chat or join me on one of my courses to develop your technical skills.

Java (programming language) dev

Opinions expressed by DZone contributors are their own.

Related

  • Exploring Lightweight Concurrency With Virtual Threads: A Developer-Agnostic Perspective
  • Unraveling Lombok's Code Design Pitfalls: Exploring Encapsulation Issues
  • Java: A Time-Tested Programming Language Still Going Strong
  • Java Developers, Don't Throw Out Your Mac Yet: Apple Will Contribute To OpenJDK

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: