Chuyện chàng phun tắc Developer

Anh Nhật Hoàng Codeaholiguy, còn được gọi tận thương là Hoàng Hô.  Không chỉ là một bờ lốc gơ, anh còn là diễn giả kiêm streamer được mến mộ (Điểm hình là live stream hướng dẫn Git & Github với gần 20k view và hàng nghìn like từ nhiều trang). Hãy cùng lắng nghe những chia sẻ về con đường trở thành FullStack Developer cùng những điều hay ho khi làm việc tại công ty startup từ anh Hoàng nhé!fullstack developer.png

Như mình đã nói, hiện tại mình đang là Software Engineer cho Kobiton, và đóng vai trò là Team Leader trong team. Đầu tiên mình sẽ trả lời câu hỏi làm trong công ty startup thì có gì vui không nhé.

Mình đã làm việc qua nhiều công ty từ outsourcing cho đến công ty làm sản phẩm, với nhiều vị trí khác nhau. Điều mình trải nghiệm được đó là tất cả lý thuyết chỉ mang tính tương đối, khi làm software chúng ta cần phải  hướng đến thực tế hơn là làm những thứ giống như sách vở. Ví dụ như phải quan tâm đến việc người dùng sử dụng một chức năng như thế nào, có hữu ích không, thay vì optimze code chạy cho thật nhanh, thật phức tạp, đúng với design pattern nhưng không ai xài, hay không ai có thể xài.

Và cũng chính vì vậy mà mình thích làm việc trong môi trường làm sản phẩm, nhất là với những công ty startup bởi vì ở đó mình sẽ có nhiều ownership hơn, tức là có cơ hội đưa ra quyết định cũng như có ảnh hưởng lên các quyết định nhiều hơn, ngoài ra đó còn là môi trường mà bản thân phải tự làm hầu hết mọi thứ.

Từ đó mình phải tự trau truốt bản thân, học nhiều hơn, quyết định kỹ càng hơn để hoàn thiện mọi thứ một cách tốt nhất vì mỗi thứ chúng ta làm ra đều có ảnh hưởng rất lớn, và chúng ta phải chịu trách nhiệm cho những thứ chúng ta đã làm, đó cũng là cơ hội tốt để rèn luyện bản thân trở thành full stack developer.

Bây giờ mình sẽ nói về Kobiton nhé! Kobiton là một startup về mobile device cloud platform, giúp chúng ta có thể test một website, một ứng dụng dễ dàng hơn trên nhiều thiết bị khác nhau như Samsung Galaxy S8, hay iPhone 7 Plus mà không cần phải mua các thiết bị đó.

Kobiton cung cấp cách thức để chúng ta có thể thực hiện automation test thông qua test script cũng như manual test thông qua việc remote control các thiết bị ngay trên trình duyệt web. Ngoài ra, Kobiton cũng lưu trữ lại tất cả dữ liệu như video, screenshot, log để chúng ta có thể chia sẻ cũng như debug nếu ứng dụng có vấn đề trên một thiết bị nào đó.

**

Tại sao anh lại đến với ngành lập trình này? Anh kể sơ về quá trình từ lúc đi học, đi làm cho tới khi ra trường, từ lúc làm dev quèn cho tới team leader được không?

**

Mình đến với nghành này như là định mệnh an bài vậy đó, từ nhỏ mình đã yêu thích máy tính, có thời gian rảnh là xin ba má cho chơi game rồi ngồi vọc vạch máy tính. Mình thích thú tìm hiểu cách mà người ta tạo ra những phần mềm, rồi mình tự mày mò làm game các kiểu.

Sau đó thì mình chọn FPT để học vì có nghành mình thích và cách đào tạo của trường rất khác, rất hấp dẫn. Lúc mới ra trường mình bắt đầu làm cho FPT Software, rồi sau đó mình chuyển sang làm sản phẩm cho NCT Corp, là công ty chủ quản của website nhaccuatui.com.

Đến tại thời điểm đó công việc chính của mình vẫn thiên về Java là chủ yếu, sau đó thì mình muốn thực hành những kiến thức về JavaScript, NodeJS mà mình tự học được nhưng môi trường hiện tại thì không có điều kiện để làm việc đó.

Và cũng thật may mắn khi KMS Technology tìm đến mình, giới thiệu cho mình về Kobiton, lúc đó Kobiton chỉ vừa mới định hình và thật may mắn khi mình được tham gia vào trong team phát triển sản phẩm này.

Đương sự (trái) đang vừa code vừa relax tại Kobiton, dáng ngồi đẹp nức lòng fan hâm mộ Thời đi làm, anh Hoàng từng làm ở công ty outsource (FPT), công ty product (Nhaccuatui), hiện tại là công ty startup (Kobition). Anh học được gì từ những công ty này, theo anh điểm khác nhau giữa chúng là gì, sinh viên nên chọn công ty dạng nào khi ra trường?

Đầu tiên chúng ta cùng làm rõ hai khái niệm outsourcing và làm sản phẩm.

Công ty outsourcing được những công ty khác thuê để làm phần mềm cho họ, công ty outsourcing sẽ không sở hữu hay quảng bá sản phẩm mà họ làm ra vì đơn giản nó là của công ty khác, và được trả tiền bởi công ty khác.

Công ty làm sản phẩm thì họ phải tự làm mọi thứ để quảng bá và bán sản phẩm của mình đến cho người dùng, và họ chỉ được trả tiền khi người dùng mua sản phẩm của họ. Nói như vậy cho đơn giản nhé!

Ở mỗi môi trường làm việc sẽ có những cái hay riêng, ví dụ như ở môi trường outsourcing chúng ta được làm việc ở nhiều dự án, sản phẩm, công nghệ khác nhau theo thời gian. Còn đối với môi trường làm sản phẩm thì điều tối quan trọng là việc đưa được sản phẩm tới tay người dùng, chúng ta sẽ được tận hưởng cảm giác sở hữu một sản phẩm và tham gia vào việc sản xuất nó từ đầu tới cuối.

Để thành công tại môi trường outsourcing chúng ta cần thanh nhạy, dễ dàng thích ứng với những môi trường làm việc khác nhau. Còn để thành công ở môi trường làm sản phẩm thì chúng ta cần phải hiểu người dùng, phải take ownership khi làm bất cứ việc gì, cũng như hiểu sản phẩm.

Điều mình học được trong suốt khoảng thời gian làm việc đó là đù làm ở môi trường nào thì cũng phải luôn làm việc hết sức mình, hãy chịu trách nhiệm về những gì mình làm.

Dù làm ở môi trường nào thì cũng phải luôn làm việc hết sức mình, hãy chịu trách nhiệm về những gì mình làm…

Khi chúng ta dám chịu trách nhiệm về những gì mình làm thì chúng ta sẽ xây dựng được nền tảng lòng tin của mọi người xung quanh, cũng như để làm được chuyện đó chúng ta phải tự trau truốt bản thân để có cái nhìn bao quát hơn, suy nghĩ kĩ càng hơn. Và hơn hết, phải tìm hiểu gốc rễ của vấn đề trước khi đưa ra bất cứ kết luận nào.

Được biết anh Hoàng hiện tại là full stack developer? Tại sao anh lại làm fullstack jobs mà không phải là cái khác? Anh Hoàng có thể chia sẻ stack hiện tại, những công nghệ mình biết được không?

Với nhu cầu của công việc thì mình phải tiếp xúc với nhiều thứ trong quá trình phát triển sản phẩm, đến thời điểm hiện tại mình cũng không dám nhận mình là một fullstack developer mà chỉ là đang trong quá trình phát triển bản thân để có thể trở thành một full-stack developer. Đơn giản là vì mình nghĩ full-stack developer cần phải biết nhiều hơn nữa so với kiến thức của mình hiện tại.

Để nói về stack hiện tại của mình thì mình sử dụng JavaScript ở cả client side và server side thông qua NodeJS. Mình tìm hiểu nhiều nhưng để nói về những gì mình biết và hiểu rõ thì chắc có thể kể đến Java và JavaScript.

Đối với sinh viên mình nghĩ các bạn nên tập trung vào việc củng cố kiến thức về tiếng Anh, về Software Engineering, học tốt những thứ nền tảngvà đừng vội đi làm! Hãy tập trung làm thứ gì thật sự có ích trước, và tích luỹ thật nhiều kiến thức trước khi ra trường.

Về trình độ dev của Việt Nam, mình nghĩ có rất nhiều bạn xuất sắc tuy nhiên về mặt bằng chung thì còn khá thua kém so với nhiều nước khác bởi vì chúng ta bị ảnh hưởng quá nhiều bởi văn hoá gia công, làm cho developer quên mất việc phát triển bản thân.

Để đi theo hướng full-stack, mình nghĩ các bạn nên phát triển bản thân theo một thế mạnh nào đó trước, và vững các kiến thức nền tảng, và đừng vội vàng trong những năm đầu làm việc.

Sau khi đã đào sâu vào thế mạnh của bản thân thì hãy mở rộng kiến thức của mình ra những phần khác, ví dụ sau khi bạn đã mạnh về backend rồi thì hãy tìm hiểu frontend, lời khuyên của mình là ít nhất mình phải mạnh một mảng nào đó rồi mới dấn thân qua mảng khác được.

Anh làm gì để trau dồi và làm mới kĩ năng của bản thân, giữ cho mình không lạc hậu. Anh hay đọc và kiếm tài liệu ở đâu ạ?

Mình thường lên Medium, Quora để đọc thêm, ngoài ra mình còn follow twitter của những người nổi tiếng trong nghề cũng như blog của họ để đọc thêm.

Và điều quan trọng là đọc sách, mình thường đọc sách kĩ thuật của các nhà xuất bản Oreilly, Manning và Packt.

Như mình đã nói ở trên, đối với sinh viên mình nghĩ các bạn nên tập trung vào việc củng cố kiến thức về tiếng Anh, về Software Engineering, về thuật toán, cấu trúc dữ liệu, etc… Học tốt những thứ nền tảng và đừng vội đi làm! Hãy tập trung làm thứ gì thật sự có ích trước, và tích luỹ thật nhiều kiến thức trước khi ra trường nhé! Lời khuyên cuối cùng: Nhớ nắm vững kiến thức nền tảng, cũng cố kiến thức, làm gì đó có ích và đừng vội đi làm nhé!