如何保持乙個開發者技術棧更新

2021-08-19 13:57:33 字數 1470 閱讀 4270

作為乙個剛畢業三年的研究僧,並且本科學的是機械,在面對複雜多變的it技術圈時,常常感到困惑。我該拿什麼是作為立身之本?要怎麼樣才能時常保持競爭力?銷售靠嘴巴,碼農靠鍵盤。因此個人理解碼農的立身之本就是高效率基於功能完成編碼,交付需求。高效率編碼如果糾結細節,是乙個永恆討論不完的話題,原因是不同時代有不同的講究,不同的技術組成,這是乙個隨著時代發展而動態變化的過程。在某個時代編碼所用的工具集(開發語言、框架、**執行環境等)便構成了那個時代需要的技術棧。說到底立身之本就是技術棧,要時常保持個人競爭力就需要不斷地更新技術棧。可以考慮分解成三部分,後續再補充(個人對於文章的想法就是想到哪寫到哪,不斷更新,不追求一次性完美)。

目前本人主要從事分布式儲存開發維護工作,準確說就是 ceph 專案。

- 涉及的開發語言和工具。專案主要使用 c\c++ 進行開發,其次對上層應用提供豐富的語言介面,如python, ruby, go。管理系統方面則提供 restapi,各種效能統計外掛程式支援,如 zabbix, influx, prometheos 等等。社群的自動化**評審、質量保證體系,要求測試本身就是**。專案本身的單元測試與整合測試用到的支援工具如 gtest, gmock, pytest, tox等。社群**管理與貢獻神器 git。程式管理指令碼,比如shell, systemd, udev。**編譯管理,cmake, autoconfig, pip。核心開發,這是當前儲存要求高效能時無法避開的技術棧,無論是使用塊裝置還是檔案系統。

-難以看見的技術棧,如**風格、架構、專案管理過程(需求收集、討論、實現、版本發布、bug 反合等),社群發展的路線。

- 引用其他專案,這是乙個非常大的技術棧,有些功能實現需要借助第三方庫。比如 rocksdb, 糾刪碼,boost等等。

上面只是列舉了大部分目前我比較關心的,看上去已經很多了。當然這跟跟儲存是乙個較底層的功能集有關(傳統三大件,計算、儲存、網路)。

對於常年佔據開發語言前三的語言,c/c++ 無疑是最基礎的,演進相對比較慢。其次若想要參與**貢獻,則**管理工具git,單元測試等,也是很基本的功底。

參與社群貢獻有很大的好處是能與業界大牛實時互動,混熟關係,技術棧上也能保持跟上更新。因為社群大牛對新知識點會非常喜歡。

因此若有實力和精力參與社群開發,是一條非常不錯的更新技術棧的途徑。

這是乙個非常苦惱的問題,原因是有些問題看不到實質,容易被淹沒在資訊的海洋中。目前能想到的途徑有以下:

經常查閱專案官網的相關文件、開發人員的聊天記錄、幫助文件等。這點對於成熟的基礎專案很有效,原因是官方已經基本考慮到了各種層次開發人員的需求;

追蹤相關開發人員、或者相關技術牛人的分享(說起來可能容易,但是做起來比較難)

對於新技術棧、新思路的出現,如果不是追求第一時間發現,則大部分可以在專業賣書(thoughtworks)、大型**的總結報告中看到(stackoverflow, github);如果追求第一時間發現,並做為積極發布者、甚至是發起者,則經常查閱**是乙個不錯的途徑;

對於看到的新技術棧,如果有不明白或者遇到相關問題,可以考慮發郵件至相關專案開發頻道、開發者詢問。

如何成為乙個偉大的開發者(二)

作者簡介 peter nixey,ruby on rails程式設計師,前計算機視覺學者 企業家,clickpass公司ceo,yc孵化器的企業規劃導師,brojure公司cto。程式設計師在開發過程中,常常會遇到各種各樣的問題,但很少是完全陌生 其它團隊也沒有遇到過的。在stack overflo...

乙個開發者的全域性思考

我最近要開發乙個需求,就是統一改一下ui標註,專案採用了元件化,標註是放在底層元件中的,供其他元件共用。需求開發前,我認為我要做的準備如下 1 ui要給我統一的標註 2 本需求涉及到多個元件庫,所以我需要多個元件庫的許可權。準備工作做完之後我就開始開發了,開發過程比較簡單,之後就是交付ui同學驗收。...

乙個優秀開發者如何才能變得偉大?

乙個優秀開發者如何才能變得偉大?還是先不想如何變得偉大 乙個不錯的開發者如何變成乙個優秀的開發者?從第一步到第n步並沒有確定的路徑,哎呀,甚至不知道第n步是什麼.能邏輯思考的都明白,缺乏乙個確定的路線意味著,想從新手到大師,將會是乙個艱辛的旅程。在過去幾年間,我還是花了相當一些時間,反覆思考這乙個難...