自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

軟件開發(fā)者的四大“看家本事”

開發(fā) 項(xiàng)目管理
作者約翰·森梅茲(John Sonmez)是Pluralsight網(wǎng)站的課程作者,他創(chuàng)作了超過(guò)25門課程,內(nèi)容涵蓋了從移動(dòng)開發(fā)到控制反轉(zhuǎn)容器的廣泛主題。他還是諸如DotNetRocks和Hanselminutes 等播客網(wǎng)站的???。

英文原文:John Sonmez,編譯:高翌翔@高翌翔

現(xiàn)如今,可供選擇的技術(shù)、語(yǔ)言及平臺(tái)可謂五花八門,因此作為軟件開發(fā)者,要弄明白哪里是花時(shí)間培養(yǎng)個(gè)人技能的最佳投資點(diǎn)也就難上加難。

常常有人向我征求關(guān)于如何成為更強(qiáng)的程序員的建議。

人們問(wèn)得最頻繁的問(wèn)題可謂萬(wàn)變不離其宗,即他們是否應(yīng)該把時(shí)間花在某種與眾不同的特定編程語(yǔ)言或技術(shù)上。

最近我花了很多心思琢磨此問(wèn)題,并想出了一些我認(rèn)為最要緊且能讓你受益終生的技能,一旦軟件開發(fā)者掌握了這些技能,不僅會(huì)給他們帶來(lái)最佳的工作機(jī)會(huì),還會(huì)使他們變得卓有成效。

技能一:解決問(wèn)題(Solving Problems)

[[105837]]

以前我曾談到需要學(xué)會(huì)如何解決問(wèn)題,甚至給出了如何學(xué)會(huì)解決問(wèn)題的若干步驟,因?yàn)槲艺J(rèn)為這種技能對(duì)任何軟件開發(fā)者都是至關(guān)重要的。

軟件開發(fā)百分之百就是解決問(wèn)題。

若毫無(wú)問(wèn)題,就無(wú)需軟件。

所有軟件都被設(shè)計(jì)用于解決某些用戶問(wèn)題,而通用解決方案就是由許多能搞定的小規(guī)模問(wèn)題所組成的陣列。

要是你不能解決問(wèn)題,就不會(huì)精通軟件開發(fā),而你所用的編程語(yǔ)言或技術(shù)也就無(wú)所謂了。

在解決問(wèn)題時(shí),大多數(shù)開發(fā)者的表現(xiàn)簡(jiǎn)直糟糕透頂。

我常常會(huì)聽到一些關(guān)于求職面試太難的抱怨,因?yàn)槊嬖嚬贂?huì)要求開發(fā)者去解決有一定難度的問(wèn)題。

我談過(guò)為何有難度的面試挺好,而其中的部分原因在于,面試官就是要測(cè)試開發(fā)者解決問(wèn)題的能力。

我知道,許多開發(fā)者仍然不同意我對(duì)此問(wèn)題的觀點(diǎn),而且他們也不明白為何身處類似首席碼農(nóng)(TopCoder)位置上的開發(fā)者會(huì)盡力完善自身的開發(fā)技能,至少我從個(gè)人經(jīng)驗(yàn)可知,那正是首席碼農(nóng)解決問(wèn)題的實(shí)踐活動(dòng),而此類實(shí)踐活動(dòng)正是我職業(yè)生涯的轉(zhuǎn)折點(diǎn)。

假想你是木匠。要想成為出色的木匠,也許你應(yīng)該擅長(zhǎng)切削木材。也許你應(yīng)該親手做過(guò)各種各樣的部件,同時(shí)也用過(guò)許多不同的工具切削木材。

無(wú)論你的木工經(jīng)驗(yàn)有多少年,抑或設(shè)計(jì)出的家具或櫥柜有多漂亮,每次你也要想方設(shè)法切削木材,努力做出各個(gè)部件。

切削木材是木工活的基礎(chǔ)技能,就像解決問(wèn)題是軟件開發(fā)的基礎(chǔ)技能一樣。

技能二:自學(xué)(Teaching Yourself)

[[105838]]

在生活中,可能沒有比學(xué)會(huì)學(xué)習(xí)更重要的技能了。

此種技能在軟件開發(fā)中尤其重要,因?yàn)閾?jù)我所知,任何領(lǐng)域的變化速度都超不過(guò)軟件開發(fā)。

你不可能無(wú)所不知、無(wú)所不曉。甚至你都來(lái)不及投入時(shí)間去成為某一特定框架或技術(shù)的大師——因?yàn)槭挛锇l(fā)展得太快了!

反而,你需要這樣的能力,即為完成手頭任務(wù)而快速獲取所需知識(shí)的能力。

要是你真想具備某種能讓你在軟件開發(fā)職業(yè)生涯中始終與時(shí)俱進(jìn)的技能,那就學(xué)習(xí)如何自學(xué)吧。

提高此種技能的唯一方法就是付諸實(shí)踐。走出去學(xué)習(xí)新的編程語(yǔ)言或技術(shù),即使你認(rèn)為決不會(huì)用得上它(也不妨學(xué)一下)。將來(lái)你會(huì)驚訝地發(fā)現(xiàn),你竟然可以很快地把它撿起來(lái),因?yàn)槟阍缇蛯?duì)相關(guān)基礎(chǔ)知識(shí)一清二楚了。

要是你能迅速適應(yīng)日新月異的軟件開發(fā)市場(chǎng)、以及與之相關(guān)的各種技術(shù)和平臺(tái),你就會(huì)擁有那些總是很搶手的技能。

盡管我對(duì)蒂姆·費(fèi)里斯(Tim Ferris)的某些主張有點(diǎn)兒懷疑,不過(guò)他寫了本很棒的書,名為《4小時(shí)變身廚師》(4-Hour Chef),其中介紹了若干如何快速學(xué)習(xí)事物的絕招。(我那時(shí)也正打算寫本與此主題有關(guān)的書。)

技能三:命名(Naming)

[[105839]]

要是有人問(wèn)起我成天在做什么,那我八成會(huì)說(shuō)“研讀其他人命名的事物,以及給事物命名。”

誠(chéng)然,若沒人真那么問(wèn),我也不會(huì)真這么答,不過(guò)我的確有可能這么答哦。

軟件開發(fā)就是在描述形而上學(xué)的[1]內(nèi)容。我們所構(gòu)建的大多數(shù)內(nèi)容都是看不見摸不著的。

授權(quán)經(jīng)理收到授權(quán)請(qǐng)求,然后發(fā)出授權(quán)響應(yīng),與此同時(shí),用戶資源庫(kù)會(huì)調(diào)用用戶工廠去組建新用戶——我們必須根據(jù)以上描述在心中去構(gòu)建起完整的環(huán)境。

每次你編碼時(shí),就是在給事物命名。當(dāng)閱讀自己或他人所寫的代碼時(shí),你會(huì)從代碼中的事物名稱獲得對(duì)代碼的大部分理解。

通過(guò)在開發(fā)者親手編寫的代碼中查看方法、變量及類的命名方式,大多數(shù)情況下,我能準(zhǔn)確預(yù)測(cè)出開發(fā)者的技能水平。

要給代碼中的概念及數(shù)據(jù)起合適的名字,而缺乏此能力的開發(fā)者就像個(gè)啞巴翻譯。無(wú)論你能否明白某事,要是你不能妥善地解釋它,那么此事會(huì)轉(zhuǎn)瞬即逝。

提高此種技能的最佳方式就是不斷實(shí)踐。只要我在讀代碼時(shí)有所領(lǐng)悟,我往往會(huì)重命名代碼中的事物。由于我開始明白某個(gè)方法到底在做什么,因此我會(huì)給方法改名,以便與我的理解相一致。在讀代碼時(shí)我會(huì)做這么做,即便代碼沒有產(chǎn)生任何邏輯變化,也照樣會(huì)這么做。

你越關(guān)注給事物起合適的名字,你就會(huì)越擅長(zhǎng)此道。

這也是你代碼中最顯而易見的一面。簡(jiǎn)單看一眼你的代碼,很難分辨代碼正確與否或效率高低,但如果代碼能讓我一望而知,那么我會(huì)認(rèn)為你知道自己在做什么。

技能四:待人接物(Dealing with People)

[[105840]]

盡管我把此種技能排在最后,不過(guò)在許多情況下,你可能會(huì)說(shuō)它是首要的或最要緊的技能。

所到之處皆有人。

除非你單獨(dú)工作,且只為你自己開發(fā)軟件,否則,作為軟件開發(fā)者,其他人就會(huì)影響到你的職業(yè)生涯。

我以前談過(guò)為何你可能不想批評(píng)某人,不過(guò)我們更多地是與他人打交道,而不是惹人煩。

我總是會(huì)重新捧起戴爾·卡耐基(Dale Carnegie)的那本名著《人性的弱點(diǎn)》How to Win Friends and Influence People),因?yàn)檫@本書對(duì)于學(xué)習(xí)如何做一名成功人士是如此重要。

我以前說(shuō)過(guò),倘若你想提高人們的技能,那就閱讀此書吧!

基本問(wèn)題是,人類不是合乎邏輯的生物,我們是情感生物。當(dāng)然,我們喜歡為我們的推理能力而自豪,不過(guò)實(shí)際情況是,我們所做的大多數(shù)決策更多地受到情緒影響,而非理智。

作為軟件開發(fā)者,此種技能對(duì)你的意義在于,除非你能妥善地處理與其他開發(fā)者、經(jīng)理、甚至客戶的關(guān)系,否則,即便你有許多好點(diǎn)子或很有用的技能,你還是會(huì)四處碰壁。

一般說(shuō)來(lái),積極參與到軟件開發(fā)社區(qū)中去也會(huì)對(duì)你的職業(yè)生涯有很大幫助。不要僅限于人際交流,而要把你的名字傳播出去,并廣結(jié)善緣。

成功做到這一切直接取決于你待人接物的能力。(在學(xué)習(xí)如何待人接物時(shí)想走捷徑?那很簡(jiǎn)單。請(qǐng)與人為善?。?/p>

怎樣看待實(shí)用技能?

請(qǐng)注意,在我的列表中并未包括任何特定技術(shù),甚至連web開發(fā)或移動(dòng)開發(fā)這樣寬泛的技能也沒有,這是何原因?

在一些技術(shù)領(lǐng)域具有堅(jiān)實(shí)的基礎(chǔ)的確很重要,不過(guò)這些領(lǐng)域都不及我上面提到的這4種技能重要。

要是你能夠解決問(wèn)題、快速學(xué)習(xí)事物、恰當(dāng)命名事物、以及待人接物,那么與你專門從事任何特定技術(shù)相比,從長(zhǎng)遠(yuǎn)來(lái)看,你將會(huì)取得更大的成功。

有這樣一種說(shuō)法,要深入學(xué)習(xí)一到兩門編程語(yǔ)言,并從事某個(gè)通用的專業(yè)領(lǐng)域,這當(dāng)然很重要,不過(guò),只要你還沒帶著那些抉擇在這條老路上走得太遠(yuǎn),并把精力集中在提高這4種重要技能上,你自會(huì)萬(wàn)事大吉!(你甚至可以學(xué)習(xí)C++ ;D)

作者簡(jiǎn)介

[[105842]]

約翰·森梅茲(John Sonmez)是Pluralsight網(wǎng)站的課程作者,他創(chuàng)作了超過(guò)25門課程,內(nèi)容涵蓋了從移動(dòng)開發(fā)到控制反轉(zhuǎn)容器的廣泛主題。他還是諸如DotNetRocks和Hanselminutes 等播客網(wǎng)站的常客。約翰已經(jīng)使用各種原生工具分別為iOS、Android、Windows Phone 7創(chuàng)建了應(yīng)用程序,他還為HTML5及幾乎所有目前可用的跨平臺(tái)解決方案創(chuàng)建了應(yīng)用程序。他不僅熱衷于敏捷開發(fā),而且他正忙于一場(chǎng)個(gè)人改革運(yùn)動(dòng),以便化繁為簡(jiǎn)。約翰雖是DZone的最有價(jià)值博主,而他卻不是DZone的員工,他已在DZone上發(fā)了三篇博文。除了那三篇博文,你可以在它們的源站上讀到更多內(nèi)容。查看完整的用戶信息

譯注

[1] 形而上學(xué)的(metaphysical),形而上學(xué)是指通過(guò)理性的推理和邏輯去研究不能直接透過(guò)感知所得到答案的問(wèn)題。

插圖說(shuō)明

由于原文所用各節(jié)插圖均無(wú)法正常顯示(翻墻也看不到),因此俺用相關(guān)關(guān)鍵詞在Google圖片上搜索、挑選、替換了相應(yīng)的插圖,此舉實(shí)屬無(wú)奈,特此說(shuō)明。

責(zé)任編輯:林師授 來(lái)源: 圖靈社區(qū)
相關(guān)推薦

2013-08-19 16:45:33

微信5.0開發(fā)者雷區(qū)

2013-05-15 10:02:08

軟件開發(fā)開發(fā)者

2013-09-24 10:32:31

Android開發(fā)者工具

2009-02-13 10:00:41

面試軟件開發(fā)程序員

2010-11-08 09:36:23

移動(dòng)軟件開發(fā)者

2020-03-20 11:43:20

開發(fā)編程語(yǔ)言技術(shù)

2023-10-16 08:00:00

2009-01-14 10:14:34

代碼審查軟件開發(fā)編程

2018-12-15 13:49:55

騰訊云小程序云開發(fā)

2022-09-07 11:56:53

汽車軟件

2020-09-15 06:14:13

開發(fā)代碼開發(fā)者

2014-12-22 09:37:50

軟件開發(fā)

2012-03-23 09:43:48

百度開發(fā)者大會(huì)

2022-09-06 09:47:13

CodeRAT惡意軟件網(wǎng)絡(luò)犯罪

2023-03-25 19:25:26

OceanBase

2016-05-26 10:57:51

2014-09-19 11:34:51

TFCmob.comshareSDK

2011-12-29 09:41:04

2010-12-03 11:17:12

2013-07-05 10:07:53

軟件開發(fā)者
點(diǎn)贊
收藏

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