Sunday, February 28, 2010

Tài liệu học Java?


Tài liệu học Java rất quan trọng đối với lập trình viên Java. Tuy nhiên với sự bùng nổ của nhu cầu học ngôn ngữ này, từ hơn mười năm qua, hàng chục ngàn đầu sách về Java đã được xuất bản, chưa kể kèm theo đó là hàng ngàn các website, diễn đàn về Java. Điều này gây lúng túng cho những người mới làm quen với Java khi không biết chọn sách nào để đọc. JDTC bằng kinh nghiệm thực tiễn đã chọn lựa sẵn những đầu sách Java có giá trị và hữu ích cho học viên của mình.

Học ở JDTC bạn được tặng 1 bộ sách Java tham khảo từ căn bản đến nâng cao. Sách được in rõ ràng, đóng bìa chắc chắn, chắc chắn sẽ là người bạn hữu ích và gối đầu giường cho các bạn chọn sự nghiệp của mình với Java.



Anh hùng võ lâm ngày xưa thành tài cũng nhờ "bí kíp võ công". Lập trình viên Java ngày nay có lẽ cũng vậy

Các tiêu chí chọn sách của JDTC:
- Sách viết rõ ràng, dễ hiểu, đi sâu vào trọng tâm
- Được recommend nhiều bởi những học viên Java khác
- Chọn một cuốn trong số các sách tiêu biểu nhất cho mỗi thể loại
- Độ dài không quá mức i.e phải trong vòng vài trăm trang trở lại
- Bộ sách này sẽ trải rộng các chủ đề mà học viên sẽ được học trong 3 courses: Java foundation, J2EE - foundation, J2EE - advance như: ngôn ngữ Java, Spring, Hibernate, Webwork, Struts 2, CSS, Javascript

Sau đây là link download một số sách tiêu biểu dưới dạng ebook:
- Java Complete Reference
- Spring in Action
- Hibernate in Action
- Webwork in Action

Đến đăng ký học ngay để ẵm trọn bộ sách:

Time and place of study?
Flexible time: 9AM-8PM.
Place of study:
Java Developer Training Center

29 D14B street, Tay Thanh ward, Tan Phu dist. HCMC
Tel:08-3 815 62 68 (MS Khanh Huong)
Email: javadevelopervietnam@gmail.com
Website: http://javadevelopervietnam.org (underconstruction)
blog: http://javadevelopervietnam.blogspot.com

Wednesday, February 24, 2010

Sự khác biệt trong cách dạy của JDTC? Một số câu hỏi thường gặp

Tại sao học lập trình khó?
Học và sử dụng một ngôn ngữ không dễ. Điều này cũng đúng với ngôn ngữ lập trình. Đó là điều ai cũng phải công nhận. Ngôn ngữ lập trình là ngôn ngữ dùng để giao tiếp giữa người và máy tính, chỉ thị cho máy tính thực hiện các yêu cầu của lập trình trình viên.

Sử dụng được một ngôn ngữ có khó không? Chắc chắn là rất khó khăn. Bạn đã từng trải qua bao nhiêu lớp học ngoại ngữ nhưng thử hỏi bạn đã đủ tự tin khi giao tiếp bằng tiếp Anh? Hằng ngày, hằng đêm hàng núi tiền được đổ ra cho các trung tâm ngoại ngữ với mác giảng viên nước ngoài, với mong muốn hết sức chính đáng là để sử dụng thành thạo tiếng Anh. Ngôn ngữ lập trình cũng vậy.

Là 1 loại ngôn ngữ giao tiếp, ngôn ngữ lập trình cũng cần được học theo đúng qui luật tự nhiên, một môi trường để kỹ năng ngôn ngữ có thể sống và phát triển.

Bởi vì không tạo lập được một môi trường sống cho ngôn ngữ nên ở Việt Nam nhiều trường đã thất bại trong việc đào tạo nguồn nhân lực CNTT đáp ứng được yêu cầu thực tế.

Vậy phương pháp của JDTC là gì?
JDTC đã trải nghiệm và phát hiện ra một phương pháp dạy và học lập trình mới mô phỏng quá trình học tự nhiên của ngôn ngữ. Phương pháp này đã được thử nghiệm trên một tập đủ lớn các học viên của JDTC và kết quả thu được hết sức khả quan. Phương pháp học này thực ra không hề xa lạ hoặc huyền bí mà trong thực tế đã được sử dụng khá nhiều, tiếng Anh gọi là "on-job training" hoặc "learning by doing", tiếng Việt gọi là "cầm tay chỉ việc". Tuy nhiên, trên thực tế phương pháp này mới chỉ được sử dụng trong các trường hợp đặc biệt như đào tạo nhân viên mới, triển khai một qui trình làm việc mới....

image

"On-job training"

Learning by Doing by BrianCSmith.

"Learning by experiment"

learning by doing cartoons, learning by doing cartoon, learning by doing picture, learning by doing pictures, learning by doing image, learning by doing images, learning by doing illustration, learning by doing illustrations

Lợi điểm của phương pháp đào tạo này:
- Cực kỳ hiệu quả trong việc nhanh chóng trang bị kỹ năng về một lĩnh vực nào đó cho học viên, đặc biệt là lĩnh vực lập trình
- Tiết kiệm thời gian cực lớn, còn khoảng 20% so với các phương pháp khác đồng thời tạo hứng thú sáng tạo cho học viên, điều này cực kỳ quan trọng vì nó giúp học viên duy trì được niềm đam mê lập trình

Bất lợi của phương pháp này:
- Sự đầu tư cực lớn từ phía giảng viên và trung tâm đào tạo, mỗi lớp học phải cắt giảm xuống còn dưới 5 người

Bởi vì JDTC chấp nhận dấn thân để xây dựng một "talent pool", một trung tâm sản sinh ra các lập trình viên chất lượng, phục vụ mạnh mẽ cho nhu cầu của ngành CNTT trong nước và quốc tế. Như những hạt giống, sức sống từ những học viên này sẽ lan tỏa rộng ra, góp phần đổi mới tư duy đào tạo nhân lực CNTT ở Việt Nam.

Dự án thực tế?
JDTC tin rằng chỉ với dự án thực tế, học viên mới có thể trưởng thành. Ở JDTC, chúng tôi có một số lượng đáng kể các dự án đang triển khai giúp học viên làm quen với thực tế. Và một số lượng lớn các dự án mã nguồn mở mà chúng tôi đang cộng tác phát triển sẽ giúp học viên tiếp cận nhanh nhất với nền CNTT thế giới.

Việc làm sau tốt nghiệp?
JDTC đã thiết lập mối quan hệ với một số lượng các công ty có nhu cầu về lập trình viên Java. Chúng tôi sẽ hỗ trợ bạn tìm kiếm công việc với mức lương hợp lý và thăng tiến.

Ai có thể học?
- Sinh viên các trường ĐH chuyên ngành về CNTT, hoặc các ngành khác
- Sinh viên đã tốt nghiệp
- Các lập trình viên trong các doanh nghiệp, muốn trang bị hướng kiến thức mới
- Học sinh phổ thông yêu thích lập trình

Time and place of study
?
Flexible time: 9AM-8PM.
Place of study:
Java Developer Training Center

29 D14B street, Tay Thanh ward, Tan Phu dist. HCMC
Tel:08-3 815 62 68 (MS Khanh Huong)
Email: javadevelopervietnam@gmail.com
Website: http://javadevelopervietnam.org (underconstruction)
blog: http://javadevelopervietnam.blogspot.com

Tuesday, February 23, 2010

Blackbox testing và Whitebox testing

Có 2 trường phái test hoạt động khác nhau về nguyên lý nhưng thực chất bổ sung cho nhau. Có thể bạn đã nghe nói nhiều về Black and White rồi nhưng trên thực tế thì nó hoạt động động như thế nào chắc có thể nhiều nhiều chưa nắm rõ lắm. Xin mạo muội viết vài dòng:
- White box tesing: là cách thức test dựa trên code của chương trình, sau đó viết các test case nhằm phủ kín (coverage) các trường hợp cần test. Có WBT có 2 loại: Control flow và Data flow

+ Control flow: nghe khá rối rắm nhưng thực ra rất đơn giản.
Các bạn biết trong các ngôn ngữ lập trình các lệnh sẽ được thực hiện theo các cách sau:
1. Tuần tự:
2. Rẽ nhánh: như if... else...
3. Vòng lặp: for, while, loop
Như vậy nếu mình lập ra các trường hợp test cho phủ kín các cấu trúc nào thì coi như đạt yêu cầu
Ví dụ.
if (x>0)
{

}
else
{

}
Cần phải có 2 test case: 1. x>0 2. x<=0 + Data flow: Tập trung vào kiểm tra giá trị của các biến trong chương trình Biến sẽ xuất hiện theo 2 dạng: khai báo và gán giá trị Biến sẽ được sử dụng theo 2 cách: predicate (kiểm tra điều kiện) và computational (tính toán) Trên thực tế, để hiện thực cách test này phải xây dựng sơ đồ Control Flow Diagram hoặc Data Flow Diagram. Việc này có thể thực hiện tự động bằng cách phần mềm hỗ trợ. Sau khi viết các test case, có thể chạy các Coverage Tool để xem độ phủ code bao nhiêu, chỗ nào cần phải viết thêm test case. Black box testing: là phương pháp test dựa trên đầu vào và đầu ra của chương trình để test mà không quan tâm tới code bên trong được viết ra sao. Phương pháp này thường dùng để test chức năng của chương trình. Có nhiều phương pháp dành cho BBT nhưng tựu trung trải qua 3 bước sau:
1. Phân chia giá trị đầu vào thành các miền giá trị khác nhau
2. Tổ hợp các miền giá trị của các đầu vào, mỗi tổ hợp là 1 test case
3. Dựa trên ràng buộc giữa các đầu vào để giảm bớt số lượng test case.

Các phương pháp phổ biến
- Equivalence Class Partition
- Boundary Value Analysis
- Category Partition
- Cause Effect Graph

Ví dụ. Kiểm tra chức năng đăng nhập
Đặc tả: nhập user name và password, nếu đúng thì báo đăng nhập thành công, nếu sai thì báo sai mật khẩu.

Input:
- username
- password
Output:
- sai username và password
- đúng username và password

Như vậy ở đặc tả này không nói rõ yêu cầu về độ dài, kiểu ký tự của 2 thông số username và password nên ta có thể chọn bất kỳ. Ở output có 2 trường hợp đầu ra nên ta cần có 2 test case
1. Sai username và password
2. Đúng username và password

Đặc tả khác: nhập user name và password, nếu đúng thì báo đăng nhập thành công, nếu sai thì báo sai mật khẩu. Username phải có độ dài từ 4-25 ký tự, nếu không sẽ hiện thông báo yêu cầu nhập lại.

Trong trường hợp này, thì giá trị đầu vào của username có được phân thành 3 miền giá trị như sau:
- (1) độ dài của chuỗi username từ 0-3
- (2) độ dài của chuỗi username từ 4-25
- (3) độ dài của chuỗi username từ >25

Như vậy ta phải có 3 test cases cho 3 trường hợp này, đồng thời trong trường hợp 3, ta cần 2 test case nhỏ nữa cho 1. đúng username 2. sai username
Số test case tổng cộng: 4
Kết luận: số lượng test case phụ thuộc rất lớn vào đặc tả (specification) phần mềm

Áp dụng phương pháp Category Partition cho ví dụ trên
-username (u), độ dài:
1 0-3: Error
2 4-25: [property hople]
3 >25: Error
-password (p):
bất kỳ
-output (o):
1 đăng nhập thành công: [if hople]
2 đăng nhập không thành công: [if hople]
Ta có tổng cộng 4 test case như sau:
u1: username = "ab"
u2po1: username = "javadevelopervietnam.org", password="Great_Course", và tồn tại user này trong hệ thống
u2po2: username = "javadevelopervietnam.org", password="Great_Course", và không tồn tại user này trong hệ thống
u3: username = "abc23593945734973454386054654"












Monday, February 22, 2010

Tại sao phần mềm cần Verification and Validation?

Đây là một chủ đề hay, mà JDVT muốn giới thiệu với các bạn. Ở Việt Nam, người làm test thường bị đánh giá thấp hơn developer. Sinh viên mới ra trường ít ai chịu làm test. Có 1 bạn hỏi ý kiến tôi khi được offer 2 jobs: lập trình viên ở 1 công ty nhỏ, tester ở 1 công ty lớn là liệu bạn nên chọn công ty nào. Tôi trả lời là tùy theo sở thích của em nhưng cuối cùng em đó chọn làm cho công ty lớn.

Vậy thì tầm quan trọng của Verification and Validation (SVV) như thế nào. Tôi trích ở đây một số thông tin từ GS Lion Brian, chuyên gia về SVV, từng tham gia kiểm thử phần mềm cho dự án tàu vũ trụ Ariane.

- Software ngày nay đã phổ biến (prevelant) và tràn lan (pervasive)
- Các đặc tính của phần mềm:
1. Người ta nói phần mềm được phát triển (development) chứ không phải được sản xuất (production). Không có khái niệm sản xuất phần mềm hàng loạt.
2. Sự tham gia của nhân tố con người
3. Là một kỹ nghệ nhưng cũng là 1 quá trình xã hội
4. Phần mềm ngày càng trở nên phức tạp
5. Lan tỏa đến ngày càng nhiều lĩnh vực

Lỗi (error) là gì?
- Lỗi lầm là 1 phần của cuộc sống
- Lỗi xảy ra trong suy nghĩ, hành động, và trong các sản phẩm do con người làm ra
- Lỗi chắc chắn sẽ xảy ra khi có sự tham gia của con người

Các lỗi phần mềm nổi tiếng và nguyên nhân:
- Nổ phi thuyền Ariane 5 năm 1996:
Chỉ sau 40s khi cất cánh, ở độ cao 3700m, phi thuyền mất lái và nổ tung
Nguyên nhân:
Đoạn chương trình chuyển đổi số thực sang số nguyên có dấu 16bit nhận vào dữ liệu ngoài tầm giá trị, dẫn tới shutdown cả 2 hệ thống máy chạy thực và backup, dẫn đến mất điều khiển phi thuyền và phát nổ.
- Vụ rơi máy bay F18: do có 1 đoạn chương trình thiếu điều kiện else vì nghĩ rằng điều kiện này không thể xảy ra.
- Vụ nổ phóng xạ Therac 25: một bệnh nhân nhận được 16500-25000 phóng xạ trong vòng 10s và trên 1 diện tích 1 cm. Bệnh nhân này mất 1 cánh tay, và chết sau đó 5 tháng.

Một số khái niệm về lỗi
- Incident
- Failure
- Error
- Bug

Như vậy, với vai trò cốt cát trong việc đảm bảo chất lượng phần mềm, software verification and validation buộc phải là một khâu quan trọng trong qui trình phát triển phần mềm

Bình luận của JDTC:
- Làm test không có gì là xấu, nhiều người nói nó nhàm chán đòi hỏi kỹ năng bậc thấp. Những người làm test hoặc tuyển dụng tester thì nói test là một nghệ thuật, đòi hỏi trí tuệ.
- Có những công ty làm outsourcing nhưng hầu như toàn bộ là làm test. Hiển nhiên với các hệ thống lớn, làm test cũng đã là vinh dự
- Đối với các bạn sắp ra trường: phần mềm là một chuỗi các qui trình, làm test là một khâu trong đó. Nếu bạn vì cơ duyên nào đó tham gia vào công đoạn này thì cũng đừng băn khoăn vì career path cũng rất sáng ví dụ như thăng chức lên Test manager, QA manager là bình thường.
- Đối với các nhóm hoặc công ty làm phần mềm nhỏ: đừng nghĩ nhỏ mà không cần test hoặc test sơ sài. Đừng nghĩ Unit Test là nhàm chán, unit test có thể giúp khu trú và phát hiện ra lỗi ngay từ đầu, nếu để sau này khi đã tích hợp vào ứng dụng mà phát sinh ra lỗi, khả năng tìm ra nguyên nhân gây lỗi cực kỳ khó - không biết bao giờ mới fix lỗi xong, trong công nghệ phần mềm gọi là "unpredictable".

Sunday, February 21, 2010

Một cách nhìn khác về Rational Unified Processes (RUP)

Đôi khi khi xin phỏng vấn đi làm, bạn thường được hỏi có biết về RUP hay không. Đây là một trong nhưng kiến thức được yêu cầu khi làm trong các dự án phần mềm. Kiến thức này cũng có được giới thiệu trong môn học Công nghệ phần mềm trong các trường ĐH nhưng ít được chú ý tới. Thông thường mọi người đều cho rằng phát triển một phần mềm sẽ đi quá các bước Phân tích - Thiết kế - Viết code - Test - Triển khai. RUP hơi khác một chút:

Tôi tóm ở đây 4 điểm quan trọng theo tham khảo từ một bài viết Internet ( http://www.ambysoft.com/unifiedprocess/rupIntroduction.html)
- Large in serial:
Một dự án phần mềm sẽ được chia thành 4 pha tuần tự nhau: Inception - Elaboration - Construction - Transition

- Small in interaction:
Trong mỗi pha sẽ gồm có một chu trình gồm hàng loạt các bước như sau: Business Modeling - Requirement - Analysis & Design - Implementation - Test - Deployment - Configuration & Change Management - Project Management - Environment


- Delivering incremental releases over time:
Theo như tác giả, một phần mềm sẽ tiến hóa theo thời gian qua các phiên bản khác nhau. Sau khi kết thúc 1 chu kỳ 4 pha, các tính năng mới hoặc các yêu cầu mới, các cải tiến về công nghệ sẽ được thêm vào hệ thống bằng 1 chu kỳ 4 pha khác. Trong mỗi pha của chu kỳ mới này, lần lượt 9 discipline sẽ được thực hiện.

- Following proven best practice:
Khi làm bất cứ một công việc gì dù lớn hay nhỏ đều cần có qui trình, qui trình giúp phân công công việc hợp lý và đảm bảo chất lượng. RUP là một chuẩn qui trình đã được nghiên cứu, xây dựng, và áp dụng phổ biến trong ngành công nghiệp phần mềm, cho nên việc sử dụng lại thay vì tự xây dựng 1 qui trình riêng cho mình là một điều cần lưu ý.
Các best practices (những kinh nghiệm xương máu) được đúc kết:
1. Adapt process:
Nghĩa là phải customize các qui trình này cho phù hợp với hoàn cảnh thực tế chứ không máy móc áp dụng

2. Balance competing stakeholder priorities:
Các stakeholders (thành phần tham gia trong dự án) có những ưu tiên riêng, do vậy cần phải cân
bằng không nên thái quá

3.Collaborate across teams:
Nói ngắn gọn chính là phải có teamwork, phải biết phối hợp và chuyền bóng

4. Demonstrate value iteratively.
Cái này có vẻ quan trọng, nghĩa là trong mỗi pha, cần phải cho khách hàng thấy được prototype của sản phẩm ở mức độ nào đó để họ có thể cho phản hồi và nếu có thay đổi thì có thời gian điều chỉnh sớm hơn.
Thuật ngữ chuyên ngành gọi là "Change Management", nghĩa là các yêu cầu vốn luôn thay đổi của khách hàng cần phải được kiểm soát.

5. Elevate the level of abstraction.
Nâng cao mức độ trừu tượng để thấy hết các rủi ro, khả năng đáp ứng của công nghệ để có thể xây dựng 1 kiến trúc phù hợp

6. Focus continuously on quality.
Cái này khỏi bàn, vì chất lượng là yếu tố quyết định của bất cứ sản phẩm gì. JavadeveloperVietnam Training sẽ có 1 loạt bài bình luận thêm về vấn đề rất hấp dẫn này (Software verification and validation).
Đảm bảo chất lượng phần mềm phải được thực hiện ở các bước chứ không chỉ riêng bước testing.
Trong Agile Development, Test Driven Devlelopement, nghĩa là viết unit test trước khi viết code thực sự, được thực hiện nhằm đảm bảo các dòng code viết ra đảm bảo chất lượng.

Bình luận của JDVT:
- Đau đầu nhất trong phát triển phần mềm là thay đổi yêu cầu hoặc không hiểu hết yêu cầu của nghiệp vụ. Các biện pháp nêu ở trên chỉ có thể làm giảm nhẹ thiệt hại chứ không thể giải quyết triệt để vấn đề bởi vì nhiều lý do
1. Cái chúng ta biết là hữu hạn, cái chưa biết là vô hạn.
2. Side effect (hiệu ứng lề): sửa cái này nó ảnh hưởng cái khác
3. Ở các dự án phần mềm viết mới, vấn đề này làm đau đầu nhất. Còn trong các dự án triển khai phần mềm có sẵn, chỉnh sửa theo yêu cầu, vấn đề sẽ nhẹ nhàng hơn.
- Băn khoăn thiết kế (tạm dịch: dilema of design): cùng một yêu cầu nên thiết kế thế nào cho phù hợp, chọn nhanh nhưng cứng hay chọn mềm dẻo nhưng mất thời gian.

- Ở Việt Nam, và có lẽ cả trên thế giới, hiện nay các công ty phần mềm quản lý đều dần đi theo xu hướng làm phần mềm chuyên dụng, tạm gọi là làm một lần - bán nhiều nơi. Các nhóm lập trình phần mềm nghiệp dư, đầu tư ít, lấy giá xây dựng phần mềm rẻ, làm lan man nhiều loại phần mềm khác nhau sẽ khó tồn tại vì nhiều vì lý do:
1. Chất lượng phần mềm viết ra không đảm bảo
2. Viết cứng (hardcode) nhiều chỗ nên khó có thể bán ở chỗ khác
3. Do viết phần mềm đủ các lĩnh vực nên không chuyên, thiếu kiến thức
4. Cuối cùng, bởi vì không có thương hiệu, uy tín thấp, sản phẩm không chất lượng nên chỉ có thể bán cho các công ty nhỏ, giá rẻ --> không đủ tiền để bù chi phí bỏ ra --> chán nản, dẹp tiệm

Saturday, February 20, 2010

Các lợi ích khi học tại Java Developer Training Center (JDTC):

- Tiết kiệm thời gian:
Như ở bệ phóng của tàu con thoi, năng lượng được tích tụ cực đại được giải phóng để đẩy con tàu đi xa,
tại JDTC kiến thực và kỹ năng của bạn sẽ được nén cực đại cho đến khi kết thúc và vượt qua được kỳ thi cuối khóa, năng lượng sẽ được giải phóng giúp bạn nhanh chóng vững vàng khi đi xin việc, tự tin mở rộng và thu nạp kiến thức mới từng ngày.

- Chi phí thấp:
Với chi phí ở mức rất cạnh tranh chỉ bằng 1/20 (tính cho 3 khóa học) các khóa học lập trình viên quốc tế, cộng với các chương trình học bổng khuyến học từ 50-90% học phí, tất cả bạn trẻ yêu thích lập trình Java đều có thể tham dự khóa học.

- Hiệu quả đầu tư cao:
Với kỹ năng và kiến thức tích lũy sau khóa học, bạn có thể tự tin đàm phán và nhà tuyển dụng mức lương hợp lý cao hơn từ 20% nếu bạn chưa có kinh nghiệm và kiến thức về Java. Nếu tính mức lương trung bình của 1 lập trình viên Java mới ra trường là khoảng 5 triệu/tháng thì trong 1 tháng bạn đã có thể thu hồi vốn đầu tư của mình.

- Nâng cao kỹ năng Anh văn giao tiếp khi đi phỏng vấn xin việc:
Ngôn ngữ giảng dạy là tiếng Anh rèn luyện cho bạn khả năng giao tiếp khi bạn cần phỏng vấn các công ty đòi hỏi tiếng Anh

- Học các công nghệ mới nhất:
Chương trình đào tạo sẽ luôn cập nhật các kiến thức mới nhất về công nghệ Java giúp bạn luôn đi đầu

- Học lại nếu thi trượt:
Chất lượng đào tạo được cam kết ở mức cao nhất khi học viên thi trượt sẽ được yêu cầu học lại cho đến khi đậu.

Và còn nhiều lợi ích khác bạn sẽ dần khám phá sau khi đăng ký khóa học.

Đăng ký ngay bằng cách gửi email đến: javadevelopervietnam@gmail.com
- Khai giảng lớp mới mỗi ngày
- Thời gian học: 9AM - 8PM, học viên tự chọn giờ học phù hợp trong khoảng thời gian trên

Time and place of study?
Flexible time: 9AM-8PM.
Place of study:
Java Developer Training Center

29 D14B street, Tay Thanh ward, Tan Phu dist. HCMC
Tel:08-3 815 62 68 (MS Khanh Huong)
Email: javadevelopervietnam@gmail.com
Website: javadevelopervietnam.org (underconstruction)
blog: http://javadevelopervietnam.blogspot.com


Các khóa học hấp dẫn về Java

JDTC thiết kế chương trình đào tạo Lập trình viên Java theo 3 khóa học độc lập và bổ sung cho nhau. Hoàn thành 3 khóa này, bạn có đủ kiến thức và kỹ năng để tự xây dựng một ứng dụng hoàn chỉnh sử dụng những công nghệ Java hot nhất hiện nay. Giới thiệu một số công nghệ tiêu biểu:

Java fundamentals: khóa học này giúp bạn làm quen với các khái niệm cơ bản của Java, cú pháp, kiểu dữ liệu, JDK, JRE, classpath, biến môi trường; viết ứng dụng đầu tiên Hello World, viết một ứng dụng tương đối phức tạp sử dụng tổng hợp kiến thức đã học; sử dụng IDE Eclipse
Spring: framework nổi tiếng nhất trong Java, một sự thay thế hoàn hảo cho EJB trong các ứng dụng J2EE, một de facto standard trong công nghiệp phần mềm hiện nay
Struts2: một cuộc cách mạng trong kiến trúc MVC, một phiên bản thay thế đáng giá sau 10 ngừng phát triển của framework quá nổi tiếng Struts trong quá khứ
Hibernate: Object-Relational mapping (ORM) framework phổ biến nhất, một "máy ảo cho cơ sở dữ liệu", giúp giải thoát cơn ác mộng cho ứng dụng chạy trên nhiều hệ quản trị cơ sở dữ liệu khác nhau
Hệ quản trị cơ sở dữ liệu mã nguồn mở thông dụng, đầy đủ các tính năng mạnh mẽ đáp ứng yêu cầu cho bất cứ một ứng dụng quản lý nào.
Course 1. Java fundamentals
- Code: 10JF
- Content: Java language, maven, Eclipse, mysql, html, css, javascript
- Duration: 20hours
- Instructor:
- Language of instruction: English, Vietnamese
- Outcomes: being confident to start to work as Java developer, setting up a foundation for grow in Java career.
- Tuition fee: 999.000 VND/person
- New class opening every day
- Certificate awarded by JDTC after passing the final exam
- Quality warranty of the course: Re-take the course if failing the exam

Register this course by sending a mail to javadevelopervietnam@gmail.com

Course 2. Building J2EE applications - foundation
- Code: 10BF
- Content: review of Java language, maven, Eclipse, mysql, html, css, javascript, and go deeper; Spring, Hibernate, Struts2, MVC, design pattern, Ajax; building a complete J2EE application compatible with MVC architecture.
- Duration: 20hours
- Instructor:
- Language of instruction: English, Vietnamese
- Outcomes: become a developer of J2EE applications
- Tuition fee: 999.000 VND/person
- New class opening every day
- Certificate awarded by JDTC after passing the final exam
- Quality warranty of the course: Re-take the course if failing the exam

Register this course by sending a mail to javadevelopervietnam@gmail.com

Course 3. Building J2EE applications - advanced
- Code: 10BA
- Content: advanced topic in Java language, maven, Eclipse, mysql, html, css, javascript, and go deeper; Spring, Hibernate, Struts2, MVC, design pattern, Ajax; Modern graphical user interface design; Design and building an J2EE application; Modular design.

- Duration: 20hours
- Instructor:
- Language of instruction: English, Vietnamese
- Outcomes: become an expert in J2EE
- Tuition fee: 999.000 VND/person
- New class opening every day
- Certificate awarded by JDTC after passing the final exam
- Quality warranty of the course: Re-take the course if failing the exam
Register this course by sending a mail to javadevelopervietnam@gmail.com

Time and place of study?
Flexible time: 9AM-8PM.
Place of study:
Java Developer Training Center

29 D14B street, Tay Thanh ward, Tan Phu dist. HCMC
Tel:08-3 815 62 68 (MS Khanh Huong)
Email: javadevelopervietnam@gmail.com
Website: javadevelopervietnam.org (underconstruction)
blog: http://javadevelopervietnam.blogspot.com

Có một cách học lập trình khác?

Có lúc nào bạn làm một thống kê trong đầu liệu có bao nhiêu phương pháp học lập trình chưa?
Java Developer Training giúp bạn làm một liệt kê:
- Đăng ký 1 khóa học lập trình tại các trung tâm Tin học
- Đăng ký học Lập trình viên quốc tế
- Thi đại học ngành CNTT
- Học ĐH bằng 2 CNTT
- Mày mò tự học bằng các ví dụ trên Internet thông qua google search
- Mua sách ở nhà sách về tự đọc
- Mua đĩa CD về cài và đọc sách điện tử

"Hùng vĩ đến nghẹt thở" (http://vietnamnet.vn/cntt/2009/02/826476/) cảnh phóng phi thuyền không gian.

Học lập trình bạn nhất thiết cần 1 bệ phóng như vậy.

Java Training Developer cho bạn bệ phóng để bay xa


Các cách học kể trên đều có những ưu khuyết điểm khác nhau nhưng tựu chung đều không mang hiệu quả như mong muốn. Đây cũng là thực trạng chung của đào tạo CNTT ở Việt Nam. Nhiều kế hoạch, dự án, tiền bạc, và công sức đã được đổ ra để khắc phục các điểm yếu trong đào tạo tuy nhiên hiệu quả còn phải đợi thời gian trả lời (http://vnexpress.net/GL/Vi-tinh/2003/01/3B9C4418/).

Khi mà thời gian không chờ đợi ai, khi công nghệ vẫn từng ngày thay đổi, việc xoay sở để tự "cứu" lấy mình có thể xem là một "thuc thoi".

Là những người đã trải qua kinh nghiệm thực tế dạy, học, hướng dẫn sinh viên tại Việt Nam, chúng tôi đã phát triển những khóa học được thiết kế đặc biệt để đào tạo Lập trình viên Java, đáp ứng yêu cầu nhân lực cho các công ty trong nước và nước ngoài đóng tại Việt Nam.

Liên lạc ngay với chúng tôi qua email: javadevelopervietnam@gmail
.com để biết thêm chi tiết về các khóa học này.

Time and place of study?
Flexible time: 9AM-8PM.
Place of study:
Java Developer Training Center

29 D14B street, Tay Thanh ward, Tan Phu dist. HCMC
Tel:08-3 815 62 68 (MS Khanh Huong)
Email: javadevelopervietnam@gmail.com
Website: javadevelopervietnam.org (underconstruction)
blog: http://javadevelopervietnam.blogspot.com