Học code được 1 năm mà thấy mất phương hướng, nản quá

Mình bắt đầu học lập trình từ năm ngoái, mới đầu theo học C. Rồi tự phát triển thêm 1 chút C++ vì thích làm game.

Mình là người rất thích chú trọng vào chức năng và hiệu suất (cũng do máy tính mình yếu, mở VS còn lag). Mình thậm chí còn bỏ thời gian học viết makefile để compile thay vì dùng ide, và từng nghĩ rằng cả đời mình chắc chỉ học 1 ngôn ngữ C++ thôi là đủ.

Nhưng mọi chuyện ko dễ, bản thân mình tư duy không thuộc dạng tốt, học C++ để viết game bỗng trở nên rất gian nan. Thêm áp lực về vấn đề tiền bạc, mình đã quyết định học thêm ngôn ngữ khác với hy vọng kiếm chút công việc để làm trong khi học C++.

Mình đã chọn một ngôn ngữ được nhiều người khuyên dùng: javascript. Mình rất ấn tượng với stack MEAN của javascript, khi một 1 ngôn ngữ có thể làm tất cả mọi việc từ front-end đến back-end (đánh đúng vào tâm lí chỉ thích học 1 ngôn ngữ của mình). Nhưng không hiểu vì sao mình ko thể vào đầu được bất kỳ thứ gì trong cái ngôn ngữ này.

Với 1 người đang dùng quen C, mình thấy javascript cái gì cũng dài, dài từ cái tên của ngôn ngữ tới tên của function. OOP của JS thì hơi nửa vời. Hơn cả, JS quá dễ dãi với coder, nó bỏ qua cho coder khá nhiều lỗi vặt - những thứ mà khi dùng C mình sẽ bị nó hành cả ngày.

Bỏ nó đi, mình qua học Go (bởi vì nó được mọi người tung hô là có hiệu năng ngang C). Mình tự nhận mình là một người không kiên trì, mình đã bỏ ngang từ khá sớm, lần này là do mình thấy cơ hội việc làm của Go thấp hơn mức mình có thể chấp nhận. Đồng thời, mình thấy Go và PHP7 có rất vài điểm chung, đều là ngôn ngữ chỉ dành cho back-end server, PHP7 cũng được người ta chú ý đến nhất bởi tốc độ của nó so với PHP5. Và mình học PHP đến tận bây giờ, bập bẹ được 1 vài website vô hại.

Trước giờ mình vẫn luôn có chút thành kiến với Python, tại xem các bài test performance của nó thật sự rất tệ. Nhưng vừa hôm qua, mình đã biết thế nào là yêu từ cái nhìn đầu tiên, và cũng biết tại sao nó được nhiều người chọn là “ngôn ngữ thích hợp nhất để học đầu tiên” khi nhìn thấy một đoạn code Python. Quá trời gọn, quá trời đẹp, mấy cái dấu câu mất đi đâu hết vậy :blush:

Mình đã thử tìm hiểu một chút về Python. Thì cùng với sự đa năng và chậm chạp, nó có vẻ thường xuyên và được dùng để kết hợp với C++ để làm ra các chương trình hoàn thiện (vừa tiện cho việc dev, cũng ko làm mất đi hiệu suất của C++ :heart:). Mình thật sự thích Python. Tuy nhiên, như đã kể ở trên, mình đã học rồi bỏ rất nhiều ngôn ngữ, mà chưa ngôn ngữ nào đến nơi cả, mình không muốn lãng phí nữa.

Mình hy vọng mọi người có thể giải đáp cho mình vài thắc mắc về Python.

Python mạnh, yếu ở điểm nào khi đem so sánh với C, C++, JS và PHP.

  • C mạnh ở hiệu suất, yếu ở việc phải code nhiều, cách thao tác với các biến phức tạp hơn.
  • JS thì là sự đa năng do được cung cấp một loạt các function liên quan đến DOM BOM gì đấy, có rất rất rất nhiều thư viện cũng như sự hỗ trợ từ cộng đồng nhưng câu cú khá dài dòng và OOP ko rõ ràng.
  • PHP thì khá dễ dùng, OOP rõ ràng nhưng syntax hơi xấu (cảm quan cá nhân), cũng được cung cấp một số lượng kha khá các hàm để dùng, cài đặt PHP và các framework thì hơi phức tạp.
  • C++ đối với mình mà nói thì khá tốt, hiệu suất, syntax rõ ràng, cài đặt dễ, tuy nhiên khá khó để đạt được 1 sản phẩm hoàn thiện ở mức dùng được (do được cung cấp khá ít hàm và không nhiều thư viện).
  • Còn Python thì sao các bạn, cài đặt dễ không, số lượng các hàm được cung cấp có nhiều không khi so sánh với PHP, số lượng thư viện thế nào khi so với JS, và để ra được sản phẩm thì có lâu không khi so với C++.

Ngoài ra là vấn đề về việc chọn Python 2 và Python 3. Mình tìm hiểu thì 2 cái này không khác nhau nhiều lắm nhưng sao nó gây ra nhiều tranh cãi trên mạng như vậy. Và mình nên chọn cái nào, khi mình muốn dùng Python để viết ra vài tool nhỏ nhỏ kiểu auto game trước, sau đó là kiếm việc làm, sau đó nữa là dùng để hỗ trợ cho C++ trong dự án siêu cấp trò chơi mình vẫn đang ấp ủ.
Cảm ơn những người đã click vào đây, những người đã đọc bài viết này, cảm ơn.

12 Likes
  • C là ngông ngữ bật thấp nên nếu em không quen thì chuyển qua học C++.
  • Javascript không phải là 1 một ngôn ngữ lập trình nên nó không hỗ trợ về OOP, javasciprt chỉ dùng cho làm web thôi
  • PHP cú phát thì đơn giản, điều quan trọng là nguồn mở, được cồng động hỗ trợ. Framework thì cái nào chả phức tạp, điều quan trọng là em biết cách tìm hiểu chúng và thực hành nhiều hay không. Nếu không biết gì về framework đó thì có thể lên cộng đồng của framework để hỏi.
  • C++ cái này anh chỉ học nên không biết gì hết.
  • Python thì mới nổi lên gần đây nếu so với C++ thì chả bằng được với C++. Python anh không làm nên không biết như thế nào.
5 Likes

Bác cứ học thử đi, thích hay k là chuyện tâm lý cá nhân chứ khuyên làm sao được :sweat_smile: có người thì thích kiểu indent = space của python, có người thì không có dấu chấm phẩy thì ngứa ngáy k chịu được :sweat_smile:

Nhưng quan trọng nhất là vụ này:

Không kiên trì thì học cái nào cũng khó hết á :joy:

3 Likes

mình nhìn qua code python thì cũng thấy thích nhưng mà do lãng phí nhiều thời gian để học rồi mà ko cố gắng cái nào tới nơi nên mới phải lên tham khảo ý kiến của người đi trước.

Nhìn mãi vào cái gọi là “hiệu năng” và đưa nó lên số 1 thì chết là phải rồi. Nó “cũng” quan trọng nhưng không phải là tất cả và không phải cái để quan tâm số 1.

Lại thêm một anh bạn thích “đẽo cày giữa đường”. Thôi thì mua ít gỗ về ngồi đẽo cày đi, có khi bán được tiền nhiều hơn là viết code.

Hỏi chủ topic một câu: bạn học nhiều ngôn ngữ như bạn nói, xin hỏi là bạn có tấm bảng nào trong nhà không? Nếu CÓ, bạn sử dụng tấm bảng đó bao nhiêu lần trong một tuần?

2 Likes

đây là vấn đề sở thích của mình, chứ mình đâu có bảo C++ là nhất, là tốt hơn các ngôn ngữ khác đâu. Mình thích việc nó cài đặt dễ, đa nền tảng, cú pháp ngắn gọn, chứ đâu chỉ bởi vì tốc độ mà mình thích 1 ngôn ngữ đâu.

Bài viết này của mình là bài viết chia sẻ, không phải để hỏi xem nên chọn ngôn ngữ nào. Ở cuối bài mình có hỏi về điểm mạnh yếu của Python, tại sao vấn đề chọn Python2 với Python3 tưởng chừng như rất đơn giản mà lại có nhiều tranh luận trên mạng như vậy?
Còn nếu bạn nói việc mình học nhiều ngôn ngữ rồi bỏ ngang là đẽo cày giữa đường. Thì rõ ràng bạn sai. Giữa một rừng các ngôn ngữ, mình bước vào và lựa ra được rất nhiều ngôn ngữ mình ưng, nhưng việc học nhiều ngôn ngữ lập trình là ko nên, mình đơn giản chỉ là thử từng ngôn ngữ để xem cái nào hợp với mình nhất. Và mình thấy khi còn đang học thì việc trải nghiệm nhiều ngôn ngữ cũng không phải là sai. Đúng ra mình cũng sẽ tự trải nghiệm ngôn ngữ Python và tìm ra câu trả lời cho riêng mình, nhưng mình tốn nhiều thời gian cho các ngôn ngữ khác rồi nên muốn rút ngắn thời gian.
Mình hiểu bạn rất bức xúc về việc mỗi ngày có quá nhiều topic được tạo ra chỉ để hỏi 1 câu là “em nên học ngôn ngữ nào” “em nên chọn ngành nào” “em nên mua laptop nào”, nhưng đừng đem cái sự bức xúc của bạn vào topic của người khác, bình tĩnh và đọc cho kỹ bài viết của mình đi.
Còn việc cái bảng của bạn thì mình xin cảm ơn vì đấy là một thông tin bổ ích nếu mai sau mình làm lập trình viên. Cảm ơn bạn.
Thú thật thì mình vốn không phải dân lập trình, hay kĩ thuật gì đó. Trước khi học lập trình thì mình là một phụ bếp kiêm họa sĩ nghiệp dư (chủ yếu vẽ tranh linh tinh tặng bạn bè), và thi thoảng theo bạn bè đi du ca, kiếm ít tiền từ việc đàn hát cho quán cà phê. Họa sĩ với đàn thì vốn chỉ là thú vui, không theo lâu được. Còn khả năng nấu ăn của mình thì hơi tệ, khó phát triển tiếp nên mới thử rẽ sang học lập trình thôi. Người mới như mình khi đem một chủ đề lên đây thảo luận mà được những bình luận góp ý thật sự thì hạnh phúc lắm. Nên mình mong bạn lần sau hãy đối xử tốt với những người mới hơn nữa.
Cảm ơn bạn.

5 Likes

Bạn có bước khởi đầu tốt đấy, có sự trăn trở, có sự trải nghiệm, có chọn lựa và cảm thấy thất bại. Mình thấy rất ok.

Có vài điểm mình vẫn chưa rõ sau khi đọc câu hỏi của bạn:

  • Bạn đang học trong môi trường đại học hay trung tâm hay tự học ?
  • Bạn muốn phát triển theo hướng tự làm self project hay làm cho công ty ?
  • Bạn muốn sản phẩm của bạn đi theo hướng nào (Web, Embedded, Enterprise…) ?
1 Like

Á. Js mà k fai ngôn ngữ lập trình thì là gì anh?

Mình không so sánh ngôn ngữ nào hay là ngôn ngữ nào là nhất hay nhì. Mình chỉ nói đến việc bạn đề cao quá cái gọi là hiệu năng trong khi nó lại không phải là cái đem tới thành công cho con đường lập trình. Nhiều cái quan trọng hơn thì chưa thấy bạn chú ý tới. Đó là một định hướng chưa sát thực tế.
Một điều nữa là bạn chọn ngôn ngữ dựa vào sở thích. Sở thích thì chỉ là cái nhất thời và sẽ nhanh chóng thay đổi khi gặp khó khăn. (Bạn đã học nhiều ngôn ngữ vì thích và rồi cũng bỏ vì khó đấy thôi). Mình nghĩ nếu bạn tiếp tục chọn ngôn ngữ khác vì thích thì sẽ tiếp tục đẽo cày giữa đường thôi.

Bạn nên xác định rõ ràng là muốn làm cái gì và vì sao. Ví dụ web, app, mobile… Sau đó sẽ chọn một ngôn ngữ phục vụ tốt việc đó chứ không phải là bạn thích. Sau đó thì phải học nó mặc dù có thể rất ghét bởi vì chẳng có con đường nào khác. Nếu không làm được mấy việc đó thì bạn không có duyên với nghề lập trình và sẽ mãi đẽo cày giữa đường thôi.

3 Likes

Thú thực là khi bắt đầu học lập trình, mình chỉ định viết một game mà hồi trẻ con mình vẫn ao ước (tức là chỉ định học C++ thôi), nhưng phải học nhiều hơn mình nghĩ, mà càng học mình lại càng ham. Nên mới thử thêm cả các ngôn ngữ làm web. Cũng chỉ mới gần đây mình mới có quyết định sẽ trở thành lập trình viên nếu đủ khả năng.

  • Cho tới bây giờ mình vẫn tự học trên mạng.
  • Nếu có thể mình nghĩ làm cho công ty vẫn tốt hơn, nhưng project siêu cấp trò chơi kia thì mình sẽ ko dừng (dù có quay trở lại làm phụ bếp).
  • Để nói về sở thích thì mình thích làm game hoặc embedded, nhưng khả năng kiếm được việc không cao nên giờ đang tập trung học web nhiều hơn.

Cuối cùng thì chủ topic đã học và viết được những đoạn code nào? Tốt hơn hết là upload mớ code đã viết hồi giờ lên một thư mục chia sẻ nào đó cho mọi người ở đây vào xem thử chủ topic có “tố chất” của một lập trình viên hay không?

Có nhiều người hay nói rằng tôi học lập trình thế nọ thế kia nhưng khi hỏi là vậy những đoạn code viết được (tự tay viết) chứa trong bao nhiêu file, thì trưng ra chưa đủ 10 file, mỗi file chưa dài quá 5KB.

Do đó, không phải là học được bao nhiêu theo nghĩa là đọc rất nhiều, đọc cả ngàn cuốn sách dạy nấu ăn không thể làm được một ông đầu bếp nếu không bước vào bếp và làm cháy vài cái chảo.

3 Likes

Cảm ơn bạn, mình hiểu ý của bạn rồi. Nếu còn tiếp tục con đường lập trình thì mình sẽ nhớ lời khuyên của bạn. Đúng là lỗi của mình khi chọn ngôn ngữ theo cảm tính quá.

Vậy ý của bạn là cần phải giỏi, và tư duy tốt mới được lập trình à ? Còn những người ko học về kĩ thuật mà muốn viết lấy một chương trình cho riêng mình thì không được học lập trình à ? Phải học thật giỏi một ngôn ngữ xong rồi mới được học tiếp ngôn ngữ nữa đúng ko ?

Như bạn thấy, mình không hề muốn hỏi là mình nên học gì, nên làm gì, mình có thể làm gì, có thể học gì, mình phải như nào, mình phải cần cái gì, blah blah… Ngay từ đầu mình đã xác định được con đường mình đi rồi, mục đích chính của bài này chỉ là chia sẻ, có vẻ viết một bài chia sẻ ở diễn đàn này không được hoan nghênh lắm nhỉ. Hay tại vì mình là dân ngoại đạo, ko có học hành bằng cấp nên bị kỳ thị.

P/s: chảo không cháy, nguyên liệu trong chảo mới là thứ bị cháy.

Bạn đã có định hướng kĩ rồi thì ok. Game và Embedded giờ kiếm việc cũng ổn, không đến nỗi gọi là khó. Mình đã và đang làm cả hai mảng này. Game thì làm cho vui thôi.

Mình dùng Python và Perl giống như second language của mình, cho rất nhiều việc. Mình thấy bạn bắt đầu với Python 2 hay 3 đều ổn cả, không quá to tát đâu. Python 2 thì tương lai không hỗ trợ nữa nhưng hiện tại những mã nguồn hay của Python hầu như đều viết bằng Python 2.

1 Like

Chia sẻ với bác. Nhưng em không có lời khuyên cấp này bởi em cũng là dân ngoại đạo mới bước vào. :relaxed:

Không chọc vào thì khó chịu! Mà chọc vào thì đúng là phải đào nhiều. Đúng là ko chỉ có thích không mà được!

1 Like

Mình đã từng yêu C++, yêu rất nhiều…nhưng rồi 1 ngày mình vô tình gặp Swift và kể từ đó mình không còn nhớ gì đến C++ nữa :)))))

1 Like

Không cần phải giỏi, tư duy tốt gì ráo trọi. Chữ “tố chất” mình đặt trong ngoặc kép.

Lập trình thì giống như học một ngôn ngữ tự nhiên (tiếng Anh, Pháp, Hoa, Nhật,… gì gì đó), một số người sẽ học nhanh nhạy và thành thạo hơn người khác, nhưng hầu như ai cũng có thể học được ở mức trung bình. Nếu nhận thấy mình không nhanh nhạy thì tốt hơn hết là học theo kiểu “cần cù bù thông minh” rồi thì cũng ở mức trung bình khá, dùng được. Bạn làm bếp thì mỗi ngày dùng dao sắc thịt, rau,… thì giờ bạn cũng xem lập trình như việc làm bếp, mỗi ngày cố gắng bật trình soạn thảo text thô lên viết một đoạn code nào đó, mới đầu là học cú pháp ngôn ngữ cho vững rồi viết những đoạn code mang tính bắt chước người khác/ đoạn code khác như một con vẹt đi đã, cho đến một lúc nào đó bạn sẽ tự “ngộ” ra nhiều điều và con đường đi sẽ rộng thênh thang.

2 Likes

theo anh thì javascript không được biên dịch hoặc thông dịch, không được trực tiếp trên máy tính mà chạy trên trình duyệt web.
Nên js không được xếp vào ngôn ngữ lập trình.
Nếu em làm về web thì nên học js.

Các bạn đi trước cho mình hỏi, ngôn ngữ nào phù hợp nhất cho việc phát triển các dự án cá nhân? Mình cũng là dân ngoại đạo, mới tìm hiểu về lập trình và mong muốn của mình là tự học để tự mình viết được các dự án. Mong các bạn góp ý giúp. Xin cám ơn các bạn.

Dự án cá nhân bạn là về cái gì? Bạn định chạy trên web hay chạy trên Desktop đơn thuần hay là chạy trên thiết bị di động? Phải nêu cụ thể. Nếu dự án cá nhân là quản lý một cái lớp dạy thêm của bạn hay của vợ thì mình khuyên học VisualBasic và Access.

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