Chắc hẳn bạn đã ít nhất một lần nghe qua cụm từ Side Project và phần nào có thể hiểu được những lợi ích khi phát triển một Side Project. Bài viết này sẽ giúp các Developer làm rõ xem Side Projects là gì và có nên lựa chọn nó như một cách để nâng cao trình độ, tích lũy kinh nghiệm trong sự nghiệp phát triển phần mềm. Bên cạnh đó là hướng dẫn và lưu ý nếu bạn muốn bắt đầu một Side Projects hiệu quả!
Side Projects tạm dịch là những dự án phụ. Đó có ý nghĩa là những dự án được thực hiện nhưng không thuộc trong công việc chính thức của một người - trong bài viết này là Developer tại nơi làm việc, mà là những dự án mang tính cá nhân không chính thức.
Các dự án đó có thể là Developer tự nghĩ ra và thực hiện hoặc có thể tham gia vào một nhóm dự án khác không nằm trong công việc chính thức toàn thời gian.
Hiện nay có rất nhiều Developer cũng như những lập trình viên mới bắt đầu tham gia vào thị trường lao động với một công việc chính thức trong vài năm, nhưng bên cạnh đó họ đã sở hữu cho mình một vài Side Projects nho nhỏ và thú vị. Câu hỏi đặt ra là có lợi ích nào từ việc này mang lại và làm thế nào để bắt đầu một Side Project cho mình, cùng tiếp tục tìm hiểu qua những nội dung dưới đây nhé!
Trong nhiều thống kê của thị trường nhân lực IT cho thấy rằng số người có kinh nghiệm ở cấp độ Junior chiếm đa số 40% trên tổng số các lập trình viên.
Tuy nhiên cũng cần phải nói thêm rằng số năm làm việc và cấp độ kinh nghiệm không tỉ lệ thuận với nhau. Tức là có những developer có ít năm làm việc nhưng trình độ chuyên môn cao và ngược lại cũng có những developer với nhiều năm làm việc nhưng trình độ chuyên môn chỉ được đánh giá ở mức Junior và Middle. Vậy sự khác biệt của 2 nhóm developer này nằm ở cách họ tận dụng thời gian của mình.
Bên cạnh những công việc dev chính được công ty giao cho, các developer cũng cần chủ động tìm kiếm thêm cho mình những cơ hội được thực hành và tích lũy kinh nghiệm và Side Project là một lựa chọn đáng cân nhắc.
Nói chung, khi so sánh các Developer có cùng kinh nghiệm tính theo số năm và tháng, người ta nhận thấy rằng các Developer có làm việc nhiều trên các Side Project sẽ các đặc điểm như sau:
Bài viết cố ý sử dụng từ “đặc điểm” vì những điều này không phải lúc nào cũng tốt. Năng lượng của một Developer mới phải được tập trung để những thay đổi về đặc điểm này chuyển hóa thành lợi ích cho công việc chính thức của họ, chứ mục đích không phải là làm thật hoàn hảo các Side Project.
Ví dụ: đặc điểm tốc độ làm việc nhanh hơn có thể là một lợi ích lớn, nhưng không chú ý đến chi tiết hoặc bức tranh lớn hơn, nó cũng có thể dẫn đến nhiều bugs hơn. Hoặc thật tuyệt khi có một developer háo hức muốn thử công nghệ mới nhưng cũng thật khó để thành công khi liên tục đổi mới chính mình.
Kết hợp hai ý này với nhau ta hiểu được rằng Side Project là một lựa chọn thú vị và mang lại những lợi ích chính cho cá nhân developer và nhưng cũng cần phải mang lại giá trị cho công việc chính thức mà họ tham gia, vì đây sẽ là nơi đánh giá chính thức những tiến bộ trong năng lực của họ và thể hiện tinh thần trách nhiệm trong tố chất của họ.
Trong công việc chính thức của bạn đôi khi không thể phân bố cho bạn cơ hội lập trình và phát triển các dự án mà bạn thực sự hứng thú, những điều bạn được giao cho tất cả phải phụ thuộc vào công ty. Như vậy không có nghĩa là bạn phải chuyển việc liên tục cho đến khi tim được công ty có những dự án hợp gu bạn, trên thực tế điều này là không thể.
Vậy nên Side Project là lựa chọn giải pháp cho những mong ước của bạn, để bạn có thể sống và làm việc với niềm yêu thích của mình.
Tự mình làm ra một phần mềm hoặc ứng dụng sẽ khiến bạn cảm thấy công việc của mình thật ý nghĩa! Từ đó bạn sẽ nuôi dưỡng được lửa đam mê với nghề phát triển phần mềm và với lĩnh vực IT.
Đam mê là điều quan trọng, ảnh hưởng rất lớn trong sự thắng tiến của bạn, nhưng không hề đơn giản để duy trì sau nhiều năm làm việc. Vậy tại sao không bắt đầu với những dự án của riêng mình!
Các Side Projects, đặc biệt là các solo Side Projects, buộc các developer phải nỗ lực hơn để cố gắng giải quyết vấn đề thay vì ngay lập tức yêu cầu trợ giúp. Có rất nhiều nguồn tài nguyên tuyệt vời để bạn có thể tự điều tra các vấn đề (gaps) — chẳng hạn như Stack Overflow, nhưng cũng đừng quá phụ thuộc vào nó.
Thiếu đi một sự hỗ trợ tức thời là một thách thức nhưng cũng là một cơ hội để Developer vận dụng những điều mình biết đồng thời tự giác nghiên cứu thêm. Một khi họ có thể tự mình giải quyết các vấn đề một cách nhất quán thì kinh nghiệm giải quyết vấn đề đó sẽ trở thành "vốn liếng" giá trị của riêng họ.
Hơn nữa khi Developer mang những gì họ học được từ trải nghiệm trong Side Project vào các dự án chính thức, họ sẽ nhanh chóng trở nên linh hoạt hơn trong các loại vấn đề mà họ có thể giải quyết vì họ có kinh nghiệm tư duy để giải quyết vấn đề một cách logic.
Bên cạnh đó việc này còn giúp họ tăng khả năng tự làm chủ công việc (Một phần của kỹ năng Leadership).
Cho dù là solo hoặc là thành viên trong một Side Project thì đây đều là thiên đường để khám phá — để học các ngôn ngữ lập trình và framework mới.
Nhiều lầm tưởng cho rằng tất cả kết quả của Side Project phải là một sản phẩm phần mềm và ứng dụng thì mới gọi là làm Side Project, nhưng thực tế có rất nhiều hình thức Project (dự án) khác nhau, không chỉ là dự án sản xuất, chế tạo ra một sản phẩm mà còn là một dự án nghiên cứu về một kỹ thuật mới nào đó, thì đây cũng được xem là một Side Project, miễn là Developer thu được một kết quả và giá trị cụ thể đúng như mục tiêu ban đầu.
Chính vì điều này, các Developer vẫn có thể tạo cho mình một Side Project theo dạng một dự án nghiên cứu giải pháp (quy mô nhỏ và nhanh chóng) khi họ cần giải quyết một vấn đề khó. Cách làm này có thể gia tăng thêm động lực giải quyết và hoàn thành dự án chính thức.
Ngoài ra, nếu có một ngôn ngữ hoặc công cụ mới thú vị mà team phát triển trong công ty đã nói đến nhưng chưa khám phá, thì Side Project có thể là một không gian tuyệt vời để tạo ra những kiến thức và kinh nghiệm về khái niệm mới này, sau đó sẽ chia sẻ nó với các thành viên trong nhóm bằng hình thức Seminar chẳng hạn!
Bạn là một Developer làm việc chăm chỉ và là người luôn hướng đến các cơ hội mới cho mình nếu phù hợp và mang lại lợi ích cho sự nghiệp cũng như cuộc sống của bạn, dù đó là các cơ hội công việc chính thức hay các dự án cần thêm "tay" của Freelancer.
Vậy câu hỏi đặt ra là làm cách nào để thể hiện sự chăm chỉ và nỗ lực của bạn trước các cơ hội mới, hay nói cách khác là làm thế nào để bạn chứng minh mình là một lựa chọn đáng giá cho các cơ hội này.
Ngoài các thành tích, bằng cấp, chứng nhận và tuyên dương làm việc hiệu quả tại các công ty trước đến hiện tại thì Side Projects sẽ cho bạn thêm một bằng chứng giá trị và rõ ràng hơn về các kỹ năng kinh nghiệm của mình!
Nếu bạn đã có các Side Projects thì hãy nhanh chóng cập nhật chúng vào Portfolio trên Profile và trong CV của mình để tiếp cận các cơ hội sự nghiệp phù hợp, thậm chí là tốt hơn cho bạn. Hành trình nắm được cơ hội này cũng sẽ dễ dàng hơn.
Bạn có thể bắt đầu Side Project bất cứ khi nào bạn muốn mà không có áp lực cao về deadline để hoàn thành chúng, mọi thứ phụ thuộc hoàn toàn vào nhịp độ và mong muốn của bạn.
Hơn nữa bạn có thể toàn quyền điều chỉnh, thay đổi và thêm thắt bất cứ điều gì cho Side Project khi bạn "solo".
Với sự ưu tiên cho các công việc và dự án chính thức thì Side Project của riêng bạn sẽ đáp ứng sự ưu tiên này, không khiến bạn căng thẳng vì phải chạy đua cho quá nhiều công việc bắt buộc hoàn thành.
Trước khi bạn bắt đầu xây dựng một cái gì đó, hãy nghĩ về những gì bạn muốn đạt được từ dự án. Bạn muốn học gì? Bạn muốn thực hành những gì?
Nên chỉ đặt một điều bạn muốn đạt được thay vì muốn nhiều điều khác nữa. Chắc chắn, bạn cũng có thể đạt được những thứ khác, nhưng trước tiên hãy tập trung vào một điều.
Việc đặt một mục tiêu duy nhất sẽ giúp bạn ra quyết định đúng đắn trong quá trình phát triển dự án.
Ví dụ, bạn có nên viết các test case không? Nếu mục tiêu chính của bạn là thực hành để tối ưu hóa code của mình thì có thể việc dành nhiều thời gian và công sức để lập test case có vẻ sẽ không phù hợp lắm!
Hãy tận dụng tối đa thời gian ngắn nhất có thể để chú ý đến những gì nằm trong mục đích của bạn và bỏ qua những khâu không liên quan và không quan trọng trong suốt thời gian làm dự án
Tiếp theo, bạn cần quyết định những gì bạn muốn phát triển. Có rất nhiều lựa chọn và gợi ý dành cho các ý tưởng Side Project mà bạn có thể tham khảo và lướt qua chúng sau đó kết hợp với mục tiêu bạn muốn đạt được để quyết định mình nên làm Side Project gì? Kết quả sẽ là gì?
Điều quan trọng là bạn hãy chọn một ý tưởng mà bạn yêu thích và hữu dụng, vì:
Bây giờ, khi nói đến việc phát triển một Side Projects, điều quan trọng là phải nhắm đến đúng cấp độ. Nói cách khác, đừng phát triển thứ gì đó quá khó đối với bạn - nhưng nó cũng không nên quá dễ.
Bằng cách đó, bạn sẽ luôn có động lực trong suốt dự án. Bất cứ khi nào vượt qua một thử thách, bạn sẽ cảm thấy mình đạt được thành tựu.
Trước khi bắt tay vào công việc, bạn nên lên kế hoạch.
Nghe có vẻ nhàm chán và tẻ nhạt nhưng việc xây dựng một lộ trình sơ bộ cho dự án phụ sẽ giúp ích cho bạn sau này. Lộ trình bạn xác định không nên chỉ bao gồm các mốc quan trọng, mà phải có các điểm kiểm soát chi tiết, đó là những mốc nhỏ mà bạn đạt được một sự tiến triển đo lường được của dự án, những mốc này gọi là “sprint” (mỗi “sprint” thường kéo dài trong một tuần hoặc lâu hơn một chút).
Tính nhất quán là cốt lõi của một quá trình. Việc phát triển một Side Project cũng vậy, bạn cần có lộ trình phân bố thời gian đều đặn, nếu cố dành suốt 12 tiếng liên tục để làm rồi những ngày tiếp theo không thể động tay vào dù chỉ một chút thì sẽ bào mòn hứng thú và dự án của bạn chẳng đi đến đâu.
Đó là lý do tại sao, việc biến hoạt động này thành thói quen sẽ rất có lợi. Ban đầu có thể mọi thứ sẽ khó khăn để thiết lập thói quen với mốc thời gian phát triển cố định, nhưng hãy lập ra nguyên tắc cho mình và ghi nhận hằng ngày xem mình có tuân thủ không và nếu không thì lý do là gì, có thể khắc phục không!
Bằng cách đó, thói quen làm việc cho dự án Side Project sẽ được thiết lập, bạn sẽ không phải nghĩ quá nhiều trước mỗi lần bắt đầu vào việc. Nỗ lực của bạn sẽ được tận dụng tập trung cho quá trình phát triển.
Quỹ thời gian cho bạn là có hạn và bất cứ hành trình nào cũng cần phải đến một vạch đích nhất định. Khi bạn quá cầu toàn mà sa đà vào các công việc không quan trọng như dành nhiều giờ để chọn phông chữ cho giao diện sẽ khiến bạn lạc ra khỏi mục đích và mục tiêu ban đầu của mình.
Thế nên hãy luôn nhắc nhở về mục tiêu ban đầu của bạn, trước khi ra quyết định làm bất cứ điều gì trong dự án, cần xem xét nó có quan trọng không và nên dành bao nhiêu nỗ lực cho việc đó.
Với những lợi ích mà các Side Project mang lại cho Developer có thể sẽ khiến bạn muốn bắt tay vào làm ngay cho mình một dự án.
Tuy nhiên, bạn cũng cần xem xét rất nhiều yếu tố để quyết định xem có nên bắt đầu không hãy tự hỏi một vài câu hỏi sau:
Sau khi trả lời ba câu hỏi trên, có thể một số Developer sẽ phát hiện ra vốn trong công việc hiện tại với họ là đã có đủ các cơ hội mà họ có thể tận dụng để nâng cao các kỹ năng kỹ thuật và kỹ năng làm việc mong muốn, cũng như không có một quỹ thời gian vừa đủ để dành cho Side Project.
Chính vì vậy nếu bạn chưa có Side Project thì cũng không phải là vấn đề gì quá to tát, chỉ cần bạn xác định được đúng năng lực hiện tại của mình, các cơ hội sẵn có, và mục tiêu sự nghiệp cụ thể của mình thì Side Project sẽ trở thành một trong các lựa chọn trong các giai đoạn tiếp theo.
Hi vọng rằng bài viết này đã cung cấp cho bạn những thông tin giá trị về Side Project là gì và có ý nghĩa như thế nào đối với một Developer. Giờ đây bạn đã có thêm một lựa chọn để phát triển và làm phong phú thêm sự nghiệp của mình. Chúc các bạn thành công