有了“面向過程”摊鸡、“面向?qū)ο蟆钡母拍钪笳烂剑裉熘v講有助于入門的幾個零散觀點。
1.關(guān)于技術(shù)地圖
我覺得上大學的時候免猾,最缺乏的和最需要的是辕,就是有一位老師告訴我計算機完整的技術(shù)地圖。
總結(jié)了一個應用軟件的技術(shù)地圖:
泛前端開發(fā):包括泛手機端猎提、網(wǎng)頁端获三、桌面端。
泛手機端:Android、IOS疙教、TV棺聊、穿戴設(shè)備、AR/VR開發(fā)贞谓,每一個領(lǐng)域都有一系列流行的框架限佩。
網(wǎng)頁端:網(wǎng)站開發(fā),涉及html/css裸弦,也有一系列流行框架祟同,并且更新很快,一浪一浪的拍死前面的老前輩烁兰。
桌面端:電腦桌面軟件的開發(fā)耐亏,例如:office這種需要安裝的桌面軟件。不同語言沪斟、不同框架广辰。
后端:在服務器端運行的程序。例如近幾年流行的微服務主之。本質(zhì)還是分布式開發(fā)择吊。也有不同的語言、不同的框架槽奕,更新沒有前端開發(fā)那么快几睛。后端開發(fā)又分為操作系統(tǒng)層、VM層粤攒、容器層所森、業(yè)務邏輯層。
操作系統(tǒng)層:深不可測的領(lǐng)域夯接,可以一直研究到操作系統(tǒng)內(nèi)核焕济。
VM層:近幾年特別火的領(lǐng)域,極大的提升后端分布式運維效率盔几。
容器層:例如你想做一個網(wǎng)站晴弃,那么你就需要WEB容器。例如你想做一個負載均衡逊拍,那么你需要一個負載均衡的容器上鞠。這個領(lǐng)域主要是需要不同容器的配置、原理芯丧。
業(yè)務邏輯層:大部分碼農(nóng)工作的層次芍阎,不斷的分析、實現(xiàn)某個行業(yè)的需求缨恒。為了讓碼農(nóng)們專注于業(yè)務邏輯層的開發(fā)谴咸,又出現(xiàn)了很多讓程序猿退化成碼農(nóng)的應用層框架度硝,例如:Spring、Djiango等等寿冕。
存儲:不同的數(shù)據(jù)適合用不同的數(shù)據(jù)存儲系統(tǒng)。常用的關(guān)系型數(shù)據(jù)椒袍、時序數(shù)據(jù)驼唱、圖數(shù)據(jù)、KV數(shù)據(jù)驹暑、計算型數(shù)據(jù)等玫恳。不同的領(lǐng)域有不同的數(shù)據(jù)庫或者存儲系統(tǒng)和框架。
2.關(guān)于深度廣度的辯證統(tǒng)一
每次在心中回顧著龐雜的技術(shù)地圖优俘,我覺得我是幸運的京办。
在我的職業(yè)生涯中,幾乎通過實戰(zhàn)的項目帆焕,覆蓋了所有技術(shù)地圖惭婿。
在我所在的公司,90%的程序猿10多年都是在業(yè)務邏輯層開展工作叶雹,這種工作的結(jié)果就導致了“工作10年等于10個1年”财饥,進一步導致了“34+”的職業(yè)危機。
我對技術(shù)的“深度與廣度”折晦,一直認為是辯證統(tǒng)一钥星,并且我更看重技術(shù)的廣度、技術(shù)的全面性满着。
前一段時間谦炒,和項目組的新員工探討“深度與廣度”,他覺得他目前的狀態(tài)和我不一樣风喇,他認為:
1宁改、他做的項目,導致他沒有機會擴展技術(shù)廣度响驴。
2透且、他是新人,更應該在某一個領(lǐng)域豁鲤、某一種語言秽誊、某一種框架深入。
我不太認同琳骡。
首先锅论,做什么項目由不得剛?cè)肼毜男氯诉x擇,但是“有探索精神”的新人會有更多的辦法給自己制造擴展技術(shù)廣度的機會楣号。例如:主動承接某個技術(shù)點的專項工作最易,例如:參與github開源項目怒坯,例如:有針對性的接個小私活。
其次藻懒,擴展深度剔猿、擴展廣度是一個此一時彼一時的學習過程。
不一定非要把C++研究到大師級嬉荆,再去學習Python归敬。
不一定非要把MySQL研究到精通,才能學習MongoDB鄙早。
但是廣度也要有一個限度汪茧,不能每一樣都會,每一樣都只是皮毛限番。
如何鑒定自己在某個領(lǐng)域是不是皮毛呢舱污?很簡單,做一個實戰(zhàn)的項目弥虐。
3.關(guān)于編程規(guī)范
編程規(guī)范就好像小時候入學軍訓一樣扩灯,不是多難的事情,但是很有效的培養(yǎng)了一個人在團隊中的規(guī)范性躯舔、紀律性驴剔。
編程規(guī)范有很多,不同公司也有不同的規(guī)范粥庄。
我覺得阿里的編程規(guī)范不錯丧失,我也很喜歡我?guī)煾诞斈曜灾频腃風格的規(guī)范,于是一直延續(xù)至今惜互。
總之布讹,編程規(guī)范先找一個標準,在一個Team中統(tǒng)一下來训堆,持之以恒的堅持描验。這將是一個很好、很強大的習慣坑鱼。
over