Võ Văn Hải's blog

Chỉ có một điều tuyệt đối đó là mọi thứ đều tương đối…

Java hay .NET? Một bài toán nan giải của nhiều Newbie

Posted by Võ Văn Hải on June 30, 2010

Có rất nhiều bạn đang rất phân vân khi không biết chọn hướng nào, có bạn đã định hướng trước là chọn Java nhưng nghe nói .NET hay quá cũng phân vân, có bạn chọn .NET rồi nhưng lại thấy tiếc, có bạn muốn chọn cả hai thì sợ mình kham không nổi. Chính chủ nhân blog này đã từng gặp phải hoàn cảnh như vậy, nhưng khi đọc qua một số bài viết trên một diễn đàn IT thì tôi mới ngộ ra được nhiều điều. Tôi nghĩ bài viết này cũng rất có ích cho nhiều bạn trẻ khi mới tập tành học lập trình … Cám ơn các tác giả có nickname YHT và davidex về bài phân tích khá chi tiết này.

Bài viết này không nhằm vào mục đích so sánh khía cạnh kỹ thuật giữa hai công nghệ J2EE và .NET mà sẽ đi vào phân tích xem bạn nên chọn hướng nào và tại sao.

Khi so sánh giữa sinh viên đại học và sinh viên ở các trung tâm đào tạo (điển hình là ở Đại học Bách khoa Tp.HCM và học viện CNTT NIIT Vietnam) chúng ta thường hay nhắc sinh viên đại học được học nhiều kiến thức nền tảng trong khi sinh viên NIIT lại học chuyên về những công nghệ mới. Sinh viên NIIT khi ra trường có khả năng đáp ứng yêu cầu công việc nhanh nhưng lại chậm thích ứng với những công nghệ mới trong khi sinh viên đại học thì đa phần là ngược lại (dùng từ đa phần vì trong môi trường nào cũng có kẻ mạnh kẻ yếu cả). Sở dĩ có chuyện này vì các bạn ở NIIT quen cách học 1+1=2 nên khi ra trường có người bảo 1+1=0 nhớ 1 thì các bạn ú ớ không làm việc được và phải mất một khoảng thời gian khá lâu để có thể thích nghi. Các bạn quen với lối mòn là dạy gì học đấy, không dạy không học, quen với cách học là thầy dạy phải theo sách, phải gạch gạch tô tô trong sách mới được, khi giảng một phần nào ngoài sách lúc đó không chịu ngồi nghe để hiểu mà loay hoay tìm coi nó nằm ở phần nào trong sách để gạch. Khi giảng viên cung cấp tài liệu đọc thêm có nghĩa là những tài liệu đó đã được sàng lọc cẩn thận thế mà tỉ lệ các bạn đọc nó là rất ít (đọc thôi chứ chưa quan tâm đến chuyện hiểu nó).

Có một lần tôi tình cờ đọc được câu “chúng ta học cách chạy xe chứ không phải học cách chạy cái xe cụ thể nào cả” ở một blog của ai đó, suy nghĩ lại cũng hay. SV đại học họ được học quá nhiều môn nền tảng cần thiết như Cấu trúc dữ liệu, Phân tích thiết kế giải thuật, Phân tích thiết kế hệ thống,…trong khi SV NIIT cứ mải mê chạy theo công nghệ mới. Thế giới công nghệ đâu chỉ có Java hay .NET, nó còn có PHP, còn có Python, Perl, Ruby rồi còn cả C, C++ , Assembly nữa cơ, nếu bạn học chạy chiếc xe Java sau này có chiếc xe “tay ga” JaJava thì bạn có tự tin là mình chạy tốt không? SV Đại học giống như họ học nguyên tắc chung để chạy xe sau đó họ TỰ tìm cho mình một chiếc xe phù hợp với mình nhất và họ chạy, sau này thế giới có ra đời loại xe mới thì anh ta có thể điều khiển nó một cách không quá khó khăn. Thế còn trong NIIT thì sao? Trong NIIT các bạn lại an tâm rằng mình chỉ cần học cách chạy chiếc Java cá tính hay chiếc .NET sang trọng là được rồi, mấy xe khác không quan tâm.

Quay lại vấn đề chọn hướng nào, tôi xin đưa ra một vài quan điểm chủ quan của mình về hai công nghệ này. Công nghệ nào cũng có cái hay của nó cả, người mạnh mặt này, kẻ mạnh mặt kia, đối với ứng dụng này thì công nghệ này là phù hợp, ứng dụng khác lại khác, đối với khách hàng này thì nên chọn cái này trong khi khách hàng khác thì ngược lại. Thế nếu tôi chỉ biết về một công nghệ thì tôi làm sao có khả năng chọn lựa đây? Bạn sẽ hỏi ngược lại, nếu cái gì tôi cũng học hết thì làm sao tôi chịu nổi đây (không xét trên khía cạnh tài chính)? Cái quan trọng là sức bạn đến mức nào thôi!

Nếu bạn chật vật với những bài project cuối mỗi học kỳ, bạn phải chạy xin người này xin người kia, bạn rất yếu trong việc tìm hiểu một cái mới thì tôi nghĩ .NET là sự chọn tốt nhất. Bởi vì theo quan điểm của “dân .NET”, theo Microsoft (MS) cái gì cũng dễ cả, có sẵn hết rồi, kéo kéo 1 tí cũng ra cái ứng dụng, thậm chí làm cái Outlook không quá 3 ngày mà (nếu biết kết hợp các component có sẵn). Không phải không có lý khi nói như vậy vì công nghệ của MS là công nghệ “đóng” nên tất cả đều theo chuẩn của MS, mà cái Windows thì đi đâu cũng thấy nên dễ dàng tiếp cận cũng đúng. Làm việc thì bám theo một IDE (Visual Studio), theo đúng một mô hình MS đưa ra nên học sao làm vậy, nhanh ơi là nhanh. .NET cũng có những công nghệ, framework khác tuy nhiên chúng ít được ưa chuộng, ví dụ NHibernate, NStruts… Đã chọn .NET thì đừng hỏi tôi là chọn VB.NET hay C#, cái nào cũng được cả và NIIT dùng VB.NET để dạy phần đầu của .NET.

Thế theo Java (J2EE) thì sao? Nếu bạn yêu thích đam mê tìm tòi, bạn có khả năng tìm hiểu tốt một kỹ thuật mới, bạn không ngại gian khổ ở bước đầu tiên thì bạn hãy chọn hướng Java. Nói gian khổ có quá không? Cái chính là công nghệ Java có một lô các công nghệ khác đi theo nó mà bạn phải tìm hiểu như là JSP, Servlet, EJB, JDBC, JNDI, JMX, RMI… rồi lại đi đâu cũng nghe framework này framework kia như Struts 1, Struts 2, Spring, WebWork, JSF, Hibernate, TopLink, …tiếp đến là chọn tool nào phát triển đây: Eclipse, Netbeans, JBuilder, IDEA, Sun Java Studio, Oracle JDeveloper… rồi chọn web server nào để triển khai đây Websphere, WebLogic, JBoss, Tomcat…. Bạn bảo .NET design giao diện nhanh nhưng bạn có biết thế giới Java còn có WindowBuilder, có Visual Editor, có Swing Designer, có Matisse? Bạn bảo tool .NET làm web nhanh thế bạn đã dùng MyEclipse chưa? Bạn bảo .NET nhiều thư viện thế bạn dùng Commons chưa? Bạn cho rằng ứng dụng Java chạy chậm thế bạn có biết Java 6 đã cải tiến nhiều về tốc độ không?bạn có biết rằng thế giới Java đâu chỉ có AWT, Swing mà còn có SWT không? Thế giới Java có một rừng công nghệ con trong đó, nên để tìm hiểu cho vững Java thôi bạn có thể tốn cả cuộc-đời-lập-trình của mình rồi đấy!

Nếu bạn đang phân vân không biết chọn hướng nào và bạn thật sự giỏi thì tôi khuyên bạn hãy chọn cả hai hướng. Nghiên cứu nhiều hướng không bao giờ thừa cả. Tuy nhiên cùng một lúc bạn không thể học hai hay nhiều hướng vì dễ dẫn đến “tẩu hoả” bạn hãy chọn cho mình một hướng đi và hãy tìm hiểu nó cho thật thật kỹ vào, khi đã vững một công nghệ rồi thì bạn có thể bay sang những công nghệ khác để tìm hiểu. Nếu bạn cứ mải mê chạy theo công nghệ mới thì chắc bạn sẽ phải chạy suốt đời mà chẳng làm được gì cho ra hồn cả. Công nghệ thay đổi hàng ngày, hàng giờ nên bạn đang học 1 thế giới đã ra đời 100 cái mới rồi. Bạn chỉ cần nắm những cái cốt lõi nhất sau đó tha hồ mà bay nhảy, dù có cho ra JaJava hay dotdotNet bạn cũng không sợ vì bạn đã xây cái móng vững chắc rồi! Ví dụ tôi chưa từng được học VB6 nhưng khi có một chương trình nào đó bắt buộc làm bằng VB6 tôi chỉ cần tìm vài tài liệu về nó sau đó làm vài demo nho nhỏ là có thể bắt tay vào làm chương trình được rồi. Đương nhiên trình độ về VB6 của tôi không bằng những người đã nghiên cứu nó từ lâu nhưng những gì tôi học được ở công nghệ khác sẽ giúp tôi tiếp cận và làm việc được trên VB6 dễ dàng.

Có ý kiến cho rằng Java bảo mật hơn .NET, tôi không bàn về khía cạnh sâu bên trong kiến trúc mà tôi muốn triển khai ý bảo mật ở đây là thế nào. Nói đến bảo mật có nhiều dạng, nhiều lớp, bạn nói Java bảo mật hơn là muốn đề cập ở mức nào? Nếu ngôn ngữ đó bảo mật nhưng người lập trình code ẩu thì liệu nó có bảo mật không? Bạn đừng nói với tôi là hệ thống bạn có một Firewall tốt, một IDS thông minh, một con PIX của Cisco mới mua hàng ngàn đô là bảo mật hơn hệ thống của tôi, bảo mật hay không do tài của bạn điều khiển các công cụ của hệ thống bạn kìa! Bạn có biết hệ thống có thể bị tấn công ở nhiều lớp khác nhau?nếu bạn bảo mật được lớp ứng dụng liệu các lớp khác có an toàn không?

Nhiều người có quan điểm rất cực đoan, theo .NET là chê thậm tệ Java, không thèm tìm hiểu gì về nó hoặc ngược lại. Tôi thì không đồng tình với quan điểm này, đã là dân kỹ thuật thì không từ bỏ một công nghệ nào hay cả, mình không học nổi hết thì cũng nên xem coi nó là cái gì để mở mang tầm mắt của mình. Một quan điểm cực đoan như vậy sẽ chẳng có gì gọi là hay cả và nó chỉ có hại cho bạn mà thôi.

Nếu xét về cơ hội việc làm thì sao? .NET dễ kiếm việc hơn Java hay ngược lại? bạn có biết vừa rồi PSV có đợt tuyển ào ạt các chuyên viên J2EE không? .NET cũng vậy, cơ hội có việc làm là ngang nhau, cái chính vẫn là khả năng của bạn. Bạn giỏi rồi thì dù là Assembly bạn cũng có đất dụng võ!

Trong chương trình J2EE ở NIIT không thể dạy được tất cả, khi bạn học theo hướng này thì giảng viên sẽ cố gắng chỉ các bạn những phần cốt lõi nhất sau đó sẽ phụ đạo thêm về các công nghệ như JSF, Struts, JPA, Hibernate,… để bạn có thể thích ứng nhanh với công việc sau này.

Nếu quyết định chọn J2EE hay .NET rồi thì các bạn cũng nên tìm các tài liệu về các môn cơ sở ở đại học để tìm hiểu nhằm nâng cao kiến thức của mình. Hãy biết quý trọng khoảng thời gian bạn đi học để đầu tư nghiên cứu cho tốt. Thời điểm này chưa phải là lúc bạn phải chạy tới chạy lui tìm việc làm thêm nếu như gia đình bạn có khả năng tài chính đủ để nuôi bạn ăn học, hãy tập trung vào việc học 100%.

Hy vọng qua bài viết này bạn sẽ chọn được cho mình một định hướng phù hợp. Dù bạn chọn hướng nào tôi cũng xin lưu ý bạn là hãy theo hướng đó tới cùng, đừng chạy qua chạy lại cuối cùng sẽ không được gì đâu. Chúc các bạn thành công!

(Theo YHT – Forums.2it.in)

Làm một cái so sánh nho nhỏ giữa Java và .NET:

Ưu điểm:
.NET:
– Dễ phát triển, tools hỗ trợ cực tốt (Visual Studio)
– Phát triển giao diện rất dễ dàng trên Windows.
– Làm việc tốt với tất cả các công nghệ khác của Microsoft (COM, DCOM)
JAVA:
– Kiến trúc thiết kế rất tốt.
– Cộng đồng mạnh, do là công nghệ mở -> nhiều công nghệ hay ho xuất hiện từ cộng đồng (Vd: Hibernate, Spring…)
– Chạy tốt trên nhiều platform khác nhau (nhất là trên linux).

Nhược điểm:
.NET:
– Chỉ chơi tốt với “hàng” của Microsoft.
– Mã nguồn đóng, tuy các thiết kế, specification là mở (nên mới có cái Mono)
– “Làm giùm” người lập trình quá nhiều -> tạo ra những lập trình viên theo đúng “chuẩn” của Microsoft (thông thường sẽ khác chỗ này, chỗ kia so với chuẩn còn lại của thế giới).
– Muốn can thiệp sâu vào kiến trúc bên dưới hơi bị khó.
– Tuy đã có Mono Project cho Linux, nhưng các application viết bằng .NET hầu như chỉ chạy tốt trên hệ điều hành của Microsoft.
– Phải trả tiền cho Microsoft để phát triển (cái này có lẽ ko phải là một nhược điểm ở Việt Nam :wink:
JAVA:
– Khó phát triển hơn, nhất là việc debug.
– Tools hỗ trợ không mạnh bằng, đơn giản, miễn phí thì chẳng ai lo chăm chút tất cả cho bạn được.
– Có vẻ như tốc độ chậm hơn các chương trình .NET
– Bảo mật source code không tốt bằng .NET.

Nói chung theo kinh nghiệm cá nhân, khi cần phát triển một phần mềm chủ yếu chạy trên hệ điều hành Windows, tui sẽ sử dụng .NET, vì việc phát triển sẽ rất nhanh và dễ dàng. Ngược lại, nếu phát triển một ứng dụng lớn (cỡ Enterprise) và cần hoạt động trên nhiều platform khác nhau thì sẽ sử dụng Java. Tuy khó phát triển hơn, nhưng nhờ kiến trúc thiết kế rất tốt, sẽ làm cho khả năng hoạt động ổn định và khả năng mở rộng cao hơn.

Một người lập trình giỏi sẽ ko thiên về hẳn một công nghệ nào, mà biết hài hòa tận dụng theo nhu cầu của mình.

(Theo davidex – http://www.ddth.com)

38 Responses to “Java hay .NET? Một bài toán nan giải của nhiều Newbie”

  1. Thanh said

    theo em thấy tác giả bài viết đã có 1 cái nhìn tổng quát và nêu vấn đề rất tốt.
    Nhưng em cho rằng tác giả vẫn chưa nêu đc mục đích thật sự của việc dùng Công nghệ để làm j`?
    Mục đích của việc dùng công nghệ đó là ai dùng, viết CT j`, ra sao, quy mô nhỏ hay lớn?
    Có lẽ cần đào sâu hơn ở điểm này, không biết ý thầy thế nào?

  2. mèo Tom said

    Thầy còn nhớ em không nhỉ? em là Toàn học bên CNC Aptech hồi đó được thầy dạy và bảo vệ đồ án HK4 lớp ACCP0703, cái thằng mà hay lon ton đi hỏi thầy đó. Lâu quá rồi em mới ghé thăm blog của thầy, chúc thầy luôn mạnh khỏe và có nhiều cống hiến nữa cho các thế hệ sinh viên IT 🙂

  3. Nhân Lê said

    Bắt đầu lập trình mấy cái gói *.BAT của MS Windows, rồi tới VB… Khi học đại học, được học C/C++, C#, Java… đủ thứ trên trời dưới đất nhưng nếu ngẫm kỹ lại thì bất kỳ ngôn ngữ nào, công cụ nào, dù thông minh đến đâu cũng cần cái đầu của người thiết kế, tiếp sau là người lập trình; mỗi ngôn ngữ đề có điểm mạnh của nó, tùy theo hoàn cảnh mà người ta có thể chọn ngôn ngữ này hay ngôn ngữ khác. Không hiểu nổi tại sao có mấy người code .NET mà cứ ngồi oang oang chê Java hay ngược lại?!
    Riêng ý kiến của ông Thanh, Nhân nghĩ không cần đào sâu đâu vì bài viết này bản thân nó đã hướng tới mục đích chính là giúp cho các sinh viên có cái nhìn và cách lựa chọn giữa hai ngôn ngữ Java và .NET nói riêng cũng như các ngôn ngữ lập trình khác nói chung! Đó là ý kiến riêng của Nhân thôi, có gì đừng buồn nha!

  4. Mr Chi said

    Cảm ơn về bài viết của Thầy. Nhưng em xin có đôi điều về phần trích dẫn từ nguồn http://my.opera.com/thuynt/blog/java-hay-net.
    Mình không hiểu tại sao khi so sánh trình độ và mức độ ứng dụng công nghệ mới mọi người lại đem học viên của NIIT hay Aptech để so sánh với sinh viên đại học. Liệu đây có phải là sự so sánh khập khiểng. Khi sinh viên đại học mất 4 đến 5 năm ngồi học còn sv NIIT hay aptech mất 2 năm để hiểu và làm được việc một cách tốt nhất.
    Tư duy ai hơn ai thì bạn hãy hỏi 1 học viên của Aptech hay NIIT đã ra trường và làm việc sau 2 năm với một sinh viên đại học vừa tốt nghiệp. Có tương đồng về thời gian thì mới có sự công bằng. Mà mình thiết nghĩ chẵng lẽ sinh viên Aptech hay NIIT sau khi học xong thì sẽ không học hỏi và trao dồi kiến thức cho mình sau.
    Học Aptech hay NIIT không phải là do tư chất thấp kém mà có thể vì một mục đích khác trong cuộc sống.
    Những bạn luôn có ý nghĩ so sánh như vậy nên thay đổi quan niệm ai giỏi hơn ai thì mới phát triển tốt

  5. ton đi hỏi thầy đó. Lâu quá rồi em mới ghé thăm blog của thầy, chúc thầy luôn mạnh khỏe và có nhiều cống hiến nữa cho các thế hệ sinh viên IT

  6. longbalan said

    Tình hình là sắp tới làm project xin thầy chỉ gấp .Cảm ơn thầy nhiều mail của em longbalan@gmail.com
    Thầy có thể dùng Glashfish server 3 dùng netbean 6.9 demo bài shopping cart
    Database Northwind
    -Yêu cầu
    1>Thiết kế giao diện template
    2>Mô hình kiến trúc ejb 3.1 chạy server glashfish server 3
    3>Phân Quyền,Login,
    4>Thêm,Sửa,Xóa,hiển thị list table và tìm kiếm hiện thi table,và hiện thị chi tiết
    5>Phân trang
    6>Giỏ hàng
    7>Tạo báo cáo ,thống kê
    8>Mã Hóa
    9>Nhận và Reply mail tự động
    10>Chat

  7. longbalan said

    Thầy giúp em làm tất cả các yêu cầu trên một bài theo thứ tự logic.

    Em sẽ làm được trong 21 ngày nữa mặc dù chưa biết gì về ejb tại thời điểm hiện tại

    Kể từ hôm nay

    8/13/2010

  8. Ngô Ngọc Mạnh said

    Em chào thầy, e đang là sinh viên năm cuối đại học và cũng đã học và vật lộn với cả .Net và Java. Mỗi cái đều có điểm mạnh điểm yếu riêng, e không có bàn luận thêm vì bài viết của thầy đã quá đủ rồi, nhưng e chỉ muốn nhấn mạnh thêm, dù là ngôn ngữ nào, thì người coder mới là quan trọng nhất, phải có kiến thức vững và có 1 kỹ thuật lập trình tốt thì cho dù là ngôn ngữ nào thì họ cũng đều làm tốt cả.

  9. Tuan said

    Thấy bạn nhờ thầy mà giống ra lệnh ấy nhỉ?!!

  10. Nguyen Duc Tung said

    Cảm ơn thầy nhiều lắm, nó rất bổ ích đối với tụi IT nông nổi chúng em.!

  11. Mr Vu said

    Một bài viết rất hay, nhưng lại có một sự so sánh không tốt vì một học viên Niit/Aptech cũng có thể là 1 sinh viên Đại học và ngược lại.
    Java hay .Net mãi mãi cũng chỉ là công nghệ (công cụ) để ta giải quyết vấn đề. Hoặc là môi trường để ta học cách tiếp cận cho nhiều công nghệ khác. Cái chúng ta cần là giải quyết vấn đề thông qua thuật giải.
    Tôi nghĩ cho dù bạn học Đại học hay Niit/Aptech khi bắt đầu ra đi làm để giải quyết một vấn đề liệu sinh viên học Đại học có nhớ & áp dụng được những thuật toán đã học hay cũng như các bạn Niit/Aptech.

  12. WSB said

    Bài viết khá hay về khía cạnh so sánh, nhưng điều mình học được sau 4 năm đơn giản là : Giỏi cấu trúc dữ liệu và thuật toán. Thành thạo pttk là làm project tốt rồi

  13. Tuấn said

    Bài viết hay lắm!

  14. Hưng said

    Đôi lúc ngôn ngữ không phải là vấn đề, mà vấn đề là ở con người. Ngôn ngữ nào cũng được miễn là nó giải quyết được vấn đề :D. Thế giới công nghệ không chỉ có Java hay .NET cho nên theo đổi một ngôn ngữ là còn tùy thuộc vào cơ duyên của mỗi người. Ở VN cũng không ít người theo đường PHP.

  15. abc said

    Đây có thể là một bài post hay nhất từ trước đến giờ

  16. thuyngoc said

    Thầy nói đúng luôn “Chỉ chơi tốt với “hàng” của Microsoft.”. Em làm .Net nó chỉ chạy trên IE là nhanh còn trên FF nó chạy như rùa mà code không có gì nhiều, data load lên bằng xml. Khi xài host nước ngoài chờ load trang lên lâu kinh khủng.

  17. Bài viết thật hay. Em cũng là dân newbie và phân vân vụ này. Em đang làm một ứng dụng nho nhỏ, phục vụ cho môn hệ phân tán, cụ thể của em là remote calculator. Em đang chưa biết lựa chọn mô hình nào, thầy có thể gợi ý em được không ạ?

  18. Võ Văn Hải said

    Dùng Socket hoặc RMI trong java đều được. Tuy nhiên RMI dễ hơn!

  19. Vô Danh said

    Mấu chốt là dùng công nghệ để kiếm được tiền, anh có thể dùng .NET, Java, pascal, perl…. javascript, powerbuilder…. thậm chí shell script. Người nào dựa trên 1 công nghệ bất kỳ nào đó mà kiếm được nhiều tiền hơn người khác thì người đó thắng.

    Còn bài viết trên nói về Java opensource là 1 lợi thế so với .NET là không đúng. Mã mở hay đóng là phụ thuộc tác giả và điều khoản tác giả đó quy định. Với SDK, họ Open ra đấy, nhưng mấy ai sửa và liệu rằng khi sửa sẽ không phát sinh lỗi do việc sửa của mình ?

    Java chỉ dùng để viết các ứng dụng Enterprise. Đây cũng chưa hoàn toàn chính xác, java ra đời trước .NET và tận dụng thế mạnh về mạng, lập trình tương đối dễ dàng so với C++ và Passcal nên nhanh chóng được ứng dụng. Tuy nhiên hiện nay hầu hết các ứng dụng Enterprise điều có xu hướng chuyển qua .NET nói chung và C# nói riêng.

    Bài viết hơi “Xoáy” vào trường đào tạo. Đại học có thể tạo ra nhiều expert về tư duy cá nhân, tuy nhiên cái xã hội cần là công nghệ và đối với họ(nhà tuyển dụng) cảm thấy ứng viên đủ khả năng với vị trí đó là được. Tôi đã từng làm việc với nhiều dân (BK, KHTN, AT, NIIT) thậm chí vừa tốt nhiệp PTTH, các bạn nên nghỉ thoáng một chút trường nào cũng vậy (đừng học trường có tiếng mà tự hào, và người không tiếng mà tự ti). Trong công việc, ai giải quyết vấn đề nhanh, mang về hiệu quả cao nhất là người đó thắng. Hãy làm việc và học hỏi hết mình “không thành danh thì cũng thành nhân”.

    Chúc vui

  20. Aptecher said

    Những nhận định trên có vài vấn đề quá khập khiễng

  21. Aptecher said

    Muốn đã muốn đưa dân Đại Học và dân Trung tâm ra so sánh thì cứ việc so sánh. Có thể so sánh đơn giản thế này :
    – Học đại học trung bình 4-5 năm trong khi học Trung tâm(Aptech,NIIT) mất tối đa 2 năm.Khi dân Trumg tâm đi làm thì dân đại học mới chỉ thực sự bước vào thế giới lập trình và khi ra trường thì dân Trung tâm đã làm được 2-3 năm.Có ai nghĩ 2-3 kinh nghiệm đóa thua 4-5 năm ngồi trên trường không.Dù tài năng,tài giỏi thế nào cũng không bằng kinh nghiệm thực tế ( “Một ông Gia Cát Lượng không bằng ba anh thợ giày”) có ai hiểu được vấn đề đóa không .Và vấn đề thực tế trước mắt nhiều người học Đại Học đã phải qua học thêm ở Aptech,NIIT.
    – Tui đã học ở Aptech và kết luận điều này,Aptech là nơi dễ biến những người ngu si thành ngu si hơn,phân nửa lớp là những kẻ như vậy.Nhưng aptech cũng là nơi sản sinh ra những tài năng,thiên tài nhất trong ngành lập trình
    – Phần còn lại tui xin được nói về vấn đề công nghệ,những ai yêu thích cái tự do,thích khám phá,thích cái khó thì hãy chọn Java.Ở trên nói tuyển lập trình viên Java và .NET như nhau,dù không biết sự thật như thế nào nhưng nếu cứ cho là như vậy đi…….Điều quan trọng ở đây là vấn đề xin việc,tui xin cam đoan người theo .NET nhiều hơn JAVA,cũng đơn giản người nghèo luôn nhiều hơn người giàu,người thích đơn giản nhiều hơn người thích phức tạp.

  22. Son Binh said

    – Học đại học trung bình 4-5 năm trong khi học Trung tâm(Aptech,NIIT) mất tối đa 2 năm.Khi dân Trumg tâm đi làm thì dân đại học mới chỉ thực sự bước vào thế giới lập trình và khi ra trường thì dân Trung tâm đã làm được 2-3 năm.Có ai nghĩ 2-3 kinh nghiệm đóa thua 4-5 năm ngồi trên trường không.Dù tài năng,tài giỏi thế nào cũng không bằng kinh nghiệm thực tế ( “Một ông Gia Cát Lượng không bằng ba anh thợ giày”) có ai hiểu được vấn đề đóa không .Và vấn đề thực tế trước mắt nhiều người học Đại Học đã phải qua học thêm ở Aptech,NIIT.
    – Tui đã học ở Aptech và kết luận điều này,Aptech là nơi dễ biến những người ngu si thành ngu si hơn,phân nửa lớp là những kẻ như vậy.Nhưng aptech cũng là nơi sản sinh ra những tài năng,thiên tài nhất trong ngành lập trình

    <<<
    Mình cũng học aptech , và mình đồng ý với ý kiến này 🙂

  23. Tom FPT-Aptech said

    – Tui đã học ở Aptech và kết luận điều này,Aptech là nơi dễ biến những người ngu si thành ngu si hơn,phân nửa lớp là những kẻ như vậy.Nhưng aptech cũng là nơi sản sinh ra những tài năng,thiên tài nhất trong ngành lập trình
    <<<<<<
    Chuẩn ko cần chỉnh tôi cũng học ở aptech lớp tôi 20 người nhưng trong lớp chỉ khoảng 3-4 người là học được còn đâu toàn đứt hết. Lần nào thi cũng chỉ khoảng 3-4 người qua:))

  24. hung said

    Mình là người đã học qua cả 2 trường hợp: đại học và Aptech, cũng là một học trò của thầy Hải, đi làm được 4 năm rồi. Mình cũng có tiếp xúc với nhiều bạn, học đh, học trung tâm hoặc học cả hai, mình có một số nhận xét:
    Ở đại học: chuyên về lý thuyết, thời gian thực hành cũng ít. Cái này ai cũng biết. Nhưng nếu bạn học tốt các kiến thức lý thuyết này, khi đi làm, bạn sẽ dễ dàng làm quen với các ngôn ngữ lập trình. Mình dùng chữ “làm quen”, chứ không nói là “làm được”, tức là bạn có thể đọc hiểu một ngôn ngữ mà bạn chưa hề được học chỉ sau vài giờ tìm hiểu cơ bản. Còn nếu bạn muốn viết code cho một ngôn ngữ mà mình chưa từng được học, có lã phải mất vài tháng hoặc vài năm. Đây là thực tế cũng là lý do mà nhiều nhà tuyển dụng muốn tuyển sv ĐH, khả năng thích ứng cao là lợi thế của ĐH CĐ.
    Ở trung tâm, cụ thể là CNC Aptech: lý thuyết rất ít, thực hành nhiều, phần lớn là các bài tập cơ bản. Nhưng với mớ bài tập cơ bản ấy, bạn đã có thể tự tin đi xin việc làm, lợi thế của các bạn là đây, có tính áp dụng thực tế nhanh.
    Đừng có nghe quảng cáo mức lương 300-400 USD mà ham, hãy bắt đầu từ những công ty nhỏ, mức lương có thể là 150 – 200 USD. Bạn muốn lương cao, phải chịu khó học hỏi thêm kinh nghiệm trong quá trình làm việc. Sau khi có 1-2 năm kinh nghiệm, lúc đó hãy tìm công ty tốt hơn.
    Đối với các bạn nói rằng học ở Aptech không được gì, thì hãy xem lại cách học của bản thân. Giáo trình của Aptech rất hay, đơn giản nhưng đầy đủ. Mình thấy có nhiều bạn rất ít đọc sách, thầy giảng gì nghe đó, nói gì viết đấy. Nếu bạn học theo cách này thì … xin chia buồn cùng bạn, bạn không phù hợp với nghề lập trình, làm nhân viên kinh doanh có thể là sự lựa chọn cho bạn.
    Đôi lời tâm sự cùng các bạn.
    Chúc thầy luôn vui vẻ, mạnh khỏe.

  25. Khang Pham Ngoc said

    Mình thì mình không nghĩ đến vấn đề so sánh, chỉ có điều mỗi một hướng học đều có thế mạnh riêng. VD: SV đại học được trang bị khá tốt về mặt thuật toán cũng như cấu trúc lập trình ( Theo mình thì đây là nền móng.), các bạn đừng nghĩ trở thành lập trình viên giỏi đã là hãnh diện, mà hãy nghĩ lập trình viên có mức lương so với người phân tích,thiết kế khác biệt như thế nào?( Mình đoán phần phân tích thiết kế bọn Nhật hưởng rồi,còn code thì nó thuê VN mình.), lại nói đến công nghệ: Một người suốt ngày nói tôi đang sử dụng công nghệ mới nhất hiện nay để lập trình, thế ông có biết cái công nghệ đó nó thực thi như thế nào không? Cũng như tất cả các thư viện của .Net hay Java đều xây dựng từ Code mà ra đấy chứ! Đứng về khía cạnh nào đó thì mình đánh giá cao SV nào chắc nền tảng hơn. Nói tóm lại chúng ta hãy cố gắng học hỏi thêm thật nhiều để có được cái mình muốn, không bao giờ nghĩ mình đã thành thạo 1 thứ ngôn ngữ nào. Thanks thầy Hải đã có những bài viết thực sự bổ ích!
    PS: Một vài ý kiến cá nhân.

  26. Đinh Văn Võ said

    Chà! Tác giả có vẻ đề cao sinh viên Đại Học quá. Đâu phải sinh viên ở trung tâm đào tạo ai cũng vậy đâu. Sinh viên các trung tâm biết 1+1 = 2 trên lớp do các giảng viên chỉ dạy. Còn biết 1+1 = 0 nhớ 1 là do tự học, tự tìm hiểu tuy nhiên không thể so sánh với sinh viên DH được dạy có bài bản được. Vấn đề chọn giữa .Net và J2EE mình cũng nghĩ la lên chọn cả 2. Nhưng chắc chắn và giỏi về một mặt nào đó vẫn tốt hơn.

  27. Guest said

    SV mới ra trường tìm việc rất khó, chổ nào cũng đòi kinh nghiệm, xin được việc ở đâu không cần kinh nghiệm là mừng rồi. Theo mình thấy việc chọn .Net hay Java là do nhà tuyển dụng thôi

  28. lamo said

    hì hì! Sinh viên đại học đúng là được học cơ sở, những cái căn bản nhất….hic, học đủ các môn luôn, kỳ 1 thì học C căn bản, chưa kịp hiểu rõ lắm thì vèo phát kỳ 2 có môn động đến C++…chưa kịp học hết thì vèo…kỳ 3 học C# …..java,Assembly…….tất cả các ngôn ngữ đều được học qua….khủng thật.

  29. no said

    bác chủ topic coi thường dân Aptech va NIIT quá.

  30. nota said

    Em chào thầy Hải cùng tất cả mọi người, thực sự em nhận thấy bài viết này quá nhảm . em thấy tác giả đề cao những người học đại hoc quá , theo ý tác giả thì học đại học có nền tảng , tư duy tốt , tính tự học tốt, còn học Aptech , NIIT , thì nền tảng + tư duy không được tốt, còn tính tự học không có ,nếu cứ suy luận như kiểu tác giả thi thì những IT không trường lớp thì những yếu tố mà em đề cập ở trên là không có à , nếu vậy thì tác giả quá nhầm , học ở đâu cũng vậy thôi , thành công hay không là do sự quyết tâm tự tìm tòi và học hỏi của mỗi người thôi , rất nhiều it không trường lớp em thấy họ rất thành công ví dụ như admin của congdongcviet anh Kevin chẳng hạn , nếu không tin mọi người cứ tìm hiểu.
    Còn công nghệ Java hay .Net thì tùy từng người , nhưng theo quan điểm cua em là công nghệ gì cung như nhau thôi, em thấy nhiều người lam về C/C++ , PHP ..lương của họ cung rất khủng.Quan trọng là đồng lương mà công việc mình đang làm la bao nhiêu , đó mới thực sự là công nghệ , còn với những ai đang còn đang học thi cứ nắm vững những thứ mình học mới là quan trọng.
    còn 1 vấn đề hoc dai hoc 5 năm , còn Aptech , NIIT chỉ có 2 năm thôi .

  31. haidoan said

    Bài viết này rất hay, đánh đúng vào tâm lý của những người lập trình viên mới. Đọc xong bài này, mình sáng ra rất nhiều điều.
    Cảm ơn thầy rất nhiều!

  32. Đừng nghĩ bạn được bao nhiêu điểm.
    Đừng nghĩ bạn học ở trường nào.
    Đừng nghĩ bạn tốt nghiệp loại gì.
    Hãy nghĩ: MÌNH CÓ GÌ TRONG ĐẦU.
    Đó đại học hay trung tâm cũng k khác gì nhau chủ yếu là cái đầu, cái đầu có gì mà thôi.

  33. manh said

    minh dong y quan diem nay

    Minh dong y quan diem nay

    Minh cung sap ra truiong

  34. […] khảo : https://vovanhai.wordpress.com/2010/06/30/java-hay-net-m%E1%BB%99t-bai-toan-nan-gi%E1%BA%A3i-c%E1%BB%… Be the first to like. Like […]

  35. Mình thích câu này lắm “Nhiều người có quan điểm rất cực đoan, theo .NET là chê thậm tệ Java, không thèm tìm hiểu gì về nó hoặc ngược lại. Tôi thì không đồng tình với quan điểm này, đã là dân kỹ thuật thì không từ bỏ một công nghệ nào hay cả, mình không học nổi hết thì cũng nên xem coi nó là cái gì để mở mang tầm mắt của mình. Một quan điểm cực đoan như vậy sẽ chẳng có gì gọi là hay cả và nó chỉ có hại cho bạn mà thôi.”

  36. DVThuanDL said

    Nên chọn cho mình một hướng đi rõ ràng là 1 điều cần thiết. Bởi vì thời gian học 4-5 năm ở ĐH hay 1-2 năm ở trung tâm thì sẽ trôi qua rất nhanh. Xã hội bây giờ cần tuyển dụng những người làm được việc.

  37. iphone said

    That display isn’t huge but it has yet to release an iphone 5 on Sept. In fact, I believe it’s
    either a power issue or an issue with apps taking advantage of the 3.

  38. hungdt138 said

    Hồi còn đi học thì thích làm .NET nhưng không hiểu sao khi đi làm số phận đưa đẩy lại hoàn toàn làm về Java :))), theo mình các bạn đang đi học nên học cả 2 sau này khi có cơ hội làm việc thì sẽ chuyển sâu về 1 trong 2 cái đó. Nếu tư duy logic tốt thì ngại gì làm quen cái mới ;).

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.