《The Passionate Programmer》书摘

书名:The Passionate Programmer
Creating a Remarkable Career in Software Development
作者:Chad Fowler

阅读时间:2018/10/30-2018/11/13

书摘+评论:

Nobody becomes a musician because they want to get a job and lead a stable and comfortable life. The music industry is too cruel an environment for this to be a feasible plan. People who become professional musicians all want to be great. At least when starting out, greatness is binary in the music world. A musician wants to either be great (and famous for it!) or not do it at all.

Our companies don’t employ us because they love us. They never have, and they never will. That’s not the job of a business. Businesses don’t exist so we can have a place to go every day. The purpose of a business is to make money. To excel at a company, you’re going to have to understand how you fit into the business’s plan to make money.

If you think of your career as a business (which it is), your “product” is made up of the services you have to offer. What are those services? Who are you going to sell them to? Is demand for your services going to grow or decline over the coming years? How big of a gamble are you willing to take on these choices?/*把工作当成事业,把自己能提供的服务当作一种产品*/

As unintuitive as that may sound, if you’re worried about losing employment to offshoring, one strategy would be to avoid the types of work that offshore companies are doing. Offshore companies are doing work that is in high demand. So, focusing on niche technologies is a strategy that, although not necessarily making the competition less fierce (there are fewer jobs to go around), might change the focus of competition from price to ability. That’s what you need. You can’t compete on price, but you can compete on ability./*不拼价格,拼能力*/

Research current technical skill demand. Use job posting and career websites to find out which skills are in high demand and in low demand./*通过目前的职位需求来了解什么技能比较热门,什么技能比较冷门*/

The same is true of business domains. You should put the same level of care into selecting which industry to serve as you put into selecting which technologies to master。/*选择技术重要,选择要从事的行业同样重要*/

Thinking about not losing is not the way to win! Winners take risks. Gone are the days of the “lifer” who would join a big company and settle in for a full career. 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 a hiring decision. I’d personally rather hire someone who has seen a variety of successes and failures in different environments than someone who has known only one way of doing things./*一个人从事的行业,服务的公司越多元化,技能、思维也会随之多元化。从一而终,在单一公司待的时间太久,并不见得是件好事*/

Generalists are rare...and, therefore, precious./*通才比较少见,因此比较抢手*/

While managing an application development group, I once asked one of my employees, “What do you want to do with your career? What do you want to be?” I was terribly disappointed by his answer: “I want to be a J2EE architect.” I asked why not a “Microsoft Word designer” or a “RealPlayer installer?”

This guy wanted to build his career around a specific technology created by a specific company of which he was not an employee. What if the company goes out of business? What if it let its now-sexy technology become obsolete? Why would you want to trust a technology company with your career?

Somehow, as an industry, we fool ourselves into thinking market leader is the same thing as standard. So, to some people, it seems rational to make another company’s product part of their identities. Even worse, some base their careers around non-market-leading products—at least until their careers fail so miserably that they have no choice but to rethink this losing strategy./*不能把全部的赌注都压到某个公司提供的某个产品上面。皮之不存毛将焉附?*/

What I do know is that I’m a serial opportunist. When I see something interesting and exciting to me, I jump in and do whatever it takes to succeed. Usually this means learning new skills and picking up new capabilities. Some may find it a drag to build new skills up, but for some reason I love learning how to do new things. After all, new skills let you do new things. And I’ve never defined myself by my skills. Instead, I’ve always defined myself by what I have done and what I want to do next. Skills are just a way to get there./*技能只是借以达到目标的一个途径。有时候为了一个新的目标,我们必须坦然地学习新的技能。*/

In business, ideas and even talent are a dime a dozen. It’s the blood, sweat, tears, and money you pour into a product that make it really worth something./*职场缺的不是思想家,是实干家。*/

Regardless of your line of business, whether it be manufacturing, health care, nonprofit, or an educational institution, it is still a business. And, business is itself a domain of knowledge that one can—indeed, must—learn./*不论一个人从事什么样的行业,处于什么岗位,都有必要了解公司如何运转。*/

When you teach, you have to answer questions that may have never occurred to you. Through teaching, we clean the dusty corners of our knowledge as they are exposed to us./*在传授知识的同时,我们可以发现自己的不足。*/

Most modern programming languages offer rich and powerful libraries in all of these areas, but software developers tend to learn a small subset, with which they can less efficiently write the same code they could have written if they had mastered the full set of tools available to them.

TopCoder.com is a long-standing programming competition site.

Studying the work of masters is an essential part of becoming a master.

We can mine a huge body of existing code for patterns and tricks.

A positive side effect of reading code is that you will learn more about what already exists./*在解决一个问题之前先看一看有没有现成的答案。*/

I remember the sensationalism surrounding job loss in the United States in the 1980s. Back then, not only were we blaming other countries, but we were blaming machines and, specifically, computers. Huge robotic arms were being installed in manufacturing plants. These robotic arms could outperform humans in both throughput and accuracy to a point that it was not even worth comparing them. Everyone was upset—everyone, that is, except for the people who created the robotic arms.

An entrepreneurial ex-roommate of mine who was also a very close friend (Raj Hajela), my wife (Vidya), and I brainstormed ideas trying to figure out where there were existing unmet needs in the market. We wanted to explore e-commerce opportunities but did not want to sell anything that was a commodity product. We had a real interest and background in art and liked the fact that every piece of art was unique in nature. My uncle was a lifelong artist who had struggled to make a living. We did some research and concluded that this was the case with most artists. We then decided to solve this problem by creating a platform to help artists publicize and promote their works and keep in touch with their patrons. With this mission in mind, we launched Passion4Art.com and began the hard work of getting artists to join our website and put their digital images of their paintings online. After we had signed up our first 1,000 artists and they had set up their own websites, we believed that we were providing something of value and started looking for outside funding.

Your presence on the job is, to the company, like a pebble in a bucket of water. Sure, the water level is higher as a result.
You get things done. You do your part. But, if you take the pebble out of the bucket and stand back to look at the water, you can’t really see a difference.

If I have a team member who has the strength to say “no” when that’s the truth, then I know that when they say “yes,” they really mean it.

Larry Wall wrote that the traits of a great programmer are laziness, impatience, and hubris.

If you kick ass and no one is there to see, did you really kick ass? Who cares? No one.

You are always going to be measured based on someone else’s perception of you.

As a programmer today, you need to think beyond the next promotion or even your current place of employment. Set your sights higher. Don’t think of yourself as a programmer at a specific company—after all, it’s not likely that you’ll be at the same
place forever—but as a participating member of an industry. You are a craftsperson or an artist.

Most people undersell themselves. You have something to teach. You will never feel 100 percent ready, so you might as well start now.

Your name is your brand.

Open source contributions demonstrate skill. If you’re making real code and contributing to a real project, it’s a lot better on your résumé than just saying you know a technology.

The really good people won’t mind if you want to know them. People like to be appreciated, and they like to talk about the topics they are passionate about. The fact that they are the professional or the guru or the leader or the renowned author doesn’t change that they’re human and like to interact with other humans.

Pick one of your favorite pieces of software and e-mail its creator. Start by thanking him or her for the software. Then make a suggestion, ask a question, or make some other attempt at establishing a human connection with them. Solicit a response of some sort. If the software is free or open source, offer to help in some way.

Computing power doubles. With technology progressing so quickly, there is too much happening for any given person to keep up. Even if your skills are completely current, if you’re not almost through the process of learning the Next Big Thing, it’s almost too late. You can be ahead of the curve on the current wave and behind on the next.

In his book The Miracle of Mindfulness, Thich Naht Hanh presents a suggestion: the next time you have to wash the dishes, don’t wash them to get them done. Try to enjoy the experience of washing the dishes. Don’t focus on finishing them. Focus on the act of washing them itself.
Doing the dishes is a mundane task that almost nobody savors. Software developers have a lot of similar drudgery to get through in the average day, such as time tracking and expense reporting, for example. The next time you have to do a task like this, see whether you can find a way to focus on the task as you do it instead of anxiously rushing to finish it.

The secret is to focus on making whatever it is you’re trying to improve better today than it was yesterday. That’s it. It’s easy.
 

The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life) by Chad Fowler Paperback: 200 pages Publisher: Pragmatic Bookshelf (May 28, 2009) Language: English ISBN-10: 1934356344 ISBN-13: 978-1934356340 Format: PDF Description: Success in today's IT environment requires you to view your career as a business endeavor. In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product. The choices you make about which technologies to focus on and which business domains to master have at least as much impact on your success as your technical knowledge itself--don't let those choices be accidental. We'll walk through all aspects of the decision-making process, so you can ensure that you're investing your time and energy in the right areas. You'll develop a structured plan for keeping your mind engaged and your skills fresh. You'll learn how to assess your skills in terms of where they fit on the value chain, driving you away from commodity skills and toward those that are in high demand. Through a mix of high-level, thought-provoking essays and tactical "Act on It" sections, you will come away with concrete plans you can put into action immediately. You'll also get a chance to read the perspectives of several highly successful members of our industry from a variety of career paths. As with any product or service, if nobody knows what you're selling, nobody will buy. We'll walk through the often-neglected world of marketing, and you'll create a plan to market yourself both inside your company and to the industry in general. Above all, you'll see how you can set the direction of your career, leading to a more fulfilling and remarkable professional life.
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通;、 3本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看ReAdmE.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值