Magento là gì? Có nên trở thành Magento Developer?

magento-la-gi-1

Magento là mã nguồn mở lớn nhất và khó nhất của ngôn ngữ PHP, sử dụng hướng đối tượng và mô hình MVC (Model-View-Controller) rõ ràng.

Magento được dùng để phát triển các trang web thương mại điện tử dựa trên nền tảng Zend Framework.

Đọc bài phỏng vấn của ITviec với anh Dương Công Luận – General Manager và anh Hồ Trung Nghĩa – Team Leader của FORIX để biết:

  • Magento là gì? Những lợi ích nổi bật của Magento?
  • Công việc của một Magento Developer?
  • Những kỹ năng cần thiết để trở thành một Magento Developer
  • Những sai lầm và bài học kinh nghiệm khi làm Magento Developer

Xem việc làm Magento Developer tại ITviec!

Tiểu sử:

Anh Dương Công Luận bắt đầu sự nghiệp với vai trò Developer cho một số công ty: Alive Interactive, Vidaltek và Agile Mobile.

Sau đó anh lần lượt giữ chức Project Manager và hiện tại là General Manager của Forix – Top 10 công ty làm về Magento nổi tiếng nhất tại TP. HCM.

Anh Hồ Trung Nghĩa tốt nghiệp ngành Toán-Tin, ĐH Khoa học tự nhiên. Sau khoảng 2 năm làm việc ở công ty 3FORCOM với vị trí Senior Developer thì anh chuyển hướng sang làm Magento.

Hiện tại, anh giữ vị trí Team Leader tại Forix với hơn 8 năm kinh nghiệm trong nghề.

Magento là gì theo cách hiểu của anh?

Trung Nghĩa: Magento là mã nguồn mở lớn nhất và khó nhất của ngôn ngữ PHP, sử dụng hướng đối tượng và mô hình MVC (Model-View-Controller) rõ ràng.

Magento được dùng để phát triển các trang web thương mại điện tử dựa trên nền tảng Zend Framework.

Tham khảo thêm: 10 Framework PHP chất cho Developer

Hiện có 2 phiên bản Magento: Community Edition là phiên bản miễn phí và Enterprise Edition phải trả phí.

Những tính năng cơ bản của Magento

11 tính năng cơ bản của Magento bao gồm:

  1. Quản lý sản phẩm: với nhiều hình ảnh, tùy chọn đánh giá sản phẩm, danh mục yêu thích, tồn kho.
  2. Danh mục: dễ dàng tìm kiếm và chọn sản phẩm dựa trên danh mục có sẵn.
  3. Quản lý tồn kho: biết được số lượng sản phẩm nhập, xuất và tồn kho
  4. Thông tin khách hàng: tình trạng của tài khoản, địa chỉ khách hàng, lịch sử giao dịch, giỏ hàng…
  5. Dịch vụ khách hàng: mở rộng nhiều tính năng, có form để liên hệ với khách hàng, hệ thống follow-up (theo dõi) khách hàng một cách toàn diện, cung cấp dịch vụ gửi mail cho khách hàng.
  6. Quản lý đặt hàng
  7. Thanh toán: nhiều hình thức thanh toán như credit card, PayPal. Hỗ trợ thêm các module thanh toán khác như CyberSource, ePay, eWAY…
  8. Công nghệ tìm kiếm: nhanh chóng, dễ sử dụng, hỗ trợ tìm kiếm trên Google SiteMap
  9. Hỗ trợ đa ngôn ngữ và nhiều loại tiền tệ
  10. Nhiều công cụ hỗ trợ Marketing: phiếu giảm giá, khuyến mãi
  11. Đánh giá, báo cáo: tích hợp với Google Analytics giúp người dùng xem được nhiều loại báo cáo. Từ đó điều chỉnh chính sách cho phù hợp

Đâu là những lợi ích lớn nhất khi sử dụng Magento?

Công Luận: Theo anh, Magento có rất nhiều ưu điểm nhưng một số lợi ích chính mà nó mang lại là:

  • Tính năng linh hoạt: cho phép apply nhiều concept của một trang thương mại điện tử, giúp những người làm admin dễ dàng quản lý. Tùy từng loại sản phẩm, Magento sẽ xây dựng những tính năng phù hợp.
  • Tốt cho đánh giá SEO: tối ưu trang bán hàng để thân thiện với các công cụ tìm kiếm. Người dùng tiết kiệm được thời gian và công sức nhưng vẫn đạt hiệu quả SEO.
  • Mobile First: cả 2 phiên bản của Magento đều kết hợp với HTML5 nhằm đáp ứng được giao diện và tốc độ load trang trên các thiết bị di động, giúp người dùng dễ dàng thao tác trên trang.

Anh nghĩ là tất cả những lợi ích này đều nhằm mục đích điều hướng người dùng đến hành vi cuối cùng là mua hàng trên trang thương mại điện tử.

Trung Nghĩa: Ở góc độ Developer, anh thấy sử dụng Magento đem lại nhiều thách thức cũng như kiến thức, cả về kỹ thuật lẫn thương mại điện tử. 

Tại sao anh chọn trở thành Magento Developer?

Công Luận: Cũng ngẫu nhiên thôi em. Trước đây team anh có một dự án mà khách hàng yêu cầu phải tạo mấy chục store front. Mỗi store front có giao diện và cấu trúc khá giống nhau nhưng lại khác nhau về màu sắc của một vài đặc điểm.

Qua nghiên cứu thì team anh thấy những nền tảng thương mại điện tử khác không đáp ứng được những yêu cầu này, chỉ có Magento là làm được điều đó. Đó là lý do anh và các bạn trong team bắt đầu tìm hiểu và học về Magento.

Việc làm Magento Developer tại TP. HCM

Việc làm Magento Developer tại Hà Nội

Magento có khó học không anh? Anh đã học nó như thế nào?

Công Luận: Theo anh, học Magento không hề đơn giản chút nào. Code của nó tương đối nhiều, phải mất khá nhiều thời gian để tìm hiểu. Tuy nhiên, anh nghĩ bạn nào có kỹ năng lập trình vững và hiểu đúng các khái niệm lập trình thì chỉ cần 2-4 tuần là đã có thể bắt đầu làm việc trên Magento.

Anh cũng khuyến khích những bạn muốn học Magento nên bắt đầu với  Zend Framework.

Trung Nghĩa: Anh thấy Magento khá khó để tìm hiểu nhưng cái gì khó thì cũng lý thú và đem lại cảm giác mãn nguyện khi chinh phục được nó.

Không như verion 1, Magento 2 có thư viện tại liệu khá phong phú. Anh sẽ chia sẻ sau nhé. Anh chủ yếu đọc từ đó và tìm hiểu thêm các bài viết chuyên sâu qua Google.

Chẳng hạn muốn hiểu rõ hơn về Knockout JS (một thư viện JavaScript được dùng bởi Magento 2) thì anh vào trang tài liệu của Knockout JS và Google thêm những bài viết chất lượng từ cộng đồng về cách thức Magento tích hợp với Knockout JS, để biết Magento có tùy chỉnh gì từ thư viện gốc.

Mức lương cho vị trí Magento Developer như thế nào vậy anh?

Công Luận: Ở công ty anh vì tính chất công việc nên thường không tuyển các vị trí Junior, chỉ tuyển Senior thôi.

Tham khảo thêm: Junior và Senior Developer khác nhau ra sao?

Mức lương cho vị trí này thường sẽ dao động trong khoảng 1500-1700 NET. Anh đánh giá là một bạn làm Magento khoảng 4 năm sẽ lên được vị trí Senior.

Anh nghĩ sao về cơ hội của nghề lập trình Magento? Nó có phát triển không anh?

Công Luận: Riêng công ty anh thì công việc Magento lúc nào cũng có. Chỉ cần bạn là Developer cứng tay, có định hướng nghề nghiệp theo hướng kỹ thuật hoặc quản lý thì lúc nào cũng được chào đón.

Tuy nhiên, nếu có vị trí nào trống thì anh luôn ưu tiên promote những người trong công ty trước.

Còn nói về cơ hội nghề nghiệp về Magento ở Việt Nam và trên thế giới thì anh nghĩ nghề này sẽ còn phát triển trong tương lai.

Hiện tại thì thương mại điện tử tại Việt Nam không còn bị giới hạn bởi cổng thanh toán như trước, nhà nước cũng có nhiều chính sách thu hút đầu tư nên cơ hội làm việc cho các công ty nước ngoài là vô số kể.

Ngoài ra, các bạn hoàn toàn có thể tự lập start-up thương mại điện tử cho riêng mình.

magento-la-gi-2

Anh Luận (áo màu xanh lá) và các đồng nghiệp của mình

Công việc thường ngày của lập trình viên Magento là gì?

Trung Nghĩa: Tùy thuộc vào quy trình của mỗi công ty mà công việc của Magento Developer cũng có sự khác biệt.

Công việc chính của anh thường sẽ bao gồm:

  • Import dữ liệu (danh mục, sản phẩm, lịch sử mua hàng…)
  • Di chuyển dữ liệu từ các hệ thống cũ sang Magento
  • Tối ưu tốc độ của website
  • Phát triển extension mới hoặc tích hợp với các extension của một bên thứ ba
  • Cập nhật các phiên bản mới nhất Magento
  • Tư vấn và trả lời các câu hỏi về kỹ thuật cho khách hàng

Kỹ năng cần thiết để trở thành một Magento Developer?

Công Luận: Người đó phải có các khái niệm (concept) về thương mại điện tử đúng. Có như vậy thì họ mới hiểu đúng được yêu cầu của khách hàng.

Ngoài ra, họ còn phải hiểu cách Magento tổ chức và apply các khái niệm này vào code. Để khi cần phải custom thêm những tính năng ngoài phần mặc định thì họ vẫn có thể làm tốt mà không phá vỡ cấu trúc tự nhiên của core Magento.

Tất nhiên để làm chủ những kỹ năng này, người đó phải có tinh thần và khả năng tự tìm tòi, học hỏi.

Trung Nghĩa: Cá nhân anh thì thấy khả năng tìm kiếm và debug là kỹ năng quan trọng của một người muốn theo đuổi con đường lập trình Magento.

Theo anh, đâu là những tiêu chí quan trọng nhất khi tuyển Magento Developer?

Công Luận: Theo anh đánh giá thì gần đây, việc tìm kiếm Magento Developer khá khó khăn.

Có những người anh đánh giá là nhiều kinh nghiệm nhưng khi làm việc thì chưa chắc đạt được hiệu quả. Trong khi có những người chưa có kinh nghiệm gì nhưng chỉ sau 3-6 tháng, anh lại thấy họ làm việc hiệu quả hơn người đã có kinh nghiệm.

Thường thì anh và team anh sẽ chọn người dựa trên một số tiêu chí:

  • Background về lập trình tốt: Kỹ năng lập trình PHP vững và có kinh nghiệm làm việc trên Zend Framework
  • Tiếng Anh đọc hiểu: Anh không quy đổi về một điểm cụ thể mà sẽ đánh giá trong quá trình phỏng vấn
  • Có kinh nghiệm về Magento là một điểm cộng: Đó phải là kinh nghiệm thật và phải đa dạng. Vì thực tế là có rất nhiều Developer dù làm việc 2-3 năm nhưng công việc của họ chỉ lặp đi lặp lại mảng nào đó của Magento mà thôi.

Ví dụ: Khi phỏng vấn, ứng viên nói đã có kinh nghiệm Magento rồi thì anh sẽ đưa ra một đoạn code để hỏi bạn xem đoạn code này dùng để làm gì. Hoặc anh đưa ra tình huống thực tế, xem bạn xử lý như thế nào.

Dựa trên câu trả lời, anh sẽ biết bạn đó thực sự có kinh nghiệm hay không.

Sai lầm lớn nhất mà anh đã gặp phải và bài học mà anh rút ra được là gì?

Công Luận: Có rất nhiều vấn đề xảy ra trong công việc nhưng có một trường hợp mà anh rất nhớ.

Khi đó team anh suggest cho khách hàng một giải pháp là sử dụng thêm extension có khả năng sync với sản phẩm. Có nghĩa là ngoài trang Magento hiện tại, họ còn có thể bán hàng trên cả eBay và Amazon.

Khách hàng đồng ý bỏ tiền ra mua nhưng không ngờ là giải pháp này không chạy.

Sau khi tìm hiểu nguyên nhân thì anh biết được là team mình suggest giải pháp cho khách hàng nhưng lại không chắc là nó sẽ hoạt động như thế nào.

Mọi người chỉ nghĩ “À, mình làm đúng tính năng rồi, nó chạy là được” mà không test đầy đủ các case có thể xảy ra, dẫn đến thất bại.

Về phía khách hàng, khi biết giải pháp này không hiệu quả, họ cũng chẳng nói gì. Họ cũng không báo ngay với team anh để kịp thời sửa lỗi. Bẵng đi suốt mấy tháng trời như vậy.

Rồi một hôm, họ đột ngột gửi đơn đề nghị công ty giải quyết, nếu không sẽ kiện ra tòa. Lúc đó, anh và các thành viên khác mới “tá hỏa”.

Team anh dồn toàn bộ thời gian  để tìm kiếm extension mới, custom nó để giải quyết vấn đề. Tuy nhiên, anh nghĩ, nếu cẩn thận hơn ngay từ lúc đầu thì sự cố này có lẽ đã không xảy ra.

Bài học anh rút ra được sau sai lầm này là gì?

Công Luận: Từ sau sai lầm này, cá nhân anh và các thành viên trong team luôn nhắc mình phải làm việc cẩn trọng hơn.

Cụ thể, với những yêu cầu của khách hàng, team anh luôn liệt kê ra thành những yêu cầu thật cụ thể rồi gửi qua mail để họ xác nhận. Tóm lại là thường xuyên tương tác để nhận lại phản hồi từ họ. Khi mọi thứ OK hết thì bọn anh mới bắt tay vào làm.

Với những giải pháp mà team anh suggest thì anh yêu cầu tất cả mọi người phải chắc chắn về nó, đảm bảo nó chạy tốt để mang lại giá trị tốt nhất cho khách hàng.

Các Developer không được cheat code, phải làm đúng quy trình, không hack vào code và đặc biệt là phải test rất nhiều case.

Ví dụ: Sau khi một bạn Developer hoàn thành xong phần code của họ. Một bạn khác (đóng vai trò như khách hàng) phải chạy thử để xem nó có chạy đúng như yêu cầu không, có xảy ra mâu thuẫn nào giữa các đoạn code đã tạo hay không.

Lời khuyên của anh cho những bạn đang làm công việc Magento Developer?

Trung Nghĩa: Các bạn nên trau dồi thêm tiếng Anh và kỹ năng code của mình.

Trước đây, anh chủ yếu học tiếng Anh qua Youtube. Chọn những bộ phim mình thích từ mức độ đơn giản đến nâng cao.

Lần đầu, anh thường bật phụ đề để  nắm được sơ lược nội dung. Khi xem lại lần 2 (và nhiều lần sau nữa) thì anh tắt phụ đề và đoán nghĩa.

Ngoài ra, anh và bạn bè của mình cũng giao ước là các ngày trong tuần (thứ 2 đến thứ 6) sẽ chỉ dùng tiếng Anh để giao tiếp với nhau. Vừa giúp nhau nâng cao vốn từ vựng, vừa rèn luyện sự tự tin trong giao tiếp.

Còn để cải thiện code thì chỉ có bí quyết và debug và debug.

Chịu khó debug vào sâu trong core Magento để tìm root cause, đọc code, kết hợp với những tài liệu chuyên sâu trên mạng (như phần Knockout JS anh nói ở trên) sẽ giúp mình hiểu sâu hơn về cấu trúc và cách Magento được xây dựng.

Công Luận:  Anh nghĩ các bạn cũng nên chọn những công ty mang lại cho các bạn cơ hội trải nghiệm nhiều mảng của Magento.

Khi làm nhiều dự án với nhiều yêu cầu khác nhau, các bạn sẽ có cái nhìn toàn diện và tiếp cận những vấn đề mà công ty gặp phải. Từ đó, bạn mới có thể hiểu hết và apply hết những gì mà Magento mang lại.

Ví dụ: dự án 1 làm về tính năng Elastic Search rồi thì dự án 2, bạn phải làm những tính năng mới hơn như: Magento Cloud, Fastly CDN…

Đó là con đường giúp Magento Developer trở nên giỏi hơn và nhanh chóng thăng tiến.

Những tài liệu nào anh thấy có ích cho nghề lập trình Magento?

Công Luận: Anh từng tìm hiểu về Magento qua trang này:

  • Magento U Courses: Rất nhiều khóa học từ cơ bản đến nâng cao dành cho những bạn Developer muốn theo đuổi hoặc muốn nâng cao hiểu biết về Magento

Trung Nghĩa: Như anh đã chia sẻ, chủ yếu anh đọc tài liệu trên trang chủ của Magento:

  • Magento 2.3 Developer Documentation: Cung cấp tất cả những tài liệu cần thiết để xây dựng và quản lý một trang web thương mại điện tử có nền tảng Magento. Kết nối với cộng đồng Magento trên thế giới.

Có những vấn đề cần tìm hiểu sâu hơn thì anh dùng đến Google hoặc Stack Overflow

Robby2

Bạn muốn tìm hiểu công việc của Magento Developer? Hoặc bạn là một Magento Developer giàu kinh nghiệm? Hãy chia sẻ ý kiến ở phần bình luận bên dưới nhé.

Và đừng quên tham khảo việc làm Magento Developer tại ITviec!

About the Author:

Social Content Lead
Avatar

Read more...

Comments

[fbcomments url="https://itviec.com/blog/magento-la-gi/"]
error: