- Em không ngại học kiến thức mới, tuy nhiên điều khó khăn nhất với em là ghi nhớ kiến thức cũ. Sau khoảng vài tuần - vài tháng là em quên khá nhiều những thứ đã học, mặc dù em có thực hành, có làm việc về những kiến thức đó. Khi sau vài tháng, khi công việc lặp lại thì em phải học lại từ đầu. Em không biết bây giờ anh có thể viết Linux device driver không (Em đoán rằng nó đã rất lâu với anh)? Anh có cảm thấy bản thân có trí nhớ tốt hơn người khác không?
- Công cụ nào để ghi Note hiệu quả?
- Anh có định hướng làm manager không?
Topic AMA (Ask me anything) Dat - DayNhauHoc Founder / Ex-Meta / Ex-Sea (Garena/Shopee) / Ex - tùm lum
Lập trình viên là “knowledge workers” em phải có kiến thức và phải có khả năng tự học. Đồng thời em phải liên tục học để phát triển bản thân.
Theo mỗi level lên cao hơn thì mình cần phải có thêm nhiều loại kỹ năng khác nhau. Với level fresher thì chỉ cần đơn giản là hiểu được nhiệm vụ được giao và làm được việc đơn giản là được. Ví dụ, thêm một cái button vào một giao diện nào đó. Click một phát gọi một cái API. Ở level này em chỉ cần code giỏi là được.
Khi level cao hơn dần thì em sẽ bắt đầu tới mức hiểu được nhiệm vụ phức tạp và giải quyết được vấn đề phức tạp. Ví dụ như build một cái API để cho client gọi, API này phải làm một vài việc khác nhau và có thể sẽ bị chậm nếu xử lý không khéo. Ở level này em cần phải code giỏi hơn level trước và biết cách giải thích với mọi người là em đang làm gì, tại sao phải làm thế.
Tiếp theo là tự nghĩ ra được vấn đề để giải quyết và phân việc ra cho team cùng làm. Ví dụ như cũng là cái API ở trên nhưng mà em nghĩ ra được là giờ API chạy khá chậm và để giải quyết được vấn đề này thì em cần phải build lại database, thêm cache, hoặc cần phải làm việc với team infra để tối ưu hoá queries của bên team em. Tới level này thì em cần phải nhìn ra vấn đề mà manager của em hoặc người khác không nhìn ra (vì họ bận việc khác). Đồng thời em phải lên được kế hoặc để giải quyết vấn đề này vì một mình em không code hết được. Đôi khi em cần phải nói chuyện với team khác để tìm cách giải quyết.
Ở level tiếp theo nữa là em cần phải nhìn thấy được vấn đề mà team em không thể giải quyết một mình được mà phải làm việc với nhiều team khác để cùng đưa giải pháp chung. Ví dụ cũng là cái button đó, button đó để book xe giống như book grab chẳng hạn. Lúc trước thì cứ bấm vào thì mình tính giá tiền bằng một mớ services ở backend. Nhưng mà bây giờ em phát hiện ra là tỷ lệ người ta bấm vào xong thấy giá tiền cao họ lại huỷ hoặc là vì lý do gì đó mà người ta huỷ. Em muốn tăng tỷ lệ book thì cần phải thêm hệ thống monitoring, kết hợp thêm AI/ML gì gì đó. Hệ thống hiện nay không hỗ trợ được mấy cái này, thì em cần phải thuyết phục manager em, manager team khác, manager của manager em và bên bộ phận business để cho em và các team khác bắt đầu xây dựng hệ thống mới này. Có thể sẽ mất 1-3 năm mới làm xong, nhưng nếu làm xong thì sẽ được XYZ gì đó, nếu không làm xong thì mất bao nhiều tiền $$$.
Còn nhiều level phía trên nữa nhưng anh nghĩ tới đây cũng là tạm ổn rồi ha
Và vấn đề học tiếng Anh như thế nào để hiệu quả nữa ạ.
Học tiếng anh thế nào cho hiệu quả thì anh nghĩ cứ học như con nít học nói ấy, con nít nghe trước, xong nói sau, rồi mới học đọc rồi cuối cùng mới học viết.
Em muốn học tiếng anh tốt thì phải có môi trường nghe/nói/đọc/viết. Anh nghĩ ở Vn mình hay chú trọng vào học đọc/viết mà không có cơ hội nghe/nói.
Em cứ cố gắng sáng tạo làm sao có thể có cơ hội nghe nói nhiều vào là được.
Ghi nhớ kiến thức cũ thì cứ Anki mà thẳng tiến
Em không biết bây giờ anh có thể viết Linux device driver không
Được, không có vấn đề gì. Anh quên hết sạch trơn nhưng mà nhớ vài cái mấu chốt. Nhưng cái đấy không quan trọng, cái quan trọng là anh biết cách đọc tài liệu và có nhiều kinh nghiệm code. Đầu tiên anh sẽ tìm hiểu thử problem anh cần phải giải quyết là gì, ví dụ driver gì, nhiêm vụ cần làm là gì. Sau đó anh sẽ tìm tài liệu nói về loại driver đó, xem thử có ví dụ nào về cái anh cần làm không. Sau đó bắt đầu build dần dần lên, tạo từng task nhỏ rồi làm dần dần thôi ví dụ thế này
- [ ] đọc hiểu API
- [ ] viết design doc / proposal cách giải quyết vấn đề
- [ ] thảo luận với đồng nghiệp / người biết về mảng này để xem thử idea mình có đúng hướng không
- [ ] quay lại update design doc / proposal
- [ ] lên kế hoặch những việc cần làm
- [ ] Build X, Build Y, Test Z,
- …
Anh có cảm thấy bản thân có trí nhớ tốt hơn người khác không?
Anh thấy trí nhớ anh bình thường, có thể tốt hơn average 1 chút nhưng về bản chất là không tạo ra sự khác biệt gì lớn. Cái quan trọng là phương pháp học.
Công cụ nào để ghi Note hiệu quả?
Anh đang dùng obsidian nhưng mà em có thể dùng bất cứ loại note như evernote, notion, google docs, google notes, etc… nào, cái quan trọng là làm sao để viết note hiệu quả. Anh có cách của riêng anh nhưng mà nếu viết ra ở đây thì hơi dài, anh có đọc quyển này How to take smart notes và thấy khá hay.
Anh có định hướng làm manager không?
Anh đã từng làm manager nhưng anh không cảm thấy thích làm manager lắm. Có thể sau này sẽ làm manager lại xem sao.
Note: Mọi người hỏi rất hay, hỏi thêm đi nhé. Hi vọng Đạt có thể giúp được gì đó.
Cảm ơn anh Đạt về AMA session ạ
Em có một vài câu hỏi muốn nghe thêm từ anh. Nếu có câu hỏi nào riêng tư quá, anh cứ ignore nhé anh!
- Em thấy anh có giới thiệu anh là Ex-meta. Sao anh lại rời Meta vậy ạ?
- Một ngày thông thường của anh ở Facebook/Meta như thế nào ạ anh?
- Anh đã từng làm việc với micro manager chưa ạ? Anh thường handle họ thế nào ạ?
- Nếu như có 1 lời khuyên mà anh nghĩ các bạn SV ngành IT ở VN mới ra trường nên cải thiện để có một sự nghiệp bền vững trên thế giới, anh sẽ khuyên các bạn ấy điều gì ạ?
Rất mong nhận được câu trả lời từ anh ạ.
Chào anh Đạt, em có vài câu muốn hỏi ạ. Hiện giờ thì em vẫn đang là sinh viên, và sẽ ra trường trong 1-2 năm tới. Hiện tại thì em có đi xin việc thì gặp vấn đề là hầu hết các job tuyển mà em có đủ điều kiện đều không đúng chuyên môn của em lắm (ví dụ như em học .Net nhưng job tuyển Java, PHP chẳng hạn). Em có nghĩ đến việc học thêm những ngôn ngữ khác, thậm chí là lĩnh vực khác (như AI, mobile,…), tuy nhiên em thấy có một số quan điểm cho rằng trước khi có một cái cần kiếm cơm vững chắc thì chỉ nên focus vào một thứ. Anh nghĩ sao về vấn đề này ạ?
Toàn mấy câu hỏi hay, mấy hôm nay anh đi chơi nên không có thời gian vào check và trả lời. Cảm ơn em đã hỏi mấy câu này nhé, hay và khó.
Re: Tại sao rời Meta?
Câu này có lý do riêng, Meta/Facebook là công ty tốt nhất mà anh từng làm. Nhưng anh nghỉ vì lý do chính gì thì không tiện nói, nhưng mà một trong những lý do phụ là I want to minimize the number of regrets that I have in my life
Re: Một ngày thông thường của anh ở Facebook/Meta như thế nào?
Tuỳ thuộc vào ngày nào Nếu là tầm tháng 1, tháng 2 hoặc tháng 7 tháng 8 tức là bắt đầu quý 1 và quý 3 thì thường hầu hết thời gian của anh rơi vào việc planning cho anh và cho team. Code lúc này cực ít, chủ yếu là fix issue nếu có, còn lại là lên plan để mình và team code cho mấy tháng tiếp theo.
Nếu vào tháng 3,4,5 và 9,10,11 thì thường là code sml, họp với team và với các team khác để align direction, họp với PM/TPM để make sure là mình không trễ deliverables.
Tháng 6 và tháng 12 thì hơi đặc biệt tí, đó là thời gian look back, tổng kết lại những gì mình và team làm được trong mấy tháng trước. Có khi sớm hơn tí là tầm tháng 5 và tháng 11 là phải bắt đầu xem xét lại là mấy tháng trước mình làm được gì, nhìn vào dữ liệu hiện có để biết mình cần phải làm thêm cái gì để đạt được mục tiêu của năm/nửa năm.
Nói chung là công việc của anh lúc đó thì họp hành nhiều lắm, nếu tổng thời gian ngồi code được tầm 40% thì đã là thành công lớn.
Re: Anh đã từng làm việc với micro manager chưa ạ? Anh thường handle họ thế nào ạ?
Có chứ. Anh chỉ có một micro manager thôi. Lúc đấy anh còn kém thì cách xử lý kém. Anh sẽ nói cả hai cách xử lý kém và không kém. Nhưng trước hết mình phải hiểu tại sao lại có micromanagement? Về bản chất là manager không tin mình, hoặc là manager đó có vấn đề về việc tin tưởng người khác.
Khi hiểu bản chất thì mình biết phải làm gì ngay ấy mà, đấy là phải build trust và open communication. Anh sẽ nói cụ thể cách làm dở và cách làm hay.
Ngày xưa, lúc còn ít năm kinh nghiệm thì anh chỉ biết cách là cố cày làm sao cho manager vui/tin tưởng. Nhưng mà càng làm càng mệt, càng khổ mà manager lại càng micromanaging mình. Cuối cùng anh quit, khi nghỉ rồi thì công ty cứ lâu lâu lại liên hệ rủ về làm lại Nhưng rõ ràng là anh đã sai.
Sau này thì anh không gặp micro manager nhưng cũng gặp manager hoặc người làm cùng có về để về tin tưởng mình. Thì cái quan trọng là mình phải nhìn ra được vấn đề và nói chuyện trực tiếp với người ta để chia sẻ là mình không thích thế. Đồng thời phải nói rõ/đồng ý với manager là mình sẽ làm gì, làm được gì trong thời gian thế nào, tại sao. Sau đó làm đúng như vậy, tức là nói được làm được, có lý do cụ thể. Thì như vậy sẽ build được trust. Manager đã tin rồi thì không micro managing mình nữa. Cái quan trọng trong việc này là mình phải communicate với manager rõ ràng, không im im rồi tự làm khổ mình
Nếu như có 1 lời khuyên mà anh nghĩ các bạn SV ngành IT ở VN mới ra trường nên cải thiện để có một sự nghiệp bền vững trên thế giới, anh sẽ khuyên các bạn ấy điều gì ạ?
Một chữ Adaptation, nhưng trước hết anh muốn nói mấy cái sau để dẫn đến tại sao như vậy.
Học tiếng anh thật nhiều vào, đặc biệt là khả năng đọc.
Đọc thật nhiều, đọc nhiều chủ đề khác nhau. Nếu thời gian hạn chế thì tập trung vào đọc sách báo công nghệ, sau đó đọc thêm về kỹ năng mềm và các loại kiến thức khác.
Tại sao lại thế?
Vì tiếng Anh có nhiều tài liệu tốt để đọc.
Tại sao cần phải đọc nhiều và đọc nhiều chủ đề khác nhau?
Thế tại sao chatGPT và các generative AI khác lại giỏi vậy? Tại vì bọn nó đọc nhiều, cái gì cũng đọc.
Con người còn có critical thinking, nếu cộng thêm đọc nhiều nữa thì mình sẽ có khả năng adapt với sự thay đổi, adapt với những cái bây giờ chưa có.
Vậy tại sao lại cần adapt?
Bởi vì theo anh thấy thông qua lịch sử loài người và kinh nghiệm bản thân, anh thấy chỉ có adapt mới có thể tồn tại và phát triển thôi. Không nói về lịch sử loại người adapt thế nào, cái đấy chắc ai cũng rõ.
Nhưng về riêng anh, anh thấy anh đi làm được vì người nước nào anh cũng làm việc chung được, nước nào hoặc thành phố nào cũng sống được, ngôn ngữ lập trình nào cũng làm được, tech nào cũng làm được, team nào cũng làm được.
Thế giới này chỉ có một thứ certain là cái gì cũng uncertain thế nên mình cần phải adapt.
Em đọc mấy câu trả lời khác của anh em sẽ thấy anh thuộc type người sẽ học rất nhiều thứ để adapt, đặc biệt là em đọc câu trả lời anh anh trả lời ngay trước em.
Nếu là anh thì anh không ngại học cái gì cả, anh không có khái niệm “đúng chuyên môn”. Cái “đúng chuyên môn” này nó cản trở sự phát triển bản thân mình, nó limit tầm nhìn của mình lại. Đối với anh thì học cái gì hay làm cái gì cũng được, miễn là tạo ra giá trị cho xã hội để mình được reward bằng $$ là được.
tuy nhiên em thấy có một số quan điểm cho rằng trước khi có một cái cần kiếm cơm vững chắc thì chỉ nên focus vào một thứ
Bây giờ tới phần tiếp theo là học cái gì và học thế nào. Thì quan điểm này của em không sai. Mình phải biết tự lượng sức mình để học cái gì cho chắc cái đó nhưng không có nghĩa là chỉ học một thứ. Em chỉ học một thứ là em tự giới hạn bản thân mình.
Anh khuyên là em nên có growth mindset là cứ phải sắp xếp thời gian học cái mới. Em xem mấy trả lời đầu của anh khi anh nói về time-boxing và anki. Anh nghĩ 2 cái đấy có thể giúp em.
Ví dụ như anh bây giờ vừa đi làm, vừa dạy con học (chủ yếu là đọc sách với con), chơi game với con, làm việc lặt vặt giúp vợ nhưng vẫn phải học thêm nhiều thứ. Gần đây có học / đọc thêm về AI. Mình phải luôn luôn update bản thân, không thể giới hạn bản thân là làm theo chuyên môn được.
Mấy người bạn của anh bây giờ dù đi làm nhưng vẫn dành thời gian học thêm cái mới đấy Đi làm còn bận hơn đi học.
Em cảm ơn những chia sẻ cởi mở của anh ạ! Đó là những chia sẻ vô cùng đáng giá ạ!
Chia sẻ của anh về Jeff rất thú vị, và em cũng đồng tình với việc nếu như ở mãi một chỗ, cuối cùng mình cũng có thể hối tiếc vì không thử đi những con đường khác.
Về chia sẻ của anh liên quan tới cách handle micro manager, em hoàn toàn đồng ý với anh. Một khi đã gain trust thông qua open communication, manager không có lý do để micromanage nữa.
Một lần nữa, cảm ơn anh về những chia sẻ ạ!
Giờ em có 1 câu hỏi lớn là người vợ tương lai vừa đẹp, vừa yêu mình, vừa giàu đang ở nơi nào thôi
Anh Đạt có chia sẻ ở đây. Bác tham khảo thử
Hi a Đạt,
1 ngày của a Đạt dành bao nhiêu thời gian cho công việc, tự học, nghỉ ngơi
Hiện tại em đang làm ~12h / ngày. Cảm giác overload quá, a Đạt có gặp tình trạng ntn bao giờ không?
Một ngày làm 8h thôi em ơi.
Cảm giác overload quá, a Đạt có gặp tình trạng ntn bao giờ không?
Bị hoài, trước làm nhiều như em. Càng làm nhiều càng bị nhiều. Em chỉ nên làm 8h thôi, làm nhiều cũng không hiệu quả bằng làm ít mà có thời gian nghỉ ngơi và tập trung cao độ.
1 ngày của a Đạt dành bao nhiêu thời gian cho công việc, tự học, nghỉ ngơi
Anh học tầm trung bình 1h mỗi ngày. Thường anh học buổi sáng hoặc nếu sáng học không kịp thì trước khi đi ngủ anh học thêm.
Hi Anh, em mới bước chân vào lĩnh vực làm auto trên ldplayer , Anh có thể cho em các keywork hoặc tài liệu liên quan đến việc làm tool không Anh, em có tìm hiểu nhưng hầu hết đều hướng dẫn làm tool theo dạng hình ảnh.
Anh Đạt cho em hỏi là em chưa biết gì về IT cả, bắt đầu từ số 0 ấy, nhưng em muốn học về lập trình, em có tìm hiểu trên Google thì thấy là học các ngôn ngữ lập trình, rồi thì full stack Dev, và Analysis hay công nghệ AI, quản trị mạng…, em muốn đăng ký khóa học online nhưng khi search trên Google thì sẽ ra các trung tâm như iron hack, mindx, funix và vài trung tâm nữa, đa số họ đều có các khóa học như trên, em không biết phải chọn trung tâm nào để học vì không biết chất lượng sẽ như thế nào, có ổn không. Anh có thể cho em lời khuyên được không ạ?
Anh cảm thấy cái này hơi căng: VnExpress gọi tên "cốt đơ" học nghề kiểu "mì ăn liền"
Muốn học được tốt thì phải có bản lĩnh, phải có sự chuẩn bị và quyết tâm. Học được hay không là do em thôi.
Em cũng biết là 1 ngừoi học IT ở trường cũng phải mất 4 năm nhưng sẽ được học theo thứ tự lộ trình hợp lý, mà em vừa làm vừa muốn học thêm ngành này và cũng không ở hcm nên cũng không thể học trực tiếp ở trung tâm được mà phải chọn cách học online. Như em hiểu thì đáng lý ra phải học hiểu biết kiến thức căn bản về máy tính trứoc như thông số hay cách vận hành và cài Windows này nọ rồi mới học các ngôn ngữ lập trình mà phải học ngôn ngữ nào trứoc để làm tiền đề hoặc sẽ có chút ít liên quan đến ngôn ngữ lập trình thứ 2 thì lúc đó mới dễ hiểu. Nhưng em không biết bắt đầu từ đâu, nếu như mua những khóa học rời rạc của từng món như vậy thì học cũng không áp dụng được vừa tốn nhiều chi phí, nên em muốn học một khóa nào đó để theo 1 lộ trình đó thì học xong cũng áp dụng được chút ít. Em quan tâm đến khóa học fullstack Dev, Data Analysis, và an ninh mạng. Em muốn học cả 3 nhưng lần lượt từng cái. Anh có biết khóa học nào uy tín thì giới thiệu em với ạ, và em cũng muốn tìm mua sách tiếng anh để đọc như ngôn ngữ python, JavaScript…anh có thể nêu vài tựa sách phù hợp cho ngừoi mới bắt đầu không ạ. Cảm ơn anh đã phản hồi tin nhắn của em
Nếu tiếng Anh bạn yếu thì học tiếng Anh đi đã nhé, ít nhất mức độ đọc hiểu cũng phải tương đương Reading IELTS band 6, còn không thì không thể tự học được đâu, phải tới trường.
Và nên nhớ cho kỹ cái gọi là khoá học 6 tháng, 9 tháng gì đó thì quên đi, ở Việt Nam thì nếu không học đại học, chỉ có NIIT và Aptech là đáng tin để học về lập trình, phần mềm. Còn học về mạng máy tính, cơ sở dữ liệu thì SaigonCTT.
Còn lại thì các trung tâm thường quảng cáo trên Facebook, marketiing rùm beng đào tạo không đạt mức thợ code bởi thầy dạy ở đó toàn là cử nhân không thể đi làm nghề, hiếm có thầy đủ chuẩn sư phạm hoặc lớp/ khóa nâng cao dành cho dân trong nghề có kinh nghiệm vài năm muốn tập trung cao vào mảng gì đó.
Trên thế giới thì có Peason VUE là nơi đào tạo đáng tn cậy.
Gần đây có FPT thử nghiệm CoderSchool cũng thú vị nhưng hồi giờ phải quen làm việc với mentor thì mới thể học được, còn không thì vỡ trận.
Nếu tiếng Anh đã từ IELTS 6.5 trở lên thì tìm CS50 và CS51 của Viện Công nghệ Massachusetts (học free, chương trình học như SV chính quy), học theo đó là tương đương cử nhân học ở đại học ra.
A bác đây rồi. E nhớ đã từng đọc comment của bác trong 1 bài nào đó là bác cũng có dạy kèm về IT viết code nữa mà E nhìn lại comment đó thời gian 2016 hay 2017 gì đó, E không nhớ tên chỉ nhớ ảnh avatar của bác thôi. Em thống nhất với ý kiến của bác là không thể tự học được vì đâu có biết bắt đầu từ đâu và học mà không có thầy thì làm sai cũng không biết hỏi ai. Nên e mới muốn chọn 1 khóa học để theo ấy. Thế bác có còn nhận đệ tử không ạ, bác cho em xin 1 chân nhé. Rất mong sự phản hồi của bác
Quan điểm của mình là nếu bạn đã không biết bắt đầu từ đâu thì cứ kiếm đại 1 khóa học ngắn hạn khoảng 2-3 tháng có người hỏi đáp trực tiếp. Mặc dù có thể là khóa học dỏm, nhưng ít nhất sẽ cung cấp được cho bạn một phần về ngành. Từ đó bạn có thể tự học hoặc kiếm khóa học tốt hơn dựa vào kinh nghiệm và kiến thức đã tiếp thu từ khóa dỏm đó.
Kể cả có khóa học tốt cũng chưa chắc đã phù hợp với bạn bằng khóa học dỏm đâu.
Learn from bad things, learn from mistakes, learn from failures.
Cảm ơn ý kiến của bác, chắc cũng đành phải thế thôi ạ