nikitam7w3sa
Pearl
Khi google tìm câu trả lời, bạn sẽ luôn thấy "Bắt đầu với Python vì nó dễ nhất" nhưng mình không đồng ý với điều này. Câu trả lời khác là tránh học C, và mình cũng hoàn toàn không đồng ý. Có thể quan điểm của mình không đúng trend, nhưng mình nghĩ tốt nhất là nên học C trước, và mình sẽ giải thích tại sao.
Nhưng trước tiên, để trả lời cho câu hỏi này chúng ta cũng cần phải biết nhu cầu của mình muốn làm những gì cái đã. Nếu tất cả những gì bạn đang làm là phát triển web front end, thì rõ ràng trọng tâm của bạn nên tập trung vào HTML, javascript, CSS và những CMS mà bạn cảm thấy thoải mái khi học. Hoặc nếu bạn chỉ muốn làm app cho hệ điều hành iOS, thì hãy học Swift...
Ngoài ra, nếu "dễ dàng" là một tiêu chí quan trong đối với bạn, thì có thể học Python. Nhưng mình không nghĩ học lập trình chỉ vì nó dễ dàng. Kiếm tiền không bao giờ là dễ cả, hãy nhớ lấy điều đó! Cái người mà khuyên bạn “hãy học Python trước” ấy mà, họ rất có thể nghĩ bạn là kẻ ngốc nghếch đấy.
Vì vậy, nếu bạn hỏi “Tôi nên bắt đầu học ngôn ngữ lập trình nào”, mình cho rằng đó là vì bạn muốn nắm được tổng quát về máy tính và có thể mở rộng sang nhiều lĩnh vực bằng cách học nhiều ngôn ngữ và bạn muốn có một nền tảng vững chắcđể học các kỹ năng tính toán suốt đời.
Nếu đúng như vậy, thì dễ nhất không có nghĩa là tốt hơn, do đó học Python trước không phải là tốt hơn, bất chấp những gì tìm kiếm trên google sẽ cho bạn biết kết quả nào. Chắc chắn, nó có thể giúp bạn bắt đầu và chạy nhanh hơn, đồng thời tạo ra các chương trình nhanh hơn, và có thể bạn cần nguồn cảm hứng đó để duy trì động lực và gắn bó với nó. Nhưng sự thoải mái này có thể không phải là điều tốt về lâu dài, khi bạn thấy mình cần chuyển sang một ngôn ngữ khác và nhận được sự đánh thức thô lỗ rằng, "Ồ, máy tính khó hơn mình nghĩ". Ngoài ra, vì Python là một ngôn ngữ cấp cao, bạn thực sự bị loại bỏ khỏi cơ chế hoạt động của máy tính. Nếu bạn muốn tham gia vào phần cứng hoặc hệ thống nhúng, bạn sẽ rất khó khăn điều chỉnh so với việc bạn có được các kỹ năng máy tính cốt lõi trước tiên.
Có một số lý do chính đáng khiến mình khuyên học C đầu tiên, nhưng lý do chính là về mức độ trừu tượng từ lập trình cấp thấp đến cấp cao, việc học cả hai là điều hoàn toàn phù hợp. Tức là nếu bạn học C, bạn có thể di chuyển cả hai hướng. Việc giảm một cấp độ và học hợp ngữ không khó bằng việc tăng cấp độ và học C ++.
Vì vậy, mình tin rằng C là ngôn ngữ tốt nhất để học đầu tiên để xây dựng một nền tảng tổng thể vững chắc trong lập trình. C ++ khó hơn các ngôn ngữ hướng đối tượng khác, nhưng một khi bạn học C ++, việc chuyển sang lập trình hướng đối tượng như Java hoặc Python là một điều dễ dàng.
Trong khi đó, nếu đã học Python trước, bạn có thể mất hứng thú khi chuyển sang C và quay trở lại vùng an toàn của mình. Nếu bạn chỉ muốn học một ngôn ngữ, tốt thôi, hãy học Python. Nhưng nếu bạn dự định học nhiều ngôn ngữ, C phân nhánh thành C ++, và C ++ giúp bạn có thể học những ngôn ngữ khác một cách dễ dàng. Nếu thực sự muốn mày mò với rô bốt, phần cứng và hệ thống nhúng, bạn có thể sẽ muốn học một vài hợp ngữ, và C liên quan đến những ngôn ngữ đó đẹp hơn nhiều, chưa kể nhiều thứ có thể được thực hiện một mình trong C.
Bạn sẽ có nhiều khả năng tùy biến hơn và đó là một trong những lợi thế của việc học các ngôn ngữ cấp thấp hơn, nó cho phép bạn chỉ cần viết mã bạn cần.
Một điều quan trọng khác bạn cần nhớ là phần lớn những gì máy tính đã phát triển cho đến ngày nay thực sự bắt đầu với C. (nó không phải là lâu đời nhất, nó chỉ là hướng đi của máy tính) Hệ điều hành linux được viết hoàn toàn bằng C, C ++ phát triển từ C và điều tương tự cũng có thể nói đối với Python và Ruby và tất cả các ngôn ngữ phổ biến khác hiện nay. Vì vậy, nếu bạn học những ngôn ngữ khác trước thì cũng giống như bạn học tiểu học từ lớp 5 chứ không phải lớp 1! Thực tế, rất nhiều thứ trong thế giới này bắt nguồn từ C. Hệ thống nhúng ở khắp mọi nơi. C ở khắp mọi nơi. Nhưng các ngôn ngữ được xây dựng từ C cũng có ở khắp mọi nơi.
Vậy bạn có cần biết C để trở thành một lập trình viên? Câu trả lời là không.
Nhưng mình nghĩ bạn cần phải tự hỏi mình, "muốn một lát bánh hay muốn cả chiếc bánh?"
Nếu bạn chỉ muốn thực hiện một số việc với máy tính, chẳng hạn như thiết kế web hoặc phát triển ứng dụng, thì chỉ cần tìm ngôn ngữ phù hợp nhất với những gì bạn muốn.
Nhưng nếu bạn muốn biến máy tính thành cuộc sống của mình và không bị các mối đe dọa mất việc làm rình rập và muốn xây dựng một nền tảng vững chắc nói chung để học nhiều ngôn ngữ, thì bạn nên đi tìm toàn bộ chiếc bánh, tức là học C trước.
Sau đó, chuyển sang hợp ngữ và C ++, và các ngôn ngữ khác nếu cần.
Đấy là ý kiến của mình. Các anh em lập trình viên có ý kiến gì khác không?
Nhưng trước tiên, để trả lời cho câu hỏi này chúng ta cũng cần phải biết nhu cầu của mình muốn làm những gì cái đã. Nếu tất cả những gì bạn đang làm là phát triển web front end, thì rõ ràng trọng tâm của bạn nên tập trung vào HTML, javascript, CSS và những CMS mà bạn cảm thấy thoải mái khi học. Hoặc nếu bạn chỉ muốn làm app cho hệ điều hành iOS, thì hãy học Swift...
Ngoài ra, nếu "dễ dàng" là một tiêu chí quan trong đối với bạn, thì có thể học Python. Nhưng mình không nghĩ học lập trình chỉ vì nó dễ dàng. Kiếm tiền không bao giờ là dễ cả, hãy nhớ lấy điều đó! Cái người mà khuyên bạn “hãy học Python trước” ấy mà, họ rất có thể nghĩ bạn là kẻ ngốc nghếch đấy.
Nếu đúng như vậy, thì dễ nhất không có nghĩa là tốt hơn, do đó học Python trước không phải là tốt hơn, bất chấp những gì tìm kiếm trên google sẽ cho bạn biết kết quả nào. Chắc chắn, nó có thể giúp bạn bắt đầu và chạy nhanh hơn, đồng thời tạo ra các chương trình nhanh hơn, và có thể bạn cần nguồn cảm hứng đó để duy trì động lực và gắn bó với nó. Nhưng sự thoải mái này có thể không phải là điều tốt về lâu dài, khi bạn thấy mình cần chuyển sang một ngôn ngữ khác và nhận được sự đánh thức thô lỗ rằng, "Ồ, máy tính khó hơn mình nghĩ". Ngoài ra, vì Python là một ngôn ngữ cấp cao, bạn thực sự bị loại bỏ khỏi cơ chế hoạt động của máy tính. Nếu bạn muốn tham gia vào phần cứng hoặc hệ thống nhúng, bạn sẽ rất khó khăn điều chỉnh so với việc bạn có được các kỹ năng máy tính cốt lõi trước tiên.
Có một số lý do chính đáng khiến mình khuyên học C đầu tiên, nhưng lý do chính là về mức độ trừu tượng từ lập trình cấp thấp đến cấp cao, việc học cả hai là điều hoàn toàn phù hợp. Tức là nếu bạn học C, bạn có thể di chuyển cả hai hướng. Việc giảm một cấp độ và học hợp ngữ không khó bằng việc tăng cấp độ và học C ++.
Vì vậy, mình tin rằng C là ngôn ngữ tốt nhất để học đầu tiên để xây dựng một nền tảng tổng thể vững chắc trong lập trình. C ++ khó hơn các ngôn ngữ hướng đối tượng khác, nhưng một khi bạn học C ++, việc chuyển sang lập trình hướng đối tượng như Java hoặc Python là một điều dễ dàng.
Bạn sẽ có nhiều khả năng tùy biến hơn và đó là một trong những lợi thế của việc học các ngôn ngữ cấp thấp hơn, nó cho phép bạn chỉ cần viết mã bạn cần.
Một điều quan trọng khác bạn cần nhớ là phần lớn những gì máy tính đã phát triển cho đến ngày nay thực sự bắt đầu với C. (nó không phải là lâu đời nhất, nó chỉ là hướng đi của máy tính) Hệ điều hành linux được viết hoàn toàn bằng C, C ++ phát triển từ C và điều tương tự cũng có thể nói đối với Python và Ruby và tất cả các ngôn ngữ phổ biến khác hiện nay. Vì vậy, nếu bạn học những ngôn ngữ khác trước thì cũng giống như bạn học tiểu học từ lớp 5 chứ không phải lớp 1! Thực tế, rất nhiều thứ trong thế giới này bắt nguồn từ C. Hệ thống nhúng ở khắp mọi nơi. C ở khắp mọi nơi. Nhưng các ngôn ngữ được xây dựng từ C cũng có ở khắp mọi nơi.
Vậy bạn có cần biết C để trở thành một lập trình viên? Câu trả lời là không.
Nhưng mình nghĩ bạn cần phải tự hỏi mình, "muốn một lát bánh hay muốn cả chiếc bánh?"
Nếu bạn chỉ muốn thực hiện một số việc với máy tính, chẳng hạn như thiết kế web hoặc phát triển ứng dụng, thì chỉ cần tìm ngôn ngữ phù hợp nhất với những gì bạn muốn.
Nhưng nếu bạn muốn biến máy tính thành cuộc sống của mình và không bị các mối đe dọa mất việc làm rình rập và muốn xây dựng một nền tảng vững chắc nói chung để học nhiều ngôn ngữ, thì bạn nên đi tìm toàn bộ chiếc bánh, tức là học C trước.
Sau đó, chuyển sang hợp ngữ và C ++, và các ngôn ngữ khác nếu cần.
Đấy là ý kiến của mình. Các anh em lập trình viên có ý kiến gì khác không?