Kĩ năng vĩ mô và vi mô cho dev
Bài đăng này đã không được cập nhật trong 2 năm
Title đúng ra nên là Macro and Micro skill for dev nhưng mà mình thích … dật tít 🙃
Từ giờ mình xin được gọi là Macro skill và Micro skill nhé 😄
Tại sao nên đọc bài này
- Trả lời cho câu hỏi: Trẻ sức khỏe hay già kinh nghiệm?
- Tự có hướng đi cho career của bản thân
Sáng nay lục lại Reading List thì đọc được một bài đỉnh quá của Addy Osamani, viết về những thứ soft skill mà ổng học được trong 10 năm làm việc ở Google. Trong đó có một chỗ nói về Transferable skill, nghĩa là những skill mà có thể áp dụng được từ project này tới project khác và chiến lược để tối ưu kĩ năng này là phân biệt giữa Macro skill và Micro skill
Macro skill
Macro hay vĩ mô tạm dịch là những thứ lớn, bao quát tổng thể.
Macro skill là gì? Là những kĩ năng thiết yếu (core) của ngành lập trình, mình lấy ví dụ như Problem solving, data structure, algorithms, architecture,… Cơ bản thì nó là nền móng của công việc lập trình, có thể bạn để ý tới nó, có thể bạn không để ý tới nó, nhưng chắc chắn công việc bạn làm nằm trong những thứ như vậy.
Chẳng qua bạn không đủ để ý thôi. Mình lấy VD nhé, nếu ông Even You không có structure tốt thằng Vuejs thì các bạn mới vào sẽ không biết code một component thì bỏ vào folder nào, rồi route thì để đâu cho hợp lý. Sau này khi bạn làm nhiều hơn, có nhiều kinh nghiệm hơn thì biết tự chia ra những folder hợp lý hơn, có thể là Utils
, Network
,… Rồi đỉnh cao hơn nữa, bạn qua một prj khác dùng Reactjs hay Svelte, nhờ học được cách structure bên Vuejs mà bạn có kĩ năng để sắp xếp code một cách rõ ràng và tường minh hơn.
Vậy là các kĩ năng này được dùng ở mọi nơi, quan trọng là bạn đang làm ở level nào thôi!
🧐 Macro skill có mức độ Transferable cao nên có thể apply ở nhiều projects, và càng nhiều projects thì kĩ năng này cũng càng phát triển hơn
Micro skill
Micro skill thì ở mức thấp hơn, nghĩa là dùng những concept từ Macro và hiện thực nó. Việc đó giống như bạn đã biết thuật toán để giải bài toán rồi, thứ còn lại là viết code trên ngôn ngữ nào để giải nó thôi. Kĩ năng Viết code trên ngôn ngữ nào
là một dạng Micro skill.
Nó sẽ kiểu là kĩ năng về ngôn ngữ (programing language), kĩ năng về framework, library, 3rd party, hay thậm chí là mức độ nhuần nhuyễn khi dùng một tool nào đó…
Thường những kĩ năng dạng này sẽ khó được transferable giữa các project hơn. Đơn giản đang code React mà bốc qua code Vuejs là phải coi lại syntax rồi cơ chế nó chạy làm sao rồi.
🧐 Micro skill có mực độ Transferable thấp, có thể áp dụng tốt ở project này nhưng qua project khác thì lại rất thấp.
Nên tập trung vào cái nào hơn
Yeah câu hỏi kinh điển của các bạn:
- Em không biết nên tập trung vào học cơ bản hay là những kĩ năng gần với công việc hơn?
- Em không biết nên học React hay Vuejs
- Em không biết nên học Nodejs hay Go, Rush
Bữa mới coi tiktok thì có ông Dan foolish gì đó nói:
Giữa bạn gái xinh và bạn gái thông minh hay tâm hồn đẹp thì em nên chọn ai?
Xong ổng nói “sao không chọn cả ba, vừa xinh vừa giỏi lại tâm hồn đẹp”
Oh sh*t! Why not? Sao không chọn hết nhỉ nếu có thời gian thì sao không học cả Macro skill và Micro skill? Sao không học cả React hay Vuejs luôn.
Còn nếu không đủ thời gian thì dùng 5p nhìn qua homepage thấy trang nào đẹp hơn thì chọn thằng đó? Vì nếu bạn đang phân vẫn giữa 2 thằng top 2 rồi thì mình thấy chọn cái nào cũng được.
Bạn không thể biết cái bạn thích, bạn chỉ có thể biết cái bạn không thích
Thằng này nói chung chung quá 🤨
Haha, oke. Đối với mình thì 2 kĩ năng Micro và Macro đều có tầm quan trọng như nhau, nhưng mình xếp Micro là mốc từ 0-5 điểm, còn Macro là từ 5-10 điểm.
Với 5 điểm đầu thì khá dễ để có được, nhưng 5 điểm còn lại mới là khó. Mà các cụ đã nói rồi, việc gì dễ thì làm trước. Cách tiếp cận của mình thường là làm đã rồi tính sau, nhiều khi mình còn down code về chạy rồi vào làm luôn, khó ở đâu mới lên doc đọc chứ không có kiểu đọc doc mới bay vô làm.
Với việc focus vào Micro skill trước mình có thể gom được những điểm giống nhau của tụi nó, khác nhau, rồi từ đó có thêm data cho não biết những thằng structure, algorithm, architecture có những kiểu như nào. Nó giống như bạn đang nhặt những miếng gạch về để sau này xây nhà vậy.
Sau khi có khá nhiều data về Micro skill rồi thì sẽ dễ dàng để bạn lấy được 5 điểm còn lại. Từ đó form được kĩ năng tốt hơn về Macro skill.
Nhiều bạn thường chê các kĩ năng Macro skill ở trường là khó quá học không được. Hồi xưa mình đi học cũng lẹt đẹt mấy môn này.
Mình đồng ý là nó khó, nhưng nó cũng không quá khó. Bạn không thể giỏi một thứ mà không thực hành ngay được nhưng thứ bạn cần biết chỉ là keyword. Chỉ cần bạn nhớ keyword của nó là gì, công dụng làm gì là đủ. Sau này nếu gặp vấn đề gì đó gần với công dụng đã học thì đem cái keyword đó ra search Google là xong.
Tôi có cần 5 điểm còn lại?
Tùy bạn? Nếu bạn thấy 5 điểm đầu là đủ rồi thì nó là đủ rồi. Với ngành công nghiệp phần mềm ở state hiện tại thì bạn có 5 điểm là đã quá đủ để sống cuộc sống vương giả rồi )
Còn nếu bạn muốn nhiều hơn tốt hơn thì nên tập trung vào lấy 5 điểm còn lại.
Trong ngành này mình luôn suy nghĩ là 10 năm sau mình còn làm được không, còn sức cạnh tranh với các bạn trẻ mới năng động hơn không
Bài gốc: https://thanhle.blog/blog/ki-nang-vi-mo-va-vi-mo-cho-dev
All rights reserved