做一个“独立”程序员需要那几种知识?

所谓“独立”:是指可以一个人完成项目的能力。

信息技术的更新速度是惊人的,程序员的职业生涯则是一个要求不断学习的过程,永远不能固步自封。本人在工作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页,在网上聊天,打游戏,浪费了大量的时间,十分不可取。而另外一种情况是,IT技术的日新月异使很多程序员眼花缭乱,什么都想学,却又不知从何学起,今天看看这个,明天学学那个,贪多不熟。

虽然IT技术发展迅速,但很多技术都是有规律可循,一些基本的概念、原理和方法还很通用,可以举一反三。本人根据自己的体会和经验,向那些刚刚踏入IT行业的新程序员们或正在迷茫的程序员们推荐程序员必须掌握的七种武器,有了这七种武器,虽不敢说笑傲江湖,但将自己立于不败之地还是可以的。

第一种武器:开发工具

至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是我重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVA One会成为未来的主流开发工具之一。其次,如果能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C++ Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。

第二种武器:数据库

为什么数据库是如此重要?很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。

第三种武器:操作系统

当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对操作系统有一定的了解后,你会发现自己上了一个新的台阶。

第四种武器:网络协议TCP/IP

在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。至少,你需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。

第五种武器:DCOM/CORBA/XML/WEB Services

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

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

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

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

什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在。
温馨提示:内容为网友见解,仅供参考
第1个回答  2005-11-01
最主要的是要有软件结构设计/分析能力,以及逻辑思维能力,再掌握一种编程语言.独立完成一个小型项目基本上没什么困难了(如果搞数据库开发,最好学习一下离散数学和数据结构).
第2个回答  2005-10-31
没有一个人能够独立完成大型的软件项目,不现实
第3个回答  2005-11-01
要像二楼那样的说法,那不只是做程序员了,教授也能让你做了。
第4个回答  2005-11-01
想要真正理解软件技术必须掌握两个基本武器,编译和操作系统,理解这两门技术后你才能真正明白你写的代码到底做了些什么,在这个基础上再去学习算法和软件工程等上层知识

想要成为一名程序员需要具备什么基础知识?
想成为一个程序员,需要掌握一系列基础知识,包括但不限于以下几个方面:计算机科学基础:这是编程的核心,包括算法、数据结构、计算机组成原理、操作系统、计算机网络、数据库等。编程语言:至少熟练掌握一门编程语言,如Java、Python、C++等,并了解其他常用的编程语言。理解编程语言的语法、语义、以及如何利...

我想成为一名程序员需要哪些知识?
1、数学基础。从计算机和应用的发展历史来看,计算机的数学模型和体系结构等好多都是由数学家提出的,包括最早的计算机也是为数值计算而设计的。因此,要学好计算机是需要一定的数学基础的,初学者有高中水平就差不多了。2、逻辑思维能力的培养。程序员必须要有一定的逻辑思维能力,逻辑思维能力的培养更需要...

如何成为一个程序员
成为一个程序员需要以下步骤:1. 学习编程基础知识: 了解计算机的工作原理,学习编程语言(如Python、Java、C++等),掌握基本的编程概念和语法。2. 掌握数据结构和算法: 学习各种数据结构(如数组、链表、栈、队列等)和算法(如排序算法、查找算法等),了解它们的应用场景和复杂度。3. 练习编程: 动手...

程序员要学习哪些知识呢?
1.基础语言知识 :从底层的ASM 到结构化的C,到面向对象的C++ JAVA,如果不能都精通,但是要了解,至少要精通一门 2.基础数学知识: 高等数学(数学分析) 线性代数 离散数学,概率.数理统计等等 3.基础计算机原理:操作系统原理,微机原理,编译原理 数据库原来等等 4.看你感兴趣的学习一个方向:图形学...wi...

初级程序员需要具备什么知识
初级程序员需要掌握的技能与知识:一、计算机基础知识,包括操作系统的使用、文件管理、网络应用等。二、程序设计方法,至少掌握一种编程语言,如C、C++、Java、Python等,并能够编写简单的程序。三、数据结构与算法,理解基本的数据结构(如数组、链表、栈、队列、哈希表、树、图)和常用算法(如排序、...

做程序员需要什么基础
想要做程序员,首先需要学习编程,这需要一定的基础。1、数学基础:初学者需要具备高中及以上水平的数学基础,因为计算机的数学模型和体系结构等都是由数学家提出的,最初的计算机设计初衷也是为了数值计算。2、逻辑思维能力:要成为优秀的程序员,最重要的是掌握编程思想,这需要在反复实践、观察、分析、比较...

如果想成为一个程序员应该学习什么知识
1.5程序编制方法 1.5.1分支、循环、子程序(过程和函数)、递归 1.5.2输入输出和文件的处理 模块2:基础知识(程序员级)2.1软件基础知识 2.1.1数据结构基础 数组、记录、列表(list)、队列、栈(stack)、堆(heap)、树和二叉树的定义、存储和操作 2.1.2程序语言基础知识 ·汇编、编译、...

程序员需要掌握什么
程序员需要掌握的核心技能与知识:一、编程语言及框架 程序员通常需要熟练掌握至少一种编程语言,如Java、Python、C++等,并了解相关的开发框架,如Spring、Django等。这些语言和框架是编程基础,对于软件项目的开发至关重要。二、数据结构与算法 数据结构和算法是程序员必须掌握的核心基础知识。了解各种常见的...

程序员要哪些
程序员需要的技能与能力:一、专业知识与技能 程序员需要具备扎实的计算机专业知识,包括编程语言、算法和数据结构等。他们需要熟练掌握至少一门编程语言,如Java、Python、C++等,并能够运用这些语言进行软件开发。此外,他们还需要了解各种数据结构和算法,以便在解决实际问题时能够选择最合适的方案。二、技术...

想做程序员需要学什么(想做程序员需要学什么软件)
程序员需要掌握的知识有哪些?1、学习能力学习能力是非常关键的,前面已经说过,计算机的技术更新是非常快的,昆明IT培训认为如果没有很好的学习能力,很快就会被计算机行业所淘汰。2、程序员需要掌握的技能如下:GitGit是一个版本控制软件,最早是Linux之父为了更好的管理Linux内核代码而编写的。版本控制是...

相似回答