8 kỹ năng sinh viên lập trình cần cải thiện.
Hi. Chào mừng các bạn đến với:
Chủ đề chia sẻ kinh nghiệm.
Bài viết hôm nay tôi muốn chia sẻ với các bạn những hạn chế mà nhiều bạn sinh viên cần cải thiện
Điều này giúp cho các bạn có thể hoàn thiện các kỹ năng trong nghề nghiệp.
Thực tế cảm nhận.
Qua chủ đề lập trình game c++ mà tôi chia sẻ trước đó.
Nhiều bạn sinh viên đã thực hành, nhưng gặp phải nhiều vấn đề.
Các bạn thường post lên group để nhờ support và khi review,
Tôi thấy các bạn còn thiếu và bị hạn chiếu một số kỹ năng dưới đây.
Hãy đọc và cải thiện nó càng sớm càng tốt.
1. Kỹ Năng Debug.
Phần lớn các bạn đều không biết sử dụng debug, nên cứ chạy chương trình không được là sẽ kêu support
Có thể do mới học ngôn ngữ, mới tiếp cận, nên các bạn còn chưa hiểu về kỹ thuật debug.
Giải thích ngắn gọn thế này:
Một project lập trình thường có 2 dạng build, gọi là mode build đó là Build Debug và Build Release.
Thêm vào đó là 2 cấu hình môi trường là win 32 và win 64.
+ Debug là build sản phẩm ở dạng vừa làm vừa phát triển, vừa làm vừa sửa, vừa làm vừa nghiên cứu.
Nó như một bản demo chưa hoàn chỉnh.
Và nó cho phép chương trình có thể đặt điểm break point để chạy từng câu lệnh.
+ Release là mode build khi project của bạn đã hoàn thiện.
Đó là sự hoàn thiện về chức năng, kiến trúc, tối ưu hóa code.
=> Có thể đưa sản phẩm ra test, phát hành, đóng gói bán ra thị trường.
Do đó khi làm chúng ta thường build ở debug
Khi hoàn thành xong, thì chúng ta thường lấy sản phẩm ở mode build release.
Trong môi trường debug, chương trình cho phép các bạn đặt điểm break point để kiểm tra lộ trình chạy của chương trình,
Với debug, bạn có thể:
+ Chạy từng câu lệnh.
+ Chui vào bên trong cách hàm để kiểm tra xử lý.
+ Kiểm tra từng giai đoạn của chương trình.
+ Tìm nguyên nhân sinh ra lỗi chương trình.
Vậy khi nào các bạn nên đặt debug.
* Khi bạn xây dựng một chương trình, bạn phải phân tích được chương trình của mình có những công đoạn nào.
Và sau đó bạn cần kiểm tra xem từng công đoạn đó thực hiện ra sao, thành công hay không.
Debug giúp bạn thực hiện việc đó.
Ví dụ: Giải phương trình bậc 2.
Một bài toán hết sức cơ bản của c++.
Nhưng rất nhiều bạn làm xong, chạy sai kết quả,
các bạn không debug mà lên group kêu nên rằng, em chạy bị sai mọi người giúp em với.
Trong khi các bạn hoàn toàn có thể debug để tìm ra nguyên nhân chạy sai.
Bài toán giải phương trình bậc 2 có những công đoạn nào.
=> Nhập giá trị cho biến từ bàn phím.
=> Tính deltal.
=> Kiểm tra deltal.
=> Tính kết quả biến và thông báo ra màn hình.
Vậy thì bạn phải đặt debug vào các vị trí ứng với giai đoạn chương trình ở trên.
Bạn phải kiểm tra xem công đoạn nhập giá trị đúng chưa ?
Sau đó công đoạn tính deltal có bị sai không ?
Kiểm tra deltal thế nào ?
Tính kết quả và in kết quả có đúng không ?
Như vậy với 4 điểm break tại 4 công đoạn, bạn hoàn toàn có thể kiểm tra được lộ trình chương trình bị sai ở điểm nào ?
Trong visual studio:
F9 là đặt điểm break point,
F10 là chạy từng lênh,
F11 là chui vào hàm đang gọi,
Shirt F11 là chui ra.
F5 là nhảy đến điểm break point tiếp theo, nếu hết break point thì chương trình sẽ chạy lên.
* Khi bạn bị mắc lỗi, bận cần phải debug xem vì sao có lỗi như vậy. Đó là những lỗi gì.
+ Con trỏ vì sao bằng null ?
+ Giá trị biến vì sao bị sai, hoặc không có ?
+ Vì sao hàm đó không nhảy vào ?
Như vậy để sử dụng debug, trước hết bạn cần hiểu rõ logic thiết kế chương trình của mình,
để biết chương trình của mình có những giai đoạn nào, từ đó biết cách debug để kiểm tra các công đoạn.
2. Kỹ năng đọc lỗi thông báo.
Rất nhiều bạn không có kỹ năng này.
Cứ thấy lỗi biên dịch là hỏi, hoặc post lên group, trong khi đó chương trình đã hiển thị rõ ràng message lỗi là gì ?
Các bạn chỉ việc đọc nó, và nếu không giỏi tiếng anh có thể copy paste để dịch nó ra và hiểu ý nghĩa của nó.
Đôi khi chính vì việc thiếu kỹ năng đọc lỗi và phân tích lỗi,
nên các bạn cũng không nghĩ ra việc debug hay tìm hiểu về debug.
Có rất nhiều bạn hỏi lỗi gì, trong khi message chương trình đang hiện thị con trỏ = null.
Lúc đó các chỉ cần đọc và thử đặt câu hỏi vì sao nó lại bằng null.
Biến đó được sử dụng chỗ nào, các bạn chỉ cần hiểu được như vậy và kết hợp với việc đặt debug tại chỗ đó
Các bạn sẽ kiểm tra được vì sao nó bằng null.
Thực tế:
Và trong seri lập trình game, có rất nhiều bạn con trỏ = null vì hàm load ảnh không đọc được,
mà không đọc được là vì lý do. Tấm ảnh bị sai tên. => NHỮNG LỖI RẤT CƠ BẢN.
3. Kỹ năng đặt câu hỏi và diễn đạt ý cho người khác hiểu.
Các bạn còn đang gặp vấn đề trong cách diễn đạt.
Nhiều câu hỏi rất khó hiểu, tối nghĩa và đôi khi là sai về ý hiểu, làm cho người hỗ trợ hiểu sai vấn đề.
Đó là kỹ năng về văn phạm, kỹ năng nói, và kỹ năng diễn đạt.
Muốn diễn đạt dễ hiểu, thì trước hết các bạn phải hiểu được vấn đề, hiểu một cách rõ ràng, đúng ý nghĩa, đúng khái niệm.
Và gắn được vấn đề tương ứng với những vấn đề đơn giản nào khác trong cuộc sống.
Tôi ví dụ. “Tính kế thừa trong lập trình hướng đối tượng cho phép bạn kế thừa lại lớp base và phát triển thêm tính năng. Lớp con càng đa dạng, thì chương trình càng nhiều chức năng.“
Kỹ thuật này được hiểu như là chuyện rất bình thường trong đời sống.
“Người cha dạy cho người con tất cả kỹ năng của ông ta, và người con dựa vào đó để phát triển thêm, sáng tạo thêm.
Và ông con càng giỏi thì nhà càng có phúc.“
Vậy thì các bạn trước khi hỏi, hãy suy nghĩ làm sao đặt câu hỏi ngắn gọn đủ ý và quan trọng là phải chính xác.
4. Kỹ năng hấp thụ kiến thức.
Khi chưa biết chút gì, các bạn có thể bắt chước, bắt chước là một đặc điểm nổi bất của mỗi con người và đó là cách nhanh nhất để các bạn làm được một sản phẩm gì đó.
Nhưng khi bắt chước được rồi, các bạn cần phải nhanh chóng tìm hiểu và nắm được cái nguyên lý,
cốt lỗi của cái mình vừa bắt chước.
Như vậy bạn sẽ thâu tóm được cái tri thức của người chia sẻ trong một thời gian ngắn trong khi họ phải bỏ một thời gian dài để nghiên cứu.
Nếu các bạn chỉ cố bắt chước để làm cho xong sản phẩm như một sự chống đối, thì đó là một sai lầm.
Trừ khi đó là giải pháp bắt buộc bạn cần để vượt khó một thứ bạn không thích (nhưng cho dù là vậy cũng phải biết sáng tạo thông minh).
Còn nếu bạn xác đó là ngành nghề lĩnh vực bạn phải theo đuổi thì đó cơ hội để bạn biến kiến thức của người khác thành của mình.
Sự chia sẻ không phải là một thứ sẵn có ở tất cả mọi người,
nên hãy tranh thủ nắm bắt được nguyên lý, tóm lấy kiến thức càng nhiều càng tốt, càng sâu càng tốt.
5. Kỹ năng sáng tạo.
Cho dù là bắt chước, hay học cách để làm, nắm được nguyên lý và nền tảng, bạn cần có sự sáng tạo.
Rất nhiều bạn hiểu được nguyên lý nhưng do sự lười biếng mà các bạn không chịu sáng tạo.
Các bạn chỉ làm theo một cách máy móc và hài lòng với kết quả đạt được cũng như dừng lại ở mức hiểu được cách làm.
Không! Đừng hài lòng như vậy, các bạn phải sáng tạo, phải khác biệt, phải nghĩ liên tục.
Từ một hướng dẫn của một ai đó, các bạn hãy nghĩ thêm các tính năng khác, làm khác họ đi,
thay đổi theo cách của mình, nghĩ thêm các tính năng của riêng mình.
Tôi rất khuyến khích các bạn khi dựa trên project game về máy báy của tôi,
các bạn áp dụng và sáng tạo theo cách riêng của mình, như làm đua xe, làm ếch săn mồi,
làm các thể loại khác mà bạn nghĩ ra.
Chính các bạn cũng đang là một lớp kế thừa, và các bạn phải thêm nhiều tính năng hơn nữa cho bản thân, trong đó có sự sáng tạo.
Như vậy các bạn mới giỏi và tiến bộ hơn được.
6. Kỹ năng kiên trì và loại bỏ tính ỉ lại.
Không có cái gì trên đời này dễ dàng và nhẹ nhàng cả, nhất là khi các bạn phải học và nghiên cứu.
Chẳng ai nói học hành nghiên cứu là sướng cả nhất là khi đó là những kiến thức về khoa học sáng tạo,
học những cái do người khác bỏ công sức nhiều năm nghiên cứu.
Nhiều bạn mới chỉ đọc vài dòng thấy không hiểu là các bạn đã nản lòng,
mới nhìn bài viết thấy nhiều chữ đã bỏ qua và kêu rằng khó hiểu.
Nhưng thực sự là các bạn không chịu đọc và không chịu hiểu.
Và sẽ không một ai thích thú việc các bạn chưa đọc, chưa tìm hiểu mà chỉ mong họ giúp đỡ, làm hộ xem hộ.
Nếu vậy sau này ra ngoài, đối mặt với các dự án lớn, những vấn đề khó hơn cả trăm lần,
chẳng ai có thời gian để xem hộ bạn nghĩ hộ bạn thì sẽ thế nào ?
Cho nên các bạn phải kiên trì trong việc học và nghiên cứu, phải đọc kỹ, ngẫm và nghĩ cách để hiểu.
Những cái càng khó thì càng phải đọc nhiều lần mới có thể hiểu được.
Và khi hiểu được, làm được các bạn mới cảm thấy giá trị tuyệt vời, con người ta hơn nhau ở điểm như vậy.
Phẩm chất đạo đức không phải chỉ học và rèn luyện để đó, mà nó đều được áp dụng trong nghiên cứu và trong vai trò quản trị cuộc sống của mỗi con người..
Chỉ khi nào các bạn làm được những thứ mà tưởng như không làm được, thì mới đạt được sự trưởng thành trong công việc và chuyên môn.
Các bạn mới có theerv cạnh tranh được với hàng ngàn các lập trình viên khác trong bối cảnh ngành IT đang phát triển, và người theo học lập trình ngày càng đông.
7. Kỹ năng phân tích.
Đây cũng là một hạn chế mà nhiều bạn còn mắc phải.
Có nhiều bạn đạt được kỹ năng sáng tạo, nghĩa là các bạn đã nghĩ được các ý tưởng mới,
có sự sáng tạo trong nghiên cứu và thực hành. Nhưng các bạn lại không chịu phân tích.
Có ý tưởng rồi, các bạn xem đó như là một yêu cầu mới.
Trong ngành công nghiệp phần mềm, khi tham gia vào các quy trình phát triển phần mềm,
bao giờ các bạn cũng phải trải qua công đoạn, phân tích yêu cầu và lên ý tưởng thiết kế.
Do đó khi lên được ý tưởng rồi, các bạn phải ngồi suy nghĩ về cách thiết kế ý tưởng.
Ví dụ khi làm game, trong hướng dẫn tôi chưa làm con Boss.
Các bạn nghĩ thêm là muốn làm con Boss cho game. Đó là sự sáng tạo mới. Nhưng rồi các bạn hỏi:
Làm con Boss như thế nào, hay giúp em làm con boss.
Trong khi các bạn đã code được rất nhiều đối tượng cho game như player, threats…
Tôi lại phải hỏi lại các bạn: “Thế em muốn con Boss của em như thế nào”.
Và lúc đó các bạn ấy mới nghĩ.
Con boss nó thế này, con boss nó thế kia.
Và sau đó tôi lại vạch thêm cho các bạn ấy các ý tưởng như là:
Boss kích thước to,
Boss di chuyển phức tạp
Đạn bắn của boss theo quỹ đạo khác thường.
Boss bắn lâu chết hơn….
Và các bạn thấy, đó là những ý tưởng thiết kế rất đơn giản mà các bạn hoàn toàn có thể tự nghĩ.
Từ mỗi ý tưởng đó mới phân tích tiếp xem để làm được ý tưởng đó cần thực hiện các yêu cầu gì => rồi mới nghĩ đến việc code như thế nào => suy nghĩ giải thuật ra sao.
Như vậy các bạn phải nằm được một lộ trình như sau:
Bắt đầu là không hiểu => Bắt chước để làm được => Làm được rồi mới quay lại đọc hiểu để hấp thụ kiến thức =>
=> sáng tạo được ý tưởng => phân tích ý tưởng thiết kế thành các yêu cầu bài toán code => kiên trì nghiên cứu và suy nghĩ cách làm => SẢN PHẨM CỦA CHÍNH BẠN.
8. Kỹ năng tìm kiếm và giải quyết vấn đề.
Khi gặp vấn đề khó hay bị lỗi, đầu tiên là phải tự mình đọc hiểu lỗi và tìm ra nguyên nhân lỗi và
suy nghĩ cách sửa, nếu không sửa được bắt đầu post lên group về vấn đề đang mắc phải,
chứ không phải ” em bị lỗi này nhờ mọi người xem hộ.”
Người đọc thích tư vấn và chia sẻ cho các bạn về vấn đề giải pháp,
ý tưởng chứ không ai thích việc đi tìm nguyên nhân lỗi thay cho bạn nhất là khi đó là những lỗi rất cơ bản mà kỹ năng debug hoàn toàn có thể giúp bạn tìm ra.
Nên rất nhiều bạn hỏi trong các group lập trình các vấn đề rất cơ bản,
thì câu trả lời nhận được đều là: “google đi”.
Sau đó là việc tìm kiếm thông tin trên mạng, google, tham ra vào các trang web hỏi đáp về lập trình, đặt câu hỏi.
Như vậy các bạn sẽ trưởng thành hơn trong công việc, tự mình giải quyết được vấn đề.
Ok. Đó là 8 kỹ năng các bạn cần cải thiện và rèn luyện thật tốt.
Như vậy các bạn sẽ rất vững vàng trên con đường sự nghiệp của mình và tự tin khi ra trường.
ptPham