October 30, 2007
October 26, 2007
She loves me, she loves me not
Sometime love is complicated to understand. Does she love him, after all?
October 23, 2007
Những vấn đề về tuyển dụng nhân sự của các công ty Công nghệ Thông tin lớn
(Châu Hồng Lĩnh)
http://www.hanoian.com/index.php?option=com_content&task=view&id=47&Itemid=44
Ngày nay, những sinh viên mới ra trường và những người khó tìm việc trong giới Công nghệ Thông tin thường nói về việc được tuyển vào làm cho những tập đoàn tên tuổi khổng lồ trong IT như Microsoft, IBM, Oracle, Google, Yahoo, Cisco … như là giấc mơ một đời người.
Báo chí và những bài viết đần độn dành cho thông tin đại chúng đã làm cho những cuộc phỏng vấn vào các công ty lớn kể trên như là những cuộc phiêu lưu thú vị đầy những khó khăn, thử thách tuyệt vời về tư duy dành cho những lập trình viên trẻ tuổi, thiên tài và nhiều tham vọng.
Nhưng thực tế không phải toàn là màu hồng như những hình ảnh PR do các công ty đó và các tạp chí tay sai của họ cùng bọn bồi bút tạo nên. Thực ra việc tuyển dụng nhân sự vào các công ty khổng lồ có nhiều vấn đề nực cười và lố bịch hơn nhiều so với những hình ảnh họ cố gắng trưng bày ra trước công chúng.
Sau đây là một vài vấn đề chính.
October 22, 2007
Lập Trình Viên – Bạn Sẽ Bị Đào Thải Ngày Mai?
(Nguồn: http://web2vietnam.wordpress.com/)
Thế giới là một cuộc chọn lọc và đào thải không ngừng, nhưng thế giới IT còn khắc nghiệt hơn. Bạn sẽ là người bị đào thải kế tiếp?
1. Cái chết của mô hình Waterfall
Năm 1970, mô hình nổi tiếng và được áp dụng trong qui trình phát triển phần mềm tại phần lớn các công ty hiện nay ra đời: mô hình thác nuớc (waterfall model). Mô hình này là kết quả của sự kết hợp các mô hình sản xuất từ các ngành kỹ thuật khác áp dụng cho công nghệ phần mềm. Nó định nghĩa ra chuỗi qui trình phát triển theo thứ tự từ trên xuống bao gồm: lấy yêu cầu khách hàng, làm thiết kế, phát triển, kiểm định và cuối cùng sẽ bàn giao cho người dùng. Bạn sẽ thấy mô hình này giống hệt với qui trình xây một căn nhà: kiến trúc sư tìm hiểu yêu cầu của chủ nhà, thiết kế căn nhà, đưa cho đội ngũ thi công thực hiện, kiểm tra chất lượng và cuối cùng trao chìa khóa cho người sở hữu.
Năm năm sau, Frederick Brooks phát hiện ra lỗ hổng lớn đầu tiên của mô hình này trong cuốn sách kinh điển về quản trị dự án: The Mythical Man-Month (Bí mật về tháng nhân công). Chắc các bạn làm phần mềm đều biết khái niệm man-month (hay man-day) là thước đo căn bản để tính giá cho việc phát triển phần mềm: đó là công lao động trong một tháng (hay một ngày) của một lập trình viên. Phát hiện nổi tiếng nhất của Brooks là “trong phát triển phần mềm không phải cứ thêm nhân công thì dự án sẽ nhanh hơn theo cùng cấp số“. Vấn đề là do sự mất cân đối trong giao tiếp khi số lượng người tham gia tăng lên.
Nhiều năm qua đi, người ta ngày cảng học hỏi được nhiều hơn về cách tốt nhất để làm một phần mềm và cũng bắt đầu nhận thức được rằng mô hình thác nước là quá cứng nhắc và thiếu thực tế. Không giống như việc bạn xây một căn nhà, ngay khi thiết kế, người ta đã dự kiến được 99% hình thù và chi tiết căn nhà sẽ như thế nào. Một dự án phần mềm hiếm khi được hình dung một cách chi tiết và đúng theo yêu cầu công việc. Chỉ khi đưa vào thử nghiệm trong môi trường thực các vấn đề mới bắt đầu phát sinh và việc thay đổi yêu cầu diễn ra thường xuyên.
Những người “ngoại đạo” thường nghĩ rằng vì phần mềm là “mềm” nên có thể dễ dàng thay đổi chỉnh sửa tùy hứng. Nhưng thực ra phầm mềm cũng giống như bất kỳ một cơ cấu kỹ thuật nào khác (như máy móc cơ khí chẳng hạn), nó cũng có thiết kế và cấu trúc (mà thường lại còn phức tạp hơn các máy móc cơ khí rất nhiều).
Khi yêu cầu công việc thay đổi, việc thay đổi trong phần mềm là tất yếu và trong thế kỷ 21 này các thay đổi lại càng diễn ra thường xuyên và nhanh chóng. Với mô hình thác, việc theo kịp các thay đổi là không thể thực hiện vì vòng qui trình của nó quá dài. Nó giống như việc cứ mỗi lần có bất kỳ thay đổi nào là bạn phải gần như phải phá căn nhà đi và xây lại từ đầu. Bạn có thể hình dung ra được sự tốn kém và bất tiện sẽ lớn như thế nào.
Tóm lại, hai vấn đề lớn nhất của mô hình thác nước là:
-
Mô hình này quá tự tin với giả định rằng chúng ta luôn có thể làm được một hệ thống hoàn hảo ngày lần đầu.
-
Phầm mềm ngày càng khác với các cơ cấu kỹ thuật cứng nhắc mà giống như các cơ thể sống – nó phải tiến hóa để thích hợp với môi trường. Đây chính là tiền đề cho một phương thức phát triển mới chiếm lĩnh ưu thế trong những năm gần đây: phương thức phát triển linh hoạt (Agile Development Methods).
2. Phát triển linh hoạt – Phần mềm tiến hoá
Phương thức phát triển phần mềm linh hoạt bắt đầu xuất hiện vào đầu những năm 90 với mục tiêu là phần mềm phải có khả năng biến đổi, phát triển và tiến hóa theo thời gian mà không cần phải làm lại từ đầu. Phương thức này tập chung vào tính đơn giản: tạo ra một phần mềm thật đơn giản đáp ứng đúng yêu cầu của khách hàng hôm nay và sẵn sàng cho những thay đổi vào ngày mai.
Phương thức phát triển này dựa trên hai kỹ thuật đáng lưu ý nhất:
- Refactoring: Giống như vệc bạn trang trí lại căn nhà mà không cần phải cơi nới, xây thêm hay xây lại, “refactoring” (xin lỗi, tôi chưa tìm được từ tiếng Việt nào thích hợp để dịch) cho phép chúng ta chuyển đổi mã lệnh để làm cho ứng dụng tốt hơn, đẹp hơn mà không phá hỏng nó (các bạn có thể tìm hiểu thêm về kỹ thuật này trong cuốn Refactoring: Improving the Design of Existing Code).
- Developer Testing: Phần mềm do chính các lập trình viên được kiểm định thay vì do các nhóm tester độc lập làm. Công cụ là “unit test”, cho phép từng phần nhỏ của phần mềm được kiểm định ngay trong quá trình phát triển trước khi lắp ghép vào ứng dụng. (xin xem thêm cuốn Test Driven Development: By Example)
Một trong những yếu tố khác khiến cho phương thức phát triển linh hoạt có thể cất cánh là sự lớn mạnh của các ngôn ngữ kịch bản (scripting language) như PHP, Python và gần đây là “viên hồng ngọc” Ruby. Tính linh hoạt của các ngôn ngữ này khiến cho việc thay đổi phần mềm dễ dàng hơn nhiều so với các ngôn ngữ tiền bối. Thêm vào đó là việc cộng đồng mã nguồn mở đang cung cấp vô số các thư viện dựng sẵn, đáp ứng cho việc phát triển nhanh, triển khai nhanh, thường xuyên đưa ra các cập nhật mới (release soon, release often) theo đúng tinh thần của phương thức phát triển linh hoạt. Phần mềm ngày nay không phải được nâng cấp hàng năm mà là hàng tuần, thậm chí hàng ngày.
3. Tương lai phát triển phần mềm: Chỉ cần một vài “nghệ nhân”
Digg, del.icio.us… các “phần mềm” trị giá hàng chục triệu, hàng trăm triệu USD chỉ do một hai người thực hiện. Facebook, mạng xã hội trị giá nhiều tỷ USD, cũng chỉ do một nhóm nhỏ làm ra.
Bí quyết phát triển các phần mềm có giá trị nhất ngày nay là chỉ cần một vài người có kỹ năng, nhiều nhiệt huyết. Với vài cá nhân xuất sắc trang bị các ngôn ngữ lập trình hiện đại và phương thức làm việc mới, một nhóm nhỏ có thể làm ra những sản phẩm tốt hơn cả một “đạo quân” lập trình viên trước kia.
Tổng kết lại, có thể thấy những thay đổi sẽ diễn ra trong các năm tới đây:
- Những kỹ sư phần mềm có trình độ cao, có nhiệt huyết và tham vọng sẽ là những cỗ máy làm ra tiền.
- Những lập trình viên không có kỹ năng đặc biệt có lẽ nên tìm việc làm ở lĩnh vực khác.
- Những thay đổi mà chúng ta đang thấy ở thị trường phần mềm đại chúng sẽ diễn ra ở các công ty lớn.
- Đưa phần mềm cho nước ngoài gia công (outsourcing) sẽ ngày càng ít tính kinh tế hơn.
- Khoa học máy tính vẫn là lĩnh vực cạnh tranh và đòi hỏi cao.
4. Tương lai của các LTV Việt Nam
Nhìn các xu hướng đang diễn ra trên thế giới, có thể thấy rằng các dự án cần hàng trăm người sẽ ngày càng ít đi. Theo tính toán của Mỹ, chi phí outsourcing đang gia tăng (từ 1/10 lên 1/3 so với giá thành sản xuất trong nước) làm cho việc đưa phần mềm ra nước ngoài gia công ngày càng kém hấp dẫn. Ngoài ra, do khó khăn về giao tiếp và chệnh lệch về trình độ, chất lượng các dự án này cũng không được như mong muốn và rất khó bắt kịp các thay đổi của khác hàng.
Các LTV luôn có xu hướng muốn gia nhập các công ty lớn, tham gia vào các dự án lớn. Nhưng có thể đấy sẽ cách tiếp cận sai lầm vì:
- Tương lai của các công ty làm xuất khẩu phần mềm dạng này đang ngày càng bấp bênh.
- Bản thân các LTV thường không cải thiện được trình độ vì các công việc được giao ít cần kỹ năng cao hay tính sáng tạo.
Tất nhiên, nhìn thẳng vào thực tế, sự thay đổi sẽ không diễn ra ngay trong nay mai — mô hình thác nước và các biến thể của nó vẫn sẽ được dùng, người ta sẽ vẫn outsourcing. Nhưng mọi thứ sẽ ngày càng khó khăn hơn, đòi hỏi cao hơn và chỉ khi bạn thực sự chuẩn bị tốt cho sự thay đổi thì mới tránh được việc bị đào thải.
Đáng lo ngại nhất là các LTV Việt Nam còn xa mới theo kịp các đồng nghiệp ở các nước như Ấn Độ hay Ireland cả về mặt tổ chức lẫn kỹ năng. Chúng ta quá chú trọng tới các công nghệ độc quyền của Microsoft, Oracle hay IBM và hiểu biết về mã nguồn mở là một lỗ hổng lớn. Không may, có thể ngày mai công ty sẽ nói lời chia tay với bạn chỉ vì bạn không có kinh nghiệm gì về Python hay cơ sở dữ liệu MySQL. Như tựa một bộ phim “Đó là một tương lai không quá xa” (Not too far future), xin hãy suy nghĩ lại con đường của mình.
(theo ReadWriteWeb)
October 14, 2007
Copy of machoi’s blog: “Những người đàn ông tôi yêu”
Những người đàn ông tôi yêu
Tôi đã yêu một chàng trai, người mà tôi không biết tên. Mỗi sáng tôi đều thấy anh dìu một người phụ nữ lớn tuổi (mà tôi đoán là mẹ của anh) trên con đường đó, ân cần và dịu dàng giúp bà tập đi. Tôi đã yêu quý anh biết bao, bởi ánh mắt tin cậy và yêu thương mà mẹ anh đã dành cho anh, bởi nụ cười tươi sáng mà anh tặng cho mẹ. Hai năm rồi, giờ thì tôi đã không còn làm nơi cũ, không đi con đường đó vào mỗi sáng sớm, và chắc mẹ anh cũng đã lành bệnh (mong là thế), nhưng tôi vẫn luôn nhớ tới anh. Tôi ước gì sau này mình cũng có thể nuôi dạy được một người con trai như thế: ân cần, hiếu thảo, dịu dàng và vững trãi. Để có thể vui vẻ tựa vào tay con đi suốt dọc con đường vắng, sáng mùa đông mù sương. Và biết đâu điều đó sẽ lại tình cờ làm trái tim của một cô gái nào đó bớt giá lạnh.
Tôi cũng đã yêu một chàng trai khác, một chàng trai trẻ. Trên đường, vào ngày thi đại học năm đó, tôi chú ý đến một bác lớn tuổi đang bối rối chữa mãi chiếc xe đạp tuột xích. Bối rối và lo lắng, thật giống bố tôi ngày xưa, cái hồi đưa tôi đi thi đại học, vượt đèn đỏ rồi bị công an thổi phạt. Thật thú vị khi phát hiện ra rằng các bậc cha mẹ giống nhau một cách kỳ lạ vào một lúc nào đó, trong một hoàn cảnh nào đó. Tôi dừng xe lại định giúp đỡ, nhưng mà không kịp, con trai của bác ấy đã vẫy được một chiếc xích lô và bế bổng cả bố lẫn chiếc xe lên. Tôi thật sự yêu ánh mắt em vào lúc đó, quyết đoán và mạnh mẽ, đúng là một người đàn ông thực sự, chắc rằng em rồi sẽ rất thành công trên đường đời. Nhìn gương mặt nhẹ nhõm và tin cậy của cha em sau đó, tôi thật hâm mộ ông biết bao. “Con cái là tài sản quý giá nhất của cha mẹ” và người bố mà tôi gặp trên đường hôm đó thật là giàu có.
Và tôi càng yêu hơn, yêu quý rất nhiều một người đàn ông, người đẹp trai nhất gia đình tôi. Người sẽ mắng mỏ ghê gớm vào ngày thứ 4 khi tôi buột miệng nói rằng tôi thích nuôi thêm 1 con mèo, để rồi 6h sáng chủ nhật dựng tôi dậy để xem một con mèo mới mua. Cái con mèo bẩn thỉu và hôi như một con gà ấy hóa ra lại rất đẹp. Người đàn ông mang về 3 con cá sau một chuyến công tác, 1 con cho Nhím, 1 con cho mẹ, còn lại phần đuôi ngon thì cho Chi, ngày xưa con Chi đâu có sướng như con Nhím bây giờ.
Tôi yêu thực sự, yêu nhất một người đàn ông nhỏ, người vẫn cười với tôi mỗi ngày. Người đàn ông có đôi mắt đẹp tuyệt trần và thơ ngây vô cùng. Người luôn luôn hào phóng và lịch sự tặng cho tôi nụ cười không răng đẹp nhất trên đời. Nụ cười đẹp nhất, thật thà nhất, không vụ lợi nhất, hoàn hảo nhất mà tôi nhận được trong ngày. Bé con yêu quý, rất vui được làm hàng xóm với cháu.
Mọi thứ đều có giới hạn, bao gồm cả lòng yêu thương, ghen ghét, thương hại hay thù hận. Tình yêu của tôi cũng có giới hạn, tôi chẳng thể yêu cả thế giới, nhưng những người đàn ông này thì không thể không yêu. Phải không bạn?
Cuộc sống còn rất nhiều điều tốt đẹp, nhiều người để yêu thương, tôi vẫn luôn yêu cuộc đời này, yêu lắm.
Và cả bạn nữa, tôi cũng yêu bạn, bằng chứng là bạn có thể đọc được những dòng chữ tôi viết. Thật đấy, tôi có thể hứa với bạn bằng tất cả những gì tôi có là tôi yêu quý bạn thật lòng. Thật sự và mãi mãi cho đến khi bạn ghét tôi.
Dạo này tâm trạng của mọi người xung quanh có vẻ rất tồi tệ. Chán nản và mệt mỏi, thất vọng và đau khổ, thậm chí tuyệt vọng …
Mùa thu luôn là mùa của tâm trạng, thời tiết thì quá đẹp và buồn, công việc chất chồng chất đống, thiên hạ thì đám cưới ầm ầm trong khi mình lại cô đơn lẻ loi, bảo sao không tâm trạng cho được.
Tôi cũng đang mệt mỏi, chán nản, thất vọng, cảm thấy mình yếu kém và ngu ngốc. Nhưng tôi sẽ nghĩ tới những điều tốt đẹp mà tôi có, phải xốc lại tinh thần, phải tiếp tục sống vui vẻ chứ.
Không có kẻ thù nào nguy hiểm bằng sự cô đơn và thất vọng.
Hãy sống vui vẻ, yêu đời và yêu người các bạn thân mến. Dù trái tim tôi nhỏ bé, nhưng vẫn luôn có chỗ dành cho bạn.
October 11, 2007
Gía mà được chết đi một lúc
(Nguyễn Thế Hoàng Linh)
giá mà được chết đi một lúc
chắc bình yên hơn một giấc ngủ dài
nếu được xuống địa ngục thì càng tốt
lên thiên đường sợ chả gặp ai
giá mà được chết đi một lúc
tỉnh dậy xem người ta khóc hay cười
và xem thử mình sẽ cười hay khóc
làm ma có sướng hơn làm người?
giá mà được chết đi một lúc
nằm im cho cuộc sống nhỏ tuôn trào
nếu người ta tống ngay vào nhà xác
cứ thế mà chết cóng cũng chẳng sao

