Làm sao để có kế hoạch học tập hiệu quả cho Programmer?
Programmers luôn trong tư thế sẵn sàng học hỏi để bắt kịp thời đại, bất kể là bạn mới bắt đầu học code hay đã dày dặn kinh nghiệm. Vấn đề là, chúng ta cần học cái gì trước để tiết kiệm thời gian và đạt hiệu quả cao nhất.
Dưới đây là một số gợi ý, được phân chia theo các giai đoạn của sự nghiệp, mục tiêu và sở thích của một programmer.
1. Junior Programmer chưa đi làm
Ở giai đoạn này, điều khó khăn là bạn thậm chí còn chưa biết bản thân đang thiếu kiến thức gì. Bạn muốn lập trình và tìm một công việc nhưng có quá nhiều ngôn ngữ, frameworks và công cụ. Sự lựa chọn dường như là không thể. Và tất cả mọi người trên Twitter đều có quan điểm khác nhau về điều gì là trending nhất và hữu ích nhất.
Để tìm một công việc, bạn không thể học mọi thứ. Nhà tuyển dụng luôn hiểu rõ rằng một người không thể trở thành chuyên gia trong nhiều lĩnh vực khi họ mới bắt đầu lập trình cách đây một năm.
Nếu chỉ tập trung vào một số ít frameworks và công nghệ, bạn nên chọn chúng như thế nào?
Hãy bắt đầu với việc nghiên cứu các lựa chọn của bạn. Ví dụ, trong front-end, có một vài stack phổ biến như là MERN (MongoDB, Express.js, React và Node.js), MEAN (MongoDB, Express, Angular và Node), JAM (JavaScript, API và Markup). Bạn nên tìm hiểu về từng stack này, xem thử một số tutorials và quyết định xem stack nào phù hợp nhất với bạn. Đây sẽ là một điểm khởi đầu cho việc lựa chọn con đường học tập của bạn.
Khi bạn đã có cái nhìn tổng quan cơ bản về công việc, tiếp tục xem qua những cơ hội việc làm liên quan đến những công việc này. Hãy kiểm tra xem có bao nhiêu vị trí đang tuyển dụng cho mỗi stack, vị trí đó dành cho junior hay senior, những loại công ty nào đang yêu cầu những loại kỹ năng cụ thể nào. Việc này sẽ giúp bạn nhìn thấy một số xu hướng tuyển dụng phổ biến và từ đó bạn có thể điều chỉnh lựa chọn ban đầu để tăng cơ hội tìm được việc làm.
Xu hướng thị trường có vai trò vô cùng quan trọng. Một số loại công nghệ từng có mặt khắp nơi và vẫn được sử dụng rộng rãi cho đến hiện nay, nhưng mức độ phổ biến của chúng đang giảm dần. Ví dụ nổi bật nhất trong front end là jQuery. Ngay cả khi bạn tìm thấy một vị trí đang tuyển cho jQuery, thì rất có khả năng chúng sẽ biến mất trước khi bạn nhận việc. Chúng ta sẽ mất một khoảng thời gian để tìm được công việc đầu tiên, vì vậy tốt hơn là bạn nên đặt cược vào những công nghệ mà mức độ phổ biến của nó đang tăng dần hay mới vừa ổn định.
Điều tiếp theo bạn nên xem xét là khả năng ứng dụng kiến thức của bạn trong các lĩnh vực khác. Có một số ngôn ngữ và frameworks sử dụng các patterns và cách tiếp cận đặc biệt để giải quyết vấn đề, và một số ngôn ngữ thì dựa trên các nguyên tắc lập trình rộng hơn.
Kiến thức của bạn càng áp dụng được vào nhiều lĩnh vực khác thì càng tốt. Ví dụ: bạn cần JavaScript cho hầu hết mọi công việc trong lập trình front-end. Không những vậy,bạn còn có thể sử dụng JavaScript cả trong lập trình back-end và mobile. Vì vậy, JavaScript sẽ là một lựa chọn tuyệt vời cho một bạn Junior Developer để bắt đầu sự nghiệp. Mặt khác, Angular framework đi kèm với một hệ sinh thái (Ecosystem) rộng lớn. Để học Angular, bạn cần nắm vững nhiều patterns đặc trưng để sử dụng nó. Kiến thức này rất hữu ích, nhưng lại khó áp dụng cho nhiều loại công việc.
Sau khi bạn đã sẵn sàng chọn programming stack cho mình, bạn cần tìm ra điểm chung giữa các lĩnh vực bạn quan tâm, cơ hội việc làm, xu hướng thị trường và khả năng ứng dụng công nghệ chung.
2. Programmer đang tìm kiếm cơ hội thăng tiến
Bạn đã có kha khá kinh nghiệm trong lĩnh vực lập trình và đang tìm kiếm một cơ hội thăng tiến. Nhưng vì lý do nào đó, mặc dù bạn được đánh giá có hiệu suất làm việc tốt, bạn vẫn chưa nhận được điều mình muốn. Vậy thì bạn còn đang thiếu thứ gì?
Có thể kỹ năng lập trình của bạn tốt, nhưng tầm nhìn của bạn chưa đủ rộng. Khi lập trình, bạn có xu hướng tin rằng code giỏi là quan trọng nhất. Bạn muốn làm cho code của bạn không những chạy được, mà còn phải bền vững và hiệu quả nhất có thể. Kỹ năng code thật sự là một kỹ năng quan trọng đối với lập trình viên, nhưng đó không phải là tất cả những gì mà công ty tìm kiếm ở nhân viên.
Để được thăng tiến, bạn cần học những điều mà công ty bạn coi trọng. Bạn cần nhớ code không phải là sản phẩm. Hãy xem nhà tuyển dụng như khách hàng của bạn, và khách hàng thường không quan tâm đến quá trình bạn làm ra sản phẩm. Họ chỉ quan tâm liệu rằng ứng dụng bạn làm ra có chạy mượt mà được như họ mong muốn hay không. Đôi khi việc quan trọng tiểu tiết chỉ khiến bạn tốn thời gian để giải quyết mà không phải mà thứ khách hàng cần.
Công việc của bạn là đưa ra các giải pháp chứ không chỉ là code. Trong công việc, bạn nên tập trung vào giá trị mà bạn làm ra cho công ty. Hãy dành thời gian của bạn để tìm hiểu xem những sản phẩm nào đang được đặt vào vị trí quan trọng trong công ty của bạn. Hãy kiểm tra xem công nghệ nào được sử dụng cho các sản phẩm này và học về chúng. Sau đó, bạn hãy chứng minh năng lực của mình với managers của bạn và sẵn sàng hỗ trợ khi các dự án quan trọng cần bạn. Hiểu về sản phẩm sẽ giúp bạn thăng tiến và phát triển cả kỹ năng lập trình của bạn.
Một con đường khác để thăng tiến là học hỏi các kỹ năng còn thiếu trong công ty của bạn. Có thể công ty của bạn đã từng từ chối nhiều dự án bởi vì họ không có chuyên gia trong một số frameworks hay data visualization. Bạn mạnh dạn hỏi sếp của mình về những gì họ đang cần để thể hiện sự chủ động và nhận được sự hướng dẫn cho việc mở rộng kỹ năng của bạn.
3. Programmer muốn thay đổi công việc
Đôi khi bạn cần một sự thay đổi trong sự nghiệp của mình để tìm kiếm nguồn thu nhập tốt hơn hay khả năng thăng tiến cao hơn. Cho dù lý do là gì, thì bạn cũng cần tự chuẩn bị cho quá trình chuyển việc của mình.
Đừng vội vàng gửi CV. Tốt hơn là bạn nên tiếp cận thị trường việc làm một cách bình tĩnh. Bạn có thể bắt đầu bằng việc tìm kiếm các cơ hội nghề nghiệp tại vị trí bạn muốn, đánh giá khả năng của bản thân dựa trên mức độ phù hợp với bộ kỹ năng được yêu cầu cho vị trí đó. Bạn sẽ thấy rằng những yêu cầu này thường được sắp xếp theo các stack. Nếu bạn đang sử dụng React, thì rất có thể nhà tuyển dụng cũng đang tìm kiếm ứng viên cũng biết thêm Redux cho vị trí React Developer. Có nghĩa là, mở rộng vốn kiến thức của bạn trong hệ sinh thái lập trình luôn là một sự lựa chọn tốt.
Khám phá một số lĩnh vực bạn luôn muốn nhưng chưa bao giờ có thời gian. Có thể bạn sẽ kết hợp được kiến thức chuyên môn hiện tại của mình với điều gì đó mới và mang lại giá trị thậm chí còn lớn hơn cho nhà tuyển dụng tương lai của mình.
Hãy thử liên hệ với các IT recruiter trên LinkedIn. Họ thường có mặt trên các trang mạng xã hội này và sẽ sẵn lòng hướng dẫn bạn vì họ có thể được lợi khi bạn thay đổi công việc của mình.
Nhớ xác định rõ mục tiêu và công việc mơ ước, sau đó điều chỉnh kế hoạch học tập cho phù hợp. Nếu bạn đang sống ở một nơi đang nở rộ các công ty khởi nghiệp, thì đây là thời điểm tuyệt vời để bạn nhảy vào một số ngành công nghệ mới có tiềm năng phát triển cao. Các công ty khởi nghiệp thường có xu hướng dũng cảm nắm bắt những thứ mới để tạo giá trị khác biệt. Vì vậy, nếu bạn đang tìm kiếm một công việc trong một tổ chức tài chính, tốt hơn bạn nên tập trung vào các loại công nghệ đã hoàn thiện và đáng tin cậy. Còn nếu bạn muốn làm việc cho FAANG, bạn liên tục cập nhật kiến thức về khoa học máy tính.
Cuối cùng nhưng không kém phần quan trọng, hãy rèn luyện kỹ năng giao tiếp của bạn. Kỹ năng này đặc biệt quan trọng khi bạn tham gia phỏng vấn cho vị trí mới. Hãy thử giải thích các khái niệm lập trình cho người khác để luyện tập kỹ năng này. Bạn có thể là một lập trình viên xuất sắc, nhưng bạn cũng phải thuyết phục người khác rằng đó là sở trường của bạn và trả lương xứng đáng để bạn tham gia vào tổ chức của họ là một quyết định đúng đắn.
4. Lập trình viên hài lòng với công việc của họ nhưng không muốn tụt lại phía sau
Bạn đã có cho mình một công việc ưng ý nhưng bạn vẫn ý thức được rằng mọi thứ sẽ không tồn tại mãi mãi như vậy vì thị trường IT đang cạnh tranh rất khốc liệt và bạn luôn phải sẵn sàng cho mọi tình huống.
Thứ nhất, bạn đang ở một vị trí hoàn hảo, vì vậy hãy tận hưởng nó! Bạn không cần phải lo lắng cho bất cứ điều gì cụ thể mà chỉ cần tập trung vào bất cứ điều gì bạn muốn. Nhưng hãy nhớ dành chút thời gian để tìm hiểu sâu về các kỹ năng cốt lõi. Hãy làm mới kiến thức của bạn về khoa học máy tính, clean code, design patterns hoặc chỉ đơn giản là tối ưu hóa code của bạn.
Đây cũng là thời điểm tuyệt vời để học lại các kiến thức cơ bản. Ví dụ, bạn là kỹ sư front-end đang làm việc chủ yếu trong React hoặc Angular, hãy đi vào chi tiết của các framework này như cách triển khai và quy trình của nó. Mô hình lập trình front-end hiện nay thường dựa trên JavaScript, và bạn đang có điều kiện tuyệt vời để "master" nó. Các frameworks sẽ thay đổi, nhưng kiến thức về ngôn ngữ lập trình sẽ phục vụ bạn trong nhiều năm hoặc nhiều thập kỷ. Bạn nên tập trung vào các kỹ năng có thể đem lại lợi ích cho bạn trong tương lai. Bạn sẽ xây dựng được cho mình một nền tảng vững chắc và có thể ứng dụng linh hoạt trong nhiều hoàn cảnh trong tương lai.
Hãy thoải mái và tận hưởng! Bạn hãy nhìn vào một số frameworks và tools đang được sử dụng rộng rãi hiện nay và thử một cách tiếp cận mới đối với CSS trong ứng dụng. Hãy thử bất cứ điều gì có thể mang lại cho bạn niềm vui và dạy bạn những kỹ thuật mới khi giải quyết vấn đề.
Lúc nào cũng là thời điểm tuyệt vời để trở thành một lập trình viên. Những công nghệ mới đang xuất hiện hàng ngày. Vì vậy, hãy khám phá, lập trình và tận hưởng chúng. Điều đó sẽ giúp bạn phát triển hiệu quả hơn bất cứ thứ gì khác.
Theo tác giả: Szymon Adamiak