“Những sản phẩm bạn làm được ra mới là thước đo chính xác cho năng lực của bạn”

AMA (Ask Me Anything) là 1 sự kiện Q&A – Question & Answer (Hỏi đáp trực tiếp) với các chuyên gia hàng đầu trong ngành Tech diễn ra vào mỗi chiều thứ 6 hằng tuần trên fanpage của TopDev.

Những ngày cuối năm tuy bận rộn là thế những các diễn giả vẫn rất nhiệt tình nhận lời tham gia chương trình. Và 1 trong những gương mặt tiêu biểu chính là anh Vũ Tuấn Phong – Lead Full-stack Developer, Bravebits.

Trước khi dừng chân tại ngôi nhà Bravebits anh đã từng làm Architect tại Kume Design Asia. Tháng 10/2011 anh thành lập Jam.vn, một trang web chuyên về âm nhạc lần đầu tiên tại Việt Nam sử dụng công nghệ web 2.0. Đến năm 2013 anh đảm nhiệm chức vụ Design Consultant tại Not A Basement Studio.

Lĩnh vực chuyên môn mà anh Phong sẽ trao đổi tại AMA là: FullStack Web app Development, NodeJS, ReactJS, BackboneJS, UI & UX Design, Server Infrastructure.

Q: Anh Phong ơi Anh cho em hỏi là cần phải học bao lâu để trở thành UI/UX Desginer chuyên nghiệp. Em cảm ơn anh nhiều ạ

A: Để trả lời cho câu hỏi của bạn thì nó sẽ là 1 con đường rất dài và bạn sẽ phải đồng hành với nó. Học là thứ mà bạn phải làm hằng ngày, bạn cố gắng nắm bắt đc nhiều kiến thức mới mỗi ngày. Nhưng cái chính là bạn phải dùng những kiến thức bạn học được để làm ra được những sản phẩm thực tế hữu ích. Những sản phẩm bạn làm đc ra mới là thước đo chính xác cho năng lực của bạn. Còn đâu kiến thức dù nhiều đến đâu cung ko có tí giá trị nào.

Q: Anh ơi em muốn hỏi là những tố chất quan trọng nào để một Developer có thể đảm nhận một vị trí Full Stack Web app ạ em cảm ơn Anh ạ

A: Khi bạn tự tin nói “OK” với bất cứ công việc nào được giao, kể cả những việc bạn chưa làm bao giờ. Chắc chỉ thế là đủ!

Q: Anh ơi anh có thể chia sẻ về các resource hữu ích cho các bạn Developer muốn trở thành Full Stack Developer. Em cảm ơn anh nhiều ạ.

A: Resource quan trọng nhất là kinh nghiệm và chỉ có đc khi mình làm. Vậy mình khuyên là nên làm nhiều vào, nếu có thời gian. Tự đưa ra những project nhỏ và tự tìm cách giải quyết. Trong lúc làm bạn sẽ biết mình cần học j. Nếu bí thì có thể giúp bạn bè, người quen vào công việc thực tế. .. thực hành lý thuyết phải đi song song.

Q: Anh Phong ơi, tầm quan trọng của UI/UX trong việc lập trình hiện nay là thế nào ạ? Do em cũng muốn học về UX nhưng không biết có cần thiết lắm không.

A: Comment ở dưới sẽ trả lời câu hỏi của bạn. Bổ sung thêm về UX, theo mình thì UX cực kỳ quan trọng tới thành công của 1 sản phản, và ai trong team cũng dev hay design đi nữa, cũng phải có kiến thức căn bản về UX. Nó UX ko nhưng giúp cho trải nghiệm người dung tốt hơn mà còn chính trải nghiệm của bạn để cho flow dev thông minh hơn, đơn giản hơn và sáng tạo hơn.

Q: Em chào anh Phong. Theo em được biết anh là 1 bậc thầy về React ở BB, vậy hi vọng anh có thể tiết lộ cho em biết các dự án nào anh đã sử dụng react, và anh đánh giá kết quả của những dự án đó như thế nào? Em xin cảm ơn anh.

A: Chào bạn. Thực tế mình cùng mới bắt đầu với ReactJS khoảng hơn nửa năm trc. Và cũng là project đầu tiên mình build bằng ReactJS. Nói chung để hiểu và dùng đc React không mất khá nhiều thời gian, nhưng để master đc React là một quảng đường rất dài và gian nan. Tuy nhiên kết quả cho ra hơn cả mình mong đợi.

Q: vậy theo anh thấy ReactJs sẽ hiệu quả nhất trong những dự án nào và không nên dùng trong những dự án nào?

A: ReactJS phù hợp cho projects lớn và quy mô 1 chút với team nhiều người, và hiển thị nhiều dâta. ReactJS rất dễ đc chia nhỏ và khá chặt chẽ. Tuy nhiên tránh dùng ReactJS vào projects nặng animation + looping vì React rất dễ bị mất kiểm soát ở khâu update trong render chain và khó debug ở đoạn này. Mình đã thử dùng react làm app điều khiển máy bay và ko tốt chút nào.

Q: Chào anh Phong, anh cho em hỏi lập trình viên thuần code có cần quan tâm đến UI/UX hay không vậy anh ?

A: Mình nghĩ 1 lâp trình viên nên có kiến thức về design. Nếu hiểu sâu được càng tốt bởi vì nó không chỉ giúp bạn làm nhanh hơn đẹp hơn. Hiểu biết về design còn là chìa khoá mở ra những giải pháp tối ưu hơn cho 1 vấn đề của code. Ví dụ thực tế luôn. Bạn vào trang (http://www.woorockets.com/) và đầu bài là tên lửa phun khói làm sao phải thật như trong after effect, nhưng lại phải viết bằng javascript. Khi nhận đc đề bài này thì lúc đầu cũng hơi lo vì làm trong 2 ngày. Nhưng nhớ lại là hồi xua mình có làm rất nhiều 3D modeling & rendering vì mình từ desgin lên mà. Thì ngay lập tức những kiến thức về particles system, và physics lập tức trở về đúng là giải pháp tốt luôn và resolve issue trong 2 ngày.

Q: Chào anh Phong, em thấy anh biết khá nhiều framework vậy thì đâu là framework mà anh thường sử dụng và thấy nhiều ưu điểm nhất ạ. em cảm ơn anh nhé

A: Mỗi framework nó được làm ra để giải quyết những vấn đề của riêng nó. Cá nhân mình đã đùng thử 1 vài framework, thì mình thấy cái nào cũng có ưu điêm hết, nhưng để thực sự giải quyết đầu bài của bạn 1 cách triệt để, thì vẫn phải là bạn người dev. Trước mình thích Backbone.JS, vì đơn giản là nó nhẹ và có khá đầy đủ những thứ mình cần cho webapp độc lập. Nhưng khi làm app cho Joomla thì mình mới thấy nó không đáp ứng đươc. Ngay cả React bh cũng vậy.

Để thực sự làm chủ đc nó bạn vẫn cần phải viết khá nhiều plugins, đôi hi phải hack trực tiếp vào framework mình đang dùng để đạt được cái mình muốn.

Đây cũng là 1 điểm yếu của React bởi vì mình không thể can thiệp nhiều vào quá trình render and update view của nó. Cũng dễ hiểu thôi bởi vì React khá chặt chẽ và bắt dev phải tuân thủ theo đúng quy trình của React nếu muốn chọc vào bạn phải hiểu rất sâu về nó.

Q: thật sự em đang rất thích React, tuy nhiên những tài liệu hiện tại em đã đọc không thực sự thiết thực vậy anh có thể giới thiệu em một tài liệu mà anh thấy hay nhất được không anh. Nha anh

A: chỉ 2 nơi mà mình thường xuyên đọc là source code và developer docs.

Q: Em chào anh, em tò mò không biết môi trường làm việc ở BB như thế nào ạ, và anh có dự định gắn bó lâu dài ở đó không anh?

A: Mình đang lead 1 project chủ chốt ở BB và đang trong kế hoạch cho những projects tương lai. Thế nên chắc là sẽ còn gắn bó lâu lâu. Môi trường làm việc ở đây như gia đình vậy, không phân biệt sếp hay nhân viên, mọi ý kiến đều đc lắng nghe, mọi ý tưởng đều được tôn trọng …. Hiện tại team cũng đang chiêu mộ anh em đam mê mảng này để có thể mở rộng hơn cho ra nhiều những ý tưởng hay hơn nữa.

Q: Vậy tại sao anh quyết định trở thành fullstack webapp developer mà không phải chuyên sâu về một mảng nào đó ạ?

A: Mình muốn tạo ra được nhiều sản phẩm hay, và cũng nung nấu nhiều ý tưởng muốn được thực hiện. Kiến thức của mình bây giờ hoàn toàn không do mình dự đoán trước , mình chưa bao giờ nghĩ đến việc trở thanh 1 full stack developer, tuy nhiên làm công việc mình dam mệ và đi đung con đường mình hướng tới mang tới cho mình tất cả kiến thức và kỹ năng mình có đc hom nay.

Q: Anh Phong ơi ngoài thời gian làm việc tại BB anh có nhận thêm project ở ngoài không anh vì em thấy anh làm fullstack ạ

A: Mình hiện tại đang full-time tại BB và dành hầu hết thời gian vào các dự án của BB. Tuy nhiên trước kia mình cũng đã từng thực hành tại nhiều mảng khác nhau như iOS Apps, System Admin và Design. Tuy nhiên ngoài công việc căng thẳng ở cty, thì mình có 1 thú vui đo là chơi Drone. 1 Năm vừa rùi nghiên cứu và nghịch ngơm, thì cũng rút ra đc rất nhiều kiên thức cũng như thực hành thực tế, mà chính xác là làm mạch, nạp code cho MicroChips, C++, MobileApp để điều khiển, Unit testing và vo số skill khác nữa.

Q: Vậy em bên lập trình java nhưng em thích cả việc tổ chức sự kiện thì anh nghĩ em nên đi tìm hiểu về tổ chức sự kiện để sau này có thể tạo event cho anh em lập trình giao lưu với nhau hay là cứ chuyên tâm học code trước ạ

A: Hoặc em có thể tổ chức events j đó cho anh em có thể được ngồi code cùng nhau. Có phải e vừa học code vừa tổ chức events

Q: Anh ơi Anh cho em hỏi là sự khác biệt giữa React và các framework Js khác như Angular, Ember, Backbone là gì? Em cảm ơn anh ạ.

A: Mình ko có câu trả lời cho câu hỏi này. Mình nghĩ là người làm nên những thư viện này, mục đích của hộ không phải để mọi người đem ra so sánh!! mỗi thư viện đc làm ra để giải quyết 1 vấn đề cụ thể nào đó theo cách nghĩ của người làm. Thế neen mình hay có 1 thói quen là tự đưa ra 1 đầu bài của mình rùi dùng các thử viện khác nhau để đưa ra kết qua giống nhau. Làm như vậy bạn sẽ hiểu rõ hơn cái nào phù hợp với công việc của bạn. Nếu như kết quả như nhau, thì bạn học được thêm nhiều cách tư duy để giải quyết 1 vấn đề.

Một lần nữa, AMA rất cảm ơn anh Phong đã trả lời nhiệt tình rất nhiều câu hỏi của các bạn trẻ yêu thích công nghệ và lập trình. Bạn vẫn còn thắc mắc muốn được giải đáp? Đợi đến thứ 6 tuần sau, 13/1 để xem nhân tố bí ẩn lộ diện tiếp theo là ai nhé!

Xem các vị trí tuyển dụng lập trình IT tại đây