01/10/2018, 12:33

Xin tư vấn về định hướng học lập trình cho dân không chuyên

Chào mọi người, mình là MT. Mình là một thành viên mới của diễn đàn, và cũng là một newbie trong hành trình trở thành một lập trình viên tốt.

Như tiêu đề đã đề cập, mình muốn chuyên tâm và nghiêm túc trong con đường trở thành một lập trình viên nên mình rất hy vọng những bạn trong ngành có thể cho mình lời khuyên. Đặc biệt là các ACE có kinh nghiệm hoặc cùng xuất phát điểm như mình.

Sơ lược chút bản thân. Mình từng học chuyên Toán, và tư duy toán học khá ổn. Mình có thể đọc được tiếng anh (nghe nói kém), tiếng nhật (khá ổn). Chuyên ngành lúc đại học của mình là QTKD, nên mình có am hiểu chút về kiến thức kinh tế, quản lý và hoạt động doanh nghiệp nói chung. Năng lực tiếp thu ở dạng vừa phải bằng tiếng việt lẫn anh, nhật.

Hiện mình đang làm trong công ty cntt, nhưng lại làm bên mảng biên phiên dịch tiếng nhật. Nhưng thực sự mình lại thích thú với lập trình hơn. Đợt rồi mình cũng thử sức với cuộc thi IT Passport của Nhật và may mắn đậu với số điểm cũng vừa đủ 680/1000 (Thi IT Passport https://goo.gl/zTFyw9).

Và sau đó mình cũng được yêu cầu code một tool hỗ trợ quản lý ngày phép của công ty bằng VBA, mình cũng code gần như toàn bộ, nên cũng khá thích thú với code hơn.

Nói hơi nhiều, nhưng thực sự mong muốn của mình là có thể học thật nhiều về ngôn ngữ lập trình để có thể tạo ra các tools hỗ trợ công việc, tự tay thiết kế một trang web học tập cá nhân để chia sẻ, và đóng góp được chút sức mình trong việc phát triển năng lực cho các bạn trẻ sau này. Tất nhiên, mình bây giờ là một bạn trẻ đó. Về lâu dài mình muốn trở thành một freelancer, với hi vọng có thể dành nhiều thời gian hơn cho gia đình cũng như bản thân.

Định hướng hiện tại của mình là lấy VBA làm nền tảng để hiểu ngôn ngữ máy tính. Mình chọn một ngôn ngữ bậc cao (Python) để học vì nó có thể phát triển các tools, cũng dễ cho người bắt đầu. FrontEnd thì mình học về Javascript (HTML, CSS học đủ biết). Ngoài ra mình muốn thi FE trong tháng 12 năm tới nên dự định của mình là sẽ học thêm về giải thuật và ngôn ngữ C, một chút Java.

Nếu bạn nào có cùng định hướng với mình thì có thể cùng chia sẻ và học cùng cho vui. Dù biết là bản thân mình phải hiểu hơn ai hết, nhưng cũng mong nhận được lời góp ý của ACE. Chân thành!

Nguyễn Phạm Anh Quân viết 14:43 ngày 01/10/2018

Mình nghĩ bạn ko nên vì thích mà chọn học tùm lum thứ như vậy, nhất là bạn nói bạn ko chuyên lập trình, nghĩa là ko có nhiều time cho nó, thì càng phải học tập trung!
Bạn nên phát triển mảng toán - là thế mạnh của bạn - hơn là lại chọn qua làm web này nọ! Bạn có thể chọn mảng làm soft thống kê hoặc bên data science, và bắt đầu với Python! Những thứ này rất nặng về giải thuật, và nếu bạn có ý định phát triển cao hơn, bạn có thể học C/C++ sau!

Chúc bạn thành công!

vnPACE viết 14:36 ngày 01/10/2018

Cảm ơn bạn góp ý. Thông thường mình không học tràn lan mà tập trung thành một giai đoạn cụ thể để học tốt một kỹ năng. Trước mắt mình sẽ nghe theo lời khuyên của bạn bắt đầu với Python 3. Mình dự định mỗi ngày sẽ dành 3h cho việc học này. Mình thích đi theo mảng ứng dụng và tự động hóa, hi vọng lần tới mình sẽ lên hỏi một câu gì đó rõ ràng hơn ^^

Zhang Jike viết 14:45 ngày 01/10/2018

Nếu bạn giỏi về toán bạn có thể học data science với kiến thức python bạn có. Mình cũng giống bạn. Mình chuyên lý chuyên ngành kiểm toán và đang làm web fullstack. Mình cũng rất thích data science nhưng chưa tự tin với Toán của mình lắm nên đành trau dồi từ từ vậy. nếu bạn muốn làm về mảng web như mình thì mình nghĩ bạn nên tập trung phát triển 1 hướng trong vòng ít nhất 1 năm để nắm vững về mảng đó. Vd backend. Sau đó bạn học thêm frontend rồi devops. Kiến thức cần có để làm web rất rộng. Nếu cưỡi ngựa xem hoa thì sau sẽ rất hổng đó bạn

vnPACE viết 14:39 ngày 01/10/2018

Mình nghĩ data science không dễ dàng tí nào. Nhưng mình sẽ thử trong quá trình học. Hiện mình chỉ muốn học một ngôn ngữ cho chắc chắn đã, có lẽ Python không quá tệ vì mình mới tìm hiểu thêm chút về nó. Mình thì thích mảng ứng dụng và tự động hóa hơn, còn web mình chỉ mức hiểu lúc cần sử dụng là được. Dù sao cũng cảm ơn bạn đã chia sẻ

sycoi001 viết 14:42 ngày 01/10/2018

Bạn khiêm tốn thôi chứ cỡ bạn làm dc như vậy thì đại đa số sv cntt mấy ai làm được. Nói học cntt chứ giỏi được mấy người. Nhiều khi chia sẻ kinh nghiệm bậy bạ múa may nhục chết kakaka giỡn thôi!
Bạn có tiền thì mua 1 khoá học của Pluralsight.
Học C++, C# hoặc Java của nó đó.
Học xong skill của bạn hơi bị nguy hiểm đó. Nó dạy theo hướng academic, nghiên cứu chuyên sâu. Muốn làm cái gì cũng phải dựa vào nền tảng mới lên được. Sau này bạn biết được nguyên tắc cơ bản của ngôn ngữ đó bạn muốn làm cái gì cũng được.
Như tụi tây viết sách hay nói:
OK, now you know just enough to be dangerous!

vnPACE viết 14:45 ngày 01/10/2018

Thực sự mình không dám nhận lời khen của bạn nhưng mình sẽ cố gắng học hỏi. Với gợi ý khóa học của Pluralsight mình sẽ nghiên cứu. Trước mắt mình còn đang lên plan học và thu lượm một số kiến thức cần thiết đã.
Khả năng của mình là học ngôn ngữ, hệ thống hóa và tập trung cao nên trước khi bay vào C++ hay Java gì đó mình sẽ cần một thời gian chuẩn bị các bước cần thiết để có thể chuyên tâm cho học hành. Lời động viên của bạn làm mình rất vui đó
I’m not dangerous, because I don’t need play with it.

Trung Nguyen viết 14:43 ngày 01/10/2018

Chào vnPACE,

Có lẽ tôi hơn tuổi bạn, vừa chuyển sang lập trình sau 9 năm làm ngành khác (chưa kể 5 năm đại học cũng không học CNTT, tức là tôi xuất phát chậm hơn các bạn cùng lứa 14 năm), và cấp II, cấp III cũng là chuyên Toán + chuyên Lý. Vì vậy tôi nghĩ là chia sẻ của tôi dưới đây sẽ đồng cảm với bạn phần nào (hơn những bạn khách không từng có cùng trải nghiệm).

Tôi không muốn phân tích sâu xa lý do gì gì nhiều, mỗi người mỗi cảnh, nhưng khuyên bạn 1 câu là HÃY CHUYỂN SANG CNTT NGAY LẬP TỨC.

  • Ngay lập tức đây là về mặt TINH THẦN nhé, về mặt thời điểm có thể phải trì hoãn một chút tuỳ mỗi người (vì có thể ko có saving, hoặc đang phải chi trả khoản tiền nào đó, người thân bị ốm chẳng hạn).
  • Một khi đã chuyển, thì hãy xác định là mình sẽ sống bằng nghề này trong trung hạn (5 - 7 năm tới), đừng chân trong chân ngoài, đừng coi kỹ năng lập trình là skill bổ sung cho nghề phiên dịch hiện tại.
  • Nên dứt hẳn ra để đi học. Mà nên học ở các trung tâm, hoặc các trường. Đừng học online trong giai đoạn bạn mới vào ngành, bởi bạn cần người chỉ ngay cho bạn hoàn thành 1 - 2 dự án đầu đời, cần bạn bè, cần thầy cô, cũng như cần mạng lưới quan hệ của chính bạn bè thầy cô mà mình đã học cùng. Nếu muốn, hãy nhắn riêng, tôi sẽ chia sẻ thêm về nơi tôi đã học.

Quá trình chuyển nghề vô cùng mệt mỏi và tốn năng lượng (bạn càng nhiều tuổi thì sẽ càng sợ thay đổi, chưa kể còn gánh nặng gia đình). Vì vậy, nếu bạn còn trẻ, chưa hài lòng với việc hiệc tại, muốn làm cái mới, thì hãy làm NGAY và LUÔN, đừng chờ đợi. Dành 150% tâm trí và sức khoẻ cho nó. Đừng lần khần (căn bệnh của rất rất nhiều người Việt trẻ), để rồi đến lúc muốn thay đổi thì tâm trí bó buộc, sức khoẻ không còn, tiền cũng hạn chế (vì còn phải chi cho rất nhiều việc khác).

Regards,

Travis

Trung Nguyen viết 14:47 ngày 01/10/2018

Còn 1 điều nữa, đó là nếu học CNTT thì học online hay offline, và đi theo hướng nào?

  • Tôi đảm bảo 1 điều là nếu bạn tự học các online courses thì sẽ thấy khoá nào cũng hay, cũng rẻ (có 10 USD/ khoá trên Udemy, edX, Coursera còn free). Kết quả là đăng ký thì nhiều cái gì cũng học và cuối cùng ko biết gì cả. Các khoá này có thể hữu ích với các bạn đã có background về Computer Science hoặc programing, còn không với nguời mới 100%, hãy coi đó là thứ bổ trợ cho những khoá học offline ngoài đời thường.

  • Chọn bất kỳ 1 hướng nào bạn thấy có vẻ thích, lên lộ trình (road map) 4 - 6 tháng cho nó, và hoàn thành road map đấy, đừng bỏ dở. Đừng đang học Data Science lại nhảy sang Web, hoặc sang làm Mobile App. Trong mỗi con đường lại có từng nhánh con, cũng chỉ cần chọn 1 nhánh đang thông dụng mà theo. Cả về ngôn ngữ cũng vậy, có thể Java, C#, JavaScript, PHP, v.v… tuỳ. Nhưng chỉ tạm thời chọn 1 và chỉ 1, kiên trì với nó ít nhất 6 tháng, không nhìn trái nhìn phải sang các thứ khác.

vnPACE viết 14:46 ngày 01/10/2018

Chia sẻ của anh là những gì em cần. Trước khi em lên đây xin định hướng em cũng đã chia sẻ với em gái và bạn tri kỉ của em. Cả hai cũng ủng hộ em và cho em lời khuyên. Hiện tại em cũng chưa có vướng bận gì nhiều vì gia đình em vẫn đang ổn, và có một người luôn quan tâm chia sẻ cho khó khăn của em.

Vời nghề biên phiên dịch, đồng ý nó có tiếng nói và trọng lượng nhưng không thực sự là thế mạnh của em khi thế mạnh của em hoàn toàn ở tư duy và giải quyết vấn đề. Qua chia sẻ của anh em cũng hiểu rõ khó khăn thực tế mới là cái em cần hơn là học với sự chỉ dẫn online (em đã tự học tiếng nhật >> biên phiên dịch, tiếng trung, VBA và kiến thức nền IT passport)

Những chia sẻ cảu anh là rất thật. Và em cũng nghĩ xuất phát điểm của em khác với cách các khóa học online đang cung cấp.
“Quá trình chuyển nghề vô cùng mệt mỏi và tốn năng lượng (bạn càng nhiều tuổi thì sẽ càng sợ thay đổi, chưa kể còn gánh nặng gia đình).”

Có lẽ hơi khó khăn trong thời gian sắp tới. Em có một người dẫn dắt rất giỏi “Google” và một người có thể chia sẻ cùng em, nếu có thêm sự chỉ dẫn của anh, em chắc mình sẽ bước được vào con đường anh đã bước. Xin hãy chỉ bảo cho em

anon51853234 viết 14:43 ngày 01/10/2018

nếu anh nói vậy thì có vẻ anh chưa trải qua các khóa học trên edx, course cụ thể, mình dám khẳng định 100% là edx, course ,udacity đều có các khóa cho người bắt đầu , thậm chí chưa biết gì về lập trình nhé , giảng dạy rất kĩ, mình dám khẳng định luôn vì mình từng học mình biết

Hung viết 14:40 ngày 01/10/2018

Có nền toán học, làm nghề phiên dịch.
Bạn nên học luôn Cao học ngành Data Science, rồi làm về đề tài Natural Language Processing.
Bên NLP đang rất thiếu các bạn có kiến thức về linguistics.

Video giới thiệu

vnPACE viết 14:45 ngày 01/10/2018

Cảm ơn gợi ý của bạn. Mình cũng thích mảng ngôn ngữ, cũng từng mong muốn có thể tạo ra các ứng dụng hỗ trỡ ngôn ngữ và dịch.Đấy là một phần lý do mình muốn tìm hiểu về lập trình. Hiện tại mình có thể tạo được ứng dụng dịch bằng VBA nhưng nó cũng khá hạn chế. Dù mình chưa rõ Data Science bao sâu nhưng sẽ cố gắng tìm hiểu về nó trong con đường mình hướng đến.

Trung Nguyen viết 14:42 ngày 01/10/2018

Tôi đã hoàn thành vài khoá trên edX, và bản thân là big fan của edX cũng như Coursera. Tôi không nói nội dung không phù hợp với người bắt đầu, mà ý là nếu người mới bước chân vào programming (chưa nói đến software engineering), không có background về lĩnh vực này, muốn coi programming là nghề nghiệp (chứ ko chỉ 1 thú vui), thì học online trên các platform kia không phù hợp. Nên nhớ là ngoài kiến thức, việc học rất cần những thứ hỗ trợ bên ngoài (như niềm vui khi gặp bạn bè, nói chuyện, tán gẫu về những gì mình học được, sự ganh đua với bạn bè, sức ép từ giảng viên, etc…) Cái này các khoá học online không có được. Nếu bạn đang là 1 sinh viên ngành CNTT, hoặc đang đi làm, thì khoá học online phù hợp để bổ sung/ trang bị kiến thức mới. Còn không, xin hãy đi học các khoá offline, và đọc thêm khoá học online để hỗ trợ.

vnPACE viết 14:34 ngày 01/10/2018

Cảm ơn anh Trung Thực sự thì em rất quan tâm những điều anh chia sẻ. Sáng nay em đã cùng em gái và bạn đi trà sữa và trao đổi lên plan học. Thực sự, thời gian làm qua em đã cân nhắc khá nhiều về việc sẽ theo con đường lập trình hay phiên dịch. Nhưng em nhận ra dù em cố gắng làm phiên dịch cũng chưa chắc em có thể hiểu được con đường lập trình, nhưng nếu em trở thành một lập trình viên em vẫn có thể tận dụng khả năng dịch của mình. Hơn nữa, em đã từng đọc được đâu đó rằng “Học giỏi nhưng không mang lại lợi ích tăng thêm cũng chỉ phí hoài thôi”. Em không muốn những gì mình đã cố gắng và học hỏi bao lâu nay không đóng góp được gì cho xã hội, nên em sẽ cố gắng để tạo ra được những sản phẩm có ích cho nhiều người Cảm ơn anh đã động viên và chia sẻ rất tâm huyết cùng em.

Đây là PlanSheet của em. Tuy em không nói rõ kế hoạch tài chính, nhưng em sẽ cố gắng đảm bảo plan này được thực hiện theo đúng kế hoạch em mong muốn với nguyên tắc 80/20. https://goo.gl/YMwYem

Nguyễn Phạm Anh Quân viết 14:35 ngày 01/10/2018

Lời khuyên chân thành cho bạn là đừng nghĩ quá to tát, hãy cứ làm những việc nhỏ trước! Vì lập trình rất rộng, cái gì cũng phải bắt đầu từ căn bản, từ nhỏ, nếu ko sẽ bị tẩu hỏa nhập ma!
Bạn tự lo dc cho mình chính là đóng góp cho xã hội rồi, đóng góp bằng thuế đó! Còn những chuyện khác, đừng nghĩ nhiều, cứ làm thôi bạn!

vnPACE viết 14:47 ngày 01/10/2018

Cảm ơn bạn, đúng là lập trình mà không biết bắt đầu từ đâu và có thể đến đâu sẽ tẩu hỏa nhập ma thật. Mình cũng từng bị tẩu hỏa nhập ma khi học song song 2 ngôn ngữ, cảm giác đó không được thoải mái lắm. Có lẽ topic này đến đây end được rồi, vì mình đã tìm được phần nào định hướng cho mình. Còn lại phục thuộc vào bản thân và vận mệnh thôi ^^ Nếu ban quản trị đọc được comment này xin close giúp mình. Cảm ơn các bạn đã chia sẻ suy nghĩ cùng mình.

lx viết 14:40 ngày 01/10/2018

anh @travisnguyen nói rất hay và kỹ càng. Lâu rồi mới thấy mấy bài tư vấn tốt trên diễn đàn như của anh.

Mình rất đồng ý vụ nên chuyển sang CNTT càng sớm càng tốt, cá nhân mình hơn 2 năm trước cũng ngập ngừng, sau đó lên diễn đàn hỏi và chuyển hẳn sang bên CNTT đó, nên rất đồng cảm với bạn. Cá nhân mình vì đặc thù đó nên cũng quen thêm vài người chuyển ngành, và phần lớn tới giờ họ đều ngon nghẻ cả.

Về cơ bản thì anh @travisnguyen nói hết rồi, nhưng có điểm này mình nói thêm. Khi bạn chuyển ngành, thời gian đầu bạn dễ bị hoang mang, lo lắng. Đừng sợ, bởi ai cũng như vậy mà thôi.

Về cái plan của em thì anh không thích lắm (đặc biệt phần python), nhưng em cứ học đi, bởi vì kinh nghiệm học của anh cho thấy chỉ cần học là được, giáo trình tốt hay rất tốt lại không quá quan trọng.

Nếu em ở HCM và muốn theo DS thì pm mình, có thể trao đổi thêm được nhiều điều.

Bài liên quan
0