了解最新公司動態及行業資訊
今天,我們來談談程序員的發展。
程序員的發展路線不外乎兩條,技術還是管理。技術路線是從工程師到架構師,最后是科學家,管理路線是從工程師到技術經理、總監和CTO。當然,這兩條路線也可能有交叉,比如先做架構師,然后轉行做技術總監和CTO。
這里首先要提的是程序員和工程師概念的區別。那么區別是什么呢?總之一句話:程序員專注于程序代碼,工程師專注于解決實際問題。當然,在IT領域,工程師一般都是程序員。剛畢業沒有經驗的學生,掌握計算機的基本理論知識,可以編寫程序解決算法。在這個階段,他們是程序員。工作一段時間后,要掌握工作方法,從實際問題出發,綜合運用各種方法解決問題。與程序員相比it技術人員,工程師的思維視野更廣闊,對問題的看法也更多樣化。比如,不要僅僅從代碼的角度去思考解決方案,也可能需要借助其他團隊的力量,或者從問題入手,嘗試找到表面問題背后的核心問題,或者在問題中加入一些假設和條件,將問題轉化為熟悉的問題之前解決了。問題。
先說工程師和程序員,再回過頭來繼續說技術和管理的發展。
先說技術路線。
走技術路線需要對技術有偏執的熱情才能不斷學習。其實,在任何領域,只要有毅力和不斷的研究,10000小時后,你一定會有所成就。一萬小時是什么概念?連續 28 個月每天工作 12 小時。如果你考慮一下也沒關系。但是這里有一些事情需要注意。一是專注,因為信息領域涉及的子領域太多,比如網絡、操作系統、數據庫、編程語言、分布式、高并發大負載、大數據、機器學習、前端等等,每個子字段都包含大量的主題。如果你想掌握所有這些,你將不得不放棄一切。因此,有必要抓住一兩個感興趣的領域,深入挖掘。只有在一個方向上做深入的工作,你才能成為這個領域的專家。二是深入問題,抓住本質。特定技術是特定上下文中的解決方案。信息領域的技術日新月異,新名詞層出不窮,但變化始終如一。我所說的技術背后的智慧是工程師真正需要理解和掌握的。如果只是簡單地掌握一門技術而沒有掌握智慧,就無法靈活運用,在實際問題面前還是會不堪一擊。最后一點是保持好奇心。在專注的前提下,你必須對所有技術都感興趣,不能抗拒。否則,很容易走得越來越窄。您將只擁有自己土地的三分之一,并將自己限制在一塊。在一個小框架里。
在此我提出兩個建議。一是多學習基礎理論知識,因為科學永遠是智慧的精華。比如排序算法中經典的快速排序,本質上就是分治的思想,分治算法是很多領域的指導思想,比如分布式、高并發、分庫中的性能調優和數據庫中的子表。還有很多。缺乏理論知識會阻礙工程師的創新能力。同時,學習理論必須與工程實踐相結合,才能理解得更透徹。二是多思考、勤奮。你可以從一個具體的問題開始,不斷深入,不斷問為什么,進行思維訓練。例如,經典問題:
前面簡單講了技術發展的主觀因素,現在來說說客觀因素。
對于技術人員來說,有幾種選擇。加入大中型公司(如 BAT),加入初創公司并自己動手。不同的選擇有不同的技術發展。在成熟的公司工作,你接觸到的技術方向比較窄。如果你想上去,你需要在特殊領域有所建樹。一般來說,如果你有好的人愿意教你,而且你足夠努力,那么上幾個層次是沒有問題的。但是越往上越難,因為坑太多了。在初創公司工作至少需要一方獨立。技術方向很多,但不會像成熟公司那么深。創業公司發展好,你的技術水平自然會上升,技術深度和廣度將同時得到提升。如果你自己做,你需要有相當的工作經驗it技術人員,能夠自立,并使用技術來改善你的業務。
所以最重要的是團隊。你能做什么、能和誰一起工作是決定你的技術發展的外部因素。如果你能和一群好人一起做一件了不起的事情,那么只要你有上進心,不升級就很難。跳槽基本上取決于這兩點。如果你不善于判斷你做的事情是否可靠,你應該更多地觀察團隊是否優秀。團隊都是比你更好的人。每天你觀察他們思考問題的方式,他們讀的書,他們聊天的重點,他們做事的方式,客觀地迫使你不斷進步。如果你是團隊中最好的,那會更累一些,因為自我驅動比外部驅動更難取得進步。
好了,今天就講到這里,下一篇繼續。
上一篇:湖北IT公司,軟件軟件軟件