程序员需要学习:
1、掌握数据及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;
2、理解计算机的组成以及各主要部件的性能指标;
3、掌握 *** 作系统、程序设计语言的基础知识;
4、熟练掌握计算机常用办公软件的基本 *** 作方法;
5、熟练掌握基本数据结构和常用算法;
6、熟练掌握C程序设计语言,以及C++、Java、Visual Basic中的一种程序设计语言;
7、熟悉数据库、网络和多媒体的基础知识;
8、掌握软件工程的基础知识,了解软件过程基本知识、软件开发项目管理的常识;
9、了解常用信息技术标准、安全性,以及有关法律、法规的基本知识;
10、了解信息化、计算机应用的基础知识;
11、正确阅读和理解计算机领域的简单英文资料。
程序员必备技能:
1、熟练开发工具
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。
而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。
其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。
另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
2、熟知数据库
作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。
虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库 *** 作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等。
3、了解 *** 作系统
当前主流的 *** 作系统是Windows,Linux/Unix,熟练地使用这些 *** 作系统是必须的,但只有这些还远远不够。
要想成为一个真正的编程高手,需要深入了解 *** 作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。
Linux作为开发源码的 *** 作系统,是一个很好的学习平台,Linux几乎具备了所有现代 *** 作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。懂得网络协议TCP/IP。
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式。
从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。
至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
4、明白DCOM/CORBA/XML/WEBServices存在的意义
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。
XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。
5、不要将软件工程与CMM分开
大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员。
一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能。
如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
6、需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求。
要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
7、模块化思维能力
作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。
这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
就业方向:
1、网络开发
现在网络已经成为世界通讯的一座桥梁,好像Javascript、PHP、Ruby这几类开发语言大部分是用作网络开发方面。
2、企业软件开发
JAVA、C#、VB这几类开发语言都实现了面向对象开发的目标,更多时候用于企业系统的开发。
3、系统软件
C语言、C++、Object-C这些软件更多是用在系统软件开发,嵌入式开发的方面。
当然,这分类不是绝对,像JAVA、C#、VB很多时候也用于动态网站的开发。在很开发项目都会使用集成开发的方式,同一个项目里面使用多种开发语言,各展所长,同步开发。
但所以在刚入门的时候,建议先为自己选择一种合适的开发工具,“专注地投入学习,全力一击”。
首先是计算机基础,然后是C语言,然后是离散数学-->数据结构-->数据库,当然只学软件的话直接学C++(最好也学过C和数据结构),但作为基础中的基础,计算机基础是必要的.编程需要的是逻辑思维能力,就是数学能力,但高等数学并不是必要的喜欢游戏的话,学习java以及C++都可以的
--------------------------------------------------------------------------------
你要用什么程序呢?
建议你用java
比c++简单一些
而且很实用
必备课程:离散、数据结构、数据库技术、当然你有一些编程能力还是不错的
--------------------------------------------------------------------------------
离散数学-数据结构-->数据库-然后是C语言-高等数学-高等数学学一下是很有必要的,很多算法都用到高等数学的逻辑思维,大学的课程,尤其是工科,理科,基本上都建立在高等数学之上,最好在学点运筹学,但是最重要的,还是学好英语,我认为编程无非就是把英语按照一定的规律排列起来,所以我觉得英语最重要,建议买本计算机英语看,预祝成功
--------------------------------------------------------------------------------
类似的问题我回答过。我的建议如下:
如果时间允许,可以从计算机的组成原理和系统结构看起。这部分是比较底层的偏硬件的知识。如果想专业点的发展建议好好学学这部分。
然后看看汇编,有上面的基础,汇编是很容易的。别小看汇编,这在你以后做程序涉及优化或者调试的时候是极其有用的。再学C语言,应该是小菜一碟了。
有了C的基础,再学数据结构,算法设计。这两个课程是个重点,一定要好好掌握,花再多的时间也值,以后你做什么软件都离不开这两样。这时再看 *** 作系统,相信你一定有轻舟已过万重山的感觉。如果有精力就再看下编译原理,这是很专业的课程,如果感觉吃力就以后有编程经验再看,比较好理解。
接下来的计算机网络、数据库概论等等都是理论知识比较好学。个人可以根据发展方向取舍。
楼主对游戏,QQ等软件感兴趣的话,就建议学C++了。Windows API是首先该浏览下的不用深入, 关键是了解WINDOWS的机制。然后掌握MFC,看WINDOWS核心编程(这块技术特别多)。现在你就可以用VC开发出你想要的东西了。
要再深入下去是没有止境的,VC++ ATL/STL,C++编程思想、软件工程、面向对象概论、UML等等。
软件工程是很重要的,不过建议在有些实际经验后再看,比较好。不然一开始你只能记住个概念,理解不了。而且自己多体验几次代码痛苦后,能更深刻地理解软件工程。
楼主做游戏搞3D的话还要看OPENGL或D3D编程。这个高数最好有点基础。我个人认为。没有这基础似乎也不妨碍开发,不过不能很好应用是肯定的。 *_*
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)