我,大專非科班出身,自學PHP+js入行。今年第5個年頭,在2家公司待過,第一家待了3年,現在這家已經滿2年。第一家公司學習沉澱了lnmp環境下WEB開發前後端的基本技能,學了python.和JAVA,JAVA只在一個項目中的部分任務中用過,如今只剩下模糊的記憶。
換了工作後最近2年,自己計劃的學習路線一度被打斷,一直被公司的業務牽著鼻子走,先後學習了lua,openresty.這些小腳本還好,要命的是最近半年接手公司的搜尋服務,後端用C/C++維護ES索引。 C/C++學了點皮毛,ES搜尋引擎也學不好,工作都要焦頭爛額了,一度想離職,只是考慮到隨便離職會給自己帶來糟糕的履歷。
像我這樣簡直不倫不類了,樣樣會點沒樣精通(至少學來的僅用在堆業務邏輯上面)。或者說給自己定個大目標,後端全端程式設計師,這些都要學,只是目前還不夠精通而已。 。 。
我,大專非科班出身,自學PHP+js入行。今年第5個年頭,在2家公司待過,第一家待了3年,現在這家已經滿2年。第一家公司學習沉澱了lnmp環境下WEB開發前後端的基本技能,學了python.和JAVA,JAVA只在一個項目中的部分任務中用過,如今只剩下模糊的記憶。
換了工作後最近2年,自己計劃的學習路線一度被打斷,一直被公司的業務牽著鼻子走,先後學習了lua,openresty.這些小腳本還好,要命的是最近半年接手公司的搜尋服務,後端用C/C++維護ES索引。 C/C++學了點皮毛,ES搜尋引擎也學不好,工作都要焦頭爛額了,一度想離職,只是考慮到隨便離職會給自己帶來糟糕的履歷。
像我這樣簡直不倫不類了,樣樣會點沒樣精通(至少學來的僅用在堆業務邏輯上面)。或者說給自己定個大目標,後端全端程式設計師,這些都要學,只是目前還不夠精通而已。 。 。
我也是野路子出身, 技能加點也是跟著公司業務走哪打哪, 遊走於各種框架之間, 疲於奔命苦不堪言. 偶在知乎看到蕭井陌的這篇專欄文章, 深感自己基礎不厚, 現在在Coursera上跟一些名校的基礎課, 已經搞定所有Python
課程, 正在惡補編譯原理, 算法等基礎知識, 明顯的進步是現在也可以自己造點輪子了, 雖然還很拙劣.
題主能意識到自己的問題已經比很多渾渾噩噩混日子的碼農強了不少, 我覺得不管科班非科班程序員以下幾點非常重要:
英語(必須的)
基礎(各種框架輪子滿天飛, 其實萬變不離其宗)
面向Google / StackOverflow編程(就是有輪子先用輪子交活, 騰出時間惡補技能點)
Stay hungry, Stay foolish.
保重身體
以上, 共勉~
個人覺得未免題主有點太浮躁了,而且走入了一個很大的誤區,感覺學好一門語言或學精一門才是一個程式設計師的必經之路?
個人建議千萬別去這麼想問題,否則你可能一輩子都是一個程式設計師
萬事看本質,程式設計師的價值在哪裡?
就是解決問題的能力,所以語言、架構等等只是解決問題的輔助工具,還要從更廣更全面的去考慮問題,這樣你的思路才能拓寬。
舉例:不要為了公司說要做搜索就去做搜索,先考慮為什麼要做搜索,公司現狀、人員配備、後續維護等等,然後在考慮技術方案,比如除了ES還有沒有其他方案?還是高大上的方案介入太早還要帶來龐大的工作量?是否可以現有技術堆疊內的解決方案例如看上去有點Low的xunsearch,然後碰到了性能瓶頸的時候再去調研新的東西,因為已經在生產了,或許有足夠的時間去研究ES,同時踩過搜尋的坑,發現去研究去選型的時候更有專注點了
另外個人認為程式設計師的發展路線應該是先廣再深。只有系統需要深入的時候才會深,這個要看你公司的發展以及定位。
但是絕大部分都是「廣」這一步就夠了,因為現狀決定沒有那麼多的公司那麼多的系統需要非常深入的去研究語言本身,更多時候解決系統問題或者技術問題,更多的時候瓶頸在於思路而不是語言。
由於每個人對廣和深理解都有差別,所以以上都是個人建議,僅供參考。
或許你應該補補科班。
例如:
http://study.163.com/curricul...
不用太深入,可以選擇系統的了解一下。
然後根據你的選擇再確定方向。
能理解你的心情,目標肯定是要的,不然這種下去只會增廣視野缺沒有深度的積累.
給出一些個人建議
1.深入某種語言學習,從語言層面到框架,從寫業務到寫基礎架構.
2.了解各種環境,例如PHP的nginx,appache,你至少要熟練
3.熟悉語言相關技術,比如redis,並發,優化等
其實總結就一句話,人的時間和精力是有限的,能做好一件事情,學精一門語言就足夠了.
科不科班沒關係,工作的東西學校根本教不了。
技術這東西永遠學不完,現在工作引導學習的很多,這也正常。如果有什麼工作可以按照自己的學習計畫下去,那根本不可能。而且技術更新換代很快,沒準你學完就不流行了。
程式設計的本質是為了更好的為人們去服務,如果單純的考慮自己學會了什麼,能牢固掌握什麼,工資可以達到什麼程度來衡量自己的話,那根本不准確。一般來說,前期無所謂吧,換一份工作換一種語言或技術,多學點是沒錯啦。不過必須深入去理解這項工作的本質,累積經驗,學以致用。如果換了多份工作,感覺每次都要重新學起,而且基本上都是皮毛的入門,這只能說學的不深了,需要好好總結一下了。
我的想法是,找一種自己有興趣的來學,專門學精。皮毛學會了,就學優化,學軟體開發的流程,學團隊管理,深入到軟體開發的所有環節。
真的,你已經到了需要係統知識(科班知識)的時候了。
系統知識對你解決沒有具體細節問題可以作用並不是太明顯,但是對於管理項目,管理自己的知識體系,宏觀的看問題很有幫助。
另外,全棧什麼的就先聽聽吧,每一個真正全棧都有至少一個特別精的專業方面,因為語言的相同所以對相關業務稍作研究也會有不錯的成績;而所有方面都只會一點皮毛的那不算全棧,說好聽的叫工程師助理,難聽的其實就是打雜的。
建議如果立志做一個全棧,先是確定一個專的點,先做專後做廣。一口吃不成個胖子。
還有,不要被公司的業務牽制,公司不需要對你的未來負責。你自己需要鑽研什麼和公司給你的任務是什麼並不是必然相關,充分利用好你的業餘時間。等你某項專精後,你才有權利選擇更適合你能力的任務。
身為剛入行的新人我也幫不到了題主你什麼,給你加個油~
所謂技多不壓身,總會有一天你會覺得前面學的「皮毛」並不沒有白學。
程式設計師要有廣度更要有深度,建議你找到自己的興趣所在深入研究,共勉。
首先題主你要有目標,就像樓上說的全才還是專才?你要考慮清楚。
誰說辭職就會有糟糕的履歷的?如果你覺得自己想要做專才,在一門技術上鑽研到底,把一門語言弄精弄通,那麼公司的發展前景和你的人生規劃產生矛盾,你辭職離開也是帶著浩然正氣的。反之,如果你選擇全才,想創業,那麼你的工作經歷剛好和你的目標相同,也不會有什麼怨言了。 (說一點題外話,我認識一個5年的PHP大牛,在5年的瓶頸期,一直“居無定所”,基本三個月一跳槽,還是有用人單位會用,他說,公司不合適就走,都這個年代了,還憋屈自己在一個和自己人生價值觀、世界觀不同的公司裡,我們還是60、70年代的人嗎)
人生道路上,老天不會只給你一個選擇,他會給你多種選擇,至於你要選擇哪一條,都是你自己的路。想好再出發,堅持到底!題主加油~
所謂技多不壓身也是在精力範圍內搞。樓主,我覺得你可以離職。
天道酬勤,厚積薄發
全而精,簡而潔,加油! ! !
謝謝各位大神指點,許多回覆很有參考性的指點意義!