H*****l 发帖数: 1257 | 1 我背景是,高中时候搞物理竞赛,也顺带着学了点计算机竞赛的算法什么的(只是浅尝
辄止),本科学EE,来美国后还是EE,后来想转CS,去年一年因为科研作实验占时间很
多,断断续续跟着上了4,5门CS的课,有操作系统,网络,machine learning什么的,
学的也一般。看着目前的样子,还有2、3年PhD能毕业,平时每天可以拿出一半时间(
另一半做PhD的东西)来学CS,准备主攻Java相关的东西,请教大家应该学哪些内容?
谢谢! |
m********s 发帖数: 55301 | 2 你说那么多背景干嘛???
学Java,最重要的就是,google。
【在 H*****l 的大作中提到】 : 我背景是,高中时候搞物理竞赛,也顺带着学了点计算机竞赛的算法什么的(只是浅尝 : 辄止),本科学EE,来美国后还是EE,后来想转CS,去年一年因为科研作实验占时间很 : 多,断断续续跟着上了4,5门CS的课,有操作系统,网络,machine learning什么的, : 学的也一般。看着目前的样子,还有2、3年PhD能毕业,平时每天可以拿出一半时间( : 另一半做PhD的东西)来学CS,准备主攻Java相关的东西,请教大家应该学哪些内容? : 谢谢!
|
b***i 发帖数: 3043 | 3 一方面,打好基础,学点web,另一方面,做点项目。
【在 H*****l 的大作中提到】 : 我背景是,高中时候搞物理竞赛,也顺带着学了点计算机竞赛的算法什么的(只是浅尝 : 辄止),本科学EE,来美国后还是EE,后来想转CS,去年一年因为科研作实验占时间很 : 多,断断续续跟着上了4,5门CS的课,有操作系统,网络,machine learning什么的, : 学的也一般。看着目前的样子,还有2、3年PhD能毕业,平时每天可以拿出一半时间( : 另一半做PhD的东西)来学CS,准备主攻Java相关的东西,请教大家应该学哪些内容? : 谢谢!
|
o**2 发帖数: 168 | 4 Java相关的东西太多,估计你要有几样拿手的才行。
Web是必须的,很少有职位只要core Java的,除非是infrastructure,不过那种team也
不会招新手的。
首先,要有深入的HTTP protocol的知识打底,一般读书的人都能静下心来好好读一些
internet spec,估计对你不是问题。然后是Servlet/JSP,再然后是一两个流行的web
framework。
Java的语言feature都要过关,然后编程技术要基本过关,最后要有一两手高端一点的
绝活,比如concurrent programming。如果你最后真的选择了Java的并发编程的话,可
以跳过多线程编程,直接学我的Fast Messenger Programminghttp://fastmessenger.com。我可以提供一些个别的辅导。 |
o***i 发帖数: 603 | 5 并发怎么绕过多线程?
web
【在 o**2 的大作中提到】 : Java相关的东西太多,估计你要有几样拿手的才行。 : Web是必须的,很少有职位只要core Java的,除非是infrastructure,不过那种team也 : 不会招新手的。 : 首先,要有深入的HTTP protocol的知识打底,一般读书的人都能静下心来好好读一些 : internet spec,估计对你不是问题。然后是Servlet/JSP,再然后是一两个流行的web : framework。 : Java的语言feature都要过关,然后编程技术要基本过关,最后要有一两手高端一点的 : 绝活,比如concurrent programming。如果你最后真的选择了Java的并发编程的话,可 : 以跳过多线程编程,直接学我的Fast Messenger Programminghttp://fastmessenger.com。我可以提供一些个别的辅导。
|
o**2 发帖数: 168 | 6 不是“绕过”,是“盖过”。CPU只提供多线程,所以并发的最底层一定是多线程。但
你不一定要用最底层的东西,比如汇编之上有C,再之上有C++等。
你可以了解一下FMP -- Fast Messenger Programming
http://fastmessenger.com 和 葵花宝典(Programming)版上我的posts
基本上完成了FMP的 bots & nuts 的文档,目前在写高级阶段如何思考和设计的文档。
你有问题也可以在这里问。
【在 o***i 的大作中提到】 : 并发怎么绕过多线程? : : web
|
o***i 发帖数: 603 | 7 我粗看了一下,但是没有找到实现的思路。是把多线程给wrap起来而已么?效率上有什
么优势?
【在 o**2 的大作中提到】 : 不是“绕过”,是“盖过”。CPU只提供多线程,所以并发的最底层一定是多线程。但 : 你不一定要用最底层的东西,比如汇编之上有C,再之上有C++等。 : 你可以了解一下FMP -- Fast Messenger Programming : http://fastmessenger.com 和 葵花宝典(Programming)版上我的posts : 基本上完成了FMP的 bots & nuts 的文档,目前在写高级阶段如何思考和设计的文档。 : 你有问题也可以在这里问。
|
o**2 发帖数: 168 | 8 FMP重要的是spec,具体的实现不是特别重要,只有参考价值。
FMP的确把多线程隐藏起来了,但不是简单地wrap,而是提供了一个替代thread的并发
编程entity,叫做active object(如果完全没有听说过object model中的active
object的话,你可以暂时把它理解成actor)。
运行效率和直接写的多线程程序相当,benefits在:1,降低了写并发程序的门槛;2,
提高了开发效率;3,减少了并发特色错误。
什么优势?
【在 o***i 的大作中提到】 : 我粗看了一下,但是没有找到实现的思路。是把多线程给wrap起来而已么?效率上有什 : 么优势?
|