作者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/cn.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