[寫給學編程的新手]
本文為作者原創,轉載請注明出處:http://www.lxweimin.com/p/a6fd58a9fb4b
今天公司開公開交流會,本人被邀請做下對開發工作的能力提升方法分享,本著開放分享見解,純粹是交流思想的目的,還請有異見的朋友指正.
做技術開發是為提供更好的產品服務的,技術都不能脫離產品場景而存在.只要你保持改進,你就能在日常的點點滴滴獲得提升,一段時間后,你自己都感覺原來你已經走了這么遠.分享交談可以組織自己的思維和語言,讓參與者可以跟你探討問題的解決,也是別人了解你的方式,何樂而不為.如何去提問,這在網絡上是有一篇經典的論文來指導軟件開發者應該怎么提出問題,具體可以搜索.方法都是自己去找或者通過交流或者平時的心得來獲取的,別人告訴你并不等于你就懂了.好高騖遠或不勞而獲的心態更是不適合做技術開發,知識就是靠積累.
下面舉出對于開發人員能力提升的幾個因素:(下面的各個專題在知乎網上都能找到答案,可以取有共鳴的答案作為自己學習的目標就行)
[學習方法]
關注點:資源,專注,獨立思考,與人交談,勤于總結,注重基礎.資源有:
1.書籍,是完整知識圖譜的體現,任何學習方式都沒有書籍完整和直接,不屑于下載電子書,我不會看.書籍要看經典,書籍要分等級,自己是初級看初級入門書,高級看高級提升書.
2.網站論壇,是答疑的好地方,CSDN是全國的開發者支持的論壇,你提問提得好,自然有人答,新手在新手區提問,提問前看有沒有類似的問題答案.
3.博客,關注較少的博客,查看并學習他所有的文章,這是專題學習的最佳實踐.<自己去論壇找>
4.代碼,你懂的再多,缺少代碼量,一切都是徒勞,一切也只是個印象.github是個全世界共享的代碼庫,你可以fork開源項目到自己本地練習開發.
5.一些比較經典網站:
知乎[知識問答類網站]
CSDN[技術博客和技術論壇類綜合網站]
ibm developer[技術專題論文類網站]
你所關注的技術的官網[精準的工具查詢類網站]
同類型的網站只需要關注一個就行,別關注太多,精力有限,互聯網少即是多.
6.專注:
如果你很菜,請下班后,除去睡覺,業余時間用來專注你當前的問題,并總結成博客輸出.
7.獨立思考:
做任何事情首先都需要獨立思考,自己先debug一遍,再查官方文檔,再google,最后再問同事.
8.與人交談:
當你不知道或者糾結于二選一的時候,把你的疑慮說出來,這里請注意,別人沒有回答你問題的義務和責任,別人可以選擇不回答你很low的問題,回答了你記得說感謝.
[解決問題的方法]
1.解決之前,先得有思路,沒思路也就是沒解決辦法.這里我說下編程活動其實就是一個Question and Answer的活動,平時要積累正確的知識,包括不限于:
2.各個知識點的定義學習
3.專業經典程序設計書籍
4.多看,多編寫,多模仿.
5.先整體結構搞清楚,流程弄清楚,再局部細節.
[熱愛技術,熱愛產品,主動是鑰匙]
1.你不愛技術,不樂意做產品,不喜歡挑戰,就不適合做技術.主動是鑰匙,敢于承擔任務,做項目,越緊急的項目,你越是注意力高度集中,你的收獲也會越大,項目之后做個總結歸納,可以起到事半功倍的效果,做開發也會越來越輕松,技術也會越來越得心應手,工作也就不止于當前的開發任務,越來越關注于更高級的設計工作.
[做技術開發常見的思維活動是什么?]
1.問問題,有一篇經典文章告訴你怎么提問,提問的智慧.
2.畫圖,流程圖,原型圖,類圖,思維導圖等更直觀的思維體現
[如何去學習技術知識?最快的提升方式?]
第一步,先積累正確而完整的知識結構體系,書籍是最有效的方式
第二步,寫博客,把自己的筆記在網絡上發布,注意,一定是經過思考的高質量(至少檢查2遍)博客文章.
第三步,做項目,不管是公司項目還是業余項目,只要有項目做.不要輕易拒絕幫助別人.
第四步,選擇目標,確定范圍,前端開發需要精通html/css/javascript,后端開發需要精通javaee/oracle.移動端android開發需要掌握java/android.當然,你如果想全棧開發,那是需要相當大的勇氣的,工具不在多.
推薦書籍:
<程序員修煉之道 從小工到專家>
<第一行代碼-android入門>
<android編程權威指南-android提升>
<android開發精要-android提升>
<effective Java-Java提升>
<core Java -Java基礎>