看板 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
silverair: 寫cpp不用查的我真的直接下跪10F 10/26 01:02
Mbappe10: 對新手而言 py友善很多11F 10/26 01:09
abccbaandy: 因為你寫的都是玩具等級吧...py不好用就自己用C寫啊大神不都這樣,嫌棄完就自己搞一套12F 10/26 01:19
wulouise: python prototype快很多吧,除非你要效能才寫c++14F 10/26 01:22
roy2142: 語言戰起來15F 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
SilverFocus: 你就是不喜歡 Python 而已,小事啦!45F 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
fishxd1096: 那rust呢 能幹掉c++嗎53F 10/26 02:52
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
a71245969: Python 很簡單了==81F 10/26 06:15
dildoe: c++ 城步堂.gif 在笑你XD82F 10/26 06:42
chargee: 以後都不用寫程式啦~83F 10/26 07:04
pptpptppt: 不說我還以為你的工程是超認真少年那種工程84F 10/26 07:20
williamroot: 我跟你相反,覺得py比較簡單跟直觀85F 10/26 07:35
darkMood: 放下。86F 10/26 07:51
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
rewisyoung: Python是最簡單的 C++難很多92F 10/26 08:54
wulouise: 突然發現好像是洗文仔?93F 10/26 08:54
cphe: 看起來你的用途大概只是很簡單的資料處理,別想太多,就是python 最快
然後很大可能性你說的C++是C style94F 10/26 09:19
abc21086999: 登入次數202,來洗文的97F 10/26 09:31
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
champdessert: 看來真的是因為我之前的應用太淺才會這麼覺得102F 10/26 10:24
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
qoo60606: 蛤128F 10/26 12:27
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
ptrs810812: 丟給gpt 過一陣子你就學會了137F 10/26 12:50
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
kenjigan: 喔146F 10/26 14:46
lllll12b56: 我從C切到Python也有這種感覺 就一瞬間從很有邏輯》沒什麼邏輯的感覺 習慣就好147F 10/26 15:23
donkilu: 個人覺得Python最無腦的地方其實是編譯 超懶人XD
C++寫是沒有很難 但編譯很難搞 尤其專案複雜後更難149F 10/26 15:24
WenliYang: 這已經夠簡單了)………………151F 10/26 15:27
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

--