Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The pragmatic programmer
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Lucas Arantes
February 22, 2018
Programming
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The pragmatic programmer
A more complete talk about what is and how to be pragmatic.
Lucas Arantes
February 22, 2018
More Decks by Lucas Arantes
See All by Lucas Arantes
Elixir 101
lucasprag
1
270
Clean Architecture
lucasprag
3
90
Hello Docker!
lucasprag
0
80
The Pragmatic Programmer
lucasprag
1
180
Hello Swift!
lucasprag
1
62
Other Decks in Programming
See All in Programming
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
240
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.1k
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
230
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.2k
TS 7.0 で baseUrl が使えなくなった今、パスエイリアスをどうするか
bicstone
1
230
AI Augmentation Techniques with Liberty
ivargrimstad
0
140
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2k
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
1.9k
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
5
1.3k
Next.js: The final boss of Web Performance
guaca
0
360
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.4k
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
130
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k
The Limits of Empathy - UXLibs8
cassininazir
2
740
How to make the Groovebox
asonas
2
2.5k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
660
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
550
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Amusing Abliteration
ianozsvald
1
370
Side Projects
sachag
456
43k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
Transcript
The pragmatic programmer Lucas Oliveira | lucasprag.com
It's a book
None
None
What makes a pragmatic programmer? A pragmatic philosophy A pragmatic
approach
What makes a pragmatic programmer?
early adopter fast adapter
inquisitive
critical thinker
realistic
Jack of all trades
Jack of all trades != master of none
T-shaped skills
A pragmatic philosophy
"The greatest of all weaknesses is the fear of appearing
weak" - JB Bossuet
The cat ate my source code
Take responsibility
Provide options, don't make lame excuses
Everybody is learning
Don't live with broken windows
None
Control your software entropy
None
it's time to bring out the stones
people find it easier to join an ongoing success
if something could be better, change it
be a catalyst for change
projects slowly get totally out of hand
remember the big picture
Good enough software
make quality a requirement issue
involve users in the trade-off
know when to stop
Your knowledge portfolio
"An investment in knowledge always pays the best interest" -
Benjamin Franklin
it's similar to managing a financial portfolio
None
Building your portfolio
invest regularly
diversify
None
manage risk
None
buy low, sell high
review and rebalance
Goals
- learn one new language every year - read technical
books - read nontechnical books too - read and write blog posts Goals
Goals - take classes - participate in local user groups
- stay current - get wired
Critically analyze what you read and hear
Communicate!
A large part of our day is spent communicating, so
we need to do it well.
know what you want to say
plan what you want to say
write an outline
ask yourself: Does this get across whatever I'm trying to
say?
refine it until it does
know your audience
understand the needs, interests and capabilities of your audience
None
get to the same frequency of your audience
choose your moment
choose a style
make it look good
be a listener
A pragmatic approach
By keeping these fundamental principles in mind during development, you
can write code that's better, faster, and stronger. You can even make it look easy
Every piece of knowledge must have a single, unambiguous, authoritative
representation within a system
DRY don't repeat yourself
- imposed duplication - inadvertent duplication - impatient duplication -
interdeveloper duplication How does duplication arise?
eliminate effects between unrelated things
Benefits
increase productivity
reduce risk
increase reversibility
every decision can be changed!
Coding DRY
keep your code decoupled
avoid global data
avoid similar functions
Single responsibility
must to be easy to test
Domain languages
"The limits of language are the limits of one's world"
- Ludwig Wittgenstein
computer languages influence HOW you think about a problem
program close to the problem domain
The Basic Tools
shell games
use the power of shell commands
grep
None
awk
None
None
xargs
None
None
power editing
one editor
use it very well
use it for all editing things
editor features
configurable
extensible
programmable
increase your cursor movement
automate
None
None
None
None
Debugging
fix the problem, not the blame
None
rubber ducking
None
"select" isn't broken
don't assume it, prove it
What makes a pragmatic programmer? A pragmatic philosophy A pragmatic
approach
You can learn a lot more
Thank you