Passion
Tips from the passionate programmer book
How to be passionate about your job
But before we know how to gain a passion…
Are you passionate about your job already?
The question that I should ask
myself every day
The passionate programmer book
 This book is about creating a remarkable career in software
development. In most cases, remarkable careers don’t come by
chance. They require thought, intention, action, and a willingness to
change course when you’ve made mistakes. Most of us have been
stumbling around letting our careers take us where they may. It’s time
to take control. This revised and updated second edition lays out a
strategy for planning and creating a radically successful life in
software development.
About the author
Chad Fowler is an internationally known software developer, trainer,
manager, speaker, and musician. Over the past decade he has worked with
some of the world’s largest companies and most admired software
developers.
Chad is VP of Engineering at LivingSocial. He is co-organizer of RubyConf
and RailsConf and author or co-author of a number of popular software
books, including The Passionate Programmer: Creating a Remarkable
Career in Software Development.
Lead or blead?
The risk-reward trade-off is an important part of making intentional choices about which technologies and domains to invest in
 Make a list of early, middle, and late adoption technologies based on today’s market. Map them
out on paper from left to right;
 The left is bleeding edge, and the right is filled by technologies that are in their sunsets. Push
yourself to find as many technologies in each part of the spectrum as possible. Be as granular as
possible about where in the curve they fall in relation to one another.
Coding Don’t Cut it Anymore
You are not going to be able to sit back and simply master a
programming language and let the business takes care of the
business stuff, if all they needed a code robot, they could hire
someone from another company to do the job
 It’s not enough to think about what technologies you’re going to invest in. After all, the technology
part is a commodity, right?
 You’re not going to be able to sit back and simply master a programming language or an
operating system, letting the business people take care of the business stuff.
 If all they needed was a code robot, it would be easy to hire someone in another country to do that
kind of work. If you want to stay relevant, you’re going to have to dive into the domain of the
business you’re in. In fact, a software person should understand a business domain not only well
enough to develop software for it but also to become one of its authorities.
Invest in Your Intelligence
I haven’t be give the opportunity…?
Seize the opportunity
 Learn a new programming language. But, don’t go from Java to C# or from C
to C++. Learn a new language that makes you think in a new way. If you’re a
Java or C# programmer, try learning a language like Smalltalk or Ruby that
doesn’t employ strong, static typing. Or,
 If you’ve been doing object-oriented programming for a long time, try a
functional language like Haskell or Scheme. You don’t have to become an
expert. Work through enough code that you truly feel the difference in the
new programming environment. If it doesn’t feel strange enough, either
you’ve picked the wrong language or you’re applying your old way of
thinking to the new language. Go out of your way to learn the idioms of the
new language.
 Ask old-timers to review your code and make suggestions that would make
it more idiomatically correct
Don’t Listen to Your Parents
Fear-drive advice is geared toward not losing, thinking about not losing is not the way to win, winners take risks
 What are your biggest career fears? Think about the last few career choices you made. They don’t
have to be big decisions (after all, if you’re making fear-driven choices, your decisions likely aren’t
big anyway).
 They could be whether you took on special assignments or whether you applied for a job change
or promotion.
 Make a list of these choices, and, for each one, force yourself to make an honest assessment: how
much was your decision driven by fear? What would you have done if fear had not been a factor? If
the decision was indeed fear-driven, how can you reverse it or find a similar opportunity in which to
make the less fear-driven choice?
Be a Generalist
Generalists are rare and, therefore , precious
Your skills should go beyond technology platforms
Be a specialist
Too many of us seem to believe that specializing in something simply means not knowing about other things.
Love it or Leave It
You have to passionate about your work if you want to be great at work, if you don’t care, it will show
Learn to fish
Learn how businesses really work
Find a mentor
It’s OK to depend on someone. Just make sure it’s the right person.
Be a mentor
If you want to really learn something, try teaching it to someone else. There’s no better way to crystallize your understanding of
something than to force yourself to express it to someone else so that they can understand it.
On the shoulders of Giants
Mine existing code for insights
Automate yourself into a job
Automation is part of the DNA of our industry.
Daily hit
Have an accomplishment to report every day
Remember who you work for
In a well-structured environment, the goals of your manager are the goals of your team. Solve your manager’s problem, and
you’ve solved a problem for the team.
Be where you are at
Be ambitious, but don’t wear it on your sleeve.
Have you ever stopped to consider exactly how much you cost to the company you work
for? I mean, you know your salary. That part is easy. What about benefits, management
overhead, training, and all that other stuff that doesn’t necessarily show up on your
paycheck?
Learn how to fail
If your software hasn’t been complaining to you regularly, you might not know where
the dangerous nooks and crannies are.
The quickest path to missing your commitments is to make commitments that you know you can’t meet

The passionate programmer

  • 1.
    Passion Tips from thepassionate programmer book
  • 2.
    How to bepassionate about your job
  • 3.
    But before weknow how to gain a passion…
  • 4.
    Are you passionateabout your job already? The question that I should ask myself every day
  • 5.
    The passionate programmerbook  This book is about creating a remarkable career in software development. In most cases, remarkable careers don’t come by chance. They require thought, intention, action, and a willingness to change course when you’ve made mistakes. Most of us have been stumbling around letting our careers take us where they may. It’s time to take control. This revised and updated second edition lays out a strategy for planning and creating a radically successful life in software development.
  • 6.
    About the author ChadFowler is an internationally known software developer, trainer, manager, speaker, and musician. Over the past decade he has worked with some of the world’s largest companies and most admired software developers. Chad is VP of Engineering at LivingSocial. He is co-organizer of RubyConf and RailsConf and author or co-author of a number of popular software books, including The Passionate Programmer: Creating a Remarkable Career in Software Development.
  • 7.
    Lead or blead? Therisk-reward trade-off is an important part of making intentional choices about which technologies and domains to invest in
  • 8.
     Make alist of early, middle, and late adoption technologies based on today’s market. Map them out on paper from left to right;  The left is bleeding edge, and the right is filled by technologies that are in their sunsets. Push yourself to find as many technologies in each part of the spectrum as possible. Be as granular as possible about where in the curve they fall in relation to one another.
  • 10.
    Coding Don’t Cutit Anymore You are not going to be able to sit back and simply master a programming language and let the business takes care of the business stuff, if all they needed a code robot, they could hire someone from another company to do the job
  • 11.
     It’s notenough to think about what technologies you’re going to invest in. After all, the technology part is a commodity, right?  You’re not going to be able to sit back and simply master a programming language or an operating system, letting the business people take care of the business stuff.  If all they needed was a code robot, it would be easy to hire someone in another country to do that kind of work. If you want to stay relevant, you’re going to have to dive into the domain of the business you’re in. In fact, a software person should understand a business domain not only well enough to develop software for it but also to become one of its authorities.
  • 12.
    Invest in YourIntelligence I haven’t be give the opportunity…? Seize the opportunity
  • 13.
     Learn anew programming language. But, don’t go from Java to C# or from C to C++. Learn a new language that makes you think in a new way. If you’re a Java or C# programmer, try learning a language like Smalltalk or Ruby that doesn’t employ strong, static typing. Or,  If you’ve been doing object-oriented programming for a long time, try a functional language like Haskell or Scheme. You don’t have to become an expert. Work through enough code that you truly feel the difference in the new programming environment. If it doesn’t feel strange enough, either you’ve picked the wrong language or you’re applying your old way of thinking to the new language. Go out of your way to learn the idioms of the new language.  Ask old-timers to review your code and make suggestions that would make it more idiomatically correct
  • 14.
    Don’t Listen toYour Parents Fear-drive advice is geared toward not losing, thinking about not losing is not the way to win, winners take risks
  • 15.
     What areyour biggest career fears? Think about the last few career choices you made. They don’t have to be big decisions (after all, if you’re making fear-driven choices, your decisions likely aren’t big anyway).  They could be whether you took on special assignments or whether you applied for a job change or promotion.  Make a list of these choices, and, for each one, force yourself to make an honest assessment: how much was your decision driven by fear? What would you have done if fear had not been a factor? If the decision was indeed fear-driven, how can you reverse it or find a similar opportunity in which to make the less fear-driven choice?
  • 16.
    Be a Generalist Generalistsare rare and, therefore , precious Your skills should go beyond technology platforms
  • 17.
    Be a specialist Toomany of us seem to believe that specializing in something simply means not knowing about other things.
  • 19.
    Love it orLeave It You have to passionate about your work if you want to be great at work, if you don’t care, it will show
  • 20.
  • 21.
  • 22.
    Find a mentor It’sOK to depend on someone. Just make sure it’s the right person.
  • 23.
    Be a mentor Ifyou want to really learn something, try teaching it to someone else. There’s no better way to crystallize your understanding of something than to force yourself to express it to someone else so that they can understand it.
  • 24.
    On the shouldersof Giants Mine existing code for insights
  • 25.
    Automate yourself intoa job Automation is part of the DNA of our industry.
  • 26.
    Daily hit Have anaccomplishment to report every day
  • 28.
    Remember who youwork for In a well-structured environment, the goals of your manager are the goals of your team. Solve your manager’s problem, and you’ve solved a problem for the team.
  • 29.
    Be where youare at Be ambitious, but don’t wear it on your sleeve.
  • 30.
    Have you everstopped to consider exactly how much you cost to the company you work for? I mean, you know your salary. That part is easy. What about benefits, management overhead, training, and all that other stuff that doesn’t necessarily show up on your paycheck?
  • 31.
    Learn how tofail If your software hasn’t been complaining to you regularly, you might not know where the dangerous nooks and crannies are.
  • 32.
    The quickest pathto missing your commitments is to make commitments that you know you can’t meet