博文

.net,Java,更有LAMP(2008-08-12 17:16:00)

摘要:.net,Java,更有LAMP
——LAMP应用与学习指南
时常有不少大学生朋友来咨询我们,.net和Java该学那个?如何学?
解答完他们的问题后,我一般都会补充:LAMP也是你们非常值得关注和学习的三大主流技术平台之一,
不要只把眼睛放在.net和Java上,这样你们会失去很多东西。 从技术发展趋势来看,Web开发,B/S应用架构是绝对的未来趋势。
对于B/S架构开发很明显一个是客户端浏览器,一个是服务器端的程序。
客户端技术相对而言,会越来越简化,而且,就HTML和相关的东西,学起来,也比较简单。
而服务器端技术,将会是未来的重点。
在这方面,LINUX,Apache,MySQL和PHP构成的LAMP组合,可以说,是IT技术界的当红明星。
我们重点说说。 在B/S架构下,Web端要求足够简化,大部分功能集中在服务器端。
服务器端包括服务器、WEB服务、数据库以及服务器程序。
这个领域,LAMP现在已经做的相当完美。
LIUNX服务器的稳定与大量应用,是全世界的趋势。
Apache服务也是顶尖高手。
MySQL现在也是日益成熟。
在加上用PHP开发的服务器应用,可以说,LAMP是一个绝对黄金的组合。
当然,客户端也不是说就忽视不管了。
实际上,客户端要学习的技术,好像更多,当然,这些技术的学习比较简单,而且,对Java或者.net来说,都需要学习这些技术。
可以说,这就是公共的技术了。
 
HTML是前台浏览器解释的标记语言,这是必需要会的,你能在你的浏览器上看到的内容都是它给你显示出来的。
所以这个你必须会, 虽然这个在成手工程师的眼里已不算是什么技术了,但是在刚学习B/S开发的学员还是要掌握并会灵活运用。
这是一门非常简单的东西,学起来立竿见影。
 
CSS也是前台浏览器解释的,它是用来显示你的页面风格和样式的,这个也是你必须要会的,因为页面的字体、背景、文本、位置、布局、边缘、列表等等样式都是用它来控制的。
 
前台脚本语言,有这么几种,:Javascript, VBscript, applet等等,这么多我都学吗?不用,只要会一个学可以了,都是完成同样功能的......

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

JAVA的世界(2008-08-03 14:34:00)

摘要:JAVA的世界  
    在Internet时代,崛起了两种编程语言:Java和C#,后者,不但出现的历史比较短,而且和Java与Objiect Pascal都非常相似,所以,篇    我们重点介绍Java,相信你通过摸索,也能阅读和尝试编写C#程序。
本章的目的,使你在原有的程序设计经验基础上,快速掌握Java语言的特点,达到可以读懂Java程序,并可以编写简单Java程序。

32.1 好一杯热咖啡——Java简介
Java是一种简单的面象对象的分布式的解释的健壮的安全的结构中立的可移植的性能很优异的多线程的动态的语言。

图32-1 Java的金字招牌出现在各种Java书上

Java的特点
 简单:Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。Java语言的简单性主要体现在以下三个方面:
 Java的风格类似于C++,因而C++程序员是非常熟悉的。从某种意义上讲,Java语言是C及C++语言的一个变种,因此,C++程序员可以很 快就掌握Java编程技术。
 Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。
 Java提供了丰富的类库。
 面向对象:面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计 技术。Java支持静态和动态风格的代码继承及重用。
 分布式:Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式 与访问本地文件系统几乎完全相同。为分布环境尤其是Internet提供动态内容无疑是一项非常宏伟的任务,但Java的语法特性却使很容易地实 现这项目标。
 健壮:Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错 的可能性。Java还实现了真数组......

阅读全文(1768) | 评论:4

教C语言高手学C++(02)(2008-07-18 10:16:00)

摘要:教C语言高手学C++(02) 类就是封装 大师:用集成电路搞设计,你比较熟悉吧? 小蔡:那当然了。我们接触硬件还是比较多的。一块集成电路,就是一个功能模块,我们根据需要选择各个模块,通过连线把它们连接起来,就够构成了整个系统。 大师:其实软件设计,何尝也不是集成电路的设计思想呢。 我们设计整个系统的时候,也是分解策略,把整个系统,分解成若干的功能模块,然后分别实现,最后联合起来调试。 小蔡:还真是这个道理。 大师:那你说,那个语法特点,最像集成电路呢? 小蔡开始谨慎起来: “对C语言来说,当然是函数这种语法了。一个函数,就是一个功能模块,就像集成电路一样,可以被重复调用,就像系统中使用相同的集成电路一样。” “聪明!”大师微笑, “看来你的C语言基础确实不错。 的确是这样的,函数算一个功能模块的集合。并不是每个函数,都那么的内聚,大多数函数,在操作的时候,常常要依赖系统中其他变量的结果,或者说,要改变系统中某个变量的值。 ” 小蔡有些疑惑:你举一个案例。 大师说:你看前面的案例: “       int deprint(char *s){  if(noisy) printf(……); }。这段代码,就根据noisy这个变量的值来决定运行状态。” 小蔡突然有些明白了:对,你看,on()和off()两个函数的执行,还改变了noisy的值。 大师接口到:对阿,实际上,deprint(),on()和off() 这样的函数,关系非常紧密,都和noisy这个变量息息相关。他们的耦合相关性如此之强,但是C语言,居然没有提供一种机制,把他们聚合在一起,成为一个模块。 小蔡有些感慨:对啊,我们在编写有些模块的时候,常常把一些全局变量和函数放在同一个文件中,以形成单独模块。而实际上,C++提供的classs这种封装方式,把相关的函数和变量,聚合在一起,成为一个独立的模块。更加方便了。 “哈哈,孺子可教。你现在明白class的第一个特性,封装的意义了吧?”大师笑道。 “嗯,基本明白了,我以后,在程序中,就会用到这种特性,把相关的函数和变量,封装在同一个类中。这样还不容易出错。”小蔡感叹道。 “对,所以,封装是面向对象的第一个重要特点。”大师总结道, “这使得我们使用别人的功能模块的时......

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

教C语言高手学C++(01)(2008-07-11 17:52:00)

摘要:教C语言高手学C++(01)   人物介绍: C++大师:拥有十年的C++开发经验,最近几年转入公司项目管理和员工培训工作,以C++语言,系统设计和规划,项目管理,员工培训见长。在公司除了带团队之外,常常负责给员工培训,偶尔上小课解答初级程序员的疑惑。 小蔡:现在时的嵌入式系统工程师,汇编语言/C语言的每天使用者。已经开发了3年程序,想提高一下自己的水平。   梆子: 小蔡是一个C语言高手,最近参与到其中一个项目,这个项目要求用C++语言。C++语言,对小蔡来说,既陌生又熟悉。熟悉的是基本语法,陌生的是,C++中的面向对象语法部分。这让小蔡很痛苦,对他来说,C语言已经比汇编语言高级很多,一直认为C语言,就是非常完美的语言了。 这一天,小蔡听说,公司有个项目经理,以前和他一样,也是一个C语言高手,但是现在非常推崇C++。 于是,他决定去请教这位C++大师,看看自己该如何学习C++。 剧情拉开。   用C++,简单得多的程序 进得门来,一阵客套之后,程序员本性露了出来,小蔡直接开始发问。 小蔡:你说,就我目前的情况,应该再学点啥呢? 大师:哎,嗯,呵呵……那就学 C++ 吧。 小蔡:你老劝我学C++,我们开发过程中真的用不到。毕竟,并不是所有的项目,都需要用到C++的啊。 大师:打人的时候,我们都看到招式,起作用的,其实是内功。 小蔡:C++不就是一种新的招式么? 大师:非也,非也。就你目前情况,用得最熟练的武器,当然就是最好的武器。可是,一方面,我觉得嵌入式系统开发,还有很多领域将来会以C++为主,比如我们公司,目前很多项目,都开始采用C++实现。另外一方面,面向对象的开发思想,如果你具备,用C语言,一样可以开发出好的程序来的。 小蔡:听着累,你说实际点的。   大师放下自己手里的书。眼睛里露出得意的笑容。 大师:这还真找对人了。你的代码中,至少有10项采用了C++才具备的特性。比如,新的for语句用法,const定义参数…… 小蔡:呵呵,上次入职培训。你已经给我们详细讲过了,这些好用的特性,只要我的编译器具备,我才不在乎是C,还是C++的特性呢。 大师:哦,看来,我不使出点杀手锏,你是不知道C++的厉害了。 小蔡:就是,光知道吹牛。 大师:去,拿纸来。   小......

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

对比PASCAL和C语言的差异(2008-07-04 14:27:00)

摘要:对比PASCAL和C语言的差异
掌握基本语法之后,快速掌握一种语言的
第二技巧是和你熟悉的一种开发语言对比一下。 记得当年学习程序设计语言的时候。
我们班也和现在的网络上一样,有喜欢PASCAL的,有喜欢C语言的。两边争得不亦乐乎。
其实Turbo C和Turbo Pascal在Borland的调教之下,功能是差不多的。 其实我是先用Turbo Pascal,再转入Borland C++的。中途只是考试用了一下Turbo C。
要说两种语言,我也是先亲近PASCAL,后来爱上C语言的。 开始我喜欢PASCAL的严谨,每一个语法都有严格的语法图示。
Turbo PASCAL电一般的编译速度。
嗯,后来更喜欢C语言一些,源于他们对函数处理的一个区别。 C语言是不能再函数中定义一个函数的。虽然也可以嵌套。
但PASCAL可以,可以在定义部分,定义一个仅仅这个函数使用的函数。
我仔细对比了之后,认为C语言这种做法,使得C语言更简洁,更精巧。
因为:
(1)在函数体外定义一个函数,需要的时候,调用即可,显得更简单简洁,好理解。
(2)PASCAL的这个机制,给PASCAL的学习带来困扰,理解这样的嵌套函数,也很费力。 实际上,我更喜欢Turbo PASCAL提供的unit这个功能。 一个单元就是一个模块。在任何一个单元中,分为接口和实现两个部分。
我们要用这个模块,只需要理解接口中的调用函数用法就可以了。
和C语言/C++的头文件,实现文件机制非常的像。
但是,单元文件编译后,我们对接口不可见,不像C语言,读读头文件,基本能掌握十之八九。
但是unit单元提供的这种接口/实现相分离的机制,一直给我留下了深刻的印象。 所以,PASCAL更适合作为教学语言,给刚刚接触结构化编程的学生建立严格的训练。
而C/C++,适合作为其后作为开发技能的训练。 至于我们当年还争论begin  end和{ }的区别,
现在想想,多无聊啊,IDE都帮你实现了,不用你输入字符,都一样。  ......

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

对比PASCAL和C语言的差异(2008-07-04 14:22:00)

摘要:对比PASCAL和C语言的差异
掌握基本语法之后,快速掌握一种语言的
第二技巧是和你熟悉的一种开发语言对比一下。 记得当年学习程序设计语言的时候。
我们班也和现在的网络上一样,有喜欢PASCAL的,有喜欢C语言的。两边争得不亦乐乎。
其实Turbo C和Turbo Pascal在Borland的调教之下,功能是差不多的。 其实我是先用Turbo Pascal,再转入Borland C++的。中途只是考试用了一下Turbo C。
要说两种语言,我也是先亲近PASCAL,后来爱上C语言的。 开始我喜欢PASCAL的严谨,每一个语法都有严格的语法图示。
Turbo PASCAL电一般的编译速度。
嗯,后来更喜欢C语言一些,源于他们对函数处理的一个区别。 C语言是不能再函数中定义一个函数的。虽然也可以嵌套。
但PASCAL可以,可以在定义部分,定义一个仅仅这个函数使用的函数。
我仔细对比了之后,认为C语言这种做法,使得C语言更简洁,更精巧。
因为:
(1)在函数体外定义一个函数,需要的时候,调用即可,显得更简单简洁,好理解。
(2)PASCAL的这个机制,给PASCAL的学习带来困扰,理解这样的嵌套函数,也很费力。 实际上,我更喜欢Turbo PASCAL提供的unit这个功能。 一个单元就是一个模块。在任何一个单元中,分为接口和实现两个部分。
我们要用这个模块,只需要理解接口中的调用函数用法就可以了。
和C语言/C++的头文件,实现文件机制非常的像。
但是,单元文件编译后,我们对接口不可见,不像C语言,读读头文件,基本能掌握十之八九。
但是unit单元提供的这种接口/实现相分离的机制,一直给我留下了深刻的印象。 所以,PASCAL更适合作为教学语言,给刚刚接触结构化编程的学生建立严格的训练。
而C/C++,适合作为其后作为开发技能的训练。 至于我们当年还争论begin  end和{ }的区别,
现在想想,多无聊啊,IDE都帮你实现了,不用你输入字符,都一样。  ......

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

程序设计如何学?(2008-07-04 14:21:00)

摘要:程序设计如何学?
程序设计如何入门,如何学效率更高。
这是初学者经常问的问题。
每个人都希望投入时间最短,获益最大。这很正常。
好吧,我们来总结一下,程序设计的一些经验。
我们的经验就一句话: “好读书不求甚解,上机实践是检验真理的唯一标准。” 所以,我们推荐的学习方法是,首先建立起对计算机的感情。
对计算机的应用比较感兴趣,兴趣是最好的老师,
你经常折腾计算机了,慢慢也有了探索计算机奥秘的兴趣,这对坚持学习,非常重要。 接下来,你要做的,就是不断上机提高你的水平了。 第一阶段,学习语法。
课本上的语法,理解之后,即可上机试验,加深理解,熟练使用。
这个阶段,看书和上机的时间分配大概是1:1的比例。 第二阶段,熟练提高
看书:上机比至少1:2,甚至1:3或者1:4更高。
主要用于自己设计,编写一些小的工具软件。
这个阶段,逐渐加大的代码,会让你逐步体会到很多代码建构的技巧,
而且,不少技巧,是必须自己去做,才能深刻体会的。 其次,多请教同学老师,也是非常好的一个技巧。
一般来说,学校里都有一些计算机组织,你可以参加。
而且,一般每个系都会有一些牛人,你可以读向他们学习。
网上也有很多比较能干的人,
而且,他们往往也会比较热心的帮人们解答问题。 一般来说,在校大学生,坚持做到能快速编写一些小工具,
水平就足够了,在你工作的时候,这是一个比较高的起点。  ......

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

经典C#面试题集锦(一)(2008-06-25 10:26:00)

摘要:经典C#面试题集锦(一)
有了前面的学习和上机练习,加上一定的项目开发实践,你可以是一名合格的C#程序员。不过,如果你去应聘,各家公司的题目,有时候还有些刁钻。不一定是你不会,只不过你没有见过某些题型,一时半会可能不适应,在规定的时间内,不能完成答题。为了帮助读者渡过面试这关,我们收集了一些面试题目,帮你长见识,复习巩固知识。并在做面试题目的时候,有比较好的发挥。
1、在C#中,string str = null 与 string str = "    "有何区别?
答:string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间. 2、请简述在.net中类(class)与结构(struct)的异同。
答:Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的。 3、C#中有没有运算符重载?能否使用指针?
答:C#中也有运算符重载,如对运算符“+”进行重载;C#中也可以使用指针,但要声明为unsafe。 4.Internal修饰符有什么含义?
答:很多C++程序员可能不太熟悉internal访问修饰符,因为C++中没有这个关键字。internal数据访问修饰符,表示对所修饰的成员在当前程序集内可以进行没有任何限制的访问;但在当前程序集外部则不能进行访问,其可访问性级别低于public ,高于protected。
5.对象能否调用静态方法
答:不能。对于类内部定义的静态变量及静态方法,该类的对象均不能调用。
6.CLR与IL分别是什么含义?
答:CLR:公共语言运行时,类似于Java中的JVM,Java虚拟机;在.net环境下,各种编程语言使用一种共同的基础资源环境,可以说,CLR就是操作系统和.net应用程序之间的支撑系统。.net应用程序的所有调用,都直接通过CLR,而不知道操作系统的存在,加强了程序代码的执行安全性。同时,操作系统也针对CLR而优化,提升了操作系统的健壮性和安全性。 还可以这样看:CLR就是具体的编程语言如C#与操作系统之间的翻译转换,同时它为具体的编程语言提供了许多资源:
?   面向对象的编程模......

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

嵌入式系统开发工程师入行前十项准备(2008-06-05 14:50:00)

摘要:这几年,大学生就业越来越难,但实际上,很多公司又一直招聘不到合适的值得培养的人才。我所了解的嵌入式系统开发工程师就是典型的例子,一般来说,在北京,这样的工作岗位大约是月薪3000-5000元,对刚毕业的大学生来说,还是不错的选择。可惜,我们国家好像没有这样的专业设置,不过,这关系不大,只要你有兴趣,稍微的职业准备,足够让计算机,电子,机电,仪器甚至数学物理专业的学生跨入这个行业。在未来越来越多的数码产品世界,嵌入式工程师,在技术领域,还算是一个比较有前途的职业。     1.  C语言玩得足够熟练 不是指你要考多高的分数,而是确实编写过几个代码长度超过2000行的程序,而且,这个程序由几个文件组成,完成某项工作。 2.  看得懂复杂一点的电路图 好像大学从来不考试学生是否看得懂电路图,但这是基本技能,比高分还重要。 3.  微机原理与接口技术 学得够好 对某种芯片特别熟悉,理解汇编,不要求编写大的汇编程序,小的函数就可以了。关键还在于建立微处理工作原理模型,将来就能轻松理解和学习需要用到的任何芯片。 4.  理解操作系统 重点掌握进程调度,最好能自己写C程序模拟。其他,内存管理等要理解,到不必在大学阶段掌握多深入,重要的是学习能力,用的时候快速学习就可以了。 5.  会用一些数据结构和算法 这是关系到你能在这个领域走多远的问题,看你自己修练了。 6.  某个开发工具的IDE用的足够熟练 熟练到你能发现到它的一两个Bug为止,而且,还要是英文的系统。呵呵,当年,我大学生时候,发现了Borland C++ V3.1 10个左右Bug。打字够快,英文够好。 7.  明白嵌入式系统的基本结构 简单的说就是:ROM+CPU+RAM+显示模块+其他I/O模块。 8.  理解API的意思 9.  理解仿真器的意思,知道程序是如何烧得,如何运行的 10.              足够好的身体    ......

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

嵌入式系统开发工程师入行前十项准备(2008-06-05 14:49:00)

摘要:这几年,大学生就业越来越难,但实际上,很多公司又一直招聘不到合适的值得培养的人才。我所了解的嵌入式系统开发工程师就是典型的例子,一般来说,在北京,这样的工作岗位大约是月薪3000-5000元,对刚毕业的大学生来说,还是不错的选择。可惜,我们国家好像没有这样的专业设置,不过,这关系不大,只要你有兴趣,稍微的职业准备,足够让计算机,电子,机电,仪器甚至数学物理专业的学生跨入这个行业。在未来越来越多的数码产品世界,嵌入式工程师,在技术领域,还算是一个比较有前途的职业。     1.  C语言玩得足够熟练 不是指你要考多高的分数,而是确实编写过几个代码长度超过2000行的程序,而且,这个程序由几个文件组成,完成某项工作。 2.  看得懂复杂一点的电路图 好像大学从来不考试学生是否看得懂电路图,但这是基本技能,比高分还重要。 3.  微机原理与接口技术 学得够好 对某种芯片特别熟悉,理解汇编,不要求编写大的汇编程序,小的函数就可以了。关键还在于建立微处理工作原理模型,将来就能轻松理解和学习需要用到的任何芯片。 4.  理解操作系统 重点掌握进程调度,最好能自己写C程序模拟。其他,内存管理等要理解,到不必在大学阶段掌握多深入,重要的是学习能力,用的时候快速学习就可以了。 5.  会用一些数据结构和算法 这是关系到你能在这个领域走多远的问题,看你自己修练了。 6.  某个开发工具的IDE用的足够熟练 熟练到你能发现到它的一两个Bug为止,而且,还要是英文的系统。呵呵,当年,我大学生时候,发现了Borland C++ V3.1 10个左右Bug。打字够快,英文够好。 7.  明白嵌入式系统的基本结构 简单的说就是:ROM+CPU+RAM+显示模块+其他I/O模块。 8.  理解API的意思 9.  理解仿真器的意思,知道程序是如何烧得,如何运行的 10.              足够好的身体    ......

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