Sunday, July 15, 2012

The Passionate Programmer




Marketing

  • Both ends of the technology adoption curve might prove to be lucrative.
  • You can't compete on price.  In fact, you can't afford to compete on price.
  • Supply and demand.  Exploit market imbalances.
  • Don't just know how to program.  Now is the time to think about business domains you invest your time in.
  • Be the worst guy in every band you're in.
  • The people around you affect your own performance.  Choose your crowd wisely.
  • I haven't been given the opportunity...? Seize the opportunity!
  • Be a generalist.  Generalists are rare...and, therefore, precious.
  • Your skill should transcend technology platforms.
  • Be a specialist.  Too many of us seem to believe that specializing in something simply means not knowing about other things.
  • Don't invest on single technology or platform.  Vendor - centric views are typically myopic.
  • Passionate.  Work because you couldn't not work.
Investment
  • Learning.   Don't wait to be told.  Ask!
  • Learn the business you work for.   You can't creatively help a business until you know how it works.
  • Find a teacher.   It's ok to depend on someone.  Just make sure it's the right person.
  • Be a teacher.  To find out whether you really know something, try teach it to someone else.
  • Be a teacher.  Mentors tend not to get laid off.
  • Practice.  Practice at your limits.
  • Implementation.  If you want to feel you own a process, help implement it.
  • Stand on shoulder of Giant.  Mine existing code for insights.
  • Use existing code to reflect on your own capabilities.
Execution
  • It's now.  What can we do?  Right Now?
  • Mind reading.  The mind - reading trick, if done well, leads to people depending on you.
  • Daily report.  Have an accomplishment to report every day.
  • Don't forget whom you work for.  Your managers' successes are your successes.
  • Satisfaction.  Be ambitious, but don't wear it on your sleeve.
  • Get job well done today.  How much more fun could you make your job?
  • What's your value?  Ask, "Was I worth it today?"
  • Beware of being blinded by your won success.
  • Enjoy Maintenance.  Maintenance can be a place of freedom and creativity.
  • Concentrate on 8 working hours per day.  Projects are marathons, not sprints.
  • Learn from failure.  Every wrong note is but one step away from a right one.
  • Stressful times offer the best opportunities to build loyalty.
  • Say "No".  Saying "Yes" to avoid disappointment is just lying.
  • Don't panic.  Heroes never panic.
  • Say it, implement it, demonstrate it.  Status reports can help you market yourself.
Sales
  • Don't ignore feelings.  Performance appraisals are never objective.
  • Communication is important.  Your customers are afraid of you.
  • Communication and documentation.  You are what you can explain.
  • Show up.  Learn about your colleagues.
  • The right language to the right people.  Market your accomplishments in the language of your business.
  • Change the world.  Have a mission.  Make sure people know it.
  • Let people hear your voice.  
  • Have your own brand.  Your name is your name.
  • Google never forgets.
  • Publish your code.  Anyone can use Rails.  Few can say Rails contributor.
  • Be a master.
  • Relationships.  Fear gets between us and the pros.
Leading technologies
  • Outdated technologies.  Your shiny new skills are already obsolete.
  • You are not your job.
  • Endlessness.  Focus on doing, not on being done.
  • Create yourself a product roadmap.  
  • Notice the market.  Watch the alpha geeks.
  • Developer, review themselves.
  • Monkey catching trap.  Rigid values make you fragile.
  • Avoid waterfall career plannings.  
  • Daily improvement.  
  • Independent.