quan_pc
10-04-2012, 08:14 PM
Chào mọi người!
Tớ là sv năm 1. Tớ có 1 kế hoạch cho mình là sẽ học thật nhuyễn C sau đó học lên C++ rồi sẽ tham khảo, tự học thêm lập trình hướng đối tượng (nếu ở trg chưa dạy tới).. Tiếp theo sẽ bắt đầu với Java và C#.. Và sau đó nữa có thể tớ sẽ xem thêm về lập trình nhúng. Mọi người thấy kế hoạch đó thế nào.?? Tớ rất mong nhận đc những ý kiến và lời khuyên. Thank you (:-*)
Theo mình thì bạn nên bỏ qua C mà học luôn C++ > JV > C# là ok vì C++ vs JV có điểm tương đồng khi viết code C# thì mình chưa học qua nên chưa biết |
nguyenvd89
10-04-2012, 08:27 PM
Chào mọi người!
Tớ là sv năm 1. Tớ có 1 kế hoạch cho mình là sẽ học thật nhuyễn C sau đó học lên C++ rồi sẽ tham khảo, tự học thêm lập trình hướng đối tượng (nếu ở trg chưa dạy tới).. Tiếp theo sẽ bắt đầu với Java và C#.. Và sau đó nữa có thể tớ sẽ xem thêm về lập trình nhúng. Mọi người thấy kế hoạch đó thế nào.?? Tớ rất mong nhận đc những ý kiến và lời khuyên. Thank you (:-*)
Cơ bản nhất là học C , sau đó Assembly , rồi C++ , C# , Java . Nếu bạn đã nắm tương đối rõ một ngôn ngữ thì thường khi chuyển sang ngôn ngữ khác sẽ học nhanh ( Từ C-> C# hay Java ) . Bây giờ có thời gian thì học càng nhiều càng tốt . Học xong để lâu không dùng có thể bạn không nhớ nhưng sẽ vẫn nắm được ít nhiều nền tảng , nếu như cần học lại sẽ rất dễ dàng .
VoTichSu
12-04-2012, 09:07 AM
Ở Việt Nam mình đào tạo theo mô hình thì thấp lên cao , nghĩa là mình đi từ C->C++->C# (hay Java) . Còn đào tạo IT ở Châu Âu và Mỹ thì nó đi ngược lại là nó theo mô hình từ gần đến xa , nghĩa là nó đi ngôn ngữ cấp cao trước , mới vô là tụi nó chơi .Net hay Java liền vì những cái đó nó gần gũi thực tế , mấy newbie dễ tiếp nhận hơn , rồi cuối cùng là nó đi dần xuống các ngôn ngữ bậc trung ( C) , cuối cùng là ngôn ngữ bậc thấp như mã máy . Giờ bạn học C# hay Java liền lun mình thấy vẫn được
Sao biết tụi nó dạy vậy? Nói chuyện như là giám học trường!
Nếu bạn thường xuyên đọc tài liệu Tiếng Anh chuyên ngành CNTT thì bạn sẽ ko hỏi câu đó, cám ơn !!!
tài liệu Tiếng Anh chuyên ngành CNTT? bạn muốn nói là GIÁO TRÌNH đào tạo IT ở Châu Âu và Mỹ?
Wazi Armstrong
12-04-2012, 10:45 AM
Chả có lý do gì mình lại đưa ra một câu hỏi ngớ ngẩn cả
Một kiểu rất thú vị trong Java là REFERENCES tức tham chiếu
Trong Java, nếu bạn muốn gắn một đối tượng vào một biến, bạn hãy nhớ rằng đối tượng đó được tạo ra trong vùng nhớ tạm trữ (heap) mà ở đó ta có thể thu hủy các tài nguyên không còn dùng đến nữa. Luôn là như vậy. Do vậy nó không hề nằm trong biến. Hãy thử nghĩ rằng không có một cái cốc khổng lồ và có thể nở rộng nào có thể tạo ra để lưu trữ bất cứ một đối tượng nào. Và không giống như C/C++, không có một cái cốc nào mà có thể lưu trữ chính xác vùng phân cấp bộ nhớ của một đối tượng.
Trong Java, các đối tượng được tạo ra trong vùng nhớ tạm trữ (heap), và trong cốc/biến người ta chỉ lưu trữ một tham chiếu (REFERENCE) đến đối tượng mà thôi. Bạn hãy nghĩ về tham chiếu này giống như một cái điều khiển từ xa đối với một loại đối tượng đặc biệt.
..........
Đoạn này lại hàn lâm bác học rồi.
Tôi không từ C/C++ sang nên cái đoạn bạn chép trong sách kia ra nó là điều hiển nhiên với lập trình viên Java rồi. Đừng đánh đồng thuật ngữ "đối tượng" trong Java và C để rồi tỏ ra uyên thâm khi chỉ ra cái khác nhau sâu xa về cách tổ chức bộ nhớ của 2 thằng. Đối tượng trong Java mặc nhiên nó là thế rồi, những lập trình viên Java đều biết điều này, sao cứ phải lấy C làm chuẩn mực để so sánh khi một cái gì đó nó khác C???
CIMinuv
12-04-2012, 11:55 AM
Học những ngôn ngữ lập trình bậc cao hơn không có nghĩa là nhẹ nhàng hơn đâu
Đang code java phờ người ra đây.\ (8-)>
cùng một công việc như nhau java làm trong 1 giờ thì C có thể phải mất đến 2-3h thậm chí có việc còn tốn công hơn rất nhiều vì phải tự xây dựng rất nhiều thứ . vậy có được coi là nhẹ nhàng hơn chưa ?
Wazi Armstrong
12-04-2012, 12:34 PM
cùng một công việc như nhau java làm trong 1 giờ thì C có thể phải mất đến 2-3h thậm chí có việc còn tốn công hơn rất nhiều vì phải tự xây dựng rất nhiều thứ . vậy có được coi là nhẹ nhàng hơn chưa ?
Cơ bản là người ta không làm những công việc như nhau. (
Bạn so sánh quá khập khiễng
Mình lấy ví dụ thế này: Một tá trứng vịt bên Mĩ giá khoảng $2.65 (2011 (http://wiki.answers.com/Q/What_is_the_price_of_a_dozen_of_eggs_in_2011))
Tính ra tiền Việt, gần 5000 đồng 1 quả. Bạn cho rằng trứng bên Mĩ đắt quá. Nhưng thực sự lại là rẻ thối so với mức sống bên đó.
Trở lại với chuyện công nghệ và ngôn ngữ. Cái quan trọng là bạn góp công phát triển được bao nhiêu tính từ cái nền tảng sẵn có chứ không phải là bạn làm được gì?
Lại một ví dụ. Bạn cho rằng chở 100kg gạo bằng Xe máy với bằng Xe kéo tay thì cái nào mệt hơn nếu bạn chở từ Hà Nội vào HCM bằng xe máy, trong khi việc kia là bạn kéo tay từ ngoài ngõ vào nhà?
Có cần lấy ví dụ về ngôn ngữ nữa không?
beautifulsoul84hung
12-04-2012, 12:38 PM
Đoạn này lại hàn lâm bác học rồi.
Tôi không từ C/C++ sang nên cái đoạn bạn chép trong sách kia ra nó là điều hiển nhiên với lập trình viên Java rồi. Đừng đánh đồng thuật ngữ "đối tượng" trong Java và C để rồi tỏ ra uyên thâm khi chỉ ra cái khác nhau sâu xa về cách tổ chức bộ nhớ của 2 thằng. Đối tượng trong Java mặc nhiên nó là thế rồi, những lập trình viên Java đều biết điều này, sao cứ phải lấy C làm chuẩn mực để so sánh khi một cái gì đó nó khác C???
Ơ. Có gì sai ak ? Vui lòng đọc kỹ từ đầu ....! Kể cả những đoạn hội thoại hay trích dẫn trước khi cmt
Wazi Armstrong
12-04-2012, 12:51 PM
Ơ. Có gì sai ak ? Vui lòng đọc kỹ từ đầu ....! Kể cả những đoạn hội thoại hay trích dẫn trước khi cmt
Không sai. Nhưng người ta ko nên chứng minh những điều hiển nhiên [:-X)
Khi lập trình hướng đối tượng, những thể hiện (instance) đều gọi là đối tượng hết. Đối tượng này gửi thông điệp đến đối tượng kia. Có thể trong C/C++ gọi khác?
beautifulsoul84hung
12-04-2012, 12:56 PM
Không sai. Nhưng người ta ko nên chứng minh những điều hiển nhiên [:-X)
Khi lập trình hướng đối tượng, những thể hiện (instance) đều gọi là đối tượng hết. Đối tượng này gửi thông điệp đến đối tượng kia. Có thể trong C/C++ gọi khác?
Bạn biết là mình đang tranh luận với ai ko ?. "Mình thích java bởi 2 từ: "tham chiếu" nhưng lại có người nói là không có". Bạn hiểu lý do hơn rồi chứ ?
Nói chung học cái j cũng đc. 1 phát bay vô Java , C# hay cái j cũng đc hết á.
Cơ mà nếu đc học C/C++ trước và nắm tốt thì học các ngôn ngữ khác như : C#,Java.. cũng rất dễ tiếp cận lúc ban đầu.
Bạn sẽ hiểu sâu đc vấn đề như : Java không có tham chiếu chẳng hạn ( ai muốn phản bác ý này thì em xin tiếp chiêu, nhưng hãy suy nghĩ kỹ trước khi phản bác ý kiến này )
Còn việc bạn tranh luận với CIMinuv: Mình xin góp ý. Đúng là người ta không làm các công việc giống nhau. Nhưng so sánh của bạn mới gọi là khập khiễng. Đừng bao giờ cố gắng phức tạp hóa vấn đề ;)
CIMinuv
12-04-2012, 01:13 PM
Cơ bản là người ta không làm những công việc như nhau. (
Bạn so sánh quá khập khiễng
Mình lấy ví dụ thế này: Một tá trứng vịt bên Mĩ giá khoảng $2.65 (2011 (http://wiki.answers.com/Q/What_is_the_price_of_a_dozen_of_eggs_in_2011))
Tính ra tiền Việt, gần 5000 đồng 1 quả. Bạn cho rằng trứng bên Mĩ đắt quá. Nhưng thực sự lại là rẻ thối so với mức sống bên đó.
Trở lại với chuyện công nghệ và ngôn ngữ. Cái quan trọng là bạn góp công phát triển được bao nhiêu tính từ cái nền tảng sẵn có chứ không phải là bạn làm được gì?
Lại một ví dụ. Bạn cho rằng chở 100kg gạo bằng Xe máy với bằng Xe kéo tay thì cái nào mệt hơn nếu bạn chở từ Hà Nội vào HCM bằng xe máy, trong khi việc kia là bạn kéo tay từ ngoài ngõ vào nhà?
Có cần lấy ví dụ về ngôn ngữ nữa không?
Lấy ví dụ này cho rõ ràng nhé (công việc tương tự như này thường gặp ở cả hai ngôn ngữ nhé) :
Đề bài : Xây dựng từ điển.
Java Developer : có sẵn java.util.Dictionary chỉ việc dùng thôi.
C developer : xây dưng cấu trúc dữ liệu ..> sử dụng.
kết luận ?
Wazi Armstrong
12-04-2012, 01:25 PM
Lấy ví dụ này cho rõ ràng nhé (công việc tương tự như này thường gặp ở cả hai ngôn ngữ nhé) :
Đề bài : Xây dựng từ điển.
Java Developer : có sẵn java.util.Dictionary chỉ việc dùng thôi.
C developer : xây dưng cấu trúc dữ liệu ..> sử dụng.
kết luận ?
Đó là việc bạn lựa chọn công nghệ. Bạn có quyền chọn công nghệ mỗi khi triển khai một dự án. Và tất nhiên chọn nhầm công nghệ là lỗi của bạn chứ không phải lỗi của ngôn ngữ.
ASM thì chỉ làm mấy việc như viết driver, lập trình phần cứng, virus... thôi chứ đòi build cả hệ thống web thì cũng chịu.
Chọn sai công nghệ => mệt thì ráng chịu thôi.
Mỗi cái đều có công việc thích hợp của nó, và chẳng việc nào là nhẹ nhàng hơn việc nào. Trừ khi đem việc thằng này bắt thằng kia làm.
Lật lại ví dụ trên. Bạn lấy ô tô chở 100kg gạo từ ngoài ngõ vào nhà => quá đơn giản => Xong kết luận một câu: Chở hàng bằng ô tô lúc nào rất là nhẹ nhàng ):)T Nói thế mà bạn vẫn không hiểu vấn đề thì có lẽ chúng ta nên dừng tranh cãi, vì nói nữa bạn cũng thế thôi. (
Bạn biết là mình đang tranh luận với ai ko ?. "Mình thích java bởi 2 từ: "tham chiếu" nhưng lại có người nói là không có". Bạn hiểu lý do hơn rồi chứ ?
Còn việc bạn tranh luận với CIMinuv: Mình xin góp ý. Đúng là người ta không làm các công việc giống nhau. Nhưng so sánh của bạn mới gọi là khập khiễng. Đừng bao giờ cố gắng phức tạp hóa vấn đề ;)
Vấn đề này có lẽ là anh kia viết lộn.
Java không truyền tham chiếu!
CIMinuv
12-04-2012, 01:37 PM
Đó là việc bạn lựa chọn công nghệ. Bạn có quyền chọn công nghệ mỗi khi triển khai một dự án. Và tất nhiên chọn nhầm công nghệ là lỗi của bạn chứ không phải lỗi của ngôn ngữ.
ASM thì chỉ làm mấy việc như viết driver, lập trình phần cứng, virus... thôi chứ đòi build cả hệ thống web thì cũng chịu.
Chọn sai công nghệ => mệt thì ráng chịu thôi.
Mỗi cái đều có công việc thích hợp của nó, và chẳng việc nào là nhẹ nhàng hơn việc nào. Trừ khi đem việc thằng này bắt thằng kia làm.
Lật lại ví dụ trên. Bạn lấy ô tô chở 100kg gạo từ ngoài ngõ vào nhà => quá đơn giản => Xong kết luận một câu: Chở hàng bằng ô tô lúc nào rất là nhẹ nhàng ):)T Nói thế mà bạn vẫn không hiểu vấn đề thì có lẽ chúng ta nên dừng tranh cãi, vì nói nữa bạn cũng thế thôi. (
Nhìn mấy cái icon trong bài viết của bạn phản cảm và không phù hợp khi tranh luận.
tôi không biết bạn giỏi đến đâu trên tài toàn bộ kỹ thuật công ty tôi không cái đó tôi không dám nói cũng không đủ tài tranh luận với bạn.
Hiện tại tôi đang phát triển hệ thống lưu trữ rất rất nhiều bản ghi sao cho có tốc độ truy xuất nhanh nhất. nếu quy nó về 1 bài toán nhỏ thì nó cũng giống 1 bộ từ điển. vì sao chọn C/C++ mà không chọn Java có lẽ ở trình độ của bạn bạn tự hiểu được.
điều tôi muốn nhấn mạnh ở đây chỉ là : "C Developer phải xây dựng rất cả gần như từ đầu, những ngôn ngữ bậc cao như Java,C# ... luôn luôn kèm theo những bộ thư viện rất mạnh hỗ trợ coder rất nhiều tuy nhiên nó cũng có mặt trái của nó. C++ cũng là ngôn ngữ bậc cao, cũng có rất nhiều bộ thư viện viết bằng C++ nhưng tôi không nhắc đến ở đây."
Wazi Armstrong
12-04-2012, 01:50 PM
Chọn công nghệ, không phải là chọn ngôn ngữ.
Tất nhiên công nghệ Java mà xử lí với bài toán performance như bạn thì rất là mệt (nếu không mệt sao phải chọn C)
PS: Tôi đang cố chứng minh rằng làm Java, C# hay những thứ gọi là "cao" khác không nhẹ nhàng. Bên trên có thể coi là một điểm. Hãy tập trung vào những gì tôi nói.
Nhìn mấy cái icon trong bài viết của bạn phản cảm và không phù hợp khi tranh luận.
tôi không biết bạn giỏi đến đâu trên tài toàn bộ kỹ thuật công ty tôi không cái đó tôi không dám nói cũng không đủ tài tranh luận với bạn.
Hiện tại tôi đang phát triển hệ thống lưu trữ rất rất nhiều bản ghi sao cho có tốc độ truy xuất nhanh nhất. nếu quy nó về 1 bài toán nhỏ thì nó cũng giống 1 bộ từ điển. vì sao chọn C/C++ mà không chọn Java có lẽ ở trình độ của bạn bạn tự hiểu được.
điều tôi muốn nhấn mạnh ở đây chỉ là : "C Developer phải xây dựng rất cả gần như từ đầu, những ngôn ngữ bậc cao như Java,C# ... luôn luôn kèm theo những bộ thư viện rất mạnh hỗ trợ coder rất nhiều tuy nhiên nó cũng có mặt trái của nó. C++ cũng là ngôn ngữ bậc cao, cũng có rất nhiều bộ thư viện viết bằng C++ nhưng tôi không nhắc đến ở đây."
Tôi nói bạn không hiểu tôi, tôi nói bạn không đủ tài khi nào.
Việc 2 người không hiểu nhau là chuyện bình thường và chẳng chứng minh ai giỏi hơn ai.
beautifulsoul84hung
12-04-2012, 02:20 PM
Java ko truyền tham chiếu ?
Với cả 2 người này đừng tranh cãi mấy vấn đề chẳng ra đâu vào đâu ?
Wazi Armstrong
12-04-2012, 04:44 PM
Java ko truyền tham chiếu ?
Với cả 2 người này đừng tranh cãi mấy vấn đề chẳng ra đâu vào đâu ?
Uhm, nếu cần giải thích thì có thể mở một topic riêng, tránh loãng topic này.
beautifulsoul84hung
12-04-2012, 07:42 PM
Uhm, nếu cần giải thích thì có thể mở một topic riêng, tránh loãng topic này.
Bạn đạt đến trình độ "mộng code" rồi thì tôi cũng ko dám chém. Gác kiếm. Chỉ có một lời khuyên thôi
Code ít thôi và "dừng" lại nhiều hơn, nên nghĩ
Xin lỗi chủ pic, admin và mọi người tham gia pic này vì đã làm loãng topic
Beautifulsoul84hung
SuperUser
20-05-2012, 10:32 AM
Mình đã từng lập trình rất nhiều loại ngôn ngữ, từ nghịch ngợm lung tung đến ứng dụng đàng hoàng.
Mình học rất bát nháo
Bắt đầu là Pascal, sau đó là Basic (2 ngôn ngữ này được dạy hồi cấp 2)
Nhân lúc trường dạy Basic, mình học Visual Basic, làm được vài ứng dụng nhỏ.
Một thời gian sau thì mình học C++, nhưng chưa làm được cái gì nên hồn
Rồi lại học qua C#
Cho đến khi ở đại học dạy C, C++ và Java, mình mới học bài bản.
Mình học thêm cả PHP, rồi lại còn nghịch cả các ngôn ngữ mới như F#, Scala...
Sau nhiều lần chiến đấu với các BTL, Đồ án lớn nhỏ
Mình nhận ra,
Ngôn ngữ lập trình hay công nghệ nào cũng có ưu nhược điểm của nó, biết nhiều là tốt, nhưng học rải rác cái gì cũng biết 1 tí thì không thể vận dụng được
Ngôn ngữ lập trình hay công nghệ thì cũng chỉ là phần thực hiện, quan trọng là phần phân tích, thiết kế.
Và giữa kiến thức về OOP với kiến thức về Cấu trúc dữ liệu và giải thuật thì mình nhận thấy nếu về OOP ta nắm vừa đủ, không thành thạo lắm các Design Pattern thì cũng chỉ ảnh hưởng đến khả năng tái sử dụng và bảo trì mã, nhưng nếu ta dốt về cấu trúc dữ liệu và giải thuật thì đó là đại họa...
Ngoài ra, trong các bài toán lập trình về quản lý, ta cần có kiến thức về "Công nghệ quản lý" nữa.
Còn chủ topic chọn con đường từ C/C++ đến Java/C# cũng hợp lý nhưng chú ý là tập trung 1 cái thôi. Chứ mà học kỹ từng cái một rồi đi lên thì khó.
Theo mình, nên học như sau:
Học lập trình thủ tục với C hoặc C++ nhưng viết kiểu thủ tục. Thời gian này rèn luyện khả năng lập trình các giải thuật và các cấu trúc dữ liệu.
Sau đó học 1 trong 3 ngôn ngữ hướng đối tượng C++, Java, C# tùy theo đam mê và nguyện vọng.
Chẳng hạn học Java. Học sâu sắc các khái niệm hướng đối tượng của Java, và tìm hiểu thêm sự khác biệt với C++ và C#. Nghĩa là lấy 1 ngôn ngữ làm chính, và tham khảo thêm các ngôn ngữ OOP khác.
Cuối cùng, nếu có điều kiện, có thể tìm hiểu thêm 1 số ngôn ngữ lập trình như PHP, Python, Perl, Ruby, Groovy....
Chốt lại: Cấu trúc dữ liệu và giải thuật mới là căn bản. Giả sử có biết đến hàng chục ngôn ngữ lập trình, nhưng không nghĩ ra giải thuật thì cũng bằng không.
Nói thêm:
Hồi xưa mình cứ tưởng C# dễ hơn Java hóa ra là cái nào cũng có cái khúc mắc riêng của nó. Được cái là C#(đúng hơn là .NET) nó cung cấp nhiều thứ khiến người ta có thể không hiểu bản chất lắm mà vẫn làm quen nhanh được. Thực ra bên Java cũng có, hồi trước làm EJB trên NetBeans toàn để cho nó sinh code tự động, nhưng vẫn cảm thấy Visual Studio quen tay hơn.
Nhưng xét cho cùng những cái hỗ trợ sẵn cũng chỉ là giải quyết những vấn đề thường gặp mà CNTT thì lại luôn hướng đến cái mới.
rox_rook
20-05-2012, 12:09 PM
Thằng gà nào mở miệng nói C++ dễ hơn Java/C# thì thằng đó chẳng biết C++ là cái quái gì! Trong 4 thằng
1. C++
2. C
3. Java
4. C#
C++ là thằng khó học nhất, vì nó quá flexible, đọc vài cái ISO C++ standard thì sẽ hiểu. Làm chục năm với C++ cũng còn phải lòi mắt ra không hiểu vì sao đoạn code đó lại chạy như vậy chứ học qua sơ sơ thì có mà chào thua.
Java/C# tại sao được nhiều người dùng?
1. Nó đơn giản, cấu trúc rõ ràng
2. Có cty lớn đằng sau support, Oracle và Microsoft vì vậy nó hộ trỡ rất tốt cho các thư viện.
3. Vì nó là component base, các thủ thuật trong các công nghệ của C# và Java hầu như Google hoặc stackoverflow là đều có hết. (Android, C# Window Form, .NET....)
4. Không có nhiều cài đặt phức tạp, plug in là run thôi, ít bị binary compatibility.
Đó là những lợi thế mà Java/C# có, và hầu như cho những người mới học thì thấy Java và C# rất thuận tiện, vì nó giúp họ học "Computer Science" nhanh hơn, từ algorithm -> graphics -> image processing....
Một điều nữa, những mãng mà C++ mạnh toàn đều là mãng khó:
1. Game (fucking Mathematics and Physics, easy?)
2. Embedded (have you ever deal with semaphore and share data problem)
3. Networking (graph theory, EE, easy?)
4. Operating system (how easy?)
Những mảng này hoàn toàn không có average programmers! Muốn làm những này, bắt buộc bạn phải cực kì thành thào C++ và thuộc loại giỏi đến xuất sắc. Ví dụ, làm bên Embeded, product này đọc schematic của board này, configuration của nó cũng khác, phải deal với Electrical, Physics và thêm cái share data problems nữa. Hầu hết các system dạng này là parallel, nhưng làm gì có thread library mà dùng, semphore, message queue...! Cài có mà nổ óc! Bản thân tôi từng viết vài chục ngàn dòng project với Java và C#, nhưng khi tôi chuyển qua embeded, code tôi viết chỉ có vài trăm dòng thôi. Nhưng thời gian tôi ngồi suy nghĩ xem nó chạy ra sao thì phải gấp 2 gấp 3 thời gian tôi viết code. Thứ 3, code trong những mãng này khả năng Google cho ra là 5%, vì hầu hết cái projects trong lĩnh vực này khác nhau rất nhiều.
Thời buổi bây giờ, cắt hết internet thì tụi Java/C# coder có mà code bằng niềm tin!
Thêm nữa, cho những thằng gà mà cứ nói tau biết C++, C++ không cần object oriented! C++ is not just OO, the whole idea of STL is template!
boss14420
20-05-2012, 12:28 PM
Thứ tự của mình là : C++ -> Java -> Pascal (lớp 11 bắt học) -> PHP/VB/C/... -> C++.
Đa số là tự học thất bại, học đủ thứ cuối cùng lại trở về C++.
nguyenngoc101
06-06-2012, 05:15 PM
Thực ra đây cũng là câu hỏi mà mình đặt ra trước đây khi còn là sinh viên năm thứ nhất như bạn vậy. Đến bây giờ năm cuối rồi cũng đã từng học qua vài ngôn ngữ và nhận thấy rằng điều quan trọng nhất khi thực hiện một project nào đó là khả năng tư duy giải quyết vấn đề, khả năng thuật toán, pttk. ngôn ngữ chỉ là cái mà bạn thể hiện những ý tưởng đó ra mà thôi. Theo mình nghĩ thì bạn cứ học lướt qua một vài ngôn ngữ, cái này ko mất quá nhiều thời gian bởi khi bạn đã biết một ngôn ngữ rồi, việc học một ngôn ngữ không phải là điều khó khăn. Rồi sau đó chọn một ngôn ngữ mà mình thấy thích và phù hợp để đào sâu nó. Chúc bạn thành công!
CIMinuv
07-06-2012, 08:52 AM
Thứ tự của mình là : C++ -> Java -> Pascal (lớp 11 bắt học) -> PHP/VB/C/... -> C++.
Đa số là tự học thất bại, học đủ thứ cuối cùng lại trở về C++.
theo như cái lịch trình trên kia thì bạn bắt đầu học lập trình từ khá sớm và chắc bây giờ vẫn còn khá trẻ tuy nhiên kiến thức của bạn khá tốt
namdq2k
07-06-2012, 12:23 PM
The best way is not C/C++, Java or something else .... Let's come back to MACHINE LANGUAGE (:-)h(:-)h
CIMinuv
07-06-2012, 12:51 PM
The best way is not C/C++, Java or something else .... Let's come back to MACHINE LANGUAGE (:-)h(:-)h
crazy idea..................................
oxfordthuongyeu
11-09-2012, 11:04 AM
Đủ kiếm ăn rồi còn muốn gì nữa mà bảo là không được.
Đồng tình cả hay tay với tiền bối .
Ôi ! giấc mơ kiếm đủ ăn !
Cơ bản nhất là học C , sau đó Assembly , rồi C++ , C# , Java . Nếu bạn đã nắm tương đối rõ một ngôn ngữ thì thường khi chuyển sang ngôn ngữ khác sẽ học nhanh ( Từ C-> C# hay Java ) . Bây giờ có thời gian thì học càng nhiều càng tốt . Học xong để lâu không dùng có thể bạn không nhớ nhưng sẽ vẫn nắm được ít nhiều nền tảng , nếu như cần học lại sẽ rất dễ dàng .
Đồng tình với ý kiến của bạn ! có điều nếu là mình thì từ C++ -> Java luôn.
Taeyeon
14-09-2012, 08:33 PM
Mình học từ c++ xong rồi nhảy qua C# luôn.Y(:`)
susuriyuyuki
28-12-2012, 04:58 PM
Đoạn này lại hàn lâm bác học rồi.
Tôi không từ C/C++ sang nên cái đoạn bạn chép trong sách kia ra nó là điều hiển nhiên với lập trình viên Java rồi. Đừng đánh đồng thuật ngữ "đối tượng" trong Java và C để rồi tỏ ra uyên thâm khi chỉ ra cái khác nhau sâu xa về cách tổ chức bộ nhớ của 2 thằng. Đối tượng trong Java mặc nhiên nó là thế rồi, những lập trình viên Java đều biết điều này, sao cứ phải lấy C làm chuẩn mực để so sánh khi một cái gì đó nó khác C???
Đồng ý với bạn là bạn kia có tỏ ra hơi quá.
Nhưng trong Java cái mà bạn gọi là "đối tượng" chỉ là tham chiếu đến đối tượng thôi, bạn không học c++ thì sao hiểu rõ sự khác nhau giữa đối tượng với tham chiếu đến đối tượng? Cái Java nó đã che đi quá nhiều phần bản chất, bạn bắt đầu từ Java thì đừng có tranh luận với người bắt đầu từ c/c++ về phần bản chất của lập trình =]] đơn giản bởi vì Java đã che đi phần bản chất thật sự và bỏ đi những thứ phức tạp từ c/c++.
Nói thật một lập trình viên chuyên nghiệp thì người ta phải biết c/c++ ở mức advanced
Thằng gà nào mở miệng nói C++ dễ hơn Java/C# thì thằng đó chẳng biết C++ là cái quái gì! Trong 4 thằng
1. C++
2. C
3. Java
4. C#
C++ là thằng khó học nhất, vì nó quá flexible, đọc vài cái ISO C++ standard thì sẽ hiểu. Làm chục năm với C++ cũng còn phải lòi mắt ra không hiểu vì sao đoạn code đó lại chạy như vậy chứ học qua sơ sơ thì có mà chào thua.
Java/C# tại sao được nhiều người dùng?
1. Nó đơn giản, cấu trúc rõ ràng
2. Có cty lớn đằng sau support, Oracle và Microsoft vì vậy nó hộ trỡ rất tốt cho các thư viện.
3. Vì nó là component base, các thủ thuật trong các công nghệ của C# và Java hầu như Google hoặc stackoverflow là đều có hết. (Android, C# Window Form, .NET....)
4. Không có nhiều cài đặt phức tạp, plug in là run thôi, ít bị binary compatibility.
Đó là những lợi thế mà Java/C# có, và hầu như cho những người mới học thì thấy Java và C# rất thuận tiện, vì nó giúp họ học "Computer Science" nhanh hơn, từ algorithm -> graphics -> image processing....
Một điều nữa, những mãng mà C++ mạnh toàn đều là mãng khó:
1. Game (fucking Mathematics and Physics, easy?)
2. Embedded (have you ever deal with semaphore and share data problem)
3. Networking (graph theory, EE, easy?)
4. Operating system (how easy?)
Những mảng này hoàn toàn không có average programmers! Muốn làm những này, bắt buộc bạn phải cực kì thành thào C++ và thuộc loại giỏi đến xuất sắc. Ví dụ, làm bên Embeded, product này đọc schematic của board này, configuration của nó cũng khác, phải deal với Electrical, Physics và thêm cái share data problems nữa. Hầu hết các system dạng này là parallel, nhưng làm gì có thread library mà dùng, semphore, message queue...! Cài có mà nổ óc! Bản thân tôi từng viết vài chục ngàn dòng project với Java và C#, nhưng khi tôi chuyển qua embeded, code tôi viết chỉ có vài trăm dòng thôi. Nhưng thời gian tôi ngồi suy nghĩ xem nó chạy ra sao thì phải gấp 2 gấp 3 thời gian tôi viết code. Thứ 3, code trong những mãng này khả năng Google cho ra là 5%, vì hầu hết cái projects trong lĩnh vực này khác nhau rất nhiều.
Thời buổi bây giờ, cắt hết internet thì tụi Java/C# coder có mà code bằng niềm tin!
Thêm nữa, cho những thằng gà mà cứ nói tau biết C++, C++ không cần object oriented! C++ is not just OO, the whole idea of STL is template!
Mình đồng ý với bạn hầu hết ở các ý. Nhưng chỉ có một điều:
Thật sự thì học c++ dễ hơn c# với java vì lý thuyết của c# với java đồ sộ hơn, nhưng để hiểu sâu, ứng dụng tốt, code = c++ thì khó gấp bội lần c# java
Nói chung c++ học dễ hơn c# và java nhưng để code thì đừng so sánh c++ với java, c# bởi vì c++ quá ư là phức tạp về mặt bản chất và trong c++ thì bạn phải làm hầu hết mọi việc chứ ko phải "sai trình dịch làm" như mì gói c# với java =]]
Wazi Armstrong
28-12-2012, 05:38 PM
Đồng ý với bạn là bạn kia có tỏ ra hơi quá.
Nhưng trong Java cái mà bạn gọi là "đối tượng" chỉ là tham chiếu đến đối tượng thôi, bạn không học c++ thì sao hiểu rõ sự khác nhau giữa đối tượng với tham chiếu đến đối tượng? Cái Java nó đã che đi quá nhiều phần bản chất, bạn bắt đầu từ Java thì đừng có tranh luận với người bắt đầu từ c/c++ về phần bản chất của lập trình =]] đơn giản bởi vì Java đã che đi phần bản chất thật sự và bỏ đi những thứ phức tạp từ c/c++.
Nói thật một lập trình viên chuyên nghiệp thì người ta phải biết c/c++ ở mức advanced
Cái này hay ah nha (8-)> Ai định nghĩa hộ từ "chuyên nghiệp" với.
Mình chọn java vì mình yêu thích sự đơn giản. Đem sự đơn giản ứng dụng vào cuộc sống và mạng lại những lợi ích thiết thực. Bác nào yêu thích sự phức tạp để đem lại những cái đơn giản cho người khác (như mình) thì đừng ném đá, đừng chê người khác mì ăn liền. Ai cũng có phương châm sống cả thôi.
PS: Mình thường viết bài dưới góc độ của 1 Java developer, theo như bạn thì có thể gọi là lập trình viên không chuyên nghiệp, đại trà, số đông, hay không hiểu bản chất... nhưng mình cũng có thể lí giải hầu hết các hiện tượng từ các xung 0, 1 -> logic circuit -> kiến trúc máy tính, asm -> trình biên dịch -> ... Bản thân cũng code C hơn 2 năm với đủ thể loại giải thuật. Nhưng mình thích đứng trên phương diện khách quan hơn vì mình thấy nhiều lúc người ta đánh giá khá là bất công về những người học lập trình mà không cày qua những thứ như C bác học. Liệu 1 người với mục tiêu là làm 1 lập trình viên web có nhất thiết phải biết thế nào là Big Endian với Little Endian không?
litikali
28-12-2012, 05:59 PM
Cái này hay ah nha Ai định nghĩa hộ từ "chuyên nghiệp" với.
Chuyên nghiệp là chuyên làm 1 nghề gì đó để mưu sinh. Chuyên đi lập trình để mưu sinh là chuyên nghiệp rồi(=D)>
Mà thật ra mấy bạn đang so sánh cái gì khi nói C++ dễ hơn Java/C# vậy @__@, định nghĩa cái dễ hơn trước rồi hãng tranh luận kẻo ông nói gà bà nói vịt.
Dễ hơn là dễ học hơn hay dễ sử dụng hơn? Dễ hơn trong lĩnh vực nào, nền nào? @__@
Cứ như là đang so sánh "toán" với "lý" cái nào dễ hơn thì cãi tới tết... năm 2014 nhé(:-O)
Dark Knight
28-12-2012, 07:54 PM
Tranh cãi mấy ngôn ngữ thì bất tận, mình nghĩ các bạn đừng nên tốn thời gian vô ích vào làm gì. Mỗi ngôn ngữ có thế mạnh riêng biệt trong từng lĩnh vực khác nhau.Ngôn ngữ là cách để lập trình viên diễn đạt ý tưởng thuật toán của mình. Ví dụ như với C bạn cũng có thể lập trình web bằng cách dùng C để viết 1 cái tương tự như PHP (
. Người lập trình viên khôn ngoan phải là người biết tận dụng những cái gì tốt nhất có sẵn để tạo nên cái tốt hơn chứ không phải suốt ngày đi phát minh lại cái bánh xe
Wazi Armstrong
28-12-2012, 08:17 PM
Đồng ý với bạn là bạn kia có tỏ ra hơi quá.
Nhưng trong Java cái mà bạn gọi là "đối tượng" chỉ là tham chiếu đến đối tượng thôi, bạn không học c++ thì sao hiểu rõ sự khác nhau giữa đối tượng với tham chiếu đến đối tượng? Cái Java nó đã che đi quá nhiều phần bản chất, bạn bắt đầu từ Java thì đừng có tranh luận với người bắt đầu từ c/c++ về phần bản chất của lập trình =]] đơn giản bởi vì Java đã che đi phần bản chất thật sự và bỏ đi những thứ phức tạp từ c/c++.
Nói thật một lập trình viên chuyên nghiệp thì người ta phải biết c/c++ ở mức advanced
Các bạn hiểu thế nào là "bản chất của lập trình" :-?
Với mình, lập trình là đưa việc giải quyết 1 bài toán về 1 tập hữu hạn những bước cơ bản như tuần tự, lựa chọn, lặp.
qnthuongo_o
09-04-2013, 11:46 PM
hiii rứa mình học mấy ngôn ngữ kia cả rồi (c,c++, java, php, javascript, dot.net, vb, asembly). giờ cho mình hỏi hiện nay thì ngôn ngữ nào là chính nhất để mình học thật tốt vô để có thể đi làm mấy cty software dc ấy? bạn nào làm ở fpt hay unitech,.. rồi cho mình ý kiến với!^_^
mình xin cảm ơn các bạn!
daoshoponline
01-05-2013, 04:54 PM
thấy học ở C/C++ thì mấy cái hàm ( sort swap ... ) đa số làm bằng tay cả , qua java người ta có hiện thực sẵn vài cái . Với lại ở bên C/C++ có cái biến con trỏ , .. , nếu học từ từ lên sẽ hiểu được cái bộ nhớ nó làm việc với lại phân chia như thế nào .
thuanchinapro07
06-06-2013, 05:36 PM
Chào mọi người!
Tớ là sv năm 1. Tớ có 1 kế hoạch cho mình là sẽ học thật nhuyễn C sau đó học lên C++ rồi sẽ tham khảo, tự học thêm lập trình hướng đối tượng (nếu ở trg chưa dạy tới).. Tiếp theo sẽ bắt đầu với Java và C#.. Và sau đó nữa có thể tớ sẽ xem thêm về lập trình nhúng. Mọi người thấy kế hoạch đó thế nào.?? Tớ rất mong nhận đc những ý kiến và lời khuyên. Thank you (:-*)
Sau khi học c -> c++ bạn có thể theo java or c#
+ Bạn theo 1 trong hai thàng java or c# là ok rồi (không sợ chết) mình đảm bảo đó.
Còn cả hai thì càng tốt.
+ Học theo trình tự của bạn xong bạn cũng già mất rồi
chúc bạn thành công !
hdk_pro
09-06-2013, 01:50 AM
Hoc luon tu java hoac c# deu dc ma neu nhu ban hoc chac.minh trc cung hoc c,c++ qua loa roi nhay sang java luon thay rat o^n ma
View Full Version : Nên học theo trình tự C --> C++ --> Java --> C# ???