What is the Java Job delusion?

Stefan Mischook
31 Oct 202212:22

Summary

TLDRIn this video, the speaker discusses the 'Java job delusion,' clarifying that despite Java's versatility, most Java jobs are in server-side web app development. They note Java's verbosity, making it less ideal for rapid development like MVPs, and suggest it's often used in large organizations for maintaining legacy systems. The speaker advises considering the work environment and job nature before choosing Java, contrasting it with more nimble languages like JavaScript and Python, which are better for startups and dynamic projects.

Takeaways

  • 💻 The speaker has extensive experience with Java, having written code in multiple languages, and loves Java despite the discussion being about its job market realities.
  • 🌐 Java was initially marketed as a multi-platform, versatile language suitable for various applications including games, mobile apps, IoT, and web apps, but the majority of jobs are in server-side web app development.
  • 📱 While Java was used for Android development, Google's recommendation of Kotlin has shifted the landscape, making Kotlin the preferred language for Android app creation.
  • 📈 The speaker emphasizes that 'write time speed' is more critical than 'run time speed' due to the optimization and performance of high-level languages, making verbosity a drawback for Java.
  • 🏢 Java jobs are predominantly found in larger organizations like banks and government sectors, which may not be suitable for those seeking a dynamic and fast-paced work environment.
  • 🔧 Java developers often work on maintaining and expanding legacy code bases rather than creating new applications from scratch, leading to longer development cycles.
  • 👔 The work culture in large organizations can be more rigid, with potential for more bureaucracy and less flexibility compared to smaller businesses.
  • 🏆 Despite its verbosity, Java is still in high demand with many job opportunities, but these often come with the context of large enterprise environments.
  • 🌐 The trend in new development is moving towards more agile languages like JavaScript, PHP, and Python, which offer quicker development cycles.
  • 🏡 Post-COVID, there's an increase in remote work opportunities in the Java field, but it's more commonly found in smaller businesses with less corporate culture influence.

Q & A

  • What is the 'Java job delusion' mentioned in the video?

    -The 'Java job delusion' refers to the misconception that Java is used across a wide variety of projects, such as gaming, desktop, and IoT development. In reality, most Java jobs involve server-side web application development and maintaining legacy codebases, often for large organizations.

  • Why does the speaker emphasize that writing in Java takes time?

    -The speaker emphasizes that writing in Java takes time because the language is verbose, requiring developers to write explicit and detailed code. This can slow down development compared to more nimble languages like JavaScript, Python, or PHP.

  • What kinds of companies typically use Java for development, according to the speaker?

    -Java is typically used in medium to large organizations, such as banks, governments, or other enterprises. These companies often focus on maintaining or expanding existing applications rather than building new ones from scratch.

  • What are some of the primary tasks Java developers often find themselves doing?

    -Java developers often spend significant time configuring application servers, handling configuration files, managing deployment cycles, and maintaining legacy codebases. These tasks can involve dealing with complex configurations and long development cycles.

  • Why is Kotlin now the preferred language for Android development over Java?

    -Google announced Kotlin as the preferred language for Android development a few years ago, which led to a shift in the industry. While some Android development is still done in Java, Kotlin is now widely used for new projects.

  • How does working for a large organization using Java differ from working for a small business with nimble languages like JavaScript or PHP?

    -Working for a large organization using Java typically involves a structured, controlled environment with longer development cycles and less flexibility. In contrast, small businesses using nimble languages like JavaScript or PHP tend to have quicker development cycles, more diverse responsibilities, and a more dynamic work environment.

  • What does the speaker mean by 'runtime speed' versus 'right-time speed'?

    -'Runtime speed' refers to how fast the compiled code runs, while 'right-time speed' refers to how quickly a developer can write the code. The speaker believes that right-time speed is more important today, as modern software is often highly optimized, making development speed a higher priority than code execution speed.

  • What are some challenges Java developers face in larger organizations, according to the speaker?

    -Java developers in large organizations often face challenges like navigating corporate politics, dealing with rigid HR processes, working on long-term projects with legacy code, and handling complex configurations. The work can be less dynamic compared to startups or small businesses.

  • Why might a developer choose not to use Java for a minimum viable product (MVP)?

    -Developers might avoid using Java for MVPs because it requires writing verbose code, which slows down development. Nimble languages like JavaScript, Python, or PHP allow for quicker iterations, which are better suited for MVPs where speed of development is critical.

  • What career advice does the speaker offer regarding Java development?

    -The speaker advises developers to consider the job opportunities in their area before committing to Java. Since Java jobs are mostly in larger organizations dealing with legacy codebases, developers should assess whether this type of work aligns with their career goals and preferences.

Outlines

00:00

💻 The Reality of Java in the Job Market

The speaker starts by sharing their extensive experience with Java, expressing love for the language, but introduces a 'job delusion' concerning the real-world applications of Java. Despite Java's versatility, most jobs related to Java focus on server-side web app development, with a small portion in Android. The speaker contrasts the original vision of Java, which promised multi-platform use, with the current reality of it being used primarily for large web applications and server-side development in big corporations. They stress that while Java is fast at runtime, its verbosity makes it slower to write, which affects its viability for quick, modern development projects like MVPs (Minimum Viable Products).

05:02

🏢 Java Jobs: Large Organizations and Legacy Code

Java developers often find themselves working for large or medium-sized organizations such as banks or government institutions, where development cycles are longer, and they deal with legacy code. The speaker points out the stark contrast between working in such environments, which are often regimented, and working in small startups or businesses where the pace is faster and more dynamic. They also highlight the significant role of interpersonal skills in large companies, emphasizing the importance of dealing with HR, office politics, and the bureaucratic nature of these environments.

10:02

🔧 Challenges of Java Development in Large Enterprises

The speaker discusses the implications of working on legacy code in Java, highlighting that developers in this field typically maintain or expand older applications, often over several years. They explain that this type of work can feel monotonous, especially for those who enjoy diverse and fast-paced projects. Additionally, the speaker describes the heavy configuration involved in Java development, mentioning frameworks like Spring and Spring Boot, which, though more streamlined than earlier frameworks, still require significant setup. They share anecdotes from Java developers, noting long deployment cycles, complex configurations, and the pressure of working on critical enterprise applications.

🏠 Java Jobs and Remote Work Post-COVID

The speaker explores the cultural differences between large corporations and smaller businesses, specifically concerning remote work. They observe that while remote work has become more common post-COVID, especially in large organizations, it's still more prevalent in smaller businesses, which tend to be more flexible. The speaker contrasts the rigid, culture-bound work environment of large companies, which often expect employees to be physically present, with the more laid-back, flexible atmosphere of smaller companies. They emphasize how large organizations tend to be more resistant to change due to their legacy systems and established workplace norms.

📈 Java: Large Organizations, Legacy Code, and Career Considerations

In conclusion, the speaker advises viewers to assess job opportunities in their local area before committing to a Java career. Java jobs tend to be in larger organizations with legacy codebases, which may not appeal to everyone, especially those seeking dynamic and creative work. The speaker notes that while there are exceptions, the trend leans toward using Java for maintaining existing systems rather than developing new, innovative projects. They also mention the shift in Android development towards Kotlin, which has implications for those looking to specialize in mobile development. The speaker wraps up by promoting their mentoring program, offering an affordable, hybrid boot camp experience.

Mindmap

Keywords

💡Java

Java is a popular, high-level programming language that has been widely used since its release in 1995. In the video, it is discussed as a versatile language initially marketed for multi-platform applications such as games, desktop apps, and mobile development. However, the video emphasizes that today, most Java jobs involve server-side web app development, particularly in large organizations.

💡Server-side programming

Server-side programming refers to coding that runs on the server rather than the user's device. In the context of the video, Java is mainly used for server-side web application development, meaning developers work on the backend logic and databases of web apps rather than the user interface or front-end features.

💡Legacy code

Legacy code refers to old, outdated software code that is still in use. The video highlights that much of the work in the Java job market involves maintaining or updating legacy systems in large organizations, meaning developers often work on older, established applications rather than new, from-scratch projects.

💡Verbose

Verbose refers to the tendency of Java to require writing a lot of code to accomplish tasks. In the video, this is seen as one of Java's drawbacks; despite its performance at runtime, it takes more time to write Java code because of its explicit syntax, making it less favorable for quick development tasks like building minimum viable products (MVPs).

💡Spring and Spring Boot

Spring and Spring Boot are frameworks used for building Java applications, especially web apps. The video touches on how these frameworks, although more lightweight than previous ones, still require significant configuration and are common in enterprise Java development, especially in larger organizations with complex software needs.

💡Minimum Viable Product (MVP)

An MVP is a version of a product with the minimum features necessary to be functional and testable in the market. The speaker mentions that they would not use Java for building MVPs due to its verbosity and longer development times. Instead, lighter languages like JavaScript or Python are more suited for this type of rapid development.

💡Kotlin

Kotlin is a modern programming language that has been adopted as the preferred language for Android development. The video discusses Kotlin as a more flexible and concise alternative to Java for mobile development, following Google's recommendation to favor Kotlin over Java for building Android apps.

💡Enterprise-level applications

Enterprise-level applications refer to large, complex software systems used by businesses, often with strict reliability, security, and performance requirements. The video emphasizes that Java is commonly used in such environments, including big banks or government organizations, where developers work on stable, long-term projects and legacy systems.

💡Interpersonal skills

Interpersonal skills refer to the ability to interact effectively with others, which is highlighted in the video as a critical factor for Java developers, especially in large organizations. The speaker explains that working in corporate environments often involves navigating office politics, working with HR, and collaborating with diverse teams.

💡Remote work

Remote work refers to the ability to work from locations outside the traditional office. The video mentions that while remote opportunities have increased, especially post-COVID, working remotely in Java development is less common than in smaller businesses, as large organizations often maintain more traditional, office-based cultures.

Highlights

Java is often associated with server-side web app development and some Android development.

Java was initially marketed as a multi-platform, multi-use case language.

The majority of Java jobs are in server-side programming and less in Android development due to Google's preference for Kotlin.

Java's verbosity can slow down the development process, affecting its suitability for rapid development environments.

Java's strength lies in its performance at runtime, not necessarily in development speed.

Java is less commonly used for minimum viable product (MVP) applications due to its verbosity.

Java jobs are typically found in larger organizations such as banks and government entities.

Working with Java often involves dealing with HR departments and interpersonal politics.

Java developers are often sought after for their interpersonal skills, especially in large organizations.

Java development often involves maintaining or expanding legacy code bases rather than creating new applications from scratch.

Java projects tend to have long development cycles, which may not suit those who prefer dynamic and varied work.

Java is commonly used with frameworks like Spring and Spring Boot, which are considered heavy and configuration-intensive.

Java developers may experience long deployment cycles and the need for early morning deployments to minimize service disruptions.

Java jobs are often in larger organizations, which may offer less flexibility for remote work compared to smaller businesses.

The Java job market is characterized by a focus on maintaining and upgrading legacy systems in established companies.

The speaker suggests checking local job opportunities to assess the Java job market and company cultures before committing to learning Java.

Java development is often tied to larger organizations with strong company cultures that may prefer on-site work.

The speaker offers a mentoring program for those interested in becoming professional developers through a hybrid learning approach.

Transcripts

play00:00

hey guys how are you so what is the Java

play00:04

job delusion let me start off by saying

play00:07

that I have written more lines of java

play00:09

code than any other language and I've

play00:12

written Commercial Code in eight nine

play00:13

languages so I love Java I'm not doing a

play00:17

hit piece on Java here but I'm going to

play00:19

give you a little bit of reality about

play00:21

what Java is all about

play00:23

with regards to the job market which I

play00:26

think for most people that's what

play00:28

they're most concerned about

play00:29

writing a Java code means certain things

play00:33

about the type of work

play00:35

and the type of place you will work for

play00:38

so when you look at Java

play00:40

it was initially sold as the

play00:43

multi-platform language

play00:46

multi-use case language believe me I was

play00:50

there in 95 when it was released

play00:52

Java was sold as a potential language

play00:55

for creating games for desktop

play00:56

applications now for mobile with Android

play01:00

use it for iot devices web apps etc etc

play01:04

this is all true to a certain extent

play01:06

this is all true to a certain extent but

play01:08

the reality of the situation

play01:10

is the vast majority of java development

play01:12

is server-side web app development

play01:16

and perhaps a slice of Android

play01:19

development native Mobile Android but

play01:22

because Google said a couple years ago

play01:25

the number one choice language to create

play01:28

your Android apps in now is kotlin

play01:30

that's another story but anyway

play01:33

most of the jobs though are going to be

play01:35

in Java server-side programming and a

play01:38

smidge of Android development so what

play01:41

kind of web apps are we looking at in

play01:43

the Java World well we're looking at

play01:45

large web apps big web apps we're not

play01:49

looking at the late Nimble startups

play01:51

again Java is

play01:53

like in my heart is my favorite language

play01:56

I love Java I love the explicitness of

play02:00

the code it's easy to read and

play02:02

understand the problem is Java is

play02:05

extremely verbose you have to write out

play02:07

all that explicit code and it takes time

play02:11

it takes time it takes a lot of time and

play02:14

as I say many many in in many many

play02:17

videos I've said many times I said right

play02:19

time speed is far more important than

play02:22

run time speed let me say that again

play02:25

right time speed the speed of writing

play02:28

with a particular language is more

play02:30

important that the speed at which of the

play02:32

language code runs

play02:35

that's because

play02:38

software is so optimized these days the

play02:41

high level languages the dynamic

play02:43

languages like JavaScript

play02:44

python pH

play02:47

plural they don't run nearly as quick as

play02:49

Java not nearly as quick as Java except

play02:53

for maybe JavaScript but I would have to

play02:54

check into that but generally speaking

play02:56

Java when it compiles

play02:59

it's super fast very performant at

play03:02

runtime

play03:03

the problem is it's going to take you

play03:04

forever to write anything in Java

play03:07

because that code is so bloody verbose

play03:09

so even though I love Jaffa I would not

play03:12

use Java to build any minimum viable

play03:15

product application today no MVPs in

play03:18

Java for me that's for sure

play03:20

I would use Java only in highly

play03:23

specialized situations

play03:25

anyhow that's just me but it's a lot of

play03:28

other people too the trend is in terms

play03:31

of new development

play03:33

from scratch development fresh

play03:34

development is what the later nimbler

play03:36

languages like the javascripts and the

play03:38

phps and the python

play03:40

but

play03:42

you still see a heck of a lot of java

play03:44

jobs where are those jobs that's the

play03:47

question so all the Java jobs the vast

play03:50

majority are going to be in larger

play03:52

organizations mediums to large

play03:54

businesses think big Banks Etc

play03:57

government that's that kind of thing

play04:00

that's cool but that that means that

play04:03

you're working for it

play04:05

either type of company

play04:09

a particular type of organization which

play04:12

suggests a certain work environment that

play04:15

you may or may not like so anybody will

play04:18

tell you if you work for a large

play04:18

organizations you're dealing with HR

play04:20

departments you have to deal with

play04:22

interpersonal politics so again

play04:25

the number two thing I say again because

play04:27

I talk about in many videos the number

play04:28

two things that recruiters look for in

play04:31

their developers the number two thing

play04:34

that recruiters look for in their

play04:36

developers is their interpersonal skills

play04:39

this is especially true

play04:42

if you're going to go work for a very

play04:44

large organization that is huge I talk

play04:47

to people I never have personally I've

play04:50

worked in one as a Hired Gun for like

play04:52

two three weeks that's another story

play04:55

I've never have full time

play04:58

but I know several people who have or

play05:01

had and it's a different game than

play05:04

working for a small startup or a small

play05:06

business it's much more regimented much

play05:09

more controlled much more about politics

play05:12

and crossing your t's and dotting your

play05:15

eyes HR departments that kind of thing

play05:17

dress codes

play05:19

Etc et cetera et cetera et cetera so you

play05:21

have to think that if you are going to

play05:23

get a job in Java world it's probably

play05:26

going to be web app

play05:28

maybe some Android development but more

play05:30

importantly it's going to be for large

play05:33

medium to large organizations and the

play05:36

final Point you're probably going to be

play05:38

working on

play05:39

Legacy code bases that are being

play05:41

maintained or expanded not from scratch

play05:44

and again that implies a whole different

play05:47

type of development when you are looking

play05:50

at Legacy development maintaining old

play05:52

apps or expanding them that implies long

play05:57

development Cycles so you may be working

play06:00

on a particular project a particular

play06:02

goal base for a year two years three

play06:04

years or longer

play06:05

again that may be something you like but

play06:08

if you're somebody who wants to be able

play06:10

to build something over here and then

play06:12

build another type of app and then

play06:14

finish that off and launch another type

play06:16

of app if you want something a little

play06:17

bit more dynamic

play06:19

you may not want to jump into the Java

play06:21

world that is not that's that type of

play06:24

stuff is more akin to the lighter

play06:26

nimbler languages like the javascripts

play06:27

and so forth again these are General

play06:30

General generalities these are not you

play06:33

know every there's always exceptions to

play06:34

the rule but it's something to consider

play06:36

in the Java World there are going to be

play06:40

doing web apps majority of time and

play06:42

you're probably going to be using spring

play06:44

and spring boot I haven't looked at that

play06:47

framework in a long time and it's

play06:49

actually lighter in nimbler compared to

play06:51

previous Java Frameworks believe me but

play06:53

it's still pretty heavy it's still

play06:55

pretty heavy lots of configurations lots

play06:58

of config files lots of xmls you got to

play07:01

fill in I was talking to a friend of

play07:03

mine who's an active Java developer and

play07:06

he tells me maybe half of his job is

play07:10

configuration configuring app servers

play07:13

config files dealing with config

play07:16

conflicts chasing down semicolons that

play07:19

are missing that breaks an application

play07:22

big long deployment Cycles having to get

play07:26

up at four in the morning on Saturday to

play07:28

make sure the app is deployed properly

play07:31

because you're working on Enterprise

play07:32

level apps Enterprise means huge so you

play07:35

can't have a banking app go down right

play07:37

so you better they do it on the weekends

play07:39

and they do it at four in the morning so

play07:41

it makes sure everything if anything

play07:42

breaks they can roll back

play07:44

without disrupting too many people so

play07:47

this is uh this is Java this is this is

play07:49

Java now again highly paid

play07:52

lots of java jobs out there no question

play07:55

but it's that world whereas if you're

play07:58

going into the JavaScript web world or

play08:01

the PHP web world it's small business

play08:03

maybe medium-sized typically you're

play08:07

working on small Nimble projects you're

play08:08

done in two months a month three months

play08:11

maybe four months very quick development

play08:13

cycle in and out trying different things

play08:16

working on different things when you

play08:18

work for small business you're going to

play08:20

have a lot more

play08:21

responsibility perhaps whereas if you

play08:24

work for a in a giant on a giant project

play08:27

you may be just in involved with the

play08:29

authentication there for a Java based

play08:32

app for a while or we may be involved

play08:34

with some reporting component that you

play08:37

have to keep expanding or debugging

play08:39

whereas if you work for a small business

play08:41

you're probably going to be working in

play08:43

broader aspects of the app so it could

play08:45

be a lot more fun for you as a

play08:47

programmer because it's more General and

play08:50

you know you can jump around there's

play08:52

some change in that as opposed to being

play08:54

stuck on working on a particular feature

play08:57

for a long period of time just something

play08:59

to consider so the final point when

play09:01

you're doing Java development because

play09:03

you're going to likely be working for

play09:05

larger organizations

play09:07

the chance for remote

play09:09

work or less that being said post covid

play09:14

there's more opportunity for remote work

play09:16

in the Java world no question about that

play09:18

but

play09:20

it's much more common in small business

play09:22

because small businesses are not so

play09:24

Bound by culture

play09:26

and culture is a big part of

play09:28

the impact of how a developer lives

play09:30

their day-to-day Life as a developer

play09:32

working for a company big corporations

play09:34

tend to have

play09:36

very strong cultures

play09:38

cultures based on old models of uh uh

play09:44

you know running a business where they

play09:46

want people to show up at work a lot you

play09:48

know and you see that now there's a big

play09:50

battle Brewing out there on the uh

play09:52

in the world between management wants

play09:55

people to come in and between coders who

play09:57

don't want to come in

play09:58

again

play10:00

when you're working for small businesses

play10:01

and medium-sized businesses that

play10:04

cultural weight if you will on you is

play10:08

not as heavy as it is when you're

play10:10

working for a large business and again

play10:12

as I said most of the time Java is going

play10:16

to be leveraged in large organizations

play10:18

who are maintaining Legacy code bases

play10:22

yes in the comments below I'm sure

play10:24

somebody will say yeah but I know this

play10:27

one company yes there are always

play10:28

exceptions to every rule

play10:30

bottom line is before you jump in to the

play10:33

Java World thinking this is what I want

play10:35

to do

play10:36

I always suggest look at the job

play10:38

opportunities in your area go to the job

play10:40

sites check out the job opportunities

play10:42

check out the companies that are using

play10:44

Java and make your own assessment see

play10:47

what's going on

play10:48

so to wrap up

play10:51

Java typically larger organization

play10:53

typically web although you will see some

play10:57

Android again with the Android though

play10:58

it's tipping more towards kotlin for

play11:00

Android development now that's because

play11:02

Google recommended kotlin over java and

play11:05

it affects your career so the Java job

play11:07

delusion in a nutshell is

play11:09

you're probably not going to be doing

play11:11

too much gaming you're probably not

play11:12

going to be doing desktop development

play11:14

you're probably not going to be doing

play11:15

iot stuff you're probably going to be

play11:17

doing Legacy projects maintaining and

play11:22

upgrade updating

play11:23

Legacy code bases at large companies

play11:26

which implies a certain type of work

play11:28

that you will do

play11:30

I hope this is useful thanks for

play11:32

watching if you want to be mentored by

play11:35

the 169 year old developer that's me

play11:37

Uncle Steph check out Uncle staff.com I

play11:40

have a mentoring program

play11:42

it's still open to people if you're

play11:45

interested it's a hybrid boot camp where

play11:47

you get the best of both worlds you get

play11:50

the in classroom like experience where

play11:53

we have live coaching sessions but you

play11:55

also get the advantages of distance

play11:57

learning with my custom Interactive

play12:00

gamified Learning platform

play12:03

brought together you get great learning

play12:06

experience in becoming a professional

play12:08

developer without the huge cost that you

play12:10

typically see in a boot camp where

play12:11

you're going to be paying four five ten

play12:14

twenty thousand dollars for a boot camp

play12:15

or spending four years in a college

play12:17

program Check It Out Below Uncle Steph

play12:20

thanks for watching bye

Rate This

5.0 / 5 (0 votes)

Etiquetas Relacionadas
JavaJob MarketWeb DevelopmentAndroidLegacy CodeEnterpriseRemote WorkCareer AdviceProgrammingTech Trends
¿Necesitas un resumen en inglés?