Thực hành và làm bài tập cấu trúc điều kiện trong Javascript.
Tiếp tục bài học hôm qua, hôm nay lớp C1019i1 tiếp tục bài học cấu trúc điều kiện trong Javascript. Vẫn là những dòng if…else quen thuộc, nhưng cái khó của các bài tập không nằm ở việc sử dụng vòng điều kiện if…else như tựa đề bài học của s9, mà cái khó nằm ở cái sự bỡ ngỡ của các học viên khi tiếp cận với các phần tử, tham chiếu liên quan đến javascript, sự tương tác và sự tác động từ mã code javascript đến các phần tử html. Javascript thật sự ‘xương’ và không đơn giản. Và vì như thế, đang có những học viên đang ở dốc đi xuống của biểu đồ tinh thần. Cách đây vài ngày, em cũng xuống tinh thần như thế với những dòng code javascript ít ỏi nhưng tìm mỏi mắt chẳng thấy lỗi, hay học theo bắt chước cách sử dụng các getElementById().value hay .innerHTML một cách miễn cưỡng và máy móc. Vấn đề thực sự ở đây không phải ở việc bản thân các học viên quá khờ hay khó tiếp thu. Vấn đề thực sự nằm ở chỗ các kiến thức mới mẻ ấy cần thời gian làm quen và tìm hiểu, chúng có phần trừu tượng và không dễ tiếp thu, và khi không hiểu, không biết đến, chúng ta luôn bị bao phủ bởi một màn sương mờ, thứ làm chúng ta trật ra khỏi làn ranh và dần dần rời xa bài toán. Loay hoay trong mớ bòng bong ấy và khi sự kiên nhẫn cạn vơi, những học viên bắt đầu cảm thấy khó khăn và muốn buông lơi những thứ đã từng làm mình hứng thú. Những bài toán dễ mà khó như đổi tiền tệ, làm máy tính cơ bản hay cả việc làm 1 trò chơi puzzle đơn giản không phải là quá khó để giải hay đưa ra ý tưởng cho chúng, nhưng nó lại chiếm hết một quỹ thời gian lớn của học viên, thậm chí dù đã dành từng đó thời gian cho nó, họ vẫn chẳng thể tìm ra lời giải cho bài toán. Vấn đề ở đây theo em là do “thiếu hiểu biết”. Cái ‘thiếu hiểu biết ở đây không phải là khờ, là ngu. Mà là sự thiếu kiến thức về những tham chiếu, những phần tử, những hàm cốt lõi và cả sự thấu hiểu với những gì đã được học nữa. Với chuyển đổi tiền tệ là cách hiểu và sử dụng .value để tham chiếu giá trị ,biết người dùng đã chọn gì và gọi hàm, với máy tính là cách sử dụng .innerHTML, cộng chuỗi trực tiếp bằng toán tử và một hàm theo em là rất thú vị và cốt lõi cho bài toán ấy: eval(). Và với bài toán làm chao đảo cả lớp C1019i1 cả ngày hôm nay, bài puzzle, đấy lại là sự thấu hiểu về cách mà javascript tương tác với các phần tử html, và cả gọi hàm nữa( thứ mà những học viên mới tiếp cận lập trình còn thấy khó hiểu và không tinh tường về luồng xử lí, cách hoạt động, cách chúng tham gia vào hoạt động của một chương trình). Đối với em, bài toán ấy lúc đầu không hề đơn giản khi mà em còn chưa hiểu cách mà javascript tham chiếu đến phần tử từ của html. Mới đầu, em còn loay hoay sử dụng đi, sử dụng lại với những document.getElementById().value hay .id, .innerHTML, .innerText để làm thay đổi hình ảnh. Phải đến khi hỏi thêm các anh cùng lớp, em mới biết còn có thể dùng .src để tham chiếu đến nguồn ảnh của tag <img> qua đó thay đổi hình ảnh khi click. Tham chiếu đến thẻ img qua id, rồi thay đổi đường dẫn src, sẽ thay đổi hình ảnh của thẻ ấy, nhưng không thay đổi các thuộc tính bên trong, id hay name, hay cả biết thêm về hàm .match() để kiểm tra một chuỗi kí tự có trong đó( cách mà em sử dụng để xác nhận sự tồn tại của đường dẫn src trong đường link nguồn chuẩn mà trình biên dịch lưu trữ). Rồi qua chị Châu, em còn thông được những khúc mắc trong đầu với luồng xử lí của bài toán, qua đó giải bài toán một cách đơn giản với đôi dòng code vài dòng điều kiện if….else đơn giản , và thời gian ngắn gấp nhiều lần thời gian đã bỏ ra lúc trước. Thật kì diệu khi đã cởi bỏ được những gánh nặng ấy, em cảm thấy thật vui khi biết thêm được những hàm mới, những kinh nghiệm mới, những hiểu biết sâu hơn thông qua những bài tập ấy. Cái niềm vui k hi giải quyết được một bài toán khó, niềm vui được code đã lâu rồi không còn xuất hiện trong em lại một lần nữa xuất hiện. Đam mê lập trình một thời chưa thực sự trỗi dậy lại trong em, nhưng em đã dần cảm nhận được sự thức tỉnh của nó. Thật vui vì đã được học ở đây. Thật vui vì được học cùng các anh, các bạn. Hi vọng chúng ta sẽ còn được trò chuyện và hợp tác dài hơn nữa, kể cả khi đã hoàn thành toàn bộ khóa học và chia tay với Codegym. Cố gắng lên nào, những thành viên của lớp C1019i1!
P/s : Em nghĩ, việc tự học về các hàm, các tham chiếu trong js là cần thiết, nhưng nếu như những học viên- những con gà mờ mới tiếp cận, có thể được gợi ý các hàm cốt lõi có thể giải quyết các bài toán khó từ trước sẽ giúp học viên đỡ bị “đuối”, đỡ mất nhiều thời gian cho bài tập hơn, đỡ lụt bài, đỡ hoài nghi nhân sinh và cả đỡ tìm cách ăn ở tốt hơn để code chạy được mượt nữa.