無(wú)意間發(fā)現(xiàn)的好文,分享給大家閱讀~~真的是好文~~
——“阿姨!你的錢包掉了!”
——“謝謝你!小朋友!你真是一個(gè)心靈高尚的人!”
——“不用謝!這是我應(yīng)該做的,我的名字叫少先隊(duì)員……”(伴隨著一串銀鈴般地笑聲,小朋友消失在風(fēng)里,沒(méi)有留下姓名……)
嗯,我承認(rèn)這是惡搞了一把那個(gè)年代的小學(xué)生作文——韓寒出現(xiàn)之前的那種小學(xué)生作文。這種作文中有一個(gè)隱含的前提:“拾金不昧、做好事不留姓名”這種事情,在那個(gè)時(shí)代的背景下,會(huì)被判斷為“這是我應(yīng)該做的”。
那么,在換了一個(gè)時(shí)代背景之后,什么才是“你應(yīng)該做的”呢?或者我們換一個(gè)容易觀察的角度——在一個(gè)特定的職業(yè)中(醫(yī)生/教師/學(xué)者/警察/記者/公仆 /開(kāi)發(fā)商/律師/法官/摔倒的老太/etc),什么才是“你應(yīng)該做的”呢?怎樣算是平庸?怎樣算是正常?怎樣算是杰出和優(yōu)秀?做到什么程度才算是完成了本職工作,才算是完成了“你應(yīng)該做的”事情?
——既然我這個(gè)BLOG是和“碼農(nóng)”這個(gè)職業(yè)息息相關(guān)的,那現(xiàn)在我們就假設(shè)你是一個(gè)碼農(nóng):
你精通各種算法,宰殺了無(wú)數(shù)遍“豬”與“雞”(珠與璣),對(duì)RBTree/BSPTree/SuffixTree/HashTree的原理和應(yīng)用張口就來(lái);你會(huì)估計(jì)和比較各種算法的O/Θ/Ω/OO;你知道如何深入淺出地講解算法,知道如何編程實(shí)現(xiàn)和實(shí)測(cè)的表現(xiàn),你還能夠在實(shí)際工作中選用正確的算法……那么,你覺(jué)得自己很優(yōu)秀,還是說(shuō)“這是你應(yīng)該做的”?
你精通不少語(yǔ)言,也精通一些很“難”的語(yǔ)言中的很“討厭”的特性,比如C++中的重載決議/偏模板特化/名字空間/多繼承/etc,你還能夠緊追語(yǔ)言的“最新發(fā)展”,對(duì)GC/closure/multimethod/Continuation/AMB這些“新發(fā)明”的東西了如指掌(嗯,好吧,其實(shí)這些不是新的,只是從LISP那里借鑒了一下下)……那么,你覺(jué)得自己很優(yōu)秀,還是說(shuō)“這是你應(yīng)該做的”?
你懂得多數(shù)流行平臺(tái)的開(kāi)發(fā),掌握多數(shù)開(kāi)發(fā)包的API;你能夠使用各種輔助工具進(jìn)行綜合、高效地調(diào)試;在解決問(wèn)題時(shí)你有豐富的經(jīng)驗(yàn)和清醒的頭腦,以及實(shí)證至上的謹(jǐn)慎;你對(duì)開(kāi)發(fā)/profiling/testing有良好的理解和實(shí)踐,模式/重構(gòu)/TDD/etc對(duì)你來(lái)說(shuō)是合手的工具而不是限制你的牢籠……那么,你覺(jué)得自己很優(yōu)秀,還是說(shuō)“這是你應(yīng)該做的”?
你了解不同用戶的興趣在哪里、對(duì)軟件錯(cuò)誤的容忍度有多高,你知道不同設(shè)備上的用戶習(xí)慣于如何操作,你知道用戶愿意在哪個(gè)功能上掏錢,你懂得如何借鑒和超越競(jìng)爭(zhēng)對(duì)手的產(chǎn)品,你能夠跟上當(dāng)前用戶對(duì)功能的期望(甚至預(yù)見(jiàn)到未來(lái)的)……那么,你覺(jué)得自己很優(yōu)秀,還是說(shuō)“這是你應(yīng)該做的”?
你了解可用性的意義、懂得色彩學(xué),能夠設(shè)計(jì)出有條理、不凌亂的界面,能夠發(fā)明用戶喜愛(ài)的操控方式,能夠設(shè)計(jì)貼心、聰明的功能,還能夠用PS/AI /Painter制作素材,并且用程序?qū)崿F(xiàn)你的設(shè)計(jì)……那么,你覺(jué)得自己很優(yōu)秀,還是說(shuō)“這是你應(yīng)該做的”?(另,引用:“說(shuō)一個(gè)軟件具有‘可用性’,能算是一種贊美嗎?只是合格罷了!”)
你精通計(jì)算機(jī)原理結(jié)構(gòu),知道各種外設(shè)的IO速度,對(duì)它們?cè)L問(wèn)方式有精晰的理解,會(huì)寫device driver,而且你還知道典型外設(shè)產(chǎn)品的可靠性在什么樣的數(shù)量級(jí)上……那么,你覺(jué)得自己很優(yōu)秀,還是說(shuō)“這是你應(yīng)該做的”?
你設(shè)計(jì)過(guò)不同規(guī)模的系統(tǒng),知道在什么樣的級(jí)別下應(yīng)該使用什么樣的技術(shù);你知道性能熱點(diǎn)通常在哪里,也精通于查找和解決熱點(diǎn);你知道如何平衡功能、時(shí)間和質(zhì)量,知道如何在特定情況下取舍;你知道流行的架構(gòu)的優(yōu)缺點(diǎn),你知道哪種硬件能夠構(gòu)成什么樣的系統(tǒng)、當(dāng)機(jī)時(shí)間控制在什么樣的級(jí)別上;你知道如何安排指標(biāo)去區(qū)分高低端產(chǎn)品,知道在給定的預(yù)算/成本下能夠提供什么樣的產(chǎn)品,你還知道如何對(duì)系統(tǒng)進(jìn)行cost down卻不會(huì)損失可靠性……那么,你覺(jué)得自己很優(yōu)秀,還是說(shuō)“這是你應(yīng)該做的”?
你熟悉各種軟件開(kāi)發(fā)模式;你有豐富的知識(shí)積累,卻又不守舊、勇于接受新鮮事物;你非常善于開(kāi)會(huì),能夠在很短的時(shí)間內(nèi)取消語(yǔ)言表面上的分歧讓大家達(dá)成一致……那么,你覺(jué)得自己很優(yōu)秀,還是說(shuō)“這是你應(yīng)該做的”?
你勤勞肯做,工作中不偷奸耍滑,很有大局觀而且也重視細(xì)節(jié)問(wèn)題;你性格溫和,樂(lè)于助人,團(tuán)隊(duì)成員都說(shuō)你是一個(gè)非常好相處的人,連沒(méi)見(jiàn)過(guò)面的同事也對(duì)你贊不絕口……那么,你覺(jué)得自己很優(yōu)秀,還是說(shuō)“這是你應(yīng)該做的”?
……
造句練習(xí):你能夠……能夠……還能夠……即使在XX的時(shí)候也能夠YY……那么,你覺(jué)得自己很優(yōu)秀,還是說(shuō)“這是你應(yīng)該做的”?
……
如果你做到了以上若干條(注),那么在我看來(lái),你成功地完成了你自己的本職工作,完成了自己做為一個(gè)工程師(而不是科學(xué)家)的“應(yīng)該做的事情”—— 也許你比身邊人的平均水平要高出一截,也許你超過(guò)了整個(gè)業(yè)界的平均水平,但那是不是就意味著“優(yōu)秀”呢?如果那僅僅是你“應(yīng)該做到的”呢?
最后,你做為一名人類,能夠進(jìn)行獨(dú)立的思考,在清晰邏輯和豐富知識(shí)的基礎(chǔ)上擁有批判性的思維,你懂經(jīng)濟(jì)、懂民主;你不憤青、不腦殘、不意淫、不從眾;你不受洗腦和煽動(dòng)的影響、不信武術(shù)和中醫(yī)……那么,你覺(jué)得自己很優(yōu)秀,還是說(shuō)“這是你應(yīng)該做的”?
……
在你的眼里,什么才是“你應(yīng)該做的”?
……
延伸閱讀 :
(下面的每一個(gè)鏈接都能對(duì)應(yīng)到上面文章里的某句話,用來(lái)例證,而不是證明)
Teach Yourself Programming in Ten Years, by Peter Norvig
The Pragmatic Programmer 注重實(shí)效的程序員, 中文摘錄版
Algorithm Repository, by Steven Skiena
快排為什么那樣快, by Pongba
Beating The Averages, by Paul Graham
97 Things Every Software Architect Should Know
Anti Pattern, KornerHill譯自Wiki
常見(jiàn)邏輯謬誤(轉(zhuǎn))
Java語(yǔ)言學(xué)校的危險(xiǎn)性, by Joel Spolsky, 阮一峰(譯)
What Every Programmer Should Know About Memory, by Ulrich Drepper
Proebsting’s Law, by Todd Proebsting; Moore’s Law, by Gordon Moore
注:上面列舉了許多的條目,但是這些條目涉及了很多領(lǐng)域,所以并不要求一個(gè)人同時(shí)具備這些能力。
(完)
本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/yuankaining/archive/2009/12/04/4939809.aspx