Tôi biết lập trình nhưng không biết lập trình cái gì?
Sau thời gian 3 năm học lập trình thì mình nhận thấy đa số sinh viên/lập trình viên đều gặp phải vấn đề này. Tức là nếu đưa sẵn một yêu cầu, mô tả phần mềm rõ ràng thì có thể làm được, còn tự nghĩ ra rồi làm một phần mềm hoàn chỉnh thì thua. Đâu là nguyên nhân của việc này?
Bạn nào muốn theo hướng product, hay có ước mơ làm phần mềm cho hàng triệu người dùng thì cũng nên quan tâm. Để chi?
Lấy Mark Zuckerberg làm ví dụ, trước khi tạo Facebook, Mark đã làm ra những thứ sau:
- ZuckNet: Cha của Mark làm bác sĩ nha khoa và có mở phòng khám ở nhà, Mark với chị gái ở tầng trên. Thấy việc đi lên đi xuống bất tiện, Mark làm app để cả nhà có thể chat với nhau ( Lúc này Mark 11 tuổi, instant message thời đó chưa phát triển ).
- Synapse Media Player: app dùng machine learing dựa vào list nhạc của user để recommend bài hát. App này được Microsoft đề nghị mua lại nhưng Mark không bán.
- CourseMatch: Lúc này Mark vô năm 2 tại Harvard, thấy việc đăng ký học phần nhàm chán quá nên làm CourseMatch – app xem môn học này có ai đăng ký rồi để học chung.
- FaceMash: Hiện 2 bức ảnh sinh viên trong trường, user click để chọn ai hot hơn.
Ta có thể thấy sự ra đời của Facebook dựa trên nền tảng của ZuckNet, CourseMatch và FaceMash. Không ai tự nhiên đùng một cái xây dựng được phần mềm triệu người dùng được.
Vậy đâu là nguyên nhân biết lập trình nhưng không biết lập trình cái gì?
Cách học trên trường?
Như bạn biết, các môn trên trường sẽ có đồ án, mà đồ án thì thường thầy cô quy định một danh sách rồi sinh viên tự chọn. Học hết môn này đến môn khác đều có người chọn sẵn cho mình rồi nên thành ra cũng không cần nghĩ ngợi gì nữa. Mà đồ án thì làm mấy phần mềm khá ‘xa lạ’, như mình có bao giờ vào nhà hàng, khách sạn đâu mà làm quản lý nhà hàng, khách sạn.
Tâm lý sinh viên thì cứ làm theo ý thầy cô bảo đảm sẽ điểm cao nên cũng không quan tâm là làm cái gì. Nhiều bạn còn đem một đồ án nộp 3,4 môn luôn cũng chẳng sao.
Mà cách tốt nhất để giết đi sự sáng tạo là chấp nhận hoàn cảnh (accepting the status quo). Ai biểu gì làm đó hem cần quan tâm. Học lập trình di động mà thấy cả lớp làm Android nên cũng làm theo, dù mình có Macbook và thích IOS thì thua. Nếu có thể làm phần mềm mình thích mà lại phù hợp với môn học tại sao không nói với giáo viên để thương lượng. Sẵn quảng cáo luôn, trường mình rất thoáng trong khoảng này, đồ án thể hiện được khả năng của bạn là được , không có rập khuôn.
Chưa đủ trình
Nhiều bạn có những ý tưởng táo bạo hay lắm nhưng chưa bắt tay vào làm vì thấy bản thân còn ‘gà’ ( chưa đủ trình )
Đa số ứng dụng bây giờ theo hướng social, cần kết nối user với nhau nên nhiều bạn nghĩ là phải là full stack biết hết từ frontend backend thì mới có thể làm được phần mềm hoàn chỉnh.
Nhưng với công nghệ hiện nay thì khác rồi. Bạn không biết backend thì có thể xài BaaS (Backend as a Service) như Firebase, Graph.cool. Còn design xấu quá thì xài mấy open source library cho đẹp.
Tóm lại là quan trọng bạn có muốn làm không thôi. Chưa biết thì có thể học.
If you really want to do something, you’ll find a way. If you don’t, you’ll find an excuse
Không tìm hiểu kiến thức ngoài chuyên ngành
IT là ngành rất hay, nhưng nếu kết hợp với ngành khác thì xem như vô đối.
IT + hotel = AirBnB.
IT + transportation = Uber
IT + car = Tesla
IT + language = Rosetta Stone
Ngoài kiến thức chuyên môn ra, lập trình viên nên tìm hiểu thêm về Kinh tế, Tâm lý học nữa sẽ giúp ích rất nhiều.
Học kinh tế để biết product mình build có giá trị gì không. Học Tâm lý học để hiểu user hơn từ đó xây dựng những tính năng cần thiết. Không phải ngẫu nhiên mà những tính năng như Recommendation (gợi ý kết bạn, gợi ý video youtube, gợi ý mua hàng, có thể bạn sẽ thích), nút like, reaction, hashtag, mention people, notification, gợi ý tìm kiếm, vv lại có sức ảnh hưởng lớn như vậy.
Kết luận
Đừng cố gắng phải nghĩ ra ý tưởng tuyệt vời, hoàn hảo hay thay đổi thế giới gì cả. Viết phần mềm mà bạn muốn dùng hoặc ít nhất là bạn cảm thấy sẽ có người dùng.
Còn bạn, có bao giờ bạn trong hoàn cảnh “không biết lập trình cái gì?” chưa. Bạn giải quyết như thế nào? Bạn sẽ khuyên người khác như thế nào?
Nguồn: niviki.com