Front-end Dev đơn giản theo ngôn ngữ bình dân là người sẽ làm ra những gì mà người dùng thấy trên website, ứng dụng, game, ...mà họ sử dụng. (Còn về thiết kế thì có bên Designer lo nhé, FE không cần đặt nặng quá phần này, nhưng có khiếu hoặc yêu thích cái đẹp thì càng tốt.
Vì sẽ có rất nhiều cái lợi)

Một số kỹ năng cần thiết thì tùy vào vị trí là làm FE cho web, cho app hay cho game, ... thì sẽ có các yêu cầu khác nhau nhé bạn. Ở đây mình xin đưa ra ví dụ về các kỹ năng cần thiết cho FE Web Dev nhé!
+, HTML/HTML5, CSS/CSS3, JavaScript (có thể sử dụng các thư viện và các frameworks (tùy vào cty làm về mảng nào nó sẽ yêu cầu kỹ năng về việc sử dụng một hoặc nhiều thư viện hoặc frameworks như biết càng nhiều càng tốt nhé!
. VD: AngularJS (hoặc BackboneJS, ReactJS, RequireJS, Knockout, ...), ThreeJS (làm web 3D),...)
+, Sử dụng tốt các công cụ hỗ trợ như: CSS Preprocessor (SASS/LESS), HTML Template Engine (Jade, HBS), Automation Build Tools (Grunt, Gulp, ...), ... và rất nhiều nữa (Cái này biết càng nhiều càng tốt nhé nhưng mấy cái này học cách sử dụng cũng nhanh thôi nên ko cần quá lo)
+, FE Dev theo mình thì JavaScript phải là kỹ năng được ưu tiên hàng đầu và được sử dụng nhiều nhất. Nên việc bạn học JavaScript thuần một cách chuẩn và sử dụng nó thường xuyên sẽ là điều tiên quyết để bạn có thể hiểu và học tốt được cách sử dụng các thư viện, các frameworks bên trên mình có kể nên hãy chú trọng vào học JavaScript nếu bạn muốn là một FE Dev giỏi nhé!
+, Hiện giờ FE Dev được yêu cầu phải biết thêm về NodeJS là một điểm ưu tiên cũng như NodeJS giúp chúng ta rất nhiều trong việc tạo UI/UX tốt đến người sử dụng (đấy là chưa kể tới phần chính của nó là Back-end khủng bố mà mình chỉ nói nó hỗ trợ cho phần UI/UX đã bá đạo đến mức nào rồi nhé. Nói chung NodeJS rất hay mà bạn nên tìm hiểu và sử dụng)
+, Biết sử dụng các công cụ đồ họa để thao tác cơ bản trong khi làm FE là điều khá quan trọng, bạn nên biết cách dùng: Photoshop, Illustrator (hoặc CorelDRAW, GIMP, ...) để phục vụ cho việc tạo các ảnh hình này kia cho UI nhé. Bên cạnh đó nếu biết thiết kế 1 chút cũng sẽ rất hay để có thể tự tạo được các sản phẩm không đụng hàng (thay vì việc phải đi cóp nhặt trên mạng, mà trong công việc thì kỵ nhất với việc cóp nhặt, tất cả phải đều là duy nhất và không sao chép)
+, Nếu có khả năng và thời gian thì có thể tìm hiểu về Back-end để có thể tiện hơn trong lúc xây dựng website, ứng dụng, ... Vì nếu có thể hiểu được thì thời gian và công sức bỏ ra sẽ ít hơn rất nhiều so với FE Dev không biết gì về BE mà cứ phải hỏi suốt là chỗ này dư nào?, chỗ kia ra sao?... (Có thể là .NET, PHP, Java, Python, Ruby, ... đều được, nên chọn công nghệ phù hợp vs sở thích và công việc bạn sẽ định làm)

+, Sử dụng tốt các công cụ hỗ trợ như: CSS Preprocessor (SASS/LESS), HTML Template Engine (Jade, HBS), Automation Build Tools (Grunt, Gulp, ...), ... và rất nhiều nữa (Cái này biết càng nhiều càng tốt nhé nhưng mấy cái này học cách sử dụng cũng nhanh thôi nên ko cần quá lo)
+, FE Dev theo mình thì JavaScript phải là kỹ năng được ưu tiên hàng đầu và được sử dụng nhiều nhất. Nên việc bạn học JavaScript thuần một cách chuẩn và sử dụng nó thường xuyên sẽ là điều tiên quyết để bạn có thể hiểu và học tốt được cách sử dụng các thư viện, các frameworks bên trên mình có kể nên hãy chú trọng vào học JavaScript nếu bạn muốn là một FE Dev giỏi nhé!
+, Hiện giờ FE Dev được yêu cầu phải biết thêm về NodeJS là một điểm ưu tiên cũng như NodeJS giúp chúng ta rất nhiều trong việc tạo UI/UX tốt đến người sử dụng (đấy là chưa kể tới phần chính của nó là Back-end khủng bố mà mình chỉ nói nó hỗ trợ cho phần UI/UX đã bá đạo đến mức nào rồi nhé. Nói chung NodeJS rất hay mà bạn nên tìm hiểu và sử dụng)
+, Biết sử dụng các công cụ đồ họa để thao tác cơ bản trong khi làm FE là điều khá quan trọng, bạn nên biết cách dùng: Photoshop, Illustrator (hoặc CorelDRAW, GIMP, ...) để phục vụ cho việc tạo các ảnh hình này kia cho UI nhé. Bên cạnh đó nếu biết thiết kế 1 chút cũng sẽ rất hay để có thể tự tạo được các sản phẩm không đụng hàng (thay vì việc phải đi cóp nhặt trên mạng, mà trong công việc thì kỵ nhất với việc cóp nhặt, tất cả phải đều là duy nhất và không sao chép)
+, Nếu có khả năng và thời gian thì có thể tìm hiểu về Back-end để có thể tiện hơn trong lúc xây dựng website, ứng dụng, ... Vì nếu có thể hiểu được thì thời gian và công sức bỏ ra sẽ ít hơn rất nhiều so với FE Dev không biết gì về BE mà cứ phải hỏi suốt là chỗ này dư nào?, chỗ kia ra sao?... (Có thể là .NET, PHP, Java, Python, Ruby, ... đều được, nên chọn công nghệ phù hợp vs sở thích và công việc bạn sẽ định làm)
1, Việc làm Front-end theo mình thì khá độc lập với Code Back-end đã có (Ở đây chúng ta vẫn để mọi thứ tĩnh nhé). Cho nên bạn không cần quan tâm là bạn sẽ sử dụng code Back-end của ngôn ngữ nào viết ra. Bạn hãy cứ thiết kế ra giao diện theo đúng yêu cầu rồi sau đó thêm code Back-end xử lý vào các phần tương ứng.
2, Mỗi một ngôn ngữ, công nghệ như: PHP, Java, C#.NET, Ruby, Python, .... chỉ là những TÙY CHỌN cho bạn để bạn chọn một công cụ mà bạn thấy phù hợp và thích làm với nó nhất. Dĩ nhiên mỗi ngôn ngữ, công nghệ có những ưu và nhược điểm riêng. VD: PHP khá phổ dụng vì cú pháp khá dễ học, cộng đồng hỗ trợ lớn, host free support PHP khá nhiều, ... nhưng nhược điểm có thể là vì nó phổ biến, nhiều host support, ... nên bảo mật không được cao chẳng hạn. Java thì bảo mật tốt hơn nhưng hơi khó học, làm việc, ...v.v... Và về các Hệ Quản Trị Cơ Sở Dữ Liệu (HQTCSDL) cũng vậy: MySQL mã nguồn mở và thích hợp với app cỡ nhỏ, vừa, lớn, ... Oracle thích hợp cho các doanh nghiệp cần tích hợp nhiều tính năng vượt trội + bảo mật siêu tốt. SQL Server cũng ok. Nói chung là bạn sẽ tự đưa ra lựa chọn cho mình sau khi tự tìm hiểu các thứ kể trên.
3, Bạn cần phải phân biệt được các thuật ngữ để có thể học và làm tốt hơn.
VD:
PHP, Java, C#, Python, Ruby, ... là các ngôn ngữ lập trình (cho phép viết code xử lý, thao tác với cơ sở dữ liệu, thêm, sửa, xóa, ...)
MySQL, SQL Server, Oracle, ... là các Hệ quản trị cơ sở dữ liệu là một công cụ tập hợp nhiều chức năng sử dụng ngôn ngữ truy vấn dữ liệu SQL để làm việc với Database (cơ sở dữ liệu)
LINQ, ADO.NET, Spring, Struts, Laravel, CodeIgniter, Ruby & Rails, Django, ... là các Frameworks. Các frameworks là khung sườn được tạo sẵn giúp cho Developer dùng nó để tạo nên ứng dụng của riêng mình.
jQuery, Chart, ThreeJS,... (JavaScript libraries), spring-context, junit, log4j,...(Java libraries), ... là các Libraries (thư viện). Một thư viện là một tập các tiện ích nhỏ gộp lại thành một thư viện giúp cho Developer tiết kiệm thời gian, công sức, tăng hiệu suất và khả năng hoạt động của ứng dụng.
Libraries khác Frameworks ở chỗ là Framework là bộ khung được dựng sẵn và khá đầy đủ các thành phần để phục vụ bạn tạo ra một ứng dụng cụ thể. Còn thư viện thì chỉ là một bộ các công cụ để làm việc nhanh, hiệu quả, tốt hơn thôi. Nếu chưa hiểu thì các bạn có thể đọc thêm các bài viết để hiểu thêm nhé!
VD:
PHP, Java, C#, Python, Ruby, ... là các ngôn ngữ lập trình (cho phép viết code xử lý, thao tác với cơ sở dữ liệu, thêm, sửa, xóa, ...)
MySQL, SQL Server, Oracle, ... là các Hệ quản trị cơ sở dữ liệu là một công cụ tập hợp nhiều chức năng sử dụng ngôn ngữ truy vấn dữ liệu SQL để làm việc với Database (cơ sở dữ liệu)
LINQ, ADO.NET, Spring, Struts, Laravel, CodeIgniter, Ruby & Rails, Django, ... là các Frameworks. Các frameworks là khung sườn được tạo sẵn giúp cho Developer dùng nó để tạo nên ứng dụng của riêng mình.
jQuery, Chart, ThreeJS,... (JavaScript libraries), spring-context, junit, log4j,...(Java libraries), ... là các Libraries (thư viện). Một thư viện là một tập các tiện ích nhỏ gộp lại thành một thư viện giúp cho Developer tiết kiệm thời gian, công sức, tăng hiệu suất và khả năng hoạt động của ứng dụng.
Libraries khác Frameworks ở chỗ là Framework là bộ khung được dựng sẵn và khá đầy đủ các thành phần để phục vụ bạn tạo ra một ứng dụng cụ thể. Còn thư viện thì chỉ là một bộ các công cụ để làm việc nhanh, hiệu quả, tốt hơn thôi. Nếu chưa hiểu thì các bạn có thể đọc thêm các bài viết để hiểu thêm nhé!
- "thiết kế web" là phần dựng giao diện (những gì nhìn thấy được, những tương tác, những trải nghiệm trên giao diện đó, ...). Có làm việc với code nhưng hầu hết là thiên về code để "thiết kế" hơn là code để "xử lý". Tầng này sản phẩm được tạo ra là những trang web "tĩnh" theo đúng nghĩa. (Không kể đến dùng các công nghệ như NodeJS, các thư viện, các frameworks của JavaScript để thao tác với phía server thì "tĩnh" vẫn đúng nhé)
- "lập trình web" là nói tới việc viết mã xử lý dữ liệu bên dưới lớp giao diện được tạo ra bởi các Front-end guys đó. Các chức năng mà website, ứng dụng, ... mang lại hầu hết được thực hiện bởi Back-end guys dùng ngôn ngữ lập trình để thao tác vs dữ liệu, tạo ra một trang web "động" thực sự.
Thiết kế web thì sử dụng HTML tạo nội dung, CSS để làm đẹp cho nội dung được tạo bởi HTML, JavaScript để thêm các tương tác nhằm đem lại trải nghiệm tốt cho người dùng. Các công cụ như Photoshop, Illustrator, ... là những công cụ đồ họa để tạo và xuất ra các đối tượng đồ họa như: hình ảnh, video, ...
Còn dùng ASP.NET hay Java Web (J2EE) hay PHP, ... thì đó chỉ là do sở thích, do tính thích hợp với yêu cầu đưa ra,... chứ còn ngôn ngữ nào cũng được hết nhé (Mỗi công nghệ có những ưu, nhược điểm khác nhau nhưng nhìn chung để làm ở mức độ thông thường thì tất cả đều như nhau thôi, sẽ khác nhau trong các trường hợp có cấc yêu cầu đặc biệt). Cho nên ko có cái nào ưu thế hơn cái nào khi nói ở mức bắt đầu học đâu nhé. Chọn bên nào là do bạn tự tìm hiểu và chọn thôi.
Back-end thì nói tới 2 thứ chính là ngôn ngữ lập trình (C# -> ASP.NET, PHP, Java -> Java Web, Python, ...) và một hệ quản trị cơ sở dữ liệu ( nơi lưu trữ dữ liệu và sử dụng một trong các hệ quản trị như: MySQL, Microsoft SQL Server, Oracle, ... để thao tác dữ liệu. Như vậy. dùng cái nào cũng tùy bạn, bạn nên tìm hiểu trước sau đó hãy đưa ra quyết định nên học gì phù hợp vs sở thích và nhu cầu của bạn. Mình đề xuất một vài sự kết hợp phổ biến như sau:
+, học PHP và MySQL
+, học Java và Oracle
+, học .NET và SQL Server
...
Dĩ nhiên là có thể kết hợp chéo nhau được hết nhé! Nhưng các đề xuất trên là dựa trên độ phổ biến của cộng đồng IT nhé!
+, học PHP và MySQL
+, học Java và Oracle
+, học .NET và SQL Server
...
Dĩ nhiên là có thể kết hợp chéo nhau được hết nhé! Nhưng các đề xuất trên là dựa trên độ phổ biến của cộng đồng IT nhé!

Nhận xét
Đăng nhận xét