Book excerpt: The Passionate Programmer: Creating a Remarkable Career in Software Development

Source: Internet
Author: User

1. Gone are the days ofthe "lifer" who wocould join a big company
And settle in for a fullcareer. This sort of behavior used to be
Sign of dedication. Now it's a liability. If you're 've worked in only one
Place and seen one set of systems, secure (smart) managers wocould see
That as a strike against you when making ahiring demo.
 
2. Legendary jazz guitarist Pat Metheny has a stock piece of advice
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
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
Language like Smalltalk or Ruby thatdoesn' t employ strong, static
Typing. Or, if you 've been doingobject-oriented programming
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
The new language. Ask old-timers to reviewyour code and make
Suggestions that wocould 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 several ways. To visualizewhat it
Means to be a generalist, it can help todissect the IT career landscape into its varous 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 investigation, 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 converted Ted 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
Finding a good overview book is to look forbooks about getting
Master's of business administration (MBA) degree. One such book
That I found maid (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
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 fixing 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 youshoshould 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 should red 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.
 
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. 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 much 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 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. usage 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 extrapoations 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 define strate aconcept he CILS 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
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
The rice.
 
25. the important thing to realize is that change isnot only possible in your career but necessary. as a software developer, you wowould 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 labor, you are in truth loving life, and to love
Life through labor is to be intimate with life's inmostsecret.
Kahlil Gibran, The Prophet (Prophet, 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 shoshould besought after and decided upon with intention.
 
 
 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.