程式設計師是否能夠不學演算法?

時間 2021-10-17 14:50:52

1樓:Hesion

可以不學。你如果能把一些業務技術(別人造好的輪子)能靈活運用,何必一定要成為造輪子的那個人呢。

演算法這個東西,理解他是必然,但你不一定要是創造他的那個人,雖然在造輪子上來說,可能一定程度會限制發展。

2樓:琴姑娘

如果計算機算力足夠大。前提目前不成立。任何事情都有成本。

你打算什麼事情都用超級計算機來做嗎?如果能夠用 1000 塊的電腦搞定,你要花幾百萬搞個超級計算機來做?計算機本身就是有物理侷限的,比如有限字長、有限時鐘、併發限制、耗電量巨大。

歸根結底都是能源限制。如果存在一種數學上的無限計算機,那當然什麼都不需要了,問題是不存在。物理上也沒發現永動機。

人類也沒發現一勞永逸解決能源問題的方法。人類所有的努力,都是在有限資源和資源日益稀缺的基礎上作出的。如你所說,如果有一天人類能利用星際能源,那或許還有可能,現在沒有。

把發展演算法的時間拿來發展硬體效能。很久以前,人們就發現了摩爾定律:硬體效能是有瓶頸的。

因此此法不可行;當然,如果人類有一天發現了一種突破摩爾定律限制的技術,那就有很大想象空間了。這也是基礎技術突破的重要意義:不是一小步,而是一大步,不是馬車與汽車的進步,而是火車與火箭的飛躍。

然而,人類的科技發展,看上去日新月異,實際上作出每一次重大突破都極難,在上帝看來,人類的努力就像螻蟻一般,一點一點,微乎其微。

演算法只有在bestcase 下才有最好效能表現。不,演算法的存在意義在於平均耗時,而不是最佳耗時。你忽略了最重要的一點;

演算法需要case by case 研究。我們所學的大部分演算法都是具備很強的通用性的,僅在特定情況下才需要引數調優。

你的意思應該是:演算法是否有存在意義,而不是應不應該學?毫無疑問,演算法必須學,它是程式和現代網際網路的基石。不學演算法,無異於買櫝還珠,把最好的東西丟掉了,只撿了個表面的東西。

演算法本身研究起來很有趣。這點可能你體會不到,但不代表別人就不喜歡。

不存在萬能公式。所有的演算法都有適用場景。簡單排序演算法理解非常簡單,適用於萬以下的資料量級,歸併排序和快速排序比較複雜,而且容易出錯,適合百萬級排序,檔案排序適合磁碟排序;位排序適合有限稠密的不重複整數的排序。

綜上,演算法目前以及將來都是需要學習的。

3樓:yac

如果程式設計師定義是coder 那不學演算法一樣可以複製貼上。

如果是programmer 那不學演算法做出來的東西別人敢用麼?

就好像乙個建築師會畫線條但是看不懂圖紙:p

4樓:最愛Amicus

我覺得能,大部分應用是基於api,所以第乙個問題是可行的,可以用不同的例子適配不同的演算法。。。

第二個萬能公式是不行的,起碼對於排序來說。

5樓:好為人師

排序是演算法裡面最簡單的部分,但是你也要考慮幾個問題,quick sort 在現代的體系機構下,好嗎?你做過實測嗎?隨機一百萬浮點數的排序,哪種排序更快呢?

多執行緒怎麼處理呢?多執行緒下,什麼樣排序更快呢?

6樓:高質量打工人

我建議你還是可以學一下的。

演算法是每乙個程式設計師都要學的一門課程。

如果說說你平時用得不多,你可能覺得自己不用掌握這個東西。

但是你想成為一名高階程式設計師,或者是資深架構師,演算法還是是一定要學的。

如果實在懶得學的話

也可以不學到很強的演算法,會用遞迴就可以了。

會用遞迴從資料庫裡的表構建出樹狀選單就行了。

7樓:老Z也

演算法涉及到兩個層面:a. 解決問題;b. 更高效解決問題。 你說的如果沒有硬體限制,只要會冒泡演算法就可以了,可是冒泡演算法它也是演算法啊!

硬體限制永遠存在。你所謂的」計算機算力足夠「是個模稜兩可的說法。還拿排序來說,在現在的電腦上,你給1000個數字排序,那用冒泡演算法和快排效果相差不大;可如果是給1000萬個數字排序呢?

給1000億個數字排序呢?

」程式設計師是否能夠不學演算法?「回答是可以。其實現在大多數程式設計師工作中不需要自己去寫演算法,一方面是工作性質不涉及(比如前端程式設計師,就很少有機會用到演算法);另一方面是很多演算法已經被打包成庫,只要直接呼叫就行。

但是,乙個沒學過演算法的程式設計師,不是乙個好的程式設計師,為什麼這麼說呢?其一是沒學過演算法,你就沒有辦法解決一些比較深入或者前沿的問題;其二是沒學過演算法,在程式設計思想上就會棋差一步;其三是,沒學過演算法,你很難通過很多大廠的面試。

8樓:青雲若水

年輕人想的有點多,

氣泡排序時間複雜度是O(n^2), 基於比較的排序最小複雜度是 O(nlogn)

假設n是一百萬 n^2 = 一兆

nlogn = 兩千萬

你說的侷限性上,的確對於很多不同的資料集,不同排序演算法的複雜度有些區別。現在絕大多數的語言自帶的sort都會做類似的這種分析在選擇合適的演算法。

9樓:吳憂

沒有學過可計算性,不過答案應該是沒有通用演算法能解決一切case。

另外,無限資源這種理論狀況不存在,在現存條件下,還是要優化的,否則空間時間總有你不可接受的。

程式設計師應該如何學習演算法?

哈哈哈 程式設計師學習演算法,演算法書上的理論,名詞,大致了解,具體的專案中具體用到的時候再重新翻書,深入的學習,有實際的例子,這樣更能理解。 李佳 我就補充乙個選項,不算什麼經驗之談。有個很小的軟體叫做 Algorithms 截圖如下,每天想起來就開啟瀏覽下,比較符合普通程式設計師入門的需求,保持...

不學C語言可以當程式設計師嗎?

222elm 程式設計師的方向很多,有些方向不需要學習c,有些方向入門時不需要學習c。但涉及系統的方向c是必備技能。如果做深入了,短時間學個程式語言是個必備的技能。 Shaquille Pan 我認為程式設計師有好多,就根據我的工作經驗來講講 我把測試人員,演算法工程師,系統開發都叫做程式設計師,其...

2023年程式設計師是否過剩?

格格就入 記住一句話 技術崗位沒有天花板。既然沒有天花板,那這個行業就永遠不會過剩。其實現在程式設計師的最主要的問題是大家一窩蜂的進入到這個行業,圖這個行業的薪資高。但是質量都是參差不齊,自學出來的也可以成為是程式設計師,計算機專業畢業,但是沒有做專案的,也可以稱為程式設計師。這是讓大家覺得程式設計...