Lời nói đầu
Sau một bài viết về việc đi làm sớm của sinh viên IT, mình nhận được rất nhiều phản hồi tích cực và trao đổi, hỏi đáp về việc đi làm sớm. Hôm nay mình xin viết một vài hướng dẫn và gợi ý để hỗ trợ thêm cho các bạn sinh viên nếu thực sự mong muốn có nhu cầu này:
Đây là quan điểm, cách làm và kinh nghiệm cá nhân, có thể sai hoặc ko phù hợp với một số bạn nào đó nên cảm phiền không công kích, tranh luận.
1. Chuẩn bị tinh thần
- Đi làm khác hẳn với đi học, do đó trước khi xác định đi làm bạn cần xác định 1 số yếu tố tinh thần như sau:
- Đi làm là làm thật, kết quả thật, ảnh hưởng tới tiền và uy tín (doanh nghiệp, khách hàng), cho nên đi làm sẽ có áp lực và yêu cầu cao
Đi làm sớm các bạn nên xác định tâm thế là “ĐI HỌC” hơn là “ĐI LÀM”, vì nói thật đa phần cái mà các bạn làm ra được là rất ít giá trị trong khi doanh nghiệp và những anh lớn có kinh nghiệm phải mất thời gian và tiền bạc để đào tạo, chỉ dẫn bạn. Xác định tâm thế này, mình khuyên các bạn đừng có kì vọng lương “quá cao”, hoặc mang suy nghĩ “công ty sử dụng nhân sự giá rẻ để kiếm tiền”, nó sẽ rất ảnh hưởng tới việc tiếp thu kiến thức của các bạn, tất nhiên lương cao là tốt, nhưng đừng kỳ vọng quá cao nếu không thật sự đủ trình độ, tự dưng nó làm giảm cơ hội của mình.
Nên có trách nhiệm với công việc. Mình từng làm việc với cực nhiều các bạn sinh viên. Đa phần do các bạn chuẩn bị tinh thần không tốt, không lường được sự vất vả của việc đi làm, nên báo nghỉ sau 2 – 3 tuần đi làm thử. Việc này gây lãng phí tiền công ty (nhận bạn vào 2 tuần chưa làm gì đã nghỉ, phải làm 1 mớ thủ tục nhận/trả máy tính, tiền lương…), chưa kể tạo ra cho các nhà tuyển dụng thái độ “sợ sinh viên”
Xác định để đảm bảo công việc lẫn học tập, bạn sẽ tốn thời gian hơn chỉ học từ 1,2 tới 1,5 lần. Tính đơn giản thế này, học thì 4-6 tiếng, nhưng cả học cả làm sẽ thành 8-10 tiếng. Điều đó đồng nghĩa với việc bạn sẽ ít thời gian chơi bời, nhậu nhẹt hơn. Bạn cũng sẽ cảm thấy lạc lõng với các bạn bè cùng trang lứa (khi mà chúng nó chỉ đi chơi). Hãy xác định tinh thần cho việc đó, nếu bạn bè đi chơi trùng vào lịch đi làm, bạn đủ dũng cảm để từ chối hay chưa??
2. Chuẩn bị kiến thức
Nhiều bạn mặc dù tinh thần tốt, máu đi làm, nhưng khi đi ứng tuyển thì bị từ chối ngay do non kiến thức. Đây cũng là câu hỏi mà mình gặp rất nhiều trong quá trình tương tác với các bạn.
Về kiến thức:
- Kiến thức phỏng vấn sinh viên sẽ nằm trong các kiến thức mà bạn đã học trên ghế nhà trường, không yêu cầu cao hơn, xa hơn đâu. Nhưng vấn đề là bạn “phải nắm tương đối chắc”, chứ “lơ ma lơ mơ” hay biết 1 chút ít thì không ổn
- Trước hết cần xác định con đường lập trình mà bạn theo là con đường nào, rồi rèn các kĩ năng tương ứng. Ví dụ lập trình web, lập trình mobile, frontend hay nhúng…
- Với mỗi con đường mà bạn xác định sẽ theo, mình nghĩ mỗi bạn cần “tự làm gần như hoàn chỉnh 1 ứng dụng demo” trước khi tự đi làm
Các con đường cơ bản:
- Lập trình web frontend: html, css, js, jquery, bootstrap, hiểu thêm về angular, AngularJS, Backbone, Ember, ReactJS, responsive
- Lập trình backend: một ngôn ngữ làm đc backend như asp.net, java, php or python, thao tác đc database như SQL, MySQL
- Lập trình nhúng: C++, Linux command, C++ Compiler, QT Platform
- Lập trình mobile: tùy loại mobile và công nghệ, nếu đơn giản thì Android, nếu phức tạp thì Unity, react, ….
- Một số con đường khác phức tạp hơn nhưng ko đại trà, thông dụng, nếu cần có thể hỏi còn mình ko nêu ra ở đây
Kiến thức nền mà bạn nên có: phần cứng, phần mềm, quy trình phần mềm, mạng máy tính, đặc biệt nên rèn luyện và hiểu Cấu trúc dữ liệu và giải thuật càng cao càng tốt. Với CTDL & giải thuật, yêu cầu bắt buộc hiểu và vận dụng đc queue, stack, danh sách liên kết và các thuật toán sắp xếp, tìm kiếm, khái niệm về độ phức tạp giải thuật. Cao siêu hơn thì biết mấy thuật toán tối ưu, đệ quy, quy hoạch động, nó sẽ giúp ích trong trường hợp bạn làm những sản phẩm có tính tối ưu cao.
Như đã nói ở trên, mỗi con đường đều nên thử tự làm 1 cái demo hoàn chỉnh. Với các con đường cơ bản trên bạn có thể làm demo như thế này:
- Lập trình web: 1 cái website cơ bản có thao tác với database, có đăng nhập/đăng xuất và 1 số thao tác người dùng cơ bản (thêm xóa sửa database), có animation và có thể chạy được trên mobile
- Lập trình mobile: 1 app hay game đơn giản trên mobile
- Lập trình nhúng: 1 app hay game đơn giản trên hệ điều hành linux
Nếu không có thể làm các demo chạy trên windows form hoặc các ứng dụng khác mà bạn thấy thú vị
Lưu ý là 1 sản phẩm/demo tương đối hoàn chỉnh nha. Năm mình đi làm, được nhận phỏng vấn chỉ show ra được demo game “rắn săn mồi” code bằng C++.
3. Lựa chọn công ty
Lựa chọn công ty là 1 bước khá quan trọng. Có 1 số lưu ý:
- Lựa chọn công ty ở gần trường để tiện đi lại.
- Lựa chọn công ty cởi mở, nhiệt tình và có văn hóa mở. Tìm kiếm các công ty có khuynh hướng đào tạo hơn là yêu cầu kết quả
- Lựa chọn công ty và dự án phù hợp với hướng đi lâu dài của mình. Ví dụ muốn làm web thì đừng vào công ty vi mạch :v
4. Phỏng vấn
Về cơ bản hãy viết một cái CV chi tiết và đẹp đẽ. Dù không có thông tin quái gì cả, nhưng nhà tuyển dụng nhìn CV để biết độ “máu” của bạn. Trong CV nên có link chứa demo của bạn.
Khi phỏng vấn, ngoài việc trả lời được kĩ thuật, hãy đặc biệt cho họ thấy sự đam mê, trách nhiệm, quyết tâm vs việc đi làm của bạn. Hời hợt kiểu “đi làm cho vui” thì tạch luôn.
Hãy cố gắng để nhà tuyển dụng thấy bạn có thể phát triển được kĩ năng và đi lâu dài được với họ. Không ai muốn tuyển một ông mà 2-3 tháng sau thì bay đi chỗ khác cả, đúng không? Có nghĩa là, nếu không nhận lời công ty thì thôi, nếu nhận lời làm việc thì hãy làm cho nghiêm túc.
5. Sắp xếp thời gian vừa học vừa làm
Do vừa học vừa làm, tổng thời gian bạn bỏ ra chắc chắn là nhiều hơn. Hãy luôn đảm bảo bạn ở trên công ty lớn hơn 50% so với một nhân viên chính thức Nhân viên chính thức 30 tiếng/tuần thì mình là 15 tiếng, công việc nhận về mình thì đảm bảo hoàn thành trên mức 80%. Hãy nghĩ kĩ trước khi code, code thêm ở nhà để đảm bảo công việc.
Không khuyên bạn nào bỏ môn cả, nhưng nên sắp xếp công việc cho phù hợp. Bạn dành 50% cho việc lên công ty ngồi để trao đổi với team, 10% cho đi lại và 40% cho việc học hoặc điều chỉnh dao động xung quanh.
Thông báo cho team mình và quản lý biết thời gian đi học của mình để team có kế hoạch phù hợp (ví dụ buổi họp cả team thì tránh lịch của mình). Đảm bảo không để việc học ảnh hưởng tới deadline công việc đã được giao (nhận việc đúng và vừa sức, làm bù lúc rảnh để cover)
6. Tìm việc ở đâu và như thế nào
Có rất nhiều cơ hội, nhưng bạn lại không biết. Một số cách để tìm việc như sau:
- Thông qua người thân quen, bạn bè, anh em, chú bác đang làm ở công ty phần mềm xem công ty họ có nhận sinh viên không
- Thông qua các fanpage của các hội nhóm lập trình, công ty phần mềm: rất nhiều công ty đăng tuyển thực tập sinh, hãy theo dõi và để ý các tin tức này
- Tìm kiếm cơ hội trên mạng hoặc các trang tìm việc: thử gõ keyword rồi tìm kiếm, liên hệ và apply cv thôi
Câu chuyện cá nhân
Mình kể lại câu chuyện cá nhân của mình cách đây 12 năm, thề là không thêm thắt gì
Năm đó mình đang học năm 2, vừa học xong môn C++ hướng đối tượng. Mình tự học và làm đc game rắn săn mồi (Vẽ giao diện đồ họa bằng cách vẽ từng pixel)
Nhờ 1 anh cựu sinh viên hơn mình 7 tuổi (quen được trên forum của trường), mình có hỏi và thể hiện mong muốn đi làm. Sau vài lần chát chit (thời đó là yahoo), anh giới thiệu mình lên FPT phỏng vấn
Mình còn nhớ vài câu hỏi phỏng vấn:
- Tại sao em lại thích đi làm sớm ? (vì thích đi làm học kiến thức)
- Tại sao em lại chọn FPT? (do giới thiệu)
- Kiến thức anh ý hỏi mình 1 bài toán về đếm số lượng tam giác trên mặt phẳng, hỏi 1 vài kiến thức về môn C++ như cú pháp, kết quả chạy, ….
- Mình show cho anh 1 cái demo mình làm (bằng ảnh thôi), thời đó game ko chạy đc trên điện thoại cùng cách làm
Mình được nhận vào làm sau 4 ngày ở vị trí thực tập và code một module bằng QT (một nền tảng lập trình giao diện trên Linux). Sau 4 tháng, mình được assign vào làm dự án thật là code driver cho máy in trên 6 hệ điều hành Linux khác nhau.
Chia sẻ câu chuyện để bạn thấy là, nếu bạn đủ đam mê, quyết tâm cùng với việc chuẩn bị đủ kiến thức cần thiết, bạn chắc chắn sẽ tìm được công việc mà bạn mong muốn.
Trích: CodeLearn – Nền tảng học lập trình online và chia sẻ kiến thức miễn phí