作為程序員,究竟掌握多少種編程技術為好?

此時花盛開


編程技術本質上是你工作的工具。現在的程序員行業有點走偏,強調錶面技術。這個就好比,你問郎朗,作為一個鋼琴家要會彈幾首曲子一樣。

鋼琴的教育,你學習十年,她教會你一個夯實的基礎,能讓你很快上手一個曲子,所以很少有隻會彈1,2首曲子的鋼琴家。但是程序行業,出現了很多急功近利的培訓,就為了那幾個熱門語言,培訓了很多不合格的程序員。

其實學習編程的本質也是培養編程思維和計算機科學的底蘊,讓你以後接觸新技術的時候能很快上手。我認識的很多技術大牛,今天公司需要他學PYTHON,他回去看個三五天就能上手,明天需要做圖像識別,就去用opencv,並沒有什麼技術限制,一切都只是為了工作服務而已。


子子叔


作為一個程序員,很多人都會遇到這樣的問題:我究竟該學哪種語言,掌握哪種編程技術才是最好的呢?今天就跟大家聊一聊,做出這些選擇時,需要考慮的幾個因素。

就業機會

決定你能否在程序這行持續的走下去,編程語言排行榜是一定要持續關注的。目前來看,Java依舊穩居第一,Python則升至第三位。

自我感覺

興趣也是非常重要的,在考慮的時候,要放在第二位,自我感覺的難易程度和興趣要放到考慮因素之內。PS:有人喜歡做前端,因為前端比較直觀更有成就感。

薪資待遇

不以薪水為工作的目標都算耍流氓,如何瞭解技術語言對應薪水高低呢?拉勾網每年都會發布互聯網職場生態書,看看薪資待遇,再做選擇也是非常好的。

發展前景

這的發展前景是指,技術語言的發展前景。

(1)首先要看技術語言的持續性有多久。Java已經火了十幾年,但是以後十幾年還會一如既往的火,為啥?因為它已經產生了很多系統很多項目,以後需要維護/迭代/新開發項目也需要與老項目對接。

(2)預測未來技術卡位市場什麼會火。這個要看現在的社會發展趨勢,預測未來社會稀缺技術人才有哪些?架構師(項目開發靈魂人物),大數據/雲計算(互聯網項目必備),VR/AR/深度學習/機器學習目前都還沒普適性的應用產生未來肯定會的喲!

希望以上的回答對你有所幫助!


北大青鳥中博軟件學院


同學,你好!

你這個話題對大多數程序員來說應該都是一個“痛點”?

JAVA開發程序員需要掌握多少編程技術?

C/C++開發程序員需要掌握多少編程技術?(我)

GO開發程序員需要掌握多少編程技術?

Python開發程序員需要掌握多少編程技術?

...

光開發語言就幾百種,程序員形形色色,但我認為還是得專某領域。

我跟你聊聊我們公司老總(20年技術派專家)的經驗,985大學畢業,掌握的編程語言就是C/C++,基於Linux平臺,技術方面很專,對“計算機基礎”很透徹,對Linux系統、內核、網絡協議棧等底層原理、精通Linux高性能網絡服務器編程,精通通信、多線程、高併發處理、內存管理等技術,到現在的分佈式數據庫、容器、容器編排k8s等都一直再學。厲害吧,所以為什麼他能創業當老闆,靠賣軟件吃飯,那技術得非常過硬!

總結經驗是:

一、IT技術永無止境,選好方向

互聯網技術,日新月異,日益更新。領域繁多,一個人是不可能什麼都去學,都去掌握,那不是人乾的,那是未來機器乾的。

在眾多技術種,最重要的是“計算機基礎”,基礎不牢,地動山搖。所有技術都是運行在計算機平臺上,所有程序都是在操作機器,進行處理,永遠離不開CPU、內存、存儲、網絡~

所以,紮實掌握基礎,比學習七七八八技術要有用。

二、技術為產品服務、為客戶產生價值

程序員開發是為了滿足需求,解決問題,持續迭代升級。本質是由你的代碼,能為客戶解決問題,產生價值。

你掌握的技術一定是需求驅動,概念驅動產品。站在公司腳本,要學習的技術一定是真正能解決問題,實用性很強。公司是盈利機構,不是學校。

因此,我們對技術,要換角度思考,因為這項技術能帶給你提升成才、薪資報酬,對公司來說,因為這技術能優化產品,創造利益,這就讓你的學習目標與公司目標相結合。

三、個人職業規劃

大家都知道程序員35歲坎,不是所有程序員都能去大廠(大廠也裁員),去國企。

因此程序員要了解自己,居安思危,一般公司很少讓程序員寫代碼到退休,提取明確發展路線和規劃。

技術管理線、架構師路線、能力路線。

職業發展規劃:

每位程序員都要有往上走的勇氣,不想當將軍的士兵,不是好士兵。

好了,我們總結一下:

  1. 計算機基礎知識真的很重要!!!
  2. 對於技術,要和現實相結合。
  3. 程序員不要陷入技術坑,世界都是領導者在領導。

以上就是我的看法,希望對你有用。


barbarian


計算機程序的構造和解釋

數據庫系統概念

數據結構C語言版

算法導論

計算機網絡

操作系統精髓與設計原理

編譯原理

這些書我一本也沒有看完😓,都是淺嘗輒止。

有一段時間特別想知道,到底什麼是程序?一個程序從生到死到底是怎麼回事?

一直就有這樣的疑問,但是老師沒有教過,搜網絡搜不到,也沒有專門的一本書解釋這個問題,於是自己根據一點點的理解就找了這麼幾本書。

數據結構、操作系統上學的時候還學過一些,勉強能看明白一些。其他幾本書看起來特別的吃力,慢慢也就放棄了。

現在想想“一個程序從生到死到底是什麼樣的過程”,這個問題我仍然沒有弄明白。


渡雲天


山不在高,有仙則名。水不在深,有龍則靈。

編程也是這樣,編程技術只是一種表面事物。關鍵在於為什麼這樣編程,以及你打算怎麼進行編程。

所以,與其花很多精力在追逐編程技術的路上,不如將更多的精力放在編程思維的鍛鍊上。編程思維可以幫助你穿越不同的時代,哪怕期間的編程技術已經換了好幾輪,你也不會被甩開掉隊。


但也不是說編程技術一無是處,編程技術的作用主要是下面三點。對於你到底需要掌握多少種編程技術,只有合適的數字,沒有具體的數字。下面且聽我一點點分解。

第一個作用,體現你編程思維的媒介。這點決定了,你至少需要掌握一種編程技術,否則你的編程思維再好也只是在你的腦子裡。如果你作為一個興趣愛好,或者專門的編程思維深度學習者,那麼掌握一種編程技術就夠了。

但是題主的問題中,主體是程序員,所以我們再往下看。


第二個作用,是協作媒介,用於銜接指定領域內的其它程序。如果我們身處與一個協作網絡之中,而編程技術又是程序員與其它人協作的媒介,這個時候還是要遵從少數服從多數的原則,你不得不需要接觸這個領域內普遍適用的編程技術。

比如互聯網行業中的java、.net、php,人工智能裡的python,硬件交互中的c、c++。所以對一個需要在協作中生存下去的程序員來說,掌握多少種編程技術,取決於你的目標是在哪個領域內。


第三個作用,是效率工具。理論上所有的編程技術最終都可以通過彙編語言來實現,但是為什麼現在發展壯大的卻不是彙編語言呢?因為效率問題,所謂高級語言的價值也就是因為他們效率高,導致的結果就是提高了“生產力”,社會發展依賴於生產力,所以大家都選擇效率更高的工具。

這對我們決定掌握什麼編程技術的時候也很有參考意義。

  1. 效率高的優先。

  2. 同一個領域內的新技術,如果效率顯著比你當前使用的高,也需要掌握。


最後不要忘了鍛鍊你的編程思維,coding的時候時刻保持著3個問題:

  1. 為什麼要這些寫?

  2. 有沒有更好的寫法?

  3. 更好的寫法與哪些編程原則/概念接近

這3個問題最終鍛鍊的是你的4個能力。



不知道你怎麼認為呢?歡迎在留言區和我討論哦:)

既然看到這了,送我一個「贊同」吧,支持我的創作。

也可以「關注」我,帶你以技術思維看世界~

想更進一步和我一起玩耍,歡迎「搜索微信公號:跨界架構師」。

內容包括:架構設計丨分佈式系統丨產品丨運營丨個人深度思考。

讓我們一起為了理想的生活而奮鬥~


跨界架構師


Java + JavaScript 就可以工作了。工作中再學


海外程序員


1%的程序員造輪子給剩下99%的程序員用。

服務器/後端面向API編程,前端/客戶端面向GUI編程,你說能掌握多少編程技術???

計算機行業日新月異,千變萬化,今天掌握的技術,突然來個大新聞,明天就淘汰了。。。

最後發現始終不變的,能陪伴你最久的,竟然是當初覺得一文不值的、學校裡面學的那些基礎理論知識,對,就是組成原理、操作系統、網絡、數據庫、數據結構與算法等等。
所以,不要好高騖遠,基礎打牢靠,學什麼都不會太吃力。

宅習社


不太確定題主所說的“編程技術”具體是指什麼?但是作為程序員,首先需要掌握一到兩門編程語言,作為自己的主開發語言,然後要熟悉數據結構知識、常用的算法,當然進一步的還有計算機網絡、數據庫、操作系統等等。


小莊讀書


主要方向精,其他的要做了解。就如做服務端你得了解移動端的一些特性才能幫助更好的設計api


阿海騎行


掌握2個就好


分享到:


相關文章: