博文

一个假程序员的心里话[转](2005-11-13 11:17:00)

摘要: 
       我从事程序开发三年了,不算长,也不算短。在别人眼里或许可以认为高手,但我自己明白,我什么也算不了。

  记得还没毕业时,会用tc写几个cai软件,过了语言关,就以为自己是程序员了,很自喜,但毕业后去单位才发现,自己对于程序员这个行当来说仅是一个没入门的newbie.

  很幸运的是遇到了张哥等校友,教了我很多,其间学会了web开发,数据库,也略懂了一些tcp/ip协议,以为自己懂很多了。其间到一家小公司作了一年技术总监,感觉不错。后来公司破产,换到一家外企。

  在这里又有一番天地,发现自己什么也不是。编程? PHp方面我比他们走得早,会一些。说实话,语言这东西就象英语,很容易过去,关键是思维方式和经验(当然包括算法)。网络方面?在这里才开眼,我先前的那点功底只能算入门级,这个公司ccie就有4个,ccnp一堆。

  接触了一些unix,专用服务器,大型数据库。

  后来跳到一家网安公司,作了一些驱动。

  现在在一家公司负责产品研发管理,同时也兼作开发人员。时常也有自己感觉不明白的东西,计算机这东西,需要学的太多,而且你不能学会了再用,一边学,一边用,用完了就扔掉。
  以前在和luo谈话时有一些共识,现在的所谓程序好多根本不懂算法,数据结构一塌糊涂。我真的不敢叫他们是程序员,以为会点vb,能拖一些控件在上面就能叫程序?如果这样想,真的完了!

  首先声明: 我本人学历不高,只能算是半个本科,也就是比专科高点,比本科差点。 但现在的教育好象真的是“教育”,面试了不少研究生,真的不敢恭维,水平不如好多专科生。

  我并不是贬低学历,我本人也为学历吃了很多苦,现在还很辛苦地为了成为真正的本科,以至master而努力。但我觉得,好多人对不起头上的硕士帽。怪不得在新浪上看到,现在的硕士生只能相当于十年前的本科生,现在的doctor只能当二十年前的master. 特别是那些不入流的学校,大部分人简直在混时间。偶然看过几场master毕业答辩,真的是欲哭无泪。青春无价,为什么要混?

  当然,水平高的 bachelor,master,doctor也......

阅读全文(3324) | 评论:0

C++ 语言程序设计从零开始——何谓编程(2005-11-13 11:15:00)

摘要:



 何谓程序

  程序,即过程的顺序,准确地说应该是顺序排列的多个过程,其是方法的描述。比如吃菜,先用筷子夹起菜,再用筷子将菜送入嘴中,最后咀嚼并吞下。其中的夹、送、咀嚼和吞下就被称作命令,而菜则是资源,其状态(如形状、位置等)随着命令的执行而不断发生变化。上面就是吃菜这个方法的描述,也就是吃菜的程序。

  任何方法都是为了改变某些资源的状态而存在,因此任何方法的描述,也就是程序,也都一定有命令这个东西以及其所作用的资源。命令是由程序的执行者来实现的,比如上面的吃菜,其中的夹、送等都是由吃菜的人来实现的,而资源则一定是执行者可以改变的东西,而命令只是告诉执行者如何改变而已。

  电脑程序和上面一样,是方法的描述,而这些方法就是人期望电脑能做的事(注意不是电脑要做的事,这经常一直混淆着许多人),当人需要做这些事时,人再给出某些资源以期电脑能对其做正确的改变。如计算圆周率的程序,其只是方法的描述,本身是不能发生任何效用的,直到它被执行,人为给定它一块内存(关于内存,请参考《C++从零开始(三)》),告诉它计算结果的精度及计算结果的存放位置后,其才改变人为给定的这块内存的状态以表现出计算结果。

  因此,对于电脑程序,命令就是CPU的指令,而执行者也就由于是CPU的指令而必须是CPU了,而最后的资源则就是CPU可以改变其状态的内存(当然不止,如端口等,不过一般应用程序都大量使用内存罢了)。所以,电脑程序就是电脑如何改变给定资源(一般是内存,也可以是其他硬件资源)的描述,注意是描述,本身没有任何意义,除非被执行。
何谓编程

  编程就是编写程序,即制订方法。为什么要有方法?方法是为了说明。而之所以要有说明就有很多原因了,但电脑编程的根本原因是因为语言不同,且不仅不同,连概念都不相通。

  人类的语言五花八门,但都可以通过翻译得到正解,因为人类生存在同一个四维物理空间中,具有相同或类似的感知。而电脑程序执行时的CPU所能感受到的空间和物理空间严重不同,所以是不可能将电脑程序翻译成人类语言的描述的。这很重要,其导致了大部分程序员编写出的拙劣代码,因为人想的和电脑想的没有共性,所以他们在编写程序时就随机地无目的地编写,进而导致了拙劣却可以执行的代码。
电脑......

阅读全文(3647) | 评论:0

C语言 新手必看(转载)(2005-11-13 11:07:00)

摘要:



本人也是刚学C不久算是老菜鸟。把我遇到的问题写出来,希望对初学者有点帮助。

一、分号,大括号

  分号。分号是表达式结束的标志,一般表达式后面都要有。写“;”的时候一定要注意:是否要结束前面的语句。注意:if,switch,for,while语句,数据类型定义,函数定义。

if(a>b) /*if语句,没有分号*/

{...}

while(i+=10,i!=100); /*while语句循环体为空,依靠逗号语句实现循环*/

struct a /*结构体数据定义,没有分号*/

{...}b; /*结构体变量,要有分号*/

int sum(...) /*函数定义,没有分号*/

{....}

大括号。大括号是一个语句段的标志。写大括号时最好一次写一对,然后把光标移到大括号里写。避免遗漏。

二、运算符号

“=”与“==”

“=”用于赋值,注意“=”左边必须是变量,右边可以是常量也可以是变量。“==”用于判断两个量的大小,左右两边可以是常量也可以是变量(尽量把常量写在左边,这样“==”误写成“=”时编译器就会报错)。运算表达式有它本身的值。“=”语句值为“=”右边的量的大小;“==”语句值为判断结果,无外乎两种,0(表示“==”两边不等)1(“==”两边相等)。

(i=1)==(3==4); /*i值为1,整个表达式值为0*/

  “,”
逗号语句是从左到右计算,整个逗号语句的值为最后一个语句的值
i=(j=2,j+8,j++);   /*先计算j=2,值为2,j+8不是运算表达式,跳过,计算j++得到整个括号内的值3*/

“/”

“/”两边都是整型变量的时候结果也是整型,而且结果遵循向0靠拢的原则。

运算符的优先级及结合方向

不多说了,表格一定要背牢。

三、变量

  命名

不要吝惜,能说明白性质尽量在变量的名字上说明。避免老是使用一个字母,或者难以理解的变量名。对于较长的变量命名可以......

阅读全文(3606) | 评论:0

大学生不被重用的原因--老板的解释[精](2005-11-13 11:03:00)

摘要:大学生不被重用的原因--老板的解释(转)



现在好象很多大学毕业生觉的自己找不到工作,每天怨天怨地的,好象有多少人欠他一样。但在我看来,我是坚决不用的。

  一、大学生刚毕业就要找个好工作,至少得做做办公室的。我招聘的经历的和所受这帮人的苦是得出后的经历,实话实说,你这帮小孩懂什么,什么都不懂,就敢对开价三千五千的,你想想你会做什么,制作个表格都不成,上网打游戏到是高手,让他去买箱复印纸,结果给我搬回来是二十五块钱一包的,还好象很有功劳,今天搬的幸苦,累的要命,然后就想早点回家去了,下午找个理由就溜了。我呢是一肚子气,买个复印纸用得着你去搬吗,人家会送上门来的,而且只要16块一包的,还给我称功劳,溜了,他奶奶的,我还要付你一天一百元的工资。我想我如果找个中专生和大专生,这种事是绝对不用我交的自己会问公司里的人是多少钱,那里有的买,然后打开报纸和黄页,打个电话问问有没有更便宜的,同样质量,然后叫别人送过来,我实在想不通,我教过大学生怎么买,不是叫他人去,打个电话就成了,可他偏偏要去电脑城买,自个打个的士过去然后问我报销,算到最后一箱纸的成本得三百元,估计比中专生文员要贵百分之四十七,当然我知道他是没贪污,也是想做好事,但一个自我骄傲,以为自己一个堂堂大学生办这点事一是看不起他,二是认为自己办的会非常好,不屑于问别人,觉的自己能力一流,结果,乖乖,后果出现了,买的贵,累了,的士费也报销了,人也溜了,我呢好象还得夸奖他二句,不然他就心理不平衡,呵呵,那好吧,我也不想用你了,你就想干什么就干什么,你想玩就玩,想溜回家就溜回家吧(溜回家是这帮人最喜欢的),我在一边冷眼看着呢,二三个月后还不能改正这些习惯,你就回家去吧。

  二、说起开除,我到是有经验了,对这帮大学生,我是当时开除就当时清办公桌,为什么,我怕了,我以前是开除我提前一些时间告诉他们,最近公司人员比较紧,你如果有好工作就自己找吧,我这里呢一二个月内没问题,结果呢,我是怕了,他们不是找工作,而是到处给我说公司如何如何坏,不用他们会后悔,然后四处煸到人,到处骂娘,然后再把你信息全告诉别人,打客户告诉他们我公司有多少利润给ERP装东西,把椅子搞破,告诉别人工资是怎么样的,结果我现在火了,一个人实在不行,我立马多给他一个月工资,会议上一宣布,立即走人,立即给钱,立......

阅读全文(3980) | 评论:6

高手总结的WINXP技巧(2005-11-13 10:51:00)

摘要:



声明:以下技巧都是一些常用技巧,但也并不是每个人都很清楚,请只选择你感兴趣的内容选择性的观看。
  
  1、如何实现关机时清空页面文件打开“控制面板”,单击“管理工具→本地安全策略→本地策略→安全选项”,双击其中“关机:清理虚拟内存页面文件”一项,单击弹出菜单中的“已启用”选项,单击“确定”即可。
  
  
  2、如何自行配置Windows XP的服务
  如果你是在单机使用Windows XP,那么很多服务组件是根本不需要的,额外的服务程序影响了系统的速度,完全可将这些多余的服务组件禁用。单击“开始→控制面板→管理工具→服务”,弹出服务列表窗口,有些服务已经启动,有些则没有。我们可查看相应的服务项目描述,对不需要的服务予以关闭。如“Alerter”,如果你未连上局域网且不需要管理警报,则可将其关闭。
  
  3、Smartdrv程序有什么作用
  现象:在许多有关Windows XP安装的介绍文章中都提到:“如果在DOS下安装Windows XP非常慢,肯定是安装前未运行Smartdrv.exe。我想问这个Smartdrv.exe文件有什么饔?具体如何使用?
  
  Smartdrv.exe这个文件对于熟悉DOS的朋友肯定很清楚,主要作用是为磁盘文件读写增加高速缓存。大家知道内存的读写速度比磁盘高得多,如果将内存作为磁盘读写的高速缓存可以有效提高系统运行效率。Smartdrv.exe这个文件在Windows各个版本的安装光盘中或是硬盘上的Windows/command/里都有,只有几十KB,把这个文件复制到软盘下,启动系统后直接运行这个程序(可以不加参数,该程序会自动根据内存大小分配适当的内存空间作为高速缓存),再安装Windows XP即可。另外提醒大家,这个程序在安装完Windows后,不要运行,否则Windows可用内存将减少。
  
  
  4、Win32k.sys是什么文件
  现象:我刚装了Windows XP,可是接下去再装毒霸就发现病毒,位于F:WINNT SYSTEM32里的Win32k.sys文件,删又不可删,隔离又不行,在Windows 98下或DOS下删就会导致Windows......

阅读全文(2973) | 评论:0

——给未满18岁少男少女(2005-11-13 10:49:00)

摘要:



爱情到底是什么............

当你站在你爱的人面前,你的心跳会加速;
当你与你爱的人四目交投,你会害羞;
但当你站在你喜欢的人面前,你只感到开心;
但当你与你喜欢的人四目交投,你只会微笑.
当你与你爱的人对话,你觉得难以启齿;
当你爱的人哭,你会陪她一起哭;
但当你和你喜欢的人对话,你可以畅所欲言;
但当你喜欢的人哭,你会技巧的安慰她.
当你不想再爱一个人,你要闭上眼睛并忍着泪水;
当你不想再喜欢一个人,你只要掩住双耳!
喜欢,是一种心情
爱, 是一种感情
喜欢,是一种直觉
爱, 是一种感觉
喜欢,可以停止
爱, 没有休止
喜欢一个人,特别自然
爱一个人, 特别坦然
喜欢一个人,有时候盼和他在一起
爱一个人, 有时候怕和他在一起
喜欢一个人,不停的和他争执
爱一个人, 不停的为他付出
喜欢一个人,希望他可以随时找到自己
爱一个人, 希望可以随时找到他
喜欢一个人,总是为他而笑
爱一个人, 总是为他而哭
喜欢,是执着
爱, 是值得
喜欢就是喜欢,很简单
爱就是爱, 很复杂
喜欢你,却不一定爱你
爱你, 就一定很喜欢你
其实,喜欢和爱仅一步之遥
但,想要迈这一步
就看你
是喜欢迈这一步
还是爱迈这一步
......

阅读全文(3752) | 评论:0

Windows Xp修复控制台详细的命令和用法 (2005-11-13 10:49:00)

摘要:


  Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。(当然大家可以在系统启动后按F8,插入XP系统光盘进入)这次整理了一下,希望对大家有所帮助:

Bootcfg

  bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。
  含有下列参数的 bootcfg 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 bootcfg 命令。

用法:

  bootcfg /default  设置默认引导项。

  bootcfg /add    向引导列表中添加 Windows 安装。

  bootcfg /rebuild  重复全部 Windows 安装过程并允许用户选择要添加的内容。

  注意:使用 bootcfg /rebuild 之前,应先通过 bootcfg /copy 命令备份 boot.ini 文件。

  bootcfg /scan    扫描用于 Windows 安装的所有磁盘并显示结果。

  注意:这些结果被静态存储,并用于本次会话。如果在本次会话期间磁盘配置发生变化,为获得更新的扫描,必须先重新启动计算机,然后再次扫描磁盘。

  bootcfg /list   列出引导列表中已有的条目。

  bootcfg /disableredirect 在启动引导程序中禁用重定向。

  bootcfg /redirect [ PortBaudRrate] |[ useBiosSettings]

  在启动引导程序中通过指定配置启用重定向。

范例:
  bootcfg /redirect com1 115200
  bootcfg /redirect useBiosSettings

hkdsk

  创建并显示磁盘的状态报告。Chkdsk 命令还可列出并纠正磁盘上的错误。

  含有下列参数的 chkdsk 命令仅在使......

阅读全文(2985) | 评论:0

电脑死机剖析(2005-11-13 10:46:00)

摘要:


玩机自古谁无死——电脑死机剖析
 

  如果说在DOS下面一遇到死机大家首先想到的是病毒的话,在Windows里遇见死机大概已没有多少人会想到病毒了,更多的是没有任何感觉地执行死机三步曲:拼命晃鼠标、按Ctrl+Del+Alt、(痛苦地)按Reset。
长期经历义务劳动(没有存盘?!)和ScanDisk的困扰后,您是否已经感到忍无可忍了?我们今天就来和它算算总帐!
  一般地,电脑死机分为启动死机和运行死机,我们下面分别阐述。

启动死机
  启动死机主要包括硬件设备故障、BIOS设置不当、硬盘主引导记录受到损坏、系统分区受到损坏、系统文件受到破坏等。要分析电脑的启动死机,必须先分析电脑启动过程。
  在开机时,系统BIOS程序将首先对所有组成部分作一次全面检测,这种检测叫上电自检(POST :Power On Self Test)。它依靠BIOS对系统进行检测,顺序是ROM(包含ROM BIOS)、RAM、主机板电路,然后是键盘、硬盘和软盘驱动器。最后POST搜索系统总线,看看有没有带自带BIOS的附加设备存在,如EGA卡和VGA卡等。
  当微机出现硬件故障时,POST自测程序在启动时以警叫声或在屏幕上显示错误信息说明故障的所在。以初始化显示器为界,在这以前出现的故障为关键性错误,出现关键性错误时系统不能继续启动而死机,而非关键性错误能显示在屏幕上,一般允许系统继续启动,但有的硬件不能正常使用。对于关键性错误,可根据电脑响应“嘟嘟”警声的长短来判断。
  了解POST自测程序的故障,可以判断硬件故障的大概原因。下表是电脑在自检时报告错误的警声及其含义。
  对于非关键性错误,屏幕上会按如下格式提示出错代码和有关出错信息:
  Error Message Line 1
  Error Message Line 2
  Press<F1>to Resume
  在硬件检测结束后,硬盘ROM BIOS程序将接管控制权。该程序首先对硬盘进行初始化,然后启动硬盘主引导记录。硬盘主引导记录的主要目的是引导系统,且识别硬盘的分区。硬盘主引导记录根据分区确定启动分区以及相应的操作系统,最后电脑由这些操作系统完成系统的引导。对于硬盘启动......

阅读全文(8874) | 评论:12

幸福的含义~![图](2005-11-13 10:17:00)

摘要:......

阅读全文(4355) | 评论:0

只要可能就用const(2005-11-13 10:14:00)

摘要:关键字 const
                  非常多才多艺。在类的外部,你可以将它用于全局常量或命名空间常量,就像那些在文件、函数或模块范围内被声明为 static
                  的对象。在类的内部,你可以将它用于 static 和 non-static 数据成员上。对于指针,你可以指定这个指针本身是
                  const,或者它所指向的数据是 const,或者两者都是,或者都不是。                     char greeting[] = "Hello";                                          char *p = greeting; // non-const pointer,                     // non-const......

阅读全文(2888) | 评论:0