Đào Hải Nam

Luôn hạnh phúc vì vẫn còn nhiều ước mơ chưa đạt được

Mục lục

Để tiện theo dõi, tôi xin giới thiệu danh mục các chủ đề và bài viết trong blog Đào Hải Nam:

Học để trở thành lập trình viên chuyên nghiệp. Đang nhận học viên.

Profile:

  • Ngôn ngữ đang dùng: Java, C# và VB.NET
  • Hệ điều hành: Windows 7, Vista Enterprise (có bản quyền :D )
  • Công nghệ đang dùng: J2ME, WPF, ASP.NET, Silverlight…
  • Database: SQL Server 2008 (có bản quyền :D )
  • IDE đang dùng: VS 2008 và VS 2010 (có bản quyền :D ), Eclipse

Written by namdh

25/11/2008 lúc 11:29

NB1001: Các ví dụ, bài tập về nhà, bài mẫu… tháng 11

leave a comment »

Chào các bạn đang học NB1001, sau đây là code của các bài tập, ví dụ, code mẫu… của tháng 11. Trong đây chỉ bao gồm các project VS2010, không bao gồm các bài lý thuyết.

- Object Diagram: vẽ các hình chữ nhật và tam giác, cho phép kéo các đối tượng lên vị trí bất kỳ trên màn hình, double click để đổi màu.

- Chương trình tạo số ngẫu nhiên: là bài thay thế cho chương trình Mine Sweeper.

- Bài sắp xếp:biểu diễn các thuật toán sắp xếp một cách trực quan.

Bài Gỡ Mìn các bạn có thể thao khảo: http://namdh.wordpress.com/2008/07/27/ch%C6%B0%C6%A1ng-trinh-android-th%E1%BB%A9-hai-minesweeper/.

Chương trình thực thi và Mã nguồn: http://www.mediafire.com/?ime71m4tu0ust (bao gồm cả chương trình gỡ mìn trên Android)

Chú ý là bài Sort Demo bản exe là đầy đủ, còn mã nguồn đã bị xóa mất 3 phương thức sắp xếp: insertion, selection, quick.

Written by namdh

28/11/2011 lúc 17:43

Posted in Training

Tagged with

Một vài hình ảnh lớp NB1001

with 3 comments

Written by namdh

14/11/2011 lúc 16:59

Posted in Training

Tagged with

Steve Jobs đã ra đi

leave a comment »

Vậy là thế giới vừa mất đi một thiên tài, một người mang đến sự sáng tạo và tầm nhìn trong thế giới công nghệ.

Written by namdh

06/10/2011 lúc 08:20

Best Practices for ASP.NET MVC: Controller (Phần 3)

with one comment

[Bài viết này dựa trên một tài liệu của tác giả Ben Grover (một nhà phát triển cấp cao từ Microsoft). Chúng tôi dự định sẽ đưa những thông tin này vào phần tài liệu MVC 3 trên trang MSDN. Chúng tôi hi vọng được nghe những phản hổi  và mong chờ bất kỳ góp ý nào từ phía các bạn]

Bài viết này giới thiệu một tập các hướng dẫn lập trình nhắm đến các lập trình viên ASP.NET MVC. Tất nhiên, bạn, với tư cách là nhà phát triển sẽ vẫn là người quyết định cuối cùng trong việc chọn hướng dẫn nào phù hợp nhất.

Đọc tiếp »

Written by namdh

05/10/2011 lúc 09:44

Best Practices for ASP.NET MVC: View (Phần 2)

with 2 comments

[Bài viết này dựa trên một tài liệu của tác giả Ben Grover (một nhà phát triển cấp cao từ Microsoft). Chúng tôi dự định sẽ đưa những thông tin này vào phần tài liệu MVC 3 trên trang MSDN. Chúng tôi hi vọng được nghe những phản hổi  và mong chờ bất kỳ góp ý nào từ phía các bạn]

Bài viết này giới thiệu một tập các hướng dẫn lập trình nhắm đến các lập trình viên ASP.NET MVC. Tất nhiên, bạn, với tư cách là nhà phát triển sẽ vẫn là người quyết định cuối cùng trong việc chọn hướng dẫn nào phù hợp nhất.

Đọc tiếp »

Written by namdh

27/09/2011 lúc 10:49

Best Practices for ASP.NET MVC: Model (Phần 1)

with 3 comments

Bài viết sau đây được dịch từ http://blogs.msdn.com/b/aspnetue/archive/2010/09/17/second_2d00_post.aspx bởi Đào Hải Nam.

ASP.NET MVC đã và đang trở nên phổ biến, với liên tiếp các phiên bản 1, 2, 3 và 4 (sẽ ra mắt cùng với .NET 4.5), ASP.NET MVC đã chứng tỏ sức mạnh của nó. Những ưu điểm của ASP.NET MVC, bao gồm cả của mô hình MVC là: phân tách rõ ràng các phần M-V-C, cung cấp nhiều cơ chế xử lý request khác nhau, dựa trên ASP.NET – vốn đã rất mạnh mẽ, hỗ trợ nhiều view engine, có cơ chế định tuyến (routing) mềm dẻo, giúp người phát triển có thể tạo các URL thân thiện người dùng và SEO…

Bài viết sau cung cấp các khuyến nghị giúp nhà phát triển có thể sử dụng ASP.NET MVC một cách đúng đắn và phù hợp nhất.

Người dịch: Đào Hải Nam

[Bài viết này dựa trên một tài liệu của tác giả Ben Grover (một nhà phát triển cấp cao từ Microsoft). Chúng tôi dự định sẽ đưa những thông tin này vào phần tài liệu MVC 3 trên trang MSDN. Chúng tôi hi vọng được nghe những phản hổi  và mong chờ bất kỳ góp ý nào từ phía các bạn]

Bài viết này giới thiệu một tập các hướng dẫn lập trình nhắm đến các lập trình viên ASP.NET MVC. Tất nhiên, bạn, với tư cách là nhà phát triển sẽ vẫn là người quyết định cuối cùng trong việc chọn hướng dẫn nào phù hợp nhất.

Đọc tiếp »

Written by namdh

27/09/2011 lúc 10:46

Các câu hỏi thường gặp về khóa học NB1

with 5 comments

Q. Tôi chưa biết gì về lập trình, liệu tôi có thể tham gia không?

A. Không. đây là khóa học nâng cao, được thiết kế để tăng cường thêm kinh nghiệm và kỹ năng làm việc, cũng như bổ sung kiến thức nền tảng để học viên có thể tự học, tự nghiên cứu sau này.

Bạn có thể học để có kỹ năng lập trình cơ bản, sau đó tham gia cũng không muộn.

Q. Tôi không đọc được tài liệu chuyên ngành, tôi có thể học được không?

A. Không. bạn sẽ phải tìm kiếm tài liệu, tự học, tự nghiên cứu rất nhiều, vậy nên không có tiếng Anh, bạn sẽ khó theo nổi.

Trình độ tiếng Anh yêu cầu là có thể học hiểu (ít nhất cũng là 50-60%). Hãy đọc bài sau để hiểu tầm quan trọng của tiếng Anh trong ngành IT (http://namdh.wordpress.com/2010/10/29/some-tips-for-it-students/)

Q. Tôi chỉ muốn học phần lập trình ASP.NET (hoặc Winform), liệu có được không?

A. Không. Câu trả lời không này là vì chính bạn, khi tự bó hẹp mình trong một phạm vi nào đó, bạn đã đóng một cánh cửa trước mặt, lập trình Web hay Application không phải là các tùy chọn loại trừ nhau. Việc học mang lại lợi ích ở cấp số nhân: bạn học thêm một, bạn sẽ biết được thêm 10.

Q. Tôi đã học OOP ở trường, tôi không muốn học phần này có được không?

A. Tùy trường hợp, nhưng trên thực tế, đáng tiếc đa số chỉ hiểu OOP theo cách một coder thuần túy, mà không phải cách của một designer, thậm chí nhiều người vẫn hiểu sai các khái niệm có trong OOP. Làm sao bạn lập trình, phân tích thiết kế hướng đối tượng tốt nếu bạn không thực sự hiểu hoặc hiểu sai nó?

Q. Tôi sắp ra trường rồi, liệu có còn kịp để học không?

A. Học chẳng bao giờ là muộn, bạn nghĩ những người khác đang đi làm thì không phải học sao?

Q. Tôi thấy chương trình quá nhiều, liệu có thể học kịp không?

A. Thật dễ dàng cho tôi và cả cho bạn nếu tôi kéo dài chương trình này trong 1 năm hoặc 2 năm. Nhưng dễ dàng như vậy để làm gì? Bạn muốn thành công, vậy phải đổ mồ hôi thôi. Thời lượng dành cho khóa học trên lớp chỉ chiếm không tới 50%, còn lại bạn sẽ phải tự học, tất nhiên tôi sẽ phải cho bạn biết tự học gì và như thế nào.

Q. Tôi thấy có nhiều nơi cũng dạy những thứ giống trong NB1, vậy ưu điểm của chương trình này là gì?

A. NB1 là chương trình kết hợp 1 phần trong chương trình đại học và một phần trong các chương trình đào tạo LTV như của NIIT hay Aptech, đó là 50% ưu điểm, 50% còn lại là bạn sẽ được truyền đạt những kinh nghiệm mà những người khác phải mất nhiều năm mới có được.

Q. Lớp học có bao nhiêu người?

A. Một lớp chỉ có tối đa 10 người. Nếu lớp đã đầy, bạn có thể phải chờ khóa tiếp theo.

Q. Bài giảng có slide không?

A. Có. Bài giảng có dùng slide + demo, tuy nhiên, về nguyên tắc, slide chỉ chứa thông tin cô đọng, hoặc tổng kết.

Q. Có giáo trình không?

A. Không có giáo trình riêng. Khi học đến phần nào, giảng viên sẽ giới thiệu chương trình học và tài liệu (từ các sách, website…)

Q. Nếu bận công việc phải nghỉ nhiều thì thế nào?

A. Nếu thực sự không đi học được, bạn có thể xin nghỉ và đăng ký để giảng viên giảng lại trong một giờ khác. Tuy nhiên, phải cố gắng nghỉ càng ít càng tốt. Nếu phải nghỉ nhiều có thể chờ và học cùng lớp tiếp theo (riêng phần đã nghỉ, các bài khác học bình thường).

Written by namdh

06/09/2011 lúc 11:34

Posted in Training

Tagged with ,

Khóa học NB1 – Nếu bạn muốn trở thành lập trình viên chuyên nghiệp

with 46 comments

Khóa học sau được thiết kế dành cho bạn nếu:

- Bạn đã biết lập trình nhưng cảm thấy khả năng vẫn chưa đáp ứng được cho công việc sau này, hoặc

- Bạn có kỹ năng code, nhưng thiếu kiến thức nền tảng để có thể tự học, tự nghiên cứu, hoặc

- Bạn đã đi làm, nhưng bối rối, không tìm được định hướng cho bản thân để phát triển nghề nghiệp, hoặc

- Bạn đang đi học, nhưng vẫn muốn có thêm kinh nghiệm làm việc.

(Xem hướng dẫn đăng ký ở dưới)

Khóa học này sẽ mang lại cho bạn:

- Kiến thức nền tảng vững chắc: đây là mục tiêu quan trọng nhất của khóa học, OOP, TCP/IP, OS… là những thứ nền tảng nhất, và cũng là quan trọng nhất, bạn cần phải biết, hiểu cách nó làm việc một cách đúng đắn (hầu hết những người tôi đã phỏng vấn cho vị trí senior developer không trả lời được hết những câu hỏi về những thứ được coi là cơ bản này).

- Kỹ năng lập trình thành thạo: Một núi các bài tập và project bạn phải hoàn thành sẽ mang lại cho bạn nhiều kỹ năng và kinh nghiệm.

- Khả năng tự học: Thêm một núi các bài nghiên cứu và tự học sẽ hoàn thiện khả năng tự học của bạn.

- Kinh nghiệm làm việc như tại các công ty phần mềm: Tiêu chuẩn và quy trình hoàn thành của các dự án sẽ giúp các bạn hiểu được sự khác nhau giữa một đồ án – bài tập lớn trong trường học với các dự án “kiếm được tiền”.

- Biết được “đời” thế nào :D : Giảng viên nhiều kinh nghiệm sẽ truyền đạt lại cho bạn các kỹ năng đi phỏng vấn, viết CV, thuyết trình, viết tài liệu. Giảng viên cũng có nhiệm vụ giúp bạn tìm hiểu và đánh giá những khả năng của bạn, qua đó giúp bạn có được định hướng trong tương lai.

Khóa học sau yêu cầu bạn:

- Yêu công việc lập trình và mong muốn trở thành một lập trình viên giỏi (và lương cao, he he): Xin nhấn mạnh là bạn yêu nó – hoặc chí ít cũng là rất thích.

- Tiếng Anh đủ để đọc tài liệu (có thể dùng từ điển).

- Tuân thủ kỷ luật, nội quy theo chương trình học.

- Đảm bảo thời gian học, không vắng mặt, đảm bảo dành ít nhất 14h/tuần cho việc học (bao gồm giờ trên lớp), bạn sẽ không thể hoàn thành bài tập/dự án nếu không dành đủ chừng đó thời gian. (14h/tuần chỉ bằng 1/3 thời gian sau này các bạn đi làm trên lý thuyết, và trên thực tế có thể chỉ bằng 1/4 hay 1/5).

-Hoàn thành đầy đủ các bài tập/dự án/báo cáo… Các bài này sẽ được đánh giá, chấm điểm, nhờ đó giảng viên có thể biết bạn mạnh yếu chỗ nào để điều chỉnh. Ngoài ra, điểm số cũng sẽ quyết định một phần vào việc bạn có được tiếp tục theo học hay không.

Nội dung chương trình:

- C# cơ bản:

+ Các khái niệm cơ bản của OOP: inheritance, abstraction, polymorphism, encapsulation.

+ Cấu trúc dữ liệu và thuật toán: list, tree, search, sort.

- Kiến trúc máy tính và Hệ điều hành:

+ Bit/byte…

+ Quản lý bộ nhớ.

+ Quản lý đĩa.

+ CPU.

- Lập trình mạng TCP/IP:

+ Cách đánh địa chỉ, cấu trúc packet, cơ chế định tuyến…

+ Giao thức HTTP (GET, POST, Session, Cookie…).

+ Viết ứng dụng với socket.

+ Các khái niệm cơ bản trong bảo mật: mã hóa đối xứng, bất đối xứng, băm, SSL, chữ ký điện tử…

- Windows Form:

+ Giới thiệu.

+ Control: các control chuẩn, menu, toolstrip…

+ User control.

- Ngôn ngữ SQL với SQL Server:

+ Cơ bản về CSDL quan hệ.

+ Cơ bản về SQL Server.

+ TABLE/VIEW

+ INSERT/SELECT/UPDATE/DELETE

+ Transaction

+ PROCEDURE/FUNCTION

- Truy cập CSDL với ADO.NET:

+ Tổng quan về ADO.NET

+ DataSet, DataTable, DataAdapter…

+ Truy vấn, cập nhật dữ liệu.

- Lập trình Web với Web Forms.

+ Giới thiệu

+ Sử dụng các control chuẩn, các control liên quan đến dữ liệu.

+ Cấu hình ứng dụng web.

- Truy cập CSDL với Entity Framework.

+ Giới thiệu.

+ LINQ.

+ Tạo mô hình, các thao tác truy vấn, cập nhật trên dữ liệu.

- Lập trình Web với ASP.NET MVC.

+ Mô hình MVC.

+ Tạo ứng dụng với ASP.NET MVC.

- Xây dựng ứng dụng phân tán.

+ Giới thiệu ứng dụng phân tán.

+ .NET Remoting.

+ Mô hình 3-tiers.

- Kỹ năng thuyết trình.

- Kỹ năng phỏng vấn.

Khoảng 15%-20% thời lượng khóa học dành cho việc truyền đạt kinh nghiệm, cũng như đào tạo kỹ năng mềm.

Chương trình học kéo dài khoảng 6 tháng (dự kiến), 3 buổi/tuần, 1 buổi 2 tiếng. Học phí: 1M/tháng. Ưu tiên học viên có laptop.

Học tại Quận 3, phía sau CoopMart Nhiêu Lộc. ĐT: 0904098052

Về giảng viên:

Tên: Đào Hải Nam

Tuổi: không già lắm

Kinh nghiệm:

- Hơn 12 năm làm trong ngành phần mềm, là key person trong một số dự án tài chính, viễn thông và logistics.

- 2,5 năm làm giảng viên NIIT (senior).

- Đã từng phỏng vấn tuyển dụng cho nhiều vị trí khác nhau như Senior Developer, giảng viên NIIT…

- Có 3 bài báo trên PCWORLD VN (từ thời tờ tạp chí này còn khá mang tính học thuật chứ không như bây giờ): Thay đổi bảng màu trong chế độ đồ họa (Pascal – 1996), Cài mật mã vào chương trình (1997 – ASSEMBLY), Tự tạo công cụ phòng chống file virus (1998 – ASSEMBLY).

- Tác giả phần mềm Dalat Anti Virus của thiên niên kỷ trước (không nổi tiếng lắm :D ), và nhiều phần mềm không nổi tiếng khác :D .

- Làm việc với Java từ 1998 và với .NET từ 2003.

Hướng dẫn đăng ký:

Trước khi đăng ký, hãy đảm bảo bạn thỏa mãn các điều kiện trong phần “Khóa học sau yêu cầu bạn” (xem ở trên). Nếu không theo kịp chương trình, không hoàn thành các bài học, nghỉ quá nhiều… bạn có thể sẽ không được tiếp tục theo học.

Để đăng ký, bạn gọi điện đến số 0904098052, sau đó viết một email, trong đó trình bày tên, tuổi, ĐT, tình trạng kiến thức (đã học/làm gì…), lý do muốn tham gia khóa học, gửi về địa chỉ daohainam@gmail.com.

 

(Xem các câu hỏi và trả lời về khóa học này tại đây: http://namdh.wordpress.com/2011/09/06/nb1-qa/)

Written by namdh

26/08/2011 lúc 18:18

Posted in Training

Tagged with ,

Thực hiện các tính năng CRUD với Entity Framework trong ứng dụng ASP.NET MVC

leave a comment »

Trong bài viết trước, bạn đã tạo một ứng dụng MVC cho phép lưu trữ và hiển thị dữ liệu dùng Entity Framework và SQL Server Compact. Trong phần này bạn sẽ xem lại và tùy biến các câu lệnh cho phép xem, thêm, xóa, sửa dữ liệu mà trình hỗ trợ của MVC đã tự động tạo cho bạn trong các view và controller.

Ghi chú: Trong thực tế, người ta thường dùng mẫu thiết kế Repository để tạo lớp trừu tượng giữa controller và DAL. Để giữ cho bài viết được đơn giản, bạn sẽ không xây dựng một repository cho tới các bài viết sau trong cùng loạt bài này.

(CRUD: Create, Read, Update, Delete)

Đọc tiếp »

Written by namdh

22/07/2011 lúc 10:35

Tạo một mô hình dữ liệu Entity Framework cho ứng dụng ASP.NET MVC

with 7 comments

Ứng dụng web của trường đại học Contoso biểu diễn cách tạo ra một ứng dụng ASP.NET MVC dùng Entity Framework. Ứng dụng mẫu là website của trường đại học Contoso (trường đại học này chỉ là hư cấu – không có thật). Nó bao gồm các chức năng như đăng ký nhập học, tạo khóa học, và phân lớp cho giảng viên. Loại bài này sẽ hướng dẫn các bước để xây dựng nên ứng dụng Contoso University. Bạn có thể tải về ứng dụng hoàn chỉnh hoặc tạo mới bằng cách theo các bước hướng dẫn trong bài. Các ví dụ được trình bày bằng C#, mã ứng dụng để có thể tải về được viết bằng C# và VB. Nếu có câu hỏi nào không liên quan trực tiếp đến loại bài này, bạn có thể gửi lên ASP.NET Entity Framework forum hay Entity Framework and LINQ to Entities forum. Chúng tôi sẽ coi như bạn đã biết cách làm việc với ASP.NET MVC trong Visual Studio, nếu chưa, bạn có thể tham khảo basic ASP.NET MVC Tutorial. Nếu bạn định dùng WebForm, xem loại bài Getting Started with the Entity FrameworkContinuing with the Entity Framework. Trước khi bắt đầu, hãy kiểm tra và đảm bảo rằng các thành phần sau đã được cài đặt:

Đọc tiếp »

Written by namdh

14/06/2011 lúc 11:19

Follow

Get every new post delivered to your Inbox.

Join 32 other followers