作者smilecat13 (微笑的貓)
看板Soft_Job
標題Re: [請益] 誰最適合做Java學習者的墊腳石???
時間Sat Oct 17 00:12:53 2015
交大大二哪有教Java = =?
我大學讀113CS,大一上教C,大一下幾乎教C++。
說「幾乎」的原因是,我那屆時還有一個老師教Java,
但他退休了,之後就全都是C++。(據我所知)
(有個小八卦就是...有一些老師在反彈為啥大家都教C++就那個老師要教Java...www)
113CS幾乎大部分人都是寫C/C++,會寫Java的人很少。
當初上Compiler的時候,老師很驚訝的是全班90人幾乎沒有人會Java XD
我研究所116,讀的是軟工,就有涉及比較多OOAD的部分,
也是到研究所後才開始學Java,
學了之後才發現以前的OO觀念根本一蹋糊塗...
像是以前根本不知道OO的Polymorphism的強大之處,
Static Polymorphism和Dynamic Polymorphism的差別也似懂非懂,
以及很多OO的觀念都重新建立起來。
我身邊有些同學C++超強,不過OO觀念很弱,
像是以前就有聽到「我不喜歡寫太多個class」之類的話。
C++雖然也有OO,但通常C++教科書上比較不會著重這塊,
或是簡單介紹繼承、多型...之類的OO語法。
不過我學Java的時候,教科書就有介紹比較多OO設計守則的觀念部分,
像是為什麼要寫 Set set = new Hashset();
而不是寫 HashSet set = new HashSet();
畢竟Java是99%的OO語言,當然會有比較多的著墨在OO設計這塊。
我覺得,若你想好好學OO,那Java真的是個不錯的選擇。
雖然我也是先學C++再學Java,
不過我不覺得這些語言的學習先後順序會有什麼差異,
因為他們都是程式語言,觀念大同小異,只差在語法不同。
接著關於你的疑點二,
我覺得做高階軟體設計的Java Programmer的確不用深入了解
數位邏輯(電路設計)、計組的硬體架構設計,或是OS的排程演算法等等,
但這些課程你還是要有基本的觀念,你可以不用精通但是要有一些概念,
像是基本的邏輯概念、bit運算,process/thread之類的基本概念。
我一直覺得對於讀CS的人,程式語言只不過是個工具,
最珍貴的點在於我們懂得作業系統、演算法、資料結構、OOAD等等的觀念,
不然說真的買本書來讀或是去巨O學一下出來大家都馬會寫程式,
但寫的好不好其實就很容易看得出差別。
如果你真的不想碰太底層的知識,
那我覺得至少演算法和資料結構一定要學的夠扎實。
最後是個題外話,在台灣寫C/C++比較好找工作薪水也比較高...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.104.14.103
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1445011976.A.D85.html
1F:推 chuegou: 最後一點講的很好,我是硬體背景,現在寫韌體 10/17 00:28
2F:→ chuegou: 我就知道我的優勢不會是演算法和資料結構 10/17 00:28
3F:→ chuegou: 所以我就是努力加強底層相關的知識 10/17 00:31
4F:→ viper9709: 推最後一句XD 10/17 00:39
5F:推 snaketsai: 交大無軟工(苦笑) 只剩一堂軟工課。OO的老師們對OO也沒 10/17 01:39
6F:→ snaketsai: 什麼心得的感覺。還真的沒聽任何一個老師講過設計模式 10/17 01:39
7F:→ coronach: 113電機以前大二有開很淺的Java課... 現在不知道 10/17 06:49
8F:推 cobrasgo: 113就園區導向啊,園區要什麼人才就培養什麼人才 10/17 08:18
9F:推 NCUking: 我記得交大研究所有開設計模式呀 現在沒了? 10/17 09:41
10F:→ longmahero: 拍謝 是我誤解了!非常精闢的經驗分享~超棒! 感恩! 10/17 11:12
11F:推 snaketsai: 是清大的唐大哥開過吧...剛剛回去查交大歷年表沒看過 10/17 15:22
12F:→ snaketsai: 交大是園區導向@@? 就我自己感覺是不像啊XDD 10/17 15:23
13F:推 snaketsai: 修正:原來95-98年間資科工開過Design Pattern的課(嘆) 10/17 15:36
14F:→ realmeat: 最後一段其實不是C/C++ 是純寫C 10/19 09:33