由招聘要求看趨勢 - VC++程序員路在何方
作者: 闕榮文
日期: 2016.5.31
日期: 2016.5.31
以桌面應(yīng)用程序為主的時代已經(jīng)過去,所以 Windows 平臺和 MFC 不再是熱點,微軟自己也不再推廣 MFC.
客戶端應(yīng)用以基于瀏覽器為主,正在向移動平臺遷移,所以 js/jQuery, HTML5, iOS swift, Android java 成為主打的客戶端開發(fā)技術(shù).
服務(wù)器端 HTTP 相關(guān)技術(shù)的重要性大大提升: SSL, nginx, php, java server script, C# server script(依然有相當(dāng)一部分服務(wù)器選擇 .net,而且從理論上來說 .net 并不一定需要綁定 Windows 平臺).
Linux 平臺用作服務(wù)器優(yōu)勢是很明顯的,所以要求熟悉 Linux 平臺的使用和 shell 腳本.
同時 Linux C/C++ 成為開發(fā)服務(wù)器后臺復(fù)雜業(yè)務(wù)的不二之選,比如游戲服務(wù)器.
C++ 沒有死,反而在自己擅長的領(lǐng)域內(nèi)大放光彩.但是老派的 Windows VC++ 程序員只能在一些陰暗的角落里如視音頻,圖形圖像,某些行業(yè)定制軟件等茍延殘喘.
這不是誰的錯,時代在發(fā)展.
客戶端應(yīng)用以基于瀏覽器為主,正在向移動平臺遷移,所以 js/jQuery, HTML5, iOS swift, Android java 成為主打的客戶端開發(fā)技術(shù).
服務(wù)器端 HTTP 相關(guān)技術(shù)的重要性大大提升: SSL, nginx, php, java server script, C# server script(依然有相當(dāng)一部分服務(wù)器選擇 .net,而且從理論上來說 .net 并不一定需要綁定 Windows 平臺).
Linux 平臺用作服務(wù)器優(yōu)勢是很明顯的,所以要求熟悉 Linux 平臺的使用和 shell 腳本.
同時 Linux C/C++ 成為開發(fā)服務(wù)器后臺復(fù)雜業(yè)務(wù)的不二之選,比如游戲服務(wù)器.
C++ 沒有死,反而在自己擅長的領(lǐng)域內(nèi)大放光彩.但是老派的 Windows VC++ 程序員只能在一些陰暗的角落里如視音頻,圖形圖像,某些行業(yè)定制軟件等茍延殘喘.
這不是誰的錯,時代在發(fā)展.
不過不要灰心,我們也有優(yōu)勢:基礎(chǔ)好,起點高.
編程,從本質(zhì)上來說都是想通的,所謂"平臺相關(guān)"的一些東西其實都是很表層的內(nèi)容.
調(diào)試程序的經(jīng)驗,設(shè)計模式的運用,模塊劃分的感覺,程序結(jié)構(gòu)的構(gòu)造這些經(jīng)驗和知識是寶貴的,不會因為切換平臺,甚至不會因為切換編程語言而失去作用,相反,對于程序設(shè)計,它們總是最重要,最難以掌握的東西.
編程,從本質(zhì)上來說都是想通的,所謂"平臺相關(guān)"的一些東西其實都是很表層的內(nèi)容.
調(diào)試程序的經(jīng)驗,設(shè)計模式的運用,模塊劃分的感覺,程序結(jié)構(gòu)的構(gòu)造這些經(jīng)驗和知識是寶貴的,不會因為切換平臺,甚至不會因為切換編程語言而失去作用,相反,對于程序設(shè)計,它們總是最重要,最難以掌握的東西.
從 Windows 到 Linux,作為程序員我覺得最不適應(yīng)之處是編程工具用不順手.多年使用 Visual C++ 的經(jīng)歷,我已經(jīng)被微軟慣壞了,一離開 Visual Studio / MSDN 就感覺不會寫代碼(尤其是 MSDN,相信很多人有同感:-)
只要突破這層障礙很快就能找回往日的感覺.
至于 Linux 平臺編程純技術(shù)上的知識其實很容易掌握,花不了多少時間:
一是我再次說編程都是相通的,有 Windows 平臺下的線程,進程,IPC,文件描述符等基礎(chǔ),掌握 Linux 相關(guān)的知識簡直太容易了.因為 Linux 環(huán)境下這些概念更清晰,系統(tǒng)調(diào)用接口更簡潔.
二是無處不在的 man page.
三是一冊<<UNIX環(huán)境高級編程>>在手,天下我有.
只要突破這層障礙很快就能找回往日的感覺.
至于 Linux 平臺編程純技術(shù)上的知識其實很容易掌握,花不了多少時間:
一是我再次說編程都是相通的,有 Windows 平臺下的線程,進程,IPC,文件描述符等基礎(chǔ),掌握 Linux 相關(guān)的知識簡直太容易了.因為 Linux 環(huán)境下這些概念更清晰,系統(tǒng)調(diào)用接口更簡潔.
二是無處不在的 man page.
三是一冊<<UNIX環(huán)境高級編程>>在手,天下我有.
奮起直追跟上時代,轉(zhuǎn)到 Linux 平臺:
1. 日常使用 Linux 系統(tǒng),在日常使用中熟悉它.
2. 了解 Linux shell 編程的基本語法.
3. 熟悉開發(fā)環(huán)境需要用到的: vim, gcc/g++, makefile, gdb.
4. 安裝,配置常用的 HTTP 服務(wù)器: Apache/Nginx
5. 再看一遍 <<UNIX編程藝術(shù)>>
6. 做一個工程練練手,稍微大一點的,至少包含10個以上源文件,比如自己寫一個 HTTP 或者 FTP 服務(wù)器.
1. 日常使用 Linux 系統(tǒng),在日常使用中熟悉它.
2. 了解 Linux shell 編程的基本語法.
3. 熟悉開發(fā)環(huán)境需要用到的: vim, gcc/g++, makefile, gdb.
4. 安裝,配置常用的 HTTP 服務(wù)器: Apache/Nginx
5. 再看一遍 <<UNIX編程藝術(shù)>>
6. 做一個工程練練手,稍微大一點的,至少包含10個以上源文件,比如自己寫一個 HTTP 或者 FTP 服務(wù)器.
還有一個感受就是在 Linux 平臺下做開發(fā)有更強的動力(被需求逼的)去學(xué)習(xí)和了解第三方庫,這是在 Windows 平臺下開發(fā)時比不了的.通過學(xué)習(xí)這些高質(zhì)量的庫源碼我們可以真真切切的看看高手們是如何設(shè)計的,他們的編程風(fēng)格是什么樣,當(dāng)他們面臨和我們同樣的問題時解決思路是什么樣...熟讀唐詩三百首,不會作詩也會吟.多讀高手的代碼,學(xué)習(xí)他,揣摩他,慢慢的我們也會成為高手.