banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận việc định hướng "Nên học C hay C++"  XML
  [Question]   "Nên học C hay C++" 20/03/2010 16:49:09 (+0700) | #1 | 207418
C0pyl3ft
Locked

[Minus]    0    [Plus]
Joined: 10/01/2010 23:36:27
Messages: 83
Offline
[Profile] [PM]
Google cái khóa này trên google thấy có rất nhiều ý kiến về vấn đề này, nhưng các ý kiến chia thành hai hướng, một ủng hộ C, một ủng hộ C++, tác giả của C++ là Bjarne Stroustrup thì khuyên nên học C++ trước, nên mình xin mở một topic để xin ý kiến của mọi người, nếu là người mới bắt đầu và không phải là dân lập trình chuyên nghiệp thì nên học C hay C++ trước, và nên quan tâm vào cái nào nhiều hơn?

Một số bạn có đưa ra ý kiến là nên code hai đoạn chương trình dùng C và C++ rồi so sánh, đây là cách rất hay, nhưng mình vẫn chưa rút ra được gì nhiều qua cách làm đó, vì có lẽ mình chưa hiểu lắm về cả C và C++. Có một ý kiến cho rằng
Tôi nghĩ chúng ta nên học C trước. Học C như là bước đệm để học các ngôn ngữ khác hay cụ thể hơn là C++. Bạn nên học các khái niệm cơ bản của C trước khi bắt đầu với C++, có nghĩa là không cần quá chuyên sâu đâu, chỉ cần làm quen với ngôn ngữ được rồi. Sau đó chuyển qua C++. Tôi cảm thấy nếu ngay từ đầu bạn cố gắng bắt đầu với C++, một ngôn ngữ hướng đối tượng, bạn sẽ mất đi những kỹ năng cần thiết phải có đối với một nhà lập trình. 
còn các bạn nghĩ thế nào ? smilie

Cám ơn.
[Up] [Print Copy]
  [Question]   "Nên học C hay C++" 20/03/2010 17:27:27 (+0700) | #2 | 207421
bht
Member

[Minus]    0    [Plus]
Joined: 21/01/2010 04:13:14
Messages: 1
Location: Quảng Ninh
Offline
[Profile] [PM] [Yahoo!]
Theo mình nghĩ thì nên học C trươc vì mình thấy hiện nay, các trường ĐH đều bắt đầu dạy C như là một ngôn ngữ vỡ lòng thay cho Pascal trong chương trình tin học đại cương, chứ không trường nào dạy C++ trong chương trình đại cương cả, điều đó có nghĩa là C dễ tiếp cận hơn C, khi mới bắt đầu học lập trình thì nên bắt đầu tư C trước chứ không nên bắt đầu học từ C++. C++ trùm lên C, nghĩa là tất cả những gì có trong C thì đều có trong C++, ngoài ra C++ còn thêm chức năng hướng đối tượng. Vì thế nên học C trước để nắm được cái căn bản, khi bạn đã có kiến thức căn bản rồi thì học các ngôn ngữ lập trình khác sẽ rất nhanh, kể cả Java cũng vậy, cũng là phát triển từ C thôi, nên nếu bạn đã biết C rồi thì cũng sẽ học Java rất nhanh. Tất nhiên, bạn cũng có thể bắt đầu học C++ cũng không sao cả, nhưng theo mình nghĩ thì những người mới bắt đầu học lập trình như chúng ta nên bắt đầu học từ C trước bạn ạ, còn bạn nói tác giả của C++ khuyên nên học C++ trước thì điều đó là hẳn nhiên rồi vì ông ấy tạo ra nó mà, ai chẳng muốn cài mình tạo ra được nhiều người sử dụng.
[Up] [Print Copy]
  [Question]   "Nên học C hay C++" 20/03/2010 18:42:03 (+0700) | #3 | 207425
[Avatar]
WinDak
Researcher

Joined: 27/01/2002 11:15:00
Messages: 223
Offline
[Profile] [PM]
Câu hỏi quen thuộc mục đích lập trình của bạn là gì ?
-- w~ --
[Up] [Print Copy]
  [Question]   "Nên học C hay C++" 20/03/2010 19:23:16 (+0700) | #4 | 207431
dang113
Member

[Minus]    0    [Plus]
Joined: 04/09/2008 12:31:53
Messages: 76
Offline
[Profile] [PM] [Yahoo!]
Theo mình nghĩ là nên học C trước sau đó rồi học C++, sau đến Java. Đó là ý kiến riêng của mình.
P/S: Bạn nên tìm quyển lập trình C và lập trình C++ của thầy Ất, quyển đó đọc rất dễ hiểu.
Không chấp nhận vội vã.
[Up] [Print Copy]
  [Question]   "Nên học C hay C++" 20/03/2010 20:20:22 (+0700) | #5 | 207436
shell-command
Member

[Minus]    0    [Plus]
Joined: 14/03/2010 07:43:28
Messages: 41
Location: Địa Ngục
Offline
[Profile] [PM] [WWW]
Hai NNLT này, Theo mình học C++ luôn cũng không ảnh hưởng gì lắm. Vì không phải cứ học C++ là phải viết theo kiểu Hướng đối tượng, bạn viết theo Hướng cấu trúc cũng được mà. Sau đó tìm hiểu và viết theo hướng đối tượng cũng được. Quan trọng là cách viết của mình theo "Hướng cấu trúc" hay "Hướng đối tượng mà thôi" smilie
Chỉ mình tôi!!!
[Up] [Print Copy]
  [Question]   "Nên học C hay C++" 20/03/2010 21:54:03 (+0700) | #6 | 207445
FaL
Moderator

Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
[Profile] [PM]
Câu trả lời tổng quát là tùy theo nhu cầu của bạn mà quyết định sử dụng ngôn ngữ nào cho phù hợp.
Còn với việc bắt đầu học ngôn ngữ nào trước thì ý kiến riêng của mình là ngôn ngữ nào cũng được. Điều quan trọng là cách tiếp cận và cách người ta truyền thụ cho bạn mà thôi.
Thông thường người ta khuyên học Pascal và C trước, vì những ngôn ngữ này theo hướng cấu trúc (Procedure và Structure) - phù hợp với suy nghĩ giải quyết vấn đề thường thấy của con người. Bên cạnh đó thì C++ theo hướng đối tượng là phương pháp lập trình mới sau này, nên việc làm quen có bỡ ngỡ hơn. Nhưng nếu cách giới thiệu phù hợp thì ai cũng có thể tiếp thu phương pháp lập trình mới này.
Làm quen với ngôn ngữ là một việc không quá khó, nhất là khi bạn đã biết một ngôn ngữ khác trước đó. Mình thấy Pascal là một sự lựa chọn không tồi khi bắt đầu học lập trình, vì nó dễ hiểu và diễn đạt gần với tự nhiên nhất.
Hãy giữ một trái tim nóng và một cái đầu lạnh
[Up] [Print Copy]
  [Question]   "Nên học C hay C++" 20/03/2010 22:02:11 (+0700) | #7 | 207446
DLKC
Elite Member

[Minus]    0    [Plus]
Joined: 24/03/2003 14:14:41
Messages: 161
Location: buồng chuối
Offline
[Profile] [PM]

FaL wrote:
Câu trả lời tổng quát là tùy theo nhu cầu của bạn mà quyết định sử dụng ngôn ngữ nào cho phù hợp.
Còn với việc bắt đầu học ngôn ngữ nào trước thì ý kiến riêng của mình là ngôn ngữ nào cũng được. Điều quan trọng là cách tiếp cận và cách người ta truyền thụ cho bạn mà thôi.
Thông thường người ta khuyên học Pascal và C trước, vì những ngôn ngữ này theo hướng cấu trúc (Procedure và Structure) - phù hợp với suy nghĩ giải quyết vấn đề thường thấy của con người. Bên cạnh đó thì C++ theo hướng đối tượng là phương pháp lập trình mới sau này, nên việc làm quen có bỡ ngỡ hơn. Nhưng nếu cách giới thiệu phù hợp thì ai cũng có thể tiếp thu phương pháp lập trình mới này.
Làm quen với ngôn ngữ là một việc không quá khó, nhất là khi bạn đã biết một ngôn ngữ khác trước đó. Mình thấy Pascal là một sự lựa chọn không tồi khi bắt đầu học lập trình, vì nó dễ hiểu và diễn đạt gần với tự nhiên nhất. 


Tôi thì thấy rằng Pascal là sự lựa chọn tồi khi bắt đầu học lập trình. Và giờ này tôi cũng rất và thật sự hối hận vì ngôn ngữ lập trình đầu tiên mà tôi học là Pascal chứ không phải là C.

Lúc trước ở bên DDTH có một chủ đề mà tôi nhớ cái title là: "Pascal - món quà cay độc của Bộ GD&ĐT" .. éc éc smilie

Tôi khuyên khi bắt đầu học lập trình thì học C đi. Những ngôn ngữ mới ngày nay, phần lớn đều có nét giông giống C. Cố học cho giỏi C, sau này có đọc code của mấy cái khác cho khỏi bỡ ngỡ smilie

Thân
Biển học vô bờ.
[Up] [Print Copy]
  [Question]   "Nên học C hay C++" 20/03/2010 22:09:07 (+0700) | #8 | 207447
C0pyl3ft
Locked

[Minus]    0    [Plus]
Joined: 10/01/2010 23:36:27
Messages: 83
Offline
[Profile] [PM]
@ FaL and WinDak: Mục đích có nói rồi còn gì smilie
nếu là người mới bắt đầu và không phải là dân lập trình chuyên nghiệp thì nên học C hay C++ trước, và nên quan tâm vào cái nào nhiều hơn? 


@ DLKC: Tớ học C trước, nhưng tò mò muốn biết ý kiến của các bạn về vấn đề này để sau này lỡ có ai nhờ tớ tư vấn thì tớ trả lời cho dễ smilie
[Up] [Print Copy]
  [Question]   "Nên học C hay C++" 20/03/2010 22:12:18 (+0700) | #9 | 207448
FaL
Moderator

Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
[Profile] [PM]
@DLKC:
Có thể mình chưa thấy được nhược điểm của Pascal cũng nên. Mình chỉ đứng với góc độ người làm quen với lập trình, khi đó thì ngôn ngữ nào thật sự không quan trọng, quan trọng là cách người ta truyền đạt thông tin cho bạn mà thôi. Pascal có lợi thế là đơn giản, dễ hiểu, nên mình nghĩ bắt đầu cũng không có gì sai. Bản thân mình có học Pascal, sau này học C, C++ rồi nhiều ngôn ngữ thuộc nhiều loại khác nữa như Perl, PHP, LISP, Prolog, ... Do tính "lịch sử" nên Perl và PHP cú pháp na ná họ C, nhưng LISP và Prolog thì không.
Xét cho cùng thì lập trình là làm công việc giải thuật, còn ngôn ngữ là phương tiện giúp ta hiện thực hóa giải thuật mà thôi.
Hãy giữ một trái tim nóng và một cái đầu lạnh
[Up] [Print Copy]
  [Question]   "Nên học C hay C++" 20/03/2010 22:15:08 (+0700) | #10 | 207450
FaL
Moderator

Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
[Profile] [PM]

C0pyl3ft wrote:
@ FaL and WinDak: Mục đích có nói rồi còn gì smilie
nếu là người mới bắt đầu và không phải là dân lập trình chuyên nghiệp thì nên học C hay C++ trước, và nên quan tâm vào cái nào nhiều hơn? 


@ DLKC: Tớ học C trước, nhưng tò mò muốn biết ý kiến của các bạn về vấn đề này để sau này lỡ có ai nhờ tớ tư vấn thì tớ trả lời cho dễ smilie 


Mình nghĩ bạn có thể bắt đầu ngay với C++. Không có "định lý" chứng minh là phải học C trước C++ cả. Trong bước đầu làm quen cấu trúc lệnh bạn sẽ viết các chương trình theo hướng cấu trúc. Sau đó sẽ học tiếp cận với phương pháp lập trình hiện đại hiện nay đó là "hướng đối tượng".
Hãy giữ một trái tim nóng và một cái đầu lạnh
[Up] [Print Copy]
  [Question]   "Nên học C hay C++" 20/03/2010 23:34:16 (+0700) | #11 | 207458
[Avatar]
WinDak
Researcher

Joined: 27/01/2002 11:15:00
Messages: 223
Offline
[Profile] [PM]

C0pyl3ft wrote:
@ FaL and WinDak: Mục đích có nói rồi còn gì smilie
nếu là người mới bắt đầu và không phải là dân lập trình chuyên nghiệp thì nên học C hay C++ trước, và nên quan tâm vào cái nào nhiều hơn? 


@ DLKC: Tớ học C trước, nhưng tò mò muốn biết ý kiến của các bạn về vấn đề này để sau này lỡ có ai nhờ tớ tư vấn thì tớ trả lời cho dễ smilie 


... Cái đó vẫn chưa rõ mục đích của bạn... nếu để bắt đầu (cho biết thế nào là lập trình ) thì bạn có thể học Pascal hay VB, những thứ dễ học dễ làm dễ hiểu.

Học C nếu bạn muốn tìm hiểu hoặc làm những thứ "low-level" như memory, pointer
Học C++ nếu muốn tìm hiểu về "hướng đối tượng".

đấy là đi theo level dễ đến khó, nếu là học cho biết thì bạn có thể nhảy vượt cấp học "C++" cũng được

Nhưng mình khuyên nên có 1 mục đích cụ thể, sẽ giúp học nhanh hơn và không bị chán. Ví dụ : mục đích là để viết 1 simple program client-server -> C, học để tìm hiểu linux kernel -> C++ v..
-- w~ --
[Up] [Print Copy]
  [Question]   "Nên học C hay C++" 21/03/2010 19:48:41 (+0700) | #12 | 207496
[Avatar]
phonglanbiec
Member

[Minus]    0    [Plus]
Joined: 03/07/2006 20:56:00
Messages: 162
Offline
[Profile] [PM]

DLKC wrote:

FaL wrote:
Câu trả lời tổng quát là tùy theo nhu cầu của bạn mà quyết định sử dụng ngôn ngữ nào cho phù hợp.
Còn với việc bắt đầu học ngôn ngữ nào trước thì ý kiến riêng của mình là ngôn ngữ nào cũng được. Điều quan trọng là cách tiếp cận và cách người ta truyền thụ cho bạn mà thôi.
Thông thường người ta khuyên học Pascal và C trước, vì những ngôn ngữ này theo hướng cấu trúc (Procedure và Structure) - phù hợp với suy nghĩ giải quyết vấn đề thường thấy của con người. Bên cạnh đó thì C++ theo hướng đối tượng là phương pháp lập trình mới sau này, nên việc làm quen có bỡ ngỡ hơn. Nhưng nếu cách giới thiệu phù hợp thì ai cũng có thể tiếp thu phương pháp lập trình mới này.
Làm quen với ngôn ngữ là một việc không quá khó, nhất là khi bạn đã biết một ngôn ngữ khác trước đó. Mình thấy Pascal là một sự lựa chọn không tồi khi bắt đầu học lập trình, vì nó dễ hiểu và diễn đạt gần với tự nhiên nhất. 


Tôi thì thấy rằng Pascal là sự lựa chọn tồi khi bắt đầu học lập trình. Và giờ này tôi cũng rất và thật sự hối hận vì ngôn ngữ lập trình đầu tiên mà tôi học là Pascal chứ không phải là C.

Lúc trước ở bên DDTH có một chủ đề mà tôi nhớ cái title là: "Pascal - món quà cay độc của Bộ GD&ĐT" .. éc éc smilie

Tôi khuyên khi bắt đầu học lập trình thì học C đi. Những ngôn ngữ mới ngày nay, phần lớn đều có nét giông giống C. Cố học cho giỏi C, sau này có đọc code của mấy cái khác cho khỏi bỡ ngỡ smilie

Thân 


Cho mình chọn lại, có lẽ là vẫn chọn Pascal làm ngôn ngữ lập trình đầu tiên. Hôm trước, khi học mạng máy tính, thầy trưởng khoa mình có nói: "Trường mình không dạy cho các em một ngôn ngữ nào hết, mà dạy cho các em cái tư tưởng, hướng đi giải quyết vấn đề".

Nếu cứ cho rằng biết một ngôn ngữ lập trình có thể làm nên một lập trình viên là hoàn toàn sai lầm.

Vấn đề thứ 2 mình suy nghĩ, đó là lập trình hướng đối tượng và không hướng đối tượng thì cái nào nên học trước? Mình không nghĩ rằng nên học cái này trước hay cái kia trước, mà do bạn thích theo hướng nào thôi. Bạn giỏi lập trình theo structure đâu có nghĩa là bạn sẽ học được OO hay giỏi OO thì qua structure tốt. Trường mình học, nhiều bạn chưa hề biết lập trình là gì nhưng khi vào OO thì vẫn tốt chán. Vẫn suy nghĩ thông suốt thôi.
[Up] [Print Copy]
  [Question]   "Nên học C hay C++" 21/03/2010 22:43:42 (+0700) | #13 | 207501
phanledaivuong
Member

[Minus]    0    [Plus]
Joined: 23/05/2008 17:34:21
Messages: 315
Location: /dev/null
Offline
[Profile] [PM] [WWW]

WinDak wrote:

Học C nếu bạn muốn tìm hiểu hoặc làm những thứ "low-level" như memory, pointer
Học C++ nếu muốn tìm hiểu về "hướng đối tượng".
đấy là đi theo level dễ đến khó, nếu là học cho biết thì bạn có thể nhảy vượt cấp học "C++" cũng được
Nhưng mình khuyên nên có 1 mục đích cụ thể, sẽ giúp học nhanh hơn và không bị chán. Ví dụ : mục đích là để viết 1 simple program client-server -> C, học để tìm hiểu linux kernel -> C++ v.. 

Theo mình biết là C++ bao gồm C. nên C có pointer thì C++ cũng có, trong 1 đoạn code C++ bạn có thể vừa dùng cin, vừa dùng scanf vẫn được cơ mà mấy cái loop như for, while, do while thì cũng giống hệt nhau, nên C có cái gì thì C++ có cái đấy chứ smilie,

WinDak wrote:

học để tìm hiểu linux kernel -> C++ v.. 

kernel của linux viết bằng C smilie

Cá nhân mình thấy nếu học lập trình thì nên bắt đầu với C++ vì C++ là ngôn ngữ kiểu hybrid nên bản có thể code theo kiểu non-object cũng được mà theo kiểu object cũng được. đầu tiên là code theo kiểu non-object sau này khi học tiếp đến structure và class thì code theo kiểu object.

Theo mình thấy thì sau khi học xong chúng ta sẽ làm gì với ngôn ngữ chúng ta vừa học song cũng là 1 câu hỏi khá thú vị smilie
[Up] [Print Copy]
  [Question]   "Nên học C hay C++" 22/03/2010 08:02:47 (+0700) | #14 | 207517
[Avatar]
WinDak
Researcher

Joined: 27/01/2002 11:15:00
Messages: 223
Offline
[Profile] [PM]

phanledaivuong wrote:

WinDak wrote:

Học C nếu bạn muốn tìm hiểu hoặc làm những thứ "low-level" như memory, pointer
Học C++ nếu muốn tìm hiểu về "hướng đối tượng".
đấy là đi theo level dễ đến khó, nếu là học cho biết thì bạn có thể nhảy vượt cấp học "C++" cũng được
Nhưng mình khuyên nên có 1 mục đích cụ thể, sẽ giúp học nhanh hơn và không bị chán. Ví dụ : mục đích là để viết 1 simple program client-server -> C, học để tìm hiểu linux kernel -> C++ v.. 

Theo mình biết là C++ bao gồm C. nên C có pointer thì C++ cũng có, trong 1 đoạn code C++ bạn có thể vừa dùng cin, vừa dùng scanf vẫn được cơ mà mấy cái loop như for, while, do while thì cũng giống hệt nhau, nên C có cái gì thì C++ có cái đấy chứ smilie,
 

Ý mình là không nên xài dao mổ trâu đểu giết gà ! Cái đó là mục đích của việc "xác định mục đích". Dĩ nhiên có thể sử dụng C++, nhưng lúc đó cú pháp sẽ lẫn lôn giữa 2 cái, và không biết cái nào là C thuần, cái nào là C++, không biết phần nào là object oriented mà C++ add vào.


học để tìm hiểu linux kernel -> C++ v..
kernel của linux viết bằng C smilie
 


Đúng là mình nhầm, Thanks!. Core kernel viết = C, chỉ có các driver, các application sau này port qua C++.

wd.
-- w~ --
[Up] [Print Copy]
  [Question]   "Nên học C hay C++" 22/03/2010 09:38:41 (+0700) | #15 | 207527
C0pyl3ft
Locked

[Minus]    0    [Plus]
Joined: 10/01/2010 23:36:27
Messages: 83
Offline
[Profile] [PM]
Có ý kiến cho rằng (mà trong đó có cả tớ smilie)
Những việc làm được bằng C thì cũng có thể dùng C++ để làm tốt, còn ngược lại thì chưa chắc là được. 
Không biết ý kiến các bạn thế nào nhỉ ? smilie

(Xin lỗi, do mình không phải dân lập trình nên mấy cái vấn đề mang tính chuyên sâu này mình hoàn toàn mù tịt)
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|