Bài viết được dịch từ trang web SitePoint

Ở tuổi 12, sau khi khám phá ra tùy chọn “Save as Web Page” trong Microsoft Word, tôi bắt đầu tự học lập trình web. Dĩ nhiên, đầu tiên tôi học HTML và sau đó là CSS và JavaScript, và tiếp theo đó là một chút PHP và Rails. (Hiện nay tôi đang làm việc nhiều với Meteor.)

Làm thế nào để tôi có thể tự học lập trình web?
Làm thế nào để tôi có thể tự học lập trình web?

Trong những năm sau đó, tôi đã đi theo hướng học tập chính thống, và tôi có thể nhận thấy giá trị khi đi theo hướng này, nhưng một số đặc điểm của hướng này là:

  • Nó quá đắt.
  • Tôi phải khá vất vả với việc học trong một lớp học.
  • Tôi có thể tạo cho mình một tiến độ khá thoải mái.

Nhưng đó không phải là một quá trình đơn giản. Sau tất cả, tôi đã không chỉ học về cách làm thế nào để lập trình web. Tôi cũng đã học được cách làm thế nào để học, và đó chính là điều mà chúng ta sẽ bàn luận ngay sau đây.

Dưới đây là 5 bước để bạn có thể tự học lập trình web.

1. Chọn một lĩnh vực phát triển web mà bạn thấy hào hứng.

Bạn không thể "trở thành một nhà phát triển web" chỉ bằng cách đọc một cuốn sách hoặc xem một số lượng video nào đó. Phát triển web là một lĩnh vực rộng lớn và việc cố gắng để biết hết tất cả mọi thứ ngay từ đầu sẽ khiến cho bạn cảm thấy mệt mỏi, thất vọng và dẫn đến bỏ cuộc.

Trở thành một nhà phát triển web cũng giống như trở thành một nhà khoa học vậy. Có những ý tưởng cơ bản được áp dụng trong toàn ngành, nhưng cuối cùng bạn cần phải có chuyên môn. Bạn phải cam kết tới một cái gì đó mãi mãi - mặc dù rất dễ để chuyển sang một lĩnh vực khác một khi bạn đã nắm vững một lĩnh vực nào đó - và không bị giới hạn bởi lựa chọn của mình. Một số người quen thuộc với PHP có thể làm được nhiều hơn những người chỉ nắm bắt được những kiến thức cơ bản của hàng tá công nghệ web tiên tiến khác.

Nhưng tại thời điểm này không có câu trả lời nào là đúng cả. Miễn là khi bạn học về HTML và CSS, bạn chỉ cần chọn bất cứ điều gì có vẻ thú vị. Có lẽ nên tìm hiểu những trang web mà bạn yêu thích xem chúng được xây dựng bằng gì. Bạn sẽ nhận thấy rằng Rails có mặt ở khắp mọi nơi, nhưng các framework JavaScript đang ngày càng gia tăng. Tôi đang làm việc với Meteor, bởi vì tôi thích tính năng thời gian thực của nó. Tuy nhiên các lý do của bạn không phải là vấn đề chính. Chỉ cần cố gắng theo đuổi sở thích riêng của bạn, vì đó là cách duy nhất để bạn có thể duy trì động lực của mình.

Nếu không có gì đặc biệt làm bạn phấn khích, thì hãy gắn bó với những công nghệ phổ biến nhất, như JavaScript và PHP. Có rất nhiều tài liệu học tập ở ngoài kia mà ít ra bạn sẽ cảm thấy vui sướng vì số lượng phong phú của chúng.

Tại TechMaster có khóa học "Web cơ bản HTML5, CSS3 và Javascript" dành cho người mới bắt đầu, chưa học lập trình hoặc cho những ai muốn ôn lại kiến thức căn bản về lập trình web.

2. Bỏ qua (đa số) các "hướng dẫn" từ các nhà phát triển web dày dạn.

Các nhà phát triển web dày dạn kinh nghiệm thường có thiện ý đưa ra những lời khuyên tốt dành cho những người mới bắt đầu, nhưng đa phần là không thực tế để thực hiện chúng. Điều này là bởi vì họ:

  • Không nhớ bạn là một người mới bắt đầu.
  • Mong đợi quá nhiều từ một người chỉ cần nắm bắt được những điều cơ bản.
  • Có sở thích dựa trên những vấn đề mà bạn có thể chưa bao giờ gặp phải. (Như là các vấn đề về việc mở rộng hệ thống để phục vụ hàng triệu user.)

Ví dụ, hỏi về ngôn ngữ nào bạn nên học và cuộc tranh luận kéo theo không phải là những gì phù hợp nhất đối với bạn. Nó sẽ là một cuộc tranh luận dựa rất nhiều vào những thành kiến của các nhà phát triển này có được thông qua công việc của họ.

Đây là kinh nghiệm của tôi:

Dù cho bạn có bắt đầu học PHP hoặc Rails hoặc JavaScript, hay bất cứ công nghệ nào khác đi chăng nữa thì cũng chẳng quan trọng lắm. Lý do tại sao ư? Bởi vì việc chuyển từ một ngôn ngữ này sang một ngôn ngữ khác là không đáng kể so với việc nhảy từ một người không biết lập trình trở thành một nhà phát triển web.

Có những nhà phát triển web nhiều kinh nghiệm đưa ra những lời khuyên tuyệt vời, nhưng khi lời khuyên đó được đưa ra, hãy hỏi bản thân mình rằng: Đây thực sự có phải là cách tốt nhất dành cho một người mới bắt đầu học lập trình? 

3. Hãy tạo cho mình một dự án chính xác (và có thể đạt được).

Sau khi đã học được những kiến thức cơ bản của phát triển web, hãy cố gắng xây dựng một cái gì đó mà không làm theo hướng dẫn của một cuốn sách hay một tutorial nào đó. Bởi cho đến nay, đây là cách hiệu quả nhất để bạn:

  • Cảm thấy vui sướng khi làm một cái gì đó.
  • Khám phá ra những điểm yếu trong kiến thức của bạn.
  • Học cách làm thế nào để giải quyết vấn đề thực tế.

Không quan trọng việc bạn chọn cái gì để xây dựng, nhưng hãy giữ cho phạm vi của dự án đó càng nhỏ càng tốt. Nếu bạn có thể nhìn thấy trước bản thân mình đang dành ra nhiều ngày để làm dự án này, vậy thì nó là quá lớn. Hãy làm cho nó nhỏ hơn. Bạn đừng có vẽ ra quá nhiều tính năng.

Ngoài ra hãy chắc chắn xác định một điểm kết thúc cho dự án đó. Những tính năng nào sẽ có khi bạn có thể gán nhãn cho nó là "hoàn thành"? Bạn muốn biết khi nào thì bạn được phép cảm thấy hài lòng với những gì bạn đã làm. (Và điều này không đồng nghĩa với khi dự án đó đã sẵn sàng để ra lò, vì bạn không cần phải phát hành sản phẩm đó.)

Tùy thuộc vào lĩnh vực phát triển web nào mà bạn đang tập trung chuyên sâu trong các dự án nhất định, nhưng sau đây là một số ý tưởng đáng xem xét:

  • Một ứng dụng hiển thị danh sách to-do (công việc cần làm ngay).
  • Một công cụ viết blog riêng.
  • Một công cụ để theo dõi việc tập thể dục.

Bất kỳ dự án nào mà mục đích chính của nó là làm việc với một số dữ liệu cơ bản là cách tốt để kiểm tra kiến thức của bạn khi mới bắt đầu học lập trình.

4. Cam kết hoàn thành một số lượng xác định bài thực hành mỗi ngày.

Khi bạn bắt đầu với phát triển web, bạn sẽ tiến bộ nhanh chóng trong một số lĩnh vực, nhưng sẽ đến một thời điểm mà sự tiến bộ của bạn chậm lại và đây là nơi mà rất nhiều người mới bắt đầu cảm thấy thất vọng và bỏ cuộc.

Điều này xảy ra bởi vì người mới bắt đầu thường dựa vào việc đạt được các cột mốc (milestone) để cảm thấy hài lòng. Mặc dù các cột mốc là không thể dự đoán trước. Sau khi có được một số kiến thức cơ bản, bạn có thể trải qua vài ngày hoặc vài tuần mà không tạo ra được một bước tiến đáng kể nào.

Tuy nhiên, có một cách tiếp cận khác:

Thay vì tập trung vào việc đạt được các cột mốc, hãy cam kết học tập và thực hành phát triển web theo một số lượng xác định thời gian mỗi ngày. Ít ra thì 20 phút là một điểm khởi đầu tốt nhưng không có giới hạn hoặc yêu cầu chính xác nào ở đây cả. Chỉ cần chọn bất cứ khoảng thời gian nào mà bạn có thể quản lý một cách hợp lý trên cơ sở phù hợp.

Quan điểm trong việc cam kết vào một khung thời gian đó là bạn sẽ cho phép bản thân mình cảm thấy hài lòng khi đạt được sự cam kết đó. Các cột mốc sẽ tiếp tục xuất hiện, nhưng như là một kết quả dễ chịu, chứ không phải là một mục tiêu không thể đoán trước.

5. Gắn kết với một số lượng đáng kể các tài liệu đào tạo.

Bạn phải viết rất nhiều code nếu bạn muốn trở thành một lập trình viên nhưng điều mà nhiều người không nhận ra đó là phần code đó không phải là của riêng của bạn. Có một giá trị to lớn trong việc thực hành theo các đoạn code từ các cuốn sách, tutorial và video tài liệu - như trên trang SitePoint này, trong các cuốn sách và các khóa học từ các trang web như Learnable.

Bạn phải gắn kết với những tài liệu này - và nên quan tâm đến mục đích của mỗi dòng code mà mình đang viết - ngay cả khi bạn đang "học vẹt " thì bạn vẫn là đang học.

Dưới đây là những gì hầu hết mọi người không quan tâm:

Cú pháp không phải là một phần khó của phát triển web. Đó là một trở ngại cho người mới bắt đầu, nhưng điều khó nhất đó là làm thế nào để suy nghĩ cách giải quyết các vấn đề nhất định. Điều trớ trêu lớn nhất ở đây là người mới bắt đầu thường nghĩ về các giải pháp phức tạp hơn so với một người chuyên nghiệp.

Lợi ích của việc học theo một số lượng lớn các tài liệu đó là:

  • Bạn có thể thấy các nhà phát triển khác nhau giải quyết các vấn đề khác nhau.
  • Bạn có thể thấy các nhà phát triển khác nhau giải quyết các vấn đề tương tự.

Khi đã sẵn sàng làm việc trên các dự án riêng của mình, bạn cần phải:

  • Xác định cốt lõi của vấn đề thực sự là gì.
  • Tìm ra những gì cần thiết để giải quyết vấn đề đó.

Bạn có thể không nhớ bất kỳ giải pháp chính xác nào, nhưng điều đó không quan trọng. Hầu hết các vấn đề đã được giải quyết trước đó, trong một vài hình thức khác nhau, và một nửa trong số những khó khăn đó là hiểu được những gì bạn đang cố gắng thực hiện. Khi vượt qua điểm này, mọi thứ sẽ trở nên dễ dàng hơn.

Kết luận

Tôi chỉ chia sẻ một chút trong "bức tranh lớn" về các bí quyết để tự học lập trình web, nhưng chúng chắc chắn là những kiến thức mà ước gì có ai đó đã nói cho tôi biết khi tôi mới bắt đầu tham gia vào lĩnh vực phát triển web.

Nếu bạn đang trên chuyến hành trình tự học của mình, thì bạn đã bắt đầu từ đâu? Và những kỹ thuật của bạn đã thay đổi như thế nào kể từ lúc bắt đầu đó?