THE JOURNEY TO
BECOME A
SOLID DEVELOPER
@_orso_ and @cirpo
solid
Pronunciation: /ˈsɒlɪd/
1. Firm and stable in shape; not liquid or fluid
solid
Pronunciation: /ˈsɒlɪd/
2. Having three dimensions
solid
Pronunciation: /ˈsɒlɪd/
3. Not hollow or containing spaces or gaps
solid
Pronunciation: /ˈsɒlɪd/
4. Dependable, reliable
What it means being
a solid developer
in 2016?
Can solve problems/needs either through code and/or analysis
Is able to balance pragmatism and perfectionism
Is not averse to debugging and bug fixing
Has healthy skepticism
Has business-awareness
Has social-awareness
Is a continuous learner
Someone who
Why in 2016?
Why in 2016?
Because the concept of a solid developer hasn’t been always the same
20 years ago… 1996
IN THE 90’S IT WAS CALLED ANNOYING MODEM NOISE
How was to be a dev those days?
How was to be a dev those days?
Well, most probably a lonely experience
No GrUSP
Not so many conferences
No meetups (with free pizza and beer)
No Github
THERE WERE NO...
If you wanted to learn something new...
If you wanted to learn something new...
buy a book or wait for an article on
$IT_Magazine...
A bit of (PHP) history
1998 PHP 3
1999 Pear
In the meantime...
1998 PHP 3
In the meantime...
1999 Pear
2000 PHP 4
2003 PECL
In the meantime...
2000 PHP 4
2003 PECL
In the meantime...
2000 PHP 4
2003 PECL
In the meantime...
In the meantime...
2000 PHP 4
2003 PECL
2005 sf 1 / zf 1
2008 github
TODAY
It’s always the web, but it’s different.
Same protocol (HTTP), but several different
platforms, devices, technologies and methodologies
internetlivestats.com/internet-users
3,365,312,161
internet users in the world
and counting...
internetlivestats.com/
2,937,041
blog posts written today
internetlivestats.com/
2,043,705 TB
Internet traffic today
internetlivestats.com/
43,705
Website hacked today
today we have the opposite problem:
we have access to TONS AND TONS of information
instantly!
Manage the information overload
We are overwhelmed by informations:
blogs
We are overwhelmed by informations:
blogs
feeds
We are overwhelmed by informations:
blogs
feeds
tweets
We are overwhelmed by informations:
blogs
feeds
tweets
slack channels
We are overwhelmed by informations:
blogs
feeds
tweets
newsletters
slack channels
We are overwhelmed by informations:
blogs
feeds
tweets
newsletters
newsletter of newsletter of newslet
slack channels
We are developers and we like learning new
tools, technologies, programming
languages, whatever,
but we are humans and every day is 24 hours
for everyone of us.
We cannot physically learn/know everything
“There are discoverable limits to
the amount of change that the
human organism can absorb.”
Alvin Toffler - Future Shock 1970
[SUGGESTIONS]
Find a community
Find a mentor
Ask for help
Again:
stick to the fact that you can’t learn
everything!
Keep an eye on what’s going on
around you
thoughtworks.com/radar
[BACK TO BASICS]
Most of the time it’s turning wheel.
Most of the time there is nothing
new, old concepts but better
implementation/better hardware or
new needs
So what are the basics?
So what are the basics?
it depends...
HTTP
what’s the difference between a
GET and a POST?
“POST is more secure”
“The difference is that
in a GET request the parameter are in the url,
in a POST request, the parameter are in the body’s
request”
how many of you knows what happens
when you enter a url in the browser?
github.com/alex/what-happens-when
dotfiles.github.io
even if you’re not a devops, try to learn
how/where your code runes
don’t change your editor every two
days!
keep yourself trained
kata
hackrank
codewars
you name it
[BE A POLYMATH]
PHP is here to stay
Javascript as well
next?
next?
Solve the same problems
Solve the same problems
in different ways
[ BE YOURSELF
BE PRAGMATIC ]
many methodologies,
many technologies
What’s wrong in this code?
We ♥ DDD, Clean Code, TDD
CARGO CULT
our goal is to satisfy our clients
not our ego
keep things simple
use your brain
“more unit than functional tests”
DRY is fine…
The other side of DRY is coupling
Sometimes we see code
Sometimes we see code
as an expression of our intelligence
Be pragmatic
[BE COLLABORATIVE]
Continuous learning (non unidirectional)
individuals and interaction over processes and tools
Not just the tech stuff, also the domain you’re
in
Don’t be just an executor
Ask why
[GIVE BACK]
Opensource
small things matters
you should not be afraid to fail
try to find a place where failure is ok
failure is a learning opportunity...
you have to get what went wrong ;-)
so what about being a solid dev?
don’t be a dark matter developer
use your brain
Learn to choose
know your strengths
know your limits
a.k.a be yourself!
THE JOURNEY IS NOT (NEVER?) OVER
WE ARE ALL UNIQUE AND DIFFERENT
WE ARE ALL UNIQUE AND DIFFERENT
introvert
extrovert
technical
meticulous
stubborn
WE ARE ALL UNIQUE AND DIFFERENT
introvert
extrovert
technical
product-oriented
meticulous
stubborn
funny
WE ARE ALL UNIQUE AND DIFFERENT
introvert
extrovert
technical
cautious
product-oriented
meticulous
stubborn
humble
funny
WE ARE ALL UNIQUE AND DIFFERENT
introvert
extrovert
technical
cautious
product-oriented
meticulous
dreamer
stubborn
humble
funny
WE
WE
ARE
WE
ARE
DEVELOPERS

The journey to become a solid developer