不斷的復(fù)制粘貼和簡(jiǎn)單排列組合的人叫碼農(nóng),明白自己編程設(shè)計(jì)的人叫軟件工程師。
了解 C語(yǔ)言 的過(guò)程式,HTML/css/js 的文檔聲明式,Java/Ruby 的面向?qū)ο笫剑珿olang 的組合式和最近看的 Lisp(Scheme) 的函數(shù)式這些不同的思維模式讓我漸漸明白了:一個(gè)優(yōu)秀的軟件工程師應(yīng)該在基本的計(jì)算機(jī)知識(shí)上,有整體意識(shí),有大局觀,在工程中的各個(gè)階段做出最合理的設(shè)計(jì)決策,注意這里說(shuō)的是合理,而不是最好,因?yàn)楣こ淌菫榱私夥湃祟?lèi)腦力和體力。
設(shè)計(jì)決策大到設(shè)計(jì)語(yǔ)言選型,數(shù)據(jù)庫(kù),軟件架構(gòu),網(wǎng)絡(luò)協(xié)議,小到模塊設(shè)計(jì),類(lèi),方法,變量命名。我記得高中有個(gè)足球教練說(shuō)過(guò):一個(gè)人會(huì)不會(huì)踢球,看他踢一腳就夠了。
那么問(wèn)題來(lái)了,如何做出合理的設(shè)計(jì)呢?
對(duì)需求的理解
對(duì)現(xiàn)實(shí)條件的評(píng)估
對(duì)工程的預(yù)期(人月)
平衡 1. 2. 3. 作出用于試錯(cuò)的決策計(jì)劃
小步試錯(cuò),在可接受的時(shí)間點(diǎn)之前作出合理項(xiàng)目計(jì)劃
需求理解力
好程序員和差程序員的區(qū)別在于理解能力 --《簡(jiǎn)約之美:軟件的設(shè)計(jì)之道》
是的,我們寫(xiě)的每一行代碼,每一行注釋都是為了直接或者間接的實(shí)現(xiàn)某種實(shí)際價(jià)值,而不是研究某個(gè)學(xué)術(shù)或者練習(xí)英語(yǔ)。所以了解需求至關(guān)重要,其實(shí)說(shuō)白了就是對(duì)數(shù)據(jù)作怎樣的處理。不同的行業(yè)有不同的特點(diǎn),不同需求有不同的價(jià)值實(shí)現(xiàn)訴求,深入了解要解決的領(lǐng)域問(wèn)題,然后以在更高的視角抽象成計(jì)算機(jī)能理解模型,所謂“藝術(shù)源于生活,但高于生活”。
現(xiàn)實(shí)條件的貫通力
這里主要涉及的是計(jì)算機(jī)專(zhuān)業(yè)領(lǐng)域的基本功即:操作系統(tǒng),計(jì)算機(jī)網(wǎng)絡(luò),數(shù)據(jù)庫(kù),算法與數(shù)據(jù)結(jié)構(gòu),語(yǔ)言相關(guān)設(shè)計(jì)模型等。我們沒(méi)有必要將各個(gè)算法各個(gè)協(xié)議倒背如流,能查文檔的沒(méi)必要往自己腦子里硬塞。要明白的是:以上每個(gè)領(lǐng)域的設(shè)計(jì)都有很強(qiáng)的需求背景,我們所要了解的是,在歷史的角度上,它們是為了解決哪類(lèi)問(wèn)題而逐漸演化發(fā)展而來(lái)的,各中解決方案之間有何聯(lián)系和區(qū)別,考慮自己的應(yīng)用場(chǎng)景,如何從前輩的設(shè)計(jì)方案中做抽取,組合,修改和擴(kuò)展。
人月評(píng)估力
有了以上的基本客觀條件,最難得就是對(duì)人的評(píng)估。
對(duì)自己/團(tuán)隊(duì)成員水平的評(píng)估
對(duì)新技術(shù)的調(diào)研和學(xué)習(xí)時(shí)間
對(duì)突發(fā)狀況的應(yīng)對(duì)措施
萬(wàn)劍歸宗:應(yīng)變調(diào)整力
唯有變化是不變的,在實(shí)踐中不斷磨練自己應(yīng)對(duì)變化的調(diào)整能力。
-
軟件工程師
+關(guān)注
關(guān)注
8文章
243瀏覽量
21644
發(fā)布評(píng)論請(qǐng)先 登錄
電子工程師的雙標(biāo)瞬間 #電子 #電子愛(ài)好者 #電子工程師 #揚(yáng)興科技 #雙標(biāo)
電子工程師看書(shū)的四個(gè)階段 #電子 #硬件工程師 #電子愛(ài)好者 #反轉(zhuǎn) #揚(yáng)興科技
什么是BSP工程師
硬件工程師:這才是真正的大學(xué)生就業(yè)指導(dǎo) #電子 #硬件工程師 #電子愛(ài)好者 #晶振 #揚(yáng)興科技
工程師變身AI“指揮者”,吉利與阿里云的軟件開(kāi)發(fā)變革實(shí)驗(yàn)
想成為硬件工程師?我教你啊!你得先學(xué)會(huì)這些...... #硬件工程師 #電子工程師 #電子愛(ài)好者 #電子行業(yè)
硬件工程師面試必會(huì):10個(gè)核心考點(diǎn)#硬件設(shè)計(jì) #硬件工程師 #電路設(shè)計(jì) #電路設(shè)計(jì)
硬件工程師看了只會(huì)找個(gè)角落默默哭泣#硬件工程師 #MDD #MDD辰達(dá)半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師
(仰天長(zhǎng)嘯)為什么受傷的總是硬件工程師...#MDD#MDD辰達(dá)半導(dǎo)體 #電子工程師
如何成為一名嵌入式軟件工程師?
軟件工程師如何做出合理的設(shè)計(jì)
評(píng)論