Lời nhắn nhủ và cách học hành
Từ những lời nhắn nhủ dành cho Juniors
Ý tưởng của bài viết nhen nhúm trong mình, khi mình quan sát trên các cộng đồng trên mạng, về việc học tập bổ sung kiến thức của các bạn trẻ (cũng như là theo dõi mấy bên bán khoá học nữa). Một điểm chung mình có thể thấy là mọi người đều khao khát kiến thức, đều mong muốn học thêm nhiều điều giá trị. Ai cũng mong muốn thành công trong công việc, trong cuộc sống; bằng cách học thêm những thứ mới, đó có thể là giải pháp để mọi người có thể thoát ra sự vướng mắc hiện tại hoặc là vươn lên những nấc thang mới.
Với gần chục năm làm manager, mình cũng có kha khá nhiều kinh nghiệm hướng dẫn các bạn reports của mình. Một thứ mình rất quan tâm đến đó là people leadership: khác với project leadership, khi bạn tập trung vào sự thành công của dự án trước mắt; people leadership là khi bạn tập trung vào sự thành công của con người mà bạn đang dẫn dắt.
Mình hy vọng mỗi người đã làm việc với mình, thì có thể nhận ra thêm nhiều điều về bản thân, và có thể phát triển hơn, về cả bản thân lẫn sự nghiệp.
Ba thứ quan trọng để phát triển hơn
Mình có một thứ mình hay nhắn nhủ các juniors của mình: để phát triển tốt hơn, thì một bạn trẻ nên tập trung vào 3 thứ quan trọng.
Một, khả năng học thêm điều mới - Learning how to learn
Với việc xã hội cũng như ngành nghề phát triển thần tốc, đừng nên hy vọng có thể học trước và nắm bắt được hết mọi thứ. Điều quan trọng là mình phải có khả năng để học thêm những thứ mới, tuỳ theo nhu cầu của công việc. Bởi vì cuộc đời sẽ là quãng đường đi học thêm không ngừng nghỉ.
Hai, critical thinking - Khả năng tư duy phản biện
Trau dồi khả năng tư duy, đào sâu suy nghĩ, nắm bắt đúng sai, đánh giá sự việc - đó là mấu chốt cho hầu hết mọi thứ mình cần làm với tư cách là một knowledge worker. Khả năng suy nghĩ sâu xa, đặt ra các câu hỏi và tranh luận, đánh giá, nó sẽ đi cùng với bạn đến hết cuộc đời.
Ba, communication - Khả năng giao tiếp
Communication ở đây mang nghĩa rộng, đó là giao tiếp nhưng có thể là verbal hay là written. Bạn có xuất sắc đến đâu, mà không thể giải thích và trình bày những gì mình làm, thì bạn cũng khó có thể tiến xa được. Bạn cũng cần có khả năng lắng nghe, khả năng cảm nhận, để nắm bắt được sếp, đồng nghiệp hoặc juniors nói gì, và xây dựng mối quan hệ làm việc hiệu quả và lành mạnh.
Những thứ này mình đã đúc kết ra từ 7-8 năm về trước, thế mà đến bây giờ mình vẫn chưa thấy nó sai. Mình không nghĩ đây sẽ là những thứ sẽ lỗi thời, vì nó có thể sẽ đi theo bạn trong một quãng đường sự nghiệp rất là dài.
Về cách để học trong ngành Tech
Nếu các bạn ở trong ngành Tech, thì chắc chắn mọi người đều có thể thấy về sự phát triển của ngành, mỗi ngày lại có thêm kiến thức mới, công nghệ mới, thông tin mới cần phải học, phải đọc và nghiền ngẫm.
Nếu bạn là một người mới chập chững bước vào ngành, thì chắc điều đầu tiên bạn sẽ thấy đó là sự choáng ngợp, không biết bắt đầu từ đâu và đi đến đâu, làm thế nào cho nó đúng nó đủ.
Một hướng mà mình suy nghĩ về ngành Tech, đó là đây là một ngành có sự kết hợp khá là nhịp nhàng của kiến thức và kỹ năng. Hai phần này nó đi song song với nhau và không nên tách rời. Mà mình sẽ bổ sung thêm phần thứ 3, đó là sự kết nối (connection); Tech là một ngành mang tính ứng dụng cao, phải vận dung được những gì mình đang có để giải quyết bài toán thực tế.
Xây dựng kiến thức vững chắc
Kiến thức là việc xây cho bản thân một hệ thống kiến thức vững chãi với nhiều tầng, đi từ căn bản đến nâng cao và ứng dụng:
- Tầng 1 - Kiến thức căn bản: Toán, logic, toán rời rạc - đây là nền tảng đầu tiên về công nghệ
- Tầng 2 - Kiến thức chuyên biệt:
- Giải thuật (Data Structures và Algorithm)
- Hệ thống (OS, Network, CPU, Internet)
- Tầng 3 - Kiến thức nâng cao: Database, Distributed System, Search Engine/Information Retrieval, Machine Learning
- Tầng 4 - Ứng dụng: Technical domain (Frontend, Backend, Mobile) hoặc business domain (E-commerce, Logistics, Fintech) và cách công nghệ được áp dụng để xử lý bài toán thực tế
Phát triển kỹ năng thực hành
Kỹ năng là những thứ mà “trăm hay không bằng tay quen”; những thứ bạn sẽ làm đi làm lại cho đến khi bạn thuần thục.
Bắt đầu đơn giản từ việc viết code (Hello World → control flow → function call). Kỹ năng sẽ dần chia ra thành 2 phần:
-
Kỹ năng lập trình: Viết code, đọc hiểu code (điều này vô cùng quan trọng), theo dõi control flow, thiết kế giải thuật, debug (mường tượng ra cách chạy của code)
-
Kỹ năng sử dụng công cụ: Version control, IDE, Terminal, các ngôn ngữ lập trình, Frameworks, Library
Nâng các kỹ năng lập trình sẽ thành kỹ năng thiết kế thuật toán, thiết kế architecture, data modeling. Đi sâu hơn về các công cụ sẽ là sử dụng frameworks chuyên môn hơn, quản lý các hệ thống phức tạp hơn.
Kết nối kiến thức và kỹ năng
Một điều cần chú ý khi học tập, đó là phải kết nối được những kỹ năng và kiến thức với nhau. Tech là một ngành ứng dụng, nên sự cân bằng giữa việc học và hành là một điều vô cùng quan trọng.
Kiến thức cũng như kỹ năng sẽ bắt đầu từ một cái gốc nhất định, càng lên cao thì nó sẽ càng ngày càng phân hoá và cụ thể. Kết hợp của kiến thức và kỹ năng ở các tầng thấp càng vững thì sẽ là nền tảng vững chắc để bạn đi sâu thêm ở các tầng cao hơn.
Ví dụ:
- Khi bạn đã rất vững về khả năng viết và đọc hiểu code, thì bạn có thể học thêm một ngôn ngữ mới rất nhanh
- Bạn hiểu về OS hoặc networking vững, cộng thêm kinh nghiệm quản trị hệ thống, thì Kubernetes cũng không đáng sợ như thế
Mường tượng như là bạn đang có một nhân vật trong game vậy, khi bạn có được những requirement này thì bạn sẽ unlock được một skill tree khác.
Khác từ nơi bắt đầu
Một điểm thú vị của một ngành hot, đó là có nhiều người đến với ngành từ các hướng khác nhau. Có những bạn theo học từ thời sinh viên, có người thì tự nhiên phải learn on the job, hoặc là các bạn muốn nhảy vào ngành từ các công việc khác nhau. Những khởi điểm khác biệt này dẫn đến các lộ trình học khác biệt.
Đối với sinh viên
Các bạn sinh viên trong trường, với các giáo trình kiến thức có thể sẽ hơi bị thiên về lý thuyết. Một cách giúp các bạn tiến bộ hơn đó sẽ là luyện tập thật nhiều để bổ sung thêm các kỹ năng lập trình cho bản thân, để làm quen với tư duy, với ngôn ngữ, với cách đọc đề bài.
Để mở mang hơn, đọc thêm về các việc ứng dụng của công nghệ trong các bài toán thực tế, để hiểu cách công nghệ được đưa vào cuộc sống thế nào.
Đối với learning on the job / Self-taught
Nếu bạn phải học thêm code trong lúc đi làm, hoặc là bạn là một tay ngang muốn nhảy vào, trước hết bạn nên nhận biết là bạn đã có những kiến thức domain là gì; và những kiến thức đó có thể giúp ích được gì không.
Với việc bắt đầu sau những người khác với ít thời gian hơn, lộ trình học của bạn vẫn nên có những kiến thức và kỹ năng nền cơ bản, tuy nhiên:
- Ở các tầng kiến thức nâng cao hơn thì bạn có thể tập trung vào số lượng kiến thức và kỹ năng ít hơn
- Không nên quá lan man
- Làm sao mà bạn có thể vận dụng được càng nhiều các kiến thức có sẵn của bạn thì càng tốt
Cả hai trường hợp đều cần supervision: Nếu bạn có thầy cô hoặc mentor thì nên làm việc cùng họ một cách sát sao. Nếu bạn tự học thì nên chọn những nguồn học một cách chính thức: nếu làm bài thì có thể practice với leetcode, học theo các guided tutorials/video series.
Đối với những người đã đi làm
Nếu bạn cũng đi làm trong ngành một thời gian rồi, việc sẵn sàng để học thêm những thứ mới là điều hiển nhiên. Tập trung và củng cố những kiến thức và kỹ năng nền là một điều không thể thiếu; biết mình còn thiếu sót ở đâu sẽ khá quan trọng trong quá trình này.
Nếu bạn thấy có kiến thức mới mà khó nắm bắt, thực tế ra là bạn đã bị hổng một kiến thức nền từ trước đó. Đôi khi, lùi lại một bước lại là cách để bạn tiến được xa hơn.
Kết
Chả hiểu sao hồi bé thì mình ghét học thế, nhưng mà lớn lên thì suốt ngày nhắn nhủ mọi người phải học cái này cái kia, học thế này thế nọ…
Hy vọng những lời nhắn nhủ này sẽ có ích với các bạn trong hành trình học tập và phát triển sự nghiệp của mình!