程序员要具备什么技能

程序员要具备什么技能,第1张

一名合格的程序员需要掌握哪些技能呢?\x0d\\x0d\熟练掌握开发工具\x0d\\x0d\做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVA One很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。\x0d\\x0d\熟知数据库\x0d\\x0d\为什么数据库是如此重要?作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库 *** 作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。\x0d\\x0d\对 *** 作系统有一定的了解\x0d\\x0d\当前主流的 *** 作系统是Windows,Linux/Unix,熟练地使用这些 *** 作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解 *** 作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的 *** 作系统,是一个很好的学习平台,Linux几乎具备了所有现代 *** 作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对 *** 作系统有一定的了解后,你会发现自己上了一个新的台阶。\x0d\\x0d\懂得网络协议TCP/IP\x0d\\x0d\在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。至少,你需要了解ISO七层协议模型,IP/UDP/TCP/>

2、注意所写软件的版本控制。

3、勤奋学习最新的技术,计算机技术日新月异,这点我不说相信你也知道。

4、养成写开发文档的好习惯,再接到一个项目时,第一件事情是进行需求分析,然后写开发文档,把你每一步要做什么都先写清楚,再动手做。

5、不要怕技术难题,在计算机领域,只有不能解决难题的人,没有人解决不了的难题。

6、虚心象他人学习,即使技术实力比你差很多的人,也肯定会知道一些你所不知道的技术点。

第一种武器:开发工具

至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C和JAVA是我重点推荐的开发工具,C/C以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVAOne会成为未来的主流开发工具之一。其次,如果能掌握一种简便的可视化开发工具,如VB,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/>

第五种武器:DCOM/CORBA/XML/WEBServices

随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间件平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再回头看这些技术的具体实现,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布计算的基石之一。

第六种武器:软件工程与CMM

现代大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。一句话可以概括我的看法:“创意无限,流程保证”。

第七种武器:强烈的好奇心

什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在。

用记事本写代码的程序员不都是高手。

问题本质要不要用集成开发工具写代码而言,是不是用记事本写代码和编程本身厉害与否没有多大的关系,倒是有很多人建议在初学编程的时候,先以记事本学习为主,这种是有一定道理的,毕竟记事本写代码空白一张对于初学者来讲需要考虑的东西对于掌握基本的东西多点,毕竟很多接口在写的时候没有了联想功能只能靠大脑去想,倒是真能锻炼自己的独立能力。

说到记事本写代码,要说这方面表现得比较厉害的在linux下面直接完全的键盘 *** 作不用鼠标,工作效率高得惊人,当然需要记住大量的快捷键,要比直接图形界面的 *** 作效率高很多,linux下面直接搞好VIM能够体会到纯键盘 *** 作的快感。

决定编程水平的高低主要分成三个部分:

1编码水平,这是程序员的基本功,能把想做的功能给完成了,而且性能质量很高属于高手。

2编程思想,这是决定程序员水平高低的关键,任何东西都需要指导思想,正常的编程模式也不会超过100个体系,常见的多进程模式,网络编程模式等等学会了套路无论什么编程语言用起来照样比较畅通,编程思想绝对水平高低。

3框架思想,这种属于在编程思想和编码水平之上的东西了,迈向顶级的关键,绝大部分属于普通的程序员,真正在食物链顶层的才有几个,有些有这种能力但是没有展示的机会,也是挺可惜。

所以看编程水平的高低,更多是内在东西,快捷键使用再流利,没有主心骨,一样也是花架子,看一个人水平高低还是要看做出过什么东西,很多老工程师在面试的时候,问的不是做过什么项目,一般是问现在市场上还有当初做过的产品没,产品才是最好的简历。

以上就是关于程序员要具备什么技能全部的内容,包括:程序员要具备什么技能、请问,如何才能做一个优秀的程序员、用记事本写代码的程序员都是高手么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9706399.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存