Một Năm Mới Bình An

Diễn Đàn ITRUM xin chúc các bạn một năm mới an khang và thịnh vượng.
Gặp nhiều điều may mắn trong cuộc sống.
Happy New Year 2018

Tư Vấn Học lập trình web bắt đầu từ đâu?

Thảo luận trong 'Kiến thức tin học' bắt đầu bởi yunoopps, 17/1/18.

  1. Tư Vấn - Học lập trình web bắt đầu từ đâu?

    Tư Vấn - Học lập trình web bắt đầu từ đâu?

    Kiến thức tin học, 17/1/18. Trả lời: 0, Xem: 617

    yunoopps
    Lập trình web là một công việc rất thú vị và có nhiều tiềm năng trong tương lai. Để có thể trở thành một lập trình viên chuyên nghiệp thì bạn phải bỏ ra nhiều công sức và hơn hết đó là niềm đam mê. Vậy muốn học lập trình web bạn nên bắt đầu từ đâu? Với kinh nghiệm nhiều năm ăn bug của mình, tôi xin tư vấn cho các bạn lộ trình học lập trình web cho các bạn để các bạn có thể lựa chọn một con đường phù hợp và hiệu quả nhất cho mình.

    Có nhiều cách để bắt đầu học lập trình web, ví dụ như ở các trường thường dạy Pascal hoặc C trước, có nơi dạy Python trước v.v.. Tất nhiên, với phương pháp học nào đi nữa chỉ cần bạn đặt tâm huyết, nỗ lực và theo đuổi đến cùng thì chắc chắn sẽ đạt kết quả. Trong bài viết này, tôi sẽ trình bày một cách đơn giản dễ hiểu nhằm giúp các bạn sinh viên CNTT hay các bạn mới bắt đầu học lập trình web có thể dễ dàng nắm bắt và lựa chọn phương pháp học tập hiệu quả cho mình.

    [​IMG]

    Học Lập trình web như thế nào?

    Học Lập trình web thực sự dễ dàng hơn so với mọi người tưởng tượng rất nhiều. Cá nhân tôi có thể khẳng định nó dễ học và dễ làm hơn rất nhiều so với Lập trình mạng, Lập trình Hệ điều hành, Lập trình các ứng dụng,...
    Nhưng theo chiều ngược lại nếu bạn là một Webmaster thực thụ thì bạn không chỉ học mỗi Lập trình và Lập trình. Mà bạn cần phải biết thêm các kiến thức về Thiết kế như (HTML, CSS,…) hay các kiến thức về Đồ họa như (Photoshop, Flash,…). Bởi vì tất cả các kiến thức trên nó đều là những mảnh ghép trong một dây chuyền sản xuất website mà chúng ta có thể sẽ phải làm việc với nó bất cứ lúc nào

    Chuẩn bị tâm lý
    Tôi biết rằng nếu bạn đang trong tình trang cần học nhanh để đi làm thì bạn cảm thấy rất nóng lòng, muốn học thật nhiều, thật nhanh, học chỗ này chổ kia, bất kỳ chổ nào có tài liệu là bạn đọc, hỏi hết người kia đối khi diều đó làm cho bạn như một con thuyền trôi giữa đại dương không có La bàn không biết mình đi đâu vào đâu cả nên vấn đề đầu tiên tôi khuyên các bạn đã là dân lập trình thì cần sự BÌNH TĨNH tư duy được vấn đề. Nên nhớ cái gì cũng cần có thời gian, học bò mới học chạy, tâm lý VỘI VÀNG là tâm lý thường thấy ở các bạn mới vào tìm hiểu. Cái bạn nhận được là lảng phí thời gian mà không nhận được gì cả. Vậy nên cần TĨNH TÂM và lên kế hoạch đi theo lộ trình sau đây nhé bạn.
    Để bắt đầu bất cứ một môn gì không chỉ lập trình web thì bạn phải có kiến thức cơ bản về môn đó. Đầu tiên bạn mong muốn xây dựng một sản phẩm cho riêng mình, hay muốn biết để có thể chỉnh sửa một bộ source code có sẵn…Vậy bắt đầu từ đâu nhỉ? Chúng ta cần hiểu tổng quan về các dòng công nghệ trong lập trình website hiện nay. Nền tảng của lập trình web vẫn là HTML và CSS, bạn hãy học 2 thứ trên trước khi chuyển qua PHP hoặc ASP.NET.
    Trước tiên, chúng ta nhìn cái đích mà chúng ta muốn nhắm tới để từ đó hình dung ra cách học. Chúng ta quan sát kiến trúc ứng dụng Web động phổ biến hiện nay như sau:
    Kiến trúc ứng dụng trên sẽ chia làm 3 phần Front End, Back End – App và Back End – Database.

    Nắm kiến thức FRONTEND (Html, Css, Jquery, Photoshop)
    Vai trò:
    - Front End (Mặt trước) là phần giao diện giao tiếp với người sử dụng, nó sẽ hiển thị lên trình duyệt của người dùng. Để xây dựng tốt phần này bạn phải nắm vững các kiến thức kỹ năng xây dựng liên quan đến giao diện. Cụ thể ở đây bạn cần nắm:
    - HTML(Hyper Text Markup Language): Ngôn ngữ đánh dấu siêu văn bản để tạo ra trang Web.
    - CSS (Cascading Style Sheets): là ngôn ngữ dùng để định dạng các thành phần của trang Web.
    - JavaScript: Ngôn ngữ lập trình xử lý trên giao diện nhằm tạo ra sự tương tác tốt hơn trên giao diện Web.

    [​IMG]


    Tóm lại bộ kiến thức này giúp chúng ta xây dựng được giao diện web, những phần nội dung mà chúng ta nhìn thấy khi chúng ta lướt web và nó được gọi là ngôn ngữ lập trình hướng Client(Máy khách)

    Định lượng thời gian học


    - HTML: Kiến thức chủ yếu mình cần nắm chính là các thẻ được sử dụng phổ biến trong website. Chúng ta chỉ cần đi đọc khái niệm cách khai báo và tác dụng của từng thẻ một lượt để sau này mình biết cách sử dụng hợp lý là ok.

    Bên cạnh có HTML 5, Hiện tại cũng đang có một số trình duyệt chưa đọc được hết các thẻ của HTML5 nên đầu tiên chúng ta nên học HTML cơ bản trước, các thẻ HTML5 chúng ta có thể update phía sau, khi mà chúng ta có nhiều thời gian và công nghệ phát triển hợp lý hơn.

    - CSS: Với Css thì việc học cũng cần nhiều thời gian hơn và cần thực hành nhiều hơn vì nội dung cũng khá rộng nào là selector, các thuộc tính.. rất nhiều lưu ý cần nắm trong Css. Tuy nhiên để học và làm được hầu hết các giao diện thì chúng ta cần tập trung trong tầm gần 1 tháng. Với điều kiện chăm chỉ luyện tập và có người hướng dẫn và góp ý để có được code chuẩn ngay từ đầu.

    - JQUERY: Đây là mô thư viện trong JS được sử dụng rất manh mẽ, với Slogan "Write Less Do More" mang lại cho chúng ta xử lý các bài toán một cách tiện lợi. Tuy nhiên Jquery cũng rất rộng, chúng ta không nên đi học hết lý thuyết của Jquery ban đầu làm gì cả. Ban đầu mình cần nắm các kiến thức để đủ nhìn thấy hiệu ứng nào mình có thể làm lại được là ok.

    Có một điều cần lưu ý với Jquery khi làm nó bạn cần có đầu tư duy cao độ. Vì việc xử lý các hành động chồng nhau cần mình phân tích chính xác nếu không chúng ta vướng vào luẩn quẩn dẫn đến không hoàn thành được theo ý muốn.

    Jquery mang lại cảm xúc rất sung sướng khi hoàn thành công việc nào đấy vì những chức năng Jquery xử lý thường giải quyết hướng người dùng.

    Thời gian học Jquery chúng ta nên học trong 1-2 tuần nắm qua các sự kiện, và các công năng mà Jquery cung cấp tác động vào DOM, CSS là ok.

    Có một phần quan trong của Jquery là AJAX, phần này chúng ta sẽ nghiên cứu cùng với quá trình mình học PHP vì nó liên quan đến kết nối với Server.

    Photoshop: Những kỹ năng để vẽ lên bản vẽ có Desgin lo nhưng khi chúng ra nằm ở bộ phận Frontend trong công ty chúng ta nhận PSD(File thiết kế Photoshop) từ bộ phận thiết kế. Từ PSD đó chúng ta biến nó thành giao diện web tĩnh vì thế nên chúng ta cần nắm được công cụ thường dùng của Photoshop để có thể lấy thông tin từ PSD một cách dễ dàng nhằm được ra một website chuẩn theo thiết kế. Thời gian chúng ta tìm hiểu Photoshop thì mất khoảng vài ngày là được rồi, bạn cần nắm được các bộ công cụ và quản lý các phần quan trọng trong Photoshop là được không cần đi quá sâu.

    Kết quả cần đạt được

    - Nắm được các thẻ HTML thường dùng

    - Nắm bản chất Selector CSS và các thuộc tính CSS

    - Có tư duy tốt về Jquery giải quyết được các bài toán Jquery thường gặp trên website

    - Cắt chuẩn HTML-CSS từ PSD

    => Có được website dạng tĩnh cắt từ PSD hoàn chỉnh để giới thiệu khi tham gia tuyển dụng

    Vị trí tìm việc

    Với kỹ năng Frontend thông thường nếu bạn chưa nắm được thì cứ nghĩ nó tầm thường tuy nhiên nó là một bộ phận rất quan trọng trong việc hoàn thành một website. Website đẹp, chuẩn seo, và tương thích đảm bảo hiển thị các trình duyệt là do Frontend cả.

    Thực tế nhu cầu công việc của Frontend khá lớn khi mô hình bán theme cho nước ngoài phát triển rầm rộ như hiện nay.

    Các đơn vị vẫn thường tuyển Frontend chuẩn để cùng phối hợp để làm việc theo team. Vì thế để dễ dàng được nhận việc khi có kỹ năng này bạn cần có kiến thức Frontend tốt, chứng minh bằng sản phẩm mình làm ra chuẩn quốc tế thì cơ hội được hợp tác Freelancer và tham gia vào các công ty không quá khó khăn.

    2. Back End – Database

    [​IMG]

    Vai trò: Back End (mặt sau) là phần xử lý nghiệp vụ (Business Logic), nó thường được đảm nhận bởi các ngôn ngữ lập trình như Java, C#, PHP, Python, Ruby…. Việc chọn sử dụng ngôn ngữ nào phụ thuộc vào sở thích và đặc thù của ứng dụng mà bạn sẽ xây dựng.
    Database (Cơ sở dữ liệu) chịu trách nhiệm lưu trữ và truy xuất dữ liệu phát sinh từ ứng dụng. Để học về Database (chỉ xét CSDL quan hệ) bạn có thể chia làm 2 phần đó là: ngôn ngữ truy vấn dữ liệu: SQL (Structured Query Language) và hệ quản trị CSDL: MySQL, SQL Server, DB2, Oracle …
    Ở đây tôi đề xuất cho bạn ngôn ngữ PHP&MySQL bởi nó có những ưu điểm sau: Mã nguồn mở, hoạt động tốt trên tất cả Server (từ Linux cho đến Windows,.. cộng đồng lập trình viên nhiều dễ dàng tìm hiểu và giải quyết thắc mắc, nhiều Plugins hỗ trợ.

    Định lượng thời gian học

    Lý thuyết: Theo kinh nghiệm của tôi thì chúng ta cần khoảng 2-3 tuần làm việc tập trung thì nắm được hầu hết các phần lý thuyết của PHP

    Tư duy xử lý: Là một phần quan trọng trong PHP, tư duy xử lý nôm na là thuật toán xử lý vấn đề. Ở phía server thao tác xử lý điều hướng dữ liệu diễn ra thường xuyên. Các xử lý có thể chồng chéo xen kẻ nhau nên để giải quyết được vấn đề các bạn cần có tư duy lập trình tốt, nếu không sẽ rất khó khăn trong phần này. Thời gian để đạt được sử nhuần nhuyển trong phần này các bạn có thể mất 1 tháng, có thể nhiều hơn nếu tư duy bạn yếu. Và đặc biệt bạn phải biết tối ưu hóa code để nó có thể đáp ứng tốc độ truy cập đối với những trang web lớn. Không ai muốn chờ đợi load vào website đúng không nào

    => Phần này bạn nên học kinh nghiệm và định hướng của người đi trước để nắm được luồng tư duy tốt ngay từ đầu

    Kết quả cần đạt được

    - Nắm được các kiến thức lý thuyết cơ bản PHP

    - Có Thuật toán xử lý vấn đề một cách rành mạch rõ ràng

    - Làm việc Php&Mysql thao tác với CSDL nhanh và chuẩn

    - Nắm được mộ hình MVC trong PHP

    => Cần có sản phẩm ít nhất 1 website tin tức + 1 bán hàng đầy đủ chức năng.

    Vị trí tuyển dụng

    Có được kỹ năng Php thuần là bước rất quan trong để chúng ta đi lên phần nâng cao. Thực tế có một số công ty tuyển code thuần phục vụ cho dự án người ta tự xây dựng với hệ thống riêng. Tuy nó không nhiều việc như Framework (FW) nhưng bạn cũng có thể có được vị trí công việc khi có sản phẩm chất lượng kết hợp Frontend + PHP&MYSQL áp dụng MVC.

    Nên nhớ rằng nhà tuyển dụng những anh có tư duy tốt, thiếu kỹ năng công ty sẵn sàng traning còn thiếu tư duy thì rất khó có thể phát triển. Nhạy cảm về thuật toán và code rành mạch là điều rất quan trong cho một dev PHP.

    3. Tìm hiểu CMS lớn(Wordpress)

    CMS là hệ thống quản trị nội dung giúp chúng ta tạo được website một cách nhanh gọn thông qua các chức năng thiết kế sẳn. Công việc của bạn là nắm được cấu trúc và xây dựng theme là chính, phần backend gần như 90% có sẳn kèm theo hệ thống plugin phát triển mạnh mẽ. Wordpress là một CMS đang được sử dụng rất thịnh hành thích hợp để phát triển các dự án vừa và nhỏ.

    [​IMG]

    Để học làm việc trên Wordpress tốt công việc chủ yếu của bạn là làm theme nên bạn cần nắm được kiến thức FRONTEND. Bên cạnh đó bạn nắm được nguyên tắc hoạt động của các chức năng trong website thông qua những kiến thức Php&Mysql thuần cộng với kỹ năng đọc tài liệu tiếng anh tốt thì bạn có thể hoàn thành các dự án một cách khá dễ dàng.

    Định lượng thời gian học:

    Với Wordpress bạn có thể làm được dự án hoàn chỉnh có thể sau vài buổi học, nhưng nếu đạt kỹ năng xử lý can thiệp sâu hoặc nâng cao thì mất vài tháng thậm chí vài năm. Tuy nhiên ban đầu bạn cần nắm để làm website tin tức và bán hàng cơ bản là ổn rồi

    Kết quả cần đạt được

    - Nắm được hệ thống backend

    - Tự viết được Theme và tùy biến được theme

    => Hoàn thành cặp đôi website tin tức + bán hàng đa chức năng

    Vị trí tuyển dụng

    Wordpress là một CMS đang được ưa chuộng ở cả Việt Nam và thế giới, nên bạn có được kỹ năng tốt thì kiếm việc không có khó khăn.

    Bên cạnh ứng tuyển ở công ty Việt Nam bạn có thể tham gia vào làm Freelancer hoặc làm Theme bán cho nước ngoài rất tốt. Themeforest là hệ thống bạn cần tìm hiểu qua.

    4. Lập trình nâng cao với framework(CI, Laravel, Zend, Magento)
    Nếu như code PHP&MYSQL thuần thì chúng ta tự xây dựng cấu trúc từ A->Z, độ ổn định hệ thống của chúng ta phụ thuộc rất nhiều vào kỹ năng của người viết.

    Với Framework thì là một hệ thống đã xây dựng sẵn bao gồm các tầng làm việc được quy định một cách rõ ràng. Các công cụ hỗ trợ cũng được hỗ trợ nhiều. Framework giúp người lập trình có thể code hệ thống một cách nhanh hơn, chuẩn hơn và độ ổn định hệ thống tốt hơn. Tuy nhiên làm việc được với Framework bạn cần nắm PHP thuần và kiến thức OOP trước vì hệ thống của các Framework đều áp dụng mô hình MVC.

    [​IMG]

    Định lượng thời gian học


    - OOP: Trước khi bắt đầu với FW bạn nên nắm vững kiến thức OOP(Lập trình hướng đối tượng). Những kiến thức OOP giúp bạn tiếp cận hệ thống FW một cách dễ dàng hơn.

    Thời gian bạn học OOP thì mất khoảng 2 tuần để nắm được các thuật ngữ thường dùng và cách sử dụng các khái niệm trong OOP một cách linh hoạt. Tốt nhất bạn nên xây dựng một bộ Framework dã lập sử dụng OOP MVC, đây là bước đệm rất thuận lợi để bạn nắm được bản chất FW trước khi tiếp cận nó.

    - Framework: Khi chúng ta có được kiến thức PHP thuần, OOP, MVC rồi thì học Framework không mất bao nhiêu thời gian. Bạn có thể vừa đọc hướng dẫn các thư viện, helper để xây dựng lên các module dự án tin tức, bán hàng trong vòng 1,2 tuần. Thời gian hoàn thành cũng nhanh hơn chúng ta code thuần thông qua những công cụ đã xây dựng sẳn cho chúng ta sử dụng.

    Framework mà chúng ta nên bắt đầu chính là Codeigniter (CI), đây là FW dễ sử dụng dễ tiếp cận cho người mới bắt đầu.

    Thời gian cần thiết để nắm rõ FW có thể khá nhiều để khai thác hết tính năng của FW đó nhưng để làm được bộ dự án Tin tức và Bán hàng thì bạn cần đọc và làm trong 3 tuần - 1 tháng là có được bộ chức năng ổn kiếm tiền ngon rồi.

    Kết quả cần đạt được

    - Tạo được hệ thống giã lập OOP+MVC

    - Nắm được các thư viện và các helper của FW

    - Xây dựng được website hoặc phần mềm quản lý từ FW

    Vị trí tuyển dụng

    Những dự án phần mềm hoặc website đa chức năng rất cần đến những hệ thống FW và các DEV rành về các hệ thống FW. Vì tính công việc cần tư duy cao kiến thức nền tảng đảm bảo nên ứng việc làm được ở vị trí FW thì khởi điểm có mức lương từ 7tr trở lên, làm tốt hoặc là thành viên đóng góp và sáng tạo cao trong quá trình làm việc thì được ưu đãi lớn hơn bằng các chế độ tăng lương tức thời, thưởng nóng dự án.

    Nếu bạn đã đến được kỹ năng làm việc FW nhẹ nhàng thì thật tuyệt với. Bạn có thể code được bất kỳ cái gì mình nghĩ ra một cách dễ dàng. Đây cũng là đich đến của rất nhiều DEV web.

    Tổng kết

    Qua bài này tôi đã chia sẻ các bạn lộ trình mình cần phải đi nếu bạn theo con đường lập trình ứng dụng với Php. Một số điểm tôi muốn bạn lưu ý:

    1. Bình tĩnh học từng phần - Học đến đâu chắc đến đó, không học lan man

    2. Cuối mỗi giai đoạn cần có kỹ năng tốt và có sản phẩm chứng minh năng lực

    3. Đừng đợi học hết tất cả mới đi tham gia tuyển dụng. Khi có kỹ năng mà xã hội cần hãy tự tin tham gia ứng tuyển, trong quá trình đó sẽ cho ta nhiều kinh nghiệm phỏng vấn, kinh nghiệm công việc từ đó thể lựa chọn hướng đi thích hợp.

    Cuối cùng tôi chúc bạn có một giai đoạn học tập hiệu quả.
     

trang này

*