毛慶禎 |
|
輔仁大學圖書資訊學系 |
2001/05/10 |
電腦素養不夠, 怎麼學都少根筋 -- 其實不是你的錯
不知那來的傳說,
請耐著性子看完, 最精彩的部份在結尾
The Evolution of a Programmer(一個軟體工程師的進化)
High School/Jr.High (高中生)
10 PRINT "HELLO WORLD"
20 END
First year in College (大學一年級)
program Hello(input, output)
begin
writeln('Hello World')
end.
Senior year in College (大學高年級)
(defun hello
(print
(cons 'Hello (list 'World))))
New professional (社會新鮮人)
#include <stdio.h>
void main(void)
{
char *message[] = {"Hello ", "World"};
int i;
for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");
}
Seasoned professional (老鳥)
#include <iostream.h> |
ostream &operator<<(ostream &stream, const string &s) { return(stream << s.ptr); } string &string::operator=(const char *chrs) { if (this != &chrs) { delete [] ptr; size = strlen(chrs); ptr = new char[size + 1]; strcpy(ptr, chrs); } return(*this); } int main() { string str; str = "Hello World"; cout << str << endl; return(0); } |
Master Programmer (初任軟體部經理)
[ uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820) ] library LHello { // bring in the master library importlib("actimp.tlb"); importlib("actexp.tlb"); // bring in my interfaces #include "pshlo.idl" [ uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820) ] cotype THello { interface IHello; interface IPersistFile; }; }; [ exe, uuid(2573F890-CFEE-101A-9A9F-00AA00342820) ] module CHelloLib { // some code related header files importheader(<windows.h ); importheader(<ole2.h ); importheader(<except.hxx ); importheader("pshlo.h"); importheader("shlo.hxx"); importheader("mycls.hxx"); // needed typelibs importlib("actimp.tlb"); importlib("actexp.tlb"); importlib("thlo.tlb"); [ uuid(2573F891-CFEE-101A-9A9F-00AA00342820), aggregatable ] coclass CHello { cotype THello; }; }; #include "ipfix.hxx" extern HANDLE hEvent; class CHello : public CHelloBase { public: IPFIX(CLSID_CHello); CHello(IUnknown *pUnk); ~CHello(); HRESULT __stdcall PrintSz(LPWSTR pwszString); private: static int cObjRef; }; #include <windows.h> #include <ole2.h> #include <stdio.h> #include <stdlib.h> #include "thlo.h" #include "pshlo.h" #include "shlo.hxx" #include "mycls.hxx" int CHello::cObjRef = 0; CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk) { cObjRef++; return; } HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString) { printf("%ws\n", pwszString); return(ResultFromScode(S_OK)); } CHello::~CHello(void) { // when the object count goes to zero, stop the server cObjRef--; if( cObjRef == 0 ) PulseEvent(hEvent); return; } #include <windows.h> #include <ole2.h> #include "pshlo.h" #include "shlo.hxx" #include "mycls.hxx" |
HANDLE hEvent; |
Apprentice Hacker (駭客學徒階段)
#!/usr/local/bin/perl
$msg="Hello, world.\n";
if ($#ARGV = 0) {
while(defined($arg=shift(@ARGV))) {
$outfilename = $arg;
open(FILE, " " . $outfilename) || die "Can't write $arg: $!\n";
print (FILE $msg);
close(FILE) || die "Can't close $arg: $!\n";
}
} else {
print ($msg);
}
1;
Experienced Hacker (有經驗經驗的駭客)
#include <stdio.h>
#define S "Hello, World\n"
main(){exit(printf(S) == strlen(S) ? 0 : 1);}
Seasoned Hacker(經驗豐富的駭客)
% cc -o a.out ~/src/misc/hw/hw.c
% a.out
Guru Hacker (駭客界的精神導師)
% echo "Hello, world."
New Manager (初任軟體部經理)
10 PRINT "HELLO WORLD"
20 END
Middle Manager (中階軟體經理)
mail -s "Hello, world." bob@b12
Bob, could you please write me a program that prints "Hello,
world."?
I need it by tomorrow.
^D
鮑伯, 明天請幫我寫個程式, 印出 "Hello, world."
Senior Manager
資深軟體經理
% z mail jim
I need a "Hello, world." program by this afternoon.
吉姆, 下午寫個程式, "Hello, world."
Chief Executive (公司的最大總經理)
% letter
C:\\letter: Command not found.
% mail
To: ^X ^F ^C
C:\\ % help mail
help: Command not found.
C:\\ % damn!
!: Event unrecognized
% logout
搞什麼鬼!..
誰給我過來一下.)
結論是: 新生最好, 愈原始愈好。
有點學問的笑話, 不是念物理的不知道看不看得懂.
有一天, 加州理工/麻省理工/哈佛的物理學生在一起聊天.他們走著走著看到了一座塔... 就必賽起誰可以最精確的量出塔的高度.
於是, 加州理工的學生就拿出量子力學, 計算出該塔是 "存在的"
(加州理工量子力學很好)
於是, 麻省理工的學生就拿出高度量測儀, 量出該塔的高度是 50.327 公尺.
(麻省理工的工程能力很受肯定.)
最後, 哈佛的學生從口袋裡拿出 50 元鈔票, 塞給高塔的管理員, 得到了最正確的答案
- 50 公尺.
(喂, 那個哈佛的, 比賽作弊不是好事喔 !)
結論是: ......
毛慶禎 |