Archive for the ‘Kinh nghiệp lập trình’ Category

Lời khuyên cho các lập trình viên trẻ

22 July, 2008

Đây là lời khuyên của tôi dành cho các bạn lập trình viên trẻ, đang đứng trước ngưỡng cửa học vấn và yêu thích lập trình.

  1. Giỏi tiếng Anh
    Điều kiện tiên quyết. Bạn không thể tư duy lập trình tốt nếu không có tư duy về ngôn ngữ. Hơn nữa, tiếng Anh là ngôn ngữ chính trong giới lập trình.
  2. Hãy chọn một ngôn ngữ và nền tảng nào mang lại kết quả nhanh nhất
    Đừng bắt đầu với những ngôn ngữ cấp thấp. Hãy chọn ngôn ngữ mang lại cho bạn kết quả nhanh nhất cũng như mang lại hứng thú cho bạn. Bạn có thể chọn Python.
  3. Tham gia các diễn đàn và cộng đồng trực tuyến
    Bạn sẽ học hỏi được nhiều. Hãy chủ động và thông minh khi thảo luận.
  4. Đừng dây dưa vào các cuộc tranh cãi chính kiến trong lập trình
    Phí thời gian vô ích trong khi bạn có thể dùng nó để viết nên những phần mềm có ích.
  5. Biết kiên nhẫn, tự ý thức và khiêm tốn
    Biết những gì bạn biết. Biết những gì bạn chưa biết. Đừng thất vọng về những gì mình chưa biết, bạn sẽ tiến bộ nếu tiếp tục học.
  6. Học thêm các công nghệ cùng với học lập trình
    Học thêm về cơ sở dữ liệu, XML, các giao thức mạng, các API,… Hãy biết thêm nhiều thứ khác bổ trợ cho việc viết code.
  7. Đừng bỏ qua lý thuyết
    Không thể đi lên khi không có nền tảng.
  8. Đừng mua các cuốn sách “For Dummies”, “21 ngày”
    Bởi vì khi đó bạn đã thừa nhận mình là “dummy”. Những cuốn sách “mì ăn liền” thế này sẽ không giúp được gì nhiều cho tư duy của bạn.
  9. Mua sách về các ngôn ngữ lập trình khác
    Để biết thêm về xu hướng cũng như điểm khác nhau, điểm hay, dở của các ngôn ngữ lập trình.
  10. Mua các cuốn sách về công nghệ và lập trình tổng quát
    Nó sẽ dạy cho bạn cách tư duy để hiểu rõ hơn về những gì mình đang làm.
  11. Nếu có thể, tìm một người cố vấn giàu kinh nghiệm
    Điều này sẽ rất có ích. Tuy nhiên hãy trân trọng thời gian của họ và của mình, đừng hỏi những câu mà bạn có thể tự tìm ra.

Thuyết trình – Có nhiều thứ để học

6 May, 2008

 

Một trong những điểm yếu của sinh viên Việt Nam là khả năng nói trước đám đông rất kém. Điểm yếu này càng thể hiện rõ đối với những người có cơ hội du học tại các nước phương Tây, nơi coi việc thuyết trình là một điều hết sức bình thường. Cộng thêm khả năng ngôn ngữ hạn chế, việc thiếu kinh nghiệm khiến cho sinh viên Việt Nam rất “ngán” phần thuyết trình. Trong bài này, tôi sẽ tóm tắt lại một số điều mà tôi đã tiếp thu được, cũng như từ kinh nghiệm bản thân khi tham gia một số buổi thuyết trình.

 

 

 

Việc thuyết trình, không như nhiều bạn thường nghĩ chỉ là việc nói một cách lưu loát, rành mạch. Tất nhiên, đó là hai yếu tố quan trọng nhất – nhưng những yếu tố khác cũng quan trọng không kém, bao gồm cách ăn mặt, phân chia nội dung, cách xắp xếp thứ tự người trình bày, chuẩn bị PowerPoint (nếu bạn dùng – và thật sự là nên dùng) và thậm chí cả việc nhóm sẽ đứng bên nào.

Read the rest of this entry »

10 Blogs hữu ích cho Web Developer

23 April, 2008

Làm thế nào để biết được thế giới này đang có những gì, và cần gì?

Làm sao để lựa chọn một công nghệ web cho dự án mà mình đang tiến hành?

Dùng media player nào? Flex hay Silverlight?

Dùng ngôn ngữ nào? Java, .Net hay PHP?

Và còn rất nhiều câu hỏi mà để tìm ra câu trả lời thì cần có một khoảng thời gian gắn bó, hay chỉ đơn giản là tìm kiếm trên một số websites hữu ích. Bạn chọn cách nào?

Với tôi thì vấn đề ngôn ngữ là dễ dàng, vì tôi chỉ chọn Java। Nhưng dùng frameworks nào? JSP, Servlet, Struts, JSF, Spring MVC… thì cũng khá là đau đầu.

Các blogs sau sẽ cung cấp một số kiến thức bổ ích về thế giới Internet.

 

1. Smashing Magazine

Smashing Magazine là một trong những nơi để tìm một mẫu thiết kế hay ít nhất là ý tưởng. Mỗi bài viết là một bìa học về thiết kế web và phát triển, và là một blog không thể thiết đối với một web designer.

2. Ajaxian

Có ai đó nói rằng: “nếu bạn biết Javascript, thì bạn đã biết 80% về Ajax”. Thì Ajaxian phần lớn các bài viết nói về Javascript, và các thư viện Javascript như Dojo hay JQuery. Cường độ post bài là 5 đến 10 mỗi ngày, thì đây là một trang đáng xem đối với các Web 2.0 Developer.

3. ReadWriteWeb

Mọi thứ diễn ra trong thế giới internet, bạn đều có thể tìm thấy trên ReadWriteWeb. Nếu bạn là một nhà kinh doanh trên internet hay xây dựng websites, thì đây là blog sẽ đem đến cho bạn một kiến thức bổ ích cho công việc. Được xây dựng một cách bài bản, với số lượng bài đều đặn, blog này đang có một thứ hạng cao với PC World’s Top 100 và Technorati’s Top 20.

4. Adam Bien’s Blog

Bài viết là những nhận xét về kỹ thuật, vấn đề mắc phải, tutorial về JavaEE và mọi thứ liên quan đế Sun. Là một địa chỉ không thể thiếu đối với những Java EE Developer.

5. Flex Examples

Flex là một framework đang được dùng khá phổ biến trong Rich Internet Application – Nói đến các ứng dụng web có tính năng và đặc tính như một ứng dụng trên máy desktop- (RIA). Đây là một framework hay, nhưng cũng có nhiều thứ khó có thể làm theo ý mình. Flex Examples sẽ giúp bạn giải quyết các vướng mắc khi sử dụng bằng các tutorials nhằm giải quyết các vấn đề. Nếu bạn là một Flex developer, bạn không thể bỏ qua blog này.

6. Vitamin

Được viết theo kiểu “how-to” tutorials chung quanh các vấn đề về thiết kế và hiện thực websites. Mỗi tutorial được trình bày một cách rỏ ràng theo một ngôn từ dễ hiểu. Họ được nhận giải SXSW Award 2007 Best Education Resource – nơi tốt nhất để học tập.

7. Agile Ajax

AJAX đang đóng một vai trò lớn trong phát triển web. Agile Ajax viết về các tutorials và các đoạn code hữu ích cho Javascript developer. Bên cạnh tutorials, họ còn có các bình luận về sách. 

8. Slashdot

Đây cũng là một trong những blog chuyên về các tin tức công nghệ rất được yêu thích. Bạn cũng có thể tìm thấy những comment rất thẳng thắn và thú vị ở đây. 

9. TechCrunch

Với xứ mệnh tìm kiếm các thông tin và bình luận về các công ty và sản phẩm internet. Tìm ra xu hướng và các công ty hứa hẹn đem đến một nét mới cho internet. Người sáng lập ra blog này là luật sư Michael Arrington. Những mối quan hệ của Arrington đã mang tới cho blog những tin tức mới nhất trước khi phần còn lại của thế giới biết đến. 

10. A List Apart

Những bài viết mà tôi mong chờ ở họ bao gồm web-standards, best practices, accessibility, và usability. Những bài viết của ALA có chất lượng rất tốt và họ chỉ post khoảng 2 bài một tháng, nhưng cũng đáng để chờ. Được viết bởi những người có uy tín trong ngành, trong đó có Eric Meyer và Jeffrey Zeldman

 

Hi vọng các bạn có thể học được nhiều điều từ các websites trên. Và tất nhiên, sự thiếu nếu có thêm một site nào hay thì có thể chia sẽ trong comment

Lập Trình Viên – Bạn Sẽ Bị Đào Thải Ngày Mai?

27 March, 2008

 

 

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à:

  1. 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.

  2. 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:

  1. 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).
  2. 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)

Đôi điều về quá trình làm luận văn

15 January, 2008

Để tốt nghiệp chúng ta có hai đường để lựa chọn: học ba môn chuyên đề hoặc làm luận văn tốt nghiệp. Tuy nhiên chọn một con đường thích hợp không phải dễ. Ngoài những sinh viên được sự hướng dẫn của người quen, hay chủ động định hướng trong học tập, có không ít bạn còn thụ động. Tôi muốn cung cấp cho các em một số những kinh nghiệm thông qua những vấp ngã của chính bản thân mình.

  1. Lời mở đầu
    Trong quá trình học thuật bên cạnh trình độ về chuyên môn, mức độ thành công của chúng ta còn phụ thuộc vào việc bản thân có lanh lợi, tháo vát và quyết đoán hay không. Ngoài những sinh viên được sự hướng dẫn của anh chị, hay có khả năng chủ động nắm bắt, định hướng trong quá trình học tập, còn có không ít các sinh viên học trong hoàn cảnh thụ động, tới đâu lo tới đó. Bản thân tôi mới đây thôi cũng đã từng nằm trong cái số không ít đó. Với sự quan tâm dành cho những người đồng cảnh, tôi muốn cung cấp cho các em một số những kinh nghiệm thông qua những vấp ngã của chính bản thân mình. Vấn đề đầu tiên tôi muốn đề cập là quá trình làm luận văn.
  2. Nên hay không nên làm luận văn ?
    Trước khi trả lời câu hỏi này có lẽ nên nói một chút tới quy định tốt nghiệp của khoa công nghệ thông tin trường KHTN. Bắt đầu từ sinh viên khóa 2001, để tốt nghiệp chúng ta có hai đường để lựa chọn như sau:

    § Học ba môn chuyên đề (Một chuyên đề bắt buộc tùy từng chuyên ngành có thể là Chuyên Đề HTTT, Chuyên Đề CNPM, Chuyên đề MMT, hay Chuyên đề CNTT và hai chuyên đề tự chọn trong ba chuyên đề là: Chuyên đề Java, Chuyên đề Oracle, Chuyên đề đồ họa ứng dụng).

    § Làm luận văn tốt nghiệp. Với hướng đi thứ nhất mọi người đều có thể đi, còn với lựa chọn thứ hai chỉ dành cho những sinh viên có điểm chuyên ngành đạt khá trở lên, đủ số tín chỉ chuyên ngành yêu cầu (khoảng 62), chọn từ trên xuống tùy theo số lượng giáo viên hướng dẫn, số lượng đề tài.

    Một số ngoại lệ so với quy định: Theo tôi được biết nếu bạn không thể đáp ứng những yêu cầu trên mà lại có niềm đam mê nghiên cứu khoa học, muốn theo đuổi ý tưởng về một đề tài nào đó, bạn có thể chứng minh để được một giảng viên nhận bảo lãnh và bạn vẫn có thể làm luận văn. Ngoài ra các bạn còn có thể làm luận văn thuộc các chuyên ngành khác với chuyên ngành bạn theo học với một số điều kiện kèm theo.

    Bây giờ chắc bạn đã nắm được quy chế vậy vấn đề đặt ra (giã sử như bạn đủ điều kiện làm luận văn) lúc này là nên học để đi thi hay làm luận văn. Mọi con đường đều dẫn tới La mã, tuy nhiên chọn một con đường thích hợp hơn không phải dễ. Với bản thân tôi thì vì bâng khuâng đứng giữa đôi dòng nước bí thế quá nên làm liều chọn cả hai. Có rất nhiều ý kiến khác nhau về vấn đề này, tuy nhiên theo tôi biết đa phần chọn làm luận văn vì làm luận văn điểm cao (thường >8), làm luận văn dù sao cũng có thế hơn đi thi, làm luận văn sẽ có cơ hội việc làm cao hơn … Ôi thôi đủ lý do, nhưng đây không phải là những lý do cơ bản vì thực chất không phải điểm luận văn cao mà những người có luận văn được bảo vệ đã phải trải qua quá trình sàn lọc, đánh giá của giáo viên hướng dẫn rồi giáo viên phản biện do vậy khi vào tới vòng trong thì đương nhiên họ sẽ có điểm cao. Còn những luận văn điểm không cao thì đều bị loại không cho phản biện rồi còn đâu nữa. Một minh chứng sống cho điều này là bản thân tôi một người bơi trên cả hai dòng nước. Mặc dù luận văn của tôi được ra bảo vệ trước hội đồng và được đánh giá loại giỏi nhưng điểm các môn chuyên đề của tôi vẫn cao hơn. Ngoài ra nếu nói làm luận văn được đánh giá cao hơn đi thi thì điều này chỉ đúng nếu bạn là người thật sự xuất sắc, bạn muốn được giữ lại trường, muốn tiến xa hơn trên con đường học thuật. Chứ còn khi bạn xin việc dù bạn có làm luận văn hay không bạn đều phải trầy da tróc vảy chứng minh bản lĩnh hơn người của mình thôi. Đó là ý kiến dư luận còn riêng với cá nhân tôi thì nhận thấy rằng việc lựa chọn này tùy thuộc vào mỗi người mà không có quy tắc chung nào. Do vậy tôi muốn phân tích những ưu điểm cũng như khuyết điểm của mỗi hướng rồi tùy vào đó mà các bạn có sự lựa chọn thích hợp với mình.

    § Học Chuyên Đề: các môn chuyên đề đều mang tính thực hành, công nghệ, do vậy sẽ rất thú vị. Nếu chuyên tâm bạn sẽ gặt hái được nhiều điều qua những môn này. Tuy nhiên phải nói rỏ là chủ yếu bạn cũng tự thực hành, tự nghiên cứu là chính chứ không thu được gì nhiều từ thầy cô ngoài những kiến thức lý thuyết căn bản và sự định hướng. Chi phí bạn phải trả cho các môn chuyên đề cũng giống như các môn học bình thường khác. Theo nhận xét của tôi nếu bạn có một nội công tương đối vững, đơn giản nghĩa là lên được tới năm tư nhờ vào khả năng của chính bạn thì việc học các môn chuyên đề khá nhàn hạ, bạn có thể có thời gian học cải thiện hay học thêm các môn tự chọn khác. Một điều quan trọng nữa là nếu học các môn chuyên đề bạn sẽ hoàn tất học phần sớm hơn luận văn gần một tháng, như vậy trong cuộc đua việc làm bạn đã hơn hẳn về mặt cự ly.

    § Làm luận văn: điều đầu tiên mà tôi muốn nói là theo tình hình chung bạn sẽ không nhận được nhiều sự hướng dẫn chi tiết từ các thầy cô, bạn chỉ có sự định hướng hoặc nhiều hơn là bạn có tài liệu để giải quyết vấn đề. Bạn có người giám sát và canh chừng cho bạn khỏi xuống ruộng trên đường đi. Tự lực cánh sinh vẫn là một câu mà tất cả mọi người cần nhớ trước khi làm luận văn. Tuy nhiên chính từ sự tự lực này mà lần đầu tiên trong đời sinh viên bạn sẽ có cơ hội thực sự cọ xát trong tìm hiểu và giải quyết vấn đề. Để đáp ứng cho nhu cầu làm luận văn thông thường bạn phải đi vào nghiên cứu khá nhiều lĩnh vực cũng như công nghệ điều này làm cho trình độ của bạn tiến một bước khá xa. Phải đọc khá nhiều tài liệu tiếng anh cũng giúp cho kỷ năng của bạn nâng cao. Việc phải phối hợp làm việc chung theo nhóm (thường là hai người) sẽ giúp bạn một chút xíu trong việc tập nhẫn nhịn, tập lắng nghe, phối hợp tập thể để tránh cãi cọ và rồi đổ vỡ. Phí tổn cho việc làm luận văn cao gấp nhiều lần học chuyên đề (1.000.000 lệ phí cho mỗi người + in ấn + …). Từ lúc bắt đầu cho tới lúc kết thúc luận văn bạn sẽ gặp phải những trắc trở về nhiều mặt và đó là những áp lực giúp bạn chững chạc hơn. Theo đánh giá của tôi bạn chỉ cần có nội công tương đối cộng với một chút quyết tâm là có thể làm luận văn và làm luận văn cực hơn học chuyên đề rất nhiều.

    Từ những phân tích trên tôi nghĩ bạn cũng đã có thể có một chút cơ sở để đưa ra quyết định cho mình. Với tôi thì tôi không hối hận khi chọn làm luận văn và học chuyên đề cùng lúc. Nếu bạn đã quyết định làm luận văn thì hãy coi tiếp những phần sau còn như ngược lại thì xin được tạm biệt bạn tại đây.

  3. Làm luận văn phải trải qua những bước nào ?
    Trong phần này tôi sẽ giúp cho các bạn có cái nhìn tổng quan, những thủ tục trong quá trình làm luận văn.

    1. Giai đoạn tiền luận văn:
      Trong giai đoạn có hai quá trình chính sau: – Lập nhóm để làm luận văn (thường gồm hai người), quá trình này thông thường do bạn thực hiện. – Xác định đề tài và giáo viên hướng dẫn: quá trình này có thể do bạn thực hiện hay do bộ môn chỉ định. Về mặt giấy tờ trong giai đoạn này bạn phải nộp đơn xin làm luận văn và bảng điểm chuyên ngành. Giai đoạn tiền luận văn sẽ kết thúc vào khoản trước tết âm lịch một chút tùy từng bộ môn, thông thường CNPM là kết thúc giai đoạn này sớm nhất và trễ nhất là HTTT.
    2. Giai đoạn thực hiện luận văn:
      Tùy theo từng loại luận văn (nghiên cứu, ứng dụng, hay nghiên cứu + ứng dụng) mà sẽ có các quá trình con do bạn tự vạch ra. Tuy nhiên thông thường sẽ gồm ba quá trình: – Tập hợp tài liệu, source code, luận văn mẫu, nắm tổng quan vấn đề. (Nộp một bản đề cương chi tiết có chữ ký giáo viên hướng dẫn cho văn phòng khoa). – Tìm hiểu sâu vấn đề lý thuyết + công nghệ mà luận văn yêu cầu. – Xây dựng ứng dụng + viết báo cáo. Giai đoạn làm luận văn kéo dài đến giữa tháng 7. Giai đoạn này có lịch làm việc mà bạn phải lập ra trong đề cương chi tiết và thực hiện theo sự giám sát của giáo viên hướng dẫn.
    3. Giai đoạn sau luận văn:
      Sau khi đã hoàn tất cơ bản luận văn của mình, bạn phải trải qua 4 quá trình nữa: – Nộp ba bản bìa mềm, ba đĩa CD, bản tóm tắt nội dung cùng ý kiến đồng ý cho bảo vệ của giáo viên hướng dẫn cho văn phòng khoa. – Chuẩn bị gặp và trình bày luận văn với giáo viên phản biện (do bộ môn chỉ định) (trước ngày bảo vệ với hội đồng khoảng gần 1 tuần). – Chuẩn bị Slide, nội dung và bảo vệ trước hội đồng (cuối tháng 7). – Hoàn tất nội dung, chỉnh sửa báo cáo, ứng dụng, in 1 bản bìa cứng chử vàng có đóng chết một tờ nhận xét của giáo viên phản biện (có chữ ký giáo viên phản biện) và đề cương chi tiết luận văn (có chữ ký giáo viên hướng dẫn) nộp cho phòng đào tạo (khoảng đầu tháng 8).

    Các tài liệu, giấy tờ mà bạn phải nộp cho văn phòng khoa cũng như phòng đào tạo đều có chuẩn chung. Các mẫu quy định này được tôi đính kèm theo.

  4. Những khó khăn nào có thể gặp phải ?
    Trong quá trình làm luận văn có rất nhiều rủi ro có thể xãy ra, nguy hiểm nhất là sự chệch hướng, thay vì phải đi theo một con đường bằng phẳng bạn lại đâm đầu vào leo rừng lội suối để rồi mắc kẹt trong đó, mất phương hướng. Khi đã có hướng đi đúng nhưng nhiều lúc bạn lại thất bại trong cách giãi quyết vấn đề. Bên cạnh những rủi ro có thể làm cho luận văn của bạn thất bại trên, bạn còn có thể gặp tình huống đặt sai trọng tâm cho luận văn dẫn đến điểm luận văn không cao. Luận văn sẽ phát sinh những trục trặc mà có lẽ trời cũng lắc đầu chịu thua không thể nào đoán trước được. Từ những sai sót trong định dạng tài liệu nộp, trình bày báo cáo đến luống cuống trong bảo vệ trước hội đồng đều có thể ảnh hưỡng đến kết quả của bạn. Tuy nhiên xin đừng lo lắng vì tôi đã ở đây để giúp bạn lường trước và hạn chế những điều đáng tiếc xãy ra.

Phần 2

5. Chi tiết các kinh nghiệm nhằm vượt qua khó khăn trong từng giai đoạn

  1. Giai đoạn tiền luận văn
  2. Đây là giai đoạn rất quan trọng và có nhiều vấn đề cần bàn, thời điểm này là lúc bạn chứng minh sự nhạy bén của bạn chứ không phải khả năng nghiên cứu. Tuy vậy nó cũng góp phần trong mức độ thành công của bạn trong các giai đoạn sau. Theo lệ thì mọi người thường nộp đơn xin làm luận văn rồi chọn hai nguyện vọng cho các luận văn từ danh sách do bộ môn đưa ra và chờ dợi sự sắp xếp từ bộ môn dựa vào điểm. Nhưng vẫn có một xu hướng mà tôi cho rằng rất tốt, đó là sinh viên tự tìm giáo viên và xin được nhận hướng dẫn với đề tài của giáo viên đó. Hoặc hay hơn nữa là tự tìm ra đề tài cho mình và tìm giáo viên hướng dẫn. Chính bằng cách trên có một số nhóm của khóa 2001 đã tiến hành nghiên cứu từ rất sớm (cuối năm 3) và có nhiều nhóm được làm với giáo viên mình thích, dĩ nhiên nếu ngay từ đầu bạn đã có một sự khởi đầu đầy thuận lợi như vậy thì khả năng thành công của bạn là rất lớn (thực tế đã chứng minh điều này). Như vậy theo nhận định của tôi một trong những mấu chốt của giai đoạn này là tầm sư để học đạo. Nói là nói vậy chứ cũng không đơn giản đâu bạn ạ. Bởi thầy cô thì ít mà sinh viên thì nhiều, với lại chọn để nhờ thầy cô nào cũng là cả một vấn đề, rồi lại còn làm sao để thầy cô chấp nhận nữa chứ. Thông thường thầy cô rất dễ, tôi tin rằng nếu các bạn có thành ý, quyết tâm làm luận văn và chứng minh được điều này thì thầy cô sẽ đồng ý. Cũng nên nhớ một câu tục ngữ rất đúng trong trường hợp này là “trâu chậm thì uống nước đục”. Trong trường hợp các bạn đã ngưỡng mộ một thầy cô nào rồi thì tôi không có gì để nói, nhưng nếu bạn còn phân vân chưa biết nên chọn ai thì tôi xin được phân biệt ra hai dạng thầy cô như sau để bạn tiện suy nghĩ.

    Thứ nhất là các thầy cô lớn tuổi: đây là các thầy cô có kiến thức uyên bác, uy tín cao, thông thường tiếng nói có trọng lượng trong bộ môn. Nếu đi theo các thầy cô này bạn sẽ bớt phần nào bão táp, bởi đứng dưới gốc đại thụ thì dù trời có mưa to cũng thành mưa nhỏ thôi. Tuy nhiên các thầy cô thường rất bận rộn, bạn sẽ rất khó khăn trong việc tìm gặp, điều này đồng nghĩa với gì thì chắc bạn cũng có thể tự hiểu. Chính từ sự bận rộn như đã nói trên nên nhiều khả năng khi làm luận văn với các thầy cô này, bạn sẽ được gởi tới công ty thay vì được hướng dẫn trực tiếp (đặc biệt với chuyên ngành hệ thống thông tin).

    Thứ hai là các thầy cô trẻ tuổi: đây là các thầy cô có lợi thế về công nghệ, nhiệt tình, và đặc biệt là gần gũi với bạn do sự chênh lệch tuổi tác ít. Tôi chắc rằng bạn sẽ thấy thoải mái khi làm việc cùng các giãng viên này mặc dù đôi khi bận rộn là tình trạng chung của các giãng viên khoa CNTT. Với các thầy cô này bạn có thể học tập thêm nhiều điều mang tính chi tiết, kỷ thuật (đặc biệt là các giãng viên nam). Bạn có thể hỏi và thảo luận các vấn đề mà đôi khi rất khó nếu bạn làm chung với các thầy cô lớn.

    Vấn đề kế mà tôi muốn nói trong giai đoạn này là việc chọn bạn làm luận văn. Lý do thường gặp để bạn chọn người này hay người kia để làm chung chỉ bởi tình cảm. Họ có thể là cô bạn gái hay anh chàng trong tim bạn. Đó cũng có thể là người bạn chí cốt của bạn. Trong trường hợp này tôi chỉ muốn bạn chú ý là nên rõ ràng, thống nhất và thẳng thắn với nhau ngay từ đầu. Bởi đã có những trường hợp do các mối quan hệ tình cảm như trên, có bạn nghĩ rằng chuyện làm luận văn với một người nào đó là đương nhiên. Nhưng ngặt nỗi người kia thì lại không nghĩ như vậy. Đến phút cuối té ngữa thì trở tay không kịp. Hậu quả là tình cảm sứt mẻ, tâm lý không thoải mái. Bản thân tôi thì cho rằng khi chọn người làm luận văn chung các bạn nên đặt ra hai tiêu chí đó là trình độ của họ và cá tính của họ. Nên tuân theo câu nói “Nồi nào úp vung nấy”. Người làm luận văn chung với bạn tốt nhất nên có trình độ tương đương bạn, tính tình không đến nỗi xung khắc với bạn. Nếu chọn được người có sở trường sở đoản có thể bù đắp qua lại cho nhau thì càng tốt. Việc quyết định ai sẽ làm chung với mình nên được tiến hành càng sớm càng tốt, có “ký hiệp ước” đàng hoàng. Thứ nhất là để khỏi lâm vào cảnh tranh giành bạn luận văn vào giờ cao điểm, thứ hai là có thể yên ổn tinh thần và cuối cùng là có thời gian hiểu nhau hơn. Tôi cũng mong các bạn là nên tránh kiểu sống bám hay có tư tưởng cứu vớt nhau trong việc làm luận văn bởi như đã nói trên, đây không phải là con đường duy nhất đồng thời làm như vậy sẽ mất ý nghĩa của luận văn. Hơn thế nữa dân công nghệ thông tin chúng ta luôn có lòng tự hào về bản thân mà.

  3. Giai đoạn thực hiện luận văn
  4. Điều trước tiên trong giai đoạn này mà tôi muốn nói với bạn đó là về phong cách làm luận văn. Đừng bao giờ coi thường điều này bởi đây là một trong những phần được đánh giá rất kỹ. Bạn hãy luôn tỏ ra hăng hái và nhiệt tình cho dù có mệt mỏi hay chán nản. Trong các buổi nói chuyện với giáo viên hướng dẫn hãy luôn chủ động nói ra tất cả ý kiến, nhận định của bản thân về vấn đề cho dù biết rằng nó có thể không đúng. Điều này sẽ giúp giáo viên tìm ra chổ sai để hướng bạn đi vào quỹ đạo. Có thể đôi lúc bạn và giáo viên hướng dẫn bất đồng về chính kiến, hãy cố gắng thuyết phục, chứng minh nhưng không tranh cãi. Cho dù kết quả thảo luận có thế nào thì xin luôn ghi nhớ “ý thầy cô là ý trời”.

    Điều thứ hai cần bàn là về mối quan hệ giữa bạn và giáo viên hướng dẫn. Khi biết thầy cô nào hướng dẫn mình bạn phải lập tức thu thập thông tin về họ càng chi tiết càng tốt như : điện thoại di động, điện thoại nhà, địa chỉ email, nick YM, địa chỉ …v.v. Hãy luôn làm việc trên tinh thần tạo tình cảm tốt nhất với giáo viên nếu có thể. Hãy ghi nhớ rằng giờ bạn đã là đệ tử ruột của thầy cô. Tuy nhiên bạn cũng không nên chỉ biết tới thầy cô hướng dẫn mà cũng nên tạo cảm tình với các thầy cô khác trong quá trình đi lại văn phòng bộ môn. Do mỗi thầy cô thường có những điểm mạnh riêng, bạn nên biết tận dụng cơ hội để học hỏi từ tất cả các thầy cô mà bạn có thể. Trong quá trình làm luận văn có thể bạn sẽ nhiều lần hẹn gặp thầy cô hướng dẫn và sẽ không ít lần bị cho leo cây chuối nhưng cho dù như vậy bạn cũng hãy vui vẻ và thực hiện theo phương châm thà thầy cô phụ mình chứ quyết không phụ thầy cô. Đừng có vì giận hờn mà cho thầy cô leo cây mít để đáp lại thì người thiệt thòi cũng là bạn thôi. Thầy cô hướng dẫn là người rất quan trọng trong việc quyết định điểm cho bạn. Có lẽ cũng nên cho bạn biết sơ về cơ cấu cho điểm. Điểm sẽ được quyết định bởi 5 người trong hội đồng bảo vệ, giáo viên hướng dẫn của bạn và giáo viên phản biện (chia lấy trung bình). Tuy nhiên bạn nên hiểu là chỉ có hai giáo viên tiếp xúc trực tiếp với luận văn của bạn là giáo viên hướng dẫn và giáo viên phản biện còn những thầy cô còn lại thì nói chung chỉ cưỡi ngựa xem hoa. Trong hai giáo viên này thì đôi khi chỉ có giáo viên hướng dẫn mới nắm chính xác những gì bạn đang làm. Chính vì lẽ đó điểm do các thầy cô khác cho ít nhiều ảnh hưỡng bởi nhận xét của giáo viên hướng dẫn bạn.

    Điều thứ ba mà tôi muốn đề cập trong giai đoạn này đó là sự phân bố thời gian. Thông thường đa số những người làm luận văn từ trước tới nay ít khi tuân thủ tốt lịch làm việc đề ra lúc đầu. Xu hướng chung là rất háo hức xông xáo thời gian đầu, xìu xìu ển ển thời gian giữa và tới lúc cuối khi chỉ còn khoảng một tháng nữa hết thời gian thì lại thức khuya dậy sớm lăn vào làm không kể chết là gì. Tôi không mong các bạn đi theo vết xe đổ đó. Làm luận văn sẽ rất nhàn tản nếu bạn biết sắp xếp thời gian và làm việc nhiệt tình từ đầu tới cuối.
    Điều thứ tư mà các bạn nên để ý là cách viết luận văn. Hiện nay có hai trào lưu khác nhau, một là cách viết theo kiểu đếm chử tính tiền, cái gì cũng muốn đem vào luận văn khiến cho luận văn tự lúc nào biến thành cuốn bách khoa toàn thư đem chọi chắc bể đầu. Còn trào lưu thứ hai là viết luận văn thật súc tích, ngắn tới mức có thể theo định hướng cụ thể của người viết. Tùy từng trường hợp mà mỗi cách đều có cái hay của nó. Tuy nhiên bạn cũng nên cố gắng đừng quá dông dài. Theo tôi nghĩ với một luận văn chuyên về phân tích thiết kế ứng dụng bạn nên làm báo cáo cở 250 trang, luận văn mang tính thuần nghiên cứu hoặc có kết hợp ứng dụng thì báo cáo nên khoảng 130 trang là vừa.

    Điều thứ năm là trong suốt quá trình nghiên cứu, đọc tài liệu tới đâu bạn nên ghi chú, viết lại nội dung các thông tin mà bạn cảm thấy cần thiết, đừng quên kèm theo chú thích nó được trích dẫn từ tài liệu nào thật chi tiết (tránh trường hợp sau này không biết reference tới đâu). Tiến hành sưu tầm, thu thập các hình ảnh hoặc resource có liên quan nhằm phục vụ cho báo cáo cũng như slide. Thực hiện quản lý phiên bản, backup theo ngày thay đổi với cả file báo cáo lẫn mã nguồn. Tôi đề xuất với các bạn cách backup mà tôi đã làm như sau: tên file .zip chứa mã nguồn có dạng “DD-MM-YYYYSource.zip”, tên file zip của báo cáo có dạng “DD-MM-YYYYDoc.zip” kèm theo hai file này là một file chú thích có dạng “DD-MM-YYYYNote.zip” lưu lại thông tin về những thay đổi so với phiên bản trước và các lưu ý cần thiết.

    Điều thứ sáu là trước khi chuyển sang giai đoạn sau luận văn bạn nên kiểm tra lại một lần cuối sự tồn tại của các reference vì thầy cô phản biện thích kiểm tra các liên kết này đặc biệt là với chuyên ngành hệ thống thông tin. Độ tin cậy của các địa chỉ reference nói lên những căn cứ của luận văn của bạn do đó đừng nên coi thường.

    Điều cuối cùng dành riêng cho chuyên ngành hệ thống thông tin là bộ môn có chính sách cho muợn máy để phục vụ làm luận văn. Đó là 3 máy trên phòng 83 có cấu hình khá tốt, nối mạng 24/24, lại luôn có các thầy cô ở kế bên để bạn có thể hỏi khi gặp trục trặc. Hãy làm đơn và gởi cho thầy phụ trách quản lý máy, càng sớm càng tốt kẻo hết chổ.

  5. Giai đoạn sau luận văn
  6. Sau thời gian mệt mỏi làm luận văn bây giờ đã đến lúc thực sự ra chiến trường, càng mệt hơn nữa. Cửa ải đầu tiên mà bạn phải qua đó là thầy cô phản biện. Một trong ba cuốn bìa mềm mà bạn nộp trong đợt này sẽ về tay giáo viên phản biện của bạn. Theo lý thuyết thầy cô không bao giờ đọc kỷ lưỡng bài viết của bạn mà chỉ nắm trên phương diện tổng quát và xoáy vào những phần mà họ nghĩ là trọng tâm tùy theo quan điểm của từng thầy cô. Có thể cách nhìn nhận này không tương đồng với ý bạn. Bạn cũng đừng ngạc nhiên khi thầy cô phản biện không hiểu hay mơ hồ về vấn đề mà bạn muốn nói trong luận văn. Bởi đôi khi lĩnh vực mà bạn đang tìm hiểu không phải là mặt mạnh của thầy cô. Mặt khác kỉ năng văn chương của bạn cũng chưa chắc là thuyết phục đâu. Chính vì lẽ đó một lời khuyên dành cho bạn là nếu cảm thấy vấn đề của mình quá phức tạp, nhiều công thức rắc rối thì trong quá trình phản biện nên đặt mục tiêu là sao cho thầy cô có cái nhìn tổng quát nhất, thấy được hiểu quả của luận văn của chúng ta mà thôi còn về chi tiết hơn hãy để dành trả lời nếu được hỏi. Thái độ đối với giáo viên phản biện thì về cơ bản nên thực hiện giống như giáo viên hướng dẫn, tuy nhiên hãy kiên quyết bảo vệ chính kiến khi bạn chắc chắn là mình đúng, nếu cần hãy nhờ giáo viên hướng dẫn giải thích giùm cho giáo viên phản biện hiểu. Nên nhớ đến cuối cùng mà vẫn không thuyết phục được giáo viên phản biện thì hãy phục tùng theo yêu cầu của họ.

    Cửa ải cuối cùng và cũng căng thẳng nhất đó là ra trước hội đồng, bạn phải chuẩn bị Slide và bản tóm tắt nội dung trình bày để phát cho thầy cô và những người tham gia buổi bảo vệ. Hãy chú ý và chuẩn bị cẩn thận về mặt tâm lý, cũng như những vấn đề sẽ trình bày. Tốt nhất nên tập luyện kỹ lưỡng trước khi ra hội đồng. Mức độ chuyên nghiệp, hấp dẫn của luận văn sẽ được tăng lên nhờ cách trình bày tốt trên slide và thuyết trình. Slide nên thay thế chữ bằng hình và chuyển động minh họa. Với các đoạn phim demo ứng dụng thì thường được quay bởi hai phần mềm là Camtasia hay Camstudio. Camtasia có ưu điểm là có pointer và thể hiện được hành động click chuột trên phim tuy nhiên Camstudio là miễn phí. Nên quay thành những đoạn phim nhỏ khoảng 10 – 20 giây và quản lý thật khoa học theo thứ tự từng quy trình chức năng của ứng dụng. Nhúng trực tiếp các đoạn phim vào slide, có thể đặt nhiều phim cùng quy trình vào chung một slide và vừa điều khiển vừa thuyết trình. Bạn nên quay tất cả các chức năng của ứng dụng (để phòng khi thầy cô hỏi thì mang ra) nhưng chỉ đưa vào slide những phim của các chức năng chính nhất.

    Vì bạn sẽ sử dụng máy của mình khi ra bảo vệ nên bạn cần tổ chức các tài liệu liên quan đến luận văn trong máy sao cho thật khoa học. Bao gồm luôn cả các tài liệu tham khảo để có thể mang ra khi nào cần.

    Thêm một ý nữa thôi là trước khi ra bảo vệ bạn nên cẩn thận ăn uống và đừng ăn quá nhiều hì hì…

6. Lời kết
Những điều được đưa ra ở trên là những gì mà tôi rút ra được từ thực tế bản thân trong quá trình học tập. Chính vì vậy không tránh khỏi nhiều thiếu sót, kém khách quan. Mặt khác do các quy định cũng như tình hình có thể thay đổi theo từng năm nên các bạn cần kiểm tra lại thông tin sau khi đọc. Tôi thực sự mong rằng những thông tin ở đây sẽ được bổ sung, sửa chữa bởi các bạn cùng khóa và các anh chị. Chúc các em thành công trong quá trình làm luận văn và có kết quả tốt nghiệp cao.