85
5-10-15 lat kariery Java developera od zera do bohatera i … z powrotem Wojciech Seliga Creative Commons Attribution-NonCommercial-ShareAlike 3.0

5-10-15 years of Java developer career - Warszawa JUG 2015

Embed Size (px)

Citation preview

Page 1: 5-10-15 years of Java developer career - Warszawa JUG 2015

5-10-15 lat kariery Java developera od zera do bohatera i … z powrotem

Wojciech Seliga

Creative Commons Attribution-NonCommercial-ShareAlike 3.0

Page 2: 5-10-15 years of Java developer career - Warszawa JUG 2015

32 years

Page 3: 5-10-15 years of Java developer career - Warszawa JUG 2015
Page 4: 5-10-15 years of Java developer career - Warszawa JUG 2015

Firstly, a digression

Page 5: 5-10-15 years of Java developer career - Warszawa JUG 2015

Software is eating the world

Page 6: 5-10-15 years of Java developer career - Warszawa JUG 2015

from code.org Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License

Only in USA itself!

Page 7: 5-10-15 years of Java developer career - Warszawa JUG 2015

No balance between supply and demand in the

IT job market

Photo by winnifredxoxo - Creative Commons Attribution 2.0

Page 8: 5-10-15 years of Java developer career - Warszawa JUG 2015

It’s easy to earn a lot

Photo by Andrew Magill - Creative Commons Attribution 2.0

but earning a shitload means usually managerial path

Page 9: 5-10-15 years of Java developer career - Warszawa JUG 2015

–Richard Stallman

“The computer industry is the only industry that is more fashion-driven than

women's fashion.”

Page 10: 5-10-15 years of Java developer career - Warszawa JUG 2015

Photo by Hartwig HKD - Creative Commons Attribution-NoDerivs 2.0

Page 11: 5-10-15 years of Java developer career - Warszawa JUG 2015

years0

Page 12: 5-10-15 years of Java developer career - Warszawa JUG 2015

• Popular (unis, internet, literature, open source, free)

• Cross-platform

• Relatively idiot proof

• Good (free) tools

• Good job market (salaries)

• Sexy???

Why Java?

Page 13: 5-10-15 years of Java developer career - Warszawa JUG 2015

• The language rather simple and easy to learn, slowish in some applications

• Well, it’s quite backward and I cannot boost my ego with fancy idioms; a lot of crap in the language (backward compatibility at all cost…)

• Easy to (re)write lots of code (ideally from scratch), yeah!!!

First Java thoughts and behaviours

Page 14: 5-10-15 years of Java developer career - Warszawa JUG 2015

• They often need to, but are afraid to ask

• Focus on how to write something tersely, neatly, in a geeky way

• Concentration on “I” - their own education, benefits, perspective, feelings

Page 15: 5-10-15 years of Java developer career - Warszawa JUG 2015

// an awesome trick from // http://stackoverflow.com/questions…. // which allows us to make it way! faster.

// the code follows here ...

Page 16: 5-10-15 years of Java developer career - Warszawa JUG 2015

Picture by Patrick Barry CC BY SA 2.0

“They are stupid.They have fucked up

this code”

Page 17: 5-10-15 years of Java developer career - Warszawa JUG 2015

Focus on low level code quality• naming convention, • whitespaces, • checkstyle rules

• unit test coverage, • some low level metrics

Page 18: 5-10-15 years of Java developer career - Warszawa JUG 2015

Predictions provided quickly, optimistically and eagerly

(rule of thumb)

Page 19: 5-10-15 years of Java developer career - Warszawa JUG 2015

Spread shallow

Zdjęcie jeffreyw - Creative Commons BY 2.0

Page 20: 5-10-15 years of Java developer career - Warszawa JUG 2015
Page 21: 5-10-15 years of Java developer career - Warszawa JUG 2015
Page 22: 5-10-15 years of Java developer career - Warszawa JUG 2015

I call them juniors and (later)

grown-up juniors (mids)

Page 23: 5-10-15 years of Java developer career - Warszawa JUG 2015

The most numerous group

Page 24: 5-10-15 years of Java developer career - Warszawa JUG 2015

“How” age

Page 25: 5-10-15 years of Java developer career - Warszawa JUG 2015
Page 26: 5-10-15 years of Java developer career - Warszawa JUG 2015

years5

Page 27: 5-10-15 years of Java developer career - Warszawa JUG 2015

• Quite verbose and explicit language actually makes it easier to understand and maintain the code

• Language supports the understanding that coding is about “write once, read many times”

• Remembering when writing code that it will be read 100x more often

• Backward compatibility is not that bad after all…

Java afterthoughts and behaviours

Page 28: 5-10-15 years of Java developer career - Warszawa JUG 2015

• They need to ask others more seldom, but still are reluctant as it if would reveal their weakness

• “We and Them Language” (devs vs. customers/users or “the business”/management)

• Concentrated on the product (my baby) and the domain

Page 29: 5-10-15 years of Java developer career - Warszawa JUG 2015

// it's safe to apply a simplified formula // and thus reduce the complexity // from O(n) into O(log(n)), which does help // a lot for long-haul flights.

// the code follows here ...

Page 30: 5-10-15 years of Java developer career - Warszawa JUG 2015

Picture by Patrick Barry CC BY SA 2.0

“This code looks broken. Let’s see if we

can fix it.”

Page 31: 5-10-15 years of Java developer career - Warszawa JUG 2015

Picture by Patrick Barry CC BY SA 2.0

Use The Force, Read The Source

UTSL

Use the Source, Luke

Page 32: 5-10-15 years of Java developer career - Warszawa JUG 2015

Focus on higher level code quality

• correct design • consistency • adherence to requirements

• functional test coverage • security • maintainability

Page 33: 5-10-15 years of Java developer career - Warszawa JUG 2015

• provide predictions more carefully

• involve others

• think about happy and unhappy paths

• try to predict unpredictable

Page 34: 5-10-15 years of Java developer career - Warszawa JUG 2015

Knowledge depth

T-shaped man

Page 35: 5-10-15 years of Java developer career - Warszawa JUG 2015
Page 36: 5-10-15 years of Java developer career - Warszawa JUG 2015
Page 37: 5-10-15 years of Java developer career - Warszawa JUG 2015

I call them seniors

Page 38: 5-10-15 years of Java developer career - Warszawa JUG 2015

Seniors assume responsibility

Page 39: 5-10-15 years of Java developer career - Warszawa JUG 2015

The group where most of us consider themselves to belong

And where the majority stops…

Page 40: 5-10-15 years of Java developer career - Warszawa JUG 2015

“What” age

Page 41: 5-10-15 years of Java developer career - Warszawa JUG 2015
Page 42: 5-10-15 years of Java developer career - Warszawa JUG 2015

years10

Page 43: 5-10-15 years of Java developer career - Warszawa JUG 2015

• Quite verbose and explicit language actually makes it easier for newbies to pick up modules of non-trivial size and understand them

• Good debuggers, stack traces, thread/heapdumps and diagnosis tools are life savers.

• Backward compatibility (maybe not 10+ years back…) is a really good thing in the wild (Scala, I am looking at you…)

Further afterthoughts about Java

Page 44: 5-10-15 years of Java developer career - Warszawa JUG 2015

• They ask questions often, do not feel vulnerable

• “It depends” guys

• “We together” language (his dev team + business/management + customers/users)

• Concentration on their team and the users

Page 45: 5-10-15 years of Java developer career - Warszawa JUG 2015

// Because JAA aviation rules allow // a simplified check here, together with // aircraft performance department we decided // (look at http://wiki....) // to use a simplified formula which allows us // to reduce O(n) complexity into O(log(n)) // and thus make it acceptably fast // for long-haul flights.

// the code follows here ...

Page 46: 5-10-15 years of Java developer career - Warszawa JUG 2015

Picture by Patrick Barry CC BY SA 2.0

“This code looks strange. Let’s find out why they decided to

implement it in this way”

Page 47: 5-10-15 years of Java developer career - Warszawa JUG 2015

• Fitting into the big picture

• Response to Market Trends

• Discovering real (often hidden) problems

• Addressing business risks

• Usability

• User adoption

• Upgrades/migrations

• Future usage growth

• Constant Learning

Page 48: 5-10-15 years of Java developer career - Warszawa JUG 2015

Feedback Loop

Mentors

Customers

Users

CI

CD

TDD

DevOps

Bug-fixing

Code Review

Release Cycle

Experiments

Page 49: 5-10-15 years of Java developer career - Warszawa JUG 2015

Great Team Player != Yes Man

Page 50: 5-10-15 years of Java developer career - Warszawa JUG 2015

The ability to say “no” is the sign of true professionalism

Picture by Stephen Almond, CC BY-SA 3.0

Page 51: 5-10-15 years of Java developer career - Warszawa JUG 2015

• very reluctant to provide any estimations upfront

• eager to operate with ranges and probability

• narrow down the estimates along the way

Picture by FalseReflex, CC 3.0 BY-NC

Page 52: 5-10-15 years of Java developer career - Warszawa JUG 2015

–Niels Bohr

“Prediction is very difficult, especially about the future”

Page 53: 5-10-15 years of Java developer career - Warszawa JUG 2015

PI-shaped man

Page 54: 5-10-15 years of Java developer career - Warszawa JUG 2015

Eat like a bird and poop like an elephantGuy Kawasaki

Photo by Megan Coughlin - CC BY-ND 2.0 Photo by blmiers2 - CC BY-NC-SA 2.0

Page 55: 5-10-15 years of Java developer career - Warszawa JUG 2015

10000hours

Page 56: 5-10-15 years of Java developer career - Warszawa JUG 2015

8 hours per day

5.5 years

Page 57: 5-10-15 years of Java developer career - Warszawa JUG 2015

14.7 years3 hours per day

Meetings Procrastination

Processes Methodology Overhead

E-mails

Page 58: 5-10-15 years of Java developer career - Warszawa JUG 2015
Page 59: 5-10-15 years of Java developer career - Warszawa JUG 2015

www.paulgraham.com/

Page 60: 5-10-15 years of Java developer career - Warszawa JUG 2015

I call them leaders and/or principals

Page 61: 5-10-15 years of Java developer career - Warszawa JUG 2015

The group where most of us aspire to belong, but

many will never be

Page 62: 5-10-15 years of Java developer career - Warszawa JUG 2015

“Why” age

Page 63: 5-10-15 years of Java developer career - Warszawa JUG 2015
Page 64: 5-10-15 years of Java developer career - Warszawa JUG 2015

years15

Page 65: 5-10-15 years of Java developer career - Warszawa JUG 2015

• It’s a truly powerful platform. The language itself hasn’t really changed, but the whole ecosystem has changed tremendously!

• Amazing tools!

• No serious successor today for enterprises

• Java 8 finally brought well balanced language changes

Current afterthoughts about Java

Page 66: 5-10-15 years of Java developer career - Warszawa JUG 2015

Focus on true customer needs, people around them and their growth

Page 67: 5-10-15 years of Java developer career - Warszawa JUG 2015

Picture by Patrick Barry CC BY SA 2.0

“Wow, such an unusual code. I didn’t think about it in this way. Maybe I was wrong…”

Page 68: 5-10-15 years of Java developer career - Warszawa JUG 2015

• Noticing and predicting the changes of the trends

• Creating new trends

• ???

Page 69: 5-10-15 years of Java developer career - Warszawa JUG 2015

PiPi-shaped Man

Page 70: 5-10-15 years of Java developer career - Warszawa JUG 2015

I call them unicorns

Page 71: 5-10-15 years of Java developer career - Warszawa JUG 2015

“With whom” age

Page 72: 5-10-15 years of Java developer career - Warszawa JUG 2015

Seniority - summed up

Focus Technology ProductSolving

problemCustomer

Defining the right problem

Needsassistance

Independent Teachingothers

Impacting the company

Technical capability

Quality Code L&FLow Level

System DesignUsability

ExtensibilityArchitecture

Maintainability

Technical innovation Passive

LocalIntroduction

TeamBuy-in

Company Community

Junior Mid Senior Principal

Knowledge Span

Fragments of a single stack

Most of thestack, some element

of other stacks

Complete stackand a lot of elements

of other stacks

Various stacks(deeply!)

Bugs Surprised Disappointed Expecting Leveraging

Page 73: 5-10-15 years of Java developer career - Warszawa JUG 2015

Seniority - cont.

WatchingQuestioning& proposing

Changingteammates

Changing company

Process Improvement Change Agent

Big Picture Doesn’t careor learning

System/Product understanding

Domainunderstanding

Domain expert(innovation)

Stance Arrogant “Socrates”Open toCriticismCritical

Typical Experience

1K - 5K hours 3K - 12K hours 7K-20K hours 15K+ hours

Junior Mid Senior Principal

Teaching/ mentoring

Receiver Interns & Juniors Whole team All people(also outside)

Estimation Eager & Naive CarefulReluctantPessimistic

IterativeNarrowing

Communication Team Simplifies; removes need, focuses on customers

Notices and removes comms bottlenecks via processesCross-Team

Page 74: 5-10-15 years of Java developer career - Warszawa JUG 2015

Seniority - coding passionJunior

Application Code

MidReusable Libraries

Senior

Reusable Frameworks

Principal

Buy over Build…

LoC

Page 75: 5-10-15 years of Java developer career - Warszawa JUG 2015

A few closing thoughts

Page 76: 5-10-15 years of Java developer career - Warszawa JUG 2015

http://www.pracuj.pl/pracuj-w-it/#/8/ 

Page 77: 5-10-15 years of Java developer career - Warszawa JUG 2015

Yes, you can!

Page 78: 5-10-15 years of Java developer career - Warszawa JUG 2015

–Heraclitus

“There is nothing permanent except change.”

Page 79: 5-10-15 years of Java developer career - Warszawa JUG 2015

Don’t concentrate on mastering only a technology

Learn to learn constantly

Page 80: 5-10-15 years of Java developer career - Warszawa JUG 2015

Summary• Juniors assume other people ignorance, principals assume

their own ignorance

• Java as a platform and a language is far from dead

• Mastering only Java puts you in a rut. A rut turns silently into a grave. Overheated job market is your secret enemy - it’s too easy to rest on laurels.

• After 32 years of coding, I still know nothing

Page 81: 5-10-15 years of Java developer career - Warszawa JUG 2015

Technical Skills

Communication Skills

Page 82: 5-10-15 years of Java developer career - Warszawa JUG 2015
Page 83: 5-10-15 years of Java developer career - Warszawa JUG 2015

–Mahatma Gandhi

“Live as if you were to die tomorrow. Learn as if you were to live forever.”

Page 84: 5-10-15 years of Java developer career - Warszawa JUG 2015

Software is eating the world

Are we - software developers - aware of this responsibility?

Aren’t we spoiled too much to feel this responsibility?

Are we mature enough to bear this responsibility?

Are we learning enough to succeed?

Page 85: 5-10-15 years of Java developer career - Warszawa JUG 2015

Questions?@wseliga We are

hiring

in Gdańsk!

Shameless plug