⑴ 聽說30歲,程序員新手沒人要,我現在該怎麼辦
找工作要看三樣東西:需求圈、能力圈、興趣圈,三個圈都重疊的地方,才是最適合你的,問這個問題的話,應該是還沒有仔細梳理過,「種一棵樹最好的時間是十年前,其次是現在」,所以了解自己的優勢、劣勢永遠都不晚,現在再加上30歲這個定語,看看30歲的你有什麼優勢和劣勢。
然後思考感興趣的企業都有哪些需求,一般來說,企業對於30歲的求職者期望會更高,要求有更多的管理能力和商業嗅覺,光寫代碼,熬夜拼不過年輕人啦。如果有做過不錯的開發項目,並且從頭到尾都了解流程,並且對結果負責,我相信企業會對你青睞有加,當然,找一個對的企業也是很重要的,新興的物聯網3D可視化領域很有前景,3D商業項目有不錯的市場需求,要抓住這次機會。
ThingJS不是做項目的,我們是為項目開發者提供3D可視化開發組件,利用thingJS平台進行項目演示,一站式服務很方便,重要的是積累3D項目經驗,這種實操是到哪兒都學不到的財富。
30歲的你,有了自己的3D項目,尋找合適的人脈和市場應該不再是難事。
⑵ 程序員:新手到專家的5個階段
程序員需要 不斷的學習
不僅僅是學習 新技術 ,還包括應用的 問題域 ,用戶的奇思妙想,同事的古怪習慣,行業的八卦 新聞 和項目演進的重要特徵
我們必須學習學習再學習,持續不斷的學習,然後把學習成果 應用到解決 日常遇到的一切新舊問題上
新手在該技能領域經驗很少或者 根本沒有經驗 ,這里提到的經驗,指的是通過實施這項技術促進了 思維的改變
舉個反例:
可能一個開發人員聲稱擁有 十年經驗 ,但實際上只是一年的經驗 重復了九次 ,那麼這不算是經驗
引申問題:
一年有365天,你是過了365天!還是只過了一天,重復了365遍?
1.新手非常 在乎他們能否成功 ,沒有太多經驗指導他們,他們不知道自己的行為 是對是錯
2.新手不是特別的想要學習,他們只是想實現一個 立桿見影 的目標
3.他們不知道 如何應對錯誤 ,所以出錯的時候,他們非常容易 慌亂
以上是新手的明顯特徵,所以跨越新手有以下幾個步驟
1. 渴望成功 ,但是不要太過於執著,急功近利往往是失敗的前兆, 不急不躁 的心態最好
2.沒有經驗就去 尋找經驗 ,一個 好的老師 和一些優質的資源能夠迅速把有用的經驗傳遞給你
在親身累計經驗之前, 逆向思考,尋找經驗才是核心和緊急目標
3.進行 能力測試, 可以利用第三方的題庫和測試流程,標准而大眾化的測試,同時也需要 自我測評 ,比如完成一個項目,自己統計整體 時間 ,自己撰寫 時間軸日誌 ,自己判斷自己的 詞彙量 和 熟練度 等
自我測評是第三方無法完成的 ,這點尤其重要,簡單來說,也可以稱為 自我認知 ,並且把數據 可視化
4. 興趣是最好的老師 ,沒有興趣也是可以培養的
想要一個立竿見影的目標其實並沒有錯,新手恰恰需要 酷炫有趣有用 的目標才培養自己的興趣,一個 完整的小案例 能夠把所學的知識點 融會貫通
新手要做的,是一邊需要沉下心來學習 零碎的知識點 ,一邊整合知識點做出一個完整的效果案例,兩相結合才能迅速進步
反之,一味的學習零散的知識點不去做案例,學的太多也只是 空背概念而已 ,一味的追求項目效果而不去深入內容,那麼 永遠不會進步 ,碰到一點改動就毫無辦法了
5.不知道如何應對錯誤沒關系,心態要冷靜,並且及時的把 錯誤整理下來 ,學會處理錯誤的方法尤為重要,比如 如何正確提問 ,比如 高效引擎檢索 ,比如官方幫助手冊等,遇到錯誤並不可怕, 可怕的是找到解決錯誤的辦法
高級新手能夠多多少少擺脫 固定的規則
1.他們可以 獨自嘗試任務 ,但仍難以解決問題
2.他們想要快速的 獲取信息 例如,當學習一門新語言或者API時,你可能會感覺到這點,你發現自己會快速 瀏覽文檔 以尋找一個方法或參數列表,你不想在此尋根究底,或者 重溫一遍基礎知識
3.高級新手能夠根據 過往的經驗 ,逐步在正確的情境中採納建議,但比較吃力,同時,他們能夠形成一些總體原則,但不是全貌, 他們沒有全面的理解,而且的確不想有
以上是高級新手的明顯特徵,所以跨越高級新手有以下幾個步驟
1. 思考難以解決問題的原因所在 ,是哪個地方限制了你解決問題的能力?
這一點與你個人的現狀有關,你正在學習的技術棧,你所做的項目,你的綜合 能力和資源
簡單的說 具體問題具體討論 ,你必須對問題有深刻的認知並且 對自己有足夠的了解
2.在這個追 求效率的時代 ,要去思考和學習底層原理,是一件很難的事情,因為 時間不允許
事實上絕大多數事物的不成功,就是 沒有足夠的時間
在時間的維度上,再無知的新手也有一個寬泛的坐標,那就是 尋找一個參數方法的時間和解析一個參數方式的時間都大致明確的
比如找到並使用某個參數方法大概需要 2分鍾-10分鍾 ,正常情況是5分鍾,而解析一個方法原理,需要的時間是不確定的,確定的是 大於等於10分鍾 ,可能是30分鍾,也可能是幾個小時,這 與效率不符 ,從利益上看也不劃算
尋根究底是需要的,但它的 重要等級 排列在熟練了解全局內容之後
重溫知識點也是如此
3.高級新手在一個熟練的框架里有所經驗,有所作為,但是換了一個框架, 復用原來的知識 ,就顯得生澀了
在學習的過程中,要不斷的 舉一反三 ,一個例子刻意練習三遍以上,一個例子做出不同的三種效果,一個例子應用在三種不同的情境等等等,學會 觸類旁通
在第三階段,從業者現在能夠 建立問題的概念模型 ,並 有效 的使用它們
他們可以獨立的解決自己遇到的問題, 並開始考慮如何解決新的問題 ——那些他們之前沒有遇到的問題
你可能會看到,處在這一水平的人通常被認為有 主動性 和足智多謀
他們往往在團隊中發揮領導作用(無論是否有正式的頭銜),他們是 團隊里的好人 ,既可以 指導新手 ,也不會經常騷擾專家
以上是勝任者的明顯特徵,所以跨越勝任者有以下幾個步驟
1. 教是最好的學 ,當你可以勝任工作,可以獨自解決大部分問題,已經比較 完善 了
這個時候要追求 知識的深度 ,想要進一步提升,就需要整合以前所有學習的內容,資源以及學習方法,在底層原理上,還有很多需要融匯貫通的地方, 通過教授新人和他 人,能夠完善自己的知識體系,找到自己的薄弱點,以 另一個層面的角度來重新調整視野
2.學習與之 相關的領域, 這些內容你不一定會用到,或者不是在你的職責范圍之內,但是學習之後會讓你的本職做的更好, 讓你的知識更加全面
前端勝任之後,可以適當學習後端,也可以適當學習UI,往 全棧的方向 ,學了python之後,也可以學學java, 了解不同語言之間的優點和缺點 ,運用不同的內容適當的解決問題
對比思維,左右辯證 ,看似把時間花費在精通之外,實際上效果一樣會 反饋到核心事物上
廣度和深度是一個 選擇題 ,在時間上,只能 二選一 ,適度就行
精通者有足夠的經驗, 他們知道下一步會發生什麼 ,如果沒有發生又需要什麼
他們非常明確哪些計劃需要取消,而 應該採取什麼行動
處於精通者的人更像是 初級專家 ,而不是高級勝任者
1.精通者一定是 身經百戰 ,給一個項目,他能在一開始就判斷出這個項目需要多長時間,分為那幾個步驟,需要什麼人員
從一開始就是 瞭然於胸 ,排除可能出現的錯誤,剩下的只是按部就班的走正確的流程就好,達到 高效,高質量,少錯誤的效果
這個階段的人,已然有了質的變化,想要如何往上躍遷,還需要另外的 質的改變
終於我們來到第5個也是 最後一個階段 :專家
專家是各個領域知識和信息的 主要來源
他們總是不斷的尋找 更好的方法 和方式去做事
他們有豐富的經驗,可以在恰當的情境中選取和應用這些經驗
他們 著書,寫文章,做巡迴演講 ,他們是當代的 巫師
思考:
1.自我測評,你處在哪一個階段?
2.如何做才能提升到下一個階段?
3.針對你的行業,細分階級,比如十個階級?哪十個階級?
⑶ 新手程序員剛去公司都幹些啥
無論在哪種行業,新員工入職的第一件事就是入職培訓,讓員工了解一下公司的企業文化以及了解公司的各項規章制度。其次就是培養員工的思維能力、服從能力,提高員工的綜合能力,讓員工能夠更加適合他的崗位。
接受完這些基礎培訓之後,就會有人專門給你培訓關於程序員的一些知識,因為我們每個人在學校學的知識還是比較有限的,而且跟實際運用還是有一點差別的,另外計算機技術的更新速度非常之快,可能我們在學校多學的知識到我們去工作的時候已經落後了,所以需要有人進行培訓,讓你了解一下編程的規范模式、公司的編程軟體以及讓你學習別人寫的代碼。
當你對這些有所了解這時候就會安排師傅手把手教你如何進行編程,一開始不會讓你一個人負責一個項目,只會讓你做一個項目的一小部分,通過這樣一步一步的積累,慢慢你就會熟悉整個編程流程。然後就會開始給一個項目讓你自己做,測試一下你自己的能力,如果你能自己獨立完成,那麼說明你已經學會了,可以自己獨立操作了,如果自己不能獨立完成,那麼就還得繼續學習,一直學到你能獨立操作為止。
當你能夠獨立操作的時候,那就恭喜你已經成為一個合格的程序員了。程序員工作是一個高薪職業,但是工作強度不低,經常需要加班,有時候周末也要加班。不過這是一個有付出就有回報的職業,好好努力吧,祝你早日成為一個合格的程序員。
⑷ 為什麼程序大佬不願意教剛入門的程序員
教起來比較困難,他們的時間也很有限。
有些新手喜歡問一些模模糊糊的問題,問題提出來後,自己對問題的澄清解釋都做不了,那就很難回答了。另一類是大問題,多數屬於一言難盡型,這也很難回答,多數人沒有時間和精力進行長篇大論。
問問題之前,通常要做一些前期工作,確保對問題本身的每個方面都做過沒法挖下去的探究,把自己明白的部分剃出去,只留一些明確、直接的關鍵問題,問到答案就能解決自己的實際問題,這樣的問題才有意義,也只有這樣的問題那些百忙中的大佬才願意回答。那些大佬都願意點化人,但他們是授人漁技而不是賣魚的,一旦大佬發現問題里有該做的前期工作沒做,以後基本就不會願意回答這個人的問題。
多數人只願意幫困,不願意幫貧。困和貧的區別在於困是卡在什麼具體的地方,幫一次有意義;貧通常是自己不夠努力,該乾的不幹等著別人來拖,幫多少次也沒什麼用。
⑸ 普通程序員和大神程序員,到底有啥區別「渡一教育」
眾所周知,雷軍本就是一位超級厲害的程序員。他曾經這樣評價自己的編碼水平:「我沒寫過詩,但是有人評價我寫的代碼像詩一樣優雅。」
好吧,有被凡到。
盡管很多人曾因為雷總過於濃密的發量而懷疑他作為程序員時的水平。但是從雷總的語氣中我們可以感覺到他對於自己編碼能力的自信。
不得不承認,同樣是程序員,普通程序員和大神的差別是巨大的。
當普通程序員嘗試重構一個簡單的模塊
當大神級程序員重構代碼
普通程序員做的多線程
大神級程序員做的多線程
是否過於真實?剛入門的小白程序員流下了羨慕的淚水。。。
另外,據不權威調查顯示,大神程序員的生活作息遠不同於普通人類,基本上是晝伏夜出。果然,大神早已非正常人類,不食人間煙火。有圖為證(第一列是時間,第二列是代碼行數。)
這是FFmpeg的作者FabriceBellard的編碼時間表,能看出來,越到晚上靈感越強啊。額,不過,這位大佬是會睡著睡著覺靈感突發蹦起來提交代碼的嗎……
而這是LiveJournal的作者BradFitzpatrick在memcached項目上的時間表。
典型的夜貓子,晝伏夜出,每天只睡四個小時。
仁慈的獨裁者,Python之父Guidovan Rossum同樣是一位暗夜使者。
美好的一天從下午開始,夜晚才是靈感的源泉。不過大佬好像真的不用睡覺的。。。。
而在夜行者之上,更有一種恐怖存在,他們宣告了永動機是可以實現的,因為他們自己,就是永動機。。。
「世界上最好的語言」php的創始人RasmusLerdorf,便是其中翹楚,這是他在php-src項目上的提交時間:
果然是大佬,白天正常工作,晚上更加興奮。果然,真正的大神都是突破人類身體極限,完全不用睡覺的。
當然了,以上這些呢不過是一些極端案例,他們雖然是真正的大神,小渡也絕不建議小夥伴們學習這種作息習慣。不然很有可能,技術沒學到,發量卻比大神還少。。。
而在日常的工作中,大神對於小白的碾壓更是全方位無死角。
註:reinventing the wheel 重新發明輪子
果然,大神的工作都是獨出心裁的。
額,不過這么一看嘛,菜鳥和大神好像差不多。。。。
大神的反應總是波瀾不驚的,好像沒什麼成就感。。。
離譜。。。。
笑出自信,笑出強大!
看到大神們種種不同凡響的表現,小夥伴們有沒有心生嚮往?不要灰心,只要努力,假以時日你一定也能像雷總那樣,寫出詩一樣優雅的代碼。
要想真正的成為大神,要腳踏實地,有的放矢,為自己設立目標,不斷向目標逼近。
至少要做到以下幾點:
程序員之所以被稱為「大神」,顧名思義便是在專業領域他們無所不能。所以,大神之路第一步就是補全自己技術上的短板,項目出現任何技術難題時,只要自己出馬便能發現問題所在,從而找到解決方法。
多隆就是這樣一位全能的大神,「只要有技術上的困難,找多隆,沒有解決不了的」這是在阿里技術人員內部流傳的一句話。
對於編碼技術,多隆便是武俠小說中已臻化境的絕頂高手,從2003年到2007年,搜索引擎工作一直都是多隆一個人負責,但這不是他所有的工作,因為他解決問題的能力是驚人的。
多隆一個人能頂一個團隊,別人做事可能要成立一個項目組,而他從頭到尾都是自己一個人,即使他負責的事情以前從沒有接觸過。
阿里研究員畢玄曾舉例說:「五彩石項目多隆完成了商城搜索的mp邏輯,當時如果沒有多隆,整個項目需要延後2周;還有一次,淘寶session框架調用session_tair故障,一堆人(應該有10人+)一起排查問題,從6:00排查到第二天的6:00,最後多隆查到了問題。」
而達到如此境界,與多隆自身的特質分不開。當他沉浸在他的程序世界時,外界的人和事很難干擾到他。他不擅交際,也不玩什麼社交網路,一般很難在公眾場合見到他,只要能不參加的會議、采訪,他都不會參加。
就算去,他也常常會帶上筆記本。據說他也曾經帶著筆記本去outting,在車上寫代碼……
而且盡管被同事們頂禮膜拜,多隆依然謙遜,他說:「我就是個寫代碼的,很普通」。
從多隆身上我們也能看到,想要成為大神,首先就是要靜下心來沉住氣,認真研究代碼,不斷學習進步,完善技術,讓自己不再有短板。
理想是最好的指引者,對於技術行業尤其如此。
很多人在成為程序員之初,都抱有改變世界的想法,想像著運用自己的編程技術來為未來的世界增添色彩。而真正能將這種想法堅持到底的人可謂是鳳毛麟角,但這恰恰是成為大神程序員的重要特質。
支付寶OB資料庫團隊的隊長陽振坤就是這樣一位典型的理想主義者,在他的職業生涯中遭遇了太多的挫折和失落,但他始終保持著一個技術人員的初心,堅持理想,不曾退讓。
陽振坤曾是北大的學術明星,北大本碩博一路念完留校任教,不但破格晉升教授,還成為北大首批「長江學者獎勵計劃」特聘教授之一。他的理想就是攻克分布式系統難題,建成中國技術人自己的分布式資料庫。
在加入網路之後,他集中一切精力來進行資料庫的開發,然而盡管他主導的分布式系統在性能上已經超過了開源系統,網路仍然以成本太高為理由解散了他的團隊。
隨後他加入阿里,陽振坤繼續做分布式資料庫研發,他的團隊從零發展到十幾人,搗鼓出中國第一個分布式資料庫,他們給它起了個名字叫OB。
然而,同樣因性價比的問題,陽振坤和他的OB團隊在阿里坐了冷板凳。這一彼時僅有十幾個人的團隊曾在長達三年多的時間里,孤獨而邊緣。
很多同事都說,「如果陽老師願意妥協,放棄OB,轉去做開源系統的技術優化,早就撥雲見日了。」
但是,那顯然不是他想做的事情。
不過相比於網路,阿里對於「無用」的創新有更大的包容,OB最終被並入了支付寶。彼時的支付寶,面臨著一個世界級的難題:雙11的交易量呈幾何級增長,未來勢必還將繼續呈幾何級增長,可是支付寶當時用的甲骨文資料庫早已經承受不了這么龐大的數據量。
為了應對雙11這天的數據,只能再花數億千萬人民幣的價格去購買主機,可在交易恢復常態時,昂貴的主機旋又陷於長期閑置狀態,這樣未免得不償失。
因此OB這一還未正式上過「戰場」的資料庫,被支付寶高層認定是解決雙11支付峰值這一世界級難題的「鑰匙」。OB最終也不負眾望,幫助支付寶攻克了這一難關。
2016年5月,時任螞蟻金服董事長彭蕾親自將支付寶內部最高榮譽——CEO大獎「勛章」戴在了以陽振坤為首的OB團隊成員的脖子上。
從陽振坤的身上我們可以感受到,理想或許會讓我們一時間陷入困境,但如果我們堅持下去,會帶給我們更大的回報。
這是老生常談,卻也是最重要的一點。這是每一個想要突破自我的人所必備的特質,也是每一個大神程序員依舊在堅持的習慣。
即使多隆在阿里早已封神,但是他仍然每天醉心於編程的世界,研究各種代碼,不斷強化完善自己的技術。
即使陽振坤和他的OB團隊已經為取得了阿里的最高榮譽,他們仍然在每一次維護和升級中不斷地為OB資料庫做出新的改進和嘗試,向著更高遠的目標進發,他們期待著有朝一日OB可以超越IOE,成為世界上最棒的分布式資料庫。
每一個大神,都是由小白蛻變而成的。大神若不再努力,早晚會跌落神壇,泯然眾人。而小白們只要堅持學習,不斷提升自己,終有一日也會成為自己曾經仰望的大神。
每個大神的「封神之路」都有各自的精彩,但是也有著共同點,那就是:專注、熱愛、持之以恆。當然,每個領域的大神都是極少數,我們大多數人可能用盡全力也趕不上天賦異稟的人的輕松一步。
但是我們努力不是為了趕上任何人,而是為了成為心目中那個更好的自己。
就像現在正拼搏在殘奧會賽場上的殘疾健兒們,他們早就喪失了和正常人一樣生活的能力,但不妨礙他們依舊熱愛生活,依舊為了夢想去拼搏,去創造正常人都難以企及的記錄。
所謂奧運精神不光會激勵賽場上的運動員,也會時刻提醒我們每一個平凡的人,向著心裡的頂峰奮力沖刺。
保持心中那份對於夢想的執著和渴望,我們終將會突破自我。加油,未來的大神。
⑹ 一個java程序員如何從新手慢慢成長
一、首先初識語法的階段,必須要學會怎麼操作對象,操作if和for,操作list set
map,然後是線程、IO和jdbc什麼的,其餘的,若是一時不理解,可以後邊需要時再學。
這階段完了,你可以寫些能在控制台列印出來的小程序,鍛煉下邏輯思維。也就是號稱JAVASE畢業了,其實不過是入門而已,如果要往WEB方向發展,這些倒是基本足夠了。
二、接下來要學HTML JSP SERVLET 資料庫 JAVASCRIPT
TOMCAT,目標,寫出第一個動態網站,也許只是個登陸功能,只能展示下個人資料,但這是很重要的一步,你要弄清楚的是,一個用戶的點擊產生的請求,是從哪裡發起,哪裡接收,哪裡處理,哪裡返回,你得理解瀏覽器和伺服器的關系和分工,cookie和session,request和response。這個是個WEB開發的學習初級階段,這都是些JAVA誕生以來最原始的最官方的WEB開發技術,當然現在真正的項目很少直接採用這些技術了,為了不斷提高技術的易用性、開發效率和可維護性、可擴展性,無數開源項目都是在這些原始技術的基礎上封裝、改進。所以這個階段不要盲目樂觀地跑去找工作或者對實習挑三揀四,你會被打擊到的。
三、初始階段完成,開始進入WEB開發的正題,首先是傳說中的三大框架,struts hibernate
spring成為熟練的增刪改查程序員是必須的,在這個階段你還要理解為什麼要用這仨而不是那些JSP SERVLET
JDBC,你要體會到寫MVC、三層架構的好處。這個階段不要輕易質疑三大框架的價值,也許剛開始你會覺得麻煩,覺得他們有時候是多此一舉,一兩年後回過頭來你會覺得少了這些框架你已經很難幹活了。這個階段還要避免的心態是能熟練地增刪改查了,就認為寫程序不過如此,然後往簡歷上填個精通,這也是新手面試被批得體無完膚的原因之一。如果你學得好,這會應該能熟練地寫個博客啊,小論壇啊之類的WEB項目了,也就是達到了就業的基本要求。
接下來就沒有固定模式了,你的第一家企業對你的影響會很大,在這頭一年裡,定個標准吧,你應該能做到的有:
1、把一些常用的瑣碎技術學會了,比如xml的作用和實際運用,如何操作文件,如何運用日誌,如何簡化封裝常用的工具類,比如日期操作、編碼處理、分頁模塊等等,這些小東西會佔用你大量的時間去處理摸索。
2、把資料庫用好。資料庫不是會增刪改查就可以了的,你要關注事務設置是否合理,是否有可能產生臟數據,是否要動用樂觀鎖悲觀鎖等等,重要數據出了錯,無論是技術上還是業務上都是很麻煩的事。
3、懂得什麼是集群,什麼是分布式,懂得怎麼向別的系統發請求,交換數據,webservice。
4、如果你也寫頁面,你要會用JAVASCRIPT,不一定要很深入,你可以用JQUERY代替,做到無刷新的頁面操作以及AJAX請求。
第一年能達到這個程度,你絕對已經在平均水準之上了。
下一個階段,你應該考慮你的代碼質量了。
1、多線程和非同步、並發的概念會忽然變得很重要,因為在一個對性能有要求的系統里,是不會允許你把各種瑣事都排著隊一件件去辦的,你不能老寫些a方法調b方法再調c方法再調d方法然後返回的代碼。
2、你會發現資料庫性能實在不行,出於不甘現狀,或者趕時髦,你該去了解nosql了,memcached redis
mongodb,眼花繚亂,沒關系,試著用用,能很好地緩解mysql之類關系資料庫的壓力。
3、出於公司某些業務需要,你可能會鑽研一個特定技術領域,比如全文搜索技術,lucene\solr,比如工作流jbpm,比如許可權系統,單點登陸之類的,又或者某些特定業務領域的演算法研究,這些是你的加分項。
4、你開始發現你的代碼很亂,久了以後自己都看不懂,重復的,難以重用的代碼堆積如山,不想維護,BUG百出。於是你要開始重視設計模式,合理地改造下自己的代碼習慣,不再被僵化的SSH,MVC三層架構束縛住。
5、Google和各種資料是你進步的動力,極少再遇到必須請教別人才能解決的問題,如果你這個階段還老是問別人,你的技術生涯也就快到頭了。
這個階段,如果你的交際和自我推銷能力不是太差,你的收入將是白領水平,至少接近了。
接下來又是個全新的階段。
1、你要讀讀優秀開源項目的源碼,你要搞懂一些當年不懂的基礎知識,你開始理解thinking in
java的精髓,你能寫一些底層的代碼,有時還會覺得自己封裝的比某些開源工具更好用更簡單。
2、WEB的難點和重點永遠都在於性能、負載能力上,而現在網路的發達造成了數據量和操作密度的大大上升,硬體卻沒有相應的進步,你得試著更好地運用更多的伺服器來協同工作,從WEB端到服務端到資料庫,全都需要集群,需要分布式,需要合理的控制數據的流向,掌握好網站上下,一大堆機器的平衡,找出性能的瓶頸,找出穩定性和安全性的瓶頸,硬體出現故障,第三方技術出現錯誤,將被當成家常便飯融入到你的系統和代碼里仔細考慮。
3、開始覺得方案無比地重要,一將無能累死千軍將不斷應驗,一個不好的設計,一個不好的方案,會讓一群優秀的程序員工作成果大打折扣。你要關注架構知識,不能再滿足於SSH三層架構到底。領域驅動設計,面向事件開發,敏捷開發等等一系列的思想在關鍵時刻能決定你項目的生死,這個階段不再有標准範例讓你照抄,你只知道思想和原理,實踐卻需要自己不斷嘗試和改進。
4、多關注各種雜七雜八的開源技術,有些你可能前面已經接觸過了,和通信有關的,和集成開發環境有關的,和架構有關的,各個領域你都應該能信口說上幾個主流技術,雖然你可能只是聽說過,了解,但關鍵時刻你得知道如何去選擇技術,並快速掌握它。你還會去考慮嘗試下別的語言,這里不是說轉向什麼C++
C#之類的,那和JAVA程序員不相干,我說的是一些運行於JVM之上的語言,比如scala和groovy,初識他們時你會覺得java真的老了。但當你回到一個綜合性的大型項目中,又會覺得java積累下來的整個體系技術是如此完善,就像一個工業化標准一樣。
你能把這個階段實踐好,勝任項目經理,乃至中小公司的技術總監都是可以的。
⑺ 有哪些老程序員都知道對新手很有用的經驗
一說到程序員,想必大家的第一印象就是頭發少,很大程度上就是因為壓力大導致的,有生活壓力,也有工作壓力。
今天說說工作方面的壓力,想必看到這個問題的小夥伴都有一個認知,就是一個項目往往比預期的要長,說不定從哪天開始就加班了,一出現BUG真的要人命。此時,考研新老選手心態的時候和經驗的時候了,老程序員或許能從容應對,新手可能完全不知錯所。
這些信息包括戶口檔案、社保、公積金等信息,程序員新手可能跳槽比較頻繁,有人甚至還換個城市工作。除了戶口可能其他的信息都亂了,可能當時覺得不那麼重要,但是十年、二十年後,可能會非常重要。
·工作日誌可以提升腦容量;
·不要先寫框架再寫實現,要反過來;
·重構/優化/修復Bug,不要同時做;
·簡化開發流程,加快迭代速度;
·紙筆是最好的工具,其次是markdown;
·畫出結果,一目瞭然。
·要學會進行清晰的命名;
·問問題前先調查,要問到點上。
·不要小看程序員
⑻ 好程序員:技術分享 有哪些新手程序員不知道的小技巧
我有一個學習的小技巧,就是學習新技術的時候,多看看「官方文檔」。
多年來的學習和工作經歷,讓我比較深刻認識到一點:看「官方文檔」非常重要。
我們很多的問題和技術細節,其實,只要我們認真將官方文檔過一遍,會發覺大部分的問題和認識模糊的地方都消失了。甚至,你還能發現自己之前通過搜索獲得的到一些資料,可能是不準確或者已經過時的。官方文檔是真正的好東西,因為編寫文檔的人群,通常就是這些技術或者軟體的開發者,他們才是對這些東西最了解的人,因此,他們寫的文檔質量是很高的,通常也是最新的。
官方文檔的不足的地方,大概是中文版本不多,看起來可能會比較吃力。不過,請相信我,下載一個翻譯輔助軟體,慢慢看還是可以的。另一方面,就是這些文檔編寫者,通常是技術界大牛,他們編寫文檔有時候是基於他們自己的技術認知水平,跳過了很多基礎概念,也增加了閱讀難度。不過,這個我們也可以通過多查資料,慢慢看來解決,並且通常會帶來額外的學習收獲。
⑼ 如何成為一個程序老手,新手必知的40個小技巧
老鳥和新手的一個很大區別來自於debug的能力。其中最主要又可以從兩方面看出來:
從高層往底層找錯。
科學方法。
0.重構是程序員的主力技能。
工作日誌能提升腦容量。
先用profiler調查,才有臉談優化。
注釋貴精不貴多。杜絕大姨媽般的「例注」。漫山遍野的碎碎念注釋,實際就是背景噪音。
普通程序員+google=超級程序員。
單元測試總是合算的。
不要先寫框架再寫實現。最好反過來,從原型中提煉框架。
代碼結構清晰,其它問題都不算事兒。
好的項目作風硬派,一鍵測試,一鍵發布,一鍵部署; 爛的項目生性猥瑣,口口相傳,不立文字,神神秘秘。
編碼不要畏懼變化,要擁抱變化。
常充電。程序員只有一種死法:土死的。
編程之事,隔離是方向,起名是關鍵,測試是主角,調試是補充,版本控制是後悔葯。
一行代碼一個兵。形成建制才能有戰鬥力。單位規模不宜過大,千人班,萬人排易成萬人坑。
重構/優化/修復Bug,同時只能作一件。
簡單模塊注意封裝,復雜模塊注意分層。
人腦性能有限,整潔勝於雜亂。讀不懂的代碼,嘗試整理下格式; 不好用的介面,嘗試重新封裝下。
迭代速度決定工作強度。想多快好省,就從簡化開發流程,加快迭代速度開始。
忘掉優化寫代碼。過早優化等同惡意破壞;忘掉代碼作優化。優化要基於性能測試,而不是糾結於字里行間。
最好的工具是紙筆;其次好的是markdown。
leader問任務時間,若答不上來,可能是任務拆分還不夠細。
寧可多算一周,不可少估一天。過於「樂觀」容易讓boss受驚嚇。
最有用的語言是English。其次的可能是Python。
百聞不如一見。畫出結果,一目瞭然。調試耗時將大大縮短。
資源、代碼應一道受版本管理。資源匹配錯誤遠比代碼匹配錯誤更難排查。
不要基於想像開發, 要基於原型開發。原型的價值是快速驗證想法,幫大家節省時間。
序列化首選明文文本 。諸如二進制、混淆、加密、壓縮等等有需要時再加。
編譯器永遠比你懂微觀優化。只能向它不擅長的方向努力。
不要定過大、過遠、過細的計劃。即使定了也沒有用。
至少半數時間將花在集成上。時間,時間,時間總是不夠。
與主流意見/方法/風格/習慣相悖時,先檢討自己最可靠。
出現bug主動查,不管是不是你的。這能讓你業務能力猛漲、個人形象飆升; 如果你的bug被別人揪出來.....呵呵,那你會很被動~≧﹏≦
不知怎麼選技術書時就挑薄的。起碼不會太貴,且你能看完。
git是最棒的。簡單,可靠,免費。
僅對「可預測的非理性」拋斷言。
Log要寫時間與分類。並且要能重定向輸出。
注釋是稍差的文檔。更好的是清晰的命名。讓代碼講自己的故事。
造輪子是很好的鍛煉方法。前提是你見過別的輪子。
code review最好以小組/結對的形式。對業務有一定了解,建議會更有價值(但不絕對)。而且不會成為負擔。管理員個人review則很容易成team的瓶頸。
提問前先做調研。問不到點上既被鄙視,又浪費自己的時間。
永遠別小看程序媛(╯3╰)!