What is the Java Job delusion?
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
💻 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).
🏢 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.
🔧 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
💡Server-side programming
💡Legacy code
💡Verbose
💡Spring and Spring Boot
💡Minimum Viable Product (MVP)
💡Kotlin
💡Enterprise-level applications
💡Interpersonal skills
💡Remote work
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
hey guys how are you so what is the Java
job delusion let me start off by saying
that I have written more lines of java
code than any other language and I've
written Commercial Code in eight nine
languages so I love Java I'm not doing a
hit piece on Java here but I'm going to
give you a little bit of reality about
what Java is all about
with regards to the job market which I
think for most people that's what
they're most concerned about
writing a Java code means certain things
about the type of work
and the type of place you will work for
so when you look at Java
it was initially sold as the
multi-platform language
multi-use case language believe me I was
there in 95 when it was released
Java was sold as a potential language
for creating games for desktop
applications now for mobile with Android
use it for iot devices web apps etc etc
this is all true to a certain extent
this is all true to a certain extent but
the reality of the situation
is the vast majority of java development
is server-side web app development
and perhaps a slice of Android
development native Mobile Android but
because Google said a couple years ago
the number one choice language to create
your Android apps in now is kotlin
that's another story but anyway
most of the jobs though are going to be
in Java server-side programming and a
smidge of Android development so what
kind of web apps are we looking at in
the Java World well we're looking at
large web apps big web apps we're not
looking at the late Nimble startups
again Java is
like in my heart is my favorite language
I love Java I love the explicitness of
the code it's easy to read and
understand the problem is Java is
extremely verbose you have to write out
all that explicit code and it takes time
it takes time it takes a lot of time and
as I say many many in in many many
videos I've said many times I said right
time speed is far more important than
run time speed let me say that again
right time speed the speed of writing
with a particular language is more
important that the speed at which of the
language code runs
that's because
software is so optimized these days the
high level languages the dynamic
languages like JavaScript
python pH
plural they don't run nearly as quick as
Java not nearly as quick as Java except
for maybe JavaScript but I would have to
check into that but generally speaking
Java when it compiles
it's super fast very performant at
runtime
the problem is it's going to take you
forever to write anything in Java
because that code is so bloody verbose
so even though I love Jaffa I would not
use Java to build any minimum viable
product application today no MVPs in
Java for me that's for sure
I would use Java only in highly
specialized situations
anyhow that's just me but it's a lot of
other people too the trend is in terms
of new development
from scratch development fresh
development is what the later nimbler
languages like the javascripts and the
phps and the python
but
you still see a heck of a lot of java
jobs where are those jobs that's the
question so all the Java jobs the vast
majority are going to be in larger
organizations mediums to large
businesses think big Banks Etc
government that's that kind of thing
that's cool but that that means that
you're working for it
either type of company
a particular type of organization which
suggests a certain work environment that
you may or may not like so anybody will
tell you if you work for a large
organizations you're dealing with HR
departments you have to deal with
interpersonal politics so again
the number two thing I say again because
I talk about in many videos the number
two things that recruiters look for in
their developers the number two thing
that recruiters look for in their
developers is their interpersonal skills
this is especially true
if you're going to go work for a very
large organization that is huge I talk
to people I never have personally I've
worked in one as a Hired Gun for like
two three weeks that's another story
I've never have full time
but I know several people who have or
had and it's a different game than
working for a small startup or a small
business it's much more regimented much
more controlled much more about politics
and crossing your t's and dotting your
eyes HR departments that kind of thing
dress codes
Etc et cetera et cetera et cetera so you
have to think that if you are going to
get a job in Java world it's probably
going to be web app
maybe some Android development but more
importantly it's going to be for large
medium to large organizations and the
final Point you're probably going to be
working on
Legacy code bases that are being
maintained or expanded not from scratch
and again that implies a whole different
type of development when you are looking
at Legacy development maintaining old
apps or expanding them that implies long
development Cycles so you may be working
on a particular project a particular
goal base for a year two years three
years or longer
again that may be something you like but
if you're somebody who wants to be able
to build something over here and then
build another type of app and then
finish that off and launch another type
of app if you want something a little
bit more dynamic
you may not want to jump into the Java
world that is not that's that type of
stuff is more akin to the lighter
nimbler languages like the javascripts
and so forth again these are General
General generalities these are not you
know every there's always exceptions to
the rule but it's something to consider
in the Java World there are going to be
doing web apps majority of time and
you're probably going to be using spring
and spring boot I haven't looked at that
framework in a long time and it's
actually lighter in nimbler compared to
previous Java Frameworks believe me but
it's still pretty heavy it's still
pretty heavy lots of configurations lots
of config files lots of xmls you got to
fill in I was talking to a friend of
mine who's an active Java developer and
he tells me maybe half of his job is
configuration configuring app servers
config files dealing with config
conflicts chasing down semicolons that
are missing that breaks an application
big long deployment Cycles having to get
up at four in the morning on Saturday to
make sure the app is deployed properly
because you're working on Enterprise
level apps Enterprise means huge so you
can't have a banking app go down right
so you better they do it on the weekends
and they do it at four in the morning so
it makes sure everything if anything
breaks they can roll back
without disrupting too many people so
this is uh this is Java this is this is
Java now again highly paid
lots of java jobs out there no question
but it's that world whereas if you're
going into the JavaScript web world or
the PHP web world it's small business
maybe medium-sized typically you're
working on small Nimble projects you're
done in two months a month three months
maybe four months very quick development
cycle in and out trying different things
working on different things when you
work for small business you're going to
have a lot more
responsibility perhaps whereas if you
work for a in a giant on a giant project
you may be just in involved with the
authentication there for a Java based
app for a while or we may be involved
with some reporting component that you
have to keep expanding or debugging
whereas if you work for a small business
you're probably going to be working in
broader aspects of the app so it could
be a lot more fun for you as a
programmer because it's more General and
you know you can jump around there's
some change in that as opposed to being
stuck on working on a particular feature
for a long period of time just something
to consider so the final point when
you're doing Java development because
you're going to likely be working for
larger organizations
the chance for remote
work or less that being said post covid
there's more opportunity for remote work
in the Java world no question about that
but
it's much more common in small business
because small businesses are not so
Bound by culture
and culture is a big part of
the impact of how a developer lives
their day-to-day Life as a developer
working for a company big corporations
tend to have
very strong cultures
cultures based on old models of uh uh
you know running a business where they
want people to show up at work a lot you
know and you see that now there's a big
battle Brewing out there on the uh
in the world between management wants
people to come in and between coders who
don't want to come in
again
when you're working for small businesses
and medium-sized businesses that
cultural weight if you will on you is
not as heavy as it is when you're
working for a large business and again
as I said most of the time Java is going
to be leveraged in large organizations
who are maintaining Legacy code bases
yes in the comments below I'm sure
somebody will say yeah but I know this
one company yes there are always
exceptions to every rule
bottom line is before you jump in to the
Java World thinking this is what I want
to do
I always suggest look at the job
opportunities in your area go to the job
sites check out the job opportunities
check out the companies that are using
Java and make your own assessment see
what's going on
so to wrap up
Java typically larger organization
typically web although you will see some
Android again with the Android though
it's tipping more towards kotlin for
Android development now that's because
Google recommended kotlin over java and
it affects your career so the Java job
delusion in a nutshell is
you're probably not going to be doing
too much gaming you're probably not
going to be doing desktop development
you're probably not going to be doing
iot stuff you're probably going to be
doing Legacy projects maintaining and
upgrade updating
Legacy code bases at large companies
which implies a certain type of work
that you will do
I hope this is useful thanks for
watching if you want to be mentored by
the 169 year old developer that's me
Uncle Steph check out Uncle staff.com I
have a mentoring program
it's still open to people if you're
interested it's a hybrid boot camp where
you get the best of both worlds you get
the in classroom like experience where
we have live coaching sessions but you
also get the advantages of distance
learning with my custom Interactive
gamified Learning platform
brought together you get great learning
experience in becoming a professional
developer without the huge cost that you
typically see in a boot camp where
you're going to be paying four five ten
twenty thousand dollars for a boot camp
or spending four years in a college
program Check It Out Below Uncle Steph
thanks for watching bye
5.0 / 5 (0 votes)