THE JOURNEY TO BECOME A SOLID DEVELOPER @_orso_ and @cirpo
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 42003 PECL
In the meantime...
2000 PHP 42003 PECL
In the meantime...
2000 PHP 42003 PECL
In the meantime...
In the meantime...
2000 PHP 42003 PECL
2005 sf 1 / zf 12008 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,161internet users in the world
and counting...
internetlivestats.com/
2,937,041blog posts written today
internetlivestats.com/
2,043,705 TBInternet 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
feedstweets
We are overwhelmed by informations:
blogs
feedstweets
slack channels
We are overwhelmed by informations:
blogs
feedstweets
newslettersslack channels
We are overwhelmed by informations:
blogs
feedstweets
newslettersnewsletter of newsletter of newsletter
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
meticulousstubborn
WE ARE ALL UNIQUE AND DIFFERENT
introvert
extrovert
technicalproduct-oriented
meticulousstubborn
funny
WE ARE ALL UNIQUE AND DIFFERENT
introvert
extrovert
technical
cautious
product-oriented
meticulousstubborn
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