您的位置:首页 > 其它

流行技术我该学哪样?--给刚进入IT的朋友的一封信

2008-11-12 16:32 176 查看
转载自:http://blog.csdn.net/david_lv/archive/2008/03/13/2176334.aspx#947151

身在CTO位置,一般关注产品战略发展、开发过程管理、产品Framework、IT行业发展变化、新产品新应用新盈利模式、客户行业变化、竞争者变化。但对现在的流行技术还是在一直跟踪。虽然很多技术不能应用到产品开发中(毕竟作为公司赖以生存的产品和竞争策略,不能随意选择技术和改变技术),但是一个产品的生命周期,大家都知道在业界一般都是5-8年一代产品(开发期、导入期、成长期、成熟期、衰落期。如果有感兴趣的朋友希望能详细了解这些,我可以另外他日起一篇博文给大家介绍,这是一个CTO必须要具备的,有对CTO成长感兴趣的可以一看)。下一代产品用什么技术,这种技术是否成熟,什么时候该开发下一代产品体系,什么时候相关的技术能成熟,如何选择合适的切入点,是每个CTO都要思考的。所以这么多年,一直在关注着。

那我就把我临时画的一个图分享给大家。算是对第一篇博文《2007年技术回顾》的整理。



从这张图可以看到,我把业界大家看得眼花缭乱的技术做了架构分层。每一个技术都在各自的层次上面适合发展,而且都是为了弥补本层现有产品和架构的问题。

希望做架构师的朋友注意了。你不管什么时候,不管是学习.net,WINDOWS,SQLSERVER,一定要有架构的思路。要分层,从点到线,从线到面,从面到体系来横竖切分。

而且一个产品架构,也往往是这么多层,而且在应用软件架构上,也就是:表现层、业务层、数据层。其他我们都是利用的中间件和VM和OS的现成技术,我们本身一般无须深入。而表现层、业务层、数据层,层与层之间都有接口层,而不是硬性接口,否则就成铁板一块了。一般架构经验不足的架构师,往往容易出现这样的毛病,层是分开了,自己沾沾自喜,以为这个架构是很有扩展性的。但具体一应用,就发现很硬,动不了。这就是缺乏接口层的原因。

但是这样表现的图,大家好像还不解渴。因为很多朋友是刚出道,选择什么才有钱途,才能好找工作。这才是大家关注的问题。想当架构师,那是遥远的梦。先把温饱问题先解决了。

我一般都是这样告诉同学或朋友们的:

如果你的学历和能力,只能进入一般的软件公司或集成公司,那么选择微软的技术体系不错。因为微软体系,网上很多学习资料,而且大量的企业应用是用微软技术开发的,而且很多公司也用微软技术。所以公司多,你好找工作。微软的技术一般固定:C#+Asp.net+SQLSERVER+Visual Studio。

如果你的学历和能力,能进入做大型企业应用的公司,那么你就选择JAVA的技术体系。因为现在大型企业,基本都用JAVA开发。你可以从eclipse、structs、hibernate、WebService、Tomcat、Apache、JBoss、POJO、Oracle开始学习,然后再学习WebLogic、WebSphere、Portal技术、工作流技术。

如果你想进入互联网公司或web2.0创业公司。那么一般Php、Mysql、Apache、Ruby on Rails、Python是你的学习目标。

如果你想进入手机开发,那么Symbian和C++(Nokia,市场份额最大)、J2ME(android产品,google发布,还未正式生产,但笔者认为很有前途)、Windows Mobile(微软,好开发,从开发思路到工具到语言,都是你所熟悉的)。这三类都会三者鼎立,谁也不会把谁干掉。至于5年之后,就不好说,至少5年内,是手机时代,是手机无线时代,每个厂商都在争抢这一块未来最有钱途的肉。

如果你想进入目前炙手可热的网游公司。做服务器端,你得C++过硬、网络传输技术过硬、并发线程处理、了解Linux编程要和了解windows编程一样深入。如果你想做客户端,那么图形图像处理算法你得首先过关。当然,现在很多引擎、工具、AI包、材质库、脚本减少了不少客户端编程的难度。

如果你想进入现在已经未来10年内一直很热的嵌入式编程,那么C++,而且你的单片机编程你得过关。中国是世界第一制造大国,而且这种局面在5-10年内也很难改变。制造,过去比谁的工人成本低。但是现在材料和人工的增长,使制造压力巨大。就只能提升自己的制造能力。制造高尖端的产品,就需要高尖端的流水线。而且,中国的电子产品也越来越强大,日本产品从最初的独霸中国,渐渐变成了中国国货的天下。在手机上、数码相机上、家电、冰箱、DVD、空调、汽车、交通、医疗、数控,等等,很多领域需要嵌入式编程。就连咱们的嫦娥一号也是嵌入式编程的典范。华为、中兴这些通信设施也是嵌入式编程范围。

当然,你也可以剑走偏锋。过去是Notes编程,随着国产OA的兴起,Notes编程渐渐衰退。但是,中国现在大型企业都在上线ERP,而且大多用的是Oracle或SAP的ERP。这些ERP产品,都提供了客户化定制编程开发环境,提供了完备的应用API。大型企业应用ERP,都需要定制化开发,大量缺乏这类人才。但是,市面上这些学习资料都非常少,这是个难题。

看开发语言,一般分为:核心底层开发语言、业务运算层开发语言、脚本层开发语言。核心底层,一般C/C++使用最广泛,毕竟大量操作系统和硬件驱动都是由C/C++编写,从性能到控制深度和力度都有保证。在业务运算层面,C#和JAVA为主流,分别代表微软和非微软阵营的两大技术体系。Delphi、VB也是在业务运算层面工作,但毕竟现在不为这两大阵营厂商主流力挺(一项技术的广泛应用,不仅在于这项技术的革新性,也在于支持它的公司的业界推动。)。

在脚本层面上,过去的ASP,现在的Perl、PHP、Ruby、Python、ASP.NET都是在脚本层面工作。每一层面上的开发语言都互相借鉴竞争发展,所以你现在会看到JAVA和C#越来越像,Ruby on Rails一出,立即在其它脚本语言上立即出了开源社团支持类Rails框架。



所以,一项新技术出来,我们先看它和现有技术的关联,看现在这些关联的技术到底共同特性是什么,看领导这些技术潮流的大公司的研究重点和支持力度,我们就知道业界技术潮流都在往哪个主流方向走。当然,在这个主流中,各个公司都会根据自己所处的竞争优劣势推出自己的产品,唱的论调也各有重点。不过我们无须眼花缭乱,因为它们都是殊路同归。它们要解决的都是一个问题。



另外,现在的外包也非常热,各地建立外包园,就跟当年建立软件园一样群起。想进入外包公司,首先日语或英语需要过关。咱们国家的外包,一般来自日本和欧美。在开发中,一般也是三种语言的主流:C++、C#、JAVA。

所以,从以上分析来看,C++、C#、JAVA,都是当今的主流。都在各方面都应用很广。你选择哪一类都会有很多的机会和空间。但如果你学了C++,又怕以后碰不到C++的工作,还要学C#,还要学JAVA,那么你终将一事无成。

不要怕,钻一门足矣。

不过,拥有了一份技术技能,你能应聘进入一家公司。但是,一家软件公司如何管理,你是否适合这种管理,你在这个团队中能扮演什么角色,你在公司中奋斗的路径是什么,我会在下一篇详细介绍软件公司管理的时候给大家讲到。

我是工作2年后就跳一次,然后加15%的薪水呢,还是有计划的发展我的IT职业呢?还是我就混一混,不好玩我就换行业呢?

你的路,你自己把握。

但,千万不要自己玩自己,不好玩。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: