Kinh nghiệm khi học lập trình web | vnskills.com

By | 8 Tháng Chín, 2016

Mình  muốn chia sẻ với các bạn một chủ đề mà mình đã muốn chia sẻ từ lâu nhưng vẫn chưa làm được do chưa có thời gian viết, đó là về chuyện định hướng nghề nghiệp và ước mở trở thành 1 lập trình viên WEB. Mình cũng đã tham gia rất nhiều khoa học lập trình web để thực hiện được ước mơ làm 1 lập trình viên.

Mình không có nói rằng mình là chuyên gia về lĩnh vực làm website hay có am hiểu vượt trội, nhưng mình tin chắc rằng những câu hỏi dạng như “Em muốn tiến thân vào nghề này thì phải học gì trước?”, hay là kiểu “Nên bắt đầu từ đâu?” thì mình có thể trả lời cho các bạn được.

Do vậy, bài này mình sẽ xin chia sẻ những gì mình biết được trong việc định hướng và xác định giai đoạn bắt đầu để những bạn có quan tâm thì có thể hiểu hơn về nghề này. Dĩ nhiên là, nếu bạn không có ý định dấn thân vào nghề làm website chuyên nghiệp hoặc chỉ muốn làm để phục vụ công ty, doanh nghiệp hay bản thân mình thì không cần đọc qua.

Dù bạn có muốn sử dụng WordPress hay các CMS nào khác thì việc hiểu được vai trò của mình, sở hữu được các kỹ năng trong bài này cũng sẽ giúp ích cho bạn sử dụng các CMS đó tốt hơn vì CMS cũng chỉ là một sản phẩm của lập trình web để bạn làm website nhanh hơn.

Mình đã bắt đầu làm website thế nào

Trước khi chia sẻ, mình muốn kể cho các bạn nghe về cái quãng thời gian mình mới bập bẹ bước vô việc làm website vì biết đâu nó có ích cho bạn.

Thời điểm đó là khoảng năm 2004 – 2005, tức là khoảng 10 năm về trước. Lúc đó mình biết đến website qua những lần ra tiệm net bắn Half-Life, mình thấy ở mấy trang báo Tuổi Trẻ có những mẫu quảng cáo về khu vui chơi Đầm Sen và kèm địa chỉ website là damsenpark.com.vn. Mình truy cập vào thì thấy nhạc, hình ảnh rất bắt mắt mà với bản tính tò mò về những đồ điện tử của mình thì chợt lóe ra một câu hỏi trong đầu là “Tại sao người ta có thể viết chữ lên đây rồi cho mọi người vào internet đọc?”.

Và mình thử vào Google gõ các tìm kiếm kiểu “cách làm web” thì nó trả về khá ít kết quả có thể hiểu được, ngoại trừ qua các lần tìm đó mình có biết đến website hỗ trợ làm web đó là easyvn.com mà đến bây giờ nó vẫn còn đang hoạt động. Và mình bắt đầu từ đó, mình tập cách đăng ký và sử dụng các chức năng vô cùng đơn giản trong đó để làm một website chỉ đơn giản là ghi “Ngọc Thạch – Lớp 6/1 trường THCS Nguyễn Trãi” và mang lên lớp khoe là chính. ?

Thật sự mà nói cái thời đó, việc làm được website nghe có vẻ hơi xa vời chứ không phải phổ biến và dễ như bây giờ. Riêng với EasyVN, mình đã phải mất gần 2 năm vì vừa khó khăn trong việc phải ra tiệm net, vừa bắt đầu tự tìm hiểu về các thẻ HTML và nói thật là mình biết HTML phải 3, 4 năm mới đọc các chữ đầu tiên tại W3School. Nhưng phải nói, EasyVN đã giúp mình rất nhiều trong những ngày đầu tập làm web khi mà chẳng có một tài liệu hướng dẫn gì.

1 năm sau đó, mình có dịp được tiến lên một bước làm website mới đó là làm website bằng PHP & MySQL với mã nguồn Xtremedia đình đám một thời của Việt Nam để làm website nghe nhạc mà mình tìm hiểu chủ yếu là từ diễn đàn freecodevn.com (bây giờ là freecode.vn nhưng mà hình như đóng cửa lâu rồi) và qua mò mẫm Xtremedia từ việc mod lại các module, sửa lại giao diện mà mình mới hiểu hơn về ngôn ngữ web động như PHP và nó chính là bàn đạp để mình tìm hiểu về mã nguồn vBulletin, phpBB, IBP sau này. Nhưng quãng thời gian này, mình không có tiền mua host và tên miền, lúc đó mình hay dùng tên miền miễn phí dot.tk có hỗ trợ DNS và host miễn phí thì mình hay chờ chực các event ở các forum như vietvbb, hoiquantinhoc để xin host miễn phí.

Và bắt đầu từ năm 2008, mình đến với WordPress và từ lúc đó mình cũng có thể tự mua host và domain để làm website kỹ hơn cho đến tận bây giờ. Nhưng từ năm 2008 tới nay mới là quãng thời gian mình đầu tư cho việc học làm web nghiêm túc, mình bắt đầu học căn bản và nâng cao PHP, Javascript, jQuery, CSS, HTML5 và hiện tại vẫn đang cày PHP cùng với Python (chủ yếu là phục vụ trên server).

Bạn thấy đó, mình đã mất tới 4 năm mới có thể hiểu và bắt đầu được với WordPress, trong khi bây giờ bạn chỉ cần 1 tuần thôi vì đã có serie Học WordPress căn bản của mình rồi. ?

Xác định hướng đi nhất định

Sở dĩ mình sử dụng từ “làm website” thay vì “thiết kế website” cốt yếu là để tránh cho các bạn sự nhầm lẫn của một nhánh trong nghề. Như bạn thấy đó, một website để chạy được thì cần phải thiết kế và lập trình các chức năng bên trong. Một đội ngũ làm website thường sẽ có nhiều bộ phận mang từng chuyên môn khác nhau như bộ phận thiết kế, bộ phận front-end development, bộ phận back-end development, bộ phận testing, và có khi mỗi module nó có thể chia ra nhiều bộ phận khác nhau nếu dự án website đó lớn.

Nếu các bạn định học làm website để phục vụ cá nhân thì không nói chứ nếu bạn đã xác định là mình sẽ làm website để kiếm sống thì phải xác định được hướng đi của mình. Ông bà ta có câu “một nghề cho chín, còn hơn chín nghề” chẳng bao giờ sai, bạn khó mà có thể trở thành một master với toàn bộ các kỹ năng làm website nên tốt hơn hết bạn phải xác định được bạn muốn gì, thích làm gì và có khả năng học cái gì.

1. Hướng thiết kế (Web Designer)

Hướng này nghĩa là bạn chuyển đổi từ một ý tưởng (qua phác thảo hoặc chỉ vài dòng chữ) lên một bản thiết kế xem trước giao diện của website bằng hình ảnh, bạn có thể thiết kế bằng Photoshop hay một ứng dụng nào đó mà bạn chuyên.

Một Web Designer thì kỹ năng đầu tiên tất nhiên sẽ là mắt thẩm mỹ thật tốt, có khả năng sáng tạo tột độ để có những bản thiết kế bá đạo nhất. Một người chuyên thiết kế logo/hình ảnh cũng có thể thiết kế giao diện website nhưng tốt hơn hết bạn theo đuổi một nhánh duy nhất này vì một designer thông thường sẽ có những hạn chế về sự hiểu biết của một giao diện website.

Tóm lại, nếu bạn thích nhánh này thì hãy đầu tư thời gian học cách sử dụng thành thạo các công cụ thiết kế phổ biến của Adobe, các khái niệm cơ bản và nâng cao về thiết kế, khả năng phối màu tốt, am hiểu trải nghiệm người dùng (UX) trên một giao diện website và quan trọng nhất là phải hiểu giao diện của một website để có thể thiết kế làm sao mà người khác có thể chuyển bản thiết kế của bạn thành một giao diện website được.

Do mình cũng không phải là một web designer nên chia sẻ cũng hạn chế nên các bạn có thể tham khảo ý kiến của các web designer chuyên nghiệp khác.

Mình chưa bao giờ học Web Design ở Việt Nam nên không biết ở Việt Nam có khóa học nào chuyên về cái này không. Nếu có bạn có thể giúp mình bổ sung nha.

2. Hướng lập trình

2.a) Front-End Development

Các lập trình viên front-end sẽ có nhiệm vụ chuyển bản thiết kế (thường là PSD, AI) sang một giao diện website tĩnh, cũng có khi bạn làm trực tiếp trên một website động nếu bạn hiểu cấu trúc của website đó nhưng thường là bạn sẽ phát triển bước đầu tiên là ở website tĩnh, còn sau này nếu có cập nhật, thay đổi thì sẽ làm trên website động.

Nghĩa là một bản thiết kế website bằng hình ảnh, bạn sẽ tiến hành cắt, chuyển ý tưởng thành một giao diện website với HTML, CSS, Javascript, jQuery,…v..v..tùy theo yêu cầu của bạn thiết kế. Với hướng này, bạn sẽ làm việc với các ngôn ngữ kịch bản (Javascript/jQuery) và ngôn ngữ thiết kế website như HTML, CSS. Nghĩa là với các ngôn ngữ này, bạn phải thật sự vững vàng và có thể đưa bất cứ một ý tưởng nào lên website vì front-end thì thường là chỉ quanh quẩn với CSS, HTML, Javascript nhưng không phải vì thế mà nó nhàm chán.

Nếu bạn hỏi một ai đó là một front-end developer chuyên nghiệp thì sẽ nghe họ nói với CSS (đặc biệt là CSS3) thì bạn học nắm cơ bản thì chỉ mất 1 tháng nhưng bạn sẽ phải học suốt quãng thời gian làm việc. Học ở đây là học các thủ thuật dùng CSS khéo léo, cách fix các lỗi giao diện liên quan tới CSS hay đơn giản là phát triển kỹ năng mình tốt hơn.

Bên cạnh đó, các front-end developer thường là phải nắm luôn các ứng dụng chuyên dành cho họ như Git, NodeJS, YeoMan, RequireJS, Jasmine, Modernizr và đặc biệt là Scrum trong môi trường làm việc theo nhóm (team work).

Chốt lại, bạn cần đầu tư thời gian học thật kỹ:

  • CSS
  • HTML
  • Javascript
  • jQuery

và kể cả các CMS thông dụng để hiểu cấu trúc giao diện:

  • WordPress
  • Magento
  • Joomla
  • Drupal

Đồng thời khi bạn đã vững rồi, hãy học các công cụ/thư viện như:

  • Git
  • NodeJS
  • YeoMan,
  • Modernizr

2.b) Back-end Development

Trong khi Front-end developer có nhiệm vụ làm việc với giao diện của website thì các Back-end developer sẽ phải mò mẫm bên trong cái lõi của website để phát triển các tính năng bên trong, tức là bạn sẽ làm việc với các ngôn ngữ server-scripting nhiều hơn để truyền tải dữ liệu theo mong muốn ra giao diện website.

Tùy theo ngôn ngữ lập trình của website mà bạn sẽ phải học nó một cách thành thạo. Nếu có học, hãy học các ngôn ngữ lập trình website phổ biến nhất như PHP, Javascript, .NET, C# và hiện nay người ta cũng học qua ngôn ngữ Ruby với framework Ruby on Rails, Java để làm website.

Ngoài ra, bạn cũng phải học thêm cách bảo mật ứng dụng của mình vì khi website bị hack, sếp của bạn sẽ đè đầu 2 ông SysAdmin và Back-end Developer ra mà chửi. ?

Tóm lại, bạn nên học nhất là:

  • PHP (bao gồm học các framework, sẽ có lợi cho bạn sau này)
  • Javascript
  • Linux
  • Cách dùng các IDE như NetBeans, PHPStorm.
  • Git
  • HTML/CSS ở mức tạm được
  • Nếu bạn làm việc với CMS nào đó, bạn phải cần học cách lập trình trên CMS đó như WordPress chẳng hạn.

Các kỹ năng chung

Khi làm website nói chung, dù bất cứ ở vị trí nào mà bạn cũng sẽ cần phải trang bị các kỹ năng chung để tiện lợi cho việc phát triển kỹ năng, tìm kiếm thông tin trong suốt thời gian bạn gắn bó.

1. Tiếng Anh – ít nhất là đọc tốt

Phải nói là rất.101000 nhiều bạn ở Việt Nam lười học tiếng Anh mà lại muốn làm chuyện lớn, vươn xa. Mình tự nhận là người nói tiếng Anh dở vì mình vốn rất ngu tiếng Anh nhưng nếu bạn làm website nói chung, thì quan trọng nhất là kỹ năng đọc/hiểu và nghe các tài liệu phục vụ cho việc này. Bạn thấy đó, các tài nguyên học làm website bằng tiếng Việt đã vừa ít mà lại rất khó hiểu nếu phải dịch toàn bộ ra tiếng Việt. Nên mình khuyên thật lòng là nếu bạn có vấn đề về tiếng Anh thì học các kỹ năng làm web cơ bản bằng tiếng Việt, sau đó dành thời gian luyện đọc tài liệu tiếng Anh về các kỹ năng đó và học các vấn đề nâng cao hơn.

Lấy đơn giản ví dụ bạn tìm kiếm tài liệu học, bạn cứ tìm 2 từ khóa dưới đây sẽ thấy những gì bạn tìm được hoàn toàn khác:

  • tài nguyên học lập trình website
  • web development learning resources

Đấy, ví dụ trên đã nói lên tất cả rồi. Nếu bạn muốn hiểu những kết quả tuyệt vời đó, hãy học tiếng Anh.

Mẹo tập đọc tiếng Anh

Dĩ nhiên trước khi đọc, bạn cũng cần nắm qua các kiến thức về ngữ pháp căn bản, cái này bạn tìm kiếm trên Google có rất nhiều.

Sau đó, bạn hãy cài extension Ddict vào Google Chrome và bây giờ bạn hãy vào các website học làm website bằng tiếng Anh như Mozilla Web Deveoper, W3School chẳng hạn rồi đọc. Chữ nào không hiểu thì bôi đen, nó sẽ tự dịch sang ngôn ngữ bạn cần dịch kèm theo phát âm luôn. Cứ làm như thế đến khi nào bạn đọc mà không cần dùng Ddict thì thôi nha. Đừng nản, chăm chỉ thì bạn cần 1 – 2 tháng thôi là hiểu hết các từ vựng chuyên nghành.

Còn ở trên máy tính, bạn có thể dùng các phần mềm như Lingoes để dịch các chữ trong các tài liệu PDF để đối phó với các ebook.

 2. Học Linux

Cái này vốn là cái bắt buộc cho các SysAdmin nhưng nếu bạn là Back-end Developer hay Front-end Developer thì cũng nên trang bị một chút kỹ năng sử dụng các lệnh Linux vì hiện nay các công cụ phục vụ cho lập trình viên có hỗ trợ phần viết lệnh Linux để thao tác nhanh hơn. Lấy ví dụ nha, bạn cần tìm một chữ nào đó trong đống code và đổi sang giá trị khác, lúc đó các lệnh Linux là thứ mà bạn có thể trông cậy vào nhiều nhất.

Hơn nữa, các web server được làm trên Linux hiện nay cũng phổ biến hơn so với Windows nên nếu là bạn là lập trình viên thì sẽ cần ít nhất là biết cách thiết lập, cài đặt web server để phục vụ trong thời gian làm việc. Đơn cử như Vagrant là công cụ mà hiện nay rất nhiều lập trình viên website sử dụng để test hoặc deployment dự án.

3. Kỹ năng tìm kiếm

Bạn cũng không thể hở một xíu là đi hỏi người khác chỉ vì đơn giản là không ai rảnh để trả lời cho bạn nên tốt nhất là học cách giải quyết vấn đề bằng cách tìm kiếm thông tin trên Google, tìm từ từ nó cũng sẽ ra thôi.

Để tìm tốt thì dĩ nhiên bạn cũng nên biết xíu tiếng Anh để sử dụng các từ vựng tiếng Anh trong đó mà tìm thì kết quả sẽ trả về đa dạng hơn.

4. Kỹ năng tự học

Học ở trường, là một chuyện mà tự học lại là chuyện khác. Tự học là cách tốt nhất để bạn có thể nhớ lâu và giải quyết vấn đề nhanh chóng, nó cũng có lợi nếu sau này bạn muốn học thêm cái gi đó vì môi trường IT là luôn biến đổi, chẳng hạn bây giờ PHP là ngôn ngữ phổ biến để học, biết đâu được vài năm sau bạn phải học một ngôn ngữ khác khi PHP hết thời? Hoặc là bạn làm trong công ty, công ty đó yêu cầu bạn học thêm một cái gì đó để làm việc trong môi trường công ty, nên lúc đó bạn cũng không có thời gian hoặc cũng không thể trông cậy vào ai dạy cho mình được ngoài việc tự tìm các bài học trên mạng rồi tự học.

Nói tóm lại, tự học sẽ giúp bạn dễ thăng tiến hơn.

Học ở đâu?

Những gì mà bạn cần học mình đã có nói rõ ở từng vị trí bên trên rồi, nên bây giờ bạn có thể tìm tài liệu và học ở các website sau đây nếu bạn thích khả năng tự học và mình cũng khuyến khích như vậy:

  • Vnskills.com

Lời kết

Kết thúc bài này, mình chỉ muốn nói là có thể mình viết chưa được đầy đủ vì sự giới hạn kiến thức của mình nhưng mình tin là nó có thể giúp được một số bạn đang hoặc sẽ có kế hoạch học làm website sẽ biết rõ hơn mình sẽ học những gì, tránh việc học quá nhiều dẫn tới cái gì cũng biết được chút chút thì khó mà làm được việc về sau vì mình cũng đã từng như thế và cái giá phải trả của mình là đã tiêu tốn rất nhiều thời gian để sửa lại.

Chúc các bạn qua năm mới sẽ gặp nhiều thuận lợi hơn trong việc học tập của mì

(Lượt xem: 2, Lượt xem trong ngày: 1)