Coding and problem solving

Sau một thời gian coding và đi làm thì mình chợt nhận ra nhiều thứ mà trước đây lúc còn ngáo ngờ vẫn hay ngộ nhận.

Nghe nói đến IT, lập trình viên, developer hay software engineer… và còn nhiều cụm từ khác làm người ta nghĩ đến những dòng code, những thuật toán phức tạp và rất nhiều thuật toán gì đó. Điều này đúng nhưng còn nhiều điều thú vị khác mà càng làm lâu ta sẽ càng thấy.

Mỗi khi đi làm làm thì ta chỉ chăm chăm code cho hay, cho đẹp. Có nhiều người mới ra trường thì chỉ code cái mình thích: tui chỉ code backend hay tui chỉ code frontend. Vô tình ta đánh mất cơ hội tìm hiểu mọi mặt của ngành phần mềm nói riêng.

Thời gian đầu khi mới vào nghề là cơ hội và thời điểm tốt nhất để bạn học mọi thứ một cách tổng quan.

Bạn có thể tập tành HTML, CSS… master Javascript hay học thêm Ruby, Nodejs, Python cho backend. Thậm chí hãy thử code app bằng React Native or Flutter nếu bạn chỉ là tay mơ trong lập trình mobile. Tất cả những gì bạn học và làm trong thời điểm này không bao giờ vô ích. Sau này có thể bạn chỉ chuyên Backend nhưng do bạn có kiến thức tổng quan, bạn hiểu cách làm việc của Front-end của Mobile thì há phải chăng bạn có thể làm chủ flow hệ thống bạn đang thiết kế và quản lí.

Qua khoảng thời gian trẻ trâu bay nhảy hết công nghệ này đến công nghệ khác thì cũng đến lúc bạn quan tâm đến những bài toán thực tế chứ không phải là những dòng code bạn đang code hàng ngày. Bạn sẽ nhận ra bạn có thể đã làm chức năng login trong hàng tá ngôn ngữ và framework khác nhau nhưng flow working của login thì chỉ có một. Đó là cái bạn cần nắm. Nếu bạn không hiểu flow của login thì dù bạn dùng ngôn ngữ nào thì bạn vẫn không biết implement nó như thế nào.

Nếu bạn quan tâm tới cách giải quyết vấn đề, bạn cố gắng tìm ra giải pháp tối ưu thì khi coding nó dễ hơn nhiều, đơn giản chỉ là bạn sẽ tìm kiếm các tool trong stack công nghệ của bạn để giúp bạn handle logic bạn đã vạch ra.

Nói đến đây mình mới nhớ lại hồi xưa mình cũng ngây thơ. Có lần khi được giao làm chức năng login với ruby mình sẽ lên mạng và search implement login in ruby. Đó là thời điểm mà mình luôn nghĩ về ngôn ngữ mình đang xài, luôn nghĩ cách để giải quyết vấn đề bằng ngôn ngữ mình code. Mà thực tế thì nếu mình biết login có những logic gì thì tự nhiên lúc đó mình ánh xạ qua ngôn ngữ lâp trình để đáp ứng logic.

Thế nên bản thân mình nghĩ điều thú vị nhất của ngành phần mềm cũng như tất cả các ngành khác có thể đó là bạn tìm ra một giải pháp hay cho một vấn đề thực tế.

Cuộc sống mà, đó là một list các vấn đề cần giải quyết. Mà developer thì dùng code để giải quyết nó.

Bạn cứ code đi rồi một ngày bạn thấy mình suy nghĩ logic hơn. Giải quyết vấn đề tốt hơn

—- Reference weekend reading

  • https://telegram.org/blog/400-million

  • http://highscalability.com/blog/2013/4/15/scaling-pinterest-from-0-to-10s-of-billions-of-page-views-a.html

Tagged with dev