Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Tổng quan ngành Công Nghệ Thông Tin

20:10 15-01-2018 2.189 lượt xem 1 bình luận 10:13 16-01-2018

Tư vấn tổng quan ngành Công Nghệ Thông Tin.
Đối tượng chủ yếu:
- Sinh viên
- Người ttay ngang
- Người muốn có cái nhìn tổng quan về ngành Công Nghệ Thông Tin

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
K9 SuperAdmin, KquizAdmin, KquizAuthor đã bình luận 21:41 15-01-2018

1. Ngành Công nghệ thông tin (CNTTT) là gì?

- Ngành công nghệ thông tin nói chung là ngành học chuyên sâu về:

+ Điều khiển, thao tác làm quen, xử lý với máy tính, mobile (phần mềm)

+ Kiến trúc mạng máy tính và internet (Security, Network...)

+ Kiến trúc vi mạch điện tử (nhúng, IoT)

Sản phẩm của ngành này làm ra:

- Phần mềm: Phần mềm quản lý, phần mềm chấm công, phần mềm hẹn giờ tắt máy tính, app mobile...

- Website: facebook.com, howkteam.com, google.com

- Game: LOL, Dota2, OverWatch, Heartstone, MineCraft...

- Tools: chính là phần mềm hoặc website có chức năng riêng biệt thay thế con người làm những việc lặp đi lặp lại một cách máy móc: Tools đăng ký tài khoản facebook...

- OS (Operating System) - hệ điều hành: Window, Linux, Ubuntu, MacOS...

- Firmware: Firmware quản lý, điều khiển module Wifi trong nhà bạn.

- Robots: Tay đòn trong các nhà máy (hỗ trợ phía điều khiển tự động. Website hay app điều khiển và máy móc)

- Crack phần mềm

- ...

2. Bắt đầu học ngành CNTT từ đâu

- Nên biết một chút cái gọi là lập trình. Kể cả bạn học Security.

+ Học lập trình giúp bạn có tư duy lập trình. Tư duy lập trình sẽ giúp bạn có cái nhìn tổng thể cho cả hệ thống bạn sẽ làm ra/Bảo trì/Bảo vệ/Tấn công.

- Hệ điều hành

- Mạng máy tính

- Kiến trúc máy tính

- Cấu trúc dữ liệu

- Giải thuật

- Toán logic

- Cơ sở dữ liệu

- Phân tích thiết kế hệ thống
 

3. Lộ trình chung

- Nên học ngôn ngữ lập trình C. Vì mình thấy nó phù hợp nhất cho newbie ở chỗ:

+ Ngôn ngữ tự nhiên

+ Đủ mạnh để làm gần như mọi thứ

+ Đủ khó để ta bắt buộc phải hiểu cốt lõi thuật toán

+ Đủ dễ để tiếp cận

 

Các bạn có thể chọn mọi ngôn ngữ lập trình mà bạn thích để học. Tùy theo bạn thôi. Trên là ý kiến cá nhân.

Nên nắm được:

+ Kiểu dữ liệu là gì?

+ Biến là gì?

+ Nhập xuất cơ bản

+ Cấu trúc điều kiện

+ Chuỗi

+ Mảng

+ Vòng lặp

+ Nhập xuất nâng cao (tùy hỷ)

Từng bước cố gắn làm ra sản phẩm từ kiến thức đã học hay lụm lặt (tùy). Và lưu nó cẩn thận để sau này mang đi phỏng vấn và khoe với vợ :3

Kết hợp học:

- Hệ điều hành, mạng máy tính : giúp bạn hiểu rõ cách quản trị máy tính, phân quyền, registry, policy của máy tính. Hiểu về bản chất bắt tay của các ứng dụng mạng. Hiểu về bản chất truyền nhận của gói tin. Header gói ttin. TCP/UDP/IP là gì.

 

Lúc này bạn đã có thể làm một ứng dụng mạng khi kết hợp kỹ thuật lập trình mạng với Socket.

- Học kiến trúc máy tính: Nắm được máy tính nó hoạt động, lưu trữ ra sao. (High-level => crack app)

- Cấu trúc dữ liệu, giải thuật, toán logic: Ngoài các kiểu dữ liệu cơ bản ta có thể tạo ra các kiểu dữ liệu khác cho mục đích của mình. Có các kiểu dữ liệu phức tạp quen thuộc nào? Có các thuật toán cơ bản đến phức tạp quen thuộc nào.

- Cơ sở dữ liệu: Cho bạn biết cách để lưu trữ dữ liệu ngoài phần mềm. Các thao tác với nó. Kiến trúc lưu trữ ra sao.

- Phân tích thiết kế: Giúp bạn có tư duy từ đặc tả biến thành cơ sở dữ liệu.

 

4. Lộ trình riêng: Sau khi đi qua lộ trình chung ở số 3

- Phần mềm PC: (cho cả tools)

+ Đi sâu: C# -> Winform -> WPF (rất nên học dù có thể bỏ qua). SQLServer. Phân tích thiết kế hệ thống. Nên học những kỹ thuật: LinQ, EntittyFramework, Anonymous Method, Event - Delegate, Thread, Task, Collection.

+ Nâng cao: HttpRequest (HttpClient - CrawData) cho việc POST/GET data. ImageProcessing - Xử lý ảnh. WinAPI - giúp cho bạn gần như  điều khiển được cái máy tính...

 

- App Mobile:

+ Học Java -> Android

+ Học Objective-C hoặc Swift -> iOS

+ Học C# -> Xamarin

+ Vẫn nên biết về lập trình website và cả cơ sở dữ liệu

 

- Website:

+ HTML + CSS + JavaScript

+ Bootstrap

+ JQuery

+ Các thư viện hỗ trợ Front-End của JS

Lựa chọn 1 trong các ngôn ngữ server side sau đây mà sài:

+ PHP: Lâu đời, cộng đồng lớn, nhiều tài liệu, làm website lớn nhỏ gì cũng ok.

+ ASP.Net MVC (C#): Mới ra cũng mấy năm, tài liệu cũng nhiều, cộng đồng cũng mạnh, làm web lớn ngon hơn. Web nhỏ mất time hơn PHP trừ khi bạn code sẵn.

+ Java/Servlet: Tài liệu nhiều, Cộng đồng tương đối nhưng toàn pro, Làm Web lớn mới ngon. Làm Web nhỏ ăn hành.

+ Python (Django/Flask): Nước ngoài đang chuộng, tài liệu ổn, Cộng đồng Việt Nam thưa thớt, cộng đồng nước ngoài thì không lo. Tương tự Java.

+ Wordpress(WP): Làm web trong vài phút, nhanh, cộng đồng lớn, lâu đời, phát triển liên tục. Làm web nhỏ thì bao ngon. Lớn thì suy nghĩ kỹ à nha.

+ Joomla: Tương tự WP nhưng không được ưa chuộng bằng. Có lý do hết :3.

+ NodeJS: Mới ra đời, Cộng đồng máu lửa, tài liệu chủ yếu nước ngoài, làm website lớn nhỏ gì cũng được.

+ Ruby on Rails: Các website lớn nước ngoài vẫn dùng. Cần người update. Khá giống Java. Nhưng họ đang chuyển dần qua Python. Nói vậy chứ tùy. Nhưng không còn hot như trước. Bị các ngôn ngữ mới nổi chiếm ưu thế. Cộng đồng nước ngoài, tài liệu ít.

- Học Deisgn Partten... gõ từ khóa Design Partten lên google :3

 

- Game:

+ Nên chơi game cho nhiều để biết game play (cách game hoạt động, luật game). Design (các design đẹp, hay). Payment (cách kiếm tiền từ game). Trải nghiệm.

+ Nếu biết design model cho game của mình thì tốt (không cần rành. nhưng cần biết để nói chuyện với người làm model).

+ Chơi game nhiều để nắm cách tạo ra game như: Nhân vật nằm trước background là 1 image. Khi nhân vật nhảy lên và đứng trên cục gạch bản chất là nhân vật đang đứng trên một vật thể bị ẩn đi. Học cốt truyện nữa.

+ Các ngôn ngữ lập trình ra game:

. C# - Unity3D hay dùng thư viện OpenGL...

. C++ - Unreal, CosCos2Dx hay dùng thư viện DirectX

. Java - Chịu

. Python - Không nhớ @@ update sau

. HTML5 + CSS3 + JavaScript (Web game)

+ Học cách tạo ra các animation

+ Xử lý va chạm

+ Bắt đầu, kết thúc game, tính điểm, lưu trữ dữ liệu

+ Các API của các website lớn như FB, GG, payment...

+ Thậm chí cả lập trình mạng nữa :v

+ Khuyến cáo: theo mảng game như chơi sổ xố. Hên xui cũng nhiều. Tự làm game tự ăn thì hơn cả sổ xố. Theo team thì tỷ lệ cao hơn nhưng ăn chia nhiều hơn. Vào công ty thì bao bóc lột. Làm vì yêu thích thì hay hơn là theo để kiếm tiền.

 

- Firmware: Học lập trình trên linux. Dùng C++, python hay gì đó lập trình được trên linux.

- OS: chủ yếu lập trình kernel. Cái này thì ngôn ngữ càng thấp càng mạnh. Mình bó chiếu.

- Crack: Chủ yếu là hợp ngữ. Dùng các tool và kỹ thuật riêng biệt cho từng ngôn ngữ. (OnlyDebg, ILSpy, Winrar (bất ngờ chưa))

Câu hỏi mới nhất