Chuyển đến nội dung chính

Chia sẻ định hướng nghề làm website

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.
 Có thể bạn quan tâmSerie học VPS Linux căn bả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:
  • QHOnline.Edu.Vn – Học PHP bằng tiếng Việt
  • Zend.vn – Học PHP bằng tiếng Việt
  • TutsPlus – Học mọi thứ về IT bằng tiếng Anh
  • Learnable – Học các kiến thức chuyên về web/mobile
  • TeamTreeHouse – Học phát triển website chuyên nghiệp
  • Udemy – Thư viện khóa học online đồ sộ, chất lượng
  • Lynda – Cũng là một thư viện các khóa học online đồ sộ

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.

Nhận xét

Bài đăng phổ biến từ blog này

Entry Test của FPT

IQ - Kiểm tra tư duy logic (8/20) - GMAT- Kiểm tra khả năng tính toán trong thời gian ngắn (8/20) - Tiếng Anh (18-> 25/50) - Các bài thi chuyên môn - FE (8/20) IQ: lên mạng tìm "IQ test" là ra đầy. + GMAT: Những câu trắc nghiệm tính toán đơn giản kiểu như sau:  1 . Một shop thời trang sale off quần jeans 15 %, quần jeans giá 450 $, người mua đưa 500 $, hỏi cashier trả lại bao nhiêu $ tiền thừa.? 2 . 100 % là 180 , vậy 150 là bao nhiêu %? Tiếng anh: Cỡ như thi TOEIC thôi. Chuyên môn: Mobile thì trắc nghiệm Java. Qúa trình tuyển như sau :v Lần 1: Test IQ, Tiếng Anh( mình làm í ẹ khoảng 50% mà vẫn được) , Java Lân 2: được gọi điện lên :)) + Gioi thiệu bản thân + Họ chỉ hỏi các câu căn bản như: -. OOP: là gì, 4 tính chất, ví dụ, khác nhau giữa interface và abstract - CODE: hầu toàn các bài toán vòng for :)) , cẩn thận mấy câu kế thừa. SQL (distinct, view, function, cursor, store procedure, ...v.v.), nhớ có câu cộng 2 số int không dùng biến đệm hơi khoai haha + Nói ch...

Java: Java Package-Thư viện trong Java

Giới thiệu về Package Các bạn mới học lập trình Java thường không dể ý tới package vì các bạn toàn tạo file .java vào cùng 1 chỗ, không cần sắp xếp, không cần quản lý truy nhập. Nhưng để tăng kỹ năng lập trình với Java, các bạn cần phải tìm hiểu về package trong Java. Các bạn có thể tham khảo định nghĩa sau: Package được dùng để đóng gói các lớp trong chương trình lại với nhau thành một khối. Đây là cách tốt nhất để lưu trữ các lớp gần giống nhau hoặc có cùng một module thành một khối thống nhất – để đáp ứng 1 khối chức năng. Từ đây mình sẽ giới thiệu thêm với các bạn các câu lệnh nhâp khẩu,nó có định dạng như sau : Định dạng :  import javaPackageNameImport;    Nó giống như khai báo thư viện ở các ngôn ngữ lập trình khác.Như vậy,chỉ khi các bạn nhập khẩu chúng,các bạn mới có thể sử dụng thư viện mà chúng cung cấp cho ta. VD :    import java.util.Date;   import java.text.SimpleDateFormat; Lưu ý : -Các câu lệnh nhập khẩu rất nhiều và...

Khác nhau giữa Array và ArrayList và HashMap

Collection bản chất là tập các lớp dùng để lưu trữ danh sách và có khả năng tự co giãn khi danh sách thay đổi : Thêm , sửa , xóa , chèn … Hai lớp Collection thường được sử dụng nhiều nhất là ArrayList và Hashmap Giới thiệu về ArrayList ArrayList sử dụng cấu trúc mảng để lưu trữ phần tử , tuy nhiên có hai đặc điểm khác mảng : Không cần khai báo trước kiểu phần tử . Không cần xác định trước số lượng phần tử ( kích thước mảng ). N ó có kh ả năng truy c ậ p ph ầ n t ử ng ẫ u nhiên (Do th ừ a k ế t ừ interface RandomAccess ). P hương thức khởi tạo ● ArrayList () ● ArrayList (Collection c) ● ArrayList ( int initialCapactity ) Các phương thức chính ● add(Object o) ● remove(Object o) ● get( int index) ● size() ● isEmpty () ● contains(Object o) ● clear() Giới thiệu về HashMap ● Là ki ể u t ậ p h ợ p t ừ đ i ể n, HashMap cho phép truy xu ấ t tr ự c ti ế p t ớ i m ộ ...