熟练开发工具
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
熟知数据库
为什么数据库是如此重要?作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库 *** 作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等。
了解 *** 作系统
当前主流的 *** 作系统是Windows,Linux/Unix,熟练地使用这些 *** 作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解 *** 作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的 *** 作系统,是一个很好的学习平台,Linux几乎具备了所有现代 *** 作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。懂得网络协议TCP/IP。
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
明白DCOM/CORBA/XML/WEBServices存在的意义
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。
不要将软件工程与CMM分开
大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
模块化思维能力
作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
待遇:工行软件中心有 珠海、北京、上海、广州、杭州五个开发基地,同一个层级在各个基地拿的钱一样的,结合当地的消费水平,无疑是在珠海最有性价比。作为12年入职的硕士生,我走的时候,大致一年的收入是15万左右,这个收入对于在珠海生活的我来说,我已经很满意了,但是北上广的同事就比较苦逼了。
纵向和其他银行来比较的话,工行开发中心的待遇是四大行最低的,和其他银行例如广发等更加没得比。但是横向和其他的IT企业来比,银行的收入也还是不低,再加上福利什么的。
我觉得就收入来说,工行软件中心是一份不错的工作。
职业发展:工行软件开发水平在国内的银行界是排第一的。
举个例子吧,就我了解,目前只有工行的xyk能够做到差额计息,因为这些银行的核心程序最早都是从国外买过来的,历史程序很难改造的,只有工行有这个力量能改造。我们领导经常能够自豪的说:“工行软件开发中心是中国银行科技届的黄埔军校。”其实这有两个层面的意思:一是指的是工行的科技力量,以及各种规范流程都是在国内银行科技届领先的,如果从工行走出去,去其他银行,基本上薪资和职位都有一个比较大的提升。二是指的是,工行待遇确实比其他银行低,所以留不住人,尤其是北上广三个基地,人员流失比较大。
那么如果跳出银行界,作为一个单纯的程序员,职业发展怎么样呢?那么这个情况就比较复杂了,我觉得这取决于你工作使用的技术平台和业务知识。
技术平台。目前银行的技术平台大致分为两类:主机和Java。
主机也称是Mainframe,编程语言是古老的corbal,这种技术已经不流行了,但是在金融、股票等追求安全的领域还是应用很多,所以我觉得能成为一名做主机开发,虽然就业机会可能少,但是竞争也会很少,属于程序员中的少数派。
银行中的Java基本上值得就是企业级的Web应用了,我正好是做这块的,其他银行我不清楚,对于工行的Java开发水平,客观的评价,大致落后主流的10年左右。对,你没看错,就是10年。造成这个原因我个人觉得是因为技术路线的原因,为了提高开发效率,减少开发人员的编码工作量,工行的J2EE开发统一使用一个开发框架,但在实际使用中,基本上所有的业务逻辑都用Oracle的存储过程实现,用PL/SQL做程序开发,自然就谈不上什么面对对象、设计模式之类的东西了,至于数据和业务逻辑解耦、分层的软件架构等思想,在那里工作了很多年的程序员都没有听过。
当然一个程序员除去本身的技术能力,如果能对业务很了解,也是很不错的。但是你能了解的业务,只会限于你负责的应用,如果你负责的应用是网银、xyk反欺诈、数据仓库等业务含金量高的应用,工作中自然能够学到很多。我一个同事之前是做私人银行的,后来调到上海的私人银行部去了,也算是脱离编码这个苦逼的行业了。如果你负责的是某些常年没有业务量的应用,那只能说你倒霉了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)