首頁  >  文章  >  後端開發  >  珍愛網程式猿一枚,在網路公司工作1年,怎麼樣才能讓自己進步?先介紹下我在珍愛網工作經歷

珍愛網程式猿一枚,在網路公司工作1年,怎麼樣才能讓自己進步?先介紹下我在珍愛網工作經歷

WBOY
WBOY原創
2016-08-10 08:50:392519瀏覽

先說說我自己,重點本科(985、211)畢業,電腦專業、在校成績中等偏上,畢業之後無疑是眾望所歸當上了程序員,進入了珍愛網,差不多一年了,當時拿到offer時也考慮了幾個問題:這個自己之前完全不了解的公司到底是怎麼樣的企業?技術氛圍怎麼樣?成長空間怎麼樣?如今一年過去了,回過頭來總結一下,我這一年都有些什麼進步,其實感觸還是很多的。也希望可以看到更多「貧民大神」的成功之路。
珍愛的技術是以java和php為主,近年來隨著業務的發展,個別業務也開始使用c++。總提來說公司內的牛人還算比較多,加上之前十多年的積累,身為新人的我進去後確實還是學到不少東西。但發展十年之久,同時也累積了不少技術債,例如舊系統的技術框架過時、程式碼混亂、甚至是某個業務細節都已經沒有人清楚等等等。新人進去後,基本上都會被坑幾次~~反正我被坑過~~
公司的技術氛圍還是不錯的,基本上每個程式設計師都保持了對技術那種求知若渴的精神,也會表達自己不同的見解。之前有次在專案中,因為一個帶有嵌套子查詢的sql的優化寫法幾個程式設計師竟然辯論了很久,後來較真還查了很多資料,最後發現其實兩種寫法其實都差不多的~~不過在辯論的過程中,對mysql的底層的了解倒是加深了不少,呵呵噠,也算是意外收穫吧!
珍愛現在面臨一個比較緊迫的問題就是解決"人民群眾日益增長的物質文化的需要同落後的社會生產力之間的矛盾"。一方面,公司的業務發展的是很快的,另一方面,公司現有的技術體系還不夠完善,從底層的DB到整個技術架構,都還是有很長的路要走。而一路走下來,對於開發人員的技能方面的提升倒還是挺大的。參考這幾年互聯網的快速發展對整個互聯網行業的技術發展的促進作用,正如我們老大所說:"對我們技術人員來說,我們現在經歷的事情,是以後我們再想經歷也不會再有機會的事情"。
本人作為一個只懂java基礎和SSH框架基本使用的應屆生小白,剛進去的時候,連基本的mysql master/slave都沒有親自實踐過,到現在從接地氣點的shell編程到高大上的hadoop,Spark等都能基本hold住,所以個人感覺,這一年的經歷,對於個人而言可以說是脫胎換骨的一年。當然,畢竟由於環境的限制,看到的和感受到的也會有一定的限制。這樣的自我評價,縱使是沒有夜郎自大的嫌疑,也會有坐井觀天的可能性。所以想問大家在網路公司是怎麼發展的,成長速度怎麼樣,不妨一起來交流一下。

回覆內容:

我不是程式設計師,但在網路企業工作多年,以下是在網路上總結的幾個建議:

1. 小範圍的選擇一些有用技術,透徹的學習它們,擁抱它們。然後不斷的擴展這個範圍。

2. 理解各種資料結構的優點和缺點,包括它們在記憶體中和在硬碟上的各自表現。

3. 理解各種演算法的優點和缺點。

4. 了解你的工作領域。關上電腦,去做你的使用者在做的事。

5. 有準備,有願望,有能力在任何時候投入到多種技術層面中。你必須知道表像下的技術原理。在「各個技術層面的掌握程度」和「程式設計能力」上有著密切的聯繫。

6. 發揮你的想像。永遠都要問,「有更好的方法嗎?」跳脫常規思考約束。最好的解決方案也許還沒被發現。

7. 優秀程式設計師:我最佳化程式碼。更優秀程式設計師:我設計數據。最優秀程式設計師:他們的不同之處是什麼?

8. 正確的建構你的資料。任何的缺陷都將造成你的程式碼裡無盡的技術債。

9. 正確的命名事物。使用“動詞-形容詞-名詞”格式來命名程式和函數。變數名要夠長,盡量短,有意義。如果其他程式設計師無法理解你的程式碼,表示你寫的不夠清楚。在大多數情況下,針對下一個程式設計師而編碼比針對環境而編碼重要的要多。

10. 把分析和程式設計分開離開做。它們不是同類的事物,需要不同類型的勞力資源,需要在完全不同的時間和地點分開做。如果同時做它們,你一樣都做不好。 (我喜歡在一天的末尾做不涉及技術的分析,而在第二天早上進行編程。)

11. 永遠不要圖省事走近道。永遠不要把相同的程式碼部署兩次。永遠不要把一個變數命名成另一個變數名的一部分。也許你不明白這些規則,也許你要辯解。但如果你是遵守著這樣做的,這些規則就會約束你正確的建構你的程序。圖省事的做法是讓那些低階的程式設計師永遠停留在低等級的原因。

12. 學習如何評估程式表現。你會驚奇的發現從中能學到很多以外的知識。

13. 學習區別對待問題細節和問題後果。問題細節不會導致太大的差別,而問題後果能導致世界滅亡。只關注後果。

14. 密切注意你的使用者/客戶/管理人員。幫助他們認清楚他們的“what”,這比幫助他們明白他們的“how”要重要的多。

15. 寫一個框架,不論你是否打算用它。你將從中學到從其它途徑中不到的東西。

16. 把你所知道的東西教給別人-透過口口交流或透過寫作。最終這將成為教育自己的機會。

17. 永遠要對你的客戶/用戶說“Yes”,即使在你不確定的情況下。 90%的情況下,你會最終找到方法實現它。 10%的機會,你將會去向他們道歉。這是重要的個人成長中付出的一點小代價。

18. 尋找別人的做出神奇的事情但卻一灘糊塗的程式碼。重構它。然後丟掉它,並發誓自己永遠不要犯他們犯下的相同錯誤。 (這樣的程式你會發現很多。)

19. 資料永遠 > 理論或觀點。透過開發東西來學習數據。

20. 有可能的話,開創自己的業務(服務或產品)。你將從中學到很多你做僱員永遠學不到的關於程式設計的知識。 歪個樓,珍愛網的程式都是單身嗎?內部有木有什麼相親福利啊^_^ 以下的幾點建議對程式設計師提升自身的技術和今後的職涯發展都能提供很大的幫助,關鍵就看你的執行力了。

1、提高文檔編寫能力

誤區:認為編好程式,完成任務,即是好的程式設計師,無須文檔;

缺乏文檔,對軟體開發是致命的,一方面是軟體無追溯能力,無法找到軟體開發的起源,想法;另一方面,則是為後續軟體查錯,軟體升級帶來麻煩。作為早期的程式設計師,技術文件佔用的工作時間應該為30%,而高級程式設計師、系統架構師等則需更多的時間。一般的軟體文件要求,本篇不多說,可以回顧入職前手頭上的軟體文件要求和樣式。

2、養成好的編碼規範和編碼習慣

作為一些國外知名軟體公司,如微軟、IBM、甲骨文等,都會對程式設計師開發的程式進行程式碼要求,程式碼的變數名要規範,關鍵程式碼段需要註解,註解格式統一,甚至嵌套中行縮排的長度和函數間的空行數字有明確的要求。

中國程式設計師,一般常會出現,全局變數濫用,註解語言表達不到位,變數名採用拼音等,雖不影響開發,但卻影響了後續程式碼交接和分享工作。

3、提高對軟體需求的理解

誤解:入門的程式設計師一般不會對專案的需求進行刨根問底的分析和詢問需求人員,拿到文件,即開始進行開發;在B/S架構中,更常出現前台需求與後台銜接的問題;

因此,在做需求的時候,我們應該做到,了解需求的詳細要求,力爭到位;加強溝通,了解需求深層次內容,特別是功能點要達到什麼要求,怎麼使用系統才覺得舒服。對需求的把握不能從感性角度理解,必須多和工作夥伴進行碰撞,才算是真正把握需求-經驗。真正的需求把握得恰到好處,所需的是2-3年的時間。
4、復用性和模組化思想

每個程式設計師在開發一個功能模組或函數的時候,應該多思考,不要局限在完成當前任務的簡單思路上,思考一下,該設計的模組能否脫離這個系統存在,是否能夠透過最簡單的修改方式在其他系統或應用環境直接引用。

透過這兩年中的實踐與觀察,發現我們團隊一些同事在起步階段,經常經歷代碼重寫的事情,是很沒有必要的,一方面自己思想需重新確立,另一方面是浪費了提升程式碼品質的時間去做重構的事情。

5、鍛鍊自己的測試能力

軟體研發一直以來有個好傳統,軟體開發過程中問題發現的越早,解決的代價就越低。測試工作實際上也不麻煩,一是做正常調用的測試,看軟體的基本功能能否實現,這也是許多公司常見的,也是唯一的測試,但強調,這是錯誤的!二是異常調用的測試,例如在B/S體系下常用的壓力測試、破壞性測試、頻發異常請求處理測試等,只有全方位的掌握好測試辦法,才能提高軟體開發的品質。

6、問題是最好的學習機會

工作就是不斷發現問題、分析問題、最終解決問題的過程,晉升之門將永遠為那些隨時解決問題的人敞開著。可見,工作過程中有問題是正常,沒有問題才是真正的問題。在發生問題時,能勇於面對問題、解決問題的人,才是公司真正的骨幹。

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

真的程式設計師,敢於直面慘淡的人生和淋漓的鮮血,一定能夠在荒草滿布的歲月荒原裡踏出一條自己的路來。

  其實別人說的話,聽一聽就算了,決定還得自己來做。面對別人的懷疑、否定、証諷,我們只需要堅定地前行,做給他看。行動是最好的證明,多堅持一秒,未來就會不同。

  現在就實打實的來看看程式設計師的價值之路在何方。一、應用技術

  相當大一部分的程式設計師都在做應用層面的開發,所做的軟體用來解決特定場景的問題,為使用者的工作和生活帶來方便。

  開發一個應用,經常會用到高階語言和框架,例如C# 和.NET ,例如C++ 和Qt ,例如J2EE ,例如Ruby on Rails ,例如Python 和Django ,例如Java 和Android ,例如Objective-C 和Cocoa Touch,像是Java, PHP…太多了,數不勝數。

  應用層面的開發技術,很多人覺得門檻低,小年輕和富有經驗的老資格差別不大,後浪會把前浪拍死在沙灘上,所以當新一茬韭菜長成時,老一茬就得玩完了。

  其實不是的,即便從純技術的角度來講,你對一個語言和框架的理解與把握程度,也會嚴重的影響開發效率和產品品質。

  什麼樣的人會被輕易替代?不求甚解,似懂非懂,乾了多少年還看不透所用技術的本質,遇到問題仍然懵懂不解茫然無措,這樣的程式設計師,注定很快被一大波正在趕來的小鮮肉擠下工作。

  假如你對一門語言的各種特性都體察入微了悟於心,假如你對一個框架的機理和各種應用場景都有獨特的理解和豐富的實踐經驗,那你幾乎是不可替代的,你已經成了這個語言和框架的專家,價值不可估量。

  你的一句話就可能為一個專案節省幾個月的時間,別人一籌莫展的問題到了你這裡分分鐘就搞定。

  所以,不要理會「能Run就行」、「完成任務就可以了」、「用不到學那麼深做什麼」之類的話,在你用完一項技術解決了一個實際問題滿足了某個需求之後,繼續鑽進去吧,多學一點,深入一點,日積月累,你必然會與眾不同。

  上班時沒時間,那就下班了繼續投入。記住,你的學習和研究都是為了自己,不是為了老闆,不是為了項目,你唯一的產品就是你自己,而這個產品值得一輩子打磨。

  二、高難技術

  有一些技術,門檻是相對較高的,比如彙編語言,比如操作系統內核,比如驅動……正因為門檻高,回報也高。

  例如你熟悉Windows內核或Android內核,能夠熟練撰寫各種驅動,那找個月薪五六十K的工作不成問題,百八十K都不在話下。惟其稀缺,所以保值。

  三、演算法

  大部分程式設計師其實不懂演算法,都是用框架裡的模組拼積木。如果你妙悟演算法真諦,那你就超越了90%的程式設計師了,你的重要性和價值將無法估量。

  例如你精通影像處理演算法,例如你精通視訊編解碼演算法,例如你精通搜尋推薦相關的演算法,例如你在模式辨識領域有建樹…試看誰能擋得住你前進的腳步!

  四、業務

  在一個行業內持續積累,對業務的理解到位,積累深厚,你的價值是巨大的。不信你去瀏覽招聘網站上的職位需求,99%都要求相關行業背景。

  所以,選擇一個可靠的、前景好的行業非常重要,只要這個行業能夠不斷發展、前進,你的積累就是有價值的,你自己就是不斷增值的。

  特定領域的業務有一定門檻,比如金融,比如電力,比如電商,比如彩票,比如考古,比如醫療……在這些行業裡,你是個業務門兒清的程序員,即便技術不是特別優秀,那也是價值無限的。

  五、產品意識與思維

  究竟什麼是產品意識呢?我認為產品意識一般包含商業意識、使用者意識、創新意識和團隊意識。

  -《人人都是產品經理》

  網路時代,產品為王。有產品意識,懂產品思維的程式設計師,是最受歡迎的人群,也是最能做出好產品的程式設計師。

  商業意識通俗地講,就是要思考這個產品能不能賣出去,好不好賣。這一定是要有的,程式設計師雖然很少直接接觸市場。

  但是一個產品成功與否,多數時候就是看市場表現,如果你能關注市場,從市場的角度來看待技術實現,接納「技術為市場服務」的理念,那你更容易把產品做好。

  使用者意識是最容易理解的,它是說我們要從使用者的角度來思考這個產品該如何設計,因為產品好不好用最終由使用者說了算。

  如果你在實現產品時也能站在用戶的角度來思考,斤斤計較一個功能是否符合應用場景、是否與用戶的行為特點吻合、是否貼合用戶的使用習慣,那恭喜你,你超越了90 %的程式設計師-大部分程式設計師是依照產品經理和UI設計師的要求來實現產品。

  創新是人類發展的源泉,是社會進步的動力,同樣也是產品的核心競爭力。但這裡所說的創新不一定是那種顛覆性的創新,也許是把眾多不被重視的細節做到更好,也許只是把另外一種理念引入到這個產品中去,也許是像海底撈的員工一樣給使用者不一樣的感受,這些都是創新。

  創新意識是產品經理必須有的,否則,他永遠不會有進步,產品永遠也做不好。

  創新意識也是優秀的程式設計師必須要有的,否則他就不能把一個產品實現得很好,不能把產品的核心競爭力演繹到極致。

  當下已不再是孤膽英雄單兵作戰的年代,我們要想做好一個產品,多數時候都需要一個團隊。

  團隊意識是必不可少的,你是和一群程式設計師在一起,你還和產品經理、UI設計師、業務分析師、專案經理等等在一起,如果你能融入團隊,並且能影響、促進其他人為共同的目標做出有效的努力,那麼,你這樣的程式設計師,是無敵的,是國之瑰寶!

  說了這麼多,究竟你適合在哪個方向下功夫,還需要你自己來做決斷。

  你可能一看便知自己適合做什麼,那無需贅言。也可能你有些茫然,別擔心,我們都還有大把的時間,你可以去試著去做,發現不合適了換個方向再來,直到踏上適合你的路。

珍愛網這種大公司各方面都是很正規的,只要堅持努力就一定會有出頭之日的 同為網路程式猿一枚,從業不到一年,未來發展自己也整理了下,樓主這個問題對我很有幫助,以後我也是要開始在互聯網海洋遨遊,慢慢認識大牛,同時一個好的平台和團隊也是非常重要的 做程式設計要整天對著電腦,不過適應了就好,我認為這類工作,還是很有前途的。 我現在剛踏入這個行業,感覺要學的東西真多,未來會遇到很多困難,我想我不會在困難面前止步,讓我們共勉,希望以後多多交流學習 我覺得除了公司安排得工作,自己私底下也要努力學習,程式設計主要是多編多練吧,編多了自然就熟悉了。 其實要進步就要時常的學習,特別是程序猿這個,學習是必須的,因為這塊技術更新快,逼得你必須學習來掌握新的技術。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn