精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

David Thomas:程序員要快樂的思考

原創
開發
程序員的工作似乎是無比苦悶的,整天泡在枯燥的代碼堆里。51CTO在2010年終選題上有幸專訪了敏捷宣言創始人之一,《程序員修煉之道》與《Programming Ruby》的作者David Thomas,請他談談他的快樂編程之道。

【51CTO獨家特稿】一個國外的技術大牛,一開始其實只是為了解決具體的技術問題而鉆研技術。但是經歷了一段時間的鉆研,程序員就有可能從中體會到樂趣,真正做到快樂的寫代碼,快樂的思考。David Thomas就是這樣一位快樂的程序員。

人物簡介

[[18319]]

Dave Thomas,敏捷宣言創始人之一,《程序員修煉之道》與《Programming Ruby》的作者。他有著三十余年的編程經驗,現在主要經營Pragmatic Programmer出版社,閱書無數。同時,Dave每天都仍然在編寫代碼。

1、你最開始從事開發的時候,有什么技術理想么?這個技術理想在之后的年歲中有過改變么?

我最開始編程的時候,我認為那時的自己還談不上有什么技術理想——這是很久之后才有的。

我在16歲的時候,準備在高中學習數學。我當時還在英國念初中,我們一群孩子提前一年完成了學業。學校想找點事情給我們做,就建議我們去一個本地的技術學校(類似中專)上一門計算機編程的課程。在那個時候,你通過300波特調制解調器、電傳打字機和紙帶機和計算機進行交互。在這門課上了一個月左右的時候,我忽然發現了我真正喜愛的東西。每天下課之后,我用好幾個小時在紙帶上編寫Basic程序,再上傳到大型主機上。我甚至進行了我的第一次元編程——由于我們被限制只能在主機上保存5個程序,我于是編寫了一個可以儲存其他程序的Basic程序,就好象一個迷你的文件系統。

經歷過這些之后,我意識到了我對編程的渴望。我在接下來的大學選科過程中沒有再看任何的數學課,而是搜索有沒有計算機科學的課程。幸運的是,帝國理工學院剛剛開辦了一門計算機科學的課程,我就這么進去了。這門課程可能是這個領域最好的入門指導了:課程本身相當深入,課外練習都十分實用,而且十分具有挑戰性。基本上,我在學校期間靠編程打工的錢就把我的學費全付清了。

畢業之后我計劃讀博士,不過一個初創企業把我拐走了。我覺得這其實是挺幸運的,因為借助這次創業的機會,我認識到了軟件業務的另一面:客戶,項目,以及正確的做事。公司很小,但都是非常聰明的人,所以只要是能找到的活兒,我們什么都做。在短短數年間,我在各個方面積累了大量的經驗。

所有這一切都是由熱情推動的,而談不上什么技術理想。我只是做我喜歡做的事情。

不過,久而久之,我開始意識到工作中的“模式”(patterns)——在軟件開發工藝的深層隱藏的那些真理。最終,我和Andy Hunt將其中的一些模式描述成文字,記錄在我們的《程序員修煉之道》當中。

不過,這仍然算不上什么“技術理想”。你這個問題很好,它引發了我的思考。思考的結果就是,如果“技術理想”的含義是“我想要做這個或那個”,那么我并沒有任何技術理想。我的理想很簡單:做我高興做的事。我想要繼續寫代碼,我想要用代碼解決人們的問題。我想要繼續磨練我的手藝,我想要在軟件開發的新領域中測試和體驗。我知道這有點自私,不過我想要繼續“尋歡作樂”:)

2、你有沒有感到某個時刻,你忽然“頓悟”了編程?如果有的話,能描述一下當時發生的事情嗎?

當然有過忽然靈光一現的時候。有些時候,只是比較低層次的。我還記得當我在PDP-11計算機上編程的時候,遇到了一個將二進制數字轉化為八進制ASCII碼的庫子程序。很明顯,這是任何一個程序員都能夠寫出來的功能。不過,我遇到的這個程序被編寫的十分“優雅”:這位程序員使用了PDP標志寄存器(flag registers)和旋轉運算(rotate operations)的一些深層知識,用短短四、五行匯編就完成了這個功能。這并非是我印象中最短小的代碼,但我當時領悟到了:想要變得優雅,必須深入理解你編程的環境。大多數開發者只是對他們使用的工具有一個表層的理解,所以他們生產的代碼四平八穩。只有那些愿意花費時間深入學習,去了解底層都在做什么的開發者們,才能生產出優雅的、革命性的代碼。

此外,也有一些技術之外的“頓悟”。在我職業生涯的早期,我有一次和我們創業的老大一起去見一個客戶。這位客戶是一個很大的軟件公司的擁有人,是我們這個產業中一個重要的人物——更重要的是,他手上有我們需要的項目。在商談的過程中,我發現客戶想要我們做的東西根本做不成,因為他漏掉了一些技術問題。當時的我很傻很天真,就直接跟他說這個不行。一時之間,屋子里陷入寂靜,而這次商談也很快結束了。回到辦公室,我想,我肯定要被炒魷魚了,因為我頂撞了客戶。不過沒想到的是,我的老板教了我一件事,這使我終身受益。老板說,我道出事實這件事沒有錯。如果我們發現有一個問題將會導致項目無法進行,那么如果我們仍然接下這個項目,就是沒有職業道德。不過,問題在于我提出意見的方式:如果一個人的想法有錯誤,不要直接跟他說“這是錯的”。你應該做的是想辦法引導他自己發現問題所在。

其實這些事請我現在仍然不是特別擅長。我仍然會因為項目的技術挑戰而撓頭,也經常會忘記了人的因素。不過,那些“頓悟”的瞬間的確存在。

3、你的編程生涯中,最令你印象深刻的事情是什么?如果你能夠給那時的自己提供一些建議,你會說些什么?

在西方,我們有這樣一條諺語:“祝你生活在有趣的時代(May you live in interesting times)”(譯注:據傳這是一句古老的中國詛咒,由一位英國駐中國的外交官傳回西方,后變成西方的祝詞。中文原文已不可考,有說法是“寧為太平犬,不做亂世人”)。這是一條溫柔的詛咒,因為有趣的時代同時也意味著艱難的時代。我覺得我們現在正生活在這條詛咒當中。沒有任何一個時代比我們現在所處的時代更加有趣,同時也更加令人混亂。新的技術,新的技巧,新的語言,新的期待。所以我最大的希望是,我編程生涯中最美好的事情還沒有到來。我希望最令我印象深刻的事情發生在未來。我的工作,我的熱情,都在盡可能的經歷更多的事情,所以最令我印象深刻的事情一定會發生在未來。

以下為51CTO采訪英文原文

1. Aspiration

When you first started programming, what was your technical aspiration? Has your aspiration changed over the years?

I don't think I had a technical aspiration when I first started programming—that kind of thing came a lot later.

When I was 16, I was planning to study mathematics at college. I was still in secondary school in England, and a group of us had finished all our required classes a year early. The school was looking for things for us to do, and suggested we might be interested in attended a class on computer programming at the local technical college (a vocational school). This was back when you interacted with computers using 300 baud modems, teletypes, and paper tape. And sometime during the first month of that class, I realized that I'd found something I truly loved. I spent hours after school slowly typing Basic programs on to paper tape before uploading them to a mainframe. I even did my first metaprogramming—we were only allowed to store 5 programs up on the mainframe, so I wrote a Basic program that stored my other Basic programs inside itself, a kind of mini filesystem.

After that experience, I knew I wanted to write code. I stopped looking at university mathematics courses and instead looked for computer science. And I was lucky—Imperial College in London had just started a course, and I got in. It really was the best possible introduction to the field—the course itself was deep, and the work outside the course was practical and challenging. I ended up paying my way through school with programming jobs.

After I graduated, I started working on a PhD, but got tempted away by a start-up. I think this was also a very lucky move, because I suddenly learned the other side of the software business—clients, projects, and doing things right. The company was very small and full of very smart people, so we'd do just about any work we could find. I got an incredible amount of experience in a very broad range of topics in just a few years.

All of this was driven by a passion, not by any kind of technical aspiration. I was just doing what I enjoyed doing.

But, over time,I also started to realize that there were patterns in the work—underlying realities in the craft of developing software. Eventually, Andy Hunt and I captured some of these in our book The Pragmatic Programmer.

But I still don't think these count as "technical aspirations." You question was a good one, and it made me think. In the end, I don't think I have a technical aspiration, if the phrase means "I hope I do this or that technical thing." Instead, my aspiration is simple—I want to continue to do what I enjoy doing. I want to continue to write code, and to solve people's problems using code. I want to continue to improve at my craft, and to experiment with and experience new areas of software development. I know it's selfish, but I want to continue to have fun!

2. Insight

Have you ever experienced the change from "have no insight" to "have insight" in programming? Has there been a day on which you suddenly realised "oh, this IS the right way to programming"? If so, can you describe what grabbed you on that day?

I have definitely had those moments where suddenly something snaps into place. Sometimes these are really low-level technical moments. I remember when I was programming PDP-11 computers, I came across a library subroutine that converted a binary number into its ASCII octal representation. Of course, this would have been a function that any programmer could write. But this particular developer had done it *elegantly*, using a deep knowledge of the PDP's various flag registers and rotate operations to do the whole thing in just four or five lines of assembler. It wasn't the small size of the code that I remember—the insight was that you had to really understand the environment you were using if you wanted to be elegant. Most people have a surface understanding of the tools they use, and they produce solid, average code as a result. But the people who spend the time to dig deep, and to learn what's really going on—those are the people who produce elegant and revolutionary answers.

I also experienced nontechnical insights. I remember early on in my career I was at a client meeting with the owner of the startup I worked for. The client was the owner of a large software company; an important person in our industry, and, more importantly, someone with a project that we really needed :)  During the meeting, it became clear that what he wanted us to write wouldn't work—he'd overlooked some technical problems. Being very young and very naive, I told him this. The room went silent, and the meeting ended very quickly after that. On our way back to our office, I expected to get fired for disagreeing with a client. But, instead, my boss taught me a lesson that I still use. He said that I was right to speak up. He said that if there was a problem that would stop the project working, we'd be unethical if we went ahead. But then he said that I was wrong to speak up the way I did—if there's a problem with a someone's ideas, don't just say "that's wrong." Instead, try to guide them to find the problem for themselves.

I'm not very good at this—I still get caught up in the technical challenges of projects, and I too often forget the human side, But the lesson—the insight—is still valid.

3. Back to the past

What is the most memorable thing in your programming career? If you can give suggestions to yourself at that time, what would you say?

In the West, we're told that there is a saying: "May you live in interesting times."  it's meant as a mild curse—interesting times are difficult times. And I think we're all living with that curse right now. Times have never been more interesting, or more confusing. New technologies, new techniques, new languages, and new expectations surround us. So I very much hope that the best part of my programming career has not yet happened. I hope that the most memorable thing I'll do lies in the future. My job, my passion, is to experience as much as I can so that I maximize the chances that this will happen.
 

【編輯推薦】

  1. 程序員的十個層次 你屬于哪一層?
  2. 成為完美程序員的10種品質
  3. 鐘勝輝談PHP發展的現狀和前景
  4. 程序員,你適合做一個項目經理嗎?
  5. 是什么成就了一名“高級”程序員?
責任編輯:彭凡 來源: 51CTO
相關推薦

2014-07-22 10:12:33

程序員

2013-07-25 09:47:40

程序員職業發展

2013-07-09 09:11:50

程序員

2015-11-24 16:33:05

程序員思考分享

2016-03-02 10:49:08

程序員快樂

2020-09-26 21:23:26

程序員代碼編程

2012-11-08 11:19:38

2013-08-01 10:03:41

程序員

2020-07-10 09:55:15

程序員技能開發者

2011-12-23 09:16:19

2015-07-27 10:51:55

程序員快樂

2015-04-30 10:51:37

程序員高效快樂

2015-04-30 08:41:04

程序員高效健康

2011-05-31 10:50:36

程序員

2012-11-12 10:46:37

2013-08-20 09:33:59

程序員

2009-05-13 11:40:19

編程語言開發語言Perl

2023-11-27 09:25:42

程序員思維

2011-12-20 10:02:01

ASP.NET

2011-05-13 14:34:02

程序員
點贊
收藏

51CTO技術棧公眾號

久久精品亚洲精品| 小小影院久久| 国产98色在线|日韩| 精品中文字幕在线2019| 久久久久无码国产精品一区李宗瑞| 久久久久黄久久免费漫画| 国产99精品国产| 日韩毛片高清在线播放| 欧美在线免费视频| 久久午夜精品视频| 91蝌蚪精品视频| 色综合激情久久| 久久99国产精品一区| 天堂v在线观看| 美女精品自拍一二三四| 欧美激情精品久久久久久黑人| 国产又爽又黄无码无遮挡在线观看| 成人黄色毛片| 天天亚洲美女在线视频| 老司机av福利| 国产最新视频在线| 成人午夜视频在线观看| 国产精品一区二区久久国产| 国产无遮挡又黄又爽在线观看| 欧美日韩中文一区二区| 亚洲成人久久电影| 99九九99九九九99九他书对| 无遮挡在线观看| 一区二区三区自拍| 亚洲欧美丝袜| 蜜桃视频在线免费| 成人在线综合网站| 92国产精品视频| 91丨九色丨海角社区| 亚洲黄色视屏| 色综合天天狠天天透天天伊人| 东京热无码av男人的天堂| 三级小说欧洲区亚洲区| 精品国产免费人成电影在线观看四季 | www毛片com| 精品1区2区3区4区| 久热精品在线视频| 天天做夜夜爱爱爱| 欧美疯狂party性派对| 亚洲色图综合久久| 国产麻豆天美果冻无码视频| julia中文字幕一区二区99在线| 欧美精品自拍偷拍| 午夜两性免费视频| 成人av集中营| 欧美视频在线一区二区三区 | 久久久成人av毛片免费观看| 精品福利樱桃av导航| 无码专区aaaaaa免费视频| 神马午夜伦理不卡 | 亚洲成人a级片| 欧美日韩精品高清| www.这里只有精品| 精品美女一区| 8x8x8国产精品| 一二三av在线| 一区二区在线免费播放| 国产亚洲精品高潮| 国产精品8888| 亚洲丝袜精品| 亚洲综合另类小说| 欧美日韩中文字幕在线播放| 污视频在线免费观看网站| 亚洲女同一区二区| 国产视频在线一区二区| 亚洲一区二区三区四区精品| 精品一区二区三区免费看| 91精品欧美综合在线观看最新| 亚洲免费黄色录像| 日韩欧美另类中文字幕| 精品剧情在线观看| 人妻丰满熟妇av无码久久洗澡 | 麻豆国产精品官网| 国产在线拍偷自揄拍精品| 国产精品视频a| 成人永久aaa| 欧洲一区二区在线| 在线观看黄色av| 亚洲男帅同性gay1069| av网站大全免费| av日韩亚洲| 欧美区在线观看| 少妇熟女视频一区二区三区| 日本国产精品| www.日韩免费| 日本少妇做爰全过程毛片| 久久亚洲一区| 亚洲aⅴ日韩av电影在线观看| 亚洲精品喷潮一区二区三区| 91在线视频官网| 视频在线99re| 麻豆av在线播放| 欧美综合一区二区| wwwww在线观看| 国产成人精品一区二区免费看京| 久久视频在线免费观看| 精品国产一区二区三区四| 久国产精品韩国三级视频| 国内精品一区二区| 亚洲欧美视频一区二区| 午夜精品影院在线观看| 久久黄色片网站| 天堂av一区二区三区在线播放| 色噜噜狠狠色综合网图区 | 中文字幕在线观看日本| 精品成人久久av| 国产精品探花在线播放| 国产一区国产二区国产三区| 久久久久久久久久婷婷| 一级片免费网站| 久久综合一区二区| 800av在线免费观看| 99re久久| 亚洲精品一区二三区不卡| 全网免费在线播放视频入口| 日韩在线一区二区三区| 国产亚洲精品久久飘花| 50度灰在线| 欧美精品在欧美一区二区少妇| av鲁丝一区鲁丝二区鲁丝三区| 亚洲91久久| 国产精品一区二区三区在线播放| 色综合888| 午夜视频在线观看一区二区| 日本中文字幕在线不卡| 日韩精品dvd| 国产91九色视频| 熟妇人妻av无码一区二区三区| 亚洲三级免费观看| 亚洲一级片网站| 欧洲杯半决赛直播| 日韩免费在线播放| 精品无人乱码| 高跟丝袜欧美一区| 在线免费看黄色片| 欧美日本二区| 91精品网站| 五月花成人网| 日韩亚洲电影在线| 91精品国产高清一区二区三蜜臀| 另类的小说在线视频另类成人小视频在线| 久久久久综合一区二区三区| heyzo在线播放| 亚洲国产一区二区三区在线观看| 麻豆成人在线视频| 国产福利精品一区| 免费视频爱爱太爽了| 97久久亚洲| 高清一区二区三区日本久| 成人乱码一区二区三区| 亚洲国产成人av好男人在线观看| 男人的天堂免费| 亚洲国产国产亚洲一二三| 国产美女精品在线观看| 阿v视频在线| 日本视频免费一区| 亚洲色图五月天| 无码人妻av一区二区三区波多野 | 精品人妻二区中文字幕| 亚洲黄色天堂| 日韩一区二区视频| 免费精品在线视频| 国产乱码字幕精品高清av| 青草全福视在线| 亚洲精品观看| 欧美亚洲成人xxx| 电影在线一区| 在线不卡欧美精品一区二区三区| 久久国产高清视频| 成人中文字幕电影| 999精品网站| 天天影视欧美综合在线观看| 国产精品乱码视频| 精品亚洲美女网站| 久久精品免费播放| 四虎永久在线精品免费网址| 91精品福利视频| xxxx日本少妇| 成人视屏免费看| 熟女人妇 成熟妇女系列视频| 97久久视频| 国产精品免费一区二区| 日韩av大片站长工具| 久久亚洲精品国产亚洲老地址| 乱精品一区字幕二区| 在线观看视频一区二区| 欧美三级小视频| 国产日产欧美一区二区三区| 久久综合在线观看| 欧美一级视频| 久久亚洲a v| 你微笑时很美电视剧整集高清不卡| 国产欧美日韩专区发布| 爱搞国产精品| 米奇精品一区二区三区在线观看| 青青青手机在线视频观看| 777亚洲妇女| 亚洲综合图片网| 亚洲一本大道在线| 人人人妻人人澡人人爽欧美一区| 国产一区高清在线| 欧美牲交a欧美牲交aⅴ免费下载| 亚洲国产日韩欧美在线| 欧美日韩在线观看一区| 97超碰成人| 91色琪琪电影亚洲精品久久| 在线人成日本视频| 欧美国产日韩一区二区在线观看| 成人精品一区二区三区免费| 亚洲国产精品中文| 国产手机视频在线| 欧美日韩日日骚| 午夜精品久久久久久久蜜桃| 久久久久久久久国产一区| xvideos成人免费中文版| 日日夜夜精品免费| 欧美高清你懂得| 自拍偷拍校园春色| 午夜精品福利久久久| 亚洲女爱视频在线| 国产一级片黄色| 亚洲激情专区| 欧美日韩dvd| 国产精品国内免费一区二区三区| 欧美激情www| 日本一区福利在线| 国产精品乱码视频| 北条麻妃一区二区三区在线观看| 91久久精品国产91久久性色| 成人开心激情| 欧美在线视频在线播放完整版免费观看| 欧美精品videosex| 欧美超级乱淫片喷水| 黄色免费在线观看| 日韩在线播放一区| 日本韩国在线视频爽| 国产亚洲精品91在线| 国产污视频在线| 亚洲色图13p| 日韩av免费观影| 精品亚洲一区二区三区| 五月婷婷伊人网| 国产视频精品久久久| 亚洲AV成人无码一二三区在线| 亚洲国产精品成人va在线观看| 超碰在线播放97| 欧美成人福利视频| 免费的黄色av| 亚洲激情视频网站| 天堂影院在线| 亚洲日本中文字幕免费在线不卡| 黄色影院在线播放| 色妞在线综合亚洲欧美| 大地资源网3页在线观看| 久久av.com| av福利在线导航| 欧美做受高潮电影o| 日韩在线影院| 成人xxxx视频| 8x国产一区二区三区精品推荐| 国产一区在线免费| 精品在线91| 亚洲资源在线网| 中文字幕亚洲精品乱码| www污在线观看| 香蕉精品999视频一区二区| 不要播放器的av网站| 精久久久久久久久久久| 国产a级片视频| 久久亚区不卡日本| 男人晚上看的视频| 一区二区日韩电影| 久久久久久久久久成人| 欧美日韩mp4| 日韩在线观看视频网站| 国产亚洲视频在线观看| 国产日产一区二区三区| 97超碰蝌蚪网人人做人人爽| 成人四虎影院| 国产精品我不卡| 欧美日韩伦理在线免费| 人妻互换免费中文字幕| 水蜜桃久久夜色精品一区的特点| 人人爽人人爽av| 久久综合久久综合久久综合| 五月综合色婷婷| 欧美特黄级在线| 国产成年妇视频| 夜夜亚洲天天久久| 精品亚洲永久免费| 色伊人久久综合中文字幕| 一级视频在线播放| 亚洲成人a级网| 国产高清一区| 精品日韩美女| 国产精品久久久久久麻豆一区软件| 人妻互换免费中文字幕| 免费人成黄页网站在线一区二区| 亚洲AV成人精品| 国产精品少妇自拍| 日韩欧美三级在线观看| 欧美日韩精品欧美日韩精品一综合| 天天综合天天综合| 日韩专区在线观看| www.黄色com| 一区二区三区小说| 中国a一片一级一片| 亚洲福利在线观看| 在线观看av免费| 国产日韩专区在线| 影视先锋久久| 拔插拔插海外华人免费| 国模娜娜一区二区三区| 国产又大又粗又爽的毛片| 亚洲成人1区2区| 精品人妻一区二区三区含羞草| 在线精品91av| 电影久久久久久| 欧美人xxxxx| 亚洲美洲欧洲综合国产一区| 亚洲天堂网站在线| 国产精品久久久久久亚洲伦| 午夜精品免费观看| 国产视频精品xxxx| 九色porny丨首页入口在线| 97超碰人人模人人爽人人看| 97精品一区| 亚洲色图偷拍视频| 亚洲欧洲无码一区二区三区| 中文字幕 国产精品| 国产一区二区三区毛片| 老司机成人影院| 欧美精品一区二区三区在线四季| 国产亚洲精品v| 免费中文字幕av| 欧美视频在线观看免费| 韩国亚洲精品| 欧美在线一区二区三区四区| 亚洲黄色大片| 中文字幕乱码一区| 亚洲一区二区三区四区不卡| 午夜精品一二三区| 欧美高清在线视频观看不卡| 日韩在线精品强乱中文字幕| 成年人视频大全| 国产成人精品一区二区三区四区 | 水蜜桃色314在线观看| 成人免费视频视频| 成年人免费看毛片| 亚洲精品网站在线播放gif| 欧美一级大黄| 亚洲国产欧美一区二区三区不卡| 蜜桃av一区二区在线观看| 影音先锋男人资源在线观看| 欧美高清你懂得| 男人天堂亚洲| 精品久久久久久一区二区里番| 午夜亚洲性色福利视频| 久久成人激情视频| 7777精品伊人久久久大香线蕉超级流畅 | 在线观看中文| 国产精品亚洲综合| 裸体一区二区| 国产第一页精品| 欧美一区二区精美| rebdb初裸写真在线观看| 欧美久久在线| 国产一区二区精品久久91| 久久久精品国产sm调教| 精品视频久久久久久久| yiren22亚洲综合| 日本男女交配视频| 久久精品一区二区三区不卡| 一区二区三区播放| 午夜精品久久久久久99热| 精品精品99| 涩视频在线观看| 色婷婷久久久亚洲一区二区三区| 欧美私人网站| 国产一区二区视频在线免费观看| 日韩国产在线观看一区| 久草成人在线视频| 亚洲日韩中文字幕在线播放| 日韩精品视频中文字幕| 久久久久久久久久久久久国产精品| 国产精品盗摄一区二区三区| 天天射,天天干| 亚洲一区二区三区在线视频| 校园春色综合网| 欧美日韩国产精品一区二区三区| 亚洲欧美制服中文字幕| 日本综合精品一区| 国产精品人人爽人人爽| 亚洲国产日韩一区二区| 一本一道波多野毛片中文在线|