Angular – vũ khí hạng nặng của Front-end Developer?

Những ebook anh đã từng đọc qua về Angular & Front-end?

Một bạn mới trở thành Front-end Developer (chưa có kinh nghiệm thực tiễn) nên làm gì nếu dự án trước hết quá cầu kỳ?

Anh có nghĩ Front-end Developer là bắt đầu tốt cho một bạn mới bước vào nghề IT?

Có điều gì về ngành Front-end Developer mà anh cảm thấy bất ngờ?

Công việc thường ngày của anh khi ở địa điểm Front-end Developer?

Sự độc đáo giữa AngularJS & Angular là gì vậy anh?

Đây có phải là nguyên nhân duy nhất khiến Developer sử dụng Angular?

Chào anh Nghĩa. Em khá bất ngờ với background của anh, anh có thể nói một tí về nó?

Angular là một JavaScript framework dùng để viết giao diện website (Front-end), được lớn mạnh bởi Google. Hiện tại, Angular đang được sử dụng bởi rất là nhiều các công ty tư vấn du học lớn: Forbes, General Motors, Upwork…

Mong muốn trở thành Front-end Developer giỏi, bạn chẳng thể không biết tới sự tồn tại của Angular. 

Đọc bài phỏng vấn của ITviec với anh Trần Thuận Nghĩa – PM Engineer tại VinID để biết:

  • Angular là gì? Cách phân biệt AngularJS & Angular là gì?
  • Có nên khởi đầu sự nghiệp ở địa điểm Front-end Developer?
  • Tố chất thiết yếu để trở thành Front-end Developer?
  • Ebook đọc qua về Angular & khuyến cáo cho Front-end Developer

Tìm hiểu thêm việc làm Angular trên ITviec

Tiểu sử: Anh Nghĩa có gần 6 năm kinh nghiệm làm việc với Angular nói riêng & Front-end nói chung. Anh trải qua nhiều địa điểm ở một số công ty tư vấn du học như: Developer ở 2Click Solutions, Technical Leader ở Smartlog Vietnam… Hiện giờ anh còn đang là PM Engineer tại VinID.

Chào anh Nghĩa. Em khá bất ngờ với background của anh, anh có thể nói một tí về nó?

Trước đó anh từng học lớp Cử nhân tài năng, nghề CNTT tại trường Đại học Khoa học tự nhiên. Trong thời gian học ở trường, anh cũng gia nhập một số cuộc thi lập trình & đưa về một số giải thưởng. Chẳng hạn như giải 3 cuộc thi lập trình ACM toàn quốc.

Nhưng vì cảm thấy chán & một phần ham chơi (cười) nên anh đã bỏ học giữa chừng để đi làm luôn.

Thời gian đó anh bị mọi người chỉ trích rất là nhiều, ai cũng bảo anh không làm được gì đâu. Anh đã phấn đấu rất là nhiều để minh chứng cho họ thấy rằng không có bằng Đại học thì vẫn có thể thăng tiến trong công việc, người ta tuyển mình vì năng lực chứ không phải vì tấm bằng.

& như em thấy đó, anh không thất nghiệp mà vẫn theo đuổi công việc Developer cho đến tận lúc này.

Công việc trước hết sau thời điểm anh dừng sự nghiệp học hành?

Anh làm Đối tác cho Sino Corporation. Trung tâm tư vấn du học này bán các sản phẩm về mã vạch (barcode), bổ phận của anh là viết software đi kèm giúp sử dụng sản phẩm. Đây cũng là lần đầu anh tiếp xúc với Angular.

Angular là gì vậy anh?

Angular là một JavaScript framework dùng để viết giao diện website (Front-end), được lớn mạnh bởi Google.

Anh lấy chẳng hạn: bình bình nếu chỉ làm bằng tay, em sẽ làm nên được 10 cây bút/ngày nhưng nếu sử dụng dụng cụ máy móc, em sẽ làm nên được 100, thậm chí 1000 cây bút/ngày.

Angular so với Developer cũng như dụng cụ ở trên vậy, còn nếu không sử dụng framework này thì sẽ mất rất là nhiều thời gian để hoàn thành giao diện website.

Xem Thêm  Cách tạo Thanh điều hướng trong Html - tạo thanh điều hướng trong html

Đây có phải là nguyên nhân duy nhất khiến Developer sử dụng Angular?

Anh nghĩ ngoài tiết kiệm thời gian thì Developer còn sử dụng Angular vì một số nguyên nhân:

  • Angular được “chống lưng” bởi Google, nó khiến Developer có cảm nhận được bảo đảm. Mặc nhiên, họ sẽ ám thị rằng framework này khó mà bị “khai tử”, chính vì thế cứ an tâm sử dụng.
  • Cộng đồng người dùng lớn nên nếu có khúc mắc gì cũng sẽ mau lẹ được đáp án.
  • Giúp lớn mạnh Vận dụng trang đơn (Single-page Application). Đây là vận dụng chạy trên browser mà không bắt buộc phải tải lại trang khi sử dụng.

Cá nhân anh thích Angular còn bởi vì framework này được viết bằng từ ngữ TypeScript do Microsoft lớn mạnh, dễ đọc (readable), dễ bảo dưỡng (maintainable).

Sự độc đáo giữa AngularJS & Angular là gì vậy anh?

AngularJS là từ được được dùng để nói về Angular 1 (chào đời năm 2009), được viết bằng JavaScript.

Còn Angular là từ gọi chung cho Angular 2 trở lên (chào đời năm 2016), được viết bằng TypeScript – phiên bản chuyên sâu của JavaScript.

Thiết kế của Angular & AngularJS khác nhau hoàn toàn & bây giờ AngularJS cũng không còn được Google phụ trợ cải tiến nữa.

Công việc thường ngày của anh khi ở địa điểm Front-end Developer?

Cũng như những công ty tư vấn du học theo mô hình Scrum, bên anh tổ chức họp hàng ngày để nói về các vấn đề đang gặp phải.

Ví dụ: chưa thu được API từ đội nhóm Back-end hay API chưa có đủ thông tin. Sau đó anh bắt tay vào khắc phục các công việc:

  • Viết & căn chỉnh giao diện theo yêu cầu. Ví dụ: viết giải quyết cho các hiệu ứng (animations), biến đổi các yếu tố (elements), các nút (buttons)…
  • Sử dụng Git để làm chủ source code.
  • Review code, review UI/UX.
  • Viết component có thể tái sử dụng.
  • Khái niệm bộ style button, icon, color … cho hệ thống & ứng dụng.
  • Tối ưu performance của trang web: vận tốc load trang, hình ảnh…

Anh thấy nếu so sánh với Back-end Developer thì công việc của Front-end Developer khó hơn vì Back-end chỉ cần bảo đảm “code chạy là được”, input cái này sẽ output ra cái kia. Trong lúc so với Front-end, code chạy được là một chuyện, còn mang lên giao diện như vậy nào lại là chuyện khác.

Lỗi lầm đáng nhớ nhất & bài học anh rút ra?

Trước đó, anh mắc phải lỗi lầm khi viết code ở phía giao diện dẫn theo trang đó bị crash – nghĩa là khi một trang phải giải quyết quá nhiều dữ liệu thì bộ nhớ lưu trữ (memory) không chạy nổi.

Khi các bạn báo bug thì anh mới phát hiện code của anh trong lưới (grid) bị loop – thực trạng vòng lặp, cứ nửa giây lại gọi hàm kiểm soát dữ liệu trong lưới.

So với lưới chỉ có 2-3 dòng thì không vấn đề gì nhưng khi tăng trưởng 100 dòng thì bị crash. Rõ ràng thì khi Tester kiểm thử, họ check cụ thể đơn hàng quá ít nên không thấy xảy ra vấn đề gì cả. Nhưng khi release & khởi đầu cho KH sử dụng, cụ thể đơn hàng lên đến hàng trăm, hàng ngàn dòng thì xảy ra lỗi.

Tuy không gây ra hậu quả gì cực kỳ nghiêm trọng, KH cũng không phàn nàn gì nhưng dù sao, cũng là lỗi của anh khi không lường trước được điều này. Anh đã đổi lại syntax trong code, mất thêm 2 ngày để fix lỗi.

Xem Thêm  Python - Hàm - tạo các hàm trong python

Sau này, anh có đọc các đề nghị (recommend) từ trang chính của Angular thì cũng thấy nói là không nên viết vậy. Phải chi anh biết sớm thì tốt hơn rồi.

Rút kinh nghiệm, anh theo dõi các nội dung về Angular thường xuyên hơn (chủ đạo trên trang Medium), cứ 8h sáng mỗi ngày anh lại thu được nội dung mới liên quan đến các tiêu chuẩn mà anh đã chọn.

Anh đọc các bài chia sẻ kinh nghiệm về Angular để biết vấn đề có tồn tại. Hiển nhiên chẳng thể thuộc nỗi toàn bộ các trường hợp (case) nhưng khi cần, mình biết là nó có tồn tại để tìm lại.

Chẳng hạn: Em đọc báo & biết tới sự tồn tại của máy hút bụi. Sau này khi em có nhu cầu làm sạch bụi bẩn mà không mất nhiều thời gian & công sức, em nhớ ngay là có dụng cụ với chức năng đó để tìm kiếm & mua nó.

không dừng lại ở đó, khi check, anh không những quan tâm đến chức năng mà còn xét cả khả năng xảy ra vấn đề. Chẳng hạn: thay vì check trên số đơn hàng, anh sẽ quan tâm hơn đến số cụ thể đơn hàng…

Có điều gì về ngành Front-end Developer mà anh cảm thấy bất ngờ?

Anh thấy nhiều bạn đang hiểu sai về Front-end Developer. Họ nghĩ lũ anh ngoài code, còn phải biết cắt file photoshop ra file HTML nữa (cười).

Tuyệt kỹ & tố chất thiết yếu với Front-end Developer?

Có bổ phận với công việc.

Chưa biết mình làm tốt hay không tốt nhưng hãy phấn đấu đi đã. Đừng chỉ làm ứng phó, làm với nghĩ suy “code chạy là được”. Nếu biết các nguy cơ tiềm tàng thì hãy khắc phục nó trước & luôn tìm phương pháp để tăng năng suất làm việc.

Ngày ấy, anh chỉ viết component dùng chung cho dự án (?) mà anh đang làm. Sau này, khi chuyển sang dự án (β) khác, anh mong muốn sử dụng lại các component này thì anh phải sao chép rồi paste sang. Khá mất thời gian & trong trường hợp các component ở ? có biến đổi thì β cũng không update được.

Vậy nên anh đã chuyển các component này thành các package trên npm, chỉ cần tải (install) package & phiên bản tương ứng là có thể sử dụng được.

Có chút học thức về UI, UX.

Ở một số công ty tư vấn du học nhỏ, không có kinh phí thuê Designer thì Front-end Developer phải làm luôn bổ phận kiến trúc UI, UX. Vậy nên bạn phải tự học hỏi mà rút kinh nghiệm từ những software xoay quang, xem tại sao phần giá thì người ta hay sử dụng màu đỏ, nút này để màu xám, thông tin kia được in đậm….

Như khi anh đọc qua software kế toán MISA, anh thấy người dùng không mong muốn bấm quá nhiều nút & hiển thị quá nhiều thông tin không thiết yếu. Nếu sau này, anh có làm software tương đương thì anh sẽ không mắc phải lỗi đó.

Anh nhớ trước kia có một lần anh tự ý đổi giao diện Front-end vì thấy không hợp lý, khi đó anh còn giúp Technical Leader cho Smartlog. Chủ yếu cấp dưới của anh đều phản ứng lại, bảo rằng: đổi giao diện mà không báo với KH thì không được, giao diện mới khó nhìn, nhìn không quen… Nhưng anh vẫn giữ nguyên quan niệm.

Xem Thêm  CAST và CHUYỂN ĐỔI (Transact-SQL) - SQL Server - truyền sql dưới dạng văn bản

Như Fb đó, họ đổi giao diện đâu có báo trước với mình, những người dùng sau cũng không biết giao diện trước như vậy nào…

Sau đó thì KH vẫn dùng giao diện mới bình bình. Thực tiễn là ai cũng có khuynh hướng phản ứng với những biến đổi nên thỉnh thoảng mình phải phân biệt xem cái nào hợp lý & giữ ý kiến.

Luôn luôn update công nghệ, phiên bản mới với những cái mình đang làm.

Vận dụng/software của mình viết bằng Angular 4 nhưng phiên bản tiên tiến nhất đã lên đến Angular 8, Angular 9 mà vẫn không update (upgrade) vì ngại nguy cơ thì cũng không tốt.

Anh có nghĩ Front-end Developer là bắt đầu tốt cho một bạn mới bước vào nghề IT?

Cái đó còn tuỳ vào sở thích của mỗi người. Nếu bạn không mong muốn làm sâu về data hay nghiên cứu hệ thống thì có thể chọn Front-end.

Nhưng nếu mong muốn tiến xa hơn trong sự nghiệp, anh khuyên các chúng ta nên theo học chính quy để được dạy về cách suy nghĩ logic như lập trình hướng đối tượng, kết cấu dữ liệu & giải thuật…, giúp bạn hiểu bản chất của từ ngữ lập trình.

Còn nếu chỉ xem Front-end như một công việc tay ngang, chỉ dễ dàng sao chép & paste rồi làm tương đương miễn sao ra được giao diện thì sự nghiệp sẽ có hạn chế.

Một bạn mới trở thành Front-end Developer (chưa có kinh nghiệm thực tiễn) nên làm gì nếu dự án trước hết quá cầu kỳ?

Nếu dự án cầu kỳ, bạn ấy nên đặt thắc mắc với những người đi trước trong đội nhóm, Note không nên hỏi quá nhiều. Hãy đặt mình vào địa điểm người được hỏi, họ còn tồn tại công việc riêng, chẳng thể ngồi đáp án cho bạn mãi được.

Bản thân anh cũng như vậy, anh chỉ hỏi những ý chính (theo kiểu keyword) rồi sau đó tự xem thêm.

Ví dụ, anh hỏi:

  • ở Front-end đang xài những thư viện gì?

  • tổ chức các thư mục (module) như vậy nào?

  • tính năng từng thư mục là gì?

  • có gì cần Note hay không?

Chứ không hỏi: “Code chỗ này nghĩa là gì vậy anh?” nhiều lần.

Những ebook anh đã từng đọc qua về Angular & Front-end?

Anh đọc qua hơi nhiều ebook nhưng anh đánh đắt tiền nhất những nguồn này:

  • Angular.io: trang web giúp người mới tìm tòi & làm quen với Angular. Bạn sẽ biết những định nghĩa, syntax căn bản trong Angular & cách tạo 1 project Angular ra sao.
  • Khóa học Angular từ căn bản đến chuyên sâu: nhận diện những lỗi thường gặp khi sử dụng Angular & biết cách xây dựng một vận dụng thương mại điện tử với Angular, Firebase, Bootstrap 4
  • Angular 2 Notes for Professionals: tài liệu Free, được đo đạc & biên soạn dựa vào những chia sẻ của các Chuyên Viên Angular trên Stack Overflow. Trình bày tất tần tật các chức năng của Angular cũng như các công thức hữu dụng để làm việc hiệu quả với chúng.
  • Angular Crash Course for Busy Developers: Khóa học này khá hữu dụng với những developer bận bịu, chỉ cần dành ra 10 giờ học, bạn sẽ nắm được những học thức cốt yếu nhất về Angular framework.

Bạn có phải là Front-end Developer & là “fan” của Angular? Bạn nghĩ nội dung này có thể giúp ích cho các Developer khác? Chia sẻ ngay để giúp cộng đồng Developer cùng lớn mạnh.

Tìm hiểu thêm việc làm Front-end Developer trên trang web ITviec

Viết một bình luận