28-Nên học front end hay backend

Bạn đang phân vân trong việc học để trở thành một lập trình viên frontend hay một lập trình viên backend? Đây sẽ là một nhiệm vụ khó khăn nếu bạn lần đầu bước vào thế giới lập trình – nhưng không cần phải lo lắng khi bạn đã có hướng dẫn này. Chúng ta hãy đi sâu vào sự khác biệt giữa phát triển web frontend và phát triển backend và những gì mọi người mong đợi từ một lập trình viên web backend hay frontend!

Phát Triển Web Frontend

PHÁT TRIỂN FRONTEND LÀ GÌ?

Định nghĩa: Phát triển frontend là quản lý mọi thứ mà người dùng nhìn thấy đầu tiên trong trình duyệt hoặc ứng dụng của họ. Các lập trình viên frontend chịu trách nhiệm tạo ra giao diện của một trang web.

Phát triển frontend chủ yếu tập trung vào những gì một số người gọi là “client side” của sự phát triển. Các lập trình viên frontend sẽ tham gia vào việc phân tích code, thiết kế và debug các ứng dụng cùng với việc đảm bảo trải nghiệm người dùng diễn ra liền mạch. Bạn sẽ quản lý những gì mọi người nhìn thấy đầu tiên trong trình duyệt của họ. Là một lập trình viên frontend, bạn chịu trách nhiệm về giao diện, cảm nhận và cuối cùng là thiết kế của một trang web.

NGÔN NGỮ LẬP TRÌNH

28-ngôn ngữ frontend

Ngôn ngữ lập trình frontend bao gồm HTML, CSS và Javascript. Mặc dù JQuery không còn hợp thời nữa (các trình duyệt hiện đại đã có thể thực hiện cùng một công việc, nhưng nhanh hơn nhiều so với jQuery), nhiều dự án cũ vẫn sử dụng thư viện JavaScript, vì vậy đừng ngạc nhiên khi thấy nó trong chương trình giảng dạy về lập trình. Bạn cũng sẽ học được rất nhiều về thiết kế responsive cùng với kiểu chữ, bố cục, hệ thống lưới và lý thuyết màu sắc. Khi tham gia các dự án mà bạn sẽ làm việc với tư cách là lập trình viên frontend, hãy nghĩ đến việc tạo và thiết kế lại trang web. Để trở thành lập trình viên frontend (đôi khi còn được gọi là lập trình viên Javascript), bạn không cần kỹ năng lập trình backend. Các trang web được tạo bởi các lập trình viên frontend sẽ không tương tác với các thông tin được lưu trữ trên cơ sở dữ liệu để hoạt động. Nội dung sẽ được cố định, có nghĩa là phần lớn dữ liệu mới sẽ không được tải lên liên tục. Chủ doanh nghiệp nhỏ và nhà hàng thường là những ví dụ tuyệt vời về các trang web tĩnh này.

CÔNG VIỆC LẬP TRÌNH FRONTEND

Có nhiều vị trí công việc khác nhau cho các lập trình viên frontend. Điều quan trọng cần nhớ là trong khi một chức danh có thể yêu cầu nhiệm vụ cụ thể tại một công ty; nó có thể có nghĩa là một cái gì đó hoàn toàn khác nhau, vì vậy tốt nhất là luôn hiểu rõ về vai trò cụ thể đó đòi hỏi gì. Hãy tìm kiếm các chức danh công việc sau đây trong quá trình tìm việc của bạn:

  • Lập trình viên frontend
  • Thiết kế web cũng là một tiêu đề phổ biến khác.
  • Các nhà thiết kế UI / UX là các lập trình viên frontend nhưng tập trung hơn vào User Interface và User Experience. Các nhà thiết kế UI tập trung vào các khía cạnh trực quan của thiết kế trang web trong khi các nhà thiết kế UX thực hiện nhiều thử nghiệm người dùng để đảm bảo trang web hoạt động tốt và mượt nhất.

Theo PayScale, mức lương khởi điểm trung bình cho các lập trình viên frontend là khoảng $67k. Mức lương dao động từ khoảng $42k – $108k dựa trên kinh nghiệm, địa điểm và ngành.

KHÓA HỌC VỀ LẬP TRÌNH FRONTEND

Nếu bạn đang suy nghĩ về việc học lập trình frontend? Hãy xem các trường có đánh giá tuyệt vời về các khóa học lập trình frontend của họ:

Phát Triển Web Backend

PHÁT TRIỂN BACKEND LÀ GÌ?

28-Backend-Development

Định nghĩa: Phát triển backend đề cập đến phía máy chủ của một ứng dụng và mọi thứ giao tiếp giữa cơ sở dữ liệu và trình duyệt.

Backend Development đề cập đến phía máy chủ nơi bạn chủ yếu tập trung vào cách trang web hoạt động. Thực hiện cập nhật và thay đổi ngoài việc giám sát chức năng của trang web sẽ là trách nhiệm chính của bạn. Loại phát triển web này thường bao gồm ba phần: máy chủ, ứng dụng và cơ sở dữ liệu. Code được viết bởi các lập trình viên backend là những gì truyền thông tin cơ sở dữ liệu đến trình duyệt. Bất cứ điều gì bạn có thể nhìn thấy dễ dàng bằng mắt như cơ sở dữ liệu và máy chủ là công việc của lập trình viên backend. Các vị trí lập trình viên backend thường được gọi là lập trình viên hoặc lập trình viên web.

NGÔN NGỮ LẬP TRÌNH BACKEND

Nhiều lập trình viên backend biết các ngôn ngữ frontend như HTML và CSS nhưng cần sử dụng các ngôn ngữ như Java, PHP, Ruby on Rails, Python và .Net để hoàn thành công việc backend. Các lập trình viên backend tập trung nhiều nhất vào tốc độ và độ phản hồi của trang web. Các ngôn ngữ này được sử dụng để tạo các trang web động khác với các trang web tĩnh trong đó các loại trang web này lưu trữ thông tin cơ sở dữ liệu. Nội dung trên trang web liên tục thay đổi và cập nhật. Ví dụ về các trang web động bao gồm Facebook, Twitter và Google Maps.

CÔNG VIỆC LẬP TRÌNH BACKEND

Theo PayScale, mức lương khởi điểm trung bình cho các lập trình viên backend là khoảng $70k. Mức lương dao động từ khoảng $38k –  $117k dựa trên kinh nghiệm, địa điểm và ngành.

KẾT LUẬN

Mặc dù tôi thấy không có lý do tại sao bạn không thể thực hiện đồng thời cả hai, ví dụ học Python trong khi học HTML5, CSS và JavaScript, nếu bạn phải chọn một do giới hạn về thời gian hoặc các ràng buộc khác thì tôi sẽ nói “Hãy chọn frontend trước”.

Thành thật mà nói là nó dễ dàng hơn và có nhiều công cụ có sẵn để cho phép bạn kết hợp tạo ra một thứ gì đó nhanh chóng và có vẻ tốt và sẽ giúp bạn tự tin học tiếp đến cấp độ tiếp theo.

Chúng ta hãy nhớ lại tương tự như ở trường trung học, bạn bắt đầu với phép tính cơ bản và sau đó thực hiện ngược lại thông qua lượng giác và sau đó kết thúc với đại số bắt đầu năm cuối trung học? Có một lý do khiến các nền giáo dục được sắp xếp xung quanh người mới bắt đầu ~> trung cấp ~> mô hình giải trình tự nâng cao.

Điều quan trọng nữa là về sự phân chia thế giới phát triển web của bạn thành đơn giản chỉ là frontend so với backend.

Đầu tiên, sự phân chia này bỏ qua phần giữa của mọi thứ, tức là sự hiểu biết ở cấp độ protocol. Tôi có thể đảm bảo bạn sẽ phạm phải những lỗi ngây thơ và sự nghiệp phát triển web của bạn sẽ gặp phải một trở ngại lớn do không hiểu rõ về HTTP ở mức tối thiểu: GET, POST, HEAD, http vs https, cookie (session vs persistent), v.v … Kiến thức về TCP/IP cũng rất quan trọng, ít nhất là đến mức bạn thành thạo 100% về khái niệm socket (địa chỉ IP + cổng), session, khái niệm về giao tiếp stateful vs stateless, DNS là gì, proxy và reverse proxy, mô hình OSI 7 lớp và localhost là gì và tại sao nó lại quan trọng.

Thứ hai, sự phân chia của thế giới phát triển web thành frontend và backend bỏ qua thực tế là lập trình fullstack đang rất phổ biến và làm lu mờ ranh giới giữa hai bên (client vs server).

28-fullstack development

Vì vậy, sau khi bạn cảm thấy thoải mái với HTML / CSS / JS ở client side và vai trò của mỗi loại và đã trải nghiệm đủ với Python trên server để đọc / ghi vào cơ sở dữ liệu và gửi phản hồi lại cho client, tôi sẽ chuyển qua nodejs và trở thành lập trình viên fullstack trong cộng đồng IT.

Một số tài nguyên hữu ích: