天天看點

10年前的程式員,走過的成長之路

作者:寫代碼的莎白先生

十多年前,剛入行的我在一個大型國企負責編寫一些桌面軟體。當時我接觸的開發是這個樣子的。

開發語言

在我所在的部門,主要的開發語言是兩種:C和C++。C通常使用很早的C89标準的gcc編譯器。C++則使用後來臭名昭著,但當時依然非常流行的Visual C++ 6.0版本。

這兩種語言我都很熟悉,大學4年學習算法,基本上隻是用了這兩種語言。加入了無數的技術QQ群,每天從早到晚都是語言細節。雖然大學剛畢業,但C、C++的經驗并不比其他人弱。

開發環境

C語言的項目,主要用來做資料處理、分發的核心部件,在Unix伺服器上原地開發和部署。是的,當時似乎并沒有部署這個概念,編譯之後把可執行檔案拷貝到指定檔案夾中重新開機就行了。

為了連接配接到這些Unix伺服器上,我們使用了SSH Secure Shell Client這個工具。我作為一個萌新,C項目一開始不需要我負責,很久都不敢碰桌面上的這倆圖示。

10年前的程式員,走過的成長之路

SSH Secure Shell Client

後來熟練了之後,參與了一些C項目,還在公司内網找到了XShell裝上。其實沒什麼差別,但自認為比别人高端了很多,每天沒事兒就研究裡面的配置項,基本上把這個軟體所有功能都用到了極緻。

10年前的程式員,走過的成長之路

xshell

C++的項目,Visual C++ 6.0是一個很優秀的IDE,無需其他的開發環境支援。但我們通常都會在裡面裝一款插件:番茄助手

10年前的程式員,走過的成長之路

番茄助手(網絡圖)

至于這個插件是幹什麼的,當時我并不太了解。隻知道裝了它好像寫代碼的時候會有很多提示,還能很靈活地切換.h檔案和.cpp檔案。其他功能幾乎沒有了解到。可能辜負了這麼強大的一款插件。

10年前的程式員,走過的成長之路

VC++6.0

編輯器

C語言伺服器開發,大多數人都使用SSH遠端工具附帶的FTP、SCP功能,把檔案下載下傳到本地編輯,然後上傳上去。我不一樣,我一開始就用vim

在那個年代,我的手機是個摩托羅拉的液晶屏,後來又換了大屏的HTC G3,是很高端的款式(狗頭),能在手機上看電子書。于是不知道哪兒下載下傳了一些别人打包的電子書,其中有一本叫做《VIM中文使用者手冊》的電子書。(後來知道這其實就是vim的幫助檔案中文版)。但當時不知道怎麼想的,居然對這本書情有獨鐘,沒日沒夜的看,沒日沒夜的練習,大概用了不到一個月,對vim的很多進階操作都掌握的很好,按鍵也都形成了條件反射。

不得不說,vim給了我極大的成就感,隻要我在機關電腦上敲代碼,我身後的人都會感歎:“我眼睛都跟不上你的螢幕操作了”。這種效果是隻有vim的鍵盤快速定位能力才能做到的,用滑鼠的人是永遠得不到這樣的贊許的。

架構

C項目主要是通信,基本沒有架構,純純的各種裸socket操作,在我這種萌新眼裡基本上就是天書,看都費勁别說上手寫了。

C++的項目主要是負責可視化顯示和控制指令發送的。很多人可能看到Visual C++ 6.0就猜到了:使用MFC編寫可視化界面。

在大學4年裡,我一門心思投入在ACM OJ上,學到的全都是算法,居然并沒有掌握任何一門和GUI有關的程式設計技能。MFC對我來說是一個很龐大的東西。

10年前的程式員,走過的成長之路

深入淺出MFC

當時我在夜裡值班的空閑時間,從頭到尾讀了一整本《深入淺出MFC》。掌握了大多數技能之後,很快就上手開始編寫一些雜七雜八的功能需求了。

就這樣過去了一兩年的時間,我已經從萌新成長為了部門裡比較核心的開發人員,同時也在一線和軟體使用者一起值班一起工作。是以我會接觸到大量的需求,需求收集和分析能力卻沒有任何長進,什麼活兒都接,活兒越幹越多,這成為了壓倒我的最後一根稻草。

解決的問題越多,就越多人來找我解決問題。這樣的惡性循環一旦建立,就無法打破。最後疲于加班的我選擇了離職,開始和同學踏上技術創業的征程。這就是下一篇的事情了。

這個系列會寫很久,十多年的開發成長之路,從05年寫到現在。相信會給剛入行的萌新很多非常有價值的參考。

如果感興趣,請關注我!

我是@寫代碼的莎白先生

什麼代碼都寫,還喜歡帶萌新入門

歡迎關注,歡迎提問!

繼續閱讀