Tình cờ code dạo trên Upwork
Giới thiệu
Thật tình đây không phải lần đầu tiên mình kiếm tiền, nhưng đây là lần đầu tiên kiếm được tiền từ những dòng code mình tự viết ra. Cảm xúc không thể tốt hơn :). Hy vọng bài viết sẽ giúp ích cho các bạn sinh viên có ý định code dạo.
Lịch sử code dạo
Hồi lúc vừa hết năm nhất là mình có mò cách tạo ứng dụng di động. Lúc đó cũng trẻ trâu muốn tạo gì đó vừa nhanh, dễ mà lại có tiền. Nên mình toàn kiếm mấy từ khóa kiểu: “make app without coding” thôi. Cũng tình cờ biết đến framework Configure.IT. Giới thiệu ngắn ngọn là với platform này, bạn sẽ trở thành full stack developer luôn, khỏi code gì hết, chỉ kéo thả.
Mình cũng làm được vài app và có submit app lên Google Play Store. Lúc đó cũng máu lắm, mua luôn Apple Developer Account, với tư tưởng sẽ là Nguyễn Hà Đông thứ hai của Việt Nam. Nhưng trình độ có hạn, đến giờ developer account đã hết hạn mà vẫn chưa có app nào. Có dịp mình sẽ kể chuyện này sau nha.
Lần đầu thất bại
Quay lại vấn đề làm freelancer, lần đầu tiên mình trúng thầu một dự án là làm App Android trên Fiverr hồi kỳ hai năm hai - đầu năm 2016. App này kiểu như mạng xã hội cho các nhà nghỉ, khách sạn vậy. Sơ qua về Fiverr, nó là trang freelancer đủ thể loại từ thiết kế logo, viết blog, code,vv với mức giá khá rẻ chỉ từ $5.
Xui cho mình là với app phức tạp như vậy còn trúng ông khách bên Congo ngân sách có $270. Mình làm giữa chừng cái khó và nản nên bỏ cuộc, mình nhắn tin xin lỗi ổng. Ổng còn không chịu nói đòi kiện lên Fiverr, bắt mình bồi thường gấp 10 lần. Đúng là ảo tưởng, ghét quá mình xóa account trên Fiverr luôn.
Đúng là kiếm được đồng tiền code dạo đâu có dễ.
Rút được kinh nghiệm xương máu, mình quyết tâm từ bỏ mấy cái platform drag and drop này. Những platform này tuy dễ làm nhưng khó phát triển trong tương lại được. Tháng 8/2016, gấu mình có tặng cho mình một con Macbook và tình yêu của mình với Swift bắt đầu từ đây
Tình cờ code dạo
Ngày 26 Tết mình check mail thì thấy có thông báo về invitation của Upwork về một dự án IOS.
Upwork là gì?
Trên Upwork thì khi khách hàng đăng dự án, freelancer có thể vào xin làm dự án đó hay còn gọi là gửi Proposal cho khách hàng. Ví dụ nha, ông khách đăng dự án là:
Một dữ án mẫu
Bạn có thể gửi Proposal cho khách để chứng minh là mình làm được. Giống mình vô chém gió nè, mà hem được:
Chém gió để nhận dự án
Xong rồi, ông khách thấy hợp ý với bạn thì trao đổi thêm rồi chốt deal là bạn đã trúng thầu dự án đó.
Còn trường hợp thứ hai để nhận dự án là giống mình. Mình nhận được nhận invitation thẳng từ ông khách luôn. Kiểu như khách thấy mình đẹp trai hoặc thấy thích porfolio của mình thì họ sẽ mời. Mình nghĩ profile mình có làm cái app Gia Sư Việt rồi nên nhận được invitation lần này. Sau một hồi trao đổi thì mình cũng nhận được dự án này.
Kỹ thuật
Nói sơ qua về mặc kĩ thuật xíu nha. Anh khách hàng của mình cũng rất chuyên nghiệp, có chuẩn bị sẵn bản prototype đầy đủ về tính năng cần luôn. Cơ bản thì app cần + Quản lý users: Đăng ký, đăng nhập,vv + Người dùng trả lời các câu hỏi, đặc biệt là câu hỏi ở dạng rẻ nhánh ra, tức là user khi trả lời câu 1A sẽ ra câu khác, chọn câu 1B sẽ ra câu khác. + App sẽ gửi thông tin này lên server.
Ban đầu mình cũng định tổ chức dữ liệu theo dạng cây. Tuy nhiên mình chuyển qua dùng Firebase. Thứ nhất là Firebase mình cũng có nghiên cứu từ lúc thi hackathon; thứ hai cũng đang làm một side project xài Firebase; thứ ba là Firebase hỗ trợ dữ liệu dạng node parent-child đúng như yêu cầu.
Tiếp theo mình thuyết phục anh khách là nên xài Firebase vì sẽ dễ thêm, edit dữ liệu hơn, mình hứa sẽ làm video hướng dẫn sử dụng đàng hoàng. Anh khách cũng đồng ý.
Tiếp theo mình code, cũng có thêm bớt vài tính năng. Sau 3 ngày bàn giao và nhận tiền. Tuy nhiên, ngay mùng một Tết, app có bug, vì thế mình cũng Teamviewer hỗ trợ cho anh khách. Nói chung anh khách cũng hài lòng, mình cũng hài lòng. Cảm xúc không thể tốt hơn
Sinh viên cần gì để làm freelancer ?
Nhìn chung thì việc nhận một project đối với sinh viên là hoàn toàn có thể. Mình biết có nhiều bạn đi làm part time lập trình từ năm hai rồi.
Các kĩ năng bạn cần có đó là Kỹ thuật lập trình, Hướng đối tượng, một ít giải thuật, cơ sở dữ liệu, và biết một platform cụ thể để hành nghề, không ai mướn bạn để giải bài tập trên trường đâu. Platform này có thể là Rails, Django, ASP.NET, Android, IOS,vv Ví dụ trường hợp của mình là IOS.
Tiếp theo là bạn phải có kiến xây dựng project thực tế với platform của mình. Thường thì đa số chúng ta thiếu cái này. Ví dụ ở trường làm app danh sách món ăn, todo list, hay game mini là đã qua môn được rồi. Project thực tế thì khác, chúng là những thứ xài được trong thực tế. Kinh nghiệm làm project thực tế rất quan trọng bởi vì lúc làm cho khách hàng bạn cần phải fix bug, nâng cấp tính năng nữa.
Một kỹ năng cần có nữa là tiếng Anh. Các trang freelancer nước ngoài nhiều việc hơn, thu nhập cũng tốt hơn các trang Việt Nam. Bạn cần phải chat tiếng Anh nhanh, đọc hiểu tốt, giao tiếp được thì càng tốt. Không ông khách nào đợi bạn Google dịch khi nói chuyện cả, cũng không ông khách nào hài lòng nếu bạn không biết thuật ngữ chuyên ngành để giải thích.
Làm sao để có các kĩ năng thực tế:
Đó là làm side projects . Bạn có thể clone lại những sản phẩm nổi tiếng như làm một app về mạng xã hội như Facebook, web chat, live stream như Bigo chẳng hạn.
Ngoài ra bạn còn có thể học thêm trên Udemy. Udemy là một site rất hay, đa số khóa học đều theo hướng top-down, giá lại rẻ chỉ từ $10. Nếu bạn đã có nền tảng thì việc theo học platform rất dễ. Các hot skill như web, mobile, design đều có trên này.
Góc suy ngẫm
Trước giờ mình cũng không có ý định làm freelancer nhưng tình cờ dịp này làm nên cũng có vài suy nghĩ.
Nếu bạn lướt tìm freelancer trên Upwork sẽ thấy khá nhiều công ty outsource của Việt Nam trên này. Thì ra họ cũng lên đây nhận dự án. Biết đau sau này, bạn vào công ty làm, bạn về nhà làm thêm trên Upwork lại cùng đấu thầu chung một dự án với công ty mình thì sao. Nói đùa vậy thôi, chứ công ty lớn người ta chỉ nhận dự án lớn thôi.
Thứ hai là bạn mất 10% phí cho Upwork. Một con số đáng suy ngẫm.
Thứ ba là ông khách hàng của mình dùng source code mình code để clone ra bán lại cho khách của ông, lời gấp mấy chục lần luôn. Đó là lý do mình thích được làm Product hơn. Vừa có tiền lại có tiếng. Nhưng điều quan trọng nhất là cảm giác làm product nó rất khác, là cảm giác được sở hữu. Thử nghĩ code bạn viết ra, được hàng ngàn người dùng, cảm xúc không thể tốt hơn.
Với sinh viên như mình, làm outsource khó một thì product khó mười. Phải đọc nhiều sách, học hỏi nhiều nguồn, nghiên cứu đủ thứ từ kiểm tra ý tưởng, nhu cầu của khách hàng, thị trường; đến các vấn đề kĩ thuật như UI/UX, kiến trúc phần mềm,
Cái khó nhất là cảm giác cô đơn, không tìm được đồng đội cùng chí hướng. Ngay cả bản thân mình còn không biết chắc chắn làm app này có thành công hay không thì làm sao thuyết phục người khác về team mình.
Thật đáng suy ngẫm!!!