Tin tức mới

Quá trình tiến hóa của một Lập trình viên

Hì hì… chắc mọi người sẽ cảm thấy buồn cười khi đọc cái tiêu đề bài viết của mình, nghe cứ như là các bước tiến hóa từ Vượn thành Người ấy nhỉ!? 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ì thực sự đây cũng là bài viết có chút hài hước về dân Lập trình viên (Programmer). Để thể hiện sự hài hước tác giả đã sử dụng ngôn ngữ lập trình làm ngôn từ cho bài viết của mình, tôi xin mạn phép tác giả dịch sang tiếng Việt (và có đôi chút thay đổi cho phù hợp, xin được lượng thứ). Do tính đặc thù của bài viết nên có lẽ một số người sẽ không hiểu lắm, vì vậy tôi sẽ sẵn sàng trả lời các câu hỏi. Tuy nhiên các bạn cũng cứ thử đọc xem, cũng không khó hiểu lắm đâu.

Nào, chúng ta thử xem trình tự quá trình tiến hóa của một Programmer ra sao và thử xem xét nó có giống với những gì bạn biết không nhé.

1. Trường PTTH (High School/Jr.High)

Đây là những dòng code của anh ta:

[sourcecode language=”c”]
10 PRINT "HELLO WORLD";
20 END
[/sourcecode]

2. Năm thứ nhất ĐH/CĐ (First year in College)

Lúc này những dòng code có vẻ đã sáng sủa hơn:

[sourcecode language=”c”]
program Hello(input, output)
begin
writeln(‘Hello World’);
end
[/sourcecode]

3. Sau vài năm là sinh viên (Senior year in College)

Có ăn có học vẫn hơn, lại có vài năm kinh nghiệm và học thêm nhiều ngôn ngữ:

[sourcecode language=”c”]
(defun hello
(print
(cons ‘Hello (list ‘World))))
[/sourcecode]

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 rồi, ngôn ngữ lập trình đặc sệt C:

[sourcecode language=”c”]
#include
void main(void){
char *message[] = {“Hello “, “World”};
int i;
for(i = 0; i < 2; ++i)
printf(“%s”, message[i]);
printf(“n”);
}
[/sourcecode]

5. Chiến sĩ dày dạn kinh nghiệm (Seasoned professional)

Những dòng code bây giờ đã đạt cấp Prồ rồi, nhìn khó hiểu lắm nhất là đối với dân chưa làm lập trình bao giờ, vì vậy chỉ xin trích 1 phần code mà thôi:

[sourcecode language=”c”]
#include
#include
class string{
private:
int size;
char *ptr;


}
main(){
string str;
str = "Hello World";
cout << str << endl;
return(0);
}
[/sourcecode]

6. Lập trình sư (Master Programmer)

Khỏi cần bàn cãi nữa, mỗi khi anh ta chạm vào bàn phím là các dòng code hiện ra như rồng bay, phượng múa,… người phàm khó mà sánh kịp. Cũng chỉ dám trích dẫn một phần code mà thôi(1/10 đấy).

[sourcecode language=”c”]
[
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);
}
[/sourcecode]

7. Tập tọe làm Hacker (Apprentice Hacker)

Kinh nghiệm đầy mình rồi, ngôn ngữ lập trình đông tây đều biết tuốt, anh ta chuyển qua lĩnh vực mới, học 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ễ anh ta thành kẻ phá hoại trong xã hội, ít ra cũng là trên lĩnh vực IT. Các bạn thấy không, để viết một chương trình có ích người ta cần nhiều công sức như vậy nhưng để phá hoại nó chỉ đơn giản thế này thôi! Cần cảnh báo ngay!!! 😀

[sourcecode language=”c”]
#!/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;
[/sourcecode]

8. Hacker rồi đấy (Experienced Hacker)

Bây giờ khi anh ta đã có chút 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 đối với anh ta.

[sourcecode language=”c”]
#include
#define S "Hello, World"
main(){
exit(printf(S) == strlen(S) ? 0 : 1);
}
[/sourcecode]

9. Cáo già hacker (Seasoned Hacker)

Có thể thấy ngay mức độ cao thủ:

[sourcecode language=”c”]
% cc -o a.out ~/src/misc/hw/hw.c
% a.out
[/sourcecode]

10. Bậc thầy về hacker(Guru Hacker)

Từ một cao thủ lập trình anh ta đã trở thành một cao thủ hệ thống, sử dụng các hệ thống như UnixLinux nhoay nhoáy. Với đẳng cấp này anh ta 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. Nhìn mà xem, để in ra màn hình dòng chữ “Hello, world” anh ta có mất nhiều công sức nữa đâu.

[sourcecode language=”c”]
% echo "Hello, world.";
[/sourcecode]

11. Chuyển qua làm quản lý (New Manager)

Có kinh nghiệm, có trình độ anh ta được cất nhắc qua làm quản lý (thường ở ta là thế), bắt đầu giã từ 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 anh ta làm quản lý chẳng khác gì dân mới học lập trình (Hệt như anh chàng trung học thuở nào).

[sourcecode language=”c”]
10 PRINT "HELLO WORLD"
20 END
[/sourcecode]

12. Có tý kinh nghiệm về quản lý (Middle Manager)

Thấy chưa?! bây giờ để có một chương trình in ra dòng chữ “Hello, world.”, anh ta đã biết phải làm gì? Gửi ngay email cho đàn em và nhờ vả. Quen ra lệnh, lười code và nói chung thời gian đã làm cho kiến thức lập trình mai một mất rồi. Nhưng anh ta vẫn cao thủ đấy chứ, gửi mail bằng console chứ không bằng web hay phần mềm đâu nhá! Xem đây.

[sourcecode language=”c”]
mail -s "Hello, world." bob@b12
Bob, could you please write me a program that prints "Hello, world."?
I need it by tomorrow.
^D
[/sourcecode]

13. Già đời trong quản lý (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 anh ta gửi cho Jim mà xem. Đố dám không hoàn thành!

[sourcecode language=”c”]
% zmail jim
I need a "Hello, world." program by this afternoon.
[/sourcecode]

14. Giám đốc điều hành (Chief Executive)

Ha ha ha… anh ta quên tất cả rồi, đến cái email cũng không soạn nổi nữa, lại còn chửi thề với cái máy tính nữa chứ! Chán quá anh ta logout.

[sourcecode language=”c”]
% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout
[/sourcecode]

Thế đấy các bạn ạ! Có bao giờ bạn nghĩ cuộc đời IT mình cũng sẽ “tiến hóa” như thế ko nhỉ??!!
Hi hi hi… chúc bạn vui vẻ!

Dịch và biên tập: Nguyễn Việt Khoa


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

21 thoughts on “Quá trình tiến hóa của một Lập trình viên

    1. Chắc phải hỏi những ai đã trải nghiệm đủ các giai đoạn thì may ra mới rõ?! 🙂

  1. Mình đang ở giai đoạn
    program Hello(input, output)
    begin
    writeln(‘Hello World’)
    end

  2. #include
    void main(void){
    char *message[] = {“A “, “Good “, “Post ”, “!”};
    int i;
    for(i = 0; i < 4; ++i)
    printf(“%s”, message[i]);
    printf(“n”);
    }

  3. lâu lắm rồi e không gặp lại thầy, cảm ơn thầy về bài viết, e nghĩ nó không chỉ vui mà nó là mục tiêu mà 1 dev cần hướng tới 😀

    1. Cũng có thế?! Bài này tớ dịch + phụ họa thêm từ vài năm trước rồi 🙂
      Bạn giải nghĩa thêm nhé?!

  4. mình mới học hết năm nhất, nhưng theo mình thì mình biết đến giai đoạn ra trường, làm lính mới rồi, vậy mà vẫn còn hoang mang lắm, vì thấy nhiều bạn năm nhất mà giỏi lắm, viết được cả game rồi
    nếu ra trường mà chỉ biết đến thế thì liệu có làm nổi gì ko, có xin đc việc ko 🙁

  5. bắt đầu học về lập trình (cntt) từ đâu vậy mọi người
    em là học sinh lớp 12 muốn theo đuổi ngành này nhưng hiện tại có thể nói chỉ là con số 0
    có phải em nên cắm đầu vào học một ngôn ngữ lập trình nào đó cho thành thục rồi mới nghĩ đến những chuyện khác??
    Plz help me!!!

    1. Theo tôi bạn nên bắt đầu với các tư duy về lập trình từ những trang học trực tuyến nổi tiếng như code.org, cocademy.com, …

  6. em có thể bắt đầu theo ngành CNTT (học lập trình) từ đâu đây
    em là học sinh lớp 12 và kiến thức có thể đang là con số 0
    có phải em nên cắm đầu học một ngôn ngữ lập trình nào đó cho thuần thục rồi mới nghĩ đến chuyện khác??
    cho em biết mọi người bắt đầu từ đâu đi….plz help me!!https://www.facebook.com/ilu.ptmL đây là link fb của e

Leave a Reply

Your email address will not be published. Required fields are marked *