我個人是一個程序員,關(guān)注web、分布式和數(shù)據(jù)處理。
我將web看做最流行的、天然跨平臺的展現(xiàn)和可視化技術(shù),將分布式看做程序協(xié)作、協(xié)作程序的最適架構(gòu),將數(shù)據(jù)處理看作需要基礎(chǔ)、技巧、認知、視野以及領(lǐng)域知識兼而有之的事,所以做數(shù)據(jù)處理,會提升基礎(chǔ)、技巧、認知、視野以及領(lǐng)域知識。
這些都是廢話,還挺繞,但理解廢話,對我來說,不是那么簡單的事。
我認為能力的提升來自厚積,所以對于基礎(chǔ)的東西,應(yīng)該保持持續(xù)的熱情。
認為基礎(chǔ)應(yīng)該包括但遠不限于:
數(shù)據(jù)結(jié)構(gòu)和算法、
算法、
網(wǎng)絡(luò)(tcp/ip、p2p、http等等)、
計算機體系和操作系統(tǒng)(內(nèi)存管理、高速緩沖與緩存、線程與并發(fā)、資源與爭用、CPU周期、局部性原理等等)。
認為以上基礎(chǔ)永遠沒有精通一說,至少在我這個智力層次看來。比如你看到嚴蔚敏數(shù)據(jù)結(jié)構(gòu)了,挺好,你又看了算法導(dǎo)論了,更好,能看看普林斯頓的算法,你挺不錯,你又看了些論文,而你確實又用vim、emacs、vs、eclipse或者sublime敲了,那你應(yīng)該可以一眼就看出滿世界的博客的算法文章中的紕漏和層次,那你還是有點功力了。
知識結(jié)構(gòu)的重要性與項目經(jīng)驗會相互影響。同樣的項目,類似的角色,因為知識結(jié)構(gòu)的不同,帶來的提升和總結(jié)也會不同,這種提升對于下一個項目或者更復(fù)雜的項目帶來的裨益也會有所差別,更長的時間之下,這種差別巨大到值10W還是100W。
有十年工作經(jīng)驗,還是一件事重復(fù)了十年,差別可能就在這里。
認為類似“精通java”之類的說辭是存在的,但不談JVM是耍流氓。類庫和框架的熟悉來自工程和項目,可以熟悉一個簡單的API,也可以追著理解AOP,可以應(yīng)用地很簡單也可以很復(fù)雜。如果關(guān)注性能的場景,那么應(yīng)該自覺地關(guān)注JVM。但是JVM是浩大的工程,所以理解它是一個長期的過程,所以精通是一件比較困難的事。但是很多常用的場景,比如BufferedReader和FileChannel、mmap都可以是I/O的一種選擇,何者更加適合,往往要看虛擬機里面和操作系統(tǒng)做了些什么,才會理出最佳實踐,附帶的,對Xss、Xmx、directMemory之類的簡單配置也會有更深的理解。同時有助于看到基于虛擬機的語言的局限,比如HBase的BlockBuffer本身是提高讀取的效率的設(shè)計,但因為JVM的堆和GC機制,這個設(shè)計可能會拖垮HBase。
這一點同樣應(yīng)該適用于C#&CLR。
工作了多年的人都會認為或者自恃自己在某些方面達到精通的水準,有的人的確達到了,但附帶著會有些裝、虛偽和極愛抖機靈,他不會和你好好地探討問題。這種人可能會存在于朋友、同學(xué)、同事、上司當(dāng)中,一個程序員不會活在獨立的容器之中,除了在實力方面要保持自信和謙遜以及付出更多的努力之外,還要注重堅持自己的一些原則而不受一些不夠正能量的企業(yè)文化、圈子文化影響,做自己,才能更好的對待技術(shù),才能給雇主帶來更佳的氣場感受和實際價值。
這個世界不缺乏噴子,有的噴子本身也很厲害,甚至比自己厲害的多,這是他們活著的方式,情緒控制不是什么技巧,你理解的越透徹,你就越能看清什么是噴子,什么是恨鐵不成鋼。
關(guān)于技術(shù)實用論,總有一種觀點是沒去過美國就不應(yīng)該知道星條旗。比如,不是每個公司,每個程序員都會接觸到大數(shù)據(jù),但是人類在沒有飛天的遠古,就已經(jīng)通過圖騰和壁畫來開啟文明的探索和解讀了,這種東西,其實是信仰的力量,說俗一點就是興趣所在,再俗一點,就是機會總是留給有準備的人,愿意不愿意準備看態(tài)度和理解,準備了能不能夠?qū)碛玫蒙?,看機遇,實力和運氣都挺重要,但運氣你控制不了。
人類的大部分知識來自間接渠道,比如閱讀書籍、觀看媒體、道聽途說,離開了學(xué)校,但并沒有離開知識的媒介。好的知識來源,比好的學(xué)習(xí)方法更加重要,這通常也是牛逼的院校和不牛逼的院校的主要區(qū)別。有的學(xué)校的老師在微博還在成長的階段就開始講授社會計算了,如果你沒有這個知識渠道,應(yīng)該不會認識到ETL、數(shù)據(jù)挖掘和倒排索引的意思,可能你已經(jīng)熟練的修改、添加、編譯lucene了。
但是,再好的知識,離開了實踐,均不會得到升華,認為一個好的程序員,應(yīng)該關(guān)注代碼和實現(xiàn),但應(yīng)該摒棄簡單copy原則,雖然copy大多數(shù)情況下對付工作夠用了。私下里,一段關(guān)鍵代碼寫個十來遍真傻,挺蠢的,但如果每種寫法有個思考和理解在里面,有選擇地這么做了,再看設(shè)計模式和重構(gòu),哦,真是這么回事,用茴香豆的方式當(dāng)傻子不是那么不堪忍受的事,至少理解了什么是錯誤,什么是差別,也給你創(chuàng)造了工作之外的提升場景。
很多人持這種觀點,中國人,技術(shù)都是差的,也是寫不出hadoop的,掙錢最重要,但自己又覺得自己很厲害。
其實將寫出hadoop和掙錢作為標準,這個觀點本身就太局限了,人這輩子,錢當(dāng)然重要,寫出能用的hadoop還是寫出mini操作系統(tǒng)還是mini虛擬機,都不必太當(dāng)回事,閱讀源碼和自己實現(xiàn)所營造出的理解深度天上地下,這種愚公移山的做法,更多在于逼迫你去了解更多、更準、更深刻。大部分hadoop專家,其實都是僅僅看了源碼而已,就已經(jīng)能出書了,事實上很多公司在實際中也只是跑一些很簡單、很成熟的挖掘算法,愛奇藝的工程師做線性回歸也是實用即可,大部分公司還是在處理日志,有時候想了很牛逼的算法,還沒有換成SSD重要,所以沒那個環(huán)境,沒那個條件,就不研究了?我想不是的。
關(guān)于掙錢,我覺得,只要興趣所在,能把事做好,錢自己就會來。收入上不去,往往是做的事情就不在高收入的那個區(qū)間,寫程序很難出富翁。說實話,外圍一天的消費可能就是你工資的好幾倍,不用說外圍的收入了。夜總會想玩的high一點不開兩瓶路易十三,可能還會被小姐罵偽土豪,你不送你喜愛的紅、藍、綠牌花束,你都不好意思和她回小區(qū)或者賓館探討遺傳算法。
那么和外圍一起探討遺傳算法的王總、李工的收入更不是寫程序的可以比的了。
所以不要太刻意地把寫程序這件事和掙錢掛起來,局限了你掙錢的本事。
-
程序員
+關(guān)注
關(guān)注
4文章
954瀏覽量
30413
發(fā)布評論請先 登錄
跟老齊學(xué)Python:從入門到精通
Gemini Vision + Raspberry Pi 化身“數(shù)字導(dǎo)盲犬”?

動態(tài) | 芯森電子開展ISO45001職業(yè)健康安全管理體系培訓(xùn)

阿里云升級通義靈碼AI程序員,全面上線
ADS1194調(diào)試串口輸出,在一定時間的轉(zhuǎn)換后數(shù)據(jù)會少一位輸出,為什么?
TMS320C55x DSP CPU程序員參考補充

RVFA 認證賦能未來:資深 IT 專家 Andrea Gallo 的職業(yè)轉(zhuǎn)型技術(shù)之旅

UCD3138A64/UCD3138128程序員手冊

機械革命發(fā)布CODE AI程序員本
AI編程工具會不會搶程序員飯碗
軟通動力子公司鴻湖萬聯(lián)助陣鴻蒙1024程序員節(jié)成功舉辦

第五屆長沙·中國1024程序員節(jié)開幕
90后程序員的職業(yè)成長漫談

評論