何必言精通——十年雜感

30虛歲了。這一、兩年,有事沒事之中口中經常念著李商隱那首《錦瑟》:

錦瑟無端五十弦,一弦一柱思華年。莊生曉夢迷蝴蝶;望帝春心托杜鵑。滄海月明珠有淚;藍田日暖玉生煙。此情可待成追憶,只是當時已惘然。

此情可待成追憶,只是當時已惘然。回首過去的十年,堪稱快意,十年里,領略了很多領域:新材料、寫作、技術管理、企業分析、軟件開發等等,都留下了不深不淺的腳印:材料學是我本來的專業,很順利的拿到碩士學位;其它成績也不平凡,小說發表過,書籍出版過,項目主持過,公司成立過,可算豐碩。而今回想,卻只有一個詞:浮躁。

以開發而言,起始于1997mud程序開發,起步于網絡浪潮階段,asp呵呵。后來自然就過度到asp.netC#。隨著項目需要,C++javaTclPython……用過的也不少。也曾經癡迷過模式,那段時間買書都是從amazon上買,一個月幾千的書錢。而今回頭看,大浪淘沙,所余有價值東西不多,卻忽略了很多重要的東西,可見當年的浮躁。

一、先談忽略的東西。

1)英語。

十年前,那時SQL Server 還是 7.0,純英文的,找不到一個漢字。有一天,我要備份數據庫,一看上面選項:Backup……Restore……。當時英語是三級左右,不認識啊,我就猜:Store不是存儲嗎,Restore……再存儲不就是備份嗎?up不是起來嗎,Backup不就是把后面的東西拎上來嗎?于是,Restore被我理解成了備份,Backup被我理解成了恢復。結果:幾天的數據頓時灰飛煙滅。

英語的重要性怎么強調都不過分。第一點,就開發而言,大部分技術文檔都是英文的,讀英文能夠更加精確的掌握API,要盡可能的看英文文檔而不是翻譯過來的文檔。第二點,就需求而言,一美元在老外眼中和一人民幣在我們心中的地位差不多,好幾倍的差距啊,英語好能夠更好的和他們溝通,賺這些票票。

哎,可憐我的啞巴英語。

2)數學

只能以“當時已惘然”來形容。

微積分、線性代數、概率論/隨機數學、數值分析這些大學數學的重頭戲,當初年少輕狂,以為今后不會再用到就沒怎么認真學。

隨機數學是后來最先用到的,做論文時,我用基本的隨機數學工具結合一系列簡單的表征巧妙的得到了材料的一些特性,于此體會到數學工具的威力。一年后,做離散事件仿真,也是隨機數學大放異彩。

最近在CSDN上看到了一個圖像識別項目,很快的我就做出原型出來,到后來,識別率卻上不去。要讓識別率上去,需要用到神經網絡、Hough變換等數學工具。《模式分類》一書看了大半,就把在我大腦中昏睡十年的微積分、線性代數、數值分析都喚醒了。暈倒,什么神經網絡,搞過來搞過去還不就是求極值,當初大學的《數值分析》換了個馬甲而已。

3)執著

擅長十件事情不如只擅長一件事情。回想十年,我的另一大失策便是擅長的事情太多。別人只用把精力放在一件事情之上,我卻需要將它放在多件事情之上。當初大家都處于差不多同一起跑線上,而今,大學同學差不多已步入職業生涯的上升期,堅持創業的狐朋狗友也有小成,堅持寫作的狐朋狗友也成了知名作家,而多條腿走路的我卻離起點并不太遠。用軍事話語說,就是犯了分兵之大忌。

4)規范

學習規范是最廉價的學習方式,關注于工具,忽略規范往往會付出很大的成本。以我自身的例子來說,我開發了很長時間的Spider,卻沒有閱讀過Html規范,最近將html 1.1規范打印出來再看,發現自己之前對html有很多的誤解,有很多bug源于這些誤解。

從北京回到我現在的城市,關于.net的電腦書,我只帶了一本,就是《.net程序設計規范》,而在這之前,規范卻是我一直忽略的。

二、再談體會。

1)價值

無論做什么事情,腦中都要有這個詞——價值。沒有價值的東西,易變,不易把握,不易長久。追逐技術,需要考慮價值問題。我們是為了實現價值去學習技術,而不是單純的為了技術而技術。

技術的價值體現在:

·解決問題。如,實現一個功能。

·提高生產力。如,實現同樣的功能,引入框架可以縮短開發周期,提高質量。

·提供良好的產品或體驗。如,Ajax

能夠有效的解決問題的人是領域專家。能夠提供足夠的生產力的人是技術專家。能夠提供良好的產品或體驗的人是產品專家。

可以經常問問自己:

a)有哪些待解決的問題呢?

技術的發展是對生活的解構與重構。計算機技術的發展成功的解構與重構了印刷術,避孕技術的發展成功實現了做愛與生殖的分離。

我們能否通過技術將美味與美味的載體分離呢?能否有可編程美味芯片呢?

這個問題很有意思,不過太大了,在短期十年二十年可能都不會實現。

換個小點的。以股市為例。股民的預期對股市價格有很大影響,而股民的輿論可以在某些方面反映股民的預期,互聯網是一個很大的輿論平臺。如果能夠發現股市輿論和未來股價之間的關聯,并且通過網絡輿論監測和數據挖掘來測量股民的輿論,這樣的系統是有價值的。

b)有哪些提高生產力的方法呢?

影響軟件生產力的有幾個因素,人力是一個因素,開發過程是一個因素,技術的基礎設施是一個因素,需要綜合考慮來進行技術決策,而并非盲目的學習新技術,學習新方法。

c)如何提高用戶體驗?

有時候,我們拿到新工具了,卻往往忘了我們為什么要用該工具。以ajax為例,ajax通常能夠提高用戶體驗,但它也能夠破壞用戶體驗。比如,我的gmail信箱經常登陸不上去,必需清空歷史數據,清空里面的js緩存才能夠正常登錄。再比如,前一段時間的china-pub搜索功能80%情況下用不了。這樣,就違背了它本欲實現的價值。

順便罵一下csdn,怎么看怎么像雜貨鋪。

技術這東東只能是媒介,可能變動很快,但是價值卻很少發生變化,就如男男女女,花里胡哨的,無非就那點事情,換換馬甲而已。

2)競爭力

嘿嘿,有價值的東西未必有競爭力,比如,水,生命中不可缺少,卻是超級的便宜。無它,易得而已。同質的東西多了,競爭力就下來了。

就做技術的人來說,競爭力主要集中于:

·深入??? 一件事情做得比其他人都好,弄的透徹,自然就具有競爭力。走這條路需要的是耐心。

·細分 把一件事情做出花樣出來,在滿足客戶基本需求基礎之上,同時相比其它競爭者,能夠更好的滿足客戶的其它需求。走這條路需要的是對需求的研究和掌握。

·前瞻 在未來的事情發生之前,便弄一些東東等在那里。放眼天下:舍我其誰。這條路需要的是洞察力和毅力,還有很大的運氣成分。

最近在網上接活,有個很有意思的發現。

感覺活分兩種:

一種活你干的時間越長,單位時間里得到的報酬越少,因為這些活不急又具備很強的競爭性,發布者在心理上是按著市場價進行定位的。

一種活你干的時間越短,你的總報酬就越多,因為這些活又急,能做的人又不多,或者能做的人雖多,但是能在短時間內做出來的人極少。你做的越快,得的錢越多。發布者根據心理價進行定位的。

你適合干哪種活呢?作為技術人員,我們需要經常思考自己的競爭力。

3)靜下心來時看看毛選

三、對一些技術的評價(個人立場)

a.Net 3.5/VS 2008

感覺最爽的是屬性那一塊不用寫具體的get, set了,使代碼一下子清潔了很多。

擴展方法是個好禮物:它可以使我們的關注點更好的集中在對象上。沒有它,之前要寫很多很多helper類,而到具體用時,要去仔細去翻這些helper類,浪費時間,浪費腦細胞。尤其是和ActiveRecord結合在一起用真是順暢啊。

Linq:怎么看怎么像馬甲。目前還沒發現需要用到它的地方。

LambdaC#下不能自動推導類型,用處僅限于節省點語句,解決一個問題(少寫語句)的同時又引入新問題(多掌握一點語法),毛用沒有。

Silverlight:沒興趣。

SOA:沒興趣。

bOO

DP:忘記差不多了,心中只記得一條,就是策略模式。話說編程時間長了,這玩意就是水一樣的存在,寫代碼自然而然就那樣子了。反而是OO設計的那幾條準則是時間越久,記憶越深刻,體會越多。

UML:不做大項目的話,毛用沒有。

四、我心目中的優秀程序員:

1)有1-2個自己擅長的領域。比如Web前端開發,就得擅長htmlcssjs那些東東。偏業務的,就得擅長需求分析、建模、溝通。

2)掌握一種適合自己又能被團隊/公司/客戶接受的軟件開發過程。

3)熟悉相關的技術基礎設施(基本工具,基本框架)


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452959.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452959.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452959.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql 索引效果是否疊加_MySQL基礎實用知識集合(二)

上期小編給大家匯總介紹了mysql的6個基礎的知識點,下面繼續給大家分享一下另外7個知識點:7、什么是死鎖?怎么解決?死鎖:兩個或多個事務相互占用了對方的鎖,就會一直處于等待的狀態。常見的解決死鎖的方法:(…

常用數據庫端口號總結

關系型數據庫: 1.Oracle數據庫默認端口號為,1521; 2.MySQL數據庫默認端口號為,3306; 3.SQLServer數據庫默認端口號為,1433; 4.postgreSQL數據庫默認端口號為,5432; NOSQL數據庫: …

【附源碼】為了幫助程序員談戀愛,我做了這個APP

前段時間,21歲的我第一次開啟了名為『戀愛』的副本,開始打名叫『女朋友』的BOSS,深感過程艱難,整個過程仿佛0級的菜雞進入了布滿世界迷霧的地圖,只能小心翼翼才能平安通過。然而在打怪升級的過程中,偶然看見…

IP協議

IP協議只負責傳送IP數據包,無法監視和控制網絡中出現的一些問題,這些工作由Internet的控制協議來完成IP是T C P / I P協議族中最為核心的協議。所有的T C P、U D P、I C M P及I G M P數據都以I P數據報格式傳輸。它的特點如下:不可靠(u n r e…

職場故事和感悟

1. 獵頭烏龍事件 05年11月的時候,我做了一個招聘主管的職位,一位朋友T推薦了她的好友L。從條件上看人很合適,聰明肯干,就是資力淺些,如果工作努力應該提高很快。我與其它兩個候選人一起推薦給了客戶。L與其它兩人一…

zbb20180415 cs 1.6 half-life launcher已停止工作

控制面板->系統->高級系統設置->高級->性能 設置->數據保護->為除下列選定程序之外的所有程序和服務啟用->添加-> 找到你的CS客戶端 選擇就好了-》應用 -》確定轉載于:https://www.cnblogs.com/super-admin/p/8849581.html

python形參中的:*args和**kwargs區別

詳細參考文章: https://blog.csdn.net/u014513323/article/details/89450573 感謝樓主分享

gitlab修改用戶密碼_CRM用戶模塊(用戶密碼修改)

四 密碼修改1 需求分析修改當前登陸用戶的登陸密碼2 頁面原型3 流程圖 4 編寫ControllerResponseBodyRequestMapping("updatePwd")public MessageModel updatePwd(HttpServletRequest request, String oldPassword, String newPassword, String confirmPassword){Mes…

ICMP協議簡介

ICMP是Internet Control Message Protocol,因特網控制報文協議。它是TCP/IP協議族的一個子協議,用于在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由器是否可用等網絡本身的消息。這些控制消息雖然并不傳輸用戶數據&…

vue之vuex

vuex負責vue的數據管理和共享,適用于大型項目 安裝vuex npm install vuex --save; 運用vuex 主要有五大金剛: export default new Vuex.Store({//$store為了讓外部可以引用state,//數據存儲mutations,//行為動作actions,//異步改變state狀態,也就是提交m…

項目管理中的特殊———例外管理

概念 例外管理由管理學引入領導學,也就是指領導人應將主要精力和時間用來處理首次出現的、模糊隨機、十分重要需要立即處理的非程序化問題。而對于決策對象反復出現的,決策者已有固定的或例行的程序來處理的問題,即常例,由于在職業…

mysql 5.6.23 源碼包安裝報錯_CentOS6.5_64bit下編譯安裝MySQL-5.6.23

標簽:************************************************************CentOS6.5_64bit下編譯安裝MySQL-5.6.23**************************************************************一、關閉防火墻chkconfig iptables offservice iptables stop二、下載mysql源碼包&…

third day- 01--文件操作

1 1、請分別介紹文件操作中不同的打開方式之間的區別:2 3 模式 含義4 r 文本只讀模式5 rb 二進制模式  #這種方法,是用來傳輸或存儲,不給人看的。6 r r 是讀寫模式,只要沾上r,文件必須存在7 rb …

什么是TTL

TTL是指生存時間,簡單來說,它表示了數據包在網絡中的時間,經過一個路由器后TTL就減一,這樣TTL最終會減為0,當TTL為0時,則將數據包丟棄,這樣也就是因為兩個路由器之間可能形成環,如果…

python中itsdangerous模塊

使用itsdangerous生成臨時身份令牌 準備工作: 安裝pip install itsdangerous import itsdangeroussaltsdaf#加鹽,指定一個鹽值,別讓別人知道哦,否則就可以解密出來了 titsdangerous.TimedJSONWebSignatureSerializer(salt,expire…

微信小程序中form 表單提交和取值實例詳解

2019獨角獸企業重金招聘Python工程師標準>>> 我們知道&#xff0c;如果我們直接給 input 添加 bindinput&#xff0c;比如&#xff1a;<input bindinput"onUsernameInput" />&#xff0c;那么可以在 onUsernameInput 中直接使用 e.detail.value&…

matlab如何用代碼導入文件_20+行Matlab代碼實現文件掃描

最近剛好看到一篇回答&#xff0c;用閾值二值化處理圖片水印&#xff0c;受到啟發寫此代碼。閾值二值化適合處理只有黑白兩色的圖片&#xff0c;考慮到文件蓋章&#xff0c;這里作者使用像素顏色替換及灰度值處理圖片&#xff0c;進一步提高處理精度和能力。我們需要&#xff1…

聊聊Code Review

轉載&#xff1a;https://richardcao.me/2016/09/30/Talk-About-Codereview/ 最近思考一個問題&#xff0c;如何進行高效的codereview&#xff0c;有沒有好的工具可以使用&#xff0c;于是花了兩三天時間在Google里淘了一番&#xff0c;這里留下記錄。 Phabricator 首屈一指的c…

項目管理十大趨勢

趨勢一、更多中國企業成立項目管理辦公室&#xff0c;項目管理辦公室也發揮更大的作用 在國內&#xff0c;仍有很多企業每年有成百上千的項目實施&#xff0c;而公司卻沒有成立項目管理辦公室&#xff0c;或者已經有了PMO&#xff0c;但是PMO仍在履行一些較為基礎的職能。 沒…

啟動django服務器報錯raise errorclass(errno, errval) django.db.utils.InternalError

問題描述&#xff1a; 啟動django服務器python manage.py runserver報錯: raise errorclass(errno, errval) django.db.utils.InternalError: (1366, “Incorrect string value: ‘\xE7\x94\xA8\xE6\x88\xB7’ for column ‘name’ at row 1”) 原因&#xff1a;與mysql數據庫…