Tôi muốn nhận thông tin mới nhất từ Aptech      
 
   
 
CHƯƠNG TRÌNH ĐÀO TẠO

LTV QUỐC TẾ ACCP
CHỈ CÓ TẠI CNC
CÁC KHÓA NGẮN HẠN

TẤT CẢ MỌI NGƯỜI ĐỀU NÊN HỌC CODE

Code nói riêng và toàn bộ ngành IT nói chung có nhiệm vụ là cải thiện cuộc sống, cải thiện quy trình làm việc của con người.

Steve Jobs đã từng nói “Hãy học lập trình. Nó dạy bạn cách suy nghĩ” và sự thật là như vậy. Các khái niệm của code, ví dụ như lập trình hướng đối tượng hay các framework (tạm hiểu là các giải pháp được thiết kế sẵn cho các vấn đề hay gặp) chẳng hạn, đều sinh ra để cải thiện quy trình làm việc cũng như sản phẩm của coder. Khi tìm hiểu những khái niệm này, bạn sẽ thấy sự kỳ diệu nằm trong tư duy của người làm phần mềm.

Ví dụ, nghề code có khái niệm “DRY – Don’t Repeat Yourself”. Hãy thử tưởng tượng tôi có một đoạn code làm một tác vụ cụ thể sẽ cần sử dụng đi sử dụng lại nhiều lần, ví dụ như tính năng đặt tên file dữ liệu theo định dạng: [loại dữ liệu_phút giờ ngày tháng] rồi lưu vào C:data. Tôi sẽ cần phải dùng tính năng này để lưu file về các sự cố trong ngày, những người dùng đã ghé thăm trang web ngày hôm nay v…v…, và theo cách làm việc kiểu "mù code" thì cứ chỗ nào cần dùng, tôi sẽ paste đoạn code thực hiện tính năng lưu file.

Nhưng điều gì sẽ xảy ra nếu tôi không muốn lưu vào C:data nữa mà muốn lưu vào C:save? Điều gì sẽ xảy ra nếu tôi không muốn lưu theo định dạng tên [loại dữ liệu_ngày tháng] thay vì [loại dữ liệu_phút giờ ngày tháng] như ở trên? Nếu copy code ra nhiều nơi tôi sẽ phải mở từng đoạn code đã paste rồi sửa lại. Làm như vậy không chỉ tốn thời gian mà còn rất dễ bỏ sót.

 

Giải pháp ở đây là “gói” riêng các đoạn code có nhiệm vụ lưu file vào một chỗ (chính xác hơn là một function) và khi nào cần thì gọi tới hàm đó để truyền vào nội dung file cần ghi. Nếu cần thay đổi định dạng tên file ghi ra hay vị trí lưu file, tôi chỉ cần thay đổi duy nhất các dòng code bên trong hàm này, không tốn thời gian và cũng không thể bỏ sót.

Đây chỉ là một ví dụ nhỏ cho thấy vì sao người học code biết cách tư duy mạch lạc, logic và có trọng tâm. Nhưng để hiểu được ví dụ này, bạn không cần học tới những ngôn ngữ thường được sử dụng cho các hệ thống doanh nghiệp mà chỉ cần dùng tới những ngôn ngữ căn bản như Pascal/C (để hiểu các khái niệm căn bản của lập trình) và C (để hiểu lập trình hướng đối tượng).

Sau đó, bạn có thể chuyển thẳng lên một ngôn ngữ theo tôi là không nên học ngay từ đầu như Java, Javascript hoặc C#. Các ngôn ngữ này có rất nhiều nền tảng (framework) được thiết kế để giải quyết các vấn đề thực tế mà coder hay gặp.

Tư duy là quan trọng

Có vẻ hơi trái ngược khi vừa khuyên bạn code ra được các ứng dụng “nghiêm túc” là rất khó khăn rồi lại khuyên bạn học hết ngôn ngữ này sang ngôn ngữ khác. Nhưng, ở đây điều tôi thấy chắc chắn sẽ có ích cho bạn là tư duy code chứ không phải là khả năng code ra sản phẩm hoàn thiện. Lý do là bởi code ra sản phẩm đòi hỏi bạn phải giải quyết được những bài toán hết sức cụ thể và cũng phải dành nhiều thời gian đầu tư trau chuốt cho… hết lỗi.

Bạn có thể hình dung như sau: code để hiểu tư duy cũng giống như ngồi đọc một/nhiều quyển sách (sách bình luận về mỹ thuật chẳng hạn) và ngẫm nghĩ, “cảm” được những điều hay ho thú vị trong những quyển sách đó. Còn code ra sản phẩm thực tế có nghĩa rằng bạn phải vận dụng được những điều hay ho thú vị này vào một công việc (thường) bị định nghĩa từ trước: “Tôi muốn một bức tranh chân dung. Hãy vẽ tôi đi”.

Trong khi bạn hoàn toàn có thể “thẩm” được nét đẹp của Mona Lisa hay Thiếu Nữ Bên Hoa Huệ, việc tự vẽ ra một tác phẩm hoàn thiện đòi hỏi cả năng khiếu và sự đầu tư. Với công việc lập trình, sự đầu tư về thời gian và công sức có ý nghĩa quan trọng hơn rất nhiều so với yếu tố năng khiếu, nhưng một lần nữa, câu hỏi ở đây là: đầu tư bao nhiêu thời gian và công sức vào code là phù hợp nhất với hướng đi bạn đã chọn từ trước – nhất là khi hướng đi đó không phải là code?

Trái lại, nếu đã tập trung vào các khái niệm căn bản và các ví dụ đơn giản của Java chẳng hạn, khi đọc các đoạn code ví dụ về design pattern (nguyên lý thiết kế cấu trúc code) và framework bạn có thể dễ dàng hiểu được tư duy đằng sau mà không cần bỏ thời gian ra code theo sách.

Cuối cùng, hiểu được tư duy code cũng có nghĩa rằng bạn hiểu được các giới hạn của code và không đưa ra các đòi hỏi vô lý nếu như có tham gia vào xây dựng một hệ thống phần mềm ở góc độ của người đặt ra yêu cầu. Đây sẽ là một yếu tố đặc biệt quan trọng để giúp cho quá trình số hóa công việc của bạn trở nên dễ dàng – khi bạn hiểu rằng giới hạn từ công cụ phần mềm, bạn cũng sẽ để hình dung ra một công cụ như thế nào sẽ phục vụ tốt cho nhu cầu thực tế của chính bạn.

Hãy nhớ rằng Elon Musk ngày nay không còn code nữa. Nhưng ông có tư duy của một coder.

Bạn máu code-như-coder?

Nếu những dòng code cơ bản và tư duy code có thể khiến cho bạn bùng cháy đam mê, bạn có thể dũng cảm từ bỏ công việc cũ để chuyển sang code.

Đam mê và quyết tâm sẽ là 2 thứ bạn phải có khi chuyển từ một nghề khác sang nghề code. Bạn sẽ phải code không công, bởi người ta sẽ trả lương rất thấp cho coder kém kinh nghiệm. Đó là còn chưa kể một chữ “code” cũng là một lĩnh vực cực kỳ rộng lớn. Mỗi coder thường chỉ chọn 1 ngôn ngữ chính sau những năm đầu tiên, và nếu đã chọn code làm nghề sống, dần dần bạn phải chọn được thứ ngôn ngữ phù hợp nhất với nguyện vọng của bản thân. Sinh viên phần mềm có 4 năm để đưa ra lựa chọn đó, bạn sẽ không có nhiều thời gian tới vậy.

Nhưng nếu bạn thực hiện bước chuyển thành công, bạn sẽ là một trong những người may mắn nhất thế giới. Tôi có rất nhiều đồng nghiệp từng học công nghệ sinh học, điện cơ khí, học kinh tế đối ngoại chuyển sang làm code. Tôi khâm phục họ không chỉ bởi những dòng code sạch sẽ và rành mạch mà còn bởi cả đam mê và quyết tâm sắt đá mà họ dành cho nghề lập trình. Với mỗi người, được sống với đam mê luôn là một niềm hạnh phúc lớn lao.

Vậy, cuối cùng thì bạn có những lựa chọn nào với code? Hướng đi thứ nhất: Bạn có thể không học code và thay vào đó học một thứ tiếng mới, học các mảng kiến thức mà bạn quan tâm. Bạn sẽ là người quyết định liệu một cuốn sách của Dale Carnegie hay Barack Obama sẽ có giá trị hơn, hay một khóa học code online 2 triệu đồng với những lời hứa hão về việc làm sẽ có giá trị hơn với tương lai của bạn? Hướng đi thứ hai: Bạn có thể học code, nhưng là chỉ để xây dựng tư duy mạch lạc và kỹ năng giải quyết vấn đề. Ở hướng đi này, hãy hỏi ý kiến những coder mà bạn quen. Họ sẽ vạch ra cho bạn hướng đi tốt nhất để biến code thành một kỹ năng hữu ích, tuy không phải là để kiếm sống nhưng vẫn có thể có ý nghĩa không kém gì ngoại ngữ và kế toán.

Cuối cùng, bạn có thể tích trữ đủ đam mê và quyết tâm để chuyển hẳn sang chọn code làm nghề sống. Ở thời điểm đó, hãy tự hỏi bản thân mình một câu hỏi duy nhất: Quyết tâm và đam mê của bạn lớn tới đâu?

Nguồn: genk