偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

三板斧!助你成為優(yōu)秀軟件工程師

開發(fā) 新聞
通過本文,希望大家對(duì)“軟件工程師”這個(gè)職業(yè)建立起正確的認(rèn)識(shí)。

雖然前面討論了很多編寫代碼的方法,但優(yōu)秀的代碼最終還是出自優(yōu)秀的軟件工程師。本節(jié)介紹如何成為一名優(yōu)秀的軟件工程師。

首先澄清 幾個(gè)誤區(qū) ,一名優(yōu)秀的軟件工程師和以下因素沒有必然聯(lián)系。

(1)寫了多少年程序。

(2)寫了多少行代碼。

(3)曾經(jīng)在哪里上學(xué),曾經(jīng)在哪里工作。

我將一名優(yōu)秀軟件工程師的修煉方法總結(jié)為以下 三句話 。

(1)學(xué)習(xí)—思考—實(shí)踐。

(2)知識(shí)—方法—精神。

(3)基礎(chǔ)乃治學(xué)之根本。

下面將對(duì)這三句話做詳細(xì)解讀。

路徑一:學(xué)習(xí)—思考—實(shí)踐

1.學(xué)習(xí)

對(duì)于一名軟件工程師來說,學(xué)習(xí)是非常重要的事情。

軟件編寫的歷史已經(jīng)超過半個(gè)世紀(jì),有太多的經(jīng)驗(yàn)可以被借鑒。非常遺憾的是,很多軟件工程師雖然工作多年,但是卻沒有對(duì)前人和大師的經(jīng)驗(yàn)進(jìn)行過充分學(xué)習(xí),在很多方面沒有使用正確的方法。

在學(xué)習(xí)途徑方面,我推薦大家優(yōu)先閱讀相關(guān)圖書。很多軟件工程師主要通過閱讀博客或微信公眾號(hào)上的文章來學(xué)習(xí),其實(shí)很多內(nèi)容質(zhì)量遠(yuǎn)不如經(jīng)典圖書。另外,我還建議大家選擇一些高質(zhì)量的開源代碼來研究,以提升自己在閱讀代碼方面的品位。

有些讀者對(duì)于持續(xù)學(xué)習(xí)缺乏足夠的動(dòng)力。這里我想到蘋果創(chuàng)始人喬布斯的一句話:

Stay hungry, stay foolish. (求知若饑,虛心若愚。)

也就是說,只有自己感覺到“饑餓”和“愚笨”,才會(huì)去學(xué)習(xí)。

關(guān)于學(xué)習(xí),希望讀者養(yǎng)成“學(xué)習(xí)的習(xí)慣”,以及培養(yǎng)好“學(xué)習(xí)的能力”。我曾做過多次調(diào)研,發(fā)現(xiàn)很多人在一年內(nèi)閱讀的圖書不超過兩本,這遠(yuǎn)遠(yuǎn)少于大家在大學(xué)時(shí)的閱讀量。在一個(gè)不斷發(fā)展的社會(huì)里,如果5~10年不學(xué)習(xí),一個(gè)人很快就會(huì)“過時(shí)”。

建立起不斷學(xué)習(xí)的習(xí)慣很重要。我還發(fā)現(xiàn)有一些人不會(huì)學(xué)習(xí),對(duì)于所閱讀的內(nèi)容抓不住重點(diǎn),這就是“學(xué)習(xí)能力”比較薄弱,建議大家可以看看《如何閱讀一本書》,書中深入地介紹了正確而高效的閱讀方法。

2. 思考

古人說,學(xué)而不思則罔。

即使學(xué)習(xí)了一些知識(shí)和方法,也獲得了一些實(shí)踐的機(jī)會(huì),但是如果不去思考,就不能形成自己的思想體系,這就相當(dāng)于白學(xué)和白干。

一方面, 在經(jīng)過思考之前,所學(xué)到的知識(shí)或方法還只是外在的,如果不能在思考的基礎(chǔ)上去深入理解,就很難靈活地在工作中使用; 另一方面, 現(xiàn)實(shí)情況經(jīng)常和書本中的內(nèi)容有一些差異,需要在工作中通過思考來判別差異,總結(jié)經(jīng)驗(yàn),形成符合實(shí)際情況的方法論。

3. 實(shí)踐

在學(xué)習(xí)和思考的基礎(chǔ)上,還要勇于實(shí)踐。

有些讀者在經(jīng)過學(xué)習(xí)和思考后知道了什么是好的方法,但是在面對(duì)工作中的問題時(shí),卻仍不敢去實(shí)踐。

在實(shí)踐中,我們需要有“知行合一”的精神。以前,北京大學(xué)有位老師叫湯一介,關(guān)于“真、善、美”曾做過一個(gè)總結(jié),我認(rèn)為總結(jié)得特別好:

天人合一,謂之真;知行合一,謂之善;情景合一,謂之美。

從我的經(jīng)驗(yàn)看,所有的進(jìn)步都來源于失敗的經(jīng)歷和遭遇過的挫折。沒有哪個(gè)方法是經(jīng)過一次學(xué)習(xí)就可以馬上掌握的,所有成功的方法都需要在實(shí)踐中不斷體驗(yàn)和調(diào)整。一個(gè)人的學(xué)習(xí)速度,從某種意義上決定于他犯錯(cuò)的速度,在這方面成年人反而不如小孩子。小孩子學(xué)說話學(xué)得很快,就是因?yàn)檫@是一邊犯錯(cuò)、一邊糾正的過程,小孩子學(xué)走路也是一樣。成年人怕犯錯(cuò),所以往往不敢嘗試,學(xué)習(xí)的速度也就慢了下來。

路徑二:知識(shí)—方法—精神

1. 知識(shí)

對(duì)于認(rèn)為“軟件工程師只能工作到35歲”的人,其中一個(gè)論據(jù)就是軟件工程師經(jīng)常需要學(xué)習(xí),擔(dān)心年齡超過35歲之后就學(xué)不動(dòng)了。

如果只是學(xué)習(xí)新知識(shí),確實(shí)如此。在這個(gè)知識(shí)大爆炸的時(shí)代,知識(shí)是過時(shí)最快的。對(duì)于軟件工程師來說,由于不斷涌現(xiàn)出新的編程語言、新的系統(tǒng)、新的概念……,所以只學(xué)習(xí)知識(shí)的人,總是感覺世界變化太快。

如何解決這個(gè)問題呢?這需要我們不僅僅要學(xué)習(xí)知識(shí),而且要學(xué)習(xí)方法。

2. 方法

如果我們從“方法”這個(gè)角度來看待世界的變化速度,就會(huì)發(fā)現(xiàn)其實(shí)變化速度并沒有那么快。我在本書中介紹的內(nèi)容,在很大程度上都不是新知識(shí),而是在20多年前就在學(xué)校學(xué)過的,它們至今仍沒有過時(shí)。有些方法,歷經(jīng)幾千年都不會(huì)過時(shí),比如《老子》中介紹的方法,雖然只有幾千字,但卻能給人留下深刻的印象。

相對(duì)于“知識(shí)”,“方法”這個(gè)詞總是讓很多人感到很“虛”。但是這個(gè)“虛”(的方法)可能比那個(gè)“實(shí)”(的知識(shí))更有價(jià)值。最深刻的方法其實(shí)是不可言傳的,正如《老子》中的一句話:

道可道,非常道。

(如果“道”可以說出來,就不是永恒的“道”了。)

對(duì)于軟件工程師來說,分析問題、解決問題的能力才是最重要的。其實(shí),這就是“研究”的能力。

關(guān)于“研究”,20多年前加州理工學(xué)院的Steven Low老師曾在給我的一封郵件中給出過一個(gè)很好的定義:

To Identify the Fundamental Problem, and Solve it.

(去識(shí)別、定義那些最重要的問題,并解決。)

3. 精神

即使有了知識(shí)和方法,To be or not to be永遠(yuǎn)都是一個(gè)問題。前進(jìn)的路上往往不是鮮花和掌聲,而是困難和荊棘。人類總是在神性和獸性間不斷斗爭(zhēng),進(jìn)步往往來自對(duì)理想的追求。

關(guān)于精神層面,這里送給大家三句話,供參考。

(1)獨(dú)立精神,自由思想。 這是清華大學(xué)的陳寅恪為紀(jì)念王國(guó)維所寫的碑文中的一句。這塊碑位于清華大禮堂附近的第一教學(xué)樓旁邊。我一直認(rèn)為這是清華大學(xué)“自強(qiáng)不息,厚德載物”之外的另一個(gè)重要校訓(xùn)。

(2)Don’t follow(不要跟隨)。 這是20年多年前UCLA(University of California, Los Angeles,加州大學(xué)洛杉磯分校)的張麗霞老師送給我的一句話。當(dāng)時(shí)我向張老師請(qǐng)教應(yīng)該如何做研究,張老師的這句話令我印象深刻。

(3)對(duì)完美的不懈追求。 “完美”永遠(yuǎn)是一個(gè)可望而不可及的目標(biāo)。對(duì)于“完美”,我們需要不斷去追求。

路徑三:基礎(chǔ)乃治學(xué)之根本

有些軟件工程師在發(fā)展到一定階段后,會(huì)感到繼續(xù)提升很困難。對(duì)于一些規(guī)模稍大的項(xiàng)目,他們會(huì)感覺把握不??;對(duì)于一些方向,會(huì)感到無法持續(xù)深入。其實(shí)這些都是因?yàn)橹暗幕A(chǔ)沒有打好。

于敏是2014年國(guó)家最高科技獎(jiǎng)得主,中國(guó)氫彈元?jiǎng)?。于敏特別喜歡諸葛亮在《誡子書》中的格言,將其視為座右銘:

非寧靜無以致遠(yuǎn)。

他也非常喜歡魏征諫唐太宗的兩句話:

求木之長(zhǎng)者,必固其根本;欲流之遠(yuǎn)者,必浚其泉源。

他深知基礎(chǔ)乃治學(xué)之根本。

對(duì)于軟件工程師來說,需要具備的基礎(chǔ)能力如下。

(1)計(jì)算機(jī)學(xué)科的基礎(chǔ)知識(shí)和方法, 包括:數(shù)據(jù)結(jié)構(gòu)、算法、操作系統(tǒng)、系統(tǒng)結(jié)構(gòu)、計(jì)算機(jī)網(wǎng)絡(luò)等。

(2)軟件研發(fā)的相關(guān)知識(shí)和方法, 包括:基礎(chǔ)的軟件編寫方法、軟件工程方法、編程思想等。

(3)基本思考能力和溝通能力, 包括:邏輯思維能力、歸納總結(jié)能力和表達(dá)能力等。

(4)研究能力, 主要是分析問題和解決問題的能力。

對(duì)于一名軟件工程師,以上這些基礎(chǔ)的建立至少需要5~8年之功。

通過本文,希望大家對(duì)“軟件工程師”這個(gè)職業(yè)建立起正確的認(rèn)識(shí)。軟件工程師不等于“碼農(nóng)”,軟件工程師不能只知道怎么編寫代碼,還需要具備非常綜合的能力。

(1)代碼可以是藝術(shù)作品,也可以是“垃圾”,關(guān)鍵在于編寫代碼的人。 希望大家都能朝著藝術(shù)家的方向努力,努力把自己的代碼變?yōu)樗囆g(shù)品。

(2)不要忘記我們?yōu)槭裁闯霭l(fā)。我們的目標(biāo)是改變世界/格物致知,而不是學(xué)習(xí)編程或者炫耀技術(shù)。 最開始我認(rèn)為,寫代碼的目標(biāo)是“改變世界”,但是后來我改變了想法,將目標(biāo)轉(zhuǎn)變?yōu)椤案裎镏轮?。其?shí),我們工作和生活的更主要的目的是增加對(duì)這個(gè)世界的理解和認(rèn)識(shí)。如果寫了多年代碼,但仍然對(duì)寫代碼的“道”沒有了解,那么時(shí)間和生命就浪費(fèi)了。

(3)好代碼的來源不是寫好代碼。好代碼是一系列工作的結(jié)果,包括需求分析、系統(tǒng)設(shè)計(jì)、編碼、測(cè)試、上線和運(yùn)營(yíng)等。

(4)代碼是寫給別人看的,而不是能正確運(yùn)行就可以了。 對(duì)一名軟件工程師來說,寫出別人看不懂的代碼則是失敗的。

(5)寫好代碼是有道的。通過系統(tǒng)而持續(xù)的學(xué)習(xí)、思考,以及實(shí)踐正確的方法,我們自己也可以打造出精品。 一名優(yōu)秀的軟件工程師的養(yǎng)成至少需要8~10年的積累,大家需要摒棄浮躁的心態(tài)。

責(zé)任編輯:張燕妮 來源: 中生代技術(shù)
相關(guān)推薦

2013-07-03 11:13:58

DevOps

2014-07-29 11:25:18

LinuxMySQL

2011-03-09 15:23:25

Windows Ser

2020-09-03 15:32:08

Wireshark數(shù)據(jù)包分析

2017-03-23 10:54:58

LINUXMYSQL優(yōu)化

2017-08-21 23:50:45

線上內(nèi)存OOM

2009-02-19 10:20:00

2022-04-18 10:13:32

軟件開發(fā)寫作

2020-11-18 08:17:14

Java源碼Class

2012-11-08 16:05:23

2020-03-09 13:37:49

Serverless無服務(wù)器騰訊云

2019-05-30 14:30:42

技術(shù)管理架構(gòu)

2022-05-07 11:47:36

服務(wù)器架構(gòu)

2021-02-15 22:07:18

項(xiàng)目策略模式

2019-08-13 16:23:19

JavaScript數(shù)組方法

2018-06-19 08:50:15

崗位總監(jiān)管理

2021-03-29 17:51:00

瑞數(shù)信息攻防演練

2010-12-29 10:29:31

Linux磁盤管理dfdu

2019-11-14 08:34:08

LinuxMySQLCPU

2010-05-28 09:17:45

ARM服務(wù)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)