Bách khoa toàn thư giải quyết mọi vấn đề của lập trình viên mới học code!

Tiếp nối series Q&A cho các bạn trẻ mới gia nhập làng code học lập trình, dưới đây tôi sẽ trả lời cho các bạn những thắc mắc và băn khoăn nóng hổi nhất về ngành lập trình đang được đông đảo các bạn quan tâm.

Đâu là thời điểm thích hợp để tôi bắt đầu nhúng tay vào các project ?

Hãy thực hiện dự án của mình càng sớm càng tốt! Khi bạn đã nắm được các nguyên tắc cơ bản của một ngôn ngữ lập trình, hãy kết hợp chúng lại để thử build nên một cái gì đó. . Nếu bạn có một ý tưởng trong đầu, điều này sẽ giúp bạn có thể học được nhiều thứ hơn nữa. Chỉ cần biết rõ các nguyên tắc cơ bản của ngôn ngữ, bạn đã có thể tạo ra rất nhiều command line game. Thậm chí còn xây dựng những thứ tuyệt vời hơn với các nguyên tắc cơ bản của phát triển web!

Đối với một dev kỹ năng quan trọng nhất là gì?

Nếu chỉ được chọn một thứ, tôi sẽ lựa chọn kỹ năng tự học – tự trau dồi bản thân những điều mới một cách hiệu quả. Nếu là một developer, bạn sẽ không ngừng phát triển bản thân và tạo ra các công nghệ mới. Việc tự trau dồi bản thân còn quan trọng hơn bất cứ công cụ hay công nghệ nào.

Làm sao để các Javascript arguments hoạt động?

Trước khi tôi bắt đầu chúng ta cùng phân tích nhanh từng thuật ngữ:

Arguments (đối số): Đây là đại diện cho giá trị truyền cho parameter khi chúng ta thực hiện lời gọi hàm.

Parameters (các tham số): Đây là những gì chúng ta gọi khi định nghĩa một hàm.

Trong function myFunction(x, y , x và y là các parameter . Khi chúng ta thực hiện hàm đó bằng cách chạy myFunction(1, 3), 1 và 3 là các argument.

Để có thể phù hợp với hai tuýp người có 2 lối suy nghĩ khác nhau, tôi thường dạy các chức năng theo hai cách. Cách đầu tiên là một đoạn code có thể tái sử dụng bằng cách gắn các giá trị vào để giúp cho code của bạn trở nên linh hoạt và ít lặp lại hơn. Trong trường hợp này, các argument là các mẫu thông tin “động” được gắn vào đoạn code cho nên khi bạn gọi hàm giá trị có thể thay đổi. Có khá là nhiều biến khác nhau mỗi khi bạn chạy hàm.

Một cách giải thích khác đó là các chức năng như một loạt các input and output – giống như một chiếc máy nhỏ. Khi bạn đặt vào đó một cái gì đó thì sẽ xuất hiện một cái khác dựa trên nó. Các argument là những thứ bạn đang cho vào máy và giá trị trả về là những gì được xuất ra. Điều này hoàn toàn trùng khớp với định nghĩa đại số của các hàm chặt chẽ hơn – nếu bạn nhớ f(x) = 2x + 1 từ toán học đó là các hàm chỉ được viết trên giấy thay vì viết theo chương trình.

Trong JavaScript, thứ tự của các argument được gắn vào hàm tương ứng với thứ tự của các parameter trong khai báo hàm. Vì vậy, nếu khi báo hàm của tôi giống như  function add(x, y)và sau đó tôi gọi hàm với add(1, 2)trong hàm 1 sẽ là x và 2 sẽ là y.Thay vào đó, nếu tôi chạy add(100, 50), x sẽ là 100 và y sẽ là 50. Vì x là parameter đầu tiên của tôi, nên argument đầu tiên của tôi gắn vào hàm se là x và vì y là thứ 2, giá trị thứ hai I vượt qua sẽ là y. Thỉnh thoảng nó sẽ hữu ích để thiết lập sơ đồ này.

function subtract(x, y) {
 return x - y
}

add(5, 2) // 3, 5 is x, 2 is y
add(200, 50) // 150, 200 is x, 50 is y
add(20, 70) // -50, 20 is x, 70 is y

x y subtract(x, y)
5 2 3
200 50 150
20 70 -50

Theo bạn thì ngôn ngữ nào thì nên có kiến thức và hiểu biết về nó để làm việc hiệu quả ?

Tôi nghĩ đây là một câu hỏi rất xem nặng về skillset (bộ kĩ năng). Tôi có thể chia sẻ rất nhiều  về khoa học dữ liệu và phát triển web vì đây chính là điểm bắt đầu sự nghiệp của mình. Khi đề cập đến khoa học dữ liệu, tôi sẽ nói về Python – trụ cột ở thời điểm hiện tại. Tôi muốn mình biết được ít nhất một trong số chúng. Còn về lập trình web HTML/ CSS/ JavaScript chính là điều bạn cần. Hiện tại với  JavaScript bạn có thể xây dựng mọi thứ, đó là một ngôn ngữ vô cùng linh hoạt.

  Những nguyên tắc, định luật của lập trình mà chúng ta nên có sẵn trong đầu

Làm thế nào để vững lòng bước tiếp khi những người trong ngành công nghệ liên tục bảo không nên?

Đây chính là điều mà thỉnh thoảng tôi vẫn thường phải đối mặt và tôi vẫn chưa tìm ra được câu trả lời hoàn hảo cho vấn đề này. Tôi thực sự đã từng từ bỏ coding khi còn ngồi ở ghế trường đại học vì luôn nghĩ mình không đủ giỏi và phải đối mặt với những lời thô lỗ từ những người xung quanh khiến tôi thường xuyên nghĩ đến việc chuyển sang ngành khác.

Nhưng tôi đã tiếp tục đấu tranh và suy nghĩ đến những điều giúp tôi tiếp tục ở trong ngành công nghệ như sự phát triển ngày càng linh hoạt, những người tuyệt vời mà tôi đã gặp, những điều tuyệt vời mà tôi đã tạo ra.

Những thứ khiến nó trở nên xứng đáng cho dù có bao nhiêu khó khăn đi nữa. Thật đáng thương cho những người luôn gây tổn thương cho người khác khi cảm thấy bị đe dọa. Cả hai đều cảm thấy thiếu tự tin và điều đó chỉ khiến mọi việc tệ đi.

Tôi cũng lưu lại những tài liệu để lưu giữ những “chiến thắng” của mình: những thứ tuyệt vời mà mình đã xây dựng, những phản hồi tích cực từ khách hàng, những thành tựu mà tôi đã đạt được. Vào những ngày cảm thấy khó khăn, tôi thường trở về và xem lại những gì đã qua và nhắc nhở mình về những điều tuyệt vời mà tôi đã làm.

Làm thế nào cải thiện khả năng lập trình logic và giải quyết vấn đề?

Đây là chủ đề mà tôi vô cùng yêu thích và tôi có thể nói liên tục về điều này. Tôi đang thực hiện hiện một khóa học về chủ đề này. Hãy theo dõi và tìm hiểu thêm ở đó nhé.  Tôi rất tiếc vì không thể mang đến một câu trả lời ngắn gọn hơn. Nhưng chủ yếu là về việc suy nghĩ trừu tượng và chia nhỏ từng vấn đề để giải quyết một vấn đề lớn.

Làm cách nào để học code miễn phí?

Tham khảo ngay từ những nguồn yêu thích của tôi: https://topdemy.vn có nhiều khóa miễn phí học theo roadmap.

Tôi nên học ngôn ngữ lập trình nào đầu tiên?

Theo ý kiến cá nhân của tôi thì bạn nên bắt đầu với JavaScript hay Python. Python là một ngôn ngữ linh hoạt với cú pháp phù hợp dành cho những lập trình viên mới vào nghề. Còn JavaScript là một công cụ cần thiết để có thể xây dựng một trang web và bạn có thể xây dựng những thứ khác với nó nhanh hơn các ngôn ngữ khác.

Làm sao để có thể nhớ được hết các công cụ/ thao tác?

Tôi chưa bao giờ thử ghi nhớ những thứ cụ thể theo ngôn ngữ hay cú pháp. Chúng ta có thể tra cứu mỗi khi cần sử dụng và chương trình soạn thảo văn bản sẽ giúp tôi trong vấn đề này. Đối với những khái niệm quan trọng tôi thường tập trung vào việc hiểu về nó hơn là cố gắng học thuộc lòng!

Nên bắt đầu từ Project nào để build?

Tôi luôn nghĩ rằng mạo hiểm một chút sẽ luôn mang đến cho chúng ta cảm giác tươi mới. Hãy chọn một project có sẵn, chỉnh sửa nó từ nhỏ đến lớn, sau đó khi nắm rõ được project thì hãy build theo chức năng mình mong muốn.

Hi vọng cẩm nang này đủ bao quát và hữu ích để giúp bạn vượt qua chặng đường coding sắp tới!

TopDev

Tìm việc IT lương cao, đãi ngộ tốt trên TopDev ngay!