說真的懂一門編程語言 就是能逆練該語言
直白言 就是能作出該語言之編譯器
既然說 能對該語言之定義 語法 規則 結構 組語映對 虛擬機模型..等 完全掌握 沒有
比做出該編譯器更好之證明了
不要覺得如登天一樣 代碼是編 不是寫
網上很多學習用編譯器 好比TCC YUCC 拿下來參考就是
自己重謄 用自己方法重新實現 修繕 就能說是自己的編譯器
有了自己的編譯器 才能說是真正懂該語言
不然 只是說是知曉爾
※ 引述《starburs (星爆氣流斬)》之銘言:
: 大家安安
: 小弟今年23有個疑惑想請教大家
: “懂”一種程式語言的定義在哪
: 或者說 敢在履歷表的技能欄填上去的那個語言
: 會想這樣問是因為
: 小弟在大學修過幾堂C和JAVA的課
: 算是有點基礎
: 但是課本習題頂多能做基本題
: 進階題就完全不行了
: 所以履歷表沒敢說我有這些技能
: 怕到時候去面試被洗臉
: 蛤?你這樣也敢說你會????
: 所以想知道大家都是學到哪個階段才敢自稱會的?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.97.31
※ 文章網址: https://webptt.cc/bbs/Tech_Job/M.1521082467.A.635.html
不然還有更好的證明? 真的懂就是完全逃不出手掌心 那不就是能逆練之?
是全土砲還是只優化一小角?
沒自己扎實重騰次編譯器代碼 沒徹地了解其整個定義結構規擇
規格書沒徹底翻到熟爛 玩味其中字句
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf
還好意思說自己"懂"該語言?
誰規定不能用高階語言寫低階語言的編譯器了
各種語言之規格書中 可沒講編譯器要用甚語言來寫
(現在gcc中的C部份 用c++來寫的)
夠牛 要用python或java來寫C++編譯器 當然也可以
※ 編輯: KILLE (223.140.97.31), 03/15/2018 11:18:32
※ 編輯: KILLE (223.140.97.31), 03/15/2018 12:20:16
不要腦補 沒說只能用C寫C的編譯器
用fortran C++ python java...你想得到的任一編程語言
可以寫出C的編譯器 就算懂C了
※ 編輯: KILLE (223.140.97.31), 03/15/2018 13:35:22
這是裡討論怎樣算懂一門編程語言
不是討論懂了後之效益
不是懂了沒用 是離題了
※ 編輯: KILLE (223.140.97.31), 03/15/2018 14:51:45
你是要討論實用性還是"懂"?
※ 編輯: KILLE (223.140.97.31), 03/15/2018 15:01:28
抱歉本人不是本科系 完全沒上過課 不知道甚叫大型程式
是windows源碼那種有五千萬行的 叫大型嗎
還是只要10W就算了?
※ 編輯: KILLE (223.140.97.31), 03/15/2018 15:06:14
這裡重點是怎算懂一門編程語言 不是代碼多寡
也不是懂不懂大型項目
※ 編輯: KILLE (223.140.97.31), 03/15/2018 15:14:31
本滷工作十年了 算法開發 編程優化 嵌入式應用 串流編程 單片機 誇平台編程 摸一圈
後 得出真懂一語言 不是這樣容易
這是重點了 資工本科系 沒真懂編譯器 操作系統 那比起半路出家的 有甚區別?
?
※ 編輯: KILLE (223.140.97.31), 03/15/2018 15:59:56
※ 編輯: KILLE (223.140.97.31), 03/15/2018 16:01:54
※ 編輯: KILLE (223.140.97.31), 03/15/2018 16:05:56
推文 (54)
→
jses4408
小弟受教了 感謝解答
03/15 10:56
推
visa9527
意思是有能力做出 node.js 才能自稱懂 Javascript
03/15 10:56
噓
acgotaku
compiler跟programming 根本是不一樣的東西....
03/15 10:57
噓
yytseng
我同學博班做compiler的,寫程式普通而已
03/15 10:59
→
bemyself
推這篇原文和回應
03/15 11:03
→
bemyself
噓的人再多想一下吧。
03/15 11:04
推
bezlin
改寫別人程式片斷勝過全部自己寫 原PO是奇材
03/15 11:04
→
ARPG
為了展現學會高階語言,結果學低階語言來證明,真棒棒
03/15 11:09
噓
jameszhan
神經病 每個人都這麼閒嗎
03/15 11:30
噓
sam7159
我要把履歷表的程式技能拿下來惹
03/15 11:41
噓
w180112
代碼
03/15 11:49
推
workat60474
贊同推文的說法,我修過jserv的課,他對於真正熟練某
03/15 11:52
→
workat60474
種語言的定義確實跟你一樣,起初我也不相信這樣的說
03/15 11:52
→
workat60474
法,不過把課修完之後確實感同身受。
03/15 11:52
→
PUTOUCHANG
一般雇主問的"懂"是應用層面在那邊扯透析原理
03/15 11:55
→
PUTOUCHANG
廚師不懂料理因為沒修過分子生物學? 無聊
03/15 11:56
→
iincho
照這標準會寫C的沒幾個了....XD
03/15 12:34
推
boss0405
嚴格上來說是這樣沒錯,C的許多語法都是以compiler為基
03/15 12:37
推
s0914714
每個人對"懂"的定義不一樣 很難有共識
03/15 12:38
→
boss0405
礎,不過只是工作,不用這麼嚴格啦XD
03/15 12:38
推
s0914714
而且照原PO的說法 應該還要刻個OS才算懂XD
03/15 12:41
→
s0914714
以C來講啦 畢竟C就是開發來寫UNIX的
03/15 12:42
噓
ken1325
所以你寫完幾種編譯器了
03/15 13:03
→
furio
原PO認為要能用C寫C編譯器才叫懂C?這有點搞笑
03/15 13:30
噓
furio
這就更蠢了,到底是懂C,懂fortran C++...
03/15 13:37
推
CaptainH
推. 一般人只會強調語法,殊不知這是compiler中最簡單
03/15 13:39
→
CaptainH
的部份
03/15 13:39
推
furio
報歉!寫的太過份了,不過相信原原PO問的是運用端的懂不懂
03/15 13:54
推
iiiii
撰寫大型程式碼跟撰寫編譯器是不同的知識模型,前者可以賣
03/15 14:40
→
iiiii
錢,後者是開源,你選擇?
03/15 14:40
推
iiiii
法拉利會自己研究煉鋼打鐵技術嗎,要懂得分工合作才是蓋大
03/15 14:47
→
iiiii
房子的關鍵
03/15 14:47
推
iiiii
懂了,不能創造效應,聽說這就是象牙塔耶,是嗎?寫程式也
03/15 14:56
→
iiiii
只是按照操作機器的手冊指南操作機器呀,手冊寫的,負責寫
03/15 14:56
→
iiiii
手冊的人,的確很厲害,不過編譯器已經很多比我們都聰明的
03/15 14:56
→
iiiii
人都開創的很成熟,這個時代是需要懂應用的人,加油喔!
03/15 14:56
推
iiiii
您沒看過的大型程式,您不懂,我沒看過的編譯器手法,我不
03/15 15:03
→
iiiii
懂,這就是軟體的實境,我們都不懂,但是要一起努力做出更
03/15 15:03
→
iiiii
好的應用
03/15 15:03
推
iiiii
大型程式不是用行數看,而是要看模組的數目和整合度,通常
03/15 15:09
→
iiiii
不會只用單種語言完成
03/15 15:09
噓
iiiii
唉唉,我想我又跟學生認真,對不起大家
03/15 15:46
→
ggBird
不是本科?那還討論沙小
03/15 15:55
推
iiiii
People who boaster his projects are losers
03/15 16:24
推
boss0405
你是學理論科學的吧?我認同你的看法,不過不用太尊牛
03/15 17:40
→
boss0405
角尖啦,或許把'懂'換成'精通'就比較沒爭議了
03/15 17:40
推
iiiii
他如果真的工作十年,不會講這種話出來,又是學生來分享上
03/15 18:26
→
iiiii
班經驗了,唉唉
03/15 18:26
推
fan1234x
討論懂不懂為什麼會有人來吵會不會用...
03/16 08:30
→
EGsux
原來是造輪子專家
03/16 08:31
→
fan1234x
懂不一定用得好 用的好不一定懂不是嗎..
03/16 08:31
→
acgotaku
這個題目討論起來真的很好笑 10個SDE真正懂compiler
03/16 09:17
→
acgotaku
可能還不到一個,市場上20個SDE缺可能才一個要你會寫
03/16 09:19
推
filla
路過push
07/09 11:25