轉載:程序員從初級到中級10個秘訣

Justin James曾發表過一篇博文《10 tips for advancing from a beginner to an intermediate developer》,為我們分享如何才能完成程序員從初級到中級的蛻變,現將中文譯文轉載于此,供大家借鑒。

在一封與TechRepublic會員交流的郵件當中,他提到了面向程序員的博客、文章及雜志分成兩類:面向初學者類(“hello world”這種類型的教程)以及面向專家類(MSDN雜志)。這個觀點很好,有關程序員如何從初級躍升到中級的信息極少。以下是為了實現這種轉變需要你 去做的10件事。

1.學習另一門語言

其實你學的是哪一門語言并沒有關系,但是學習另一門語言(不管你已經了解多少種語言)將把你打造為更好的程序員。能學會一門與你日常使用的語言風格 迥異的語言則更佳。打個比方,如果你是C#程序員,學習VB.NET或者Java對你的幫助就沒有學習Ruby或者Groovy大。

我說“學另一門語言”的意思是要真正學會它。學習一門語言包括三個領域的知識:語法、內置操作符和庫,以及“如何使用”。前面兩個簡單;我認為一名 有經驗的程序員,根據語言的不同,能在半小時到幾小時內掌握足以維護代碼的語法知識。操作符和庫只不過是知識逐步積累的過程,你什么時候想清楚要了解什么 了,再去查閱參考材料也不遲。只有第三項,“如何使用它”-要花上你幾個月的時間去跟這門語言打交道,真正的奇跡就在此發生。我建議用這門語言的風格去做 一個適合該語言的項目。

真正學會了另一門語言之后,我敢保證你的程序員水平一定會突飛猛進。

2.學習先進的搜索技術、手段和及策略

作為一名好的程序員,不僅僅是技能的問題了,而是你尋找信息的技巧,這個趨勢越來越明顯。對大部分人而言,僅僅輸入“現代語言及開發框架”,這都是 泛泛之談,記不住多少的。因此,你完成工作的能力通常取決于你的檢索能力。不幸的是,了解到如何找到準確而高質量的信息可不僅僅是跑到 TechRepublic來找答案,或者在你選好的搜索引擎上敲幾個字那么簡單。

“技術(Techniques)”、“手段(tactics)”和“策略(strategies)”看起來是一回事,實際上并非如此。你需要學會的 技術是掌握你喜愛的搜索引擎的高級搜索系統;你需要了解諸如布爾操作符,如何過濾結果(像“非”關鍵字,域限制等等),關鍵字的詞序扮演什么角色,等等。 一句話,RTFM(Read The Fucking Manual,讀那些他媽的手冊)吧。

你應該學會這些手段,諸如如何接近特定的搜索,以及了解自己實際上想查些什么。查錯誤很容易—只需查出錯代碼即可—但是許多搜索的關鍵字選擇要困難得多。

至于策略,你需要學會的東西,包括像應該使用哪種搜索引擎(提示:普通的搜索引擎不一定就是最佳選擇),使用普通搜索引擎前應該訪問哪個網站,甚至是應該到哪個論壇去尋求幫助,等等。

3.幫助別人

教別人始終是學習一切東西的最好方法之一。相對而言,由于你在開發領域還是個新手,認為自己沒什么可教給人家的,這可以理解。但這毫無意義。記住, 你所學到的一切都是你從別人或別處學到的;因此請嘗試一下,成為另外一個人要請教的“別人”。每天盡量花一點時間試著回答TechRepublic上的問 題,其他網站的亦可。讀讀其他會員的回答,你也可以學到很多東西。

4.有耐心,常練習

研究表明,要成為一名“專家”,需要花費10年,或者10000到20000小時的刻意練習時間。真的很久。還有,成為專家不盡然就是執行10年同 樣的任務;通常這意味著要在特定領域內執行廣泛的任務。需要花費大量的時間和精力才能成為“專家”;做幾年程序員是不夠的。想在30歲左右成為一名高級軟 件開發工程師?要么盡早接受教育/培訓,要么你得愿意在閑暇時間進行大量的工作、閱讀和練習。我從高中開始編程,還犧牲了許多休息時間去跟蹤行業發展、學 習新技能等等。結果,我獲得中級和高級程序員的時間就比我的大部分同事都要早得多,隨著時間的推移,這些就轉化成為很多的金錢。

5.對教條拒之門外

是時候開誠布公了:也許初級程序員了解的東西還不足以說出做某件事情有一種最好的方式。尊重朋友或者權威的觀點是好的,但直到你更有經驗之前,不要 把他們的觀點說成是你自己的。很簡單,如果你所了解的不足以讓你獨立地找出這些東西來,你又怎么會認為你知道哪一位“專家”是對的呢?話是難聽了點,不過 請相信我;由于受某些愚蠢建議的蠱惑,或者追隨某些根本不知道自己在說些什么的所謂專家,白白把自己的職業生涯耽擱了幾年,這樣毛頭小伙程序員,我見過多 了。這一點有一個很好的例子,就是面向對象結構的濫用。比如說,許多初級者讀了一些有關面向對象的信息后,突然間,他們那簡單的應用程序的類圖看起來就像 埃菲爾鐵塔一樣了。

6.深入學習一點先進理念

成為一名中級程序員,很大一部分是要在代碼里面體現出一些所擅長的概念。就我而言,是多線程/并行性,是正則表達式,以及如何對動態語言進行變化 (后兩個在我離Perl漸行漸遠后開始退化)。這是如何發生的?多線程和并行處理是因為我讀了相關文章,覺得它看起來很有趣,然后再自己把它弄清楚了;然 后我就一直使用這些技術來寫應用。我做過一件工作,是用Perl寫的,里面運用了大量的正則表達式。我也用一個過程引擎模板和內置數據庫系統寫過我自己的 電子商務引擎;那時我幾乎花了2年時間在這上面。

找到真正令你著迷的東西。也許是圖像處理,也許是數據庫設計,等等。即便你是一個入門級的程序員,也要嘗試一下成為某一自己所關注領域的專家。這會讓你相當快速地進入到中級水平,一旦你到了那個水平,你的專家之路也走到一半了。

7.學習你的領域里面的基本理論

寫出“Hello World”,跟理解那些字是如何顯示到屏幕上的是兩碼事。通過學習支撐你所從事的工作的“基礎/底層工作(groundwork)”,你會變得更加在 行。為什么?因為你會理解事物為何會以這種方式運作,當東西壞了就能知道是哪里的問題,等等。通過掌握工作的底層機制,你變會得更出色。

如果你是Web程序員,讀讀HTTP RFC和HTML規范。如果你使用代碼生成器,好好看看它生成的代碼;如果你使用數據庫工具,看看它生成的底層SQL語句,不一而足。

8.看看高級程序員的代碼

在工作中看看高級程序員寫的代碼,然后問一問事情是如何以某種特別的方式完成的,為什么?可能的話看看開源的項目。甚至即使其他程序員沒有最好的編 程習慣,你也會學到許多編程經驗。當然,要小心別學到壞習慣。我的意思是說不要生搬硬套人家的東西;你要能領會到哪些是能行的通的,哪些是有道理的,然后 再模仿人家。

9.學習好的習慣

愚蠢的變量名,糟糕的縮進習慣以及其他一些凌亂的跡象就是一個沒有經驗的程序員的最好標記。一個程序員在學會如何編程時,卻經常沒有被傳授到那些不 那么有趣的細節,像代碼格式編排。甚至盡管學習這些東西并不會令你的代碼更好,也不會令你成為更好的程序員,它也會確保你不被同事視為入門級的程序員。甚 至即使某人是高級程序員,如果他的變量是以他那97只貓的名字來命名,或者其函數叫做“doSomething()”的,他們看起來也不像是知道自己在干 什么的人。而且會令其代碼在過程中更難以維護。

10.要玩的開心

想要癡迷于單調乏味的工作?痛恨工作吧。要想升級為中級程序員可不僅僅是為了拿到不斷增長的工資不達目的誓不罷休,而是要真正享受工作。如果你不喜 歡自己的工作,且還是初級程序員,你怎么會認為成為中級或高級程序員情況就會有所好轉呢?換工作或改職業吧。反過來說,如果你喜愛所從事的工作,那就好! 只要你堅持下去,我保證你能成為一名更好的程序員。(Justin James)

【人物小傳】

Justin James

?

Justin James

Justin James就職于Levit & James, Inc,并在公司中承擔著混合編程、網絡管理員、系統管理員多項職務。自2005年就在TechRepublic開博,博客地址:http://blogs.techrepublic.com.com/10things/。

轉載于:https://www.cnblogs.com/zhaozhilu/archive/2012/02/10/2344965.html

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

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

相關文章

ux設計工具_UX設計中的工具和實用主義

ux設計工具There’s a zillion tools for User Experience and User Interface Design. Don’t take my word for it: a simple Google search for “what are the best tools for wireframing” (to take just one aspect of UX) leads you to endless pages of “The 20 best…

幕后常駐嘉賓配音小姐姐的2021年度總結

大家好,我是若川。這是公眾號幕后常駐嘉賓配音小姐姐,看完了上一個阿源小姐姐的年度總結《一張圖看程序媛阿源的2021個人年度流水賬》,寫的年度總結投稿。點擊以下音頻可以查看收聽往期更多音頻。以下是正文~Hi,大家好呀~我是若川…

java spring cloud版b2b2c社交電商spring cloud分布式微服務:服務注冊與發現(Eureka、Consul)...

Spring Cloud簡介電子商務社交平臺源碼請加企鵝求求:一零三八七七四六二六。Spring Cloud是一個基于Spring Boot實現的云應用開發工具,它為基于JVM的云應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布…

js 全選

<form name"frm" method"post" action"/add" onsubmit"return check()"><table class"titem" ><tr><td class"field"> * 所屬批次</td><td class"value"><sele…

結果規格化_結果

結果規格化If you’ve seen an Instagram story involving a question and people tilting their heads, you probably were looking at the “Who Is More” Instagram filter. In this article, I will share the creative process and decision making behind this filter.如…

2021 年 JavaScript 大事記

大家好&#xff0c;我是 ConardLi&#xff0c;不知不覺中&#xff0c;2021 年已經接近尾聲了&#xff0c;不知道在 2021 這一年&#xff0c;你收獲了什么&#xff1f;又失去了什么呢&#xff1f;又到了開始做年終總結的時候了&#xff0c;今天&#xff0c;我來給 JavaScript 做…

java版spring cloud+spring boot+redis多租戶社交電子商務平臺 (十三)springboot集成spring cache...

電子商務社交平臺源碼請加企鵝求求&#xff1a;三五三六二四七二五九本文介紹如何在springboot中使用默認的spring cache&#xff0c;聲明式緩存Spring 定義 CacheManager 和 Cache 接口用來統一不同的緩存技術。例如 JCache、 EhCache、 Hazelcast、 Guava、 Redis 等。在使用…

windows符號服務器地址

當調試windows程序的時候&#xff0c;有時候會需要一些符號文件。系統的公有符號文件微軟都是提供的&#xff0c;只需在調試器中設置即可&#xff0c;在下次調試時&#xff0c;調試器會自動從網上下載需要的符號文件。可以使用符號文件的調試器有windbg等等。 符號服務器地址&a…

如何融入到更積極的環境,促進技術提升

眾所周知&#xff0c;關注公眾號可以了解學習掌握技術方向&#xff0c;學習優質好文&#xff0c;落實到自己項目中。還可以結交圈內好友&#xff0c;讓自己融入到積極上進的技術氛圍&#xff0c;促進自己的技術提升。話不多說&#xff0c;推薦這些優質前端公眾號前端之神100w閱…

動畫 制作_您希望制作的10個醒目的徽標動畫

動畫 制作重點 (Top highlight)標志設計 (Logo Design) Have you ever watched paint dry? No? I didn’t think so. How about watched a turtle crossing the road? Probably not. Maybe spent an hour standing in line at the post office? Well that’s pretty likely…

NOIP訓練營集訓筆記—信息學基礎算法(倍增與分治算法

本文摘自清北OI學堂內部筆記&#xff0c;作者潘愷璠&#xff0c;來自柳鐵一中曾參加過清北訓練營提高組精英班&#xff0c;主要記錄的是信息學基礎算法。筆記非常詳細&#xff0c;特分享給大家&#xff01; NOIP2019年夏令營正在報名中&#xff0c;6大校區10種班型&#xff0c;…

使用 CSS 用戶選擇控制選擇

IE10 平臺預覽 4 包括一個新的 CSS 屬性的支持-ms-user-select&#xff0c;這使得 Web 開發者控制完全可以選擇什么的文本&#xff0c;在其網站上更容易。如果你是看我一整天都在我的工作站&#xff0c;您會注意到我讀計算機上時&#xff0c;我選擇的文本。我不是只有一個人讀起…

一個在校的普通前端小姐姐的2021

大家好&#xff0c;我是若川。這是我的源碼共讀群里一個大三的前端小姐姐&#xff08;小曹同學&#xff09;的年度總結。她寫了5篇源碼筆記。同時做了很多項目&#xff0c;獲得了很多獎。而且策劃和建立了學校工作室的前端訓練營&#xff0c;40人報名參加。總之就是現在的大學生…

按鈕 交互_SwiftUI中的微交互—菜單按鈕動畫

按鈕 交互Microinteractions have become increasingly important in a world with a dizzying number of digital platforms and an ocean of content. While microinteractions used to be considered an interesting resource in the early days of digital design, in toda…

JavaScript邏輯運算符的使用技巧

前言 !, &&, || 三個運算符是JavaScript中重要的邏輯運算符&#xff0c;本文將介紹這三個運算符在JavaScript實際編程中的有趣使用技巧。 取反運算符&#xff08;!&#xff09; 如果對一個值連續做兩次取反運算&#xff0c;等于將其轉為對應的布爾值&#xff0c;與Bool…

如何接觸到最新的前端動態、最前沿的前端技術

眾所周知&#xff0c;關注公眾號可以了解學習掌握技術方向&#xff0c;學習優質好文&#xff0c;落實到自己項目中。還可以結交圈內好友&#xff0c;讓自己融入到積極上進的技術氛圍&#xff0c;促進自己的技術提升。話不多說&#xff0c;推薦這些優質前端公眾號前端有道社區活…

選擇控件— UI組件系列

重點 (Top highlight)The word “toggle” is a reference to a switch with a short handle that alternates between two states each time it is activated. You encounter it every time you “switch” on the lights.單詞“ toggle”是指帶有短手柄的開關&#xff0c;該開…

linux -- Linux diff與patch的深入分析

diff的輸出格式分為傳統格式和統一格式 1)diff的傳統格式輸出. ############################################ cat before.txt 輸出: This is a line to be deleted This is a line that will be changed This is a line that will be unchanged cat after.txt 輸出: This is …

shell命令之---sed

1. sed編輯器基礎 1.1 替換標記 命令格式&#xff1a;s/pattern/replacement/flags $ cat data4.txt    This is a test of the test script.    This is the second test of the test script.    有4種可用的替換標記&#xff1a; 數字&#xff0c;表明新文本將替…

SEE Conf: Umi 4 設計思路文字稿

大家好&#xff0c;我是若川。持續組織了5個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。復制此鏈接 https:…