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

軟件開(kāi)發(fā)者升職加薪的8項(xiàng)技能

新聞
私下里,經(jīng)常有一些讀者問(wèn)我:“作為一名軟件開(kāi)發(fā)者,我應(yīng)該掌握哪些技能,才能被領(lǐng)導(dǎo)賞識(shí)給我呢?”說(shuō)實(shí)話,我心目中很多選項(xiàng),不少于 20 個(gè),但我斟酌再三,只挑選了其中最能讓你受益的 8 個(gè),不僅能讓領(lǐng)導(dǎo)賞識(shí)你,還能讓領(lǐng)導(dǎo)給你升職加薪。

私下里,經(jīng)常有一些讀者問(wèn)我:“作為一名軟件開(kāi)發(fā)者,我應(yīng)該掌握哪些技能,才能被領(lǐng)導(dǎo)賞識(shí)給我呢?”說(shuō)實(shí)話,我心目中很多選項(xiàng),不少于 20 個(gè),但我斟酌再三,只挑選了其中最能讓你受益的 8 個(gè),不僅能讓領(lǐng)導(dǎo)賞識(shí)你,還能讓領(lǐng)導(dǎo)給你升職加薪。

[[319334]]

01、吃透一門(mén)編程語(yǔ)言

這個(gè)技能看起來(lái)似乎沒(méi)有必要強(qiáng)調(diào),畢竟程序員不懂一種編程語(yǔ)言也說(shuō)不過(guò)去啊。我之所以再次強(qiáng)調(diào)是怕你“貪心”,以為技多不壓身就拼了命的學(xué)很多種編程語(yǔ)言。

有個(gè)大二的學(xué)生就曾經(jīng)問(wèn)我:“你好呀,老哥,有個(gè)問(wèn)題想咨詢一下您,我專業(yè)學(xué)的是 C#,但聽(tīng)說(shuō)以后不太好就業(yè),所以就自學(xué)了一段時(shí)間 Python,但感覺(jué)越來(lái)越混亂了,您有什么好的建議嗎?”

我只能說(shuō)不混亂才怪。編程語(yǔ)言雖然有相似的語(yǔ)法,但畢竟是不同的編程語(yǔ)言啊,之間還是有很多差異的。對(duì)于初級(jí)程序員來(lái)說(shuō),切勿貪多,先把一門(mén)編程語(yǔ)言吃透再說(shuō),等你有了融會(huì)貫通的本領(lǐng),再去學(xué)新的編程語(yǔ)言也不遲。

我剛剛查了一下(見(jiàn)下圖),C# 還是挺熱門(mén)的編程語(yǔ)言,沒(méi)到不太好就業(yè)的地步,別隨便聽(tīng)信別人的話,要學(xué)會(huì)自己去判斷。Python 是門(mén)不錯(cuò)的編程語(yǔ)言,增長(zhǎng)勢(shì)頭很猛,但遠(yuǎn)沒(méi)到那種獨(dú)霸天下的地步。

學(xué)校有不盡人意的地方,但不至于蠢到讓學(xué)生學(xué)一門(mén)已經(jīng)被市場(chǎng)淘汰的編程語(yǔ)言。在這一點(diǎn)上,我寧愿站在支持學(xué)校的立場(chǎng)上,否則就太糟糕了。

我承認(rèn),學(xué)霸學(xué)什么都快,不僅學(xué)的快,還比平常人學(xué)得好,學(xué)得多,因?yàn)樗幸惶鬃约旱膶W(xué)習(xí)方法,但大部分學(xué)生并不具備這種條件。如果你對(duì)自己沒(méi)有這種認(rèn)知的話,很可能會(huì)陷入泥潭。

因此,我給出的建議是,深入并且專注于一種編程語(yǔ)言,當(dāng)你對(duì)使用這種編程語(yǔ)言充滿信心時(shí),再去學(xué)其他的編程語(yǔ)言也不遲。

02、整潔的代碼

當(dāng)你學(xué)會(huì)一門(mén)編程語(yǔ)言之后,接下來(lái)要考慮的事情就是讓你編寫(xiě)的代碼變得更整潔,更易于理解,更富有藝術(shù)。關(guān)于藝術(shù),我想到了一段話,王小波在他的雜文《用一生來(lái)學(xué)習(xí)藝術(shù)》說(shuō)的:

我念過(guò)文科,也念過(guò)理科。在課堂上聽(tīng)老師提到藝術(shù)這個(gè)詞,還是理科的老師次數(shù)更多:化學(xué)老師說(shuō),做實(shí)驗(yàn)有實(shí)驗(yàn)藝術(shù);計(jì)算機(jī)老師說(shuō),編程序有編程藝術(shù)。老師們說(shuō),怎么做對(duì)是科學(xué),怎么做好則是藝術(shù);前者有判斷真?zhèn)蔚姆▌t,后者則沒(méi)有;藝術(shù)的真諦就是要叫人感到好,甚至是完美無(wú)缺;傳授科學(xué)知識(shí)就是告訴你這些法則,而藝術(shù)的修養(yǎng)是無(wú)法傳授的,只能夠潛移默化。

不得不說(shuō),偶像就偶像,把藝術(shù)的真諦闡述得很清楚。我見(jiàn)過(guò)不少臃腫的代碼,它們讓我想起“裹腳布”這三個(gè)字;我也見(jiàn)過(guò)不少整潔的代碼,它們讓我想起“藝術(shù)”這個(gè)詞,我想創(chuàng)造出它們的程序員一定富有工匠精神。

Elliot Chance 曾表達(dá)過(guò)這樣一個(gè)觀點(diǎn),他說(shuō):“要分辨兩個(gè)程序員的優(yōu)劣,就是給他們一樣的時(shí)間,越好的程序員寫(xiě)出來(lái)的代碼越少(當(dāng)然是可以運(yùn)行的)。”

我同意他的觀點(diǎn)。越多的代碼并不一定代表著認(rèn)真,有可能代表的是懶惰,懶得去思考,才會(huì)寫(xiě)出臃腫的代碼。如果我們程序員沒(méi)有這種(寫(xiě)更少代碼的)追求的話,那我們的編程技藝就只會(huì)原地踏步,長(zhǎng)此以往的后果就是各種避免重復(fù)造輪子的第三方類庫(kù)就不會(huì)出現(xiàn)。

03、算法與數(shù)據(jù)結(jié)構(gòu)

說(shuō)起來(lái)慚愧,在很長(zhǎng)的一段時(shí)間里,我對(duì)算法和數(shù)據(jù)結(jié)構(gòu)存在著很大的偏見(jiàn),認(rèn)為它們就好像懸掛在夜空中的月亮,雖然很美,但卻很遙遠(yuǎn)。

因?yàn)檫@種偏見(jiàn),在敲代碼的過(guò)程中吃了不少的悶虧,經(jīng)常遇到一些實(shí)際的問(wèn)題,由于無(wú)法充分利用數(shù)據(jù)結(jié)構(gòu)將數(shù)據(jù)之間的關(guān)系通過(guò)合適的算法策略進(jìn)行有效地存儲(chǔ)轉(zhuǎn)換,就導(dǎo)致程序的性能很低。

作為一個(gè)吃過(guò)虧的男人,我必須要負(fù)責(zé)任地提醒你,趁有大把的時(shí)間和精力,多投入一點(diǎn)到數(shù)據(jù)結(jié)構(gòu)和算法上面去?;A(chǔ)知識(shí)就像是一座大樓的地基,它決定了我們的技術(shù)高度。數(shù)據(jù)結(jié)構(gòu)和算法就是最重要的基礎(chǔ)知識(shí),學(xué)習(xí)它們的過(guò)程就像是在打地基。

舉個(gè)例子來(lái)說(shuō),假如你要在一個(gè)列表中對(duì)元素進(jìn)行排序,那么可采用的算法就有下圖中的這 10 種,每種算法所花費(fèi)的時(shí)間,所占用的內(nèi)存都不盡相同。換句話說(shuō),如果你不能夠熟練地掌握算法和數(shù)據(jù)結(jié)構(gòu),就很難找出一個(gè)優(yōu)雅的解決方案。

長(zhǎng)期來(lái)看,大腦思考能力是一個(gè)人最重要的核心競(jìng)爭(zhēng)力,而算法是為數(shù)不多的能夠有效訓(xùn)練大腦思考能力的途徑之一。有了這項(xiàng)能力,很多別的程序員解決起來(lái)很困難的編程問(wèn)題在你這里就會(huì)迎刃而解。

04、基本的數(shù)據(jù)庫(kù)知識(shí)

雖然軟件開(kāi)發(fā)人員更應(yīng)該專注于程序設(shè)計(jì)而非編寫(xiě)和優(yōu)化 SQL(應(yīng)該交給專業(yè)的數(shù)據(jù)庫(kù)管理員負(fù)責(zé)),但在我們國(guó)內(nèi),只有優(yōu)秀的企業(yè)才會(huì)有數(shù)據(jù)庫(kù)專家。扎心了。如果你想要在軟件開(kāi)發(fā)這條道路上走得更高更遠(yuǎn),懂一些基本的數(shù)據(jù)庫(kù)知識(shí)是必須的,比如說(shuō):

  • 如何將業(yè)務(wù)中的對(duì)象屬性轉(zhuǎn)化為數(shù)據(jù)庫(kù)字段;
  • 如何從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù),并將數(shù)據(jù)集拼接在一起;
  • 如何往數(shù)據(jù)庫(kù)中插入、修改、刪除數(shù)據(jù);
  • 索引的數(shù)據(jù)結(jié)構(gòu)及原理;
  • SQL 語(yǔ)句的優(yōu)化;
  • 等等。

如果再懂一些數(shù)據(jù)庫(kù)分庫(kù)分表的中間價(jià),那你可能就會(huì)成為團(tuán)隊(duì)的寶貝了,畢竟所有的應(yīng)用程序都要與數(shù)據(jù)庫(kù)交互,另外,數(shù)據(jù)庫(kù)是系統(tǒng)最先出現(xiàn)性能瓶頸的地方——總有你大展身手的時(shí)候。

[[319335]]

05、技術(shù)框架

除了要吃透一門(mén)編程語(yǔ)言,我強(qiáng)烈建議你再學(xué)習(xí)一個(gè)技術(shù)框架。如果你像我一樣是個(gè) Java 后端開(kāi)發(fā)人員的話,Spring 的系列框架(Spring MVC、Spring Boot、Spring Cloud)就不得不學(xué)了;如果你是一個(gè) C# 開(kāi)發(fā)人員,.NET Framework 就不得不學(xué)了。

技術(shù)框架是一組通用類庫(kù)的集合,它幫助我們讓編程任務(wù)變得更簡(jiǎn)單,畢竟輪子替我們?cè)旌昧?。假如說(shuō)沒(méi)有技術(shù)框架的話,我們就好像坐著馬車前行,而不是飛機(jī)、高鐵和汽車,開(kāi)發(fā)效率就要大大降低了。

06、源代碼管理工具

記得我剛參加工作那會(huì),用的源代碼管理工具叫做 CVS(Concurrent Versions System),估計(jì)有不少讀者沒(méi)聽(tīng)說(shuō)過(guò),非常非常難用。后來(lái)遷移到 SVN(Subversion)后,情況總算是有了很大的改善,它不僅支持 Eclipse,還有專屬的客戶端,除了管理源代碼,還可以管理許許多多的文檔。

每天上班的時(shí)候先從服務(wù)器獲取新的代碼,然后開(kāi)始一天的工作,下班走之前切記要提交一次代碼,否則就很容易耽擱團(tuán)隊(duì)其他成員的開(kāi)發(fā)進(jìn)度。

現(xiàn)在呢,有了 Git,它是一套開(kāi)源的分布式版本控制系統(tǒng),可以有效、高速的處理從很小到非常大的項(xiàng)目版本管理。它與 SVN 比較大的不同之處,在于每個(gè)開(kāi)發(fā)者的電腦上都會(huì)有一個(gè)本地倉(cāng)庫(kù)(Local Repository),即便是沒(méi)有網(wǎng)絡(luò)也一樣可以提交版本,查看版本,以及比較版本;等到網(wǎng)絡(luò)連接上之后,再提交到服務(wù)器端。

源代碼管理工具比較大的好處就在于它可以幫助我們保留不同文件更改的歷史記錄,并且允許多個(gè)開(kāi)發(fā)人員對(duì)同一文件的代碼進(jìn)行合并。舉個(gè)例子來(lái)講,小王完成了一項(xiàng)任務(wù),然后提交了代碼;但他覺(jué)得有待改進(jìn),于是他重新修改了代碼并提交到了版本庫(kù),誰(shuí)知道,程序上線后出了 bug,這時(shí)候源代碼管理工具可以幫助他快速回滾到之前正常的版本。否則的話,小王只能被祭天了。

07、測(cè)試

測(cè)試真的是太重要了!但并不是所有的開(kāi)發(fā)者都這樣認(rèn)為,這種感覺(jué)在我回到洛陽(yáng)后尤其強(qiáng)烈。竟然有團(tuán)隊(duì)成員不經(jīng)測(cè)試就把代碼提交到代碼庫(kù),并且是會(huì)報(bào)錯(cuò)的那種,我天吶,遇到這種隊(duì)友我也是醉了。

在我回來(lái)之前,是在一家日企工作,測(cè)試是一項(xiàng)非常重要的工作,占用的時(shí)間比代碼編寫(xiě)的時(shí)間多多了。從單元測(cè)試到集成測(cè)試,所有的測(cè)試結(jié)果都要整理成冊(cè),所有的邊界條件都要測(cè)試到,哪怕你覺(jué)得完全沒(méi)有必要。但正是這種一絲不茍的態(tài)度,成就了日企軟件高質(zhì)量的美譽(yù)。

一個(gè)優(yōu)秀的開(kāi)發(fā)人員絕不允許他的代碼在交給別人之前不經(jīng)測(cè)試,我想這是不容置疑的。

08、調(diào)試

說(shuō)句實(shí)在話,在我做程序員的這 10 年里,調(diào)試代碼的時(shí)間比編寫(xiě)代碼的時(shí)間要多得多。因?yàn)榻鉀Q bug 的難度要比創(chuàng)造 bug 難得多,首先你要先復(fù)現(xiàn)問(wèn)題的場(chǎng)景(真的是難啊),要復(fù)現(xiàn)問(wèn)題就需要你擁有出神入化的調(diào)試技巧,否則只能錘爆鼠標(biāo),然后大喊“為什么,為什么,為什么我的代碼無(wú)法正常運(yùn)行呢?”

入門(mén)級(jí)的調(diào)試很簡(jiǎn)單,你只需要在發(fā)生問(wèn)題的代碼處打個(gè)斷點(diǎn),然后再跑一跑,就能從堆棧信息和代碼的上下文中發(fā)現(xiàn)問(wèn)題。難度再上升點(diǎn)的話,就需要你創(chuàng)造代碼執(zhí)行的條件;再難的話,你甚至需要內(nèi)網(wǎng)穿透,比如說(shuō)微信公眾號(hào)開(kāi)發(fā);再再難的話,就不是一句半句能說(shuō)得清楚了。

總之呢,調(diào)試就是為了讓你弄清楚代碼不能正常運(yùn)行的真正原因,如果你的調(diào)試技巧不過(guò)關(guān)的話,甚至有可能會(huì)被表象蒙騙,從錯(cuò)誤的角度去修改 bug,從而引發(fā)更多、更大的問(wèn)題。

09、鳴謝

好了,親愛(ài)的讀者朋友,以上就是本文的全部?jī)?nèi)容了,能看到這里的都是很優(yōu)秀的程序員,我必須要伸出可愛(ài)的大拇指為你點(diǎn)個(gè)贊。如果你也覺(jué)得自己很棒的話,就無(wú)情地轉(zhuǎn)發(fā)和在看吧,我需要你的支持。

 

責(zé)任編輯:華軒 來(lái)源: 沉默王二
相關(guān)推薦

2013-05-15 10:02:08

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

2009-02-13 10:00:41

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

2022-02-13 00:24:33

開(kāi)發(fā)VueJavaScrip

2010-11-08 09:36:23

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

2011-05-11 10:42:51

技能前端開(kāi)發(fā)者

2011-05-12 09:35:26

技能前端

2023-10-16 08:00:00

2022-09-07 11:56:53

汽車軟件

2021-05-13 06:12:21

Java開(kāi)發(fā)技能

2024-08-09 15:01:00

2014-12-22 09:37:50

軟件開(kāi)發(fā)

2012-12-17 10:00:09

2022-09-06 09:47:13

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

2016-05-26 10:57:51

2013-09-10 09:35:53

移動(dòng)開(kāi)發(fā)者全能開(kāi)發(fā)者技能

2010-12-03 11:17:12

2013-07-05 10:07:53

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

2021-02-14 18:44:58

GPL協(xié)議代碼

2025-01-27 00:23:15

2021-12-25 23:23:04

開(kāi)發(fā)前端后端
點(diǎn)贊
收藏

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