01/10/2018, 11:44

Có cần thiết học C/C++ khi chọn đi theo lập trình web?

Sở dĩ là mình muốn theo bên lập trình web (cụ thể trước mắt là back-end). Mình đã học python (biết khá về django) và h đang học phần HTML/CSS/JavaScript. Do trong quá trình tìm hiểu thì mình có nghe nói C/C++ là kiến thức nền cho việc lập trình nhưng mà mình chỉ bắt đầu mò mẫm gần đây và thực sự thấy rất khó (có lẽ do khi mới vào mình đã học python). Nhưng theo mình được biết thì C/C++ không liên quan nhiều tới viết web. Vậy bây giờ mình có cần thiết phải học C/C++ không? Và nếu có thì học như thế nào? Xin mọi người cho ý kiến.

HK boy viết 13:54 ngày 01/10/2018

nghe nói C/C++ là kiến thức nền cho việc lập trình

Ai bảo thế?

Nếu nói như vậy thì mình hoàn toàn có thể nói là Pascal là gốc rễ của lập trình, và Ada là khởi nguồn của lập trình. Chịu không?

Nếu bạn đã biết Python rồi thì cứ thế mà tiếp thôi, ít nhất là biết được 1 ngôn ngữ rồi, đâu đến nỗi là mù code

Minh Hiếu viết 14:01 ngày 01/10/2018

Tại vì mình thấy một số trường ĐH ngta dạy C/C++ trước như nền tảng vậy. (mình không theo những trường CNTT) và đọc một số trang web thì học C/C++ vững thì học những cái khác sẽ dễ hơn.

Dark.Hades viết 13:52 ngày 01/10/2018

Nhưng theo mình được biết thì C/C++ không liên quan nhiều tới viết web

Lại bậy rồi, từ cái python bạn code cho tới các protocol bạn dùng, 99% là đi lên từ C/C++ nhé.
Hiện tại có thể C++ không dùng nhiều để “code” web nhưng tương lai khó nói. Nó sẽ không trực tiếp làm back-end nhưng nó sẽ là thứ để back-end hoạt động. Nhìn vào google và facebook xem, giờ đều phải quay vào C++ để phát triển hệ thống.

Minh Hiếu viết 13:53 ngày 01/10/2018

Cụ thể c/c++ làm gì trong phần back-end v bạn? Vì mình xem lộ trình back-end chỉ có các ngôn ngữ server-side như python,php,ruby,… Chứ mình ko bik c/c++ có lqan trong đây. Mình mò c/c++ vì nghĩ nó là nền tảng cho việc học lập trình

Văn Dương viết 13:54 ngày 01/10/2018

Lại bậy rồi, từ cái python bạn code cho tới các protocol bạn dùng, 99% là đi lên từ C/C++ nhé.

Mình không hiểu đoạn này ?
Bạn dựa vào đâu mà nói thế ?

Dark.Hades viết 13:48 ngày 01/10/2018

Xin dẫn chứng dưới đây luôn bác nhé:

Python:

GitHub

python/cpython

cpython - The Python programming language


HTTP protocol (được dùng phổ biến)
GitHub

apache/httpd

httpd - Mirror of Apache HTTP Server


GitHub

nginx/nginx

An official read-only mirror of http://hg.nginx.org/nginx/ which is updated hourly. Pull requests on GitHub cannot be accepted and will be automatically closed. The proper way to submit changes to ...

Lý do của số liệu 99% đã đưa ra để tránh bị cho là nói bừa:[quote=“Minh_Hieu2, post:1, topic:55038”]
Mình đã học python (biết khá về django)
[/quote]

Vô Thin viết 13:50 ngày 01/10/2018

Mấy chiến sỹ tổ lái lái ghê gớm, một lát cái thành ra loãng.

Nếu chủ topic đang học lập trình web và bắt đầu với Python thì mình muốn nói là “một nghề cho chín còn hơn chín nghề”. Đừng học thêm gì khác mà thành thạo Python đi, viết được một vài ứng dụng cho ra hồn đi, quăng lên GitHub cho thiên hạ xài chơi đi.

Cho đến một ngày nào đó, tự nhiên phát hiện ra rằng cần học thêm gì đó thì tự khắc học, thành thạo Python rồi thì bắt đầu một ngôn ngữ khác không thành vấn đề cho lắm.

Đừng có nghe lời khuyên lung tung rồi cuối cùng món nào cũng chấm mút vào, rồi thì món nào cũng lơ mơ, mỗi lần đụng tới đều phải cần đến Google mới viết code được, ngắt mạng ra có lẽ chỉ ngồi viết được mỗi Hello World! sẽ là điều đáng tiếc vậy.

Văn Dương viết 14:00 ngày 01/10/2018

Bạn có thể trích ra vài dòng không ?
Mình xem qua không thấy nói.

Mình nhìn vào cú pháp, Python cú pháp rất khác C/C++.
Nhìn vào cách hoạt động, Python là thông dịch (có thể nhầm) còn C/C++ là biên dịch.
Vậy Python phát triển từ C/C++ là về thành phần nào.

Xin thông não.

Minh Hiếu viết 13:55 ngày 01/10/2018

Mình tạo topic chỉ có mục đích như tiêu đề. Mình ko có ý định học sâu vào c/c++. Có thể là do đọc một số bài viết mà mình nghĩ c/c++ qan trọng nhưng chỉ ở mức nền. Mình chỉ mò c/c++ tầm 1 tuần gần đây nhưng cảm thấy khó nên lập topic để bik là có nên học c/c++ ko để mình ko phí tgian

Hung viết 13:47 ngày 01/10/2018

Làm ngắn hạn thì bỏ C++ đi.
Dài hạn thì … à mà thôi, dễ war lắm

Minh Hiếu viết 13:55 ngày 01/10/2018

nói bừa gì bác. Mình bik thì mình nói bik… Những cái mà bác nói thì ok, mình sẽ mò sau…

Dark.Hades viết 13:57 ngày 01/10/2018

Python chạy được nhờ vào trình thông dịch python, viết trên C/C++
Nói một cách “đơn giản hoá nhất có thể” là tạo 1 file parse các kí hiệu (if, else, {,},…) do người viết tự xác định, sau đó viết 1 file txt gồm những kí tự đó, cái file với chức năng parse kia sẽ là trình thông dịch.

Bác có thể xem python dùng C/C++ ở đâu tại phần makefiles của nó:

github.com

python/cpython/blob/master/Makefile.pre.in#L827

  1. regen-ast:
  2. # Regenerate Include/Python-ast.h using Parser/asdl_c.py -h
  3. $(MKDIR_P) $(srcdir)/Include
  4. $(PYTHON_FOR_REGEN) $(srcdir)/Parser/asdl_c.py \
  5. -h $(srcdir)/Include/Python-ast.h.new \
  6. $(srcdir)/Parser/Python.asdl
  7. $(UPDATE_FILE) $(srcdir)/Include/Python-ast.h $(srcdir)/Include/Python-ast.h.new
  8. # Regenerate Python/Python-ast.c using Parser/asdl_c.py -c
  9. $(MKDIR_P) $(srcdir)/Python
  10. $(PYTHON_FOR_REGEN) $(srcdir)/Parser/asdl_c.py \
  11. -c $(srcdir)/Python/Python-ast.c.new \
  12. $(srcdir)/Parser/Python.asdl
  13. $(UPDATE_FILE) $(srcdir)/Python/Python-ast.c $(srcdir)/Python/Python-ast.c.new
  14. .PHONY: regen-opcode
  15. regen-opcode:
  16. # Regenerate Include/opcode.h from Lib/opcode.py
  17. # using Tools/scripts/generate_opcode_h.py
  18. $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_opcode_h.py \
  19. $(srcdir)/Lib/opcode.py \
  20. $(srcdir)/Include/opcode.h.new

// Nếu bác từng dùng Vim, sẽ nghe nói tới vim-script, nó cũng là một ngôn ngữ chạy trên trình thông dịch vim, hay một game-engine godot, cũng là một trình thông dịch của GDScript

Minh Hiếu viết 13:48 ngày 01/10/2018

war gì bác… Mình chỉ muốn bik là học như thế nào cho hợp lí thôi. Và mình sẽ đi theo back-end lâu chứ ko phải kiểu một sớm một chiều

Dark.Hades viết 13:51 ngày 01/10/2018

More:

Socket của Python cũng là dùng lại BSD-Socket, xây dựng trên C/C++
=> Các framework website của python nếu không thiết kế lại socket thì cũng sẽ dùng thằng này (mà nếu có thiết kế lại thì cũng sẽ build từ C/C++ rồi port sang mà thôi)

Minh Hiếu viết 13:50 ngày 01/10/2018

vậy bác cho e hỏi tại sao lập trình back-end người ta chọn python,php,ruby,… để phát triển? Mình xem lộ trình học thì hoàn toàn ko có c/c++

Dark.Hades viết 13:47 ngày 01/10/2018

Như bạn @hungsteve . Mình chỉ bổ sung thêm là:

Nếu bạn muốn làm 1 dự án lớn muốn nhiều người có thể chung tay làm thì nên chọn những thứ đơn giản làm base. Như thiết kế game, phần mềm, đa số sẽ chọn những công cụ kéo thả, vì nó dễ thuê người khác. C/C++ tuy ở đâu cũng dạy, ai cũng thấy học nhưng không phải ai cũng biết dùng và áp dụng nó được vào công việc.

Vô Thin viết 13:54 ngày 01/10/2018

Cần phân biệt lập trình web và lập trình hệ thống hoặc lập trình chạy trên server. Các hệ thống lớn (rất lớn, hàng tỉ lượt truy cập/ ngày), khi người ta sử dụng ngôn ngữ lập trình web (vốn bản chất nó là ngôn ngữ thông dịch) chạy đến mức nào đó thì gần như… bí đái vì bản thân các ngôn ngữ này mục đích làm ra chỉ để làm web thông thường, không phải để xử lý các thứ cực kỳ rối rắm nằm trên server (như nén, giải mã, render, các truy vấn kết nối xuyên qua cả data center,…). Đa phần các trang web thường thấy ở Việt Nam không cần đến mức đó.

Lúc này, đội ngũ phát triển thấy cần phải có hạ tầng hỗ trợ, lúc này người ta phải dùng đến các ngôn ngữ C/C++, Java này nọ vì những ngôn ngữ đó lâu đời, có đông đảo lập trình viên cộm cán và nó làm việc ở cấp hệ điều hành tốt hơn.

Còn đối với người học lập trình web bình thường, chỉ cần làm chủ một ngôn ngữ lập trình cho back-end (như PHP, Python, Ruby, ASP .NET hoặc C#) là đủ để kiếm cơm, nhớ là làm back-end thì phải có đụng đến cơ sở dữ liệu, đừng nói là không thèm học SQL , còn nếu vọc đến front-end HTML + CSS nữa thì không thể tránh khỏi JavaScript.

Minh Hiếu viết 13:57 ngày 01/10/2018

Tks vì lời khuyên của bác. Tạm thời mình chỉ nghĩ đến tạo 1 trang web bình thường thôi.

SuperHackerProNo1ty viết 13:51 ngày 01/10/2018

Tại sao c với c++ luôn đi kèm nhỉ, k thể c++ only hả

Minh Hiếu viết 13:49 ngày 01/10/2018

Gộp c/c++ vì cơ bản 2 th này khá giống nhau. Chỉ khác nhau một số cú pháp và c++ thì mở rộng hơn c. Ý kiến cá nhân

Bài liên quan
0