精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美一级黄色大片| 一区二区三区四区不卡在线| 国产精品影片在线观看 | 91片在线免费观看| 国产成人精品久久久| 亚洲精品自拍视频在线观看| 亚洲成人五区| 在线视频国内自拍亚洲视频| aaa免费在线观看| 三区在线观看| 国模无码大尺度一区二区三区| 欧美黑人又粗大| 自拍偷拍视频亚洲| 亚洲视频国产| 欧美日韩久久不卡| 少妇高潮喷水在线观看| 日本福利在线| 26uuu亚洲综合色欧美| 成人久久18免费网站图片| 国产综合精品视频| 在线中文字幕第一区| 国产亚洲精品久久久优势 | 久久久高清一区二区三区| 成人看片人aa| 国产一卡二卡三卡| 亚洲人www| 久久成年人免费电影| 亚洲综合色一区| 高清精品视频| 日韩欧美中文一区| 激情黄色小视频| 日韩成人亚洲| 色婷婷久久久综合中文字幕| 国产毛片久久久久久国产毛片| jizz日韩| 国产婷婷色一区二区三区在线| 国产日韩欧美一区二区| a视频免费在线观看| 久久精品国内一区二区三区| 国产97人人超碰caoprom| 91久久国产视频| 国产综合网站| 欧美高跟鞋交xxxxhd| 疯狂撞击丝袜人妻| 久久一本综合| 色偷偷偷综合中文字幕;dd| 免费在线观看你懂的| 久久久久久久久久久久久久久久久久久久| 91精品国产入口在线| 在线观看岛国av| 精品美女一区| 欧美电影一区二区| 日韩成人精品视频在线观看| 免费污视频在线一区| 日本高清不卡一区| 老熟妇仑乱视频一区二区| 亚洲福利影院| 精品久久久久人成| 亚洲国产精品久久久久婷蜜芽| 岛国av在线网站| 精品女厕一区二区三区| 欧美,日韩,国产在线| 亚洲综合电影| 欧美综合欧美视频| 日本不卡一区在线| 久久亚洲精精品中文字幕| 日韩一卡二卡三卡| 99精品一区二区三区无码吞精 | 自拍偷拍欧美日韩| 亚洲三级电影网站| 免费极品av一视觉盛宴| 人人超在线公开视频| 亚洲综合丝袜美腿| 免费在线观看亚洲视频| 中国色在线日|韩| 91成人网在线| 亚洲精品在线网址| 理论片一区二区在线| 日韩精品一区二区视频| 中字幕一区二区三区乱码| 欧美第十八页| 久久久久这里只有精品| 在线视频一区二区三区四区| 蜜桃传媒麻豆第一区在线观看| 成人有码在线视频| 五月天婷婷在线播放| 国产日韩v精品一区二区| 波多野结衣三级在线| www.youjizz.com在线| 日本韩国一区二区三区| 亚洲一二三av| 香蕉久久夜色精品国产更新时间| www.日韩不卡电影av| 日本三级网站在线观看| 日韩电影一区二区三区四区| 97超碰人人模人人爽人人看| 四虎影院在线播放| 亚洲人成网站影音先锋播放| 内射国产内射夫妻免费频道| 久久女人天堂| 亚洲国产黄色片| 激情高潮到大叫狂喷水| 亚洲精品三级| 成人亚洲激情网| 亚洲欧洲视频在线观看| 亚洲三级免费观看| 大肉大捧一进一出好爽动态图| 久久国产三级| 亚洲国产天堂网精品网站| chinese全程对白| 国产日韩欧美三级| 国产在线视频一区| 免费在线高清av| 亚洲一区中文在线| 国产区二区三区| 天天久久夜夜| 欧美激情久久久久久| 中文字幕在线观看第二页| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 日韩激情视频一区二区| 国产日本久久| 亚洲欧美在线一区| 日韩激情一区二区三区| 激情综合色播激情啊| 欧美日韩国产免费一区二区三区| 成人免费一区二区三区牛牛| 88在线观看91蜜桃国自产| 亚洲一区二区三区日韩| 国产亚洲午夜| 国产综合精品一区二区三区| 50度灰在线| 91精品久久久久久蜜臀| 成人黄色短视频| 奇米精品一区二区三区在线观看 | 在线免费黄色小视频| 国内成人自拍| 日韩免费观看高清| 色视频在线观看免费| 亚洲va国产天堂va久久en| 欧美性猛交xx| 欧美人与禽猛交乱配视频| 91九色综合久久| 又爽又大又黄a级毛片在线视频| 在线观看日韩毛片| 444亚洲人体| 亚洲xxxx3d动漫| 精品一区免费av| 亚洲精品中文字幕乱码三区不卡| 日韩电影免费观| 国产午夜精品全部视频播放| 久久精品久久久久久久| 久久先锋影音av| 熟妇人妻va精品中文字幕 | 午夜欧美巨大性欧美巨大| 亚洲激情视频在线观看| 日韩欧美一级视频| 91免费视频网址| 情侣黄网站免费看| 精品产国自在拍| 国产精品一区二区三区在线播放 | 日韩在线不卡一区| 91高清一区| 豆国产97在线| av在线中出| 亚洲欧美国产日韩天堂区| 欧美男人天堂网| 国产精品高潮呻吟久久| 国产精品中文久久久久久| 国色天香一区二区| 开心色怡人综合网站| 成人国产综合| 久久夜色撩人精品| 免费的黄色av| 在线观看www91| 国产精品国产精品88| 国产精品18久久久久久久久| 日本a在线免费观看| 九九综合九九| 92裸体在线视频网站| av老司机免费在线| 中文字幕久久久av一区| 午夜精品久久久久久久爽| 五月综合激情日本mⅴ| 97在线观看免费视频| 国产呦精品一区二区三区网站| 成年人看的毛片| 国产真实有声精品录音| av一区二区在线看| 国产不卡网站| 欧美成人在线网站| 瑟瑟在线观看| 91精品国产色综合久久不卡电影| 日韩欧美中文字幕一区二区| 国产欧美日韩综合精品一区二区| a级大片免费看| 久久精品伊人| 日本香蕉视频在线观看| 欧美性感美女一区二区| 国产精品久久久久久久天堂第1集| 在线成人视屏| 久久青草福利网站| 欧洲美女少妇精品| 亚洲免费av电影| av中文字幕免费在线观看| 色综合天天天天做夜夜夜夜做| 一级黄色片日本| 久久久亚洲午夜电影| 不许穿内裤随时挨c调教h苏绵| 日本午夜精品视频在线观看| www精品久久| 888久久久| 亚洲国产精品一区二区第一页| 国产一区丝袜| julia一区二区中文久久94| 日本欧美一区| 51视频国产精品一区二区| xvideos国产在线视频| 国产一区二区三区精品久久久| 欧日韩在线视频| 欧美一区二区三区日韩视频| 97人妻精品视频一区| 天天影视网天天综合色在线播放| 欧美老熟妇一区二区三区| 国产精品嫩草影院com| 波多野结衣 在线| 99久久er热在这里只有精品15| 97超碰免费在线观看| 狠狠色丁香久久婷婷综合丁香| 男人天堂成人在线| 亚洲综合国产激情另类一区| 国产xxxx振车| 国产综合自拍| 激情六月天婷婷| 自拍偷拍欧美专区| 经典三级在线视频| 天天揉久久久久亚洲精品| 日韩中文一区| 欧美亚洲在线日韩| 日韩中文一区二区三区| 欧洲美女日日| 亚洲第一导航| 成人在线电影在线观看视频| 日韩中文一区| 欧美成免费一区二区视频| 亚洲精美视频| 91久久电影| 欧美一级爱爱视频| 亚洲先锋成人| 国模无码视频一区二区三区| 99精品国产福利在线观看免费| 黄页免费在线观看视频| 日韩五码在线| 免费午夜视频在线观看| 日韩**一区毛片| 在线观看免费的av| 韩国三级中文字幕hd久久精品| 一区二区三区四区毛片| 国产精品一区二区无线| 麻豆av免费看| 99久久久久免费精品国产| av直播在线观看| 久久久99精品久久| 免费91在线观看| 亚洲日本在线天堂| 激情小说中文字幕| 欧美日韩国产一中文字不卡 | 秋霞午夜av一区二区三区| 视频在线观看免费高清| 国产麻豆精品久久一二三| 黄色性视频网站| 国产亚洲精品福利| 国产高清视频免费在线观看| 一区二区三区91| 毛片视频网站在线观看| 在线观看国产一区二区| a级片免费视频| 精品亚洲精品福利线在观看| 999国产在线视频| 色综合天天狠天天透天天伊人| 中日韩脚交footjobhd| 国产精品视频中文字幕91| 亚洲国产高清在线观看| 精品中文字幕人| 色777狠狠狠综合伊人| 97久久国产亚洲精品超碰热| 久久久久在线| 亚洲AV无码久久精品国产一区| 99久久国产综合精品女不卡| 国精品人伦一区二区三区蜜桃| 亚洲国产一区二区a毛片| 男人天堂视频在线| 日韩免费看网站| 久香视频在线观看| 欧美巨乳美女视频| 欧美成人精品三级网站| 国产成人成网站在线播放青青| 国产99亚洲| 成人在线视频一区二区三区| 免费高清在线一区| 黄色网址在线视频| 综合久久国产九一剧情麻豆| 色网站在线播放| 日韩一区二区在线观看视频| 久久久久久久影视| 久久久久国产精品免费网站| 国产一区影院| 欧美亚洲免费高清在线观看 | 国产精品va在线播放| 2023国产精华国产精品| 偷拍视频一区二区| 国产视频久久| 韩国黄色一级片| 亚洲欧美在线高清| 日韩久久久久久久久久| 精品视频久久久久久| 国内在线视频| 99久久久精品免费观看国产| 日韩国产在线| 国产精品久久久久9999小说| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲资源网你懂的| 国产美女主播在线| 国产精品一区在线观看你懂的| youjizz亚洲女人| 91成人在线精品| 蜜桃视频在线免费| 57pao成人国产永久免费| 99久久婷婷国产综合精品青牛牛| 欧美一级免费在线观看| 久久99国产精品免费网站| 能直接看的av| 国产美女福利在线观看| 国产精品网站视频| 欧美日韩高清| 一本色道无码道dvd在线观看| 成人99免费视频| 久久久久久久久99| 欧美tickling挠脚心丨vk| 超碰在线免费公开| 91在线视频一区| 一区二区在线| 黄色三级视频在线播放| 中文字幕中文字幕在线一区| 中文字幕1区2区3区| 中文在线资源观看视频网站免费不卡| 成人黄色免费短视频| 日本在线免费观看一区| 奇米色一区二区| 五月天色婷婷丁香| 欧美一区二区免费观在线| 尤物视频在线看| 国产伦精品一区二区三区视频孕妇| 女生裸体视频一区二区三区| 18深夜在线观看免费视频| 亚洲激情图片qvod| 色欲av伊人久久大香线蕉影院| 777午夜精品福利在线观看| 小嫩嫩12欧美| 麻豆一区二区三区视频| 国产精品久久毛片av大全日韩| 7777久久亚洲中文字幕| 欧美成人午夜剧场免费观看| 91精品日本| 99精品视频在线看| 国产欧美精品日韩区二区麻豆天美| 在线观看亚洲国产| 久久国产天堂福利天堂| 福利欧美精品在线| 国产精品99久久免费黑人人妻| 欧美国产成人精品| 国产情侣自拍小视频| 欧美高清在线视频观看不卡| 欧美日韩另类图片| 爱情岛论坛成人| 亚洲精品日韩一| 亚洲日本中文字幕在线| 国产精品亚洲网站| 欧美日韩专区| 最新中文字幕av| 555www色欧美视频| 国产亚洲成av人片在线观看| 色综合久久88色综合天天提莫| 国产一区亚洲一区| 欧美三级午夜理伦| 最近2019中文字幕在线高清| 综合中文字幕| 九九视频精品在线观看| 一区二区三区视频在线观看| 青青草娱乐在线| 96国产粉嫩美女| 丝袜亚洲另类丝袜在线| 欧洲猛交xxxx乱大交3| 亚洲精品自拍第一页| 宅男噜噜噜66国产精品免费| www.av片| 亚洲人精品午夜| 国产98在线| 国产午夜精品一区| 精彩视频一区二区| 国产成人精品777777|