Kể từ khi ra đời cách đây gần 50 năm, internet đã phát triển với một tốc độ chóng mặt, ngày càng gia tăng về cả số lượng lẫn độ phức tạp về công nghệ. Trong thế giới hiện đại, internet ngày càng phổ biến và thậm chí trở thành một trong những thành phần không thể thiếu trong cuộc sống với một tỷ lệ lớn người sử dụng mỗi ngày. Cùng với đó là sự phát triển của các công nghệ web, nhằm tăng tính trải nghiệm và tiện lợi cho người dùng. Hiện nay, ngành phát triển web, các lập trình viên web hay web developer đang nhanh chóng trở thành một trong những lựa chọn nghề nghiệp hấp dẫn và được trả lương cao nhất trong các ngành nghề nói chung và công nghệ thông tin nói riêng. Nhưng web developer là gì và công việc chính xác cần làm của web developer là gì? Phát triển web là gì? Làm thế nào để trở thành một nhà phát triển web?
Đây có lẽ là những câu hỏi phổ biến đối với bất cứ lập trình viên nào muốn đi sâu trong con đường sự nghiệp. Đó là lí do trong bài viết này chúng ta sẽ tập trung trả lời các câu hỏi trên cũng như tìm hiểu xem Front end là gì, back end là gì và full stack là gì?
Nếu bạn đang muốn bắt đầu sự nghiệp trở thành web developer, bạn đang muốn dựng website cho riêng mình, hay muốn xây dựng một ứng dụng khởi nghiệp trên nền tảng này, thì đây là bài viết giành cho bạn.
![[Nghề lập trình] Lộ trình của một chuyên gia lập trình Web (Web Developer) 2019](https://tek4.vn/wp-content/uploads/2019/02/Nghề-lập-trình-Lộ-trình-của-một-chuyên-gia-lập-trình-Web-Web-Developer-2019.jpg)
Nguồn: XDA Developers
Bài viết nằm trong Phần 3. Con đường phát triển với lập trình viên của series [Nghề IT]. Trong bài viết này chúng ta sẽ cùng tek4.vn tìm hiểu một số khái niệm cơ bản về web developer, front end, back end, full stack, Devops…và các bước để bắt đầu cũng như tiếp tục phát triển trong công việc của một web developer từ mức bắt đầu cho tới khi trở thành một chuyên gia.
Để tìm hiểu các bài khác trong series này hãy vào đây. Giờ thì chúng ta hãy bắt đầu…
Đầu tiên lập trình viên web (web developer) là gì?
Về cơ bản, nhà phát triển hoặc lập trình viên web hay web developer đương nhiên là người lập trình web. Nhưng lập trình web là gì? Đó là người sử dụng thiết kế web – được tạo bởi khách hàng hoặc nhóm thiết kế – và biến nó thành một trang web. Tức là sử dụng các ngôn ngữ lập trình, viết các dòng mã phức tạp ở nhiều ngôn ngữ khác nhau để tạo ra ứng dụng web. Điều này cũng giống như công việc của một lập trình viên thông thường đó là viết mã để tạo nên ứng dụng, điều khác biệt duy nhất là web developer làm việc với các ứng dụng World Wide Web hoặc các ứng dụng chạy trên máy chủ web và trình duyệt web nhằm cung cấp môi trường cho đông đảo người dùng truy cập.
Như bạn có thể tưởng tượng, điều này có thể mất rất nhiều thời gian và công sức, và đòi hỏi sự hiểu biết phức tạp về các ngôn ngữ lập trình khác nhau và cách chúng được sử dụng. Các nhà phát triển khác nhau chuyên về các lĩnh vực khác nhau, điều đó có nghĩa là các dự án web lớn thường là sự hợp tác giữa nhiều nhà phát triển khác nhau.
Web developer có dễ xin việc không?
Web đã có lịch sử phát triển cách đây từ vài chục năm. Tuy nhiên, dù cho sự phổ biến của smartphone trong thời đại hiện nay, web vẫn có một chỗ đứng nhất định bên cạnh mobile app và thậm chí vẫn phổ biến hơn rất nhiều so với mobile app. Chúng ta có thể thấy rằng hầu hết các dịch vụ chúng ta sử dụng hàng ngày, từ các hệ thống lớn như Facebook, Google, Youtube đến các ứng dụng nhỏ tí tẹo như các landing page để quảng bá sản phẩm cho doanh nghiệp, các shop online đều vẫn nằm trên nền Web.
Nếu các bạn không tin? Hãy thử nhớ lại trong cuộc sống, khi chúng ta muốn tìm một cửa hàng, hay mua một thứ gì đó, thậm chí tìm địa điểm để đi ăn thì việc đầu tiên chúng ta nghĩ đến (ngoài việc hỏi bạn bè) là gì? Với các bạn tôi có thể không dám chắc, nhưng với bản thân tôi, việc đầu tiên luôn là tìm kiếm trên Google. Nếu một cửa hàng không có website riêng sẽ khó để tôi cảm thấy tin cậy, và thậm chí nếu nó không xuất hiện trên một bài đăng nào đó trên mạng thì thậm chí sẽ khó để tôi biết đến. Cửa hàng bán tỏi có web, ngân hàng có web, bán ống nước có web và thậm chí tôi cũng có web, cũng giống như rất nhiều người đều có trang web cá nhân của mình… Và đương nhiên do đó nhu cầu làm web và số lượng công việc cho web developer cũng không hề thiếu.
Còn đây là bảng thống kê số lượng công việc web developer trên toàn thế giới trong những năm qua.
Các bạn có thể nghe nói đến một số dự đoán về thoái trào của web và sự lên ngôi của mobile app, nhưng nhìn ở biểu đồ trên hãy yên tâm đi, tỷ lệ và tốc độ tăng trưởng mỗi năm cho các vị trí công việc cho web developer vẫn luôn tăng đều đặn. Lí do ư, hãy thử ngồi lập trình và search giải pháp trên một chiếc di động bằng app xem? Làm báo cáo và slide thuyết trình bằng di động với kich thước 6 inch. Điều đó là không khả thi với đôi mắt của bạn. Do đó, về mặt bản chất các ứng dụng web vẫn luôn có chỗ đứng. Kể cả trên di động việc vào web cũng không khó hơn sử dụng mobile app.
Còn mức thu nhập thì sao?
Nhìn qua bảng thống kê mức lương cho web developer trên thế giới
![[Nghề IT] Lộ trình của một chuyên gia lập trình Web (Web Developer) 2019_4](https://tek4.vn/wp-content/uploads/2019/02/Nghề-IT-Lộ-trình-của-một-chuyên-gia-lập-trình-Web-Web-Developer-2019_4.png)
Nguồn: MonsterPost
So với mức lương trung bình của một công việc được coi là hot nhất hiện nay – Data Scientist là 170.000$ thì có lẽ không có sự chênh lệch quá nhiều.
Đó là phạm vi thế giới, vậy Việt Nam thì sao? Nếu bỏ vài phút dạo quanh một vài trang tìm việc như TopIT, VietnamWork, MyWork … có thể thấy đến hàng trăm tin đăng tuyển cho Web Developer được đưa lên mỗi ngày thuộc đủ mọi thể loại, ngôn ngữ, nền tảng, lĩnh vực, với mức lương dao động cũng không kém, thường từ 500$ đến 3000$ mỗi tháng (mức khá cao tại Việt Nam).
Tất nhiên, mức lương dao động thì sẽ tùy thuộc vào kinh nghiệm và khả năng của bạn, tuy nhiên so với mặt bằng chung thì Web developer có mức thu nhập không hề kém đối với các ngành khác, thậm chí còn cao hơn.
Một điều đặc biệt nữa đó là các công việc freelancer cho web developer rất nhiều. Bạn hoàn toàn có thể lên Vlance, hay Freelancer hoặc thậm chí thông qua bạn bè giới thiệu để tìm hàng trăm công việc được đưa lên mỗi ngày. Hoàn toàn tự do và thu nhập không hề ít dù hiện nay rất nhiều lập trình viên mới vào nghề đang phá giá nó.
Với mức thu nhập và triển vọng hứa hẹn như trên, bạn đã hào hứng và sẵn sàng để đi theo tiếng gọi của nghiệp Web Developer chưa? Hãy tiếp tục để xem ngành này có những hướng phát triển nào, cần đầu tư vào những kĩ năng gì nhé!
Front end, back end, full stack là gì?
Như đã thấy ở trên chúng ta mới chỉ biết được lập trình web là lập trình các ứng dụng web, tuy nhiên công việc cụ thể của một web developer là gì không phải là một câu hỏi đơn giản. Các ứng dụng web hiện đại thường chứa ba hoặc thậm chí nhiều lớp hơn và tùy thuộc vào quy mô của nhóm phát triển. Các dự án web lớn thường cần sự cộng tác của rất nhiều các developer và mỗi người sẽ thường chỉ có thể chuyên về một hoặc nhiều lớp này – một số có thể bao quát rộng hơn nhưng thường chỉ đảm nhiệm các công việc ở mức thiết kế và giải pháp.
Ví dụ trong nhóm hai người, một nhà phát triển có thể tập trung vào các công nghệ được gửi đến máy khách như HTML, JavaScript, CSS, ReactJs hoặc AngularJS và trên các nền tảng phát triển phía máy chủ như Perl, Python, Ruby, PHP, Java, ASP, ASP.NET, Node.js. Các công nghệ này được sử dụng để phân phối nội dung và tập lệnh cho máy khách. Developer còn lại có thể tập trung vào sự tương tác giữa các nền tảng phía máy chủ, máy chủ web và hệ thống cơ sở dữ liệu. Hơn nữa, tùy thuộc vào quy mô tổ chức, các lập trình viên có thể còn cần phối hợp chặt chẽ với người quản trị nội dung website, các cố vấn tiếp thị, các nhà thiết kế trải nghiệm người dùng, nhà thiết kế web, quản lý dự án, kiến trúc sư phần mềm hoặc quản trị viên cơ sở dữ liệu (DBA) – hoặc chính lập trình viên có thể phải chịu trách nhiệm cho các nhiệm vụ như thiết kế web và quản lý dự án.
Các web developer có thể phải đảm nhiệm nhiều nhiệm vụ và công việc khác nhau, tuy nhiên thường thì các công việc này đều được phân loại thành ba loại. Có lẽ bạn cũng đã nghe hoặc đọc vô số tin tuyển dụng nhắc đến ba loại này, đó là: Front-end developer, Back-End developer và sự kết hợp của hai dạng này là Full stack developer. Nhưng thật sự thì, front end là gì? Back end là gì và Full stack là gì? Và quan trọng hơn, mảng nào trong số này là tiềm năng nhất?
- Front-end là phía bên ngoài thể hiện ra của trang web cho phép người dùng nhìn thấy và tương tác. Nó là “mặt tiền” của một trang web. Các lập trình viên front- end là những người phát triển giao diện người dùng, đây là những lập trình viên thành thạo trong thiết kế giao diện web, biết cắt CSS, sử dụng thành thạo các hiệu ứng html, javascript,… làm trang web trở lên đẹp lung linh. Đây là những nhà tạo mẫu, nhà thiết kế thời trang, chuyên viên trang điểm cho web. Công việc của front developer phù hợp với những người có khướu thẩm mĩ, tỉ mỉ, thích thiết kế, sáng tạo, muốn gần gũi với người dùng.
- Back-end là phần mà người dùng không nhìn thấy nhưng lại là cốt lõi của trang web, back end quy định cách thức trang web hoạt động. Back end chứa dữ liệu của người dùng, các thuật toán cần thiết… để web site hoạt động. Các lập trình viên back-end là những người phát triển chức năng phía sau ẩn dấu cho web, nghĩa là phần mà người dùng không trực tiếp tương tác, không nhìn thấy, không quan tâm nhưng lại đem lại trải nghiệm toàn diện về chức năng cho web. Các chức năng tìm kiếm trên web, các hệ thống recommendation system để đề xuất sản phẩm, đề xuất bài viết trên các trang web, làm sao để truy vẫn cơ sở dữ liệu nhanh, làm thể nào để cải thiện tốc độ thực thi của trang…là những nhiệm vụ thường gặp của các lập trình viên back-end. Có thể ví front – end là phần xác của website thì back-end là phần hồn của websites, và những lập trình viên back-end là những người thổi hồn, giáo dục tâm hồn cho websites. Đây là công việc phù hợp với những ai thích tư duy logic, thích làm việc với hệ thống và cơ sở dữ liệu và thích nhìn dòng lệnh nhiều hơn màu sắc.
Đây là hai khía cạnh của web và hai mảng công việc thường thấy khi phát triển web. Tuy nhiên, nếu để ý các thông tin tuyển dụng của các doanh nghiệp về công nghệ thông tin hiện nay. chúng ta sẽ nghe thấy thêm hai khái niệm: DevOps và Full-stack developer. Vậy DevOps và Full-stack là gì?
DevOps về cơ bản là sự kết hợp của quá trình Development và Operations nghĩa là phát triển và vận hành. DevOps về cơ bản là gắn việc phát triển ứng dụng với triển khai, vận hành, bảo trì nó. Đây là một khái niệm mới cho những nhu cầu đẩy nhanh tiến độ phát triển và kiểm thử cũng như vận hành hệ thống, giảm thời gian bảo trì và downtime.
Full – Stack là một khái niệm liên quan đến việc phát triển kết hợp cả phần front – end và back – end. Điều này giúp cho hệ thống đồng bộ và có thể sửa đổi, bảo trì bất cứ lúc nào một cách dễ dàng. Full – Stack Developer là những con người đa năng, có thể kiêm nhiệm nhiều công việc vừa có thể chơi hậu vệ, vừa có thể chơi thủ môn lẫn tiền đạo, có khả năng chơi luôn cả front-end tới back-end. Đôi khi còn kiêm luôn cả thiết kế hệ thống và DevOps. Với khối lượng trách nhiệm và công việc phải phụ trách cao cùng với kiến thức chuyên môn sâu rộng do đó lương của các Full stack developer cũng cao hơn các vị trí khác.
Nếu theo định hướng lập trình web, bạn có thể chọn con đường sự nghiệp của mình chuyên về một mảng front – end hoặc back – end hoặc kết hợp bổ sung những khái niệm khác để trở thành một DevOps developer hoặc Full- stack developer. Bất cứ khía cạnh nào cũng có thể dẫn đến thành công miễn là bạn đủ giỏi và kiên trì. Có những lập trình viên mà tôi biết chỉ cần sống bằng duy nhất 1 kỹ năng là cắt html. Những kỹ năng càng chuyên sâu thì mức thu nhập của bạn càng cao. Về mặt bằng chung các vị trí Full – Stack và DevOps đang có vẻ rất hấp dẫn với mức lương có thể lên tới cả 2000-3000USD. Tuy nhiên, tất nhiên để làm được các vị trí này các bạn cần có rất nhiều kỹ năng và đòi hỏi thời gian phát triển không hề dễ dàng.
Ngoài ra, bạn có thể sẽ nghe nói đến một số vị trí công việc khác như dưới đây:
- Web Developer.
- Front-end Web Developer.
- Back End Developer.
- Full Stack Developer.
- React Developer.
- JavaScript Developer.
- Ruby on Rails Developer.
- Java Web Developer.
- PHP Developer.
Đây là các công việc đang được tuyển dụng nhiều nhất hiện nay. Tuy nhiên về cơ bản thì nó đều nằm trong 3 loại đã nêu. Lập trình web là một mảng rất rộng bao hàm rất nhiều kiến thức khác nhau về cả hệ thống, mạng lẫn lập trình, do đó trước khi đi tiếp, bạn cần có một mục tiêu cụ thể và một lộ trình phát triển phù hợp. Mục tiêu của bạn có thể là đi làm front end ở một công ty chuyên gia công phần mềm, bảo trì back end cho một ứng dụng web về thương mại điện tử, hay tự làm tự ăn theo kiểu freelancer hoặc mở một dịch vụ web start up. Có nhiều hướng khác nhau trong lập trình web, do đó mục tiêu của bạn càng rõ ràng bao nhiêu, thì càng giúp bạn định hình chính xác cần học gì trước, và học như thế nào.
Tuy nhiên, tin vui là việc trở thành Web developer không khó, điều duy nhất bạn cần là kiên trì thực hiện theo lộ trình và giám sát sửa chữa các lỗi gặp phải trên con đường này để tích lũy kinh nghiệm. Bạn có thể bắt đầu từ con số 0, hoặc khá hơn là bắt đầu với chút ít kiến thức lập trình cơ sở.
Dưới đây là lộ trình phát triển cho các lập trình viên web theo tất cả các khía cạnh trên.
Làm thế nào để trở thành một web developer
Dưới đây là những bước cơ bản để bạn bắt tay thực hiện trên con đường trở thành một web developer.
Bước 1. Đầu tiên, hãy chú ý những kiến thức nền về Web và mạng. Sẽ tốt hơn nếu bạn có đôi chút kiến thức cơ bản về lập trình. Lập trình web liên quan rất nhiều đến các kiến thức về mạng do đó, đây là phần bắt buộc mà bạn cần phải nắm rõ. Sẽ rất khó để tiếp tục nếu không biết web là gì? mô hình hoạt động của nó như thế nào? hay cách gửi nhận thông điệp giữa máy khách và máy chủ web, cách cấu hình máy chủ web, kết nối cơ sở dữ liệu. Nếu chưa nắm rõ tất cả những thứ này, bạn sẽ khá khó khăn để đi tiếp bởi sẽ khó để bạn hiểu tại sao lại dùng phương thức POST thay vì GET và ngược lại, hay tại sao lại cần HTTPS và cài đặt HTTPS như thế nào? Thậm chí khi bạn làm front end bạn cũng cần biết để tối ưu hóa giao diện nhằm tăng tốc độ tải trang, cách xử lý các lỗi phía người dùng…Tất cả những thứ này sẽ không tiêu tốn của bạn quá 3 ngày. Chỉ 3 ngày cho một nỗ lực giúp bạn có nền tảng để phát triển khỏe cho cả đời lập trình viên. Một khoản đầu tư quá lời.
Bước 2. Tiếp theo hãy học cơ bản về HTML, CSS, JavaScript và một ngôn ngữ cho phát triển Back end nào đó như: PHP, Java, Python, Ryby, NodeJs,…Nói chung hãy biết cơ bản về back-end và front-end. Việc biết không chỉ giúp bạn lựa chọn con đường để đi tiếp mà nó còn giúp bạn có thể đi xa hơn nếu muốn làm full stack developer. Hay thậm chí sẽ giúp ích cho bạn trong việc tối ưu web cũng như khi tương tác với team phát triển. Sẽ hữu ích nếu bạn biết back end hoạt động như thế nào khi làm front end và ngược lại. Để học cơ bản đống này sẽ mất của bạn khoảng vài tháng nếu chưa có chút kinh nghiệm gì về lập trình. Tuy nhiên đây là điều bắt buộc.
Bước 3. Hãy tạo ra một cái gì đó. Thực ra, ngay trong lúc ở Bước 2, bạn cũng đã nên tạo ra một thứ gì đó. Hãy bắt đầu với các ví dụ mẫu, từ đầu đến cuối. Một trang web hiển thị bán hàng online hay đăng ký học cho sinh viên hoặc một trang báo chí là một lựa chọn không tồi. Ban đầu hãy bắt đầu xây dựng front end, giao diện của web với HTML, CSS, JavaScript, hãy cố gắng làm bắt chước theo các trang web có chức năng tương tự. Tiếp đó, hãy quan tâm đến phần Cơ sở dữ liệu và back end. Hãy làm để biết quá trình phát triển web là như thế nào. Khi kết hợp với Bước 2, cái này sẽ ngốn của bạn thêm chừng 1 đến 2 tháng tùy mức độ phức tạp mà bạn muốn theo đuổi.
Bước 4. Cho tới bước này, có lẽ bắt đầu bạn đã định hình được mình muốn đi theo con đường nào. Back end, front end hay full stack. Giờ hãy chuyển qua học một hai framework front end hoặc back end thông dụng. Sẽ rất khó khăn để chúng ta code “chay” một ứng dụng web. Trong trường hợp này các framework sẽ giúp ích làm giảm tải công việc. Sau khi đã có những kiến thức cơ sở đủ chắc chắn, đã đến lúc bạn làm quen với một số frame work. Với Front end có thể là: React.js, Angular hay Vue.js; với Back end có thể là PHP Laravel, Zend, CodeIgniter hay Node.js, Ruby On Rails, Python Django, Flask…Có rất nhiều framework để lựa chọn. Việc học một framework sẽ tốn của bạn khoảng 3 tháng. Nhưng có lẽ đến giai đoạn này, bạn hoàn toàn đã có thể đi thực tập hoặc đi làm fresher tại một số công ty để tiếp tục bồi dưỡng level.
Bước 5. Hãy tiếp tục với một sản phẩm nho nhỏ khác bằng cách kết hợp tất cả những cái đã được học. Đó có thể là một dự án trong lúc thực tập, nhưng tôi cho rằng, sản phẩm này nên là sản phẩm tâm huyết là ý tưởng của chính bạn. Các bạn có thể đi thực tập, đi làm nhưng hãy giành thời gian rảnh để hoàn thành nó. Bạn có thể hỏi Tại sao? Theo tôi lí do quan trọng nhất ở đây là bạn hứng thú. Với đứa con đẻ của mình từ ý tưởng từ A đến Z sẽ giúp bạn chăm chút nó nhiều hơn, hứng thú hơn để tạo ra nó, và tiếp theo nó sẽ giúp bạn định hình từ đầu về những công việc cần thực hiện, những khó khăn khi tạo ra một dự án web hoàn chỉnh. Và hơn thế nữa sẽ rất tuyệt nếu sản phẩm khá tốt được nhiều người biết đến, một sản phẩm giúp hồ sơ của bạn đẹp hơn trong mắt nhà tuyển dụng và thậm chí biết đâu nó sẽ giúp bạn startup và tự làm chủ. Hãy chăm chút nó, đứa con tinh thần đầu tiên của bạn. Sẽ mất khá nhiều thời gian nhưng đừng nản lòng. Phần thường bạn nhận lại sẽ hoàn toàn xứng đáng.
Bước 6. Giờ bạn có thể tự tin đi phỏng vấn xin việc nếu muốn. Giờ bạn hoàn toàn có đủ khả năng để được nhận vào bất cứ vị trí nào nếu Bước 5 bạn thực hiện tốt. Và trong quá trình đi làm, hãy luôn tâm niệm vừa làm vừa học những kiến thức mới và cố gắng áp dụng nó tối đa vào công việc của mình. Tùy khả năng và cơ duyên, bạn sẽ có thể bước tiếp theo vào con đường full stack hoặc trở thành chuyên gia, quản lý hoặc startup hoặc chuyển làm freelancer. Không có giới hạn nào cho quãng thời gian này. Chỉ cần bạn cố gắng, các nỗ lực của bạn sẽ được đền đáp. Với dân kỹ thuật, khi bạn giỏi, bạn hoàn toàn có thể được đền đáp xứng đáng. Quan trọng là đừng nản lòng.
Điều quan trọng là tất cả những gì tôi vừa nêu đa phần đều có trên mạng. Các bạn có thể dễ dàng tự học mà không cần đi học ở bất cứ đâu. Tuy nhiên, tôi sẽ luôn khuyến nghị rằng, bạn nên đi học hoặc ít ra kiếm một người đồng đội sẵn sàng học cùng bạn bởi chỉ có thảo luận mới giúp các bạn tiến bộ nhanh hơn. Kiếm được một người để hỏi ban đầu sẽ rất hữu ích. Bạn có thể lên các trang học trực tuyến như freecodecamp, hoặc vào các trường dạy code miễn phí để học.
Các kỹ năng và kiến thức cơ bản cần có đối với web developer
Để làm lập trình nói chung và lập trình web nói riêng thì bất cứ lập trình viên nào cũng cần xây dựng cho mình một số kỹ năng và kiến thức như:
Biết sử dụng một công cụ quản lý phiên bản (version control) như git hay svn…
Việc này rất quan trọng đối với các lập trình viên nói chung, bởi với tính chất của phần mềm hay website càng ngày càng phức tạp thì việc phối với để xây dựng với các thành viên khác là điều không thể tránh khỏi, và để đồng bộ hóa, truy vết, xác nhận các thay đổi phiên bản là một trong những yếu tố không thể thiếu.
Thành thạo các cấu trúc dữ liệu và thuật toán cơ bản
Cấu trúc dữ liệu và thuật toán là yếu tố cốt lõi cho mọi chương trình. Ngay cả với lập trình web đặc biệt là với các xử lý phía Back – End thì việc thành thạo cấu trúc dữ liệu và giải thuật là cần thiết. Tuy nhiên, nếu các bạn trót có không giỏi cấu trúc dữ liệu và giải thuật lắm, không biết cây khung, đường đi ngắn nhất … cũng đừng lo lắng quá. Có hàng tỷ tỷ giải thuật trên đời này và các bạn hoàn toàn có thể đọc lại lúc cần nó. Điều quan trọng là các bạn có một tư duy lập trình và giải thuật tương đối. Chi tiết thuật toán không thành vấn đề. Bạn có thể đọc lại nó ở vô số chỗ trên Internet chỉ cần bạn biết cần phải tìm cái gì hay với bài toán thực tế này thì cần dùng thuật toán kiểu như thế nào là được.
Các mô hình và tư tưởng lập trình phổ biến
SOLID, YAGNI (You Aren’t Gonna Need It), KISS (Keep It Simple Stupid), DRY (Don’t Repeat Yourself)…Những thứ này nghe có vẻ lý thuyết và không thực tế, nhất là với những ai vẫn còn đang trong quá trình tìm tòi, học hỏi. Tuy nhiên, nó rất quan trọng, đặc biệt khi các bạn làm việc với đội nhóm, tham gia vào một team phát triển hoặc ngay cả khi tự phát triển một ứng dụng web thì nó cũng giúp cho dự án của bạn trở nên sáng sủa và ít gặp lỗi cũng như dễ dàng bảo trì hơn sau này. Tóm lại hãy nhớ thậm chí dán ra trước mặt những nguyên tắc phát triển phần mềm cần thiết. Hãy biến nó thành tư duy và tư tưởng của bản thân khi làm việc. Nó sẽ có ích nhiều hơn bạn nghĩ rất nhiều.
Các khái niệm cơ bản về web và mạng
HTTP, HTTPS, Character Encoding, các trình duyệt web, cách thức thực thi, kiến trúc ứng dụng web, domain, hosting,… là những kiến thức khác không thể thiếu đối với lập trình web. Bạn có thể làm theo các framework có sẵn và không quan tâm đến các khái niệm trên, phần deploy thì để người khác thực hiện, nhưng để phát triển đến level cao hơn đó là những kiến thức cần thiết. Nếu không biết chúng hoạt động như thế nào chẳng khác nào nấu ăn mà không biết dùng dao.
Nếu trả lời được câu hỏi: “Điều gì xảy ra khi truy cập vào địa chỉ web trên trình duyệt?” thì xin chúc mừng bạn đã có một chút nền tảng về web rồi đó. Đây không phải là một câu hỏi chơi chơi mà là một câu hỏi thường hay gặp khi đi phỏng vấn cho các vị trí Web Developer. Người phỏng vấn sẽ đánh giá mức độ kiến thức của bạn tuỳ vào câu trả lời đó. Hãy coi chừng với những vấn đề nghe có vẻ dễ dễ. Bởi tôi chắc rằng trong chúng ta không phải ai cũng trả lời được những câu hỏi nghe dễ dễ đâu.
Một số kiến thức và kỹ năng khác
Sử dụng Linux và các phần mềm webserver một cách cơ bản, Design Partern, các vấn đề về bản quyền, cách thức SEO, tối ưu hóa website, clean code để viết code một cách trong sáng rõ ràng là một số kiến thức và kỹ năng cơ bản khác để phát triển ứng dụng web.
Các kiến thức và kỹ năng trên bạn hoàn toàn có thể học được qua các môn học ở trường, cũng như quá trình làm việc và luyện tập thực tế. Nếu chẳng may bạn chưa biết về git, svn, version control, chưa rõ về SOLID, KISS…cũng không có vấn đề gì, nhiều khả năng bạn sẽ gặp lại nó khi đi làm thực tế. Ở giai đoạn này, tốt nhất là rèn luyện tư duy đúng ngay từ ban đầu. Khi tư duy đã sai lệch nó sẽ rất khó sửa và hạn chế rất lớn đến kết quả sau này của chúng ta.
Sau khi đã có những nền tảng cơ bản, bạn đã có thể bắt đầu chọn một hướng đi cho mình.
Kết phần 1
Trong bài này chúng ta đã biết thêm một số khái niệm về lập trình web, thế nào là một web developer, front end là gì?, back end là gì?, full stack là gì? cũng như cơ hội, triển vọng nghề nghiệp và hướng phát triển đối với web developer. Trong phần tiếp theo, chúng ta sẽ cùng chia sẻ sâu hơn về những kiến thức và kỹ năng cần thiết để phát triển theo từng hướng front end hay back end.
Hãy tiếp tục theo dõi phần tiếp theo trong chuỗi bài viết [Nghề IT] Cẩm nang chuyện học, chuyện nghề, chuyện sống… và đừng quên để lại bình luận chia sẻ về kinh nghiệm của chính bản thân bạn nhé!!!