Để trở thành Back-end Developer nên bắt đầu học ngôn ngữ lập trình nào?

Theo em được biết để trở thành Back-end developer thì cần biết nhiều ngôn ngữ phía Server cũng như biết thao tác với cơ sở dữ liệu. Ví dụ như:

  • Ngôn ngữ server-side để viết back-end: C#, Java, Python, Ruby, ….
  • Kiến thức về database SQL: MS SQL Server, MySQL, …
  • Kiến thức về web nói chung, cách viết Web Service, cách đăng nhập và phân quyền .
  • Kiến thức về 1 số CMS: WordPress, Joomla, Umbraco, ….

Nhưng đối với một sinh viên mới ra trường như em, thì nên tập trung vào phát triển kiến thức nào trước làm nền tảng và nếu được thì anh chị hãy chia sẻ cho em về lộ trình học rất nhiều thứ ở trên với ạ ?

Từ khóa: tech job, nghề nghiệp, Lập trình, Công nghệ thông tin

Trả lời

Anh thì thấy có 2 hướng phát triển từ anh và chính bạn bè anh:

- Hướng thứ nhất: là cái gì cũng làm, cái gì cũng học, công nghệ gì cũng chơi, làm dự án vài tháng là vọt qua dự án khác. Nếu em đi theo hướng này thì em sẽ biết được rất nhiều công nghệ nhưng chắc chắn một điều đó là em không biết sâu một công nghệ nào hết nếu nhảy liên tục như vậy. Về lợi ích đó là em biết nhiều công nghệ và có thể là tìm ra được công nghệ mình thích hoặc ngôn ngữ mình thích hoặc là một mảng mà lâu nay em thích nhưng giờ mới bik chẳng hạn, anh ví dụ: trước em thích mobile nhưng làm một thời gian em lại thấy thích làm web hơn, bla bla

- Hướng thứ 2: là biết mình thích cái gì rồi thì đào sâu vào cái đó. Ví dụ như anh là back-end developer (công việc chính) nhưng anh cũng biết làm front-end (một ít kiến thức về angular), hướng xác định này anh đi sâu hẳn về phía back-end luôn, nhắm đến các mục tiêu như design system, tối ưu hóa, thiết kế api, giải quyết logic nghiệp phụ, bla bla. Tóm lại đây là hướng đi sâu vào cái em đã thích, một mảng em thích nó có rất nhiều khía cạnh để khai thác, anh ví dụ: ban đầu đi làm chỉ cần code xong task là em rất vui rồi, nhưng code xong chưa phải là xong, code em xấu em phải có kĩ năng tự review, code em chậm thì em phải thêm kỹ năng optimize, quy trình deploy cùi thì em phải tìm cách thực hiện CI/CD, kiến trúc dở thiếu phù hợp thì em phải xây dựng kiến trúc, viết api xong còn phải document lại cho người khác sài, nếu em public ra ngoài thì phải gửi tài liệu cho người khác intergrate vào... rất nhiều thứ để học sâu về một mảng và mở rộng ra mấy cái liên quan hỗ trợ mảng đó.

Lời khuyên:

- Mới ra trường thì cứ trải nghiệm công việc tầm 1 năm đi nhưng điều anh nói trên có thể là rất nhiều người nói rồi nhưng em chưa trải nghiệm qua khó khăn đó em sẽ không nhớ và không hiểu được. Kiến thức nên tảng ở thời đại học rất quan trong, đôi khi cái nó chính là cái ý tưởng để em giải quyết công việc.

Anh ví dụ: Một bảng có vài trăm cột thì làm sao query cho nhanh, đại học dạy em răng: muốn nhanh thì chỉ cần lấy những cột em cần ra là được, đừng cố select hết tất cả => từ đấy em có ý tưởng viết câu query generate ra những cột em cần theo config truyền vào. Một ý tưởng đơn giản nhưng cải thiện hiệu xuất query rất nhiều.

Các nguyên tắc được học như OOP, SOLID hay các principle là cực kì quan trong, nếu em muốn trở thành một developer xịn xò thì các nguyên tác là thứ không thể bỏ qua. Nguyên tắc không phải là chân lí, có nhiều trường hợp nguyên tắc không phù hợp, nếu không phù hợp thì phải học tiếp bổ xung thêm nguyên tác khác vào. Tất nhiên không phải ai cũng quan tâm đến nguyên tắc, có những người họ làm rất máy móc và rút ra từ kinh nghiệm sai lầm, nhưng làm như vậy thì rất slow growth, em phải thưởng xuyên đọc tech, refactor code của bản thân, lần sau phải code ok hơn lần trc, kiếm một khía cạnh nào đó mà đào sâu vào như vậy mới tiến bộ được. Đi làm lâu sẽ thấy những cái dạy ở thời đại học là chân lí cả đấy. Vận dụng được hết em sẽ cải thiện công việc của mình rất nhiều. Trải nghiệm rồi em sẽ hiểu. Roadmap trên mạng rất nhiều, nhưng cứ phải xác định cái mình muốn cái đã

Làm FullStack luôn đi bạn, khỏi cần phân biệt Back vs Front :D

Xem thêm cách dùng mấy cái realtime database của các dịch vụ như firebase:


Những thứ bạn kể, ý kiến của mình là:

+ Học Java hoặc C#

+ Tham gia làm 1 sản phẩm đóng gói hoàn chỉnh

Nếu có thể bạn hãy chọn assembly

Đối với sinh viên mới ra trường thì mình nên nghĩ chọn 1 ngôn ngữ Backend trước rồi học 1 framework kèm theo (như Ruby-Ruby On Rails, Python-Django, Java-Spring...), song song đó là học về SQL nói chung. (Nếu bạn chọn Nodejs làm ngôn ngữ backend thì nên học NoSQL). Vì hầu hết các framework backend đều đi kèm ORM nên việc truy vấn database sẽ đơn giản hơn. Sau đó làm 1 trang web có đầu đủ phân quyền, đăng nhập... Rồi thử sức với API, Caching... (mình không nghĩ Back-end developer cần biết về CMS).

Ps: Dưới đây là bài viết khá hay về con đường của lập trình viên Backend: Mordern Backend Developer in 2018: https://medium.com/tech-tajawal/modern-backend-developer-in-2018-6b3f7b5f8b9

Nội dung liên quan

Học sinh cấp 3 nên tìm hiểu những ngôn ngữ lập trình nào trước khi lên đại học?

Em dự định sẽ học CNTT ở ĐH FPT năm tới. Các anh chị có thể gợi ý nên học trước những ngôn ngữ lập trình nào để chuẩn bị tốt cho việc học ở đh không ạ?

Tại sao nút nguồn các thiết bị điện tử đều là biểu tượng hình tròn và một gạch dọc?

Nút nguồn của các thiết bị điện tử đã trở nên quá quen thuộc với chúng ta, nhưng có bao giờ bạn thắc mắc vì sao nút nguồn lại là biểu tượng này chưa?Tất cả các thiết bị điện tử từ di động, đến tivi, máy tính xách tay, máy giặt, lò vi sóng... đều mang biểu tượng này tại nút nguồn.Nhưng đảm bảo rằng, bạn thấy biểu tượng nút nguồn ở khắp mọi nơi. Thậm chí có thể nói đó là biểu tượng phổ biến nhất được sử dụng trong thế kỷ này. Mỗi ngày, bạn bật và tắt điện thoại di động, TV, máy tính xách tay, lò vi sóng, máy giặt, hoặc bất kỳ thiết bị điện tử khác và bạn thấy biểu tượng này trên nút .Nhìn kĩ biểu tượng này chúng ta dễ dàng nhận thấy có một gạch ngắn lồng vào một vòng tròn. Thực ra nó chính là số 1 được lồng vào bên trong số 0.Trước đây, những nhà kỹ sư khi mới bắt đầu đánh dấu nút nguồn mở, tắt đã sử dụng hệ nhị phân để phân biệt. Đương nhiên trong hệ thống nhị phân, 1 có nghĩa là "mở" và 0 có nghĩa là "tắt".Cho đến năm 1973, dựa trên nền tảng này "Hội đồng thiết bị điện tử thế giới" đã quyết định lấy hình ảnh cách điệu hóa số 0 và số 1 lồng vào nhau để chỉ trạng thái standby cho tất cả các thiết bị điện tử.Nhưng sau đó một thời gian, tổ chức IEEE (một tổ chức danh tiếng trong lĩnh vực điện tử) đã quyết định thay đổi định nghĩa của biểu tượng trên bằng cách phức hợp cho nó chức năng nguồn (có khả năng mở hoặc tắt) cho tất cả các thiết bị điện tử.Và đó cũng chính là câu trả lời cho việc tại sao các nút nguồn của thiết bị điện tử đều mang biểu tượng trên.

Làm sao để trở thành 1 Front-end giỏi??

Làm sao để bắt đầu học Front-end, mình muốn học. Có nhiệt huyết để học nhưng không biết bắt đầu từ đâu. Từ 1 trung tâm, hay tự học với cái laptop hàng ngày.

Làm sao để ngừng yêu đơn phương?

Biết là tình cảm của mình sẽ chẳng được đáp lại, mối quan hệ sẽ chẳng đi tời đâu nhưng để ngừng thích người ta thì khó quá

Bạn thường đọc sách của tác giả nào nhất và vì sao?

Bắt đầu từ mình trước nhé: Mình thích đọc của thầy Phan Văn Trường, thầy Nguyên Phong và thầy Thu giang Nguyễn Duy Cần.

*Lưu ý: Ảnh mang tính chất minh họa giống bao bì của mì gói (vì mình lười chụp ảnh mới) còn đây không phải sách gối đầu giường của mình nhé các bạn :))

https://cdn.noron.vn/2021/06/15/26610147798137591-1623747291.jpg

Quan điểm của bạn về phẫu thuật thẩm mỹ?