您的位置:首页 > 产品设计 > 产品经理

读书摘记:The Passionate Programmer: Creating a Remarkable Career in Software Development

2011-10-08 23:31 645 查看


1.Gone are the days ofthe “lifer” who would join a big company

and settle in for a fullcareer. This sort of behavior used to be a

sign of dedication. Now it’s a liability.If you’ve worked in only one

place and seen one set of systems, many(smart) managers would see

that as a strike against you when making ahiring decision.

2.Legendary jazz guitarist Pat Metheny has a stock piece of advice for

young musicians, which is “Always be the worst guy in every band

you’re in.”

3.Learn a new programminglanguage. 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 thatdoesn’t employ strong, static

typing. Or, if you’ve been doingobject-oriented programming for

a long time, try a functional language likeHaskell or Scheme. You

don’t have to become an expert. Workthrough enough code

that you truly feel the difference in thenew programming environment.

If it doesn’t feel strange enough, eitheryou’ve picked

the wrong language or you’re applying yourold way of thinking

to the new language. Go out of your way tolearn the idioms of

the new language. Ask old-timers to reviewyour code and make

suggestions that would make it moreidiomatically correct.

4.The way to become ageneralist is to not label yourself with a specific role or technology. We can become typecast in our careers in many ways. To visualizewhat it

means to be a generalist, it can help todissect the IT career landscape into its various independent aspects. I can thinkof five, but an infinite number exists (it’s all in how you personally dividetopics):

? Rung on the career ladder

? Platform/OS

? Code vs. data

? Systems vs. applications

? Business vs. IT

5.And as I’ve started toput in the investment, it builds on itself.

One technique leads to the next, and onebarrier-breaking practice session motivates the next.

We thought our jobs were strictly aboutthose topics that we had devoted ourselves

to. However, how were we supposed tocreatively help the business be

profitable if we didn’t even understand howthe business worked?

6.Go get a book on basicbusiness, and work through it. A trick for

finding a good overview book is to look forbooks about getting a

master’s of business administration (MBA)degree. One such book

that I found particularly useful (andpleasantly short) is The Ten-Day

MBA [Sil99]. You can actually get throughit in ten days. That’s not

a very big investment.

7.It’s OK to depend on someone.Just make sure it’s the right person.

If you want to really learn something, tryteaching it to someone else.

There’s no better way to crystallize yourunderstanding of something

than to force yourself to express it tosomeone else so that they can

understand it. The simple act of speakingis a known elixir for treating

an unclearmind. Speaking to puppets andother inanimate objects as a

method of problem solving is a fairlywell-known element of software

development folklore.

8.When you practicemusic,it shouldn’t sound good. If you always sound

good during practice sessions, it meansyou’re not stretching your limits.

That’s what practice is for. The same istrue in sports. Athletes push

themselves to the limit during workouts sothey can expand those limits

for the real performances. They let theugliness happen behind closed

doors—not when they’re actually working.

9.Use existing code to reflecton your own capabilities.

10. The mind-readingtrick, if done well, leads to people depending on you—an excellent recipe for acareer you can drive the direction of. It’s a skill worth exploring anddeveloping.

11. Your managers’successes are your successes.

12. As a manager, I can tell you that the mostfrustrating thing to deal with is an employee who’s always aiming for the nextrung on the ladder.

13. Be ambitious, but don’t wear it on your sleeve.

14.What about copying? To become a better programmer,anyone will tell you that youshould read good code. Even though they presumably don’t mean it literally (that’sfar too boring), “reading” remains, at heart, the wrong idea: it’s passive.Instead, I think you
have to actively copy, widely and unashamedly. Copyingbuilds muscle memory. You get a feel for the nuance and form of the original—thekind of detail that’s lost in a quick scan. In the case of code, there’s also aless obvious—but significant—benefit. Copying
lets you go further with projectsthat are likely to fail. This can be straightforward transcription of, say, ahash-table implementation

(which made the first interpreter I wrote suck a lot less) ora design that’s just inspired and shaped by the original (as, say, Linux was byMinix).

15. Perceptions are driven by different factors, depending on who the audienceis. Your mother doesn’t much care how well you can

design object-oriented systems, but your teammates might.Understandingwhat’s important in each of your relationships is an important part of buildingcredible perceptions with those you

interact with.

16.You are what you can explain.

17.Remember,you need to make it personal, and to do that you have to remember thenatural human tendency to want to work with other humans—not voicemail, e-mail,or instant messaging but actual people. Try to actually learn about the peopleyou work with. Not
only does it more firmly entrench you into your company,butit’s a more enriching way to live.

18. Google never forgets.Most important, remember that the things you choose to do and associateyourself with have a lasting impact on what your name means to people. And, nowthat so many of our interactions take place via the Internet on public forums,websites,
and mailing lists, a lot of our actions are public record and arecached, indexed, and searchable—forever. Guard your brand with all your might.Protect it from yourself. It’s all you’ve got.

19. Don’t let yourself just be thebest in the bunch. Be the person and do the things that people can’t nottalk about.

20. Your shiny new skills are alreadyobsolete. Many of us are drawn to the IT industry because things arealways changing. It’s an exciting and fresh work environment. There’s always somethingnew to learn. On the flip side, though, is thedisheartening fact that
our hard-earned investments in technology-relatedknowledge depreciate faster than a new Chevy. Today’s hot new item istomorrow’s obsolete junk with a limitedshelf life.

21. We’ve all heard the extrapolations of Moore’s law that say that computing power doublesevery eighteen months

22. The one certain thing is that everything is changing. Theeconomy is shifting. Jobs aremoving offshore and back on. Businesses are trying to figure out how to adapt. Thingshave not reached a steady point in our industry.

23. If you want to hit a moving target, you don’t aim for thetarget itself. You aimforwhere the target is likely to go.

24. Rigid values make youfragile.Pirisig tells this story to illustrate aconcept he calls value rigidity. Value rigidity is whathappens when you believe in the value of something so strongly that you can nolonger objectively question it. Themonkeys valued the
rice so highlythat when forced to make the choice between the rice and captivity or death,they couldn’t see that losing the ricewas the right thing to do at the time.The story makes the monkeys seem really stupid, but most of us have our ownequivalents to
the rice.

25. The important thing to realize is that change isnot only possible in your career but necessary. As a software developer, you would never want to pour yourselfinto developing something your client doesn’t want. Agile methodologies helpprevent you from doing
so. The same is true of your career. Set big goals,butmake constant corrections along the way. Learn from the experience, andchange the goals as you go. Ultimately, a happy customer is what we all want(especially when, as we plan our careers, we are our own
customers)—not acompleted requirement.

26. The secret is to focus on making whatever it isyou’re trying to improve better today than it was yesterday. That’s it. It’s easy. And, as Erik was, it’spossible to be enthusiastic about taking real, tangible steps toward a distantgoal.

27. make your improvements small and incremental but daily.Small

improvements also decrease the cost of failure. If you miss aday,you have a new baseline for tomorrow.

28. But I say to you that when you work you fulfill a part ofearth’s

furthest dream, assigned to you when that dream was born, andin

keeping yourself with labour, you are in truth loving life,and to love

life through labour is to be intimate with life’s inmostsecret.

Kahlil Gibran, The Prophet(预言者,先知)

29. Ultimately, the most important thing I’velearned over the journey that my career in software development has been isthat it’s not what you do for a living orwhat you have that’s important. It’s how you choose to accept these things. It’sinternal. Satisfaction,
like our career choices, is something that should besought after and decided upon with intention.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐