1、
各种技术方向分析 .......................................................................................................................................................... 2 1.1、JAVA ........................................................................................................................................................................... 2 1.2、.NET ............................................................................................................................................................................ 2 1.3、手机端开发 ................................................................................................................................................................. 3 1.4、C .................................................................................................................................................................................. 3 2、 学习建议 .......................................................................................................................................................................... 4 3、 如何学习 .......................................................................................................................................................................... 5 4、 教程设计 .......................................................................................................................................................................... 5
4.1、Linux基础知识 .......................................................................................................................................................... 5 4.2、C程序入门 ................................................................................................................................................................. 6 4.3、C++程序入门 ............................................................................................................................................................. 7 4.4、Linux系统程序编写 .................................................................................................................................................. 7 4.5、常用函数和类的封装 ................................................................................................................................................. 8 4.6、TCP/IP通讯 .............................................................................................................................................................. 14 4.7、FTP编程 ................................................................................................................................................................... 16 4.8、数据库知识 ............................................................................................................................................................... 16 4.9、数据库编程 ............................................................................................................................................................... 17 4.10、气象数据中心项目开发 ......................................................................................................................................... 20 5、 毕业总结 ........................................................................................................................................................................ 21
1、 各种技术方向分析
对大部分即将进入IT行为的人来说,普遍存在一个问题,如何选择技术方向,以下谈谈我个人的看法。
1.1、JAVA
优点
几乎可以做任何事情,适用于各种操作系统平台,在WEB应用方面有优势。
入门容易,学习环境容易搭建。
缺点
入门太容易了,从事这方面的开发的人太多了。
在数据处理、传输等应用方面,性能比其它语言要低。
技术更新很快,每过几年就有新的技术和框架出来,需要不断的学习。
1.2、.NET
这个不行,只能用于Windows平台,事实证明,.NET已败给了JAVA。
如果某公司招你进去,让你学习.NET,这是很不负责任的行为,必定耽误你的前程。
1.3、手机端开发
手机端的开发目前有两种主流的技术,Android和IOS,目前看来,基于Android平台的应用比IOS多很多。
如果你要学习,建议选择Android,不要选择IOS,因为IOS是苹果公司独家的,如果哪一天苹果公司不行了,估计你也行转行。
近几年,随着智能手机的普及,手机端开发非常火,开发人员短缺,跟风学习的技术员很多,这让我想起了2000年时的互联网泡沫,不知道再过几年会怎么样,会不会浮华退去?
1.4、C
C的历史有N年了,在1995年之前,计算机主要用于银行、证券、电信等大行业,那时个,连操作界面都是用C编写的,后来的PowerBuild、VB、VC、Dephi等取代了C的界面应用,但是,在后台应用,如传输、通讯、数据处理、监控等方面,C的地位无可取代。
优点
主要用于UNIX操作系统,在Windows系统中也有应用,但没有优势。
在传输、通讯、数据处理、监控方面有非常大的优势,效率极高。
几十年来,C语言就没怎么变过,程序员无更新换代之苦。
缺点
入门太难了,学习环境难以搭建。
想精通更难,如果没有高人指点,几乎不可能。
C提供的函数都只是简单的功能,但是,在实际应用中,需要程序根据自己丰富的应用经验,预先做大量的封装工作。
C语言的应用还有嵌入式开发方向,这个我不太懂,就不说了。
C语言应用的还有Windows方向,这个没什么好说的,C语言在Windows系统下,只能做一些小东西,重要系统的核心还是在UNIX,这一点无不容置疑。
2、 学习建议
当然选择C了。
在1995年之前,大部分程序员是做C的,30年过去了,这些人大部分都退役了,但是,新的C程序员越来越少,这些年来,我想找合适的C程序员很难,菜鸟不能用,有经验和技术的人要价太高,没实力的公司根本请不起。
我在刚做技术的时候,什么都想搞一下,以前流行VB、PB、Dephi等,我都学过,但是,现在VB、PB、Dephi等都已随风而去,只有C,经久不衰,做的时间越长,感觉
越妙。
几十年来,C语言程序员始终是精英。
不过,C不是孤立的,还需要学习UNIX操作系统和数据库系统。
3、 如何学习
人生选择方向很重要,例如字母B,往南走和往北走,意义完全不同。
这些年来,我见过很多菜鸟找不到入门的方法,瞎折腾,也看过国内的培训机构的课程,如达内,培训的内容连入门都算不上,所以,就有了想搞培训的想法。
本人1996年接触C、UNIX和Oracle数据库,2008年注册了一个皮包公司,到处奔波,折腾项目,售前、售后、设计、编码的事都是一个人做,这些年来,也不知道做了多少个系统,写了多少代码,这样的经验和技术水平,能不能教教各位菜鸟?
4、 教程设计
各位菜鸟,不知道如何才能让你相信我,有个建议,请把我这个教程给有经验的C程序员看看,从这个教程可见我的功力。
不忽悠各位了,开始教程。
4.1、Linux基础知识
课时:一星期(在本教程中,一星期不是五天,是七天。)
Linux系统的优点,应用范围。
连Linux服务器的工具程序的使用(SecureCRT)。
Linux系统常用的命令。
telnet工具。
ftp工具。
ssh工具。
vi编辑器。
Linux系统的安装、常用软件包介绍、磁盘分区方法。
熟悉Linux操作系统,具备Linux系统的安装和日常维护能力。
老师教的东西总是有限的,培养各位获取帮助和查找资料的能力非常重要。
4.2、C程序入门
课时:一星期
以谭浩强的《C程序设计》为教材,学习C程序的基础知识。
了解Linux的C语言编译器gcc。
Makefile文件编写。
4.3、C++程序入门
课时:一星期
C++的基本特征,和C有什么不同。
类的基础知识。
面向对象编程的思想。
C++标准模板库STL。
Linux的C++语言编译器g++。
4.4、Linux系统程序编写
课时:两星期
介绍Linux平台下,C程序的应用范围。
多进程程序编写。
多线程程序编写。
Linux信号,使用信号正常中止后台服务程序。
信号灯、共享内存等进程之间的通讯。
应用程序的调度方法,包括/etc/rc.local启动,contab任务,自己编写调度程序。
保证后台服务程序健壮性的方法,让服务程序永不死机。
4.5、常用函数和类的封装
课时:三星期
不同于其它的语言,C语言只提供了基本的函数,没有丰富的工具,一切都要自己积累和封装工具。
我面试C程序员的方法很简单,我只问他是否有自己的封装工具就可以了,如果没有,那一定不是高手。例如李嘉诚很有钱,但他的钱也是多年来积累的结果,并不是今年才赚到的,再厉害的人也不能在一年赚那么多钱,再高手C程序员,也不可能每次都从头开始写程序。
各位,我不会把自己多年来的封装工具提供给你,我要教会你如何去封装,你封装的东西就是你达到了高水平的证据。
在本教程中,我只给出了定义,不列出具体的实现代码,各位自己发挥。
以下是开发各种应用系统常用到的封装函数,在教学的过程中,再介绍做这种封装的原因。
4.6、TCP/IP通讯
课时:二星期
TCP/IP协议基础知识。
Socket通讯程序编写。
封装CTcpServer和CTcpClient类。
编写一个多进程的TCP服务程序,与客户端程序进行数据交换。
TCP通讯性能瓶颈分析,如何提升TCP程序数据交换的效率。
TCP报文交换数据还是太慢,所以,要开发一个文件交换的工具,采用TCP实现文件交换功能。
4.7、FTP编程
课时:一星期
FTP作为广泛应用的文件传输协议,不可不精通它。
采用C语言,从FTP协议开始,实现FTP客户端的功能,并编写两个FTP工具程序,一个是获取文件,一个是发送文件。
4.8、数据库知识
课时:一星期
数据库有Oracle、SQL Server、My SQL、Postgresql和DB2,在本教程中,我们主要学习Oracle,其它的也有必要了解,但不是重点。
数据库基础知识。
Oracle数据库的安装,数据库的启动和停止。
Oracle数据库的基础知识。
TNS配置。
SQL语言。
表、视图、序列生成器、数据库链路、表空间等常用知识。
熟悉Oracle的数据字典。
exp和imp工具的使用。
Oracle的锁。
试试折腾一下其它种类的数据库。
4.9、数据库编程
课时:两星期
数据库编程以Oracle数据库为主。
C语言访问Oracle数据库的方法主要有两种,Pro*C和OCI,很多培训机构能培训Pro*C就不错了,OCI这东西,没多少人会,我们直接学习最重要的技术。
用C语言访问Oracle数据的确不是一件容易的事,我在做了四年的C程序员才学会,
OCI是一个很麻烦的东西,必须要封装,如下:
在2000年的时候,我第一次封装OCI,那时候公司给我7K的工资,比项目经理还高,如果各位能把对数据库的操作也能封装成这样,毕业吧,不用我教你了。
试试折腾一下用C语言访问其它种类的数据库。
4.10、气象数据中心项目开发
课时:三星期
保证后台服务程序健壮性的方法,让服务程序永不死机。
数据表设计工具PowerDesigner的使用。
定义数据文件的标准(XML文件),数据完整性的标准。
利用4.6和4.7编写的工具,采集源始的数据文件。
编写一个数据挖掘程序,从源数据库表中提取数据,生成XML文件。
编写应用程序,处理原始的气象数据文件,生成XML文件。
编写一个通用的数据入库程序,把各种类的气象数据的XML文件,入库到数据库中。
编写数据管理程序,对历史数据表进行清理或归档。
对数据量超过1亿条记录的表进行各种折腾,总结一些大数据量表的应用经验。
5、 毕业总结
介绍中国IT行业的现状以及我个人的一些工作经验。
毛泽东厉害吧,他是学文的;李小龙厉害吧,他的专业是哲学。
如果你只是技术很强,不懂人情事故,在中国混不容易,想成为高大上,还要有文化,有技术和有文化是两回事,希望大家在工作之余,学习一下中国的文学、历史、还有哲学。
希望大家不要做一个只有技术的野蛮人,不要被人称为程猿或挨踢男。
如果各位有什么意见,可加入群交流。
因篇幅问题不能全部显示,请点此查看更多更全内容