高级程序员的必学

成为高级程序员必学知识

学习内容:
第一部分:计算机结构及工作原理、各种零配件的性能参数及主流品牌、计算机硬件的组装,CMOS设置,硬盘的分区,格式化、Windows98/2000/XP的安装、硬件驱动程序和应用程序的安装、Windows注册表的结构,备份及应用、Windows的内核:CPU、内存、硬盘等分配、软硬件系统的优化设置,整机性能评测、计算机病毒的原理及防治、常见软硬件故障的原因,现象及解决、正确分辨市场假货、水货,软硬件产品的销售技巧。


第二部分:网络的基本构成,发展和拓扑设计,10BASE-T局域网的构建与实现,以及各种服务器的结构与特征,以太网对等网等各种方式。TCP/IP的四层模型与OSI七层模型的异同,TCP/IP协议剖析,如何设置IP地址,子网掩码,默认网关,区分子网和网段及集线器,交换机和路由器,RJ45网线制作和种网吧的组建及维护,NT、WIN2000server、Linux服务器的搭建,98对等网的组建与调试和代理服务器的设置

第三部分:Win2000配置,用户及权限、文件及文件夹的管理,新特性活动目录的管理,组策略。网络资源的监控、系统环境的设置、磁盘系统的管理。Web、Ftp、DNS、DHCP、WINS等服务器的安装配置及管理。利用Exchange邮件服务器软件实现企业内部个人邮件信箱服务器、公告栏服务器、网站收发电子邮件服务器、聊天服务器的建立和管理。SQL Server中数据库的创建、表的创建及发布、数据库的备份及恢复、表的导入及导出等一系列维护和管理方法。代理服务器基本原理。利用Microsoft Proxy为例实现代理服务器的设置及管理。


>>更多职位

第四部分:代理服务器基本原理。利用Microsoft Proxy为例实现代理服务器的设置及管理。流行网管软件Cisco Work2000的配置、使用和管理技巧,在一台监控计算机上管理网络中所有的路由器和交换机,实时监控网络流量,及时发现网络问题。路由与交换技术:路由原理的讲解,并通过对路由器配置实例的学习掌握Cisco路由器的常用配置命令及配置。交换原理的讲解,通过
第五部分:系统进行手工定制、系统性能检测管理、内核设置与编译。ftp服务与Samba服务,其它服务,如,DHCP、NFS等。Web网络服务。包括:Apache服务的配置使用及安全设置。其它web服务软件的介绍。DNS技术及应用。一些简单的路由技术一些简单的负载均衡技术。Mail网络服务。包括:sendmail的配置与使用,Qmail的配置与使用。一些mail客户端程序的使用

第六部分:网络安全的基本概述,网络协议的介绍,常规加密的基本知识,公钥密钥加密的基本知识及数字签名,身份难验证,用PGP及数字证书进行邮件加密实验,全面讲述在环境下实施网络安全对策,Windows98下各种漏洞、攻击类型和防御方法及安全配置方案(系统安全、IE安全、Outlook的安全等)。结合高级程序员攻击过程全面讲述在
WindowsNT环境下实施网络安全对策。WindowsNT下各种漏洞、攻击类型和防御方法及安全配置方案,全面讲述在Windows2000环境下实施网络安全对策,Windows系统的日志安全、WEB安全,软件防火墙的实施。Windows2000下各种漏洞、攻击类型和防御方法及安全配置方案。

第七部分:Linux管理员部分
一、 基本应用
1、 GNU/linux介绍、Redhat Linux的安装。
2、 系统知识(shell、文件系统、管道与重定向、进程概念)、常用系统命令介绍(ls、cp、mkdir、rm、vi、man、chmod等)
3、 基本系统管理(包括:系统启动过程介绍、磁盘管理、用户管理、日志查看、tar/gz包的使用、rpm软件包管理等。

二、 基本系统服务(包括:图形终端、基本网络服务)(9个课时)
1、 图形终端(即,x-window)的配置与使用。围绕KDE和(或)GNOME,展示UNIX系统的友好界面。
2、 简单的shell教本编写方法,环境变量
3、 Linux下IP网络的基本配置(IP地址、网关、名字)
4、 Linux下的网络服务的配置与使用(包括ftp、DNS、Apache、Sendmail、samba的基本配置)。基于RedHat的setup和linuxconf进行介绍。Webmin管理工具的介绍。

三、 Prerequisite(背景课程)
1、 前言
2、 高级系统管理。包括:系统进行手工定制(inetd,service,ntsysv)、系统性能检测管理(ps,top,tail,dmesg,/proc)。
3、 内核设置与编译。

四、 高级网络应用
1、 ftp服务与Samba服务,其它服务,如,DHCP、NFS等。
2、 Web网络服务。包括:Apache服务的配置使用及安全设置。其它web服务软件的介绍。DNS技术及应用。
3、 一些简单的路由技术
4、 一些简单的负载均衡技术。
5、 Mail网络服务。包括:sendmail的配置与使用,Qmail的配置与使用。一些mail客户端程序的使用。

五、 系统网络安全
1、 包过滤防火墙的理论与应用(NAT技术、内核构架、Ipchains/Iptable的使用),其它非核心态防火墙的介绍。
2、 系统安全。SSH的配置与使用。入侵检测系统及Checkpoint技术与应用
3、 VPN(虚拟网关)的理论与应用。包括:Ipsec、PPTP、认证、密钥交换协议等技术。

六、 总结
混合构建一个安全的网络服务系统。

基本高级程序员技术

高级程序员态度是重要的,但技术更加重要。态度无法替代技术,在你被别的高级程序员称为高级程序员之前,有一套基本的技术你必须掌握。 这套基本技术随着新技术的出现和老技术的过时也随时间在缓慢改变。例如,过去包括使用机器码编程,而知道最近才包括了HTML语言。但现在明显包括以下技术:

1 学习如何编程

这当然是最基本的高级程序员技术。如果你还不会任何计算机语言,我建议你从Python开始。它设计清晰,文档齐全,对初学者很合适。尽管是一门很好的初级语言,它不仅仅只是个玩具。它非常强大,灵活,也适合做大型项目。

但是记住,如果你只会一门语言,你将不会达到高级程序员所要求的技术水平,甚至也不能达到一个普通程序员的水平---你需要学会如何以一个通用的方法思考编程问题,独立于任何语言。要做一名真正的高级程序员,你需要学会如何在几天内通过一些手册,结合你现在所知,迅速掌握一门新语言。这意味着你应该学会几种不同的语言。

如果要做一些重要的编程,你将不得不学习C语言,Unix的核心语言。其他对高级程序员而言比较重要的语言包括Perl和LISP。 Perl很实用,值得一学;它被广泛用于活动网页和系统管理,因此即便你从不用Perl写程序,至少也应该能读懂它。 LISP 值得学习是因为当你最终掌握了它你会得到丰富的经验;这些经验使你在以后的日子里成为一个更好的程序员,即使你实际上可能很少使用LISP本身。

当然,实际上你最好四种都会。 (Python, C, Perl, and LISP). 除了是最重要的四种基本语言,它们还代表了四种非常不同的编程方法,每种都会让你受益非浅。

这里我无法完整地教会你如何编程---这是个复杂的活儿。但我可以告诉你,书本和课程也不能作到。几乎所有最好的高级程序员都是自学成材的。真正能起作用的就是去亲自读代码和写代码。

学习如何编程就象学习用自然语言写作一样。最好的做法是读一些大师的名著,试着自己写点东西,再读些,再写点,又读些,又写点....如此往复,直到你达到自己在范文中看到的简洁和力量。

过去找到好的代码去读是困难的,因为很少有大型程序的可用源代码能让新手练手。这种状况已经得到了很大的改善;现在有很多可用的开放源码软件,编程工具和操作系统(全都有高级程序员写成)。这使我们自然地来到第二个话题...

2 得到一个开放源码的Unix并学会使用、运行它

我假设你已经拥有了一台个人计算机或者有一个可用的( 今天的孩子们真幸福 :-) )。新手们最基本的一步就是得到一份Linux或BSD-Unix,安装在个人计算机上,并运行它。
当然,这世界上除了Unix还有其他操作系统。但它们都是以二进制形式发送的---你无法读到它的源码,更不可能修改它。尝试在DOS或Windows的机器上学习高级程序员技术,就象是在腿上绑了铁块去学跳舞。

除此之外,Unix还是Internet的操作系统。你可以不知道Unix而学会用Internet,但不懂它你就无法成为一名Internet高级程序员。因为这个原因,今天的高级程序员文化在很大程度上是以Unix为中心的。(这点并不总是真的,一些很早的高级程序员对此很不高兴,但Unix和Internet之间的共生关系已是如此之强,甚至连微软也无可奈何)

So,装一个Unix---我个人喜欢Linux,不过也有其他选择。(你也可以在同一台机器上同时运行DOS,Windows和Linux)学会它。运行它。用它跟Internet对话。读它的代码。试着去修改他。你会得到比微软操作系统上好的多的编程工具(包括C,Lisp, Python, and Perl),你会得到乐趣,并将学到比你想象的更多知识。

关于学习Unix的更多信息,请看 The Loginataka.

要得到Linux,请看: 哪里能得到 Linux.

3 学会如何使用WWW和写HTML

大多高级程序员文化建造的东西都在你看不见的地方发挥着作用,帮助工厂、办公室和大学正常运转,表面上很难看到它对他人的生活的影响。Web是一个大大的例外。即便政客也同意,这个巨大而耀眼的高级程序员玩具正在改变整个世界。单是这个原因(还有许多其它的), 你就需要学习如何掌握Web。

这并不是仅仅意味着如何使用浏览器(谁都会),而是要学会如何写HTML,Web的标记语言。如果你不会编程,写HTML会教你一些有助于学习的思考习惯。因此,先建起自己的主页。

但仅仅建一个主页也不能使你成为一名高级程序员。 Web里充满了各种网页。多数是无意义的,零信息量垃圾。

posted @ 2011-11-27 09:40  Springside4  阅读(276)  评论(0编辑  收藏  举报