近期要学的一些东西
IT学习无止境。以下整理一下计划学习和研究的东西。
语言学习,重点关注C#(不能说掌握得差不多了,但继续作为主力编程工具需要不断提高)和C++11的进展,补一些boost的课(有条件的话看boost在新C++条件下如何演进)和C++遗忘的东西,回顾设计模式在这两个语言中的应用。留半个眼睛给Functional Programming和并发编程。有空粗略思考一些语言设计、对象模型、泛型和元编程、编译实现的问题。
最近我发现越发对C++这门语言不感冒了。个人感觉,除了一些计算密集性能要求和架构要求有些紧张的场景,C++不是一个好的选择。对于前端界面应用,越来越没有C++什么事,对于大型的复杂的前端应用程序,长期维护和改进C++的代码的开销实在很大(除非这个团队人人都有很好很一致的C++开发习惯和素养)。所以C++一般可用于学术研究和仿真,和一些比较复杂又比较固定和本地化的算法(比如一个需要可扩展的JPEG2000的编解码器,一些图像处理模式识别的算法核心等等),但即便这样,这些场景未必不能用C实现,而只是用C++更具模块化和可扩展性;而对于通常C++大展拳脚的游戏引擎领域,似乎也有逐步采用其他语言的趋势(具体我也不了解);而对于服务器端,那些效率不差,并行效果又好,语言也更友好的新式语言如Google的GO的确在长远看可能更会被看好。
UI/Web架构学习,重点关注和实践WPF(因为毫无疑问这是最先进的,也是工作学习要用),留半个眼睛给HTML5(iOS、Android什么玩意儿?没听说过)。有条件了解一下node.js。HTML/CSS/JS相关基本无视(不过真有空可以考虑一下简单的浏览器实现?偶尔做做梦也是未尝不可的)。ASP.NET没空学也没兴趣,JSP目前只会一些基本的可以了,打打杂的时候用用(一个JSP小项目做了到现在钱还没给全,可见这个行当有点不靠谱,说笑)(PHP什么玩意儿?没听说过)。WCF最近是用不上了,万一要用的时候再捡起来吧。
数据库还是停留在ORM阶段就可以了,工作也只需要这些,关注Entity和(N)Hibernate框架。暂时没必要去整那些SQL和具体的DBMS特点。
继续学完Computational Geometry,因为工作很可能要用。争取操练实现一些算法,基本上加入自己的C#库。另外要把RTree相关复习整理一下,因为也可能要用到。计算机图形学目前掌握这些够用就可以了,根据需要再学。
通用算法是很难的,也很耗时间。只是有机会做一些练习吧。基本上用C#来做绰绰有余,适合的话就加入自己的C#库。
分布式算法,搜索引擎算法等都很有趣,也很伤脑筋,有机会看看。理论知识得先学了,因为以前没学,郁闷。
机器学习、模式识别等也更伤脑筋,放在比较低的优先级把。
操作系统没空研究,暂时也不是很有必要了。