Bài viết nghe như là các bước tiến hóa từ Vượn thành Người? Thật ra tiêu đề của bài viết này nguyên văn tiếng Anh là “The Evolution of a Programmer”, nhưng tôi muốn hài hước nó lên một chút với dân Lập trình viên (Programmer).
Sau đây là trình tự quá trình tiến hóa của một Programmer:
1. Trường PTTH (High School/Jr.High)
10 PRINT "HELLO WORLD"
20 END
2. Năm thứ nhất ĐH/CĐ (First year in College)
Lúc này những dòng code có vẻ tốt hơn:
program Hello(input, output)
begin
writeln('Hello World')
end
3. Sau vài năm là sinh viên (Senior year in College)
Đã có chút ít về kiến thức và vài năm kinh nghiệm được học thêm nhiều ngôn ngữ:
(defun hello
(print
(cons 'Hello (list 'World))))
4.Ra trường, làm lính mới (New professional)
Các dòng code chững chạc và chuyên nghiệp hơn, ngôn ngữ lập trình C:
#include
void main(void){
char *message[] = {“Hello “, “World”};
int i;
for(i = 0; i < 2; ++i)
printf(“%s”, message[i]);
printf(“\n”);
}
5.Chiến sĩ dày dạn kinh nghiệm (Seasoned professional)
Những dòng code bây giờ đã đạt cấp cao hơn, nhìn khó hiểu với dân không lập trình, vì vậy thêm 1 phần code mà thôi:
#include
#include
class string{
private:
int size;
char *ptr;
…
…
}
main(){
string str;
str = "Hello World";
cout << str << endl;
return(0);
}
6.Kĩ sư lập trình (Master Programmer)
Khả năng lập trình tốt, thành thạo hơn rất nhiều.
[
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
]
library LHello{
// bring in the master library
importlib("actimp.tlb");
importlib("actexp.tlb");
…
…
// print a string out
pHello->PrintSz(wcsT);
Sleep(2000);
ulCnt = pHello->Release();
}else
printf("Failure to connect, status: %lx", hRslt);
// Tell OLE we are going away.
CoUninitialize();
}
return(0);
}
7.Hacker tập sự (Apprentice Hacker)
Kiến thức và kinh nghiệm đã có bạn có thể chuyển qua lĩnh vực mới, học cách viết các chương trình hack. Ở giai đoạn này nếu không có một định hướng đúng đắn rất dễ trở thành kẻ phá hoại trong xã hội. Chính vì thế viết chương trình có ích cần rất nhiều công sức và thời gian.
#!/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;
8. Kinh nghiệm khi Hacker (Experienced Hacker)
Khi đã có kinh nghiệm rồi, lúc này việc viết một chương trình hack khá nhanh gọn và đơn giản.
#include
#define S "Hello, World\n"
main(){
exit(printf(S) == strlen(S) ? 0 : 1);
}
9. Hacker chuyên nghiệp (Seasoned Hacker)
Có thể thấy ngay mức độ cao thủ:
% cc -o a.out ~/src/misc/hw/hw.c
% a.out
10.Bậc thầy về hacker(Guru Hacker)
Từ một cao thủ lập trình nay đã trở thành một cao thủ hệ thống, sử dụng các hệ thống như Unix\Linux. Với kinh nghiệm tích lũy có thể làm admin cho các hệ thống đòi hỏi bảo mật cao và tất nhiên cũng có thể trở thành một cao thủ phá hoại hệ thống. Ví dụ để in ra màn hình dòng chữ “Hello, world” không mất nhiều công sức nữa đâu.
% echo "Hello, world."
11. Chuyển qua làm quản lý (New Manager)
Có kinh nghiệm, có trình độ thì được cất nhắc qua làm quản lý, bắt đầu bằng sự nghiệp của một tay thuần túy làm về kỹ thuật. Mặc dù vậy, kinh nghiệm làm quản lý chưa có, kinh nghiệm code thì nhiều nên bước đầu làm quản lý chẳng khác gì dân mới học lập trình.
10 PRINT "HELLO WORLD"
20 END
12. Kinh nghiệm về quản lý (Middle Manager)
Đẻ có một chương trình in ra dòng chữ “Hello, world.”, quản lý đã biết phải làm gì? Gửi ngay email cho cấp dưới bằng cách gửi mail bằng console chứ không bằng web hay phần mềm.
mail -s "Hello, world." bob@b12
Bob, could you please write me a program that prints "Hello, world."?
I need it by tomorrow.
^D
13. Quản lý cấp cao (Senior Manager)
Ngay lập tức ra lệnh và ép thời gian cho nhân viên, các bạn đọc email dưới đây.
% zmail jim
I need a "Hello, world." program by this afternoon.
14. Giám đốc điều hành (Chief Executive)
% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
Câu hỏi đặt ra! Cuộc đời dân IT mình cũng sẽ “tiến hóa” như thế ko nhỉ ?
Tapchilaptrinh