寬泛的意義上講,程序員是這樣一群人:他們用某種語言或技術(shù),開發(fā)某種軟件產(chǎn)品(系統(tǒng)),解決特定現(xiàn)實(shí)領(lǐng)域的問題。
有了這個定義,我們就可以來討論程序員的幾種常見定位:
解決某類問題的專業(yè)人士
軟件架構(gòu)與設(shè)計
技術(shù)專家
技術(shù)傳播與布道
解決問題的人
我到底能夠解決什么問題?給別人帶來什么樣的方便?
這是每個程序員首先要考慮的問題。這決定了你要在什么樣的領(lǐng)域、什么樣的公司工作,決定了你做什么產(chǎn)品,也決定了你要選擇什么技術(shù)。
比如你想提升遠(yuǎn)程辦公的效率,那可能就會去做與協(xié)同辦公、溝通、項(xiàng)目管理等相關(guān)的產(chǎn)品,像Slack、TeamViewer、蜜蜂(全時的產(chǎn)品)、釘釘?shù)取?/p>
比如你想解決訪問國外網(wǎng)站的問題,那可能會去做VPN類產(chǎn)品;
王江民想解決安全問題,結(jié)果單人獨(dú)騎白衣飄飄,帶著江民殺毒在中關(guān)村創(chuàng)造了一場神話。
當(dāng)年梁肇新想解決電腦播放VCD、DVD的問題,于是就有了豪杰超級解霸的傳奇。
張小龍想解決郵件收發(fā)與管理的問題,才有了Foxmail,有了Foxmail的成功,才有了后來進(jìn)入騰訊,才有了微信。
……
一旦你把自己定位成解決某一類問題的人,聚焦到某一個領(lǐng)域的具體問題,那么接下來的一切都順理成章,你會很容易就能了解到解決這類問題需要什么知識、業(yè)務(wù)、技術(shù),然后你就可以充滿動力地去學(xué)習(xí),去準(zhǔn)備。
當(dāng)然,你也可能因此脫離具體的技術(shù)去做管理工作,甚至去創(chuàng)業(yè),用你的技術(shù)來打造能夠解決特定問題的產(chǎn)品或服務(wù)。
所以,這個定位其實(shí)是一種元定位,可以衍生出其它的方向。
軟件架構(gòu)與設(shè)計
相對于把自己定位成解決某類問題的人,有的朋友可能更感興趣如何做出一個復(fù)雜的軟件系統(tǒng),對實(shí)現(xiàn)這個系統(tǒng)的過程更感興趣,也愿意不斷去設(shè)計、實(shí)現(xiàn)各種各樣復(fù)雜的系統(tǒng),反復(fù)地挑戰(zhàn)自己。
那他可能給自己的定位是架構(gòu)與設(shè)計。
這也是很多程序員的夢想:做一個真正牛B的架構(gòu)師,體驗(yàn)運(yùn)籌帷幄與庖丁解牛帶來的超強(qiáng)成就感。
比如你定位到大型網(wǎng)站的架構(gòu)與設(shè)計。那你就可能去學(xué)習(xí)Java、http、數(shù)據(jù)庫、分布式、云計算、大數(shù)據(jù)、Docker等各種技術(shù),以及常見的網(wǎng)站架構(gòu)(參考李智慧《大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析》),然后到一個正在發(fā)展(或者已具規(guī)模)的電商類公司去跟著公司一起成長,鑄就自己的架構(gòu)之路。
技術(shù)專家
就像教育的目的是為了讓每個人都成為自己想成為的樣子,但實(shí)際上教育本身卻成了一種產(chǎn)業(yè),考試也成了一種產(chǎn)業(yè)。軟件開發(fā)也是類似的:技術(shù)是用來創(chuàng)造軟件系統(tǒng)(產(chǎn)品)以便解決現(xiàn)實(shí)問題的,但實(shí)際上圍繞技術(shù)本身也形成了新的產(chǎn)業(yè)。
比如技術(shù)培訓(xùn),比如各種技術(shù)認(rèn)證,比如技術(shù)圖書……
所以,也有很多程序員把自己定位在技術(shù)本身,寄望于成為某一個特定技術(shù)領(lǐng)域的專家,建立自己的頂端優(yōu)勢,從而成就自己。
比如有的人專攻Hadoop,有的人專攻Docker,有的人就是把OpenGL用的很溜,有的人在視頻編碼上有很深的造詣,還有的人成了Go語言專家,還有的人調(diào)試技術(shù)特別牛(比如《軟件調(diào)試》和《格蠹匯編》的作者張銀奎,膜拜一下)……
當(dāng)你在某個技術(shù)領(lǐng)域有深入的研究,形成了優(yōu)勢,你就可以把這種扎根于技術(shù)的優(yōu)勢復(fù)制到各種領(lǐng)域去解決各種問題。這也是非常好的道路。
技術(shù)傳播與布道
我想來想去,自己的位置非常尷尬……
因?yàn)槲壹葲]有把自己定位到解決什么問題上,也沒有成為架構(gòu)師,更沒有在某個領(lǐng)域成為骨灰級專家……
所以我只好安慰自己說,Ok,我想做的是:如何更好地幫助初學(xué)者學(xué)會一種技術(shù),跨越從不了解到會應(yīng)用這種技術(shù)解決問題的過程。
Ok,這就是技術(shù)傳播與布道的定位了。
所以,從這個定位出發(fā),我會寫一些入門級的博客文章,講述某種語言、某個技術(shù)點(diǎn)如何用,什么包括環(huán)境配置等不那么有技術(shù)含量的文章,也會寫一些技術(shù)圖書來幫助別人(比如《Qt Quick核心編程》和《Qt on Android核心編程》),然后我還錄了一些入門級的視頻課程……
當(dāng)然這個定位也可能催生一些產(chǎn)品,類似Codecademy、計蒜客、萌碼、慕課等。
我有一段曾經(jīng)迷惑過:作為有多年開發(fā)經(jīng)驗(yàn)的程序員,還在博客上撰寫入門級的技術(shù)文章,合適嗎?當(dāng)我用這個定位合理化了自己的行為后,居然不困惑了。
程序員的迷茫與解脫
很多程序員都很迷茫,學(xué)了一兩門語言,做了三五年開發(fā),不知道接下來該怎么辦。
這就是定位的問題:找不到自己的定位,是迷茫的根源。
現(xiàn)實(shí)情況是很多人說自己是Java開發(fā),前端開發(fā),C++開發(fā),但你真的是把自己定位到語言與技術(shù)這個層面了嗎?還是說,你其實(shí)并不打算成為技術(shù)產(chǎn)業(yè)的一份子,只是除了“熟悉某種技術(shù)”,并不知道自己要走向哪里?
請思考一下,在信息的汪洋大海中遨游時,你的方向在哪里?
……
當(dāng)你把自己定位成技術(shù)專家,那你就會努力在某個方向上建立自己的知識圖譜,形成頂端優(yōu)勢。這條路漫長而艱難,可能三年五年,也可能八年十年。比如李飛飛聚焦在圖像識別這個方向,取得了令人矚目的成就,現(xiàn)在正在把圖像識別嫁接到各種領(lǐng)域去解決實(shí)際的問題。
……
當(dāng)你把自己定位成解決問題的人,那Java、C++、Spark、Docker、區(qū)塊鏈這類技術(shù)層面的東西,就不再會困擾你,需要什么,你可能就會去學(xué)習(xí)什么,你培養(yǎng)的,是自己解決問題的思維和框架,是拿到任何的問題,都能快速發(fā)現(xiàn)解決之道。
這種定位,還可能會引領(lǐng)你走出具體的技術(shù)工作,轉(zhuǎn)型去做管理,因?yàn)閹ьI(lǐng)一個團(tuán)隊(duì),可能會更有助于你去解決更大更復(fù)雜的問題。
……
定位能夠產(chǎn)生目標(biāo),目標(biāo)會讓你聚焦在一個方向上,遠(yuǎn)離迷茫。所以,只要你根據(jù)自身的實(shí)際情況,找好定位,就擁有了擺脫迷茫的銀彈。
最后,送一張圖,供定位時參考:

-
程序員
+關(guān)注
關(guān)注
4文章
956瀏覽量
30940
發(fā)布評論請先 登錄
芯盾時代SDP助力企業(yè)應(yīng)對核心機(jī)密泄露危機(jī)
程序員最常見謊言
堆和棧的區(qū)別
軟通國際亮相2025沙中開源與AI科技峰會
奔赴熱AI,碼力全開!Talkweb House@1024程序員日系列活動圓滿收官
開鴻智谷“以賽促學(xué)、以賽選才”|1024程序員節(jié)暨開源鴻蒙構(gòu)建大會圓滿落幕!
基于STM32 人群定位、調(diào)速智能風(fēng)扇設(shè)計(程序、設(shè)計報告、視頻演示)
基于STM32 人群定位、調(diào)速智能風(fēng)扇設(shè)計(程序、設(shè)計報告、視頻演示)
程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)
CY7C68013A無PID和VID,如何制作PDF?
如何在 樹莓派 上編寫和運(yùn)行 C 語言程序?
零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?
Gemini Vision + Raspberry Pi 化身“數(shù)字導(dǎo)盲犬”?
程序員怎樣定位
評論