Lộ trình để trở thành một lập trình viên PHP của mình

Trước đây, khi mình (một con cừu non) còn là sinh viên, mình thật sự rất rất là hoang mang về tương lai của mình. Vì sao ư? Đơn giản là khi học mình thấy có cả thứ tá ngôn ngữ lập trình, công nghệ ngoài kia khiến mình vô cùng hoang mang, lo lắng, đêm thì không ăn, ngày thì không ngủ.

Bài viết này dành cho những người mới, những bạn sinh viên muốn trở thành lập trình viên PHP

Cùng là chữ xê(C) thì có C, C#, C++,… rồi nào là Java, Javascript, tiếp đến là PHP, Python, Ruby, Perl, Golang, Objective-C,… Nếu mà tìm hiểu về các framework của mấy ông này nữa thì chắc não chưa nhăn thì mặt cũng đã nhăn rồi. Rồi khi mình tìm hiểu đến database thì nào là SQL Server, MySQL, MariaDB, PostgreSQL, MongoDB,… Đấy nếu bạn là sinh viên (năm 1,2,3 thậm chí có thể là năm 4,5 đi nữa) thì khi nhìn vào đống này bạn vẫn có thể hoa mắt chóng mặt.

Về bản thân mình thì cuối cùng mình cũng chọn PHP & MySQL để song hành và là công cụ để mình kiếm cơm sau này. Hiện tại mình đã đi làm được hơn 1 năm rồi, hôm nay nhân một ngày cuối tuần rảnh rỗi mình sẽ chia sẻ lại lộ trình để bạn có thể đi làm hay là trở thành một lập trình viên PHP (PHP Developer).

Bài viết này dành cho những người mới, những bạn sinh viên muốn trở thành lập trình viên PHP

Trước khi vào bài viết thì mình cũng sẽ nói trước là:

  1. Đây là lộ trình, những thứ của riêng mình đã trải qua. Vì mỗi người có thể sẽ mỗi khác trong việc tiếp cận hay trở trành developer của một ngôn ngữ nào đó.
  2. Chính vì ý 1 nên là bài viết này mang tính chủ quan khá là cao, bạn chỉ nên tham khảo.

Mình cũng có roadmap (lộ trình) để trở thành Back-end Developer để cho các bạn tham khảo:

PHP là gì?

Đầu tiên muốn trở thành một lập trình viên PHP (PHP Developer) thì trước tiên bạn phải hiểu PHP là gì đã nhỉ.

PHP: Hypertext Preprocessor, thường được viết tắt thành PHP là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.

Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và có sự đóng góp rất lớn của Zend Inc., công ty do các nhà phát triển cốt lõi của PHP lập nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy mô doanh nghiệp.

Trích dẫn theo Wikipedia: https://vi.wikipedia.org/wiki/PHP

Nôm na thì các bạn chỉ cần hiểu PHP là một ngôn ngữ lập trình phía server dành cho website. Theo thống kê thì có đến 78.9% các website chọn và sử dụng PHP làm ngôn ngữ lập trình phía server. Các bạn có thể tham khảo ở đây: https://w3techs.com/technologies/details/pl-php

Có rất nhiều những website nổi tiếng có sử dụng PHP như: Etsy, Facebook, Pinterest, Tumblr, Wikipedia, hay là một CMS nổi tiếng bậc nhất là WordPress cũng sử dụng PHP luôn.

Lập trình viên PHP là gì?

Cái này có lẽ không cần giải thích nhỉ? Bởi vì câu trên đã nói lên tất cả rồi. Lập trình viên PHP chính là lập trình viên sử dụng ngôn ngữ PHP để xây dựng lên các ứng dụng, chương trình hay là các website.

Lộ trình học của mình

Bài viết này dành cho những người mới, những bạn sinh viên muốn trở thành lập trình viên PHP

1. Học HTML/CSS, Javascript

HTML/CSS?

Đúng vậy, tại sao lại phải học HTML/CSS? Bài viết này là về PHP cơ mà?

Đơn giản thôi, PHP là một ngôn ngữ lập trình dành cho các website và với website thì HTML/CSS là thứ gì đó không thể thiếu được. Bởi vì nó chính là thứ ngôn ngữ tạo nên giao diện, cầu nối để tương giác giữa người dùng với hệ thống của mình.

Bây giờ bạn muốn đi Lamborghini chỉ có khung hay là muốn đi chiếc Lamborghini hịn nào?

Với HTML/CSS thì có cả rất rất rất nhiều các khóa học, bài viết, tutorial dạy về nó. Ngày xưa thì mình có học cơ bản trên các trang như W3School, Freetuts. Bạn có thể tham khảo các link dưới đây:

Và tất nhiên là mình phải tìm kiếm rất nhiều khi gặp các vấn đề trên Google nên là còn nhiều nhiều trang nữa mà mình ko thể ghi lại được ra ở đây (vì quên rồi).

Sau khi học cơ bản thì mình hay cắt PSD hoặc là đi làm lại (clone) giao diện của các website khác để tăng trình độ. Cái này là do mình muốn nâng cao kiến thức nhiều về Front-end nên học nhiều. Với những bạn nào không muốn tìm hiểu sâu thì cũng có thể chỉ dừng lại ở mức cơ bản thôi là được rồi.

Nhưng mà mình khuyên là vẫn nên học sâu và nâng cao về HTML/CSS để sau này nếu PHP hết thời vẫn có phương án là Front-end Developer (đùa đấy =))).

Javascript

JavaScript là ngôn ngữ lập trình phổ biến nhất trên thế giới trong suốt 20 năm qua. Nó cũng là một trong số 3 ngôn ngữ chính của lập trình web. JavaScript liên tục phát triển, có lục đạt đến 92% website đang sử dụng JavaScript vào năm 2016. Chỉ trong 20 năm, nó từ một ngôn ngữ lập trình riêng trở thành công cụ quan trọng nhất trên bộ công cụ của các chuyên viên lập trình web.

Javascript giúp tăng sự tương tác của website với người dùng.

2. Học MySQL

Database là một phần không thể thiếu của bất cứ ứng dụng nào. Nó là thứ để lưu trữ các dữ liệu của ứng dụng và người dùng. Trong PHP thì người ta thường ưa chuộng MySQL. Nhắc đến PHP thì người ta nghĩ ngay đến MySQL và ngược lại, dường như MySQL sinh ra là để dành cho PHP vậy. A happy couple!

Đầu tiên để làm quen với PHP thì các bạn nên học các lệnh và mệnh đề sau đây:

  • Lệnh INSERT
  • Lệnh UPDATE
  • Lệnh DELETE
  • Lệnh SELECT
  • Mệnh đề WHERE, trong mệnh đều where thì có thêm một số điều kiện cần học: =, !=, LIKE, IN, NOT IN, IS NULL, IS NOT NULL,
  • Mệnh đề ORDER BY
  • Mệnh đề HAVING
  • Mệnh đề GROUP BY
  • Mệnh đề JOIN

Trên đây là các lệnh, mệnh đề cơ bản khi mà bạn mới làm quen với MySQL. Ngoài ra còn nhiều khác niệm, kiến thức khác mà bạn cần phải học nữa. Các bạn có thể tìm hiểu các khái niệm cơ bản MySQL qua trang W3School nhé.

Ngoài ra bạn cũng có thể học một vài kiến thức nâng cao tại blog của mình:

3. Học PHP thuần

Cái này thì là chắn chắn rồi nhỉ? Để trở thành một lập trình viên PHP thì chắc chắn là phải học PHP rồi. So với các ngôn ngữ lập trình khác như Java, C#, Golang,… thì theo mình thấy PHP là một ngôn ngữ lập trình khá là dễ để có thể tiếp cận ở mức cơ bản. Đó là lý do tại sao lại có nhiều lập trình viên hay là nhiều website sử dụng PHP như vậy.

Học PHP căn bản

Ngày xưa khi học PHP thì mình sẽ tìm hiểu qua các khái niệm, cú pháp cơ bản của nó như:

  • Biến, hằng
  • Kiểu dữ liệu
  • Toán tử, biểu thức
  • Các vòng lặp
  • Xử lý các request gửi lên bao gồm là:
    • Cách lấy dữ liệu từ FORM gửi lên thông qua phương thức GET hay là POST
    • Cách upload, lữu trữ file
  • SESSION, Cookie
  • PDO để tương tác với SQL
  • isset, empty
  • require, include, require_once, include_once

Trước đây mình hay học nhất là qua 3 trang sau:

  1. Học PHP trên Freetuts
  2. Học PHP trên khoapham
  3. Học PHP trên W3School

Mình thấy mấy trang này lượng kiến thức của nó khá là tốt, dễ hiểu, chất lượng và đặc biệt là hoàn toàn miễn phí nữa. Ngoài ra còn rất nhiều nơi khác nữa để các bạn có thể học PHP căn bản miễn phí khác. Google để biết thêm chi tiết nhé.

Học OOP

Sau khi nắm vững được các kiến thức căn bản về PHP thì tốt nhất bạn nên tìm hiểu về OOP. Theo mình thấy bây giờ bất cứ Framework, CMS, Package, Project nào viết bằng PHP cũng đều dựa trên mô hình OOP cả. Nên việc bạn nắm vững các khái niệm OOP căn bản sẽ giúp cho bạn dễ dàng tiếp cận các Framework hay CMS cho công việc.

Vậy thì ưu điểm của OOP là gì mà lại được ưa chuộng như vậy?

  • Dễ dàng quản lý code khi có sự thay đổi chương trình.
  • Dễ mở rộng dự án.
  • Tiết kiệm được tài nguyên đáng kể cho hệ thống.
  • Có tính bảo mật cao.
  • Có tính tái sử dụng cao.

Khi học OOP nói chung thì các bạn cần nắm vững 4 đặc tính của lập trình hướng đối tượng:

  1. Tính đóng gói (Encapsulation)
  2. Tính kế thừa (Inheritance)
  3. Tính đa hình (Polymorphism)
  4. Tính trừu tượng(Abstraction)

Ngoài ra còn có một vài khái niệm mà mình muốn các bạn đọc và hiểu:

  1. Magic method trong PHP
  2. Abstract và Interface là gì?
  3. Trait là gì?
  4. Static method là gì?
  5. public, protected, private khác nhau như thế nào?
  6. self và this khác nhau như thế nào?
  7. final class là gì?

Học mô hình MVC

Sau khi đã nắm vững được về OOP rồi thì các bạn phải tìm hiểu về mô hình MVC. Hiện tại thì đây là một mô hình mà hầu hết tất cả các framework/CMS PHP đang sử dụng. Mà thật ra cũng không chỉ riêng PHP đâu. Mình thấy rằng là rất nhiều các framework của nhiều ngôn ngữ khác đều đang sử dụng mô hình này trong việc phát triển ứng dụng của mình.

Về khái niệm thì MCV là từ viết tắt bởi 3 từ Model – View – Controller. Đây là mô hình thiết kế sử dụng trong kỹ thuật phần mềm. Mô hình source code thành 3 phần, tương ứng mỗi từ. Mỗi từ tương ứng với một hoạt động tách biệt trong một mô hình.

Model (M)

Là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng. Bộ phận này là một cầu nối giữa 2 thành phần bên dưới là View và Controller. Model thể hiện dưới hình thức là một cơ sở dữ liệu hoặc có khi chỉ đơn giản là một file XML bình thường. Model thể hiện rõ các thao tác với cơ sở dữ liệu như cho phép xem, truy xuất, xử lý dữ liệu,…

View (V):

Đây là phần giao diện (theme) dành cho người sử dụng. Nơi mà người dùng có thể lấy được thông tin dữ liệu của MVC thông qua các thao tác truy vấn như tìm kiếm hoặc sử dụng thông qua các website.

Controller (C):

Bộ phận có nhiệm vụ xử lý các yêu cầu người dùng đưa đến thông qua view. Từ đó, C đưa ra dữ liệu phù hợp với người dùng. Bên cạnh đó, Controller còn có chức năng kết nối với model.

4. Học Framework/CMS

Sau khi đã nắm vững được kha khá kiến thức của PHP thuần và bạn có thể tự mình xây dựng được một website bằng PHP thuần. Nó phải là website tin tức hay là bán hàng với các tính năng đặc biệt chứ không chỉ đơn thuần là thêm sửa xóa. Thì một thứ mà bạn cần phải học tiếp theo đó là học Framework hoặc CMS nào đó để phục vụ cho công việc.

Hiện tại thì với Framework thì Laravel hiện nay là framework tốt nhất, nhiều người, nhiều công ty sử dụng nhất dành cho PHP. Nên là mình recommend bạn nên học Laravel. Ngày xưa khi mình bắt đầu học Laravel thì mình thường tham khảo nhiều nhất trên 2 trang đó là:

Ngoài ra cũng các framework dưới đây cũng được các công ty sử dụng nhiều:

  • CodeIgniter
  • Symfony
  • Zend
  • Phalcon
  • CakePHP
  • Yii
  • FuelPHP

Cũng có nhiều nơi sử dụng các CMS để phát triển hệ thống website. Các bạn cũng có thể học:

  • WordPress – thằng cu này là PHP CMS được sử dụng nhiều nhất trên thế giới. Website này cũng đang sử dụng WordPress.
  • Magento – thằng cu này mới nổi mấy năm gần đây. Trên các trang việc làm, tuyển dụng cũng nhiều bài tuyển dụng Magento Developer.
  • Joomla!
  • Drupal

Tuy nhiên, Framework hay CMS thì cũng chỉ là những công cụ. Hôm nay Laravel là công cụ tốt nhất tuy nhiên không ai chắc chắn rằng ngày mai nó không bị lật đổ bởi một công cụ khác. Thế nên là các bạn nên học thật vững PHP căn bản. Khi có nền tảng căn bản vững chắc rồi thì súng nào vào tay mình cũng bắn được hết.

5. Kỹ năng mềm

Thật ra thì mình tự đánh giá kỹ năng mềm của mình cũng không được giỏi cho lắm. Nhưng mình cũng tự thấy là nó đủ dùng để có thể làm việc được với mọi người. Ví dụ một vài kỹ năng cơ bản bạn phải nắm được:

  • Viết mail thế nào chuyên nghiệp: subject thế nào, kính thưa thế nào, signature thế nào,… là đủ.
  • Nói chuyện không cần quá hay nhưng cũng ko được ngại ngùng hay e rè quá. Giao tiếp, hỏi đáp, với mọi người trong team lưu loát, rõ ràng và thoải mái là được.
  • Đi làm đúng giờ cũng thể hiện được mình là người chuyên nghiệp

Mình thấy có 1 channel khá hay ở trên youtube. Ở đây có nhiều video về kỹ năng mềm mà có thể bạn cần:

Kỹ năng sống | HatBuiNho

2 Comments

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *