作者iman00b (I'm a n00b)
看板Soft_Job
標題Re: [心得] 一個程式設計師該會幾種語言
時間Wed Jul 25 14:56:02 2012
到底要會幾種程式語言,這實在是個大哉問,我身為一隻打滾十幾年
的程式猿,馬齒徒長、才疏學淺不敢妄言,以下僅為個人看法,歡迎
各位先進指點不足。
有人說程式語言只是一種工具,我也支持這種隱喻,你不可能拿榔頭
去鎖螺絲,自然也不太可能拿螺絲起子去敲釘子。
因此,你的工具箱準備了多少工具,代表你能做多少事,當然有些語
言是能速成的,有些程式語言也有基本的相似度,學會一種語言再學
其他語言多半能觸類旁通,但會不代表精通,有時候純脆是應付工作
上的需要而已。
我個人認為:
1. 一定要會一種編譯式語言,如 C/C++、Java 等等...
2. 一定要會一種直譯式語言,如 BASIC、LUA、Python...
3. 一定要會一種網頁應用語言,如 HTML、Javascript...
4. 一定要會一種 Shell Script,如 DOS Batch、Bash Shell...
5. 一定要會一種資料庫語言,如 MySQL、MS SQL...
我有提到過會不代表精通,但是對其他東西有基本的認識,可以讓
你的眼界更寬廣,而且你很難保證哪一天你不會用到,像在 QT 裡
就有很多用到 HTML Tag 的例子,如果你本來就有接觸過,是不是
就不用再浪費時間去學?當然 HTML 簡單的可以在十分鐘內速成,
不過多會一種並不難的東西,想必也不是太大的負擔。
不過就算你會數種程式語言,你一定要很清楚你自己的主力是什麼,
也就是說,你一定要專注其中一種,而且最好是門檻最高的那一種,
通常我是建議精通編譯式語言的其中一種,隨便一個語言都要花好幾
年的心力才勉強能算精通,就像我到現在也只敢說我對 C/C++ 比其他
語言熟一些,但從來不敢說我精通。
工具箱裡,多放幾樣不同的工具,需要用到時才不會手忙腳亂,不是嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.63.214
※ 編輯: iman00b 來自: 114.42.63.214 (07/25 14:57)
→ Lordaeron:Java 算編譯式? 要跟C++ 這程native language 同台? 07/25 18:00
有一些 ARM 系列的 SOC 本身也可以直接跑 Java bytecode...
那你能說他不是 native 嗎?我不是這樣分類的...
→ YunJonWei:把編譯式改成 Procedure/OO 才是原文的意思吧。 07/25 18:46
推 Ting1024:Java本來就是編譯式的。不然要歸類到哪? 07/25 19:07
→ Lordaeron:php 也可以是編譯式啊, 要算嗎? 07/25 19:46
→ Lordaeron:basic 好像也有編譯式的 07/25 19:49
BASIC == BASICA == ETBASIC != Quick Basic != Visual Basic
我同意 QB 跟 VB 都算編譯式語言,
但這兩種語言與原來的 BASIC 已經是大異其趣。
而 php、perl 這類語言即使有可以編譯的版本,
但被我歸類為直譯式(interpreter)語言,
最主要的原因是在於其鬆散的資料型態。
※ 編輯: iman00b 來自: 114.42.63.214 (07/25 20:53)
→ mapleone:我認為Java應該歸在直譯。當初byte code可是java一大特色 07/25 22:47
推 flylover:剛好我各會有一種..只能說,有需要時不會煩惱 07/25 22:55
→ flylover:但求職很少遇到全工具都要用上的,要用的話還要看薪水= = 07/25 22:56
→ ianlin45:Java跟C++能做到的事情都差不多,做不到的也差不多 07/26 00:07
→ ianlin45:Java很多直譯式語言能用的寫法都做不到啊 (動態XXXX) 07/26 00:07
→ ianlin45:歸類成編譯式也沒什麼不對 07/26 00:08
→ Lordaeron:哪些SOC 本身帶著VM 當然能跑, 哪要算native 嗎? 07/26 00:32
→ Lordaeron:咦, 連資料型態,都跑出來了呢, 哪就要拼 07/26 00:33
→ Lordaeron:programming language 囉, 咦, 好像是我常吵的呢. 07/26 00:33
→ Lordaeron:Java跟C++能做到的事情都差不多? 你用java 來寫driver? 07/26 00:33
→ Lordaeron:做不到的也差不多? 有什麼C++ 做不到的? 我看是你做不到 07/26 00:34
→ Lordaeron:吧. 07/26 00:34
→ Lordaeron:不要賴給C++ 07/26 00:35
→ andymai:到底是直譯式還是編譯式~吵這有意義嗎?選對適當的語言做起 07/26 00:42
→ andymai:事來事半功倍才是重點吧... 07/26 00:42
→ Lordaeron:你沒意義而已, 東西總要定義清楚, 不然就不清不楚的 07/26 10:11
→ Lordaeron:嘴巴跟鼻子在講了. 07/26 10:11
你如果堅持 Java 是屬於哪類語言何不直接發一篇文?
我的分類就是這樣,不能接受,不開心那是你自己的事,夠清楚了嗎?
※ 編輯: iman00b 來自: 111.250.147.118 (07/26 12:40)
→ Lordaeron:哦...原來是這樣, 你爽就好囉. 07/26 12:59
→ viable:哇 好小氣的作者 07/26 13:34
→ viable:又不是你的個人版,小氣什麼?真難看,成熟點好不好 07/26 13:37
因為這種討論到後來都是各持己見不會有交集。
我有提出為什麼我是這樣分類的,當然有更深入的原因。
但因為不是本篇主題,所以我不想深究。
如果另外發文,我會很樂意的參與這類討論,一切對事不對人。
不過怎麼會是不相關的你先人身攻擊我呢?
我都沒上勾了... XD
麻煩版主能依照板規第二條處理一下這種人身攻擊嗎?
※ 編輯: iman00b 來自: 114.24.52.243 (07/26 14:15)
推 viable:不干我事,但這是我的良知。還有你又能証明別人會跟你爭吵? 07/26 14:20
→ viable:你這樣含血噴人不好吧?做人講話要憑良心啊!別亂毀謗別人 07/26 14:22
原來所謂良心就是可以指著別人罵!(筆記)
→ Lordaeron:你當然可以照你的意思去定義囉, 高興就好, 就正如你說 07/26 14:22
→ Lordaeron:java 跟c++ 可做的差不多, 是一樣的, 高興就好. 07/26 14:22
我從來沒說過兩者能做的事差不多,我只說這兩者對我來說算編譯式語言。
※ 編輯: iman00b 來自: 114.24.52.243 (07/26 14:25)
※ 編輯: iman00b 來自: 114.24.52.243 (07/26 14:26)
→ viable:死愛面子 錯還硬幺 我說的是事實,跟據釋憲509條,事實即不 07/26 14:30
→ viable:構成毀謗,更無關人身攻擊,這兒版規不可和憲法抵觸 07/26 14:32
→ viable:更正 不可和刑法抵觸,這是憲法規定,請多學常識好嗎 07/26 14:34
Mostly, we have been using compiled languages like C, C++, Java and Visual
Basic. Java has an interpreter but it need to compile first.
你確定你有看過才轉貼?
→ Lordaeron:簡單的講, compiled language 是直接產生machine depend 07/26 15:16
→ Lordaeron:的executable, 而interpreted language 則產生middle 07/26 15:16
→ Lordaeron:code, 再經由OOXX 轉譯成machine depend 的code 07/26 15:17
※ 編輯: iman00b 來自: 114.24.52.243 (07/26 15:27)
→ Lordaeron:更口語一點, 一個是直接懂, 一個要翻譯 07/26 15:45
→ Lordaeron:你不用想我是沒看過的.. 07/26 15:45
推 LaPass:這串推文是怎麼了..... = = 07/26 20:35
→ KeySabre:歪了 07/27 03:03
推 discoby:兩個來亂的可以滾出去了 這篇不需你們來歪樓...=_= 07/28 14:17