Ngày nay mỗi lập trình viên đều chọn cho mình một hướng đi riêng. Có người thì chọn phát triển theo hướng lập trình nhúng (Embeded System), có người lại đi theo hướng lập trình web, và cũng có nhiều người lại theo hướng lập trình ứng dụng di động,… Dưới đây mình sẽ chia sẻ những kiến thức và kĩ năng cho những ai muốn theo con đường Web Developer.
Những kỹ năng cần thiết mà Web Developer cần có
Kĩ năng Front-end
Về cơ bản front-end là phần mà người dùng có thể nhìn thấy và có thể tương tác. Hay một cách nói vui thì phần này là “mặt tiền” của một trang web. Có thể cho rằng phần front-end sẽ quyết định đến lượng khách truy cập và ở lại trang web của bạn. Nếu bạn yêu thích thiết kế và gần gũi với mọi người thì bạn có thể tập trung toàn và phát triển tốt kĩ năng front-end này. Không xa trong tương lai bạn sẽ trở thành một Front-end Developer với mức lương đáng ngưỡng mộ đó nha. Để làm được điều này các bạn cần phát triển các kĩ năng:
- HTML/CSS/JavaScript cơ bản (các bạn nên bỏ ngay ý nghĩ JS dễ dàng nha, bởi thực tế nó rất khó đó nha)
- Nắm rõ thư viện/web framework như: Bootstrap, jQuery, EmberJS
- Kĩ năng thiết kế, và cả photoshop. Bên cạnh đó là cả kiến thức về UX/UI
- LESS/SASS (stylesheet languge)
- Sử dụng thành thạo npm, grunt,… để optimize HTML/CSS/JS
- Cuối cùng là kĩ năng Ajax, và cách thiết kế giao diện responsive.
Theo Mona Media – đơn vị thiết kế website hàng đầu TP HCM thì Front-end đóng vai trò quan trọng trong một dự án. Bởi lẽ giao diện là phần đầu tiên mà người dùng nhìn thấy. Do đó nó qan trong hơn bao giờ hết trong việc giữ chân khách hàng ở lại lâu hơn trong trang web của bạn. Tuy nhiên giao diện đẹp thôi là chưa đủ với người dùng, muốn người dùng tin tưởng và thường xuyên vào website của bạn hơn bạn cần phải thiết kế phần này vừa đẹp mắt mà lại dễ dàng sử dụng. Người dùng chỉ thích và muốn làm những thứ gì tiện nhất nhanh nhất cho họ chứ không thích rườm rà cầu kỳ (Google là một ví dụ cho sự yêu thích của người dùng, tuy đơn giản nhưng Google đầy đủ và tiện ích). Cho nên không phải chỉ nắm vững kiến thức mà bạn cần phải có tư duy và biết những tips giúp cho thiết kế front-end của bạn tiếp cận người dùng tốt hơn.
Dưới đây là một số cách giúp các bạn nâng cao khả năng front-end
- Series Head First, The Missing Mannual (Head First HTML & CSS, jQuery The Missing Manual….)
- Don’t make me think
- The Design of Everyday Things
Kỹ năng Back-end
Back-end là phần đằng sau mà chỉ những nhà lập trình mới có thể thấy. Phần back-end cũng chính là phần làm cho hệ thống của các bạn hoạt động trơn tru và hiệu quả hơn. Toàn bộ dữ liệu của người dùng cũng như thuật toán phân tích … đều nằm trong phần back-end. Nếu các bạn coi phần front-end là lớp sơn của một ngôi nhà thì phần back-end chính là bộ khung xương của ngôi nhà đó. Để có được kỹ năng tốt cho phần back-end các bạn cần nắm chắc những kỹ năng sau:
- Ngôn ngữ server-side để viết back-end cũng là các ngôn ngữ lập trình phổ biến nhất hiện nay như: Java, C#, Ruby,… Dĩ nhiên kiến thức về framework các bạn chắc chắn phải nắm chắc đi kèm là ngôn ngữ ASP.NET MVC, Django, Rails,…
- Kiến thức về database SQL: MySQL, MS SQL Server,… Thời gian gần đây một số database NoSQL đang được mọi người dùng phổ biến đó là: Neo4j, MongoDB,…
- Cùng với đó là kiến thức về web, các công cụ code web, cả cách viết Web Service, cách đăng nhập và phân quyền nữa nha.
- Hiểu biết và có kiến thức vững về cách hoạt động và cơ cấu của các CMS như WordPress, Joomla, Umbraco,…
Có thể nói kiến thức về phần back-end này rất phức tạp, do đó để làm tốt được phần back-end một developer chỉ nên tập trung vào 2 đến 3 ngôn ngữ chính, các bạn đừng cố ôm nhiều kẻo làm cho mọi chuyện nát bét. Code phần back-end rất phức tạp và kiến thức rất lớn. Do đó các bạn cần phải nắm cấu trúc tốt, dễ dàng cải tiến và mở rộng. Là một Back-end Developer các bạn có thể trau dồi kiến thức và tiến lên vị trí System Analyst hoặc Software Architecture.
Một số cách cho back-end developer phát triển
- Clean Code
- Code Complete
- Head First Design Pattern
- Sách chuyên sâu về ngôn ngữ/framework: C# in Depth, Spring in Action, Pro .NET 4.5
Kỹ năng phân tích thiết kế
Ngày nay ranh giới của phần front-end và back-end trong lập trình là rất mong manh. Gần như các web developer thường làm tốt phần back-end đồng thời có kiến thức khá về phần front-end. Việc này sẽ giúp cho các developer phát triển nhanh hơn mạnh hơn. Đồng thời việc hiểu và có thể làm tốt cả hai phần back-end và front-end các developer có thể hiểu được toàn bộ trang web của mình. Họ hiểu trang web đó hoạt động như nào, nó có đang tốt hay đang xấu đi hay không.
Các thao tác và tác vụ phân tích thường được trên các IDE song song với các dữ liệu thiết kế. Hơn nữa với công nghệ ngày nay lập trình viên phần front-end cũng có thể phát triển sang mảng mobile nhờ sự trợ giúp từ phía Cordova (HTML, CSS, JS), lonic, Window Phone App (C#),… Ngoài những kỹ năng chuyên môn các bạn cần trau dồi kỹ năng phân tích, cũng như kỹ năng giải quyết vấn đề từ đó giá trị bản thân của các bạn mới có thể tăng lên. Các bạn cần phải hiểu khách hàng hơn ai khác ví dụ như các bạn cần hiểu: khách hàng cần gì ở trang web của bạn, lượng truy cập là bao nhiêu, làm cách nào để performance tăng lên. Đây là những điều mà nhà tuyển dụng sẽ yêu cầu bạn trong lúc phỏng vấn cũng như là đi làm.
Dưới đây là một số cuốn sách các bạn nên tham khảo:
- The Pragmatic Programmer: From Journeyman to Master
- The Passionate Programmer: Creating a Remarkable Career in Software Development
- Getting Real
- Cracking the Colding Interview: 150 Programming Questions and Solutions
Kết luận
Trên đây là những kỹ năng cần có của một Web Developer. Các bạn cần dành thời gian để học tập và trau dồi những kiến thức về kỹ năng này để phát triển cho công việc của các bạn. Các bạn càng trau dồi được nhiều kỹ năng về front-end và back-end tốt thì các bạn càng có cơ hội thăng tiến trong công việc.