Categories
Dev's Corner

Lộ trình trở thành Web Developer có căn cơ vững chắc

Để trở thành một Web Developer, bạn phải hiểu rõ về HTML, CSS và JavaScript. Bạn cũng nên tìm hiểu về CSS và các framework CSS. Phát triển các kỹ năng phát triển web (web development) cơ bản này sẽ cung cấp cho bạn nền tảng và logic để giao tiếp với các ngôn ngữ lập trình.

Bài viết này sẽ giúp bạn nắm rõ 5 bước để trở thành Web Developer:

  1. Tìm hiểu các nguyên tắc cơ bản của Web Development
  2. Chọn một chuyên môn development
  3. Học các ngôn ngữ lập trình quan trọng cho web development
  4. Làm dự án để phát triển kỹ năng Web Developer
  5. Xây dựng Web development portfolio
Lộ trình trở thành web developer
Lộ trình trở thành web developer. Ảnh: xtrasolutionsllc.com

5 Bước trở thành web developer

1. Các nguyên tắc cơ bản của Web Development

Bước đầu tiên để trở thành Web Developer là bắt đầu học các nguyên tắc cơ bản về phát triển web, bao gồm hiểu biết về HTML (Ngôn ngữ đánh dấu siêu văn bản), CSS (Trang tính kiểu xếp tầng) và JavaScript.

Nhiều web developer sử dụng các coding bootcamps để tăng tốc quá trình học tập. Các chương trình coding bootcamps (đào tạo lập trình) đã phát triển mạnh bởi vì chúng ngắn gọn, đa dạng và tập trung vào kết quả và việc làm – mục tiêu của chúng là phát triển các kỹ năng sẵn sàng cho công việc hiệu quả nhất có thể, khiến chúng trở thành một khoản đầu tư đáng giá cho một web developer tương lai.

Theo trang web việc làm Indeed, 4/5 công ty ở Mỹ thuê sinh viên tốt nghiệp từ một chương trình coding bootcamp.

Trên thực tế, những lợi thế thiết thực của coding bootcamp ngày càng rõ ràng theo thời gian.

Thứ nhất, lĩnh vực phát triển web thu hút mọi người từ tất cả các lĩnh vực khác nhau, nhiều người trong số đó đang chuyển đổi nghề nghiệp – những người mà lộ trình rõ ràng và hiệu quả để mở rộng kỹ năng là ưu tiên hàng đầu.

Ngoài ra, các nhà tuyển dụng ngày càng coi trọng kỹ năng và kinh nghiệm hơn học vấn, cho phép bất kỳ ai có thể chứng minh khả năng của mình không kém gì so với các developer có bằng cấp.

Điều quan trọng là các web developer phải cam kết học hỏi liên tục để cập nhật những thay đổi về ngôn ngữ, công cụ, xu hướng phát triển web và lập trình.

Điều này khiến việc đào tạo lại giữa độ chín sự nghiệp là điều bắt buộc cho dù đó có phải là công việc bạn đã bắt đầu hay không.

2. Chọn chuyên môn development

Khi bạn tiếp tục phát triển các kỹ năng của mình, bạn sẽ cần phải chọn một lĩnh vực chuyên môn. Nhưng có những loại web development nào?

Tất cả các web developer được phân thành ba loại chính:

  • Front-End developer. Front-End developer làm việc ở “phía client” của web development, nghĩa là bất kỳ phần nào của trang web hoặc ứng dụng mà người dùng tương tác. Đó có thể bao gồm bố cục, thiết kế của trang web và cách người dùng tương tác với nó.
  • Back-End developer. Back-End Developer làm việc ở “phía máy chủ” của web development. Tức là tập trung vào cách một trang web hoạt động và bao gồm cơ sở dữ liệu, máy chủ, mạng và hosting,…
  • Full stack developer. Một Full-Stack developer quen thuộc với cả front-end và back end development và làm việc với cả hai phía.

3. Học các ngôn ngữ lập trình quan trọng

Dù bạn tập trung vào lĩnh vực nào, bạn cần phải biết cách sử dụng một số ngôn ngữ lập trình khác nhau cho phát triển web và thiết kế web. Vậy, những ngôn ngữ lập trình phổ biến nhất là gì?

Các ngôn ngữ web development
Các ngôn ngữ web development. Ảnh: templates.com

Ba họ ngôn ngữ lập trình tạo thành các công cụ cơ bản liên quan đến hầu như các khía cạnh của web development:

  • HTML (Ngôn ngữ đánh dấu siêu văn bản)
  • CSS (Trang tính kiểu xếp tầng)
  • JavaScript

Tất nhiên, danh sách vẫn còn dài – đây mới chỉ là khởi đầu mà thôi.

Trên thực tế, web development là một lĩnh vực đa dạng và đa dạng đến mức danh sách tất cả các tác vụ mà nó có thể có (và tất cả các ngôn ngữ lập trình và ngôn ngữ đánh dấu mà bạn có thể sử dụng để hoàn thành chúng) là rất dài.

May thay, với tư cách chuyên gia, bạn có thể tìm và tập trung vào những ‘món’ phù hợp nhất với mình.

4. Làm dự án để phát triển kỹ năng web developer

Với kiến ​​thức cơ bản về HTML, CSS và JavaScript cũng như nền tảng về kỹ năng lập trình, bạn đã sẵn sàng để bắt đầu.

Khi tiếp tục, bạn sẽ có được kinh nghiệm sử dụng bộ kỹ năng web developer ngày một tiến bộ.

Một vài trong số này là các kỹ năng kỹ thuật hoặc kỹ năng “cứng”, như lập trình bằng SQL hoặc Python, sử dụng thư viện hàm jQuery để lập trình hiệu quả hơn hoặc sử dụng các công cụ như Git cho hệ thống kiểm soát phiên bản (version control).

Cách tốt nhất để cải thiện kỹ năng phát triển web này đơn giản là bắt đầu ‘chơi đùa’ với nó – bạn sử dụng càng nhiều, thì càng trở nên giỏi hơn.

Ngoài ra còn có một số kỹ năng web design hữu ích mà các web developer cần có, trong đó thiết kế đáp ứng (responsive design) có lẽ là quan trọng nhất.

Mặc dù web developer thường không được giao nhiệm vụ thiết kế trang web tổng thể, nhưng đó sẽ là một lợi thế đối với developer nếu có hiểu biết vững chắc về các nguyên tắc thiết kế chung.

Đặc biệt, Front-End Developer lập trình các màn hình mà người dùng tương tác và họ có thể thành công hơn với sự nắm bắt tốt thiết kế lấy người dùng làm trung tâm.

5. Xây dựng web development portfolio

Một web development portfolio thể hiện các kỹ năng mạnh nhất của bạn là công cụ tốt nhất khi ứng tuyển các vị trí web development.

Xây dựng web development portfolio
Xây dựng web development portfolio. Ảnh: toggl.com

Có 3 điều cần nhớ khi xây dựng một portfolio nổi bật.

a.) Đầu tiên, web developer portfolio của bạn nên thể hiện sự đa dạng các công việc web development từng làm.

Bạn không cần đưa mọi dự án mình vào đó – portfolio chuyên nghiệp của bạn phải là cuộn phim nổi bật không chỉ thể hiện những kết quả tốt nhất mà còn thể hiện sự đa tài của bạn.

Bạn cần chọn lọc và làm nổi bật những gì tốt nhất của mình, nhưng lựa chọn của bạn phải đủ đa dạng để thể hiện sự hiểu biết vững chắc về các yếu tố khác nhau của vị trí.

Khi ứng tuyển công việc web developer, hãy nghiên cứu một chút về công ty và vai trò mà bạn tìm kiếm – sau đó điều chỉnh portfolio, chỉnh sửa các ví dụ không liên quan và làm nổi bật những gì phù hợp nhất.

b.) Thứ hai, hãy nghĩ về điều giúp bạn và công việc của bạn trở nên độc đáo.

Hãy nhấn mạnh các kỹ năng phát triển web giúp bạn nổi bật nhất – không chỉ trong công việc bạn đưa vào portfolio của mình, mà còn trong cách trình bày nó.

Ví dụ: nếu bạn ứng tuyển các vị trí liên quan đến thiết kế, trang web portfolio của bạn phải có giao diện người dùng mạch lạc – trải nghiệm người dùng tuyệt vời với giao diện đẹp.

Và nếu bạn ứng tuyển vai trò web developer, hãy đảm bảo rằng portfolio của bạn được hiển thị hoàn hảo trên một trang web.

c.) Thứ ba, thể hiện quy trình của bạn.

Nhà tuyển dụng không chỉ nhìn vào chất lượng công việc bạn tạo ra mà còn xem xét cách bạn tiếp cận vấn đề.

Đừng ngại trình bày mỗi ví dụ như một case study, cung cấp mô tả về quá trình tư duy của bạn và vấn đề bạn đang cố gắng giải quyết với dự án.

Thể hiện nền tảng về cách các dự án của bạn được tạo ra sẽ giúp Nhà tuyển dụng và nhà quản lý tuyển dụng hiểu được công việc của bạn và nói nhiều điều hơn là chỉ là một phần độc lập.

Đây cũng là cơ hội tuyệt vời để thể hiện kỹ năng giao tiếp của bạn – một phần quan trọng để trở nên xuất sắc trong một vị trí.

Web Development có phải lĩnh vực đang phát triển không?

Đúng, web development đang bùng nổ.

Có hơn 1,3 triệu việc làm dành cho Developer ở Bắc Mỹ và hơn 47.000 vị trí mới được tạo ra trong hai năm qua, với thị trường dự kiến ​​sẽ tăng thêm 15% trong 5 năm tới.

Vì những lý do này, “web developer” là vị trí được tìm kiếm nhiều nhất trong lĩnh vực công nghệ và là một trong những ví trí được trả lương cao nhất.

Mức lương của web developer là bao nhiêu?

Theo Indeed, một trang web việc làm, mức lương trung bình dành cho web developer ở Mỹ là 71 nghìn đô, còn Senior web developer thì trung bình cỡ 95 nghìn đô.

Điều đó làm cho web development trở thành một trong những vị trí có lợi nhất mà không yêu cầu bằng cấp.

Làm thế nào để nhanh chóng trở thành web developer?

Các chương trình coding bootcamp đã trở thành một lựa chọn ngày càng phổ biến cho các web developer vì chúng cung cấp trải nghiệm học tập bằng cách thực hành và cơ hội phát triển các kỹ năng sẵn sàng cho công việc – trong vòng 12 tuần.

Theo truyền thống, nhiều web developer bắt đầu sự nghiệp từ trường đại học với các ngành như kỹ thuật phần mềm (software engineering), khoa học máy tính (computer science) hoặc các lĩnh vực liên quan (như data science). Tuy nhiên, nó cũng có thể đến từ một ngành hoàn toàn khác.

Trên thực tế, ngày càng nhiều chuyên gia đang đổi hướng sự nghiệp để học lập trình từ đầu bằng cách tự học hoặc lấy chứng chỉ tốt nghiệp với các khóa coding bootcamp.

Khảo sát kỹ năng Digital của BrainStation cho thấy 55% người trả lời đã bắt đầu sự nghiệp của họ trong một lĩnh vực khác58% mới chỉ làm lập trình từ 5 năm trở xuống.

Cần gì để trở thành web developer?

Cần gì để trở thành web developer
Cần gì để trở thành web developer. Ảnh: fulltimenomad.com

Dưới đây là một số thứ bạn cần học để trở thành web developer:

1.) Nền tảng

Để trở thành web developer, bạn nên phát triển hiểu biết toàn diện về cách thức hoạt động của web.

Điều này sẽ nâng cao kiến ​​thức HTML và CSS của bạn trong việc xây dựng và tạo kiểu cho các trang web tĩnh.

Nó cũng giúp bạn hình thành nên các kỹ năng giải quyết vấn đề và logic để hiểu các khái niệm lập trình nâng cao.

2.) Các nguyên tắc lập trình cơ bản

Kiến thức nền tảng về JavaScript và lập trình hướng đối tượng (OOP) nên là xuất phát điểm cho các web developer tham vọng, vì nó sẽ cải thiện khả năng viết và xây dựng các thành phần của bạn.

3.) Front-end framework

Điều quan trọng đối với các web developer là học cách sử dụng React, một JavaScript framework, giúp xây dựng các trang web phức tạp và web động cũng như giao diện người dùng chuyên nghiệp.

4.) Web server

Để trở thành web developer, bạn cần biết cách xây dựng máy chủ bằng cách sử dụng back-end framework hiện đại và cách phát triển các API tùy chỉnh cũng như phân phát các trang web và file tĩnh.

5.) Lập trình phía máy chủ

Điều quan trọng đối với web developer là phải hiểu rõ về Công cụ tạo khuôn và kết xuất phía máy chủ, được sử dụng để tạo các mẫu trang trống chứa dữ liệu động, chẳng hạn như một loạt các trang sản phẩm cho cửa hàng Thương mại điện tử.

6.) Cơ sở dữ liệu

Các Web developer cũng sẽ phải hiểu các khái niệm cốt lõi xung quanh dữ liệu và học cách quản lý cơ sở dữ liệu và dữ liệu trên máy chủ web.

Cũng như trong các lĩnh vực công nghệ khác, điều quan trọng đối với web developer là kết nối và tiếp tục học hỏi, vì các kỹ thuật và ngôn ngữ lập trình thay đổi thường xuyên.

Ngoài coding bootcamp, các khóa học phát triển web, thảo luận nhóm và workshop, bạn cũng có thể cập nhật thông tin bằng cách đóng góp cho các cộng đồng mã nguồn mở, chẳng hạn như GitHub hoặc Bootstrap.

Và tất nhiên, để trở thành một Web Developer, bạn sẽ cần portfolio các dự án đã hoàn thành cho quá trình tìm kiếm việc làm của mình.

Bất kể mối quan tâm của bạn là gì, điều quan trọng là thể hiện tính linh hoạt để đảm bảo khách hàng từ các ngành khác nhau hiểu được khả năng của bạn.

Cần biết bao nhiêu ngôn ngữ lập trình để trở thành web developer?

Một câu hỏi đơn giản với câu trả lời phức tạp.

Nó phức tạp vì nó còn tùy vào nhiều biến số.

  • Bạn là web developer mới vào nghề hay dân chuyên?
  • Những loại dự án nào bạn đang làm, hoặc muốn làm việc?
  • Và tương lai nắm giữ những gì?

Nếu bạn là một web developer mới vào nghề, bạn nên bắt đầu với những điều cơ bản — nhưng mặt khác, một số chuyên môn nhất định có thể khiến bạn trở nên khác biệt so với đối thủ.

Cuối cùng, giải pháp là xác định ngôn ngữ nào hữu ích trong lĩnh vực của bạn, có mức độ chuyên môn phù hợp với bạn và đang ngày càng trở nên phổ biến hơn là loại bỏ ngôn ngữ đó.

Phải chăng càng biết nhiều ngôn ngữ lập trình thì càng tốt?

Nếu bạn là web developer, hãy yên tâm là bạn đang ở trong một ngành đang phát triển.

Theo Cục Lao động Mỹ, thị trường dành cho web developer dự kiến ​​sẽ tăng thêm 15% vào năm 2026.

Do sự phát triển nhanh chóng này, lĩnh vực này đã chứng kiến ​​một luồng nhân tài tương đối mới; 58% người tham gia khảo sát cho biết họ đã làm việc trong lĩnh vực phát triển trong 5 năm hoặc ít hơn.

Cuộc khảo sát của chúng tôi cũng tiết lộ rằng web developer càng có nhiều kinh nghiệm thì họ càng có nhiều khả năng trở thành full stack developer và phạm vi chuyên môn của họ càng rộng.

Bài học rút ra: để một web developer tấn thăng sự nghiệp, điều quan trọng là phải tiếp tục học các ngôn ngữ mới và chuyên biệt hơn — điều này trớ trêu thay, khiến họ trở nên ít chuyên sâu hơn và có khả năng cộng tác hoặc quản lý đội ngũ làm việc ở nhiều giai đoạn trong nhiều dự án khác nhau.

Đâu là ngôn ngữ lập trình phổ biến nhất?

Một nghịch lý khác: khi nói đến ngôn ngữ, một số ít xuất hiện hầu như ở khắp mọi nơi – nhưng còn nhiều ngôn ngữ cũng quan trọng không kém.

Khi được hỏi họ hiện đang sử dụng ngôn ngữ lập trình nào, những người trả lời gần như chỉ vào JavaScript (80%), SQL (47%), Python (35%) và Java (27%) là thứ hạng cao trên bảng xếp hạng.

Hãy nghĩ xem: nếu bạn là web developer, một hoặc nhiều trong số này là nhu cầu rõ ràng, bất kể lĩnh vực chuyên môn của bạn là gì.

Những người được hỏi cũng xác định JavaScript và Python là những ngôn ngữ thú vị nhất để làm việc, điều này không chỉ giải thích sự phổ biến của chúng mà còn cho thấy sự phổ biến của chúng trong tương lai sẽ được đảm bảo.

Đáng chú ý, ngay cả khi có danh sách không dưới 17 ngôn ngữ lập trình để lựa chọn, 33% người được hỏi đã chọn “Khác” — làm nó trở thành câu trả lời phổ biến thứ ba và chứng minh rằng mặc dù ngành này có thể được ưa chuộng, nhưng vẫn có rất nhiều nhu cầu về nhiều ngôn ngữ khó hiểu hơn.

Đâu là ngôn ngữ phát triển nhanh nhất?

Khi các ứng dụng mới xuất hiện, chúng ta nên mong đợi danh sách các ngôn ngữ được sử dụng thường xuyên nhất sẽ thay đổi.

Khi được hỏi điều gì sẽ ảnh hưởng lớn nhất đến ngành của họ trong vòng 5 đến 10 năm tới, phần lớn người được hỏi (78%) chọn trí tuệ nhân tạo (AI) và học máy (machine learning) là cơ hội lớn nhất để phát triển.

Các xu hướng khác mà họ dự đoán: Internet vạn vật (54%), AR – thực tế tăng cường (53%) và blockchain (41%).

Nhưng trong khi họ dự đoán những công nghệ này sẽ trở nên nổi bật, chỉ một số ít các developer đã làm việc trực tiếp với chúng — 83% người được hỏi vẫn chưa làm việc trên nền tảng AI hoặc công nghệ blockchain và 80% không có kinh nghiệm với các thiết bị IoT.

Trên thực tế, công nghệ blockchain vẫn còn quá mới nên những developer có trình độ giữa giữa còn có kinh nghiệm làm việc với nó nhiều hơn cả các senior developer — nhưng vẫn chỉ có 1/4.

Những con số này cho thấy công nghệ blockchain là một lĩnh vực mà người mới bắt đầu nên học để cải thiện cơ hội thăng tiến của họ — và các senior developer nên học cách đảm bảo chúng luôn phù hợp.

Web developer mới nên học ngôn ngữ nào?

Với sự tăng trưởng của “5 lĩnh vực lớn” được kỳ vọng xảy ra — AI và machine learning, IoT, AR và blockchain — bạn nên học ngôn ngữ nào?

Mặc dù câu trả lời còn tuỳ vào việc bạn chọn tập trung vào lĩnh vực nào trong số năm lĩnh vực này, ba cái tên giống nhau luôn xuất hiện lặp đi lặp lại: C++, Java và Python.

Mỗi trong số những trọng tâm nói trên, có nhiều ngôn ngữ xuất hiện hơn ngoài ba ngôn ngữ này.

  • Trong Blockchain: Ruby và Solidity.
  • Trong IoT: C, JavaScript và PHP.
  • Trong AI và machine learning: R, Lisp và Prolog.
  • Và trong AR: C#, JavaScript và Swift.

Nhưng trong mọi trường hợp, C++, Java và Python là những kẻ dẫn đầu.

Đây là những ngôn ngữ mà mọi người đang sử dụng ngày nay để làm việc trong lĩnh vực mà họ đã xác định là lĩnh vực phát triển mạnh mẽ nhất.

Ngày mai thì sao? Không có cách chắc chắn nào để dự đoán tương lai, nhưng chúng ta có thể xem ngôn ngữ nào đang được sử dụng nhanh nhất.

Một cách để làm điều này là so sánh các truy vấn tìm kiếm — một phương thức để đo lường ngôn ngữ mà mọi người hiện đang học.

Tại Github, tổng hợp các truy vấn tìm kiếm cho thấy rằng các ngôn ngữ phát triển nhanh nhất là tương đối mới — như bạn mong đợi.

Vào năm 2018, Kotlin tương thích với Java đã tăng trưởng nhanh nhất so với cùng kỳ năm trước, tăng hơn gấp đôi.

Ngôn ngữ cấu hình HashiCorp (HCL) cho cơ sở hạ tầng đám mây, ngôn ngữ siêu tập JavaScript TypeScript, framework tự động hóa PowerShell của Microsoft và ngôn ngữ lập trình hệ thống Rust lọt vào top 5.

Không xa phía sau, ở vị trí thứ tám, là Python. Bất chấp sự phổ biến của nó, Python vẫn có mức tăng trưởng 50% qua từng năm — dấu hiệu của một kẻ tung hoành thực sự đang trên đà phát triển.

Điều gì tạo nên một web developer giỏi?

Theo Khảo sát của BrainStation, 50% giám đốc điều hành nói rằng họ đang tuyển dụng nhiều nhất cho các vị trí development.

Tuy nhiên, những đáp viên cũng nhận thấy development là lĩnh vực khó tuyển nhất và khi nhu cầu về những kỹ năng này tăng lên, nó sẽ trở nên khó khăn hơn.

Các công ty nên tìm kiếm điều gì? Và làm thế nào để các developer có thể nổi bật khi tham gia thị trường?

Điều gì tạo nên một web developer giỏi. Ảnh: perfecto-web.com

Để bắt đầu, hãy xem xét định nghĩa sau. Định nghĩa này cung cấp một bức tranh toàn cảnh về một devleoper giỏi:

“Viết code chạy được, đã kiểm tra tính đúng đắn, trong thời gian xác định, tuân theo các thực hành tốt nhất, theo cách có thể dễ dàng duy trì và nâng cao, phối hợp với đội ngũ và liên tục cải thiện kiến ​​thức và kỹ năng trong suốt sự nghiệp của họ.”

Hãy xem xét kỹ hơn những ý tưởng này để xem điều gì tạo nên một developer giỏi. Một web developer giỏi phải:

1.) Viết code chạy được

Máy tính là cỗ máy kỹ thuật số cực kỳ chính xác. Độ lệch nhỏ nhất so với những gì máy tính mong đợi có nghĩa là code đó sẽ không biên dịch, không chạy hoặc sẽ gặp sự cố.

Trọng điểm của việc lập trình và xây dựng phần mềm là viết code mà máy tính xử lý thành công, tạo ra kết quả mong muốn.

Nói cách khác, một web developer giỏi phải viết code chạy được.

Người đó có con mắt tinh tường đối với các chi tiết và liên tục quét mắt để tìm bất kỳ thứ gì có vẻ “không ổn”. Họ viết code có cấu trúc tốt và sử dụng các công cụ để xác định các lỗi tiềm ẩn trước khi cho chạy.

2.) Viết code hoạt động chính xác

Chỉ vì code hoạt động không có nghĩa là nó hoạt động chính xác. Để code hoạt động chỉ là trở ngại đầu tiên.

Code hoạt động không chính xác cũng vô dụng như code không hoạt động gì cả và có khả năng nguy hiểm hơn.

Kết quả sai có thể gây ra hậu quả, từ những phiền toái về giao diện người dùng thông thường khiến người dùng thất vọng và hạn chế năng suất của họ – đến tai hại là giảm sút doanh thu.

Tất cả các lỗi mà developer bỏ sót sẽ gây ra sự cố chương trình, lỗi hệ thống, hỏng dữ liệu, vi phạm bảo mật hoặc làm thất vọng người dùng.

Những lỗi này sửa chữa rất tốn kém khi chúng được đưa vào sản xuất và được người dùng cuối phát hiện ra.

Cũng như các cấu trúc vật lý yêu cầu kiểm tra kỹ lưỡng để đảm bảo chúng “đạt chuẩn mã”, phần mềm cũng yêu cầu các tiêu chuẩn nghiêm ngặt tương tự.

Do đó, một developer giỏi áp dụng tư duy dựa trên kiểm thử, tích cực hình dung tất cả các tình huống mà lỗi có thể xảy ra, cách chúng phải được xử lý và viết các bài kiểm thử chứng minh code là đúng.

3.) Tôn trọng các mốc thời gian và thời hạn

Máy tính đại diện cho lời hứa hẹn về hiệu quả và năng suất. Chúng cho phép người dùng hoàn thành và hiểu nhiều hơn. Các developer sống trong thế giới có nhịp độ nhanh này bằng cách sử dụng máy tính để mang năng suất và hiệu quả vào thực tế.

Tác dụng phụ của thế giới này là mong đợi mọi thứ được hoàn thành ngay bây giờ. Áp lực đó đến từ các nhà quản lý, khách hàng, người dùng và môi trường kinh doanh. Điều đó tạo ra rất nhiều áp lực cho developer, họ cũng chỉ là con người.

Ước lượng thời gian cho các dự án là một nhiệm vụ khó khăn, vì có rất nhiều vấn đề chưa biết và không mong muốn xảy ra khi xây dựng phần mềm phức tạp.

Luôn xảy ra việc đánh giá thấp và bỏ qua các chi tiết thực sự cần thiết để hoàn thành nhiệm vụ. Tuy nhiên, đánh giá thấp thời gian bàn giao kết quả là rất nguy hiểm, mang lại căng thẳng và kiệt sức, và cảm giác tiêu cực từ tất cả các bên liên quan trong dự án.

Điều quan trọng là phải xác định tất cả các chi tiết có thể có đối với một dự án, có quan điểm thực tế về khối lượng công việc có thể hoàn thành và ước lượng một cách hợp lý các mốc thời gian, tính đến những điều chưa biết và không mong đợi có thể xảy ra.

Truyền đạt là rất quan trọng khi thời gian bắt đầu chuyển động và đảm bảo rằng mọi người đều nhận thức được những khó khăn trước mắt để giúp xử lý và tránh làm trễ thời hạn.

Một developer giỏi đặt ra những kỳ vọng hợp lý, truyền đạt cởi mở về những rào cản không mong muốn và giữ vững sự tin tưởng của đội ngũ và các bên liên quan.

4.) Tuân thủ các thực hành tốt nhất của web development

Khi code hoạt động (và hoạt động chính xác), nó cần được viết theo cách tốt nhất có thể.

Bất kỳ phương pháp nào mà developer thực hiện khi viết code, nó nên được cân nhắc dựa trên các giải pháp của cộng đồng developer lớn hơn.

Một phương pháp độc đáo, mới lạ có thể là một giải pháp sáng tạo nhưng nó có thể thiếu những cân nhắc mà các developer khác đã phát hiện ra trong nhiều năm.

Viết phần mềm là một quá trình phức tạp với nhiều bộ óc suy nghĩ về cách tốt nhất để giải quyết các vấn đề chung. Kết quả là có rất nhiều thực hành tốt nhất.

Làm theo các thực hành tốt nhất này giúp tiết kiệm thời gian vì các vấn đề không cần phải giải quyết lại (thay vào đó, các giải pháp hiện có cần được áp dụng một cách thích hợp).

Điều này cho phép các developer đứng “trên vai người khổng lồ”.

Hơn nữa, khi các developer khác nhau đóng góp theo thời gian, có một hiểu biết chung mà bất kỳ developer mới nào trong một dự án đều có thể hiểu được.

Có hai cấp độ thực hành tốt nhất: toàn ngành và toàn công ty. Thực hành toàn công ty nhìn chung là một tập hợp con của các thực tiễn toàn ngành nhưng được điều chỉnh cho phù hợp với từng công ty và sở thích của developer.

Một developer giỏi học hỏi các thực hành tốt nhất của công ty họ và áp dụng các thực hành tốt nhất trong toàn ngành để tiết kiệm thời gian và cải thiện chất lượng tổng thể của code.

5.) Viết code dễ duy trì và nâng cao

Code biên dịch, chạy và được kiểm tra tính đúng đắn. Mọi thứ có vẻ ổn, nhưng… làm thế nào dễ dàng thay đổi code trong tương lai? Điều gì xảy ra nếu một tính năng mới cần được thêm vào?

Kỹ sư và tác giả Martin Fowler nói: “Bất kỳ kẻ ngốc nào cũng có thể viết code mà máy tính có thể hiểu được. Còn lập trình viên giỏi viết code mà con người có thể hiểu được.

Mặc dù máy tính có thể chạy bất kỳ code hợp lệ nào, nhưng cuối cùng code vẫn được gìn giữ bởi con người.

Ở một số thời điểm, một developer sẽ phải đọc, hiểu và sửa đổi code được viết bởi một developer khác (người có thể không còn là thành viên công ty).

Phát triển phần mềm là một nỗ lực mang tính xã hội, với nhiều nhân viên và dựa vào cơ sở mã. Những câu hỏi như “Mã rõ ràng là bao nhiêu? Cần giải thích bao nhiêu? Mã có thể được xem và hiểu nhanh đến mức nào? ” tất cả đều giúp Nhà phát triển nhớ rằng họ không viết mã cho chính họ.

Một developer giỏi viết code chất lượng cao là code mà các Web developer khác có thể dễ dàng hiểu và sửa đổi.

6.) Cộng tác với đội ngũ

Mặc dù một web developer dành phần lớn thời gian của mình để tương tác với máy tính, nhưng thực tế môi trường làm việc của họ mang tính xã hội.

Điều quan trọng là phải tôn trọng đội nhóm, biết vai trò và trách nhiệm cũng như những gì được mong đợi.

Các câu hỏi lớn đảm bảo developer phù hợp với công ty và vai trò của họ:

  • Tầm nhìn / sứ mệnh / giá trị của công ty là gì?
  • Bộ sản phẩm được cung cấp bởi công ty là gì?
  • Khách hàng là ai?
  • Vấn đề được báo cáo cho ai?

Biết những chi tiết này cho phép developer phát triển trong bối cảnh của công ty hoặc tình huống cụ thể.

Do đó, một developer giỏi sẽ dành thời gian cần thiết để hiểu các tiêu chuẩn và thực hành tốt nhất của công ty. Họ cũng sẽ cải thiện quy trình phát triển sản phẩm theo cách tiết kiệm thời gian và tăng năng suất.

Quan trọng nhất, họ sẽ phải có một thái độ tích cực giúp cho nơi làm việc hiệu quả hơn và được hỗ trợ.

Một developer giỏi nhận ra rằng sự nghiệp và danh tiếng là trách nhiệm của họ. Họ cố gắng trở thành niềm vui khi được làm việc cùng và luôn tìm cách làm cho khối lượng công việc của nhóm nhẹ nhàng và hiệu quả hơn.

Một web developer giỏi không ngừng học hỏi

Công nghệ luôn phát triển, đó là một phần khiến nó trở nên thú vị.

Mặc dù một số nguyên tắc và cách tiếp cận của khoa học máy tính vẫn tồn tại trong nhiều thập kỷ, các lĩnh vực phát triển phần mềm liên tục thay đổi.

Một số lĩnh vực phần mềm ổn định hơn, những lĩnh vực khác thì không như vậy.

Phần mềm cũ gắn liền với công nghệ cũ hơn đòi hỏi bảo trì nhiều hơn với ít đổi mới, trong khi các lĩnh vực mới nổi có thể yêu cầu viết lại thường xuyên vài năm một lần.

Đó không nhất thiết là một vấn đề nếu nó được chấp nhận.

Kiến thức trong các lĩnh vực như khoa học dữ liệu, thiết kế UX, quản lý sản phẩm, digital marketingSEO, có thể củng cố hiểu biết tổng thể về công nghệ của developer, giúp họ liên hệ và làm việc với đồng nghiệp và khách hàng khắp các phòng ban và ngành.

Nói tóm lại, một web developer giỏi là một người học hỏi suốt đời luôn tìm cách mở rộng kiến thức và kỹ năng của họ qua từng năm.

Tham khảo brainstation.io

Categories
Dev's Corner

Những ngôn ngữ lập trình hàng đầu nên học trong năm nay

Các ngôn ngữ lập trình luôn phát triển giống như bất kỳ lĩnh vực chuyên nghiệp nào khác. Một số công nghệ trở nên thịnh hành, một số mất đi thời vàng son và việc dành thời gian tìm hiểu chúng không còn là điều khôn ngoan.

Đối với một newbie công nghệ đang cố gắng học lập trình, việc chọn ra công nghệ nào để học cho thể hơi phức tạp. Hãy để tôi giúp bạn.

Là một Java developer giàu kinh nghiệm và là một thầy giáo lâu năm, tôi có thể chia sẻ một số lời khuyên về các ngôn ngữ lập trình phổ biến nhất.

Đây là danh sách rút gọn của tôi về những cái tên chiến thắng.

5 Ngôn ngữ lập trình hàng đầu nên học

Java

  • Nền tảng: Web, Mobile, Desktop
  • Mức lương hàng năm: khoảng $ 79,000
Ngôn ngữ lập trình Java
Ngôn ngữ lập trình Java

Về Java

Đây là một trong những ngôn ngữ lập trình hàng đầu trên thế giới. Java được tạo ra từ năm 1995 và hiện nó thuộc sở hữu của gã khổng lồ công nghệ toàn cầu Oracle.

Đó là một ngôn ngữ hướng đối tượng được sử dụng rộng rãi hầu như ở mọi nơi.

Điều làm cho Java nổi bật đó là công nghệ dành cho các ứng dụng cấp doanh nghiệp phía máy chủ lớn.

Nó rất an toàn và có tính di động cũng như có cấu trúc cao. Java được sử dụng rộng rãi bởi các tập đoàn CNTT lớn, bao gồm Google, Amazon và Twitter.

Các kỹ năng viết mã Java đã có nhu cầu cao trong vài năm hoạt động và vẫn còn.

Học Java ở đâu

1. CodeGym

Codegym là một nền tảng học tập Java đã được game hóa. Đây là một khóa học được tổ chức tốt, tập trung vào việc vừa học vừa làm. Và rất vui khi chơi!

Nền tảng này có hơn 1200 nhiệm vụ ở nhiều cấp độ khác nhau. Khi bạn hoàn thành một nhiệm vụ, bạn sẽ nhận được xác minh ngay lập tức về giải pháp của mình.

Bạn có thể sử dụng phiên bản dành cho desktop nhưng cũng có phiên bản dành cho mobile để bạn có thể code từ điện thoại thông minh của mình mọi lúc mọi nơi.

Suốt khóa học, bạn di chuyển từ cấp độ này sang cấp độ khác giống như trong một trò chơi. Và tại một thời điểm nhất định, bạn có thể bắt đầu tạo một trò chơi của riêng mình.

2. Java Fundamentals by Pluralsight.

Nền tảng cung cấp một cái nhìn sâu sắc về các mẫu thiết kế. Đây là một trong những trở ngại đối với một lập trình viên mới.

Trong khóa học này, bạn có thể thiết lập kiến thức này theo đúng cách ngay từ đầu. Cùng với nhiều tính năng học tập tuyệt vời khác, nền tảng này rất đáng để thử.

3. Codecademy

Codecademy là một tài nguyên khác mà tôi khuyên bạn nên xem qua. Dự án miễn phí và có cấu trúc gọn gàng. Vì vậy, bạn có thể tạo ra giáo trình và theo lộ trình học tập của riêng bạn.

Mỗi khóa học bao gồm hơn 50 bài giảng và câu đố tương tác. Bên cạnh đó, bạn có cơ hội để nhờ thành viên cộng đồng đánh giá giúp code của mình.

Python

  • Nền tảng: Web, Desktop
  • Mức lương hàng năm: $ 76,500
Ngôn ngữ lập trình Python
Ngôn ngữ lập trình Python

Về Python

Có ba điều cốt lõi khiến Python trở thành công nghệ cần học hỏi.

Đầu tiên, nó là nguồn mở và miễn phí. Thứ hai, ngôn ngữ này dễ đọc khiến nó trở thành một trong những ngôn ngữ lập trình dễ học nhất. Và thứ ba, đây là công nghệ đằng sau các lĩnh vực yêu cầu cao của Khoa học Dữ liệu (Data Science) và Học máy (Machine Learning).

Sự thiếu hụt kỹ năng và chuyên gia ở lĩnh vực này là rất cao.

Hơn nữa, Python có các mô-đun mạnh mẽ cho các ứng dụng dựa trên GUI, khá tiện dụng cho các dự án được tải trực quan.

Học Python ở đâu

1. Learnpython.org

Tài nguyên này là một lựa chọn tuyệt vời để làm chủ Python từ đầu. Đó là một hướng dẫn tương tác với hơn 500.000 người học trên toàn thế giới.

Các khóa học được cấu trúc tỉ mỉ và dễ dàng để nắm bắt nội dung của nền tảng.

2. Learn Python the Hard way

Mặc dù tiêu đề dự án nghe có vẻ khá thách thức nhưng thực tế lại hoàn toàn khác.

Tại đây, bạn cũng có thể bắt đầu học Python khi chưa có kinh nghiệm code. Ngoài ra, nó dạy bạn xem kết quả từ code của bạn ngay từ đầu. Một loại phương pháp giải quyết vấn đề được triển khai trong các tác vụ code.

3. Invent with Python

Khóa học nhằm mang lại cho bạn sức mạnh sáng tạo cùng với trình độ code thành thạo. Bên cạnh việc tự học ngôn ngữ, bạn có thể phát minh ra các trò chơi của riêng mình với sự trợ giúp của các kỹ năng mới có.

Kotlin

  • Nền tảng: Web, Mobile, Desktop, Máy chủ
  • Mức lương hàng năm: khoảng $ 136,000
Ngôn ngữ lập trình Kotlin
Ngôn ngữ lập trình Kotlin

Về Kotlin

Kotlin là một ngôn ngữ lập trình tương đối mới. Được phát hành chính thức lần đầu tiên vào năm 2016 và giống như một người anh em của Java.

Nó thực sự nhằm mục đích vượt trội hơn đàn anh. Nhưng tôi sẽ nói rằng vẫn còn một con đường để đi.

Kotlin được sử dụng rộng rãi để phát triển Android. Và nó rất được hỗ trợ bởi Google. Nhưng một câu chuyện gần đây là một số công cụ mà Java có được tạo lại cho Kotlin.

Một số công ty lớn như Coursera hoặc Pinterest thích Kotlin hơn bất cứ thứ gì khác. Một newbie có thể thấy Kotlin hơi phức tạp.

Nhưng nếu bạn học Java trước và sau đó trau dồi kỹ năng của mình bằng Kotlin, bạn sẽ đi xa hơn nhiều so với developer bình thường.

Học Kotlin ở đâu

1. Kotlin for Java Developer ở Udemy

Khóa học là một lựa chọn tuyệt vời để nâng cao kỹ năng Java với công nghệ tiên tiến cho mobile development. Nó được tạo ra để giúp các nhà phát triển Java thành thạo ngôn ngữ này ngay lập tức.

2. The Complete Kotlin Developer Course

Đây là một khóa học khác của Udemy sẽ giúp bạn hiểu sâu hơn về phát triển thiết bị Android. Nó đào sâu vào các khái niệm OOP chung cũng khá cần thiết cho những người ở điểm bắt đầu.

3. Kotlin for beginner: Learning Programming with Kotlin

Tại đây, bạn thực sự có thể bắt đầu với những kiến thức cơ bản về lập trình và bước qua con đường phát triển ứng dụng dành cho thiết bị di động một cách tự tin.

Swift

  • Nền tảng: Mobile (cụ thể là ứng dụng iOS và macOS)
  • Mức lương hàng năm: $ 96,000
Ngôn ngữ lập trình Swift
Ngôn ngữ lập trình Swift

Về Swift

Ngôn ngữ lập trình này là sự kế thừa của Objective-C nổi tiếng, công nghệ đằng sau thế giới Apple.

Công ty đã phát hành Swift vào năm 2014, giống như Kotlin, nó là một ngôn ngữ mã tương đối mới nhưng có như cầu rất cao.

Những gã khổng lồ công nghệ như WordPress, SoundCloud hoặc Mozilla FireFox sử dụng Swift cho các ứng dụng iOS của họ.

Với sự phân rã của Objective-C, Swift đã trở thành ngôn ngữ chính thức để phát triển iOS và macOS.

Học Swift ở đâu

1. Complete iOS 14, Swift 5 and Machine Learning with CoreML

Những người sáng tạo khóa học hứa rằng khi kết thúc nghiên cứu, bạn sẽ có thể tạo bất kỳ ứng dụng nào bạn muốn.

Chà, có lẽ không nhanh như vậy. Nhưng bạn chắc chắn sẽ học Swift cơ bản, có được một số kinh nghiệm code hữu ích và nắm bắt được Machine Learning.

2. SwiftUI Masterclass 2021 – iOS 14 App Development & Swift 5

Cái này sâu và phức tạp hơn một chút. Tại đây, bạn sẽ nắm vững kiến thức cơ bản về tạo mẫu (prototype), tạo ứng dụng với UI tuyệt vời và tìm hiểu cách xuất bản ứng dụng trên AppStore.

3. Cracking Code Interview & Algorithm Design in Swift (2021)

Khóa học này được thực hiện dưới hình thức phỏng vấn. Từng bước bạn tìm ra cách vượt qua những trở ngại và dần dần học cách tiếp cận mới.

C#

  • Nền tảng: Đa nền tảng, bao gồm các ứng dụng phần mềm doanh nghiệp và mobile
  • Mức lương hàng năm: 68.500 đô la
Ngôn ngữ lập trình C#
Ngôn ngữ lập trình C#

Về C#

Đây là một ngôn ngữ lập trình có lịch sử và danh tiếng. Đây là một lựa chọn cần thiết để phát triển Windows và bất kỳ thứ gì dựa trên nền tảng .NET.

Nó được tạo ra bởi Microsoft và nó vẫn là một trong những công nghệ tốt nhất từng có cho sự phát triển ở cấp độ doanh nghiệp.

Nhưng không chỉ có vậy! C # cũng được sử dụng trong game Unity, đây là môi trường phát triển hàng đầu cho ngành công nghiệp game.

Học C# ở đâu

1. C# Basics by Treehouse

Tại đây, bạn có thể tìm hiểu các khái niệm cơ bản và thực hành mã, hoàn thành các thử thách và tạo các chương trình đơn giản đầu tiên của mình. Hoặc có thể không đơn giản nếu bạn quyết định tìm hiểu sâu hơn.

2. C# Basics for Beginner: Learn C# Fundamentals by Coding

Người tạo khóa học giải thích mọi thứ và chi tiết và theo cách rất rõ ràng. Điều này làm cho lời hứa học C # cơ bản chỉ trong 6 giờ nghe có vẻ hợp lý. Mặc dù vậy, hãy sẵn sàng vượt qua thời gian đó: nó vẫn là chương trình cấp độ người lớn.

3. C# Fundamentals by Scott Allen

Bạn sẽ đi sâu vào các nguyên tắc cơ bản của nền tảng C # và .NET. Từng bước, người hướng dẫn của khóa học sẽ hướng dẫn bạn những điều cần thiết của việc code và tạo các dự án C # đầu tiên.

Bạn cũng sẽ tìm hiểu về cách gỡ lỗi ứng dụng và kiểm tra khả năng hoạt động của code.

Tóm lại

Có rất nhiều lựa chọn cho một người mới học lập trình. Cũng như có hàng trăm ngôn ngữ lập trình để bắt đầu.

Nhưng những công nghệ được đánh giá ở đây là những công nghệ được đánh giá cao nhất trên thế giới và chúng vẫn duy trì như vậy trong nhiều năm.

Là một gia sư Java dày dạn kinh nghiệm, tôi tin rằng đây là những ngôn ngữ lập trình tốt nhất bạn nên học.

Đối với một người xem xét bắt đầu sự nghiệp với tư cách là một nhà phát triển phần mềm, thì bất kỳ ngôn ngữ lập trình nào trong số năm cái trên đều là một lựa chọn tuyệt vời.

Chúng đang có nhu cầu cao trên toàn cầu và sẽ vẫn như vậy trong tương lai.

Nếu bạn đã có kỹ năng code, bạn có thể làm mới kiến thức hoặc bắt đầu học công nghệ mới. Dù bạn chọn gì, điều quan trọng thực sự là dành thời gian thường xuyên cho việc học. Và yêu cầu giúp đỡ khi bạn cần.

Tại một thời điểm nhất định, bạn sẽ thấy mình code một cách dễ dàng. Bây giờ thì nó có vẻ không phải vậy.

Nhưng tôi đã từng giống như bạn. Vì vậy, hãy tin tôi, việc trở thành một nhà phát triển phần mềm tuyệt vời là điều hoàn toàn có thể đạt được.

Nguồn: John Selawsky.

Categories
Dev's Corner

Cộng đồng PHP: Mâu thuẫn và Tầm nhìn

Một bài viết tâm huyết từ một lập trình viên PHP. Dù bạn là developer trẻ, đang có hứng thú với ngôn ngữ lập trình này, hay một leader nhiều năm kinh nghiệm, hãy cùng Gambaru nhìn nhận góc nhìn của Neal và thảo luận ở phần comment cuối bài viết nhé.

Bạn có quan tâm về lập trình PHP?
Bạn có quan tâm về lập trình PHP? Ảnh: Pixabay – Pexels

Tôi đã lập trình với PHP được khoảng 7 năm, tự mình mày mò, khám phá về các framework, library, hệ sinh thái xung quanh các nền tảng quản lý nội dung, và quen biết một cộng đồng đông đảo lập trình viên PHP.

Rất nhiều người đã trở thành những người bạn thực sự và theo đánh giá của các bài phát biểu tại các diễn đàn tôi từng tham dự, tôi biết mình không đơn độc khi tin rằng chúng tôi có thể giúp mọi người cùng học hỏi và phát triển, xây dựng phần mềm tốt hơn, cũng như chung tay hỗ trợ lập trình viên tiến xa hơn trong sự nghiệp.

Ngôn ngữ PHP thường bị chỉ trích và chế nhạo bởi những lập trình viên cho rằng ngôn ngữ chúng ta lựa chọn chẳng khác gì một mớ hỗn độn và chỉ dân nghiệp dư mới sử dụng PHP.

(Có thể quan điểm này có lý trong quá khứ, nhưng bây giờ chỉ có người thiếu hiểu biết mới tranh luận như vậy, đặc biệt khi sự thật là PHP 7 đã đóng góp rất nhiều để giúp PHP trở thành một ngôn ngữ hoàn thiện hơn).

Tuy nhiên, cộng đồng PHP chẳng ngán gì “dăm ba lời khen chê này”, họ ngày càng bản lĩnh hơn và tiếp tục xây dựng các sản phẩm, thư viện, công cụ và tính năng mới.

Trong bài viết này, tôi muốn nói đến mâu thuẫn ngày càng gia tăng trong chính cộng đồng PHP, giữa những nhóm lập trình viên ủng hộ giữa các framework Laravel, Symfony và Doctrine ORM.

Nhiều người chuộng Symfony/Doctrine đưa ra những nhận xét chê bai về Laravel.

Đáp lại, những người ủng hộ Laravel dường như ngày càng trở nên chống đối và có xu hướng phản ứng quyết liệt với những lời chỉ trích (dù mang tính xây dựng hay không). 

Mâu thuẫn ngay trong chính cộng đồng PHP
Mâu thuẫn ngay trong chính cộng đồng PHP. Ảnh: freepik

Tôi chắc chắn rằng hầu hết lập trình viên chúng ta đều đã từng bị chỉ trích về cách mình code.

Chỉ trích cũng có đủ loại, có thể là “Cái quái gì thế này?” hoặc “Anh nên thử áp dụng các nguyên tắc SOLID / [x design pattern] ở đây, vì nó sẽ tiết kiệm thời gian và đỡ phải bực mình sau này đấy”.

Cách ta đưa ra và đón nhận phê bình đặt nền tảng cho cách ta phát triển như một nhà lập trình chuyên nghiệp cũng như sự nhìn nhận của những người xung quanh.

Đối với những người lãnh đạo, nó xác định cách những người theo gương và tôn trọng bạn cư xử ra sao đối với đồng nghiệp của họ.

Hiện nay, ta có thể thấy các lập trình viên ở vị trí Senior, các leader dự án và những nhân vật có tầm ảnh hưởng tham gia vào các cuộc tranh luận công khai trên các nền tảng như Twitter và Reddit.

Bạn đọc được những bình luận có tính gây hấn về khả năng mở rộng của dự án với framework x hoặc phương thức của library y chứa bao nhiêu dòng code.

Họ làm như vậy chẳng để đạt được điều gì ngoài việc thuyết phục người đọc rằng họ đã đúng khi không dùng những framework hay tool này.

Tóm lại, khi cứ mãi tranh luận như vậy, chúng ta đang cướp đi cơ hội của những lập trình viên ít kinh nghiệm hơn để thử nghiệm và trải nghiệm các cách tiếp cận khác nhau đối với các giải pháp chung.

Chúng ta phủ nhận họ có khả năng thoải mái thể hiện quan điểm và thảo luận về những cái lợi và hại của mỗi framework mà không sợ bị chế giễu.

Chúng ta ngăn họ đánh giá và học cách chọn công cụ phù hợp cho từng công việc cụ thể.

Chúng ta dần dần ngăn cản tiến trình sự nghiệp của họ. Điều này tạo ra một rào cản có hại cho họ và cho cả chúng ta như một hệ sinh thái của những nhà lập trình PHP.

Hãy nói về Symfony và Laravel nàoHãy nói về Symfony và Laravel nào
Hãy nói về Symfony và Laravel nào! Ảnh: Pixabay – Pexels

Về cá nhân mình, Symfony là framework ưa thích của tôi, nhưng tôi đã làm việc chuyên nghiệp với cả Laravel [versions 4 & 5] và Zend.

Symfony sử dụng Doctrine 1, triển khai ActiveRecord pattern, bao gồm rất nhiều tính năng bổ sung theo mặc định và khiến việc liên kết business logic với framework trở nên cực kỳ dễ dàng.

Là một opinionated framework (có tính quy chuẩn và áp đặt), Symfony đặt ra các công cụ nó mong đợi bạn sử dụng ngay trước bạn và cho phép bạn nhanh chóng bắt đầu công việc.

Symfony 2 bắt đầu thay đổi tất cả những điều đó.

Lập trình viên sử dụng Symfony muốn có nhiều sự lựa chọn và tính linh hoạt hơn khi chọn các công cụ và những gì cần đưa vào dự án. Họ muốn đưa các thư viện khác vào dễ dàng hơn nếu giải pháp ban đầu không còn ổn nữa.

Symfony đã phát triển rất nhanh giữa các phiên bản 1 và 2 và trở nên khác biệt so với phiên bản ban đầu.

Nó chuyển từ một framework cố định với tất cả các công cụ được đóng gói bên trong và một mức độ chưa đủ tinh vi sang khả năng tương tác với các gói bên ngoài Symfony.

Symfony đã đi một chặng đường dài để chuyển mình thành một tập hợp các gói và thành phần có thể tái sử dụng và việc kết hợp các đề xuất của PHP-FIG có nghĩa là các thành phần có thể dễ dàng được đưa vào các framework, library và hệ thống CMS khác.

Lập trình viên sử dụng Symfony có quyền tự hào về Symfony và mong muốn chia sẻ cách họ làm được điều đó.

Phần lớn các nhà lập trình tôi biết đồng tình rằng tài liệu của Laravel dễ tiếp cận hơn của Symfony và cũng dễ bắt đầu với Laravel hơn nhiều.

Ngày nay, Laravel có tính áp đặt hơn Symfony, vì vậy, tài liệu hướng dẫn có thể ít trừu tượng hơn và trực tiếp hơn về cách đạt được mục tiêu với các công cụ được cung cấp.

Người ta thường có xu hướng gán Laravel là framework cho người mới bắt đầu hoặc chỉ là một công cụ cho RAD (Rapid Application Development – phát triển ứng dụng / tạo mẫu nhanh) và khuyên không dùng nó cho các dự án phức tạp hơn.

Tất nhiên, phản ứng từ người dùng Laravel là sau đó sẽ là “Chà, nó đã được sử dụng trên trang x đó nhe!”.

Người dùng Doctrine phản ứng lại “Tụi tôi đã bỏ ActiveRecord từ lâu rồi, ORM của mấy ông phèn quá”, và rồi bên kia tiếp “Muốn cãi nhau về facade pattern thật sao?”, rồi lại một hồi dài tranh cãi.

Than phiền duy nhất của tôi về Laravel Eloquent là việc thêm các foreign key và index vào cơ sở dữ liệu sẽ tốn nhiều công sức hơn.

Tôi nghĩ đây là điều có độ ưu tiên cao khi thiết kế cấu trúc dữ liệu. Tôi đã kế thừa nhiều dự án Laravel bởi các công ty khác nhau, và không có dự án nào trong số đó có một foreign key hoặc index nào.

Điều này dẫn đến mất tính toàn vẹn của dữ liệu cũng như các vấn đề khác về hiệu suất.

Tôi cũng cảm thấy rằng Laravel và nhiều tài nguyên hướng dẫn về nó khuyến khích người dùng liên kết code ràng buộc với framework.

Một dev ở công ty tôi từng làm việc đã dành hàng tháng trời làm một việc đáng ra rất đơn giản là nâng cấp Laravel 4 lên Laravel 5. Anh chàng sao chép và viết lại các file và file logic được đặt trong controller.

Nếu như code được tách ra thì công ty hẳn sẽ chi ít tiền hơn cho việc nâng cấp này và anh ấy đã có thể chuyển sang phát triển tính năng mới sớm hơn nhiều.

Theo tôi, Laravel có thể được sử dụng cho các ứng dụng quy mô lớn, nhưng trừ khi lập trình viên đủ kinh nghiệm để biết những gì họ đang tìm kiếm trong tài liệu để cho phép scale ứng dụng, họ có thể sẽ không dùng Laravel.

Phải thừa nhận rằng rất dễ để liên kết code với Symfony controller, nhưng cộng đồng Symfony biết rằng làm như vậy là một ý tưởng tồi.

Theo trải nghiệm riêng, tôi chưa thấy người dùng Symfony chế nhạo ý tưởng tách code nhưng tôi thấy một số người dùng Laravel chế giễu cách làm này.

Dấu hiệu của một vấn đề sâu xa hơn
Tuy nhiên, tranh luận về việc này chỉ là một dấu hiệu của một vấn đề sâu xa hơn. Ảnh: Pixabay – Pexels

Lập trình viên chúng ta thường đưa ra lựa chọn về các công cụ yêu thích và hợp tác với những người khác đã giải quyết các vấn đề tương tự theo cùng cách.

Khi hạn chế bản thân bằng cách liên tục sử dụng những gì chúng ta biết và ở trong cộng đồng những người có cùng tư duy và ý tưởng, chúng ta hạn chế cách mình code và cả con đường sự nghiệp.

Tự ta buộc xích vào chân mình.

Việc ta giải quyết vấn đề theo một cách không nhất thiết có nghĩa là cách tiếp cận của người khác tốt hơn hay tệ hơn mà chỉ là chúng khác nhau mà thôi
Việc ta giải quyết vấn đề theo một cách không nhất thiết có nghĩa là cách tiếp cận của người khác tốt hơn hay tệ hơn mà chỉ là chúng khác nhau mà thôi. Ảnh: cottonbro – Pexels

Điều khiến tôi lo lắng nhất là ảnh hưởng mà chúng ta có thể có đối với lựa chọn của các lập trình viên trẻ, ít kinh nghiệm.

Có lẽ ai cũng đều cảm thấy hài lòng khi khuyên bảo một người và sau đó thấy họ nối gót mình.

Tuy nhiên, điều ta không nên làm là khuyến khích lập trình viên trẻ tuổi đừng thử nghiệm framework x hoặc y, đừng học lập trình ngôn ngữ z vì những thành kiến ​​của riêng mình. 

Hãy để người trẻ tự thử nghiệm và cho họ lời khuyên
Hãy để người trẻ tự thử nghiệm và cho họ lời khuyên. Ảnh: Arijit manna -Unsplash

Hãy để người trẻ tự thử nghiệm và cho họ lời khuyên. Hãy quan sát cách một người đưa ra và đón nhận chỉ trích.

Hãy nghĩ thử “Đây có phải là loại phản hồi đóng góp tích cực cho cộng đồng không? Đây có phải là mẫu người tôi nên lấy làm gương không? ”

Với tư cách là một leader, hãy tự hỏi bản thân “Tôi có đang buộc chiếc xích của chính mình vào chân những người xung quanh không? Tôi có ảnh hưởng tiêu cực đến người khác thông qua sự lựa chọn của chính mình không? ”

Các cuộc tranh luận gay gắt không có tác dụng gì trong việc thúc đẩy sự nghiệp chung của cộng đồng lập trình viên mà chỉ khiến mọi người e ngại gia nhập cộng đồng PHP toàn cầu mà thôi.

Theo Neal Brooks