Thursday, December 26, 2013

Tìm hiểu về nghề Công Nhệ Thông Tin

Chắc hẳn các bạn đã không còn xa lạ với khái niệm CNTT, tuy nhiên vẫn có nhiều người hỏi cá nhân tôi học CNTT là học những cái gì và sau này ra trường có thể làm gì? Thậm chí nhiều bạn đang học CNTT cũng có chung một câu hỏi như vậy. Tôi nghĩ rằng câu trả lời sẽ đi sâu hơn những gì xung quanh khái niệm CNTT và thực tế việc làm CNTT có những gì tôi sẽ chia sẻ với các bạn qua bài viết này. Hy vọng sau khi đọc xong, các bạn sẽ có được hướng đi đúng đắn cho mình.

Có thể nhiều người ngoại đạo sẽ trừu tượng hóa những công việc trong ngành CNTT, từ góc nhìn đó tôi sẽ cụ thể hóa nghề CNTT bằng việc so sánh với một ngành nghề phổ biến, đó là nghề giáo viên. Nghề CNTT là nghề bao gồm rất nhiều lĩnh vực và chuyên ngành cũng giống như trong giáo dục có sự phân chia giữa các giáo viên bộ môn. Ở đó, mỗi người sẽ học cho mình một chuyên ngành và đa số sẽ chỉ tập trung vào chuyên ngành đó giống như từng giáo viên bộ môn vậy. Tất nhiên sẽ có người làm việc được với nhiều chuyên ngành, như ta thấy thầy giáo dạy Toán có thể dạy cả Hóa hay cô dạy Văn có thể kiêm luôn cả môn Giáo Dục Công Dân. Nếu như bạn chia ngành giáo dục ra làm 2 ban là Tự nhiên và Xã hội thì tôi sẽ chia nghề CNTT thành Phần cứng (Hardware) và Phần mềm (Software). Sau đây chúng ta sẽ đi cụ thể từng lĩnh vực của CNTT.
1.     Phần cứng:
Bao gồm 2 lĩnh vực là Chế tạo phần cứng và Sử dụng phần cứng.
1.1.         Chế tạo phần cứng: Là chế tạo các Chip sử lí, thiết bị lưu trữ, thiết bị ngoại vi, thiết bị mạng… hay ta gọi chung chung là linh kiện điện tử. Công việc này đòi hỏi bạn phải có kiến thức về Điện tử số, Kiến trúc máy tính, Vật liệu bán dẫn, Vật lý, Toán học… nói chung đây có lẽ là lĩnh vực khó nhất và những người làm trong ngành này lại chủ yếu là những người học các ngành điện tử truyền thông chứ không phải CNTT. Vì vậy tôi sẽ không đi sâu vào lĩnh vực này. Vậy các công ty nào cần bạn? Đó là các hãng sản xuất phần cứng và thiết bị.
1.2.         Sử dụng phần cứng: Nhiều bạn sẽ lầm tưởng nó chỉ gồm một số việc như chúng ta lắp ráp, cài đặt, sửa chữa một máy tính hay đơn giản là ngồi và sử dụng máy tính để phục vụ một công việc và học tập. Tôi tạm gọi đó là mức cá nhân (Personal). Còn một mức độ nữa mà tôi nghĩ bạn cần quan tâm và cũng có rất nhiều người đã, đang và sẽ phải quan tâm tới nó, đó chính là mức độ Tổ chức (Organization), Doanh nghiệp (Enterprise). Không giống cá nhân, các tổ chức và doanh nghiệp thường xây dựng cho mình những hệ thống máy tính lớn và kết nối toàn bộ máy tính với nhau tạo thành các Network sau đó có thể kết nối được với Internet. Như vậy người làm trong lĩnh vực sử dụng phần cứng sẽ là người lắp ráp, cấu hình, cài đặt các hệ thống này để đảm bảo các máy tính, máy chủ có thể kết nối với nhau và kết nối được với Internet hay nói chung lại là người Quản trị hệ thống (System Administrator). Đây cũng không phải là một công việc đơn giản, nó đòi hỏi người lắp đặt phải am hiểu về cấu trúc hệ thống, các loại phần cứng, các lệnh cài đặt và cấu hình, các giao thức truyền thông tin qua mạng… Để đạt mức độ thành thục hay làm một chuyên gia trong lĩnh vực này bạn cần gì? Tôi xin trả lời đó là kiến thức về Kiến trúc máy tính, Mạng máy tính và Phân tích thiết kế hệ thống khi bạn học đại học. Vậy nếu không học đại học? Tôi cũng có thể gợi ý bạn tới các trung tâm đào tạo về Quản trị phần cứng để học. Thế còn vấn đề bằng cấp? Ngoài bằng đại học, chúng ta biết rằng có rất nhiều hãng sản xuất phần cứng, họ sẽ cấp chứng chỉ cho chúng ta khi chúng ta sử dụng thành thạo việc cấu hình và lắp đặt thiết bị của họ. Họ thường là các nhà cung cấp thiết bị mạng và truyền dẫn. Tôi xin lấy một ví dụ về một số chứng chỉ liên quan tới Quản trị phần cứng: CCNA, CCNP, CCIE… do hãng chuyên cung cấp các thiết bị mạng CISCO cấp. Và đây là các chứng chỉ thường được đào tạo vì mức độ phổ biến rộng của các sản phẩm CISCO. Thông thường khi đi xin việc về lĩnh vực này, ngoài bằng đại học các doanh nghiệp lớn sẽ thường yêu cầu bạn có một trong các chứng chỉ trên để xác nhận rằng bạn hoàn toàn có khả năng làm việc với hệ thống của họ. Ngoài ra còn có IBM của Mỹ, ZTE và Huawei của Trung Quốc cũng là các hãng cung cấp thiết bị lớn và họ cũng có hệ thống chứng chỉ cho các thiết bị của mình. Vậy các công ty nào cần bạn? Như đã nói ở trên, đó là các tổ chức, doanh nghiệp có hệ thống lớn.
2.     Phần mềm: Bao gồm Phát triển phần mềm, Kiểm tra chất lượng phần mềm và Sử dụng phần mềm
2.1.         Phát triển phần mềm: Đó chính là công việc lập trình phần mềm. Bạn sẽ học để trở thành Coder hay Programer hoặc ngay cả một Desiger. Tại đây tôi có thể chia nhỏ ra thành các chuyên ngành khác và giới thiệu một vài ngôn ngữ lập trình để các bạn tiện tìm hiểu.
·        Lập trình Desktop: Hiểu đơn giản là bạn lập trình các phần mềm chạy trên máy tính, có thể là phần mềm ứng dụng, phần mềm hệ thống, games…  và để lập trình bạn sẽ cần học một hoặc một vài ngôn ngữ lập trình VD: C/C++, Java, C#, Visual Basic, Delphi… và một số ngôn ngữ mở rộng khác.
·        Lập trình Mobile: Với tốc độ phát triển chóng mặt hiện nay của các thiết bị Mobile cũng như các ứng dụng chạy trên Mobile tôi tin chắc rằng bạn sẽ có nhiều quan tâm tới lĩnh vực này. Tôi xin cụ thể, để lập trình với Mobile bạn cần biết nền tảng mà bạn sẽ sử dụng hay như hiện nay chúng ta quen gọi là lập trình trên HĐH Mobile. VD bạn cần học Java để phát triển J2ME hay Android, học Objective C để lập trình cho iPhone/iPad, học C#, J#, Visual Basic.NET để lập trình Windows Phone…
·        Lập trình Web: Công nghệ Web hiện nay cũng rất phát triển vì vậy việc làm trong phát triển Web khá nhiều. Nhưng phát triển Web lại gồm nhất nhiều công đoạn mà bạn sẽ khó mà làm hết cùng lúc được, đó là Lập trình Web, Thiết kế web, SEO… Tôi sẽ đi qua một số ngôn ngữ và công nghệ bạn cần học để Lập trình web và thiết kế web. VD bạn thiết kế sử dụng Photoshop, Illustator… để tạo mẫu các trang web, bạn lập trình web sử dụng các ngôn ngữ và công nghệ như HTML/CSS, Javascipt, PHP, JSP, ASP, ASP.NET… để đưa mẫu thiết kế đó thành một trang web hoàn chỉnh và chạy được.
·        Lập trình nhúng: Có thể bạn sẽ cảm thấy lạ lẫm với khái niệm này, nhưng thực ra nó chính là việc sử dụng các ngôn ngữ lập trình để điều khiển thiết bị. Không chỉ là máy tính, nó còn có thể điều khiển được rất nhiều thiết bị khác như máy móc, đồ gia dụng (TV, Tủ lạnh, Điều hòa…), ô tô, máy bay… Đây là một công việc khá khó và đòi hỏi độ chính xác, tỉ mỉ cao. Cuối cùng là ngôn ngữ sử dụng: ASM, C, Ada…
Vậy những công ty nào cần bạn? Trong lĩnh vực phát triển phần mềm có rất nhiều chuyên ngành nhỏ, nói chung bạn học ngành nào bạn sẽ tìm được việc ở công ty làm về ngành đó. Tất nhiên còn tùy khả năng, may mắn của bạn và nhu cầu nhân lực của ngành đó.
2.2.         Kiểm tra chất lượng phần mềm
Bạn sẽ được học trở thành một QA(Quality Assurance) hay một Tester. Có lẽ ít trường đại học đào tạo bạn nhiều kiến thức về lĩnh vực này. Nhưng đây thực ra là một việc quan trọng khi bạn hay công ty bạn cho ra đời một phần mềm có khả năng thương mại hóa. Ở đây bạn sẽ thường làm công việc chạy thử, đánh giá, phát hiện lỗi. Tuy nhiên để làm một QA hay Tester thì bạn cũng cần nắm rõ kĩ thuật lập trình, am hiểu cấu trúc phần mềm, đọc hiểu các thông báo lỗi… Còn vấn đề việc làm, theo tôi được biết thì trước đây nhu cậu tuyển Tester tại VN chưa cao, đa số các Coder kiêm luôn cả Tester. Nhưng nhu cầu thật sự ở các công ty lớn hơn rất nhiều cùng với việc có nhiều công ty làm Outsource nên nhu cầu Tester đang tăng lên nhanh chóng. Tôi có thể kể cho bạn câu chuyện về Windows 8, trong vòng 2 năm phát triển Microsoft đã cần tới 1,24 tỉ giờ để kiểm thử phần mềm Window. Tức là nếu một người làm 8h một ngày và làm liên tục trong 2 năm thì MS đã phải cần tới gần 10 ngàn người để kiểm thử. Trong khi số lượng lập trình viên Windows chỉ có vài trăm người.
2.3.         Sử dụng phần mềm.
Nó cũng không đơn giản như lĩnh vực Sử dụng phần cứng tôi đã đề cập ở trên. Tôi sẽ không nói tới việc bạn sử dụng Window, cài đặt một số ứng dụng trên PC hay vài thủ thuật nào đó chỉ dành cho các kỹ thuật viên sửa máy thuê ở mức Personal. Cái tôi muốn hướng cái bạn tới đó là các công việc thường gặp trong môi trường Doanh nghiệp. Sau khi cài đặt và cấu hình các phần cứng, bước tiếp theo và quan trọng nhất là cài đặt và quản trị phần mềm trên đó. Đó là những phần mềm gì tôi sẽ chia sẻ ngay sau đây.
·        Hệ điều hành: Với các hệ thống lớn, hệ điều hành cũng làm nhiệm vụ quản lí tài nguyên như phần cứng và dữ liệu, có khả năng tương tác với các hệ thống mạng truyền thông. Nhưng ở các hệ thống lớn đòi hỏi phần cứng mạnh thì HĐH lại cần phải mềm dẻo, quản lí tài nguyên tốt, hỗ trợ các giao thức mạng phức tạp, đa nhiệm và nhiều người dùng nhắm đáp ứng được các tác vụ và ứng dụng đòi hỏi lượng tài nguyên và truy cập lớn. Hai HĐH mà ta thường gặp là Window Server và Linux. Công việc này đòi hỏi bạn phải thông thạo cấu trúc HĐH, tổ chức sắp xếp dữ liệu, cài đặt, triển khai ứng dụng đôi khi cần phải lập trình công cụ tự động (shell scipt) hoặc thậm chí biên dịch Kernel (trong Linux). Lĩnh vực này cũng có 2 mảng chứng chỉ đó là các chứng chỉ liên quan tới Windows Server điển hình là MCSA và với Linux là LPI.
·        Triển khai ứng dụng: Có thể bạn không cần phải thông thạo HĐH nhưng công việc triển khai và quản trị ứng dụng cũng không hề đơn giản. Với các hệ thống dữ liệu lớn, công việc này còn có ý nghĩa vô cùng quan trọng. Tôi sẽ đi cụ thể một vài ví dụ:
-         Web server software: là các ứng dụng tạo nền web dùng để lưu trữ và xử lý trang web, làm cầu nối giữa mã web với các truy cập từ bên ngoài. Nhờ đó mà ta truy cập được trang web. Một số webserver thường thấy như Apache, IIS, LMNP (có cả nginx trong đó nên tôi ko tách riêng ra nữa), Tomcat (cái tomcat này dùng chạy JSP, có thể nhiều bạn chưa biết)…
-         Database software: dữ liệu là thành phần quan trọng nhất, lưu trữ mọi thông tin của các ứng dụng khác. Làm việc với database software tức là bạn đóng vai trò một người quản trị dữ liệu. Hiện tại có các CSDL phổ biến như MS SQL, MySQL, Oracle…
-         Mail server: bạn sẽ là người quản trị hệ thống gửi và nhận mail, tôi sẽ không nói về tầm quan trọng của công việc này mà sẽ để bạn tự hình dung một ngày kia Gmail biến mất và bạn thì mất trắng rất nhiều tài liệu trong đó…
-         Sharepoint, Exchange… là một số ứng dụng dịch vụ của MS
Cuối cùng là chứng chỉ và công việc, tôi sẽ đưa một link tham khảo vào cuối bài viết để các bạn tìm hiểu sâu hơn về các chứng chỉ. Còn về công việc, như trên, vẫn là dựa trên nhu cầu của doanh nghiệp.
Hiện tại các bạn nghe nhiều tới vấn đề bảo mật. Tôi xin tách ngành cuối cùng mà mình đề cập đến ra một bài viết riêng và sẽ gửi tới các bạn trong một kì nào đó. Đó là ngành Bảo mật thông tin. Tôi hy vọng bạn sẽ có hứng thú!
Có lẽ đã quá dài và lan man đi chỗ khác, trên đây là những gì bạn sẽ học và làm được trong nhành CNTT, tôi xin khép bài viết tại đây. Nếu bạn có hứng thú thì bài viết kì sau của tôi sẽ là “Kiếm tiền với CNTT dễ hay khó?”.
Link tham khảo dành cho các bạn:

Jino Hoàng

No comments:

Post a Comment