Nếu đang cố gắng trở thành lập trình viên giỏi, chắc hẳn bạn đã bắt gặp tư tưởng về những người "hình chữ T". Họ là chuyên gia trong một lĩnh vực và có một số chuyên môn trong các lĩnh vực khác.
Ví dụ: bạn có thể là một lập trình viên back-end thành thạo với một số kiến thức về DevOps, quản lý sản phẩm và giao diện người dùng. Người hình chữ T là những nhân viên vô giá vì kiến thức đa dạng của họ tạo điều kiện giao tiếp và thúc đẩy sự sáng tạo. Một loạt các mối quan tâm có thể có lợi. Tôi là người ủng hộ sự đa năng và tin rằng đó là năng lực quan trọng của tương lai. Nhưng để trở thành người hình chữ T, bạn cần có kiến thức chuyên sâu về một số môn học.
Hoàn thành một hoặc hai khóa học không có nghĩa là bạn hiểu một lĩnh vực. Điều tồi tệ hơn nữa, nó có thể khiến bạn tự tin sai vào khả năng của mình. Học quá nhiều thứ và dàn trải mỏng manh sẽ không giúp bạn phát triển sự nghiệp. Giống như bạn không phải là một nhà văn xuất sắc nếu bạn đã viết hai bài đăng trên blog, bạn không phải là một lập trình viên có năng lực chỉ sau một chương trình đào tạo kéo dài một tháng, mà bạn cần phải có thời gian luyện tập chuyên sâu để có thể trở xên xuất sắc trong lĩnh vực mình muốn theo đuổi.
Người hình chữ T không phải là người chỉ biết cào bằng bề ngoài của nhiều lĩnh vực. Bạn phải lên kế hoạch cẩn thận làm thế nào để đào sâu lĩnh vực chuyên môn chính của mình và phát triển các kỹ năng phụ.
Tôi là một lạp trình viên front-end và có kiến thức về một số ngôn ngữ dùng cho lập trình back-end. Tôi đã tạo một vài ứng dụng di động bằng React Native. Đó ít nhiều là bộ kỹ năng của tôi, nhưng đã đến lúc tôi cần chọn những thứ để phát triển chuyên sâu và giảm bớt những thứ khác. Và lựa chọn phù hợp với tôi là tập trung vào phát triển front-end - cả trên web và thiết bị di động. Để trở thành một nhà phát triển front-end thành thạo, tôi cần phải là một chuyên gia về JavaScript.
Vì vậy, tất cả các khóa học về JavaScript nâng cao có thể hữu ích với bản thân tôi. Bạn có thể tạo bất kỳ ứng dụng nào bằng JavaScript đơn giản, nhưng nó thường không thực tế. Tôi chủ yếu làm việc với React, vì vậy tôi sẽ tập trung vào nó. Ở đây, các kỹ năng tôi cần đào sâu là JavaScript và React. Các ngôn ngữ và khuôn khổ khác có thể được sử dụng như các kỹ năng phụ.
>>> Xem thêm: Lộ trình học lập trình từ cơ bản đến nâng cao
JavaScript và React là những chủ đề rộng lớn, vì vậy tôi cần thu hẹp sở thích của mình hơn nữa. Cách tốt nhất để làm điều đó là chọn các khóa học bạn có thể sử dụng trong thực tế. Hai lần đầu tiên học Redux, tôi đã học nó vì mọi người trên mạng đều khẳng định nó là điều cần thiết. Tôi không muốn bị bỏ lại phía sau, vì vậy tôi đã hoàn thành một hướng dẫn và đọc tài liệu. Nhưng tôi đã không sử dụng nó cho bất kỳ dự án nào, vì vậy tôi nhanh chóng quên đi mọi thứ.
Cho đến lúc cần sử dụng Redux một cách chuyên nghiệp, tôi đã học lại lần thứ 3 và làm việc với nó ngay sau khi hoàn thành khóa học. Tuy thời gian đầu có gặp một số vấn đề nhưng hiện tại, tôi đã có thể sử dụng Redux bất cứ lúc nào mình muốn. Hãy ứng dụng những gì bạn học được vào dự án thực tế, nếu không, kiến thức của bạn sẽ nhanh chóng trôi tuột đi và bạn sẽ lãng phí thời gian học lại khi cần sử dụng chúng.
Đừng bao giờ cho rằng bạn hiểu một vấn đề gì đó nếu bạn có thể giải thích rõ ràng cho người có ít kinh nghiệm hơn. Luôn đề phòng những lỗ hổng trong sự hiểu biết của bạn và cảnh giác với sự tự tin sai lầm. Hầu hết mọi thứ trong lập trình đều phức tạp nếu bạn đào sâu vào chúng.
Ví dụ: bạn có biết cách quản lý trạng thái trong React không? Bạn có thể chuyển đạo cụ qua các thành phần hoặc sử dụng API ngữ cảnh. Ngoài ra, bạn có thể chọn một thư viện (có thể là Redux hoặc MobX). Và Facebook vừa phát hành một thư viện quản lý nhà nước mới có tên là Recoil. Và chỉ khi gặp vấn đề trong thực tế, bạn mới thấy chúng phức tạp ra sao.
Để trở thành người hình chữ T thực thụ, bạn cần phát triển một số kỹ năng phụ. Để tiến xa hơn trong sự nghiệp của mình, bạn cần tập trung vào các kỹ năng có thể ứng dụng lâu dài và đủ gần với chuyên môn chính của mình. Lựa chọn các kỹ năng theo mức độ ưu tiên và cơ hội sử dụng chúng trong thực tế. Đối với một số ngôn ngữ back-end phổ biến, tôi sẽ không thể sử dụng chúng trong công ty của mình trong tương lai gần, vì vậy thật lãng phí thời gian.
DevOps là một công việc khó. Tôi cảm thấy mình cần phải học nó, nhưng có vẻ như tôi sẽ không có cơ hội làm việc trong đó, vì vậy tôi sẽ bỏ qua. Vì tôi làm việc nhiều với các nhà thiết kế, nên bạn nên tìm hiểu những kiến thức cơ bản về thiết kế.
Tôi rất thích viết về lập trình, vì vậy những cuốn sách về chủ đề đó phải nằm trong danh sách việc cần làm của tôi. Kỹ năng quản lý dự án của tôi không tốt như mong muốn, vì vậy việc phát triển lĩnh vực này trở thành ưu tiên của tôi. Tôi vẫn cảm thấy bị cám dỗ để đánh dấu nhiều khóa học và ảm giác sẽ không biến mất. Nhưng tôi cố gắng chỉ chọn những thứ có thể có lợi cho sự nghiệp của tôi về lâu dài. Trong vài tuần trước, tôi đã xóa nhiều khóa học khỏi danh sách việc cần làm của mình. Bạn có thể xóa bỏ bớt phần nào trong danh sách của mình?
Nguồn: Medium