① 如何成長為一個真正合格的程序員
優秀程序員都是很努力的
一個真正合格的程序員,除了要有扎實的理論基礎和代碼能力,還要有諸多的綜合素質。除非你只是一個純粹的碼農,除非你只是想做一點平淡的代碼工作,否則如果你想有更好的發展,那就必須「學習」。從我自己的發展經歷來講,其實我只是一個半路出家的程序員,我沒上過高中,只是師范畢業,學的還不是計算機,而是美術專業,從參加工作那天起開始自學計算機,花了半年學會了VB程序設計,寫了第一個vb程序,一個校園的自動播音系統,實現了校園鈴聲、升旗、課間操等定時音樂的自動播放,免費提供給學校使用,給學校帶來極大方便,從此我愛上了編程。後來為了宣傳單位的形象開始自學ASP腳本語言,一個月時間寫出了第一個ASP網站,在這個過程中學習了網頁前端布局,知道了前端可以有JS控制,知道了域名是什麼,知道了http協議,知道了WEB服務的發布。從那時起,我覺得網站建設就是一個商機,從此開啟了我的網站建設之路。其實也就是程序員發展之路,至此,我在這條路上一發不可收拾。
在這期間我開始接一些網站建設的活兒,一開始,在網上搜索一些開源的代碼進行修改,滿足客戶需求,但是很快發現一些問題,大多數代碼都是預先掛了一些廣告在裡面,如果對程序不熟悉,等你網站發布出來,你就只能看到滿山的網站,客戶當然就不滿意了,最後你還不知道這些廣告從哪裡冒出來的,甚至有些網站留了很多漏洞和後門,讓你防不勝防。所以,想想還是自己寫一套CMS系統,我只自己使用,只放在自己的伺服器上,這樣的話安全性高了很多,至少被攻擊的幾率少了多,也不擔心莫名其妙冒出來的廣告。於是,我開發了第一套產品,屬於我自己的CMS,期間我可以說學到了更多的知識,累積了不少的產品開發經驗。所以這里我總結一條,要成為一個合格程序員,最好完整的做一個項目吧。哪怕是項目的前端不懂,資料庫不懂,逼迫自己去學習,去了解,最終產品雖然不夠完善,至少你了解一個項目需要什麼,和什麼技術有關聯,這樣對你自己所擅長的東西就很有幫助。
不斷學習,與時俱進。我喜歡一句話叫萬變不離其宗。雖然程序語言有很多,但是基本原理還是相通的。我做了第一個ASP的CMS以後,很快發現ASP的程序網站已經不能適應項目開發的需求,需要更加高效的腳本語言來實現更多的功能。這個時候php就成了我首先研究的語言,因為我發現很多第三方開放的APi提供的都是PHP的,這讓我們使用更多其他第三方功能的時候開發會更加方便快捷,所以我花了一個周,學習了基本語法和函數,我發現從ASP遷移到PHP其實是很簡單的事情,只是語法不同,程序結構也是一樣的,條件格式、邏輯判斷、條件分支、循環處理也都差不多。經過學習很快掌握了這個語言,開始了項目開發之路。可見不斷的學習,也就是自我成長的一個重要的過程。
良好的思維能力,這是一個程序員必須具備的技能。思維能力就是一個能夠讓代碼在你頭腦中執行一遍的能力,也就是說你在寫代碼的時候你的腦海里就能呈現出代碼運行以後的結果,呈現給用戶的界面,把抽象的邏輯代碼轉成具體形象的能力。良好的思維還體現在,一個程序的處理其實都離不開計算機運行的本質,那就是數據輸入(數據從哪裡來),到數據處理(獲取的數據需要怎麼加工處理或者轉換為另一種形式),最後到數據輸出(給用戶呈現一個結果,圖像的、文字的、視頻的、聲音的或者是多媒體的)。程序整體是這個理念,分解到很多細小的模塊也是這樣,所以只要有這些核心理念,你的思維能力就不會有問題。
通過我的學習和發展,我總結了,要讓自己成長為合格程序員,離不開學習,離不開項目實踐,離不開思維的創新,更離不開努力勤奮和汗水,願有志青年都想有所成,學有所收,成就自我!
② 如何成為優秀的程序員
保持健康
編程之外的愛好
持續學習
正確應對犯錯
不要囿於角色
展示你的創意
刻意練習手速
首先要說的當然是健康,脫離了這個本錢,一切都無從談起。
久坐、不運動、睡眠不足、不注意及時補充水分、長期的伏案工作等都會對健康造成很大的影響。
研究表明,長期保持同一姿勢(不論坐著還是站著)對身體都有不同程度的害處。這幾年很流行的「站立式辦公」也是一樣,如果你白天站立時間過久,會對膝關節造成較大的壓力,同樣會損害健康。比較推薦的方式是,寫30-40分鍾代碼就起來走一走,喝杯水,遠眺一會,跟同事聊聊天。
我知道,作為程序員我也常遇到那種寫代碼寫High了連廁所也不想去的時候。不過為了長遠的健康,還是要養成良好的習慣。
戒除不良習慣
除了長時間保持同一姿勢之外,許多程序員還有各種不良習慣。比如:
吸煙
喝酒
嗜糖(碳酸飲料,其他高糖飲料)
一些建議
有規律的做一些運動可以緩解頸椎、腰椎的不適,可以加快新陳代謝的速度,消耗多餘的、會沉積下來的能量。比如比較容易接觸到、也容易上手的運動:
瑜伽/普拉提
乒乓球
跳繩
培養一個編程之外的愛好
如果讓不同的人對程序員打標簽並排序,宅一定會排在前三。在任何的聚會上,程序員總是很容易被識別出來的:聰明、戴眼鏡、話不多、略顯悶騷、聊天容易冷場等等。也難怪,長期鑽研技術,沉浸在非黑即白的二進制世界,愛刨根問底,這樣很容易把天聊死。
我建議新手程序員可以找一個編程之外的愛好,一來可以拓展自己的社交圈,周末可以有個不一樣的過法(而不是宅在家裡寫代碼);二來可以幫助你成為更好的程序員。
一些建議
學習一項與編程無關的技能,比如:
樂器(如吉他,架子鼓)
繪畫(素描,水粉,水彩等)或者書法
製作美食
某一項武術(拳擊,泰拳,空手道等)
這些看似毫不相乾的愛好可以幫助大腦休息。另外需要注意的是,你無需真正成為某一項愛好的專家,不要有額外的壓力:擔心演奏不好、沒有繪畫天賦等等。沒關系,它只是一個愛好而已。
持續學習
軟體開發是一個需要終身學習的行業(其實如果你不想做那種混吃等死的人的話,基本上每個行業都是這樣)。
程序員被裹挾在技術演進的洪流中,不能自已。作為程序員,你不但要非常扎實的掌握基礎知識(操作系統原理,計算機網路,數據結構,演算法等),還需要有非常強的快速學習能力,以及願意不斷去學習的態度,而後者可能更重要。
讀書
通過視頻/文本教程等學習新技術
建議新手每天抽出一個小時來讀書,周末可以多讀一些。ThoughtWorks有個讀書雷達,是一個很不錯的書單,包括了很多的經典書籍。讀書之外,還可以在線學習一些教程,比如Tutorialplus和Egghead等,都非常值得經常去看看,如果有比較新鮮有趣的技術,不妨自己親自動手試一試。
正確應對犯錯
斯坦福大學的Carol Dweck教授通過一些實驗和後續的研究提出了很有名的心智模型(Mindset)理論,簡而言之,她發現不同的人們對待失敗這件事有著完全不同的態度:有一類人害怕失敗,失敗後會變得不能接受,而且容易否定自身並影響進一步的嘗試,Dweck教授稱這類人為固定型思維模式(Fixed Mindset);而另一類人則「喜歡」失敗,視失敗/犯錯為學習的一種方式,他們更關注過程而不是結果,Dweck教授稱其為成長型思維模式(Growth Mindset)。
Dweck在演講中提到,通過向成長型思維模式的轉變,關注從失敗/犯錯中學習,人們的潛力可以得到很好的發揮,也更容易獲得理想的結果。
很多新人不敢嘗試,又不願意讓同事知道自己的不足,這樣的態度會導致他更傾向於選擇更容易的工作,這樣就可以避免暴露自己的不足,久而久之就會形成惡性循環。其實企業對於新人的期望一般都不會很高,對於新人犯錯也是有容忍度的,新人要勇於承認自己的不足,勇於嘗試新的事物,勇於犯錯並從中學習。
承認自己的不足在剛開始是一件很困難的事情,不過在嘗試過幾次之後,你就會發現其實也沒有那麼恐怖。你慢慢會喜歡那種不帶任何包袱的、全身心聚焦在學習本身上的快樂。
不要被角色限制
作為程序員,既可以往上游去探索需求的梳理,用戶痛點的分析,業務價值的挖掘,又可以向下游如測試的編寫,產品的發布,運維監控。視野開拓了,才有可能對產品有整體的了解,也更容易在程序員這個角色上做的更好。
作為新人,能在自己擅長的方面發揮長處當然很好,但是如果僅僅局限在自己擅長的方面則未免太過單薄。如果你在前端非常有經驗,那麼除了將這些經驗和知識分享給別人之外,你還可以向別的角色學習他們擅長的技能,比如向測試學習自動化、SBE等;向後端學習高性能,高可用伺服器的技術、資料庫設計及優化、API設計等;向DevOps學習運維技能,自動化provision技能等等。
這些不同的技術不但可以讓你的視野更加開闊,也可以為自己以後嘗試不同的角色和機會打好基礎。
展示你的創意
將一個創意、復雜概念或者想法簡潔而准確的描述出來是一個非常重要的能力。我見過太多的程序員都是沉默寡言,講東西聲音又小,又緊張,即使有很好的想法也難以完整的表述出來。
不過這個能力是可以鍛煉的,只需要藉助原型的製作就可以了:
畫圖
靜態原型
紙上原型
俗話說,一圖勝千言。你只需要學習一些簡單的繪畫技巧就可以大大提高自己的表述能力。
通過用靜態頁面(HTML/CSS/JS),mock數據等方式,快速的將創意表達出來是程序員的一個優勢,你可以用靜態數據、數據文件等方式,通過一些簡單的代碼快速的作出可以做交互的原型,然後通過和用戶不斷確認的方式來漸進增強,這種做法可以避免太大的浪費,盡早的將客戶價值交付。
原型並不局限在草圖,可以工作的靜態頁面,還可以是一個清晰簡潔的演講。基於PPT的原型還可以用來分析目前產品痛點、對比方案的優劣、展示自己的看法等等。
手速
關於程序員是否要求很快的手速是一個頗具爭議的話題。支持者認為這屬於基本功,每個程序員都應該打字都很快;反對者則認為程序員的價值在於思考並解決問題,追求速度快,那還不如招個打字員。我個人的觀點是,好的程序員應該有很快的手速(包括打字的速度,但不局限於此)。
對同一個頁面的不斷練習聽起來是在做重復工作,其實可以聯繫到很多的內容:
命令行的熟悉程度
快捷鍵的使用
搜索引擎的使用
Stackoverflow的使用
當你真的可以熟極而流的時候,你才有時間來考慮如何優化,比如如何抽取模板工程(這樣下次做同樣的事情就會快很多),如何精簡DOM結構,如何用命令行工具來幫助自己提速等。手速是大前提,沒有速度,一切優化都是腦海中的意淫,無法真實落地。
總結
要成為一個厲害的程序員,首先當然是要有一個好的身體。此外需要培養一個編程之外的愛好,這樣可以讓你活的像一個正常人(而不是傳統的工科書獃子)。程序員是一個需要不斷學習,不斷充實的職業,在學習的過程中,英文能力可以幫助你學的更快,更有效,另外正確的應對學習過程中必然會犯的錯誤,並將每次錯誤都當成學習的機會。
③ 如何成為一個優秀的程序員
講幾個小的方面吧。
批評還是啟發?
代碼審查是一個不錯但很少用的想法。在一個團隊里,優秀的程序員另一個任務就是要指導經驗比你少的程序員,但是主要以指導和啟發為主,不是貶低和公開批評,因為消極的態度不利於接下來團隊合作的開展。
學會分享
搞編程的沒有去逛一些論壇都不好意思說自己是干編程這個行業的。優秀的程序員往往會在這些論壇幫助別人,而實質上,輸出就是最好的學習。在一個團隊中也是一樣,幫助他人解決問題收獲更多,你也將不斷地得到成長。
勞逸結合
每天工作 24 小時不會讓你更有效率!不少程序員年紀輕輕就有腰椎盤突出、頸椎病、肩周炎、腰肌勞損、圓肩駝背等職業病。程序員們需要加強鍛煉,運動不僅僅可以加強肌肉的力量和耐力,而且也能夠活動身體的各個關節,有效緩解長時間保持一個動作導致局部肌肉過勞。
另外,編程是一項艱苦的腦力勞動活;有時你的大腦確實需要休息一下,休息是為了更好的工作。否則,你的工作質量將大打折扣。業余時間養成一項自己的個人愛好,確保自己可以放鬆並沉浸其中。如果是球類運動,效果更好,它將讓你保持旺盛的精力和活力。
不要閉門造車
留意網路各種平台,學習新語言和框架、參與討論以及看看同行在干什麼。多關注業界在干什麼,這將讓你的視野更加廣闊,不致於為了編程而編程。
④ 如何成為一個程序員
想要從零開始成為程序員,先不要著急的去學習,而是先要去了解程序員。
1.隨便在招聘網站搜索就會發現程序員會分有很多類型,那你就需要確定自己將來想要發展的方向,自己的職業規劃是什麼?
2.通過搜索可以看到,剛剛起步的程序員工資並不是很高而且學習階段也會比較忙,那這個時候你是不是靠考慮一下如何兼顧生活和工作?工資如何支配合理等問題(沒有經驗限制的工作相對較低)
PHP程序員崗位要求
關於學習建議你這樣試試看:
學習的方式基本可分為兩個類型,一個是碎片化的學習,一個是系統進修。
你可以從網路上各機構大量的視頻或者書籍得到相關的學習資料。從大量的資料中,發現真正的干貨,從而不斷學習,這屬於碎片化的自習。由於自學周期比較長,還有不少小夥伴選擇是一邊工作賺取生活費,一邊再利用閑暇時間學習,當然如果你的精力充沛,這也是一個好辦法。
如果要報培訓班, 一定要找正規的培訓機構學習,不然容易被坑。培訓機構裡面的課程都是現在工作中需要用到的,時間短,基本上是可以讓你快速上手工作的。但是要把所有的知識點都消化就沒那麼快了,所以需要自己私下更加的努力,鞏固學習。
注意事項:
1. 自學要注意的是:自學入門時會很枯燥,不要兩天打魚三天曬網!!!切記
2. 在培訓機構里學習要注意的是:勤加練習、主動自學、有問題提,不懂的盡管問老師(把交的錢發揮到極致),不然之後再有問題就沒有這么好的機會能夠直接得到老師的指點了。
最後,祝願想要成為程序員的小夥伴都能心想事成哦(*^▽^*)~