The Passionate Programmer Igor Morozov By Chad Fowler.

Post on 30-Dec-2015

222 views 2 download

Tags:

transcript

What the book is about? Not about struggling to maintain the level of

mediocrity required not to get fired; Strategy for creating a radically successful career in

software development; Cultivating the desire to live a remarkable life; 43 pieces of advice, supplied with examples and

comparisons between music and IT;

About author

Chad Fowler

Had an unfinished musician degree;

Brief career of a saxophonist;

Then software developer and project manager;

Made a trip to India for recruiting people;

Currently a Ruby developer

Don’t build your career around a specific technology

Company, that owns this technology, may go out of business;

The technology itself may become obsolete; “Market leader” and “standard” are not synonyms; So invest your time in multiple technologies, better

try out a dozen of them and form your tastes;

Be the worst The people around you affect your performance.

Choose your crowd wisely; When choosing a team to work with, try to be the

worst by level; Due to instinctual herd behavior, people fit in with

superior teammates; Plus, you’ll find out that you’re not as bad as you

thought and this will give you additional inspiration

Don’t listen to your parents Parents usually consider safe variants for their

children: just earn money and stay away from getting the sack;

A generation ago job certainly wasn’t fun, now it can be;

In our industry it’s OK to change jobs;

Practice, Practice, Practice

Explore your language’s APIs and function libraries

Study new programming areas

Practice in writing elegant code (codehunter.com)

Participate in competitive programming (topcoder.com)

Be a Mind Reader Listen carefully to manager’s thoughts of which

features to add to the project; Or anticipate them if you can; However, don’t implement mind-read feature if it

will somehow limit the system; Or if it requires much of the company’s resources;

Learn to love maintenanceWhy is maintenance work not attractive? Lack of funding Dealing with bad legacy codeAdvantages of maintenance: Just a few responsibilities Freedom to refactor code and unexpectedly

implement something new; Ability to directly interact with users;

Stop working after-hours It’s better to think “I have only 8 hours! Go, go,

go!” Having more time to work reduces the value of

time, which results in laziness at work and reduced productivity;

The end of a working day should be a strict deadline for the piece of work, otherwise it nags the worker afterwards;

Learn how to make mistakes Raise the issue as soon as you know about it; Take the blame for it; Offer a solution (or a way to find a solution); Don’t refuse help out of pride; Remember: you’re showing your true face when

dealing with errors.

Learn when to say ‘No’ Saying “yes” to avoid somebody’s disappointment

is as good as lying; And at work lying tend to cost much money for the

company; Refusing to do the work with objective reasons or

at least saying “I don’t know” is much better; Although you should keep balance between “yes”

and “no”;

Other advice: at work Remember who you work for and match your goals

to his/her Live in the present, don’t think about promotion as

an ultimate goal; Think about how much money you deliver to your

company vs. how much you cost Don’t feel irreplaceable Don’t panic

Other advice: beyond work Know your business domain Invest in your intelligence Mine existing code for patterns and tricks; Be a generalist and a specialist; Find a mentor and be a mentor to someone

Thanks for attention!