-
1 # 昊總很寂寞
-
2 # Java架構進階阿南
其實大多數程式設計師的晉升路徑並不複雜,無非以下幾種:
技術型:初級工程師->中級工程師->高階工程師->架構師(技術專家)->技術總監->CTO管理型:工程師->專案組長->專案經理->專案總監->技術總監->CTO交叉型:初級工程師->中級工程師->專案經理->技術總監->CTO(此路線技術和管理交叉進行,每個階段做的事情不固定)轉行型:初級工程師->轉行產品、設計、銷售、運營等這些發展路線都是一個人的綜合能力的一個體現,絕對不只是某個方面的能力
通常來講,大多數程式設計師都只專精於其中一個領域,或者說只對某個領域感興趣。只有在編寫 ”適合自己“ 型別的程式碼是才能獲得最大的產出。讓程式設計師加入風格不和的專案只會產生災難,這是真的。即使某些程式設計師能夠勝任其他型別的工作,但是大多數程式設計師對此 。
所以,如果一定要給一個答案的話,各人覺得還是興趣決定的,橫向擴充套件或縱向深耕需要看職業發展的方向以及工作需要。但是請記住術業有專攻,如果您是開發驅動的工程師而且您又非常內向,想學銷售,這個就大可不必了。
-
3 # web網際網路
每個程式語言都可以完成所有功能
其實每個程式語言可以完成所有的功能,或許有很多程式設計師不贊成這個觀點,比如對於Java或者PHP程式設計師,他們都會說,為了完成資料儲存和查詢處理的功能,我又學了資料庫相關的知識,會了一些常見的SQL命令,其實換一種觀點來說,就是我們使用資料庫來處理,只是儘可能的用最好的方法來完成需求和功能而已,但是如果真的用Java或者PHP還是可以完成資料的儲存和查詢的功能的。
學了PHP是否還有必要學習C語言或者Java我覺得很有必要,雖然PHP上手很容易,但是我們發現PHP封裝了很多,並且封裝得很好,所以我們上手很容易,但是有時候,我們發現有些功能用PHP來實現就不見得好了,比如要實現一個守護程序(一直執行在後臺的程序)來處理一些類似傳送簡訊的操作,那麼這個時候用C或者Java肯定是最好的了。
總結說了這麼多,只想告訴你一點,首先應該精通一門程式語言,知道很多功能都是可以用這個程式語言來實現的,但是為了更好更高效的處理好業務需求,我們不得不借助另一個程式語言來完成,總結一句話就是:先精再寬,先精通一門,然後再學習更多的其他知識,不斷豐富自己解決問題的思維短板。
-
4 # 科技大咖的Vitamin
看定位
如果你向專家方向發展,那麼只需要專於2、3門開發語言就可以了。
如果定位於管理方向,那必須多學習幾門語言,程度不用太專,因為你必須知識面廣,能和各種技術人員打交道。
總結無論那個方向都必須學習掌握好一門開發語言,這是基礎,要深度研究學習。
-
5 # 此生唯一
問題的關鍵在於你學的不多你找不到工作,你學的不深你也找不到工作!
我曾經去平安面試的時候,因為大學學的是電子資訊工程,學過C,面試官硬是讓我對比了下JAVA和C的異同,程式設計風格,最後說到組合語言,微控制器!我真的是無力吐槽啊。。。所幸還是過了,然後問得東西大部分還是本語言相關的,比如SQL,JS等語言也會提及,也會問是否知道C等的開發!
比如說JAVA面試:
多的方面面試官起碼會問你JAVA基本型別,面向物件思想,檔案操作,多執行緒模型,SQL操作與最佳化,單例模式等設計模式,spring框架,mybatis框架,netty框架,redis,memcache等快取,訊息中介軟體,效能監控等等東西!
深的起碼問你spring的原理ioc,DI,怎麼用的反射來管理bean的,問你netty基於什麼?NIO,reactor模型是啥?有多少執行緒模型?會問你JVM底層原理,垃圾回收演算法,fullGC的觸發原因,怎麼解決?垃圾收集器有幾種?區別是啥?
所以作為一個程式設計師,就要有程式設計師的覺悟,不僅要學的多,還要精通得多!
不過理論上是不推薦所有東西都要求精通的,一個人的精力畢竟有限,不可能所有問題都親力親為!只有精通了一門語言或者技術,就能融會貫通所有的程式設計,因為技術都是相通的,只有捅破一扇門,才能有捅破後面的無數門的機會,只有去嘗試了,才知道能不能做到!
比如說之前我接手一個專案,花了兩天時間看程式碼,然後就讓我接需求進行開發(儘管很牴觸),最後在做的過程中把專案也認識了個七七八八,如果只是單純的看程式碼,我應該掌握的沒那麼快,所以學習新技術還是靠自己的用心深入的去鑽研,去練習!
-
6 # 技術閒聊
我是WXT智慧雄科技,從事研發工程師,我來回答這個問題吧。
最近年程式設計師的待遇相對於其它行業來說,整體還是相當高的。以下是2018年十大平均月薪最高的行業,其中,網際網路就高居第一位。
因為熱門,所以很多年輕人相續地湧入到這類行業來,競爭會越來越激烈。所以程式設計師沒有專業的技術能力也很難在該行業中立足。
對於這個問題,我總結一句話:要想多,必先專。即“T”型發展最好,先把“丨”搞好再想“ 一” 。
第一、先“專”,即先把“丨”搞好。在競爭如此激烈,而且專業技術能力要求非常強的行業裡,如果沒有專精的能力,很難得到重用,甚至會無法在這個行業立足。作為任何程式設計師都必須有一門自己精通的語言,因為這是你生產程式的必備工具,無論是java,python,C/C++,C#,還是GO,其實主要看的是你的應用場景,語言不在於多,在你的應用場景中使用得心應手即可。無論是指令碼語言還是作業系統,其程式設計思路都是一樣的。所以,我個人覺得程式設計師還是先專精一門屬於自己的技術吧。
第二、往“多”想,即“T”型發展中的 “一”。在專精的前提下,越多越好,畢竟技多不壓身嘛。而且每種語言都有自己的特點,多種語言結合可以更高效地處理問題。
掌握多種語言後,你的思想就變得開闊了,更容易找到適合處理問題的方法。如今的軟體十分複雜,稍微大一點的專案可能就要用到多種語言,掌握多種語言對軟體專案的開發更容易。每一類程式語言的程式設計思想都是相似的,多學一種程式語言要比多學一個國家語言容易得多。會多種語言可以為公司節約人力成本,以前需要幾個不同程式語言的人力合作的專案,只需一個人就行;節約時間成本,減少了不同語言的人的溝通合作。自己也會得到公司的重用,雙方都有利。
-
7 # 明明如月學長
作為一個已經工作的軟體設計師,作為一個研究生剛畢業不久的老學長,談談我對這個問題的看。
舉一個簡單的例子:兩個人一個啥都會,哈都不精通,一個人是某個領域的專家,你如果遇到某個領域的問題你會優先找誰呢?你是企業老闆你要哪個?你給哪個高薪?
樣樣精通,樣樣稀鬆我個人認為程式設計師學的越多但是瞭解不深還不如學的專精。
專精一門之後其他的技術很容易觸類旁通。如果樣樣都學,但是樣樣都不專,沒什麼競爭優勢。
從校招或者社招面試就可以很明顯的看出來,很多面試官重點關注面試是否基礎特別紮實,技術深度能夠多深。
而且從技術提升角度而言,從初級程式設計師到中級再到高階,無不是技術不斷加深的過程。
舉一個面試場景:
人的精力是有限的,很難樣樣精通。
如果你面試Java開發工程師,你簡歷裡面寫會PHP/Python/C++等,面試官本可以只問你計算機基礎,但是由於你寫了這些技術很可能會問你這些技術,而且絕不是問你特別基礎的知識,很多可能是比較深入的知識,如果你回答不上來會減分不少,將是一個敗筆。
我的建議深度和廣度都要抓,專精優先。
如果知識面太窄,很難勝任一些工作,很容易走彎路。
如果深度不夠,很容易被替代,浮在技術的表面,很難成為大牛。
人的精力也會有限的,很多大牛比如“Java之父”、“Linux之父”無不是在一個領域研究到極致,才達到萬人敬仰的地步。
很多進階的程式設計師都是經歷從“調包俠”到“學習原始碼”再到“寫框架”等專精的過程。
不過身處在一個技術更新迭代較快的行業,學習新技術的能力也很重要,一些知識哪怕不去深入學習,也要去了解。
如果你能專精幾項技術,尤其是計算機專業基礎,遷移到新技術也很容易。
-
8 # 擼小耗
當我在面試一名程式設計師的時候,首先肯定是要了解面試者的知識廣度,換而言之就是知識面的極限寬度,然後會根據簡歷上所描述的內容有針對性的加深知識深度,至於精還是多,個人覺得看您的發展方向,專注程式研發的可以精一點,想未來轉型產品或者管理的當然越多越好拉~
回覆列表
專精一門主要語言(偏後臺方向為主,C JAVA PHP Python Ruby),保證至少5年左右工作經驗,在中間可以學學前端或者深度剖析自己的語言其他方向!
主要要確認你未來走哪個方向,取決於你該往哪裡發展,開發超過35歲,跳槽不易!