Một sinh viên tốt nghiệp khoa học máy tính có thể làm gì để chuẩn bị cho sự nghiệp phát triển và lập trình phần mềm?
Bạn đã lập trình được một thời gian và muốn học lập trình thì bạn có thể nghĩ về điều gì làm nên một lập trình viên giỏi.
Bài viết này sẽ chia sẻ 10 điều mà tôi tin rằng mọi lập trình viên nên biết. 10 thứ này bao gồm ngôn ngữ lập trình như C ++ hoặc Java, các khái niệm khoa học máy tính thiết yếu như cấu trúc dữ liệu, thuật toán và kiến thức cơ bản về mạng máy tính, các công cụ thiết yếu như Git, Microsoft Word và Excel, các kỹ năng như SQL và UNIX, các trình soạn thảo như Eclipse hoặc Visual Studio và trình soạn thảo văn bản.
Danh sách này không có nghĩa đó là tất cả những gì bạn phải học, nó cung cấp cho bạn một điểm khởi đầu tốt cho những điều mà một lập trình viên nên biết. Nếu bạn đang hướng tới sự nghiệp phát triển phần mềm và tìm kiếm một công việc lập trình thì đây là những điều bạn có thể học hỏi và cải thiện để đi trước đối thủ cạnh tranh. Đây là danh sách những điều mà cá nhân tôi tin, mọi lập trình viên nên biết, bất kể công việc anh ta đang làm. Đây là những kỹ năng cơ bản và sẽ phục vụ bạn trong một thời gian dài.
Bất kỳ khoản đầu tư nào vào các kỹ năng này về thời gian, tiền bạc và công sức sẽ giúp bạn gặt hái những phần thưởng trong suốt sự nghiệp của mình.
1) Cấu trúc dữ liệu và thuật toán
Nếu bạn muốn trở thành một lập trình viên thì bạn cần hiểu biết rõ về cấu trúc dữ liệu và thuật toán. Đây là một trong những chủ đề quan trọng của bất kỳ cuộc phỏng vấn LTV nào, Nếu bạn không biết các cấu trúc dữ liệu cơ bản (ví dụ: Array, List, Map, Collection), Bạn không thể viết một ứng dụng trong thực tế được.
Đó là lý do tại sao mọi lập trình viên cần nghiêm túc dành thời gian để tìm hiểu các cấu trúc dữ liệu và thuật toán trong trường đại học cũng như các khóa học tại trung tâm lập trình. Trong thực tế, Đây là một trong những môn học đầu tiên của ngành lập trình.
Bạn có thể bắt đầu với cuốn [Cấu Trúc dữ liệu và giải thuật] của Đỗ Xuân Lôi, cuốn sách này được dùng làm giáo trình ở trường ĐHBK HN, bạn cũng có thể tham khảo các cuốn sách tiếng Anh tại thư viện của HVIT.
2) Source Control Manager (SCM)
SCM dùng để quản lý source code (Mã nguồn) và nếu bạn muốn trở thành một lập trình viên, bạn phải biết các công cụ kiểm soát mã nguồn như Git và SVN.
Hiện Git và Github đã có hơn 70% các công ty và tổ chức sử dụng, vì vậy bạn có thể chỉ cần học Git. Bạn cần làm quen với các khái niệm kiểm soát phiên bản nâng cao như branching và merging cũng như cách sử dụng cả trên dòng lệnh và trên GUI.
Đối với người mới bắt đầu, bạn có thể học ở github documentation, khá chi tiết và đầy đủ, dễ hiểu.
3) Text Editors
Không có một ngày nào tôi không sử dụng trình soạn thảo văn bản trong khi làm lập trình viên. Nó là một trong những công cụ thiết yếu ngay cả đối với những người không lập trình và bất kỳ ai làm việc với máy tính.
Tôi hầu như đã sử dụng NotePad trên Windows và VI trong Linux, nhưng bạn có rất nhiều sự lựa chọn về các trình soạn thảo nâng cao như Sublime và NotePad ++, cung cấp các chức năng giống như IDE.
Tôi khuyên bạn nên dành một chút thời gian để học trình soạn thảo và phím tắt yêu thích của mình để tăng năng suất và sự thoải mái khi làm việc với chúng. Nếu bạn thích Sublime thì Sublime Text for Rapid Web Development là một khóa học tốt để học những thứ như vậy.
4) IDE
IDE là công cụ quan trọng nhất đối với bất kỳ lập trình viên nào. Đối với lập trình viên C, C ++ và C #, sự lựa chọn rất rõ ràng: Visual Studio. Và đối với các nhà phát triển Python, Jupiter Notebook đang ngày càng tốt hơn mỗi ngày.
Đối với các lập trình viên Java, có ba IDE chính để lựa chọn: Eclipse, NetBeans và IntelliJ IDEA. Trong khi Eclipse là sở thích của tôi, IntelliJ IDEA có lẽ là mạnh nhất trong số đó. Nếu bạn là một người hâm mộ IntelliJ IDEA, thì tôi khuyên bạn nên xem qua các thủ thuật để tăng năng suất cho developer.
5) Database và SQL
SQL đã tồn tại hơn 30 năm và tôi nghĩ nó sẽ tồn tại thêm 30 năm nữa. Lập trình viên cần làm quen với các khái niệm thiết yếu như chuẩn hóa và thiết kế bảng cùng với SQL.
Có nhiều cơ sở dữ liệu, nhưng chỉ cần biết một cơ sở dữ liệu là đủ. Điểm mấu chốt là bạn nên làm quen với cơ sở dữ liệu. Bạn nên biết cách chèn / cập nhật / xóa dữ liệu và viết các truy vấn SQL để truy xuất nó. Sau đó là các khái niệm nâng cao như JOIN hay UNION.
W3shool là 1 nơi tốt để bắt đầu.
6) UNIX hoặc Linux
Giống như SQL, UNIX cũng đã chịu được thử thách của thời gian. Nó cũng đã tồn tại hơn 30 năm và nó sẽ tiếp tục được sử dụng trong nhiều năm tới.
Hầu hết các lập trình viên phải làm việc với Linux một lúc nào đó nên kiến thức tốt về dòng lệnh Linx sẽ giúp bạn rất nhiều. Nó cho phép bạn làm việc nhanh và hiệu quả. Bạn có thể tìm kiếm các tập tin, biết những gì mà xảy ra với hệ thống bằng cách kiểm tra mức sử dụng CPU và bộ nhớ của nó và thực hiện các tác vụ cơ bản và nâng cao.
Nếu bạn muốn học các lệnh Linux, tôi khuyên bạn nên học qua Linux trong 5 ngày và tăng cấp khóa học nghề nghiệp của bạn trên Udemy.
7) Microsoft Excel
Excel là một trong những công cụ tuyệt vời cho các lập trình viên, nhà phát triển phần mềm, quản lý dự án, thương nhân và doanh nhân. Nó không chỉ là phần mềm bảng tính.
Nó cung cấp rất nhiều tính năng và chức năng hữu ích để thực hiện biểu diễn, tính toán và phân tích dữ liệu. Excel cũng có thể sử dụng để theo dõi tiến độ, đối chiếu dữ liệu, phân tích dữ liệu, kiểm tra chất lượng dữ liệu và lập kế hoạch dự án.
Mọi lập trình viên nên học Excel chuyên sâu. Thay vì chỉ sao chép và dán dữ liệu, bạn nên biết các chức năng cơ bản như tìm kiếm, sắp xếp, lọc và VLOOKUP/HLOOKUP để so sánh các công cụ.
Nếu bạn muốn học Excel từ đầu hoặc muốn nâng cao kiến thức của mình, Microsoft Excel - Excel từ Sơ cấp đến Nâng cao là một khóa học tuyệt vời để bắt đầu.
8) Ngôn ngữ lập trình
Là một lập trình viên, bạn phải biết ít nhất một ngôn ngữ lập trình: C++ hoặc Java hoặc có thể là Python hoặc JavaScript. Bạn có thể chọn ngôn ngữ bạn muốn học nhưng đề nghị cá nhân của tôi là ít nhất bạn nên biết Java.
Java rất dễ học cho người mới, nhưng nó cũng rất mạnh mẽ và cho phép bạn có thể lập trình hầu như mọi thứ từ việc thực hiện các công cụ cơ bản như phát triển web đến các nhiệm vụ phức tạp hơn với Dữ liệu lớn, v.v.
Thư viện HVIT có khá nhiều sách Java, trong đó Head First Java là cuốn bạn nên đọc đầu tiên, cuốn này trình bày theo phong cách quen thuộc của loạt Head First, dễ hiểu, hóm hỉnh, cặn kẽ và dễ làm theo.
9) Khái niệm cơ bản về mạng máy tính (NETWORK)
Thế giới ngày nay là thế giới kết nối và bất cứ nơi nào bạn đến, bạn sẽ tìm thấy các mạng máy tính, bắt đầu từ nhà của bạn, nơi bạn đang sử dụng Wi-Fi trên nhiều thiết bị, đến trường học, đại học và văn phòng sử dụng Mạng cục bộ (LAN) cho Internet .
Hầu hết các ứng dụng bạn sẽ viết cũng sẽ không phải là độc lập mà là loại ứng dụng máy chủ-máy khách nơi yêu cầu sẽ đi qua mạng đến máy chủ. Khách hàng sẽ truy cập ứng dụng của bạn từ bất cứ nơi nào trên thế giới.
Điểm mấu chốt là bạn phải hiểu những điều cơ bản về mạng để hiểu và hỗ trợ quá trình làm việc và ứng dụng của bạn. Những vấn đề cơ bản như: TCP/IP, Proxy, Firewall, etc. Nếu bạn muốn tìm hiểu thêm thì tôi khuyên bạn nên tham gia khóa học Cơ bản về Mạng trên Udemy.
10) Scripting language (Ngôn ngữ kịch bản)
Ở điểm số 8 tôi đã yêu cầu bạn học một ngôn ngữ lập trình, nhưng ở đây tôi đang yêu cầu bạn học một ngôn ngữ kịch bản? Tại sao? Có thể sử dụng cùng một ngôn ngữ lập trình như một ngôn ngữ kịch bản không?
Một số ngôn ngữ tốt cho cả OOP và scripting như Python, và đó là lý do tại sao tôi yêu cầu bạn học ít nhất. Nếu bạn đã học C/C ++ hoặc Java thì khi học Python hay Perl thì bạn có thể thấy bất ngờ với việc bạn có thể làm một số việc rất nhanh. Ngôn ngữ kịch bản giúp dễ dàng tạo các công cụ và tập lệnh để giải quyết các vấn đề phổ biến trong thế giới lập trình.
Một lần nữa, tôi khuyên bạn nên học Python để đạt được cả 2 mục đích, bạn có thể tìm trong thư viện của HVIT để download các sách về python.
Nhân tiện, nếu bạn muốn tìm hiểu thêm về những điều lập trình viên nên biết, có rất nhiều hướng dẫn có sẵn về những điều quan trọng cho lập trình viên và bạn có thể tìm thấy lời khuyên tuyệt vời trên Internet như cuốn 97 Điều lập trình viên nên biết (Things-Every-Programmer-Should-Know), cuốn sách must-read cho mọi lập trình viên, cuốn này cũng có trên thư viện của HVIT.