Tôi biết lập trình nhưng không biết lập trình cái gì?
Chia sẻ những khó khăn và giải pháp khi mới học lập trình và chưa biết nên làm gì tiếp theo, giúp người đọc định hướng con đường học tập và phát triển kỹ năng lập trình.

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 ( UIT ) 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?
Related Posts
Discover more content you might enjoy

Vibe Coding - Code lại blog từ đầu và rebrand thành khoa.blog
Chia sẻ chi tiết quá trình build lại blog từ đầu với vibe coding, từ việc chuyển đổi dữ liệu đến việc triển khai các tính năng mới, giúp người đọc hiểu rõ hơn về quá trình phát triển blog cá nhân.

Tối giản blog với static website, bye Wordpress!
Hướng dẫn chi tiết cách chuyển đổi blog từ WordPress sang static website để tối ưu hiệu suất và tập trung vào việc viết nội dung, giúp người viết blog tiết kiệm thời gian và chi phí, từ việc lựa chọn nền tảng đến việc triển khai và duy trì blog hiệu quả.

Trước khi trở thành cao thủ, các developer viết gì?
Chia sẻ kinh nghiệm và bài học từ các developer nổi tiếng về việc viết blog và chia sẻ kiến thức, giúp người đọc hiểu rõ hơn về cách xây dựng thương hiệu cá nhân và phát triển kỹ năng trong ngành công nghệ thông qua việc viết blog.

Trải nghiệm lần đầu tạo một khóa học lập trình online trên Udemy.com
Chia sẻ trải nghiệm thực tế và bài học quý giá khi tạo khóa học lập trình trực tuyến trên Udemy, từ quá trình chuẩn bị nội dung đến việc quay video và tương tác với học viên, giúp người đọc hiểu rõ hơn về quá trình tạo khóa học online và những thách thức cần vượt qua.

Bitcoin Domain (.btc) là gì? Cách mua như thế nào?
Tìm hiểu về Bitcoin Domain (.btc) và cách mua domain này

Axie và Coin98 thành công
Góc nhìn thẳng thắn về thành công của Axie và Coin98 - hai dự án blockchain Việt Nam đã gọi vốn triệu đô và xây dựng hệ sinh thái rộng lớn. Bài viết phản biện những quan điểm tiêu cực và đánh giá đúng giá trị của những người tiên phong.