《Apprenticeship Patterns》书摘+书评

书名:

Apprenticeship Patterns

Guidance for the Aspiring Software Craftsman

作者: David H. Hoover and Adewale Oshineye

Started reading on 2018/10/17; finished reading on 2018/10/19

摘要:

Mastering is more than just knowing. It is knowing in a way that lightens your load.

But for those who have a knack for developing software and enjoy the learning process, software development is a career that can last a lifetime, and it can be a great ride.

You can be better and everything can be improved if you’re prepared to work at it.

“Effort is what makes you smart or talented.”

Failure is merely an incentive to try a different approach next time.

Every improvement can be improved still further.

Take control of and be responsible for our destinies rather than just waiting for someone else to give us the answers.

We are all on the same journey and that the change we seek is in ourselves, not the world.

Have the attitude that there’s always a better/smarter/faster way to do what you just did and what you’re currently doing. Apprenticeship is the state/process of evolving and looking for better ways and finding people, companies and situations that force you to learn those better/smarter/faster ways.

An apprenticeship is a season in your career when your focus is more on your own growth than almost anything else. This is a time for you to delay your ambitions of immediately maximizing your earning potential in order to maximize your learning opportunities.

Wearing The White Belt represents maintaining a beginner’s mind regardless of your expertise.

The technical terms of any profession or trade are incomprehensible to those who have never been trained
to use them. But this is not because they are difficult in themselves. On the contrary they have invariably been
introduced to make things easy.
—Alfred North Whitehead, An Introduction to Mathematics

Tell people the truth. Let them know that you’re starting to understand what they want and you’re in the process of learning how to give it to them. If you reassure them, reassure them with your ability to learn, not by pretending to know something you don’t. In this way, your reputation will be built upon your learning ability rather than what you already know.

“How long will it take to master aikido?” a prospective student asks. “How long do you expect to live?” is the only respectable response.
—George Leonard, Mastery

To become truly good at programming is a life’s work, an ongoing enterprise of learning and practicing.
—Ron Jeffries et al., Extreme Programming Installed

The length of the journey merely multiplies the possibilities that are open to you.

“it is by fixing things that we often get to understand how they work.”

While many programmers could probably find higher-paying jobs in the short term, the money that follows from doing what you love will pay off handsomely in the long run.
-Dave Hoover

To only a fraction of the human race does God give the privilege of earning one’s bread doing what one would
have gladly pursued free, for passion. I am very thankful.
—Frederick Brooks, The Mythical Man-Month

As Pete McBreen wrote, “as soon as a person stops practicing, her mastery fades.” Every day that you are not programming is another step away from becoming a journeyman.

Be the lion’s tail rather than the fox’s head!
—Tractate Avot

Any ambitious apprentice’s natural instinct will be to try to race to the finish line, to become a journeyman as quickly as possible. Remember, though, that you are walking The Long Road, and this journey is not a sprint. Take the time to get the most out of your apprenticeship, and understand that whether you have been programming for three months or five years, you are still very much a beginner when it comes to software craftsmanship.

If we let ourselves, we shall always be waiting for some distraction or other to end before we can really get down to our work. The only people who achieve much are those who want knowledge so badly that they seek it while the conditions are still unfavourable. Favourable conditions never come. —C.S. Lewis, “Learning in War-Time”, The Weight of Glory and Other Addresses

One trait of a master craftsman is a willingness to set aside hard-won expertise in a specific domain in order
to learn something new.

Learning about what we don’t know is often more important than doing things we already know how to do.
—Jim Highsmith, Agile Software Development Ecosystems

Your goal should be to become skilled rather than experienced. The increase in your skill level is the only meaningful testament to the effort you have spent inspecting, adapting, and improving your working habits.

Like the athlete who must endure muscle soreness after strenuous workouts, the software developer endures
the mental dissonance that comes with learning something new.

Software is not a product, it’s a medium for storing knowledge. Therefore, software development is not a product producing activity, it is a knowledge acquiring activity. Knowledge is just the other side of the coin of ignorance, therefore software development is an ignorance-reduction activity.

Software is a new craft—at best we’ve been building software for less than 70 years. So we shouldn’t expect to already have master software craftsmen.

读后记:

很多人认为程序员是吃青春饭的,年龄大一点就面临被淘汰的危险。错!生命不息,匠心不止。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值