Đôi điều về nghề lập trình.


Những lập trình viên thường gắn với hình ảnh những chuyên gia tin học "cá biệt", họ chống lại cái gọi là "những bộ com lê" (thường gắn liền với những bộ đồng phục trong các doanh nghiệp, theo cả nghĩa đen lẫn nghĩa bóng - chỉ dành cho giới quyền uy), sự điều khiền, tuân theo luật lệ.
Đọc câu này, lại thấy kết tên nào viết đúng quá. Bởi thế, ai bảo dân lập trình là những thằng chỉ thích bốc đồng, nổi loạn và tự do tuyệt đối, quả thật k sai chỗ nào.
Một lập trình viên, là sự pha trộn lung tung của 25% máu điên, 25% lười và nhếch nhác, 25% cẩu thả, nóng vội, 15% thích lệ thuộc, và chỉ có 10% tốt là sự chuyên tâm.
Dân lập trình, ghét những cái tôi quá nổi bật, khinh thường những newbie, và luôn phàn nàn về những tên tiếng đi trước hình (ảnh hưởng của việc run 1 game cấu hình cao trên 1 máy cấu hình cùi mía).
Viết 1 phần mềm, nổi tiếng, và được mọi người biết đến. Ai chập chững bước vào thế giới của Lập Trình Đạo, đều có những mơ ước giống như thế. Nhưng khi đã lún sâu vào nó, đã từng lăn trái lộn phải vì 1 bug điên khùng nào đó, thì đều đi theo con đường ẩn cư, bế quan. Lí do là, anh ta sẽ cảm thấy kiến thức không bao giờ đủ, và cũng ko bao giờ dám vỗ ngực xưng tên. Chỉ thầm lặng làm việc và hưởng thụ những gì mình đã làm. Sam, hay Samuel Johnson là những người ẩn cư. Ít ai biết, tên của họ luôn gắn liền với những dự án lớn, nhưng chữ ký của họ nằm rất lặng lẽ ở 1 góc nhỏ, danh sách những thành viên dự án. Thậm chí, đôi lúc, người ta cũng không biết họ là ai. Đọc những cuốn sách của SAm, có lúc lại nhầm tưởng, SAM là tên của nhà xuất bản. Đến 1 lúc nào đó, khi đã giác ngộ, lập trình viên có thể tâm niệm rằng, quan trọng là thực lực, chứ không phải danh tiếng.
Nhớ năm 2, có lần đọc 1 bài ngắn trên mạng, nói về những nguyên tắc sống của lập trình viên. Giờ, càng già, càng coding, lại càng thấm thía.
Một lập trình viên sẽ :
+ Đặt những nguyên tắc lên hàng đầu. Những nguyên tắc với anh ta luôn tuyệt đối. Những sai lầm sẽ luôn dẫn đến 1 kết luận, rằng chính anh ta đã phạm vào những nguyên tắc hoặc kẻ hở của nó. Bạn có thể phê bình cách xử lý , có thể phủ nhận thành quả của anh ta, nhưng đừng dại dột đụng chạm tới vấn đề đúng sai của những nguyên tắc mà anh ta đặt ra. Sẽ phiền phức lắm đấy
+ Truy ngược mọi vấn đề để tìm nguyên nhân. Đó chính là phép toán đã ăn sâu vào tiềm thức của lập trình viên. Bằng cách này, anh ta có thể giải quyết nhanh vấn đề, bằng cách kết nối mọi nguyên nhân từ 1 kết quả. Sau đó sàng lọc, và chọn ra 1 cách giải quyết từ những nguyên nhân đó. Nhưng hệ quả của việc này, anh ta sẽ luôn là người nhận biết sau cùng 1 vấn đề nào đó, nên sẽ luôn thiếu chủ động, dù rằng cách giải quyết sẽ nhanh và dứt khoác hơn người khác. Nghe giống "nước tới chân mới nhảy vậy".
+ Cuồng tín và căm ghét tín ngưỡng. Cuồng tín ở đây ám chỉ đến sự cố chấp của 1 lập trình viên. Anh ta có thể bỏ hàng tháng, thậm chí vài năm chỉ để chứng minh quan điểm của mình không sai, thay vì chỉ cần bỏ nó đi, và xem xét ý kiến của người khác. Nói như thế, ko có nghĩa là họ không biết tiếp thu. Anh ta sẽ nghe ý kiến của bạn, kiểm tra, xác thực nó, và nếu nó chính xác, ý kiến của bạn sẽ trở thành 1 thứ rất hữu ích. Nhưng việc tiếp nhận ý kến và thay đổi quan điểm, sẽ là 2 việc hoàn toàn phân biệt. Câu trả lời thường gặp khi ai đó nhận xét về 1 quan điểm của lập trình viên, bác bỏ nó, là : "anh đúng, nhưng tôi không sai".
Vì cuồng tín, nên sẽ cực kỳ căm ghét tín ngưỡng. Anh ta thà tin rằng bản thân mình là chúa trời, còn hơn phải cầu nguyện với 1 nhân vật nào đó mà anh ta ko nhìn thấy.

+ Cẩu thả nhưng Siêng năng. Nếu bạn đưa anh ta 1 bản phát thảo, 1 source, anh ta sẽ xem rất vội vàng, không cần kiểm tra, hiển nhiên xem nó là chính xác tuyệt đối, và bắt đầu coding hoàn toàn dựa trên chúng. Và thế là, kết quả anh ta sẽ tốn 1 thời gian khổng lồ để xử lý những vấn đề không tương thích, hoặc những lỗi lúc runtime không do anh ta gây nên.

(Vì lý do này, designer và programmer luôn là kẻ thù truyền kiếp của nhau, và tester là người hứng chịu mọi hậu quả).

Có 1 bài học để xử lý rủi ro của 1 lập trình, được viết trên Wal-Mart, rằng : "nếu bạn gặp rắc rối với việc xây dựng chương trình dựa trên 1 nền tàng của hãng thứ ba. Cách giải quyết : xóa đi, hoặc thay đổi 1 hệ thống nền khác, hoặc tự viết lại hệ quản trị csdl của bạn. Có đến 92% ý kiến đồng ý cách thứ 3. Nghe giống như mua 1 chiếc ô tô về, sau đó cảm thấy việc lắp thêm 1 bộ phận nitro sẽ làm thay đổi kết cấu xe, cách giải quyết, -> tự chế ra 1 chiếc xe khác có chỗ gắn bộ phận đẩy nitro.

+ Hình thức không quan trọng. Một programmer sẽ lược bỏ tất cả những thứ thuộc về hình thức, và tập trung vào việc xây dựng cấu trúc bên trong. Đa phần , anh ta có thể chôm chỉa 1 bản thiết kế nào đó, 1 bộ thư viện đồ hoạ, 1 engine, hoặc bất kỳ cái gì để trang điểm cho sản phẩm. Việc viết lại 1 thứ vớ vẩn như thế là việc điên rồ. Và vì thế, lập trình viên lại tự phân làm 2 nhóm : coding và design programming. Dù cả 2 đều làm cùng 1 việc, là coding. Nhưng dân coding không bao giờ xem 1 desiner coding là dân lập trình chính thống. Họ gọi đó là máu lai.

+ cuối cùng, 1 lập trình viên luôn tin tưởng rằng, mọ thứ đều có thể hệ thống theo những quy tắc lập trình. Anh ta có thể nhìn mọi vấn đề, đặt cho nó những quy ước, và lập trình nó.
Trên c-sharp.corner, có lần, 1 thành viên đã hỏi 1 câu rất ngô nghê : "Liệu chúng ta có thể hệ thống hóa một miếng pizzar hay không ?" . Có đến 22578 reply vào cuối tháng 5-2008, 12 ngày kể từ khi câu hỏi được nêu, bàn luận về vấn đề "phức tạp và bao quát " này. Nhớ, có 1 tên, đã không do dự và viết hẳn 1 soft để chứng minh mới quan hệ giữa hành lá và hạt mè là những calss có cùng 1 interface.

Suy nghĩ của 1 lập trình viên ảnh hưởng trực tiếp đến lối sống của họ. Muốn hiểu rõ, dể thôi, cứ tìm 1 lập trình viên và yêu anh ta. Bạn sẽ thấy, việc làm chủ 1 lập trình viên giống chơi 1 horror - game vậy.
Theo định nghĩa của Hollywood, 1 lập trình viên được biết đến với 1 lon coca, 1 bánh pizza, 1 cái bụng phệ và 1 căn phòng đầy rác. Máy tính của họ sẽ ngổn ngang những thứ hổn độn. Băng keo, sách, lon coca rỗng, gamepad, CD, và những mẩu bánh vụn, cùng hàng lô những thứ đồ quái dị.
Mình không muốn bàn thêm về vấn đề này nữa. Vì nó sẽ khiến một người nào đó của hội bảo vệ thiên nhiên, gọi ngay 1 xe tuần tiểu mà họ thấy gần nhất trên đường.
Lập trình viên có những nguyên tắc nhất định. Gọi là " Những chỉ lệnh tuyệt đối của Nostramas", bao gồm 10 quy tắc, được phổ biến rộng rãi bên dưới thế giới của newbie, rockie, partner out of company, và thường dân ^^ .
1. Programmer heaven had not government officials
Thiên đường của lập trình viên không có chổ cho nhân viên công chức
2. Fast food is the best thing that people found
Thức ăn nhanh là phát minh tuyệt nhất của con người
3. Get over the problem, the best way : replace it by another
Cách giải quyết 1 vấn đề tốt nhất, là thay thế nó bằng 1 vấn đề khác
4. Playing game will help you do anything
Chơi game là phương thuốc tuyệt nhất
5. Most Important for newbie growing, let's them to live alone
Cách hay nhất để huấn luyện 1 tay mơ, là cứ để mặc họ.
6. Beginning.Doing.Thinking.Fixing.[Deleting] / [Beginning.Doing.Thinking.Fixing]
Các bước để giải quyết 1 dự án : Tiến hành. Suy nghĩ. Sửa chữa. Nếu thất bại, xóa nó và trở lại bước 1
7. Money is your slave, and you are boss who don't need them
Tiền là nô lệ của bạn, và bạn không cần chúng
8. Lazily is not bad things. Let's play as a child, and work as an old men
Lười biếng không xấu
9. Stolen is not bad things. Before thought a new approach, remember search something like that on google
Chôm chĩa không xấu. Trước khi nghĩ đến 1 phương án mới, hãy tìm nó trên google
10. You're a hero. Proud about it.
Tự hào mình là một anh hùng
Yeh. I proud of myself, because I'm a programmer
Sau một thời gian mình nhận thấy nghề lập trình chỉ dành cho những ai yêu thích những cái mới, muốn khám phá, muốn làm chủ được những công nghệ tiên tiến nhất. Còn những ai chỉ kiếm 1 cái nghề để kiếm tiền thì không nên theo nghề lập trình viên thì không nên theo, các bạn nên theo một số lĩnh vực khác như quản trị mạng .... Nhưng đó là tôi khuyên bạn vậy thôi, lựa chọn là ở các bạn. Bạn hay nêu cảm nhận về công việc này sau khi xem một số bức ảnh sau:

0 comments:

Đăng nhận xét

Có nhận xét mới

Like