Một vài lời khuyên cho các bạn thích C/C++

Xin chào anh em, thi thoảng mình thấy có một vài topic các bạn tạo ra để xin tư vấn định hướng nên học gì và làm gì, nên hôm nay xin đóng góp một vài ý kiến , biết đâu lại phù hợp với vài bạn sinh viên nào đó, để tránh trường hợp như mình bây giờ thi thoảng nghĩ lại cái thời SV rồi lại “giá như, tiếc thật , giá mà ngày đó mình học cái nọ làm cái kia … thì tốt biết mấy”. :rofl:
Đối với sinh viên để xin được việc ngon lành khi mới ra trường thì theo mình các bạn chỉ cần chuẩn bị vài thứ bé tí sau đây:

  • Nắm chắc một ngôn ngữ lập trình ( ở đây là C/C++).
  • Tiếng anh tối thiểu là đạt đến mức đọc hiểu tài liệu, giao tiếp được thì càng tốt , thi chứng chỉthì chỉ cần TOEIC tầm 600 là đủ. Hoặc các bạn có thể học tiếng nhật, cố gắng đến lúc ra trường đạt chứng chỉ N3 là quá OK:star_struck:.
  • Kết quả học tập đừng quá bết bát ( ví dụ bị F quá nhiều, có nguy cơ không ra được trường, bị cảnh cáo học tập hay tệ hơn bị xuống cao đẳng …:tired_face:)

Làm thế nào để nắm chắc ngôn ngữ lập trình : có hai cái cơ bản là học ở trường và tự học.
Trong trường đại học: nên tập trung vào một số môn học chính , bao gồm : cấu trúc dữ liệu và giải thuật, kỹ thuật lập trình , lập trình hướng đối tượng, phân tích và thiết kế hệ thống hướng đối tượng. Bạn nào có hứng thú với lập trình embeded thì hãy học thật kỹ các môn: kiến trúc máy tính, hệ điều hành, mạng máy tính.
Tự học : cách mình hay làm khi học lập trình là ban đầu lên mạng tìm các tutorial ngắn, đơn giản và dễ( ví dụ trên tutorialpoint.com) để có khái niệm ban đầu, sau đó bắt đầu down sách về đọc. Đọc sách bằng tiếng anh có 2 lợi thế : 1 là viết rất rộng, viết rất sâu, thừa đủ cho các bạn trả lời phỏng vấn, 2 là giải quyết luôn yêu cầu “tiếng anh đọc hiểu tài liệu” mà các trang tuyển dụng hay đăng. Mình khuyên các bạn không nên đọc bằng tiếng việt , những quyển về C của các cụ Phạm Văn ất hay Quách Tuấn Ngọc đọc xong rồi cứ có cảm giác chả có tí gì còn lại trong đầu:grin:.

Tutorial bằng tiếng anh :
https://www.tutorialspoint.com/cplusplus/

Tiếng nhật :
http://wisdom.sakura.ne.jp/programming/c/

Một số book hay về C

  • the c programming language - Brian Kernighan and Dennis Ritchie
  • The Practice of programming - Brian Kernighan
  • C how to program Paul J. Deitel
    C++
  • C++ how to program Paul J. Deitel
  • professional c++ Nicholas A. Solter and Scott J. Kleper

Ngôn ngữ C hay C++ theo mình là một ngôn ngữ rối rắm , phức tạp và khó học. Vì vậy với các bạn khi bắt đầu học nó mà thấy code không chạy thì đừng nản, hãy bắt đầu từ những chương trình hello world , cái gì khó hay không hiểu cứ thoải mái mà bỏ qua. Cũng đừng vội đi sâu vào những thứ quá khó . Đọc xong lý thuyết về phần nào hãy code luôn chương trình Example minh họa của phần đó , không cần phải tự code mà đơn giản chỉ là nhìn code example rồi gõ lại cũng OK, chạy ra được kết quả thì sẽ dần hiểu được,nếu có lỗi gì sinh ra thì search lỗi đó trên google là ra hết. Bản thân mình học C/C++ cũng phải tính bằng năm thì mới có đủ tự tin để hiểu về pointer hay memory , nên khuyên các bạn nếu theo học nó thì hãy kiên trì. Nếu các bạn học liên tục trong tầm 1 năm với các tài liệu mình đưa ra bên trên thì quá thừa cho cái “ nắm chắc ngôn ngữ” rồi.:sunglasses:

Về IDE : dù là mới bắt đầu học thì vẫn nên dùng visual c++ express trên window hoặc Qt trên linux, vì đấy là những công cụ rất phổ biến, có nhiều người sử dụng và cộng đồng support rất đông đảo. Gặp lỗi gì đó trên Visual thì search cái là ra ngay. Không nên dùng Dev-c vì nó thiếu nhiều tính năng.

Hiện tại đảo qua một số trang tin tuyển dụng thì toàn là java/php/dot net/rubi on rail / html/ios/android … chứ tuyển C/C++ developer khá hiếm. Vậy nếu học C/C++ thì sẽ làm những gì, theo minh có 3 hướng :
Làm Desktop application : lập trình MFC , lập trình QT ( để làm giao diện cho các phần mềm ) , hoặc các dự án maintain , ví dụ core banking
Làm lập trình nhúng : không chỉ các anh em học điện tử hay tự động hóa, cơ điện tử thì mới làm embeded, học công nghệ thông tin ra vẫn làm embeded ngon như thường, thậm chí theo mình dân công nghệ thông tin còn có ưu thế hơn hẳn dân điện tử, vì được đào tạo bài bản về cách làm phân mềm, bao gồm phân tích và thiết kế, coding, kiểm thử, cách thức viết code tối ưu, design pattern … trong khi dân điện tử thì thường giỏi về hardware, nhưng công việc embeded chủ yếu là code phần mềm. Ví du lập trình phần mềm trên oto( automotive ), làm driver điều khiển thiết bị, làm embeded linux …
Làm bất kỳ việc gì : tức khá bi hài là học C/C++ để qua được phỏng vấn, vào được công ty , nhưng khi vào dự án thực tế lại làm cái khác : web php , web html java, android, ios … tóm lại là bất kỳ việc gì có để làm. Với nhiều nhà tuyển dụng, ngôn ngữ không quan trọng, quan trọng hơn là tư duy logic, kỹ năng phân tích giải quyết vấn đề, thái độ, trách nhiệm với công việc … Khi phỏng vấn có thể họ sẽ hỏi về ngôn ngữ mình mạnh nhất, nhưng nó chả liên quan gì đến công việc sắp tới. Nhà tuyển dụng họ có xu hướng thích những người đa năng, việc gì cũng có thể làm hơn là các thanh niên khăng khăng “em chỉ làm chuyên về cái này thôi” hơn.:japanese_ogre:

Làm C/C++ lương cao không?
Cách đây 5 năm rưỡi khi mình bắt đầu đi làm C++ desktop app , lương khởi điểm là 8mil. :stuck_out_tongue_winking_eye:
Hiện tại combo (học lập trình C embeded + tiếng nhật) đang là một hướng đi rất hứa hẹn, dễ dàng xin được vào các cty nhật hoặc sang nhật bản onsite, như hiện tại chỗ mình khốn đốn đến mức buộc phải tìm kiếm cả những người không biết tí ti gì về tiếng nhật mà chỉ cần tiếng anh là đủ.Mức lương cơ bản cho hướng đi này với người chưa có kinh nghiệm vào khoảng 50mil ( làm tại nhật )

16 Likes

Thanks bác, em cũng đang định học C/C++ :grin::grin:

Chào bạn, mình nghĩ học bất ngôn ngữ nào cũng vậy, cần tối giản số lượng sách mà mình đọc,
thay vào đó cố gắng nâng cao hiệu quả đọc của từng cuốn lên.

Các bạn mới học C, hay ngôn ngữ nào cũng vậy, chọn một cuốn thôi, rồi ngâm cứu cho thật kỹ là đủ chứ không cần đọc hết list của @MBTRevolution gợi ý đâu.

1 Like

Nếu chỉ dùng C++ để giải bài tập thì cũng không phải là vấn đề lớn lắm. Nhưng nếu đã muốn thực sự trở thành một tay chuyên C++ thì mới bắt đầu thấy vấn đề, nói chung không dành cho người yếu tim. Thói quen của người chuyên dùng C++ cũng khác hơn, hay để ý những chi tiết nhỏ nhặt.
C++ cũng là ngôn ngữ thường bắt lập trình viên phải dừng lại để suy nghĩ nhiều hơn.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?