-
1 # 早睡早起的純傑哥
-
2 # 程式設計師黑洞
不同的程式語言對程式設計師的思維塑造有區別嗎?
應該說有區別,但同類型的則區別很小
原因如下:
1.組合語言
2.面向過程的函式式語言,如C。
3.面向物件的語言,如JAVA,C++。
4.面向語言的語言 ,如LISP。
每個種類的思維模式接近。
解釋一下:
一,組合語言,屬於低階語言,編譯出來的obj檔案就是CPU可以直接執行的。故,彙編程式碼直接呼叫各暫存器,記憶體,堆疊空間。需要解決所有資源配置,儲存現場恢復現場的工作。堆疊這些概念可以說就不存在,是你程式碼直接安排處理的。可以說是事無鉅細地都由程式設計師管理起來。就像作業系統管理所有資源。
二,C語言這類函式式語言,則比組合語言簡單一點了,即不用程式設計師來管理所有資源。可以安心的把重心放到邏輯和演算法上。可以複用大段的邏輯,就是函式呼叫。程式碼行數大大降低,複雜度也降低幾個數量級。
三,面向物件的語言,Java,C++,這些語言比C這種中級語言更加抽象,把各種事物抽象成類物件,具有一定的屬性和方法。把要實現的專案工程,透過各種類物件來構建起一個有機的機體。這樣整個機體可以更大更復雜,實現起來也更高效,維護起來邏輯也更清晰。
當下大型專案大都選擇面向物件的語言,也是基於這個原因。
四,還有一個神級一樣的語言,LISP。這個語言據說可以創造語言。當你捧起這種程式碼都是逆波蘭式的句子,看得頭大時,突然發現自己不會寫程式碼了。這是怎樣一種思路啊!建議程式設計師同學都去看看《common lisp》,你一定會收穫頗豐的。
總之,在程式碼級別,不用同的語言對我們的語言思維還是影響不小的。但是在演算法和資料結構級別,幾乎一樣了。
軟體開發就是這麼奇妙。
祝同學們更上一層樓。
-
3 # IT人劉俊明
這是一個非常好的問題,作為一名從業多年的程式設計師,我來說說我的看法。
首先,應用不同的程式語言,對於程式設計師的程式設計思想是有一定影響的,即使是同一型別的程式語言,在使用時也會有一定的區別,而這些區別往往會影響程式設計師的程式設計思路。
以當前流行程度比較高的Java和Python為例,雖然二者都是全場景程式語言,而且也都屬於面向物件程式語言,但是Java程式設計師和Python程式設計師在程式設計思想上,還是具有一定區別的。比如Java程式設計師在解決問題時往往更依賴於“框架”和“容器”,而Python程式設計師則更依賴於各種“庫”,所以Java程式設計師往往需要具有較強的抽象設計能力,而Python程式設計師則需要具有較強的整合能力。
採用不同的程式語言,在進行問題分析和設計時,會自然而然地考慮到該用何種解決方案,而不同程式語言在解決方案上的不同,也會導致程式設計師在設計思想上的不同。當然,除了程式語言之外,崗位任務對於程式設計師的思維方式會有更加直接的影響。
比如研發級程式設計師和應用級程式設計師在進行問題的分析時,往往會有不同的出發點,不同的出發點自然會有不同的思維方式。比如當前從事人工智慧平臺研發的程式設計師,在解決問題的過程中,往往會更重視演算法的設計,以及如何透過演算法迭代來實現效能的提升,而採用人工智慧平臺進行行業開發的應用級程式設計師,在考慮問題時往往會更多地考慮到行業場景。
最後,前端程式設計師與後端程式設計師在考慮問題時也有一定的區別,前端程式設計師更注重使用者的使用體驗,同時也更注重各種開發工具對於程式設計效率的影響。
-
4 # 斯人若月
區別還是很大的。我自己來說,因為接觸Java時間最長,所以思考模式都是接近純面向物件式的。
需要量產的時候,考慮從工廠進行產出。如果是單體的話,至少也是先定義好類,理清楚屬性和行為,對應好方法的實現。
一步一步都是按著順序來的,儘可能地做好封裝,劃分好模型。面向物件的思維方式是儘可能接近真實世界的運作模式。
但是有時候看別人的程式碼,就能明顯感受到,比如說“這個人可能接觸結構化變程式設計較多”,尤其是一些硬體裝置廠商所提供的介面或是Demo程式,很多沒有這樣的面向物件式的順序思路,有的只是各種功能的機械式組合,帶有很明顯的C或者C++思路,這種時候我自己也會需要花點時間才能把思路折過來。
-
5 # 塵風沐雨Alick
大家好,作為一名IT工程師,我來回答一下這個問題!
我的觀點是,不同程式語言對程式設計師的思維塑造區別不是很大。
我們常常看到一個已經熟練某種程式語言的程式設計師,再去學習另一種程式語言,基本用不了多久就可以掌握個八九不離十了,比一個零基礎開始學的人會快很多很多,這是為什麼呢?因為他在學習第一種程式語言的過程中,已經學習了一遍程式設計的思想以及程式設計的原理。
不同的程式語言只是在語法結構上會有一些差別,但是程式設計的思想其實是差不多的,在程式設計開發這個領域,程式語言有很多種,我們經常會看到某些語言一下子火了,某些語言慢慢沒落了,有些火的語言可能也就火一陣子就過去了,就像是個動態的池子一樣,其實說白了,這麼多種數不清的程式語言就是個開發用的工具而已,其程式設計原理和思想都是差不多的。
再說具體點的話就是,不同的程式語言無非都是圍繞那些條件語句、迴圈語句去實現邏輯互動,只是不同的語言它的語法可能有點差別,比如java每個程式碼塊前後都有花括號括起來,而python就不用,但是它們的效果都可以達到,你說java不添那對花括號行不行,肯定不行,同樣python你給它添上了它也照樣會報錯給你看。
-
6 # 飛行小牛
有啊,很大的區別,c++和python的區別就很大。關鍵是python在數學計算方面比較方便,c++你就得重新造輪子了
回覆列表
區別不大。
簡單說,都是判斷if,迴圈,然後做對應的事情。就像人生,也是不斷在做判斷和重複動作。
具體說,語言只是皮毛,到中後期,都是數學。演算法,才是程式設計的核心。
掌握語言,只能算看懂數學題目,但是解題思路,才是數學真正的精髓