Hiện nay, các nhà tuyển dụng thường xuyên yêu cầu các Dev đính kèm hồ sơ GitHub của mình. Vì đây là xu hướng gần đây để đánh giá khả năng của lập trình viên, nhiều người tự hỏi nhà tuyển dụng đang tìm kiếm gì và một tài khoản GitHub tốt thường trông như thế nào. Hãy cùng tìm hiểu về những yếu tố cần có để tạo nên bản profile GitHub tốt nhé.
1. GitHub là gì?
GitHub là một dịch vụ nổi tiếng cung cấp kho lưu trữ mã nguồn Git cho các dự án phần mềm. Github có đầy đủ những tính năng của Git, ngoài ra nó còn bổ sung những tính năng về social để các developer tương tác với nhau. Khi xu hướng công nghệ thay đổi, một số khái niệm xung quanh việc tuyển dụng cũng vậy. Sự phát triển của open-source, các rào cản (cả chi phí và độ phức tạp) đối với việc lưu trữ giảm mạnh và sự phổ biến của các trang web lưu trữ đều góp phần vào khả năng mới của lập trình viên để họ có thể đáp ứng được code portfolio cho nhà tuyển dụng. Và GitHub chính là nơi để các Dev thể hiện những bản code portfolio ấn tượng của mình.
Một vài thông tin về GitHub:
- Là công cụ giúp quản lý source code tổ chức theo dạng dữ liệu phân tán.
- Giúp đồng bộ source code của team lên 1 server.
- Hỗ trợ các thao tác kiểm tra source code trong quá trình làm việc (diff, check modifications, show history, merge source, …)
GitHub có 2 phiên bản: miễn phí và trả phí. Với phiên bản có phí thường được các doanh nghiệp sử dụng để tăng khả năng quản lý team cũng như phân quyền bảo mật dự án.
Còn lại thì phần lớn chúng ta đều sử dụng Github với tài khoản miễn phí để lưu trữ source code.
Github cung cấp các tính năng social networking như feeds, followers, và network graph để các developer học hỏi kinh nghiệm của nhau thông qua lịch sử commit.
Nếu một comment để mô tả và giải thích một đoạn code. Thì với Github, commit message chính là phần mô tả hành động mà bạn thực hiện trên source code. Giờ đây, kỹ năng sử dụng Git và Github từ chỗ ưu thích sang bắt buộc phải có đối với các ứng viên.
2. Tại sao nên có profile GitHub?
Đối với các bạn mới ra trường, khi có một profile GitHub sẽ là điểm cộng cực lớn trong mắt nhà tuyển dụng. Ngoài các tiêu chí thông thường như: Trường đại học, GPA, kinh nghiệm thực tập và những dự án đã tham gia thì việc profile GitHub của bạn tốt sẽ là tiêu chí để làm bạn nổi bật hơn so với những ứng viên khác.
Bên cạnh những bạn Dev vừa mới ra trường thì profile GitHub cũng rất có giá trị cho các lập trình viên đã có kinh nghiệm và muốn chuyển việc hay có định hướng chuyển sang ngôn ngữ lập trình mới. Mặc dù có nhiều người nghĩ rằng những người đã có kinh nghiệm rồi thường không thích người khác review code hay những project của mình từng làm nhưng việc có một profile GitHub chứa đựng những thông tin quan trọng về các project sẽ chứng minh được khả năng của họ một cách rõ ràng hơn đối với nhà tuyển dụng. Việc chỉ nói về những dự án của mình hay những gì viết ở trên CV là điều kiện cần nhưng sẽ không đủ để chứng minh bạn là một con người đã có nhiều kinh nghiệm. Khi đó, profile GitHub sẽ là công cụ để cho bạn có thể chứng minh điều đó với nhà tuyển dụng.
3. Như thế nào là một profile GitHub tốt?
Các Dev ở level fresher đều nhận thấy câu trả lời cho câu hỏi “Tôi có cần GitHub không?” rõ ràng là có, và họ sẽ chuyển ngay qua câu hỏi “Điều gì khiến profile GitHub của tôi trở nên nổi bật?”
Có lẽ sai lầm khi xây dựng code portfolio lớn nhất của các ứng viên là xu hướng về việc thể hiện những điều quá tham vọng mà gần như không thể, ngay cả đối với những bạn lập trình viên giàu kinh nghiệm. Nhà tuyển dụng không mong đợi bất kỳ ai (huống chi là sinh viên tốt nghiệp gần đây) có thể khái niệm hóa một cách độc lập, thiết kế và triển khai những thứ kiểu như phát minh ra Facebook hoặc Twitter tiếp theo. Bằng cách đặt ra những mức quá cao cho bản thân, nhiều người kết thúc với một danh mục các ý tưởng nửa vời sẽ không bao giờ hoàn thành hoặc đạt được.
Để tránh những lỗi như vậy diễn ra thì bạn nên tập trung vào các ý tưởng dự án thực tế và những nội dung phổ biến trên GitHub, sau đó chia sẻ một số gợi ý về chính các repos.
Một số nội dung phổ biến trên GitHub:
- Website: Đây là dự án phổ biến nhất. Ngay cả khi phát triển web không phải là chuyên môn của bạn, có rất nhiều mẫu và công cụ để bạn có thể tìm tòi và học hỏi. Việc sở hữu một trang web do chính bạn code sẽ là một dự án hữu ích để bạn có thể cho chúng vào profile GitHub của mình.
- Programming exercises: FizzBuzz, Conway’s Game of Life và tất cả những bài tập khác mà các lập trình viên có thể được hỏi trong quá trình tuyển dụng. Các giải pháp sẽ không phải là duy nhất, nhưng nó sẽ củng cố kiến thức của bạn về các thuật toán cơ bản.
- Games: Nhiều lập trình viên quen thuộc và thích các loại trò chơi khác nhau. Dự án phát triển trò chơi không nhất thiết phải là bản gốc. Trong khi một số người có thể cảm thấy thật mệt mỏi bởi những nỗ lực cần thiết cho việc phát triển game là rất lớn thì một trò chơi bài theo lượt đơn giản cũng có thể thể hiện sự hiểu biết của bạn về các khái niệm lập trình chính. Không có gì sai khi xây dựng những game kiểu Pong hay Asteroids.
- Mobile app: Các Mobile Developer chuyên nghiệp và những người muốn tham gia vào lĩnh vực này thường được đánh giá bởi những titles sẵn có của họ. Những người đã xuất bản những ứng dụng nên tập trung vào khả năng sử dụng được và chức năng của chúng. Đừng suy nghĩ quá nhiều về những thống kê, số liệu những lượt tải xuống hoặc mức độ phổ biến.
- Employer-targeted code: Một cách duy nhất để thu hút sự chú ý của nhà tuyển dụng là viết một cái gì đó liên quan trực tiếp đến hoạt động kinh doanh của họ. Các dự án này có thể phục vụ để thể hiện các kỹ năng và cho nhà tuyển dụng thấy rằng bạn thực sự quan tâm đến họ. Các ví dụ có thể bao gồm các dự án API của công ty hoặc trực quan hóa các bộ dữ liệu.
- Đóng góp cho các dự án khác: Các đóng góp của bạn sẽ hiển thị trên hồ sơ công khai trên GitHub nếu đáp ứng được danh sách các tiêu chí do GitHub thiết lập và tùy thuộc vào cài đặt quyền riêng tư của người dùng. Ngoài việc hiển thị các sườn kỹ thuật, những đóng góp này cũng có thể thể hiện cam kết đối với mã nguồn mở và được đánh giá cao bởi những người khác cùng chia sẻ cam kết đó. Đối với hầu hết ở cấp sơ cấp và trung cấp, những sự đóng góp đó chiếm một phần rất nhỏ (nếu có) trong hoạt động GitHub của họ.
Profile GitHub của bạn sẽ được đánh giá thông qua những tiêu chí nào:
- Sự đa dạng: Một số dự án sử dụng cùng một công nghệ và các công cụ sẽ kém ấn tượng hơn là thể hiện sự đa dạng trên một bảng công cụ. Sinh viên tốt nghiệp thường có thể có ba hoặc bốn dự án tương tự (thường sử dụng Ruby on Rails). Một cách đơn giản để thêm sự đa dạng vào danh mục GitHub là triển khai cùng một giải pháp bằng cách sử dụng các ngôn ngữ hoặc mô hình khác nhau. Ví dụ như xây dựng một trò chơi bằng Python, viết lại bằng Java.
- Tính đầy đủ: Nhiều ứng cử viên thường có tài khoản GitHub rải rác với một số dự án chưa bao giờ kết thúc. Hầu hết các nhà tuyển dụng thà nhìn thấy một vài repos xuất hiện bóng bẩy hơn hàng chục bản phác thảo cần rất nhiều sự cải tiến.
- Chức năng: Code bạn viết ra có thực sự làm những đúng chức năng?
- Sự dễ đọc: Những nhà tuyển dụng sẽ đánh giá một repo với ý nghĩ rằng đây có thể là code của một đồng nghiệp tương lai. Không ai muốn làm việc với một người viết mã không thể đọc được. Việc xem xét về tính dễ đọc trước khi gửi đi của các repos là điều cần thiết, ngay cả khi code complies hoạt động tốt.
- Tài liệu / thông tin: Một repo không có README đơn giản thực sự là một sự lãng phí cơ hội. Mặc dù code là những gì cuối cùng sẽ được đánh giá, một số giải thích tối thiểu về repo và hướng dẫn sử dụng sẽ là một điểm cộng lớn.
Code portfolio chủ yếu được sử dụng để chứng minh khả năng lập trình cơ bản và sự hiểu biết về các khái niệm cơ bản. Nó cũng có thể phục vụ như một chất xúc tác trong các cuộc phỏng vấn giúp tạo điều kiện cho sự khám phá sâu hơn khả năng kỹ thuật của các ứng viên. Những cuộc trò chuyện này là những gì tạo nên các cuộc phỏng vấn tuyệt vời và cơ hội thảo luận về các chủ đề quen thuộc (repos GitHub của bạn) sẽ thoải mái hơn nhiều so với việc trả lời các câu hỏi kỹ thuật ngẫu nhiên.
GitHub profile chắc chắn không phải là tất cả và cuối cùng khi tìm kiếm việc làm, nhưng rõ ràng đó là một lợi thế giúp trả lời câu hỏi quan trọng “Bạn có thể code không?” bằng cách hiển thị thay vì lời nói.