Becoming a Better
Developer
Your Host Today
Alex Fernández
My Story So Far
Learned programming when I was 10
Started working 20 years ago
Four years at ING Direct Spain
CTO at my (failed) startup
Senior developer at mediasmart
Freelancer in my spare? time
What We Will Cover
- Advice For The Novice
- Get Ahead Of The Curve
- Top Of The Cream Of The Crop
- Conclusion
Advice For The
Novice
Life As A Junior
“Junior developer after her first day”
Pablo Picasso, Oil on canvas, 1901-02
Learn From Others
Find a mentor
Work with seniors
Ask to work with seniors
Use Your Mentor!
“RTFM”
Charles West Cope, Oil on canvas, 1872
Be Ready To ACCept Criticism
“Junior dev gets aggressive after his first code review by senior peers”
Yoshimori Utagawa, 1862, Woodblock print
Learn Strategies
“Resolving technical debt”
Accumulated technical debt visible. Right image after refactoring.
Elías García Martínez, fresco, c. 1930
Refactored by Cecilia Giménez
Track a Problem In Code
- Follow the code,
- add traces to the code,
- google any error messages,
- use a debugger,
- comment out parts of the code,
- write an example that fails in a similar way,
- google for people with the same problem…
Every bug can be fixed
Ask For Help
“Git detached HEAD state”
Gustave Moreau, Watercolor, 1876
Get Ahead
Of The Curve
Are You Good?
“The Shell Scripter”
Osman Hamdi Bey, Oil on canvas, 1906
The 10x Developer
“The 10x developer”
Francisco de Goya, Oil on canvas, 1808–1812
Good and Bad Developers
Time to complete a programming task. Source: DeMarco and Lister: Peopleware (2nd edition), 1999, via Best Webfoot Forward.
Good Developers Cluster
Correlation between teammates. Source: DeMarco and Lister: Peopleware (2nd edition), 1999, via Best Webfoot Forward.
Your "Comfort" Zone
“John Hughes posts ‘Why Functional Programming Matters’”
Ferdinand Pauwels, Oil on canvas, 1872
Leaving the Comfort Zone
Why the #@&! would I want to leave my comfort zone?
Do these people even know what "comfort" means?
Translated from zezenzuska
Ways To Improve
- Read a few books
- Use a new framework
- Learn a new language
- And a few more
Trust Me, I'm An Engineer
Programmer: write code to spec
Developer: test and refactor as needed
Engineer: look at the failure modes of the system
Code Is Not The Goal
One of my most productive days was throwing away 1000 lines of code.
Ken Thompson
Impostor Syndrome
“Lead Angular Expert after announcement about moving the project to React.js”
Jan Matejko, 1862
Nobody Is Immune
The exaggerated esteem in which my lifework is held makes me very ill at ease. I feel compelled to think of myself as an involuntary swindler.
Albert Einstein
Beating Impostor Syndrome
Simple recipe:
- Focus on achievements, not opinions
- Work hard
A hard worker that focuses on results is always great!
Find Your Specialty
UX
Security
Scalability
Gaming
DevOps
Embedded
Data science
Machine Learning
…
Get Involved In The Community
Show up at a Meetup
Offer to give a talk
Go to a conference
Meet others with your interests
Meetups Are Fun!
“Haskell meetup”
Edward Hopper, Oil on canvas, 1942
Top Of The Cream
Of The Crop
Bring Me Problems, Not Solutions
“The allure of a full rewrite”
Viktor Oliva, Oil on canvas, c 1901-1903
The 10x Engineer, Revisited
“SRE tempted to ignore the on-call alert on a Saturday afternoon”
Pieter de Hooch, Oil on canvas, 1670
Not 10x, But 2x-3x
Time to complete a programming task. Source: DeMarco and Lister: Peopleware (2nd edition), 1999, via Best Webfoot Forward.
Ask For Help
“Programmer finds 1395 conflicts after ‘git merge develop master’, three days before deadline”
Gustav Courbet, Oil paint, 1844–1845
Resharpen Your Skills
“Thoughts on Flash”
William-Adolphe Bouguereau, Oil on canvas, 1848
The World in 2011
Containers meant VMWare
IE most used browser (Firefox 2nd)
iOS & Android below Mac OS
HTML5 not finished yet
Node.js was at 0.6.0
Java 7 just released
Golang was unstable
Elixir did not exist
Let The World Know
“Gentle technical discussion on IRC channel”
Francisco Goya, Oil on canvas, 1814
Show Your Work
Write a tech blog
Write a proposal for a CfP
(It's a great way to go to conferences for free!)
Improve your soft skills (writing, speaking)
Teach Others
“Philip Wadler explains ‘Propositions as types’ “
Carl Bloch, Oil on copper, 1877
Be Open To New Things
The key to having an interesting life
is to always say "yes" to anything crazy.
Conclusion
Build Your Career
Set Yourself a Target
Build a Way to Get There
Don't Delegate this Burden on Anyone Else
Work Towards It!
Credits
Captions from Classic Programmer Paintings
Extended version:
http://alexfernandez.github.io/2016/becoming-a-better-developer.html
Thanks!
Becoming A Better Developer
By Alex Fernández
Becoming A Better Developer
Talk for developers.nl, 2016-10-01.
- 3,676