程序員學習能力提升三要素

摘要:IT技術的發展日新月異,新技術層出不窮,具有良好的學習能力,能及時獲取新知識、隨時補充和豐富自己,已成為程序員職業發展的核心競爭力。本文中,作者結合多年的學習經驗總結出了提高程序員學習能力的三個要點。

IT技術的發展日新月異,新技術層出不窮,具有良好的學習能力,能及時獲取新知識、隨時補充和豐富自己,已成為程序員職業發展的核心競爭力。本文中,作者結合多年的學習經驗總結出了提高程序員學習能力的三個要點。

眾所周知,現在是一個知識爆炸的時代,知識更新非常快。據測算,一個大學畢業生所學到的知識,在畢業之后2年內,有效的不過剩下5%。對于軟件行業而言,這種形勢更為明顯,我們賴以立足的,不在于我們現在掌握了多少知識,而是我們有多強的學習能力。

學習人人都會,但不同的人學習效果卻千差萬別。一個善于學習的人,首先應該是一個善于讀書的人,懂得如何高效地學習,并且擁有良好的心態。唯有如此,才能成為一個卓有成效的學習者,成就卓越的程序人生。

要善于讀書

買書是最劃算的投資

古人云:“書中自有黃金屋,書中自有顏如玉。”這說明先賢們早認識到,買書是最劃算的投資。

我剛出道時,拿著非常微薄的工資。有一次向主管抱怨道:“現在的書真貴啊,這點工資連飯都吃不起,更別說買書了!”主管對我說:“不要吝惜買書的錢,寧可忍著不吃飯,也不要忍著不買書,因為買書是回報率最高的投資。”

主管的話讓我非常震動。后來,我看到喜歡的書時,再也沒有手軟過。通過不斷學習,我的開發能力不斷提高,工資水平也大幅提高。一年后,我一個月工資的漲幅,就足夠買兩年的書了。你說,還有比這更劃算的投資嗎?

一本書,哪怕只有一頁紙是有用的,它所將產生的潛在價值,也會遠遠超過書本身的價格。當然,書不在多,踏踏實實消化掉一本好書,比泛泛而讀10本普通書,要有價值得多。

多讀經典書

現在市面上給程序員讀的書種類非常豐富。人生有涯,我們只能有選擇性地看,要多看好書、多看經典書。

軟件開發方面的圖書大致分為三類。

1. 淺顯的入門類圖書。這類書的標題往往是《XX天精通XXX》、《XXX從入門到精通》、《XX開發實戰》等,通常從軟件的安裝講起。有人批評這類書為爛 書、毫無價值,這并不公平。至少我曾經從這些書中學到了一些東西。即使是21天系列書,也有適合看的人群。只不過,它一般也就只能看21天而已,過后就可 以扔到廢紙堆。這類書只適于還沒有入門的初學者,從中學到一些入門招式。在剛起步時一般買一本就夠了。如果你善于使用搜索引擎,那幾乎沒有買這類書的必 要。

2. 國內外高手寫的實戰類圖書。這類書實戰性很強,將技術及原理講得很透徹。比如《Windows環境下32位匯編語言程序設計》、《深入解析MFC》、 《Delphi深度探索》、《深入淺出WPF》、《深入剖析ASP .NET組件設計》等。以前這類書都是從國外翻譯或從臺灣引進的,現在國內高手越來越多,出自國內作者的圖書也越來越多。如果能在學習的每個方向看兩三本 這類圖書,并通過實踐消化掉,那么毫無疑問,你會成為一名優秀的程序員。

3. 國外大牛寫的揭露本質、有豐富思想的書。這類書就是所謂的經典書,例如《代碼大全》、《編程珠璣》、《設計模式》、《重構》、《代碼整潔之道》等。經典書 就像一個有深度、有思想的朋友,能給你啟發,每次閱讀都會有新的收獲,這類書具有真正的收藏價值。看經典書永遠是正確的選擇,它絕不會浪費你的時間,因為 經典書是無數人沙里淘金、幫你挑選出的結果。

然而,閱讀這類書并不是一件容易的事情。讀者需要有豐富的開發經驗,才能與作者產生共鳴。如果一本經典書你看得很辛苦,那么很有可能是因為你功力未夠,這種情況下不要著急,慢點來,不妨先將其束之高閣,多看看實戰類圖書。過一段時間再回頭來看,也許你會有新的驚喜。

不要在上班時間看書

一個善于學習的人,首先要善于利用一切時間來學習。雷鋒曾說過:“時間就像海綿里的水,只要愿意擠,總還是有的。”然而,當我們從上班時間中擠時間學習時,就千萬要注意了,不要在上班時間看書!

上班時間看書,不但是一件很敏感的事情,而且非常吸引眼球,很快就會引起周遭的不爽。首先老板心里不爽:“我給你錢是讓你來工作的,不是來學習的”;其次同事們也不爽:“我們工作都做不完,瞧,這小子真閑啊”。用不了多久,你就會成為被眾人排斥的異類,這最終會讓你自己“很受傷”。

要高效學習

只學習與工作相關的東西

我曾發現不少程序員在學習方面找不到方向,一會兒學學C#,一會兒學學Java,看了最新的編程語言排行榜,又覺得該學C++。這樣左抓抓,右撓撓,只會讓你覺得更癢。

學習最忌三心二意。俗話說:“傷其十指不如斷其一指”,每門都學一點,還不如專心學好一個方向。這個道理誰都懂,可是又該學哪個方向呢?難道只能跟著感覺走嗎?不!最實際的方向,應該跟著工作走,工作需要什么,我們就學什么,把工作需要的技能熟練掌握,有很多好處。

首先,可以集中精力,在某一方面鉆研得更加深入。所謂“百招會不如一招絕”,有了絕招,你還怕不能在“武林”立足嗎?《天龍八部》中的慕容復武功博學無比,最后還不是被只會一招六脈神劍的段譽打得落花流水?

其次,可以學得更快、更深入,因為學習更具有針對性,而且可以立即在工作中運用,可以馬上檢驗出學習的效果。對存在的問題進行深入研究,掌握的知識也會更加牢固。

再次,學習與工作結合在一起,工作時間也就成了學習時間,這樣就突破了三個8小時的限制:有人說,我們每天所擁有的時間可以分為三個8小時,工作8小時,睡覺8小時,另外還有8小時可以自己自由支配。工作和睡覺的兩個8小時大家都一樣,決定人生高度的是另外這個8小時。當我們把學習的焦點放到與工作相關的知識上時,工作時間中的很大一部分,同時也就成了寶貴的學習時間,這真是一舉兩得的美事啊。

問題是最好的學習機會

日本經營之神松下幸之助曾說過:“工作就是不斷發現問題、分析問題、最終解決問題的過程,晉升之門將永遠為那些隨時解決問題的人敞開著。”可見,工作過程中有問題是正常,沒有問題才是真正的問題。在發生問題時,能勇于面對問題、解決問題的人,才是公司真正的骨干。

現實中,很多人總是千方百計回避問題。當上司安排一項艱巨的任務時,也想盡辦法推托。殊不知,對于個人而言,問題其實是最好的學習機會。往往那些愿意接受困難工作的人,能力會越來越強,那就是因為他們在克服困難的過程中取得了巨大的進步。

織網式學習

知識的廣度和深度都很重要。作為一名程序員,能深入把握技術細節,是寫出優質代碼的保證。但對于一名項目經理而言,知識的廣度更顯重要。項目中碰到的問題往 往具有綜合性,只有具備廣博的知識,才能快速對問題進行分析和定位。在程序員成長的道路上,我們必須有意識地擴大自己的知識面,形成更完善的知識體系。

我曾經編寫過一個網絡信息采集軟件,這個軟件可以從具有列表頁的網站中按字段設置采集信息,支持自定義字段、頁面多級關聯、下載附件、支持多種數據庫、可視 化定義等特性。剛開始,我認為這個軟件只是一個比較大的功能點而已,后來發現這個不起眼的功能關聯著大量的知識點(如下圖所示)。


在開發過程中,我順藤摸瓜,逐個擊破,對很多知識點進行了細致的學習研究。軟件開發完成后,我的知識體系網也進一步得到了補充和完善。

經常思考總結

子曰:“學而不思則罔”。人只學習不思考,就會迷惑,難以把握事情的本質。這就好比一個學武之人,只習得其形,而未得其神,難以成為真正的高手。

從入門到成為高手的過程中,程序員往往要經過幾次頓悟。記得有一次,我領悟到了一個很簡單的結論:“原來高級編程語言中的類庫是封裝了Windows API來實現的。”后來碰到一些自帶類庫無法實現的功能時,我就會想到,其實可以通過調用Windows API來實現。利用這個思路,我解決了一些看起來很難的問題,得到老板的賞識,從而很快獲得提升。

頓悟非常可貴,然而它不是隨便發生的,而是經過一次次苦苦思索之后、靈光閃現的結果。思考的過程,其實就是將外在知識內化為自己的知識的過程。而頓悟,則批量實現這種內化,將無數個知識點連接在一起,達到融會貫通的境界。

克服“高原現象”

愛學習的人都會有這樣的經歷:學習持續了一段時間之后,往往會有一個瓶頸期,長時間似乎都沒有什么進步,于是內心非常著急。

這種情況,實際上是由人的學習規律決定的一種“高原現象”。據研究,學習者在剛開始進步快,隨后有一個明顯的或長或短的進步停頓期,后期進步慢,中間的停頓期叫高原期(如下圖所示)。


高原期,實質是一個消化期。由于前期的學習積累了太多的知識點,這些知識點在大腦中亂作一團,還沒有形成一個知識體系。這時需要一定的時間來消化它,讓它融會貫通,經常思考總結可以快速幫你跨過高原期。

處于高原期時,還可以換一個相關的方向來學習。例如,編程語言學不下去了,可以學習一下設計模式,設計模式也學不下去了,再換成數據庫。通過學習這些相關的知識,不但補齊了知識體系中的短板,而且各個知識點之間可以互相啟發,幫助你實現頓悟,跨過高原期。

要有好心態

學習要靜心

急于求成是學習過程中普遍存在的一種心態,這可以理解。畢竟作為一名程序員,要學的東西實在太多,而社會又是那樣的浮躁,讓人覺得一切都是那樣的不安全、不確定,似乎只有學得快一點,才能跟上社會的腳步。

可是“欲速則不達”,想快快地學,往往會形成東一榔頭、西一棒槌的學習方式,每一個點都沒有吃透。心沉不下去,知識也會沉不下去。要想成為真正的高手,只能靜下心,一步一個腳印慢慢來。

學習是持續一生的過程

人生,就是一個自我完善過程。

子曰:“吾十有五而志于學,三十而立,四十而不惑,五十而知天命,六十而耳順,七十而從心所欲,不逾矩。”可見孔子也不是天生的圣人,也在不停地學習、進步,從“志于學”到“從心所欲,不逾矩”,孔子一共花了55年的時間。

作為一名程序員,更需要不斷豐富自己的知識庫。我們所知道的東西,就像一個白色的圓圈,圈外則是黑暗的未知的世界。當圓圈越大,所接觸到的黑暗部分就越多。我們只有不停地學習,才能打破更多的黑暗,找到更多光明。

保持饑餓,保持愚蠢

我非常喜歡喬布斯的一句話:“求知若饑,虛心若愚”(Stay Hungry,Stay Foolish)。其實我更喜歡它更原生態的翻譯“保持饑餓,保持愚蠢”。我們只有認識到自己還很饑餓和愚蠢,才會像沒吃飽一樣,由衷地需要學習、愛上學習。

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

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

相關文章

時間,數字 ,字符串之間的轉換

package com.JUtils.base;import java.sql.Timestamp; import java.text.SimpleDateFormat;/*** 轉換工具類<br>* 若待轉換值為null或者出現異常&#xff0c;則使用默認值**/ public class ConvertUtils {/*** 字符串轉換為int*** param str * 待轉換的字符串* param …

宏定義及相關用法

宏定義及相關用法 歡迎各位補充 目錄 一些成熟軟件中常用的宏定義&#xff1a;使用一些內置宏跟蹤調試&#xff1a;宏定義防止使用時錯誤&#xff1a;宏與函數 帶副作用的宏參數 特殊符號&#xff1a;’#’、’##’ 1、一般用法2、當宏參數是另一個宏的時候 __VA_ARGS__與##…

解決:Cannot read property ‘component‘ of undefined ( 即 vue-router 0.x 轉化為 2.x)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 vue項目原本是用0.x版本的vue-router&#xff0c;但是去報出&#xff1a;Cannot read property component of undefined 這是因為版本問…

AMD Mantle再添新作,引發下代GPU架構猜想

摘要&#xff1a;今年秋天即將發布的《希德梅爾文明&#xff1a;太空》將全面支持AMD Mantle API&#xff0c;如此強大的功能背后離不開強大的CPU、GPU支持。上周AMD爆出了下一代海盜島R9 300系列&#xff0c;據網友猜測海盜島家族可能用上速度更快的HBM堆棧式內存。 小伙伴們…

不作35歲的程序員?

程序員三部曲--不作35歲的程序員?摩西2000 在中國&#xff0c;程序員不能超過35歲&#xff0c;似乎已經是不爭的事實&#xff0c;軟件開發工作就是青春飯&#xff0c;頂多靠畢業這十年的時間&#xff0c;超過這個年齡&#xff0c;要不成功躍身成為管理者&#xff0c;要不轉…

linux下使用TC模擬弱網絡環境

linux下使用TC模擬弱網絡環境 模擬延遲傳輸簡介 netem 與 tc: netem 是 Linux 2.6 及以上內核版本提供的一個網絡模擬功能模塊。該功能模塊可以用來在性能良好的局域網中,模擬出復雜的互聯網傳輸性能,諸如低帶寬、傳輸延遲、丟包等等情 況。使用 Linux 2.6 (或以上) 版本內核…

CDN 是什么 、CDN 引入

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 CDN 的全稱是 Content Delivery Network&#xff0c;即內容分發網絡。 CDN的基本原理是廣泛采用各種緩存服務器&#xff0c;將這些緩存…

長壽的人會有的8個健康理念

長壽的人會有的8個健康理念。年輕的時候總是在揮霍身體健康&#xff0c;吸煙、喝酒沒有節制&#xff0c;到老了之后身體會出現各種問題。老年人如果想要身體健康、長壽的話&#xff0c;就要從日常生活習慣做起。下面小編就來介紹長壽的人會有的8個健康理念&#xff1a; 1、少…

Ubuntu下selenium+Chrome的安裝使用

Ubuntu下seleniumChrome的安裝使用 安裝 chrome 官網下載安裝包 sudo dpkg -i google-chrome-stable_current_amd64.deb whereis google-chrome 安裝selenium pip3 install selenium 下載chromedriver(火狐使用geckodriver)驅動 http://npm.taobao.org/mirrors/chromed…

shoot for用法

Look, there are people like Ross who need to shoot for the stars, with his museum, and his papers getting published.---《老友記》 而像羅斯這種人則追求卓越&#xff0c;博物館&#xff0c;發表論文。 爭取;為...而努力Were shooting this year for a 50% increase in…

VUE : 雙重 for 循環寫法、table 解析任意 list 、萬能表格組件、解析一維數組、動態生成 table 所有數據

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1.需求&#xff1a; 我想要一個 table 組件能在實際調用時動態生成所有的 tr 、td 。 后端返回的只是一個 list &#xff0c; 前端頁…

安全離職妙招

高招的離職&#xff0c;不但有可能讓前老板幫你說好話&#xff0c;讓前同事成為你的啦啦隊&#xff0c;未來若有好機會&#xff0c;還會想到你&#xff0c;只要你學會克服離職流程中的五個尷尬情境。 情境一、離職怎么提&#xff1f; 口頭請辭&#xff0c;最先告知上司。 有…

字節內推~

大佬們有興趣來字節約飯么&#xff0c;下面是內推鏈接~ 社招內推鏈接&#xff1a;https://job.toutiao.com/s/LwpKWU8 校招內推鏈接&#xff1a;https://job.toutiao.com/s/LwsFw6g

使用編輯工具快速創建實體對象的方法

快速創建java類 (\w)\s(.) /** $2 */\nprivate String $1; search Mode 為 Reqular expression 轉載于:https://www.cnblogs.com/otways/p/11283303.html

超詳細 圖解 : IntelliJ IDEA 逆向生成 JAVA 實體類

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1.配置數據庫,&#xff0c;這里連接的是mysql。 2.填寫 連接數據庫的信息&#xff0c;填寫完成后可以點擊Test Connection,測試一下是否…

用面粉和醋洗頭 讓你的頭發黑亮又濃密

用面粉和醋洗頭發&#xff0c;別看這些最廉價、最普通的東西&#xff0c;卻能帶來意想不到的效果。調配這種洗頭液很簡單&#xff0c;取50&#xff5e;100克面粉&#xff0c;加入少許涼水調成稀面糊&#xff0c;倒入沸水中煮開&#xff0c;然后加入25&#xff5e;50克醋&#x…

leetcode練習——數組篇(1)(std::ios::sync_with_stdio(false);std::cin.tie(nullptr);)

題號1. 兩數之和&#xff1a; 給定一個整數數組 nums 和一個目標值 target&#xff0c;請你在該數組中找出和為目標值的那 兩個 整數&#xff0c;并返回他們的數組下標。 你可以假設每種輸入只會對應一個答案。但是&#xff0c;你不能重復利用這個數組中同樣的元素。 示例: …

intellij idea 中去除 @Autowired 注入對象帶來的紅色下劃線報錯提示

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 PS&#xff1a; 有 2 種方法&#xff0c;第 2 種方法更簡單&#xff0c;在此謝謝好心友人的評論。 方法1&#xff1a; idea中通過Autow…

根據目標選擇減肥方法 少做無用功

不同的美體目標適合的減肥方法也是不同的&#xff0c;有些人想減去大部分體重&#xff0c;而有些人只是想讓身體曲線更柔美&#xff0c;這就要求有相應的減肥方法&#xff0c;對癥下藥&#xff0c;才會讓減肥少做無用功。 目標&#xff1a;我想穿上小一碼的衣服 建議&#x…

Coolite動態加載CheckboxGroup,無法在后臺中獲取

Coolite在后臺動態加載CheckboxGroup&#xff0c;頁面顯示都正常&#xff0c;但是在后臺去獲取選中的checkbox時&#xff0c;使用下方法&#xff1a; ///<summary>///獲取所選權限 ///</summary>///<returns></returns>privatestringGetPermiss…