看板 Tech_Job作者 champdessert (朱安)標題 [討論] 有沒有讀工程的覺得學python很難/煩的呢時間 Sat Oct 26 00:30:14 2024
如題
小弟唸工程的,之前學C++拿來處理實驗數據、玩arduino或用matlab都覺得還不錯用,因為就那幾個指令,只要靠邏輯就可以慢慢土法煉鋼拼湊出來要的東西。
但最近碰到大家說很好學的python,卻覺得它東西都過度包裝所以不好用,正因為都是人「定義」包裝好的東西,一定要照著他的方法寫,反而用起來覺得煩。如果遇到bug因為都是包裝好的指令所以無法用直觀的邏輯去debug或推論,還要上網查一堆資料,還不一定有解。而且這樣就會變成case by case,在不同的應用就要學一系列不同的函式定義,情境稍有不同可能就無法套用,沒辦法用最基礎的一套解決。
為什麼大家都說c++比較難python簡單,而我的感覺卻相反呢?是我之前都用得太淺了嗎?
--------------------------------
再更:感謝各位大神的回覆,看來應該不是語言種類的關係,而是之前的應用太基礎、
還沒遇到類似問題的關係才會產生這樣的錯覺。要來努力學習了~
--------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 174.95.155.204
※ 作者: champdessert 2024-10-26 00:30:14
※ 文章代碼(AID): #1d6yUOqd (Tech_Job)
※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1729873816.A.D27.html
※ 同主題文章:
[討論] 有沒有讀工程的覺得學python很難/煩的呢
10-26 00:30 champdessert
推 j0958322080: C++ 你去看他泛型跟繼承怎麼寫你就知道 python 簡單1F 10/26 00:53
推 ejnfu: 說C++簡單想必是神人,受我一拜2F 10/26 00:54
→ geneadsl: 覺得py比較難+1,
但現在上gpt下咒語其實快很多哈,
用py弄一些tool確實輕量蠻多的3F 10/26 00:54
→ ejnfu: 我在某大廠寫了一兩年C++就受不了了..6F 10/26 00:55
推 silverair: 你是把cpp當c在寫吧,不然就是大神了
modern c++根本不是給普通人學的東西7F 10/26 00:58
推 a9202507: 原語言就可以解決你現有的問題 其實就不用學新的.9F 10/26 00:59
推 abccbaandy: 因為你寫的都是玩具等級吧...py不好用就自己用C寫啊大神不都這樣,嫌棄完就自己搞一套12F 10/26 01:19
推 wulouise: python prototype快很多吧,除非你要效能才寫c++14F 10/26 01:22
推 ppit: 對初學者來說python應該是比c++友善16F 10/26 01:28
推 mmonkeyboyy: 不要那麼modern就 C++其實就還好
python有時卡東卡西也很麻煩17F 10/26 01:34
→ rnoro: 呃,你只是要一個能動的東西,哪個語言都差不多19F 10/26 01:36
→ mmonkeyboyy: 一些math lib其實也沒有到很複雜
那種一來就要求modern C++ 下去的專案才是最可怕的20F 10/26 01:36
→ rnoro: 但你要寫到業界標準好用高效易維護,C++很不容易22F 10/26 01:37
→ mmonkeyboyy: 通常都會先有個樣子模式 再回去改 再改成modern啊23F 10/26 01:37
推 XFantasyX: 會有這種想要土法煉鋼的想法,不是已經參透萬code的大神就是接觸不深的新人。而且你說的case by case在C++也是一樣啊,環境不同適用的實作也會不同24F 10/26 01:38
推 mmonkeyboyy: 不過土法鍊鋼真的不要@_@~ 你一開始試還可以
當不一定有解時就要去看code註釋@_@~27F 10/26 01:40
噓 pig2014: 你10000%絕對學得太淺。cpp超難,光template報錯要能三秒看懂就要長時間的經驗累積,更不用說segfault、dtor忘了下virtual、perfect forwarding+rule of five的巧妙及繁冗、如std::map不可用std::upper_bound的各種stdlib的糞坑。我猜你根本不是寫cpp,而是用gcc編放個include iostream在第一行的c99吧cpp絕對是程式語言的標竿,沒有之一。未來也一直都會是,而原因很簡單:cpp效能掛帥,從不出賣效能。cpp14之後把effort盡可能倒給編譯期,並胸懷大度的一直把boost納入懷中,不但穩固了霸主地位,還形塑了cpp未來50年政治正確的道路
此外用py根本無法正確學習OOP,如多型的基礎觀念根本無法掌握、design pattern 很多都殘廢了,如visitor pattern的accept直接消失,初學者還會以為是雞肋怎麼提出這個模式的人這麼笨29F 10/26 01:55
推 ejnfu: 樓上是也不用這麼氣啦 XDD44F 10/26 02:11
推 yoyo86215: 如果是寫c覺得python我可以理解,但c++應該難很多46F 10/26 02:14
→ encorek22554: 那只是你之前c都在寫玩具,你不如把現在用py寫的改成用c寫看看47F 10/26 02:25
→ LipaCat5566: c++ 看哪版吧一堆新的舊的東西還有歷史問題只用c的部分當然單純簡單
這樣哪天一不小心變套件工程師不就完蛋 都要照別人定的東西搞49F 10/26 02:34
→ demintree: 難得有古典戰文XD 好久沒看到人家戰語言了XD54F 10/26 02:55
→ peter98: C++簡單??? 你是把C++當成C在寫嗎?55F 10/26 03:18
→ wuyiulin: 同意 pig2014,不過我學生時期也有這種迷思,先不噓給箭頭,多寫多看吧。56F 10/26 03:22
推 kaltu: 學C++不如學domain特定的語言,寫C++說Python雜大概是沒在跟最新標準的
什麼語言特性紅起來C++就要copycat一份進去疊床架屋,現在連Rust的borrow checker都要抄,一樣的功能C++有幾千上百種寫法
Python的核心哲學是一件事最好只有一種方法,真的沒辦法也是越少越好
從這個角度來看誰雜誰亂?
用package這種事,Python至少有標準化的import模型,C++引用別人的package有幾千上百種方法,再搭配遇到 compile error或runtime error也有幾千上百種出錯的方法,你要去學他用的pattern、design style然後自己改他的code去發PR給upstream解決,還是開issue坐等?Python 的大套件最常出的問題就只有版本不匹配而已,內建的虛擬環境系統和dependency基本上都足夠解決很多事情,但個人還是喜歡rust的cargo
C++是真的早該被時代淘汰而不是一直出新標準然後 retro fit 奇怪的功能進去
覺得C++不夠難不夠煩的都去寫個C++26 draft 版的LLVM 前端試試58F 10/26 03:34
→ yunf: 不知道Open A I有沒有辦法完成你們的願望78F 10/26 04:39
噓 a731977: 大概連smart point是什麼都不知道79F 10/26 04:56
推 mmonkeyboyy: C++26....這東西也太先進了吧 真有人用下去了??80F 10/26 05:20
推 dildoe: c++ 城步堂.gif 在笑你XD82F 10/26 06:42
推 chargee: 以後都不用寫程式啦~83F 10/26 07:04
推 pptpptppt: 不說我還以為你的工程是超認真少年那種工程84F 10/26 07:20
推 lycer: 你應該是用c++ 在寫c87F 10/26 07:56
→ royyy: 不能這樣比,Python 接近第四代語言,出發點就不同88F 10/26 08:27
推 ofd168: 說C++比python簡單,肯定是等級已經高到我理解不了的真神人89F 10/26 08:48
推 harry0959: 我都用python做資料處理和演算法模擬欸91F 10/26 08:51
→ cphe: 看起來你的用途大概只是很簡單的資料處理,別想太多,就是python 最快
然後很大可能性你說的C++是C style94F 10/26 09:19
→ invidia: 可以試試 Assembly98F 10/26 09:54
→ NexusPrime: Python語法簡潔, package多,又很適合AI model prototyping啊,但是我看你的應用可能比較適合C++99F 10/26 10:04
推 Usana: 我都用ASM語言寫101F 10/26 10:13
→ CGDGAD: 以前自己看java的書學java,看不是很懂103F 10/26 10:28
→ champdessert: 版上好多大神(緊張,感謝大家的解答,看來我要學得還很多
不好意思很少用PTT,對相關操作還不是很熟悉,但沒沒要洗文的意思啦XD104F 10/26 10:31
→ TSMCfabXX: 不用重新發明輪胎 vs 為什麼一定要用他的輪胎108F 10/26 10:44
噓 GooglePixel: 原來C++是"就那幾個指令"的語言啊 原po真神人也
Python的社群生態系支持省去自造輪子的功夫 程式碼可以寫得很易懂乾淨 看來是我太菜了109F 10/26 10:46
→ DrTech: c++ 的 runtime segmentation fault很好debug嗎? python從來不會遇到那麼難的問題,也不需要管理記憶體,python一直Trace錯誤的行就好。112F 10/26 10:51
推 luckyBF: 我從組語切C時,也是這樣想115F 10/26 11:02
推 venomsoul: 其實我理解你說的很難,python使用上的方便反而讓cpp用戶很困擾吧,不過當你兩種都會後,應該會在不同的開發目的的情況下分別選擇其中一種116F 10/26 11:08
推 m8403051: 隔壁C語言版已經進化到我連貼文都看不懂了119F 10/26 11:12
※ 編輯: champdessert (174.95.155.204 加拿大), 10/26/2024 11:25:47
推 EPIRB406: python主要是資料沒有型態一開始很困惑吧!習慣比較嚴謹的程式語言轉過去的確會有不適應期。120F 10/26 11:35
→ fallen01: 一個造輪 一個用車 你連用車都覺得難何況122F 10/26 11:42
→ ZooseWu: 我這輩子第一次聽到有人說c++簡單 肯定是天才吧123F 10/26 12:10
→ DrTech: python不是沒有資料型態,python 一樣有string,int,float…只是 python簡化到你沒宣告就自己轉。你也可以很嚴謹的,寫python時,一開始就明確指定資料的型態。124F 10/26 12:26
推 DrTech: python3.6以後,是可以宣告變數只能是某種固定資料型態的。129F 10/26 12:30
推 TPPCMAN: 就想 大家都用 yum 或 apt 安裝軟體。 一但來源端不維護 或失去網路 完全不懂怎麼安裝軟體
我喜歡一層層 依具相依性來 自行編譯安裝131F 10/26 12:31
推 lturtsamuel: 我覺得c++跟py都很爛 但c++的爛我還能理解 是為了向後兼容或是極致效能 py的爛我總覺得是語言開發者能力不足==134F 10/26 12:44
推 Morphee: 沒啥麼難的,python我用到已經買超過四間房了138F 10/26 13:03
→ haoboo: 覺得rust也是玄學…139F 10/26 13:54
推 NTUmaki: 你會覺得C++比 Python 簡單只是因為把C++當C在用沒有用到 modern c++特性,只有處理很基本的演算法邏輯,跟我之前一樣XD140F 10/26 14:12
推 johnjohnlin: c++的template metaprogramming真的難懂,但是我也找不到什麼好的替代品143F 10/26 14:22
推 holebro: 反串文大家還這麼認真回145F 10/26 14:45
推 lllll12b56: 我從C切到Python也有這種感覺 就一瞬間從很有邏輯》沒什麼邏輯的感覺 習慣就好147F 10/26 15:23
推 donkilu: 個人覺得Python最無腦的地方其實是編譯 超懶人XD
C++寫是沒有很難 但編譯很難搞 尤其專案複雜後更難149F 10/26 15:24
→ donkilu: 相依性衝突 未定義符號解到抓狂
另外kaltu大講的C++標準不斷塞新東西也是很歡樂...每個人最習慣的C++可能都不太一樣 我大概是C++17 XDC++20 23一堆奇奇怪怪的新功能還沒時間好好學一遍152F 10/26 15:27
推 hooll111: python難?不是都用chatgpt詠唱了嗎XD156F 10/26 15:38
推 f97300305: C++也可以用chatgpt詠唱啊157F 10/26 15:44
推 newwind: Matlib 也是script 只是他專門數值分析,當然你用在數值分析好用
Py 你可以自己手刻或是用c++寫函數啊
Py 你可以自己手刻或是用c++寫函數158F 10/26 15:51
推 henrylin8086: 我摸過用過至少5種語言,戰語言真的沒意義。任務需要你就要會,我最常用的就是用py測算法,用C++實作。py快速寫邏輯非常快,不太需要考慮硬體層的邏輯,覺得py難是你還沒跳脫既有的語言的思維框架。162F 10/26 16:14
噓 simata: 叫ai教你166F 10/26 18:00
推 Lhmstu: py資料處理真的方便快速167F 10/26 18:03
噓 pig2014: cpp就王者標竿,我就愛拿cpp戰語言怎168F 10/26 18:59
推 queen1983: c難在指標,python只要會用library就好169F 10/26 19:57
→ lineak: 如果用py 可以解決90%的問題, 剩下10% 給大神用cpp 解就好170F 10/26 20:13
推 karcher: python比c簡單多了。應該是還不太習慣python172F 10/26 20:26
推 Apache: 怎麼感覺留言區帶歪了
原po遇到的問題根本是因為他用過的庫太少吧
哪個庫不要求scenario的== 每次都自己造輪子踩坑嗎173F 10/26 20:57
→ uncle925: 說實話 沒有python和一堆開源庫 開發AI的進展絕對慢176F 10/26 21:44
推 KanzakiHAria: 既然沒人說用matlab可以考慮玩玩numpy之類的lib177F 10/26 22:00
→ MTKer5566: C++比較簡單,但先進的C++寫法用source insight很難trace
上面說C難在指標的,暫時沒資格談這個話題178F 10/26 23:17
推 joknight: 丟給Gemini or ChatGPT 就幫你改好了181F 10/26 23:29
※ 編輯: champdessert (174.95.155.204 加拿大), 10/26/2024 23:56:05
→ btpeter: Python ,matlab 等應用層的語言都是很直觀的 工具比較簡單的語法就可以執行 c ,c++,or Verilog 都不是這麼直觀的語法 需要去多寫一些語法才可以執行…..覺得你應該是不是很懂Cor C++才會覺得應用層的tool不好用….
樓上的C最難的是指標 應該只是偏見或者大眾思維 人云亦云 …指標就是讓你知道如何定義跟找到記憶體的address 當你在設計OS 的時候可以輕易的呼叫出來或者指定出來…..182F 10/27 07:44
→ utahraptor: 我推薦你用scratch,這個絕對比python簡單191F 10/27 13:26
→ kidbaby: 竟然有人說指標難...那你沒學過C阿192F 10/27 14:33
--