Với tình yêu từ Stepik: Nền tảng giáo dục Hyperskill

Tôi muốn nói chuyện với bạn về lý do tại sao chúng tôi sửa chữa hệ thống ống nước thường xuyên hơn là viết luận văn về nó, về các phương pháp giảng dạy lập trình khác nhau và cách chúng tôi đang cố gắng áp dụng một trong số chúng vào sản phẩm mới Hyperskill của mình.

Nếu bạn không thích phần giới thiệu dài dòng thì hãy chuyển thẳng đến phần về lập trình. Nhưng nó sẽ kém vui hơn.

Với tình yêu từ Stepik: Nền tảng giáo dục Hyperskill

Lạc đề trữ tình

Hãy tưởng tượng một cô gái trẻ Masha nào đó. Hôm nay Masha đang định rửa một ít trái cây và xem phim trong yên bình, nhưng xui xẻo: đột nhiên cô phát hiện ra bồn rửa bát bị tắc. Hiện vẫn chưa rõ phải làm gì với điều này. Bạn có thể hoãn vấn đề này vô thời hạn, nhưng hiện tại có thời gian rảnh nên Masha quyết định giải quyết vấn đề ngay lập tức. Cảm giác thông thường gợi ý hai lựa chọn: a) gọi thợ sửa ống nước b) tự xử lý. Cô gái trẻ chọn phương án thứ hai và bắt đầu nghiên cứu hướng dẫn trên YouTube. Theo lời khuyên của người dùng Vasya_the_plumber, Masha nhìn xuống bồn rửa và thấy một ống nhựa ngoằn ngoèo được tạo thành từ nhiều bộ phận. Cô gái cẩn thận tháo một mảnh ở đáy bồn rửa và không tìm thấy gì. Đoạn ống phía dưới bị tắc chặt bởi một chất không xác định, và ngay cả một chiếc nĩa tìm thấy trên bàn cũng không thể giải quyết được tình trạng tắc nghẽn. Các chuyên gia từ Internet đưa ra dự báo đáng thất vọng: phần này sẽ phải thay đổi. Trên bản đồ, Masha tìm thấy cửa hàng gần nhất, mang theo đoạn tẩu thuốc xấu số và mua một chiếc tương tự, chỉ mới. Theo lời khuyên của người bán, Masha cũng lấy một cái lưới lọc mới để đề phòng. Nhiệm vụ đã hoàn thành: bồn rửa hoạt động bình thường trở lại và trong khi đó, nhân vật chính của nó đã học được những điều sau:

  • Bạn có thể tự tháo và siết chặt các đường ống dưới bồn rửa;
  • Cửa hàng ống nước gần nhất cách căn hộ của Mashina một km rưỡi.

Rất có thể, Masha thậm chí còn không nhận thấy mình đã học và học được bao nhiêu điều mới, bởi vì cô ấy lo lắng cho sự thoải mái của bản thân trong tương lai, đồng thời xem phim và rửa táo. Lần sau khi gặp vấn đề tương tự, cô gái sẽ giải quyết nhanh hơn gấp nhiều lần. Trên thực tế, Masha không chỉ đưa thế giới trở lại trạng thái bình thường; Cô ấy đã học theo cách quy nạp, nghĩa là trong những trường hợp đặc biệt, và định hướng thực hành, nghĩa là bằng cách thực hiện mọi việc hơn là nghiên cứu chúng một cách chi tiết và trước.

Mọi thứ có thể đã diễn ra khác đi. Giả sử Masha đang ngồi trên ghế vào buổi tối và đột nhiên nhận ra rằng cô ấy chưa chuẩn bị sẵn sàng về mặt tinh thần và thể chất cho việc bồn rửa bị tắc. Cô nhanh chóng đăng ký vào học viện thợ sửa ống nước, nghiên cứu các loại bồn rửa, đường ống và các kết nối có thể có, phân loại các vấn đề về hệ thống ống nước và các giải pháp khả thi cho chúng. Masha không ngủ vào ban đêm, ghi nhớ các thuật ngữ và tên. Có lẽ cô ấy thậm chí còn đang viết luận án tiến sĩ về khoa học lý thuyết về đường ống, nơi cô ấy thảo luận về các miếng đệm cao su. Cuối cùng, khi nhận được chứng chỉ, Masha tự hào nhìn quanh bếp với sự tự tin hoàn toàn rằng giờ đây ngay cả vấn đề nhỏ nhất với bồn rửa cũng sẽ được giải quyết chỉ bằng một cái búng tay. Trong kịch bản này, cô gái đã học một cách suy diễn, đi từ cái chung đến cái cụ thể và tập trung hơn vào học thuyết.

Vậy cách tiếp cận nào là tốt nhất? Trong trường hợp bồn rửa và tắc nghẽn - nguyên nhân đầu tiên và vì những lý do sau:

  1. Nếu chỉ có một chiếc bồn rửa đang hoạt động là quan trọng thì chỉ cần biết những gì liên quan đến khu vực cụ thể này là đủ. Khi Masha nhận ra mình thiếu kiến ​​thức, chắc chắn cô sẽ tìm cách học hỏi thêm.
  2. Kiến thức bách khoa có thể không được kích hoạt trong tình huống thực tế vì thói quen chưa được hình thành. Để tìm hiểu trình tự các hành động, điều hợp lý là không nên đọc về chúng mà hãy thực hiện chúng.

Hãy để Masha tội nghiệp yên và tiếp tục quá trình học tập như vậy.

Lập trình: học hay làm?

Chúng ta thường nghĩ rằng để phát triển và trở thành chuyên gia trong một lĩnh vực xa lạ, trước tiên chúng ta cần phải vào đại học hoặc ít nhất là đăng ký các khóa học. Chúng tôi thường xuyên lắng nghe những gì họ nói với chúng tôi và thực hiện nhiệm vụ. Khi có trong tay tấm bằng hoặc chứng chỉ đáng mơ ước, chúng ta ngay lập tức bối rối vì vẫn không hiểu tại sao mình cần nhiều thông tin đến vậy và cách áp dụng nó cụ thể như thế nào. Điều này không có vấn đề gì nếu kế hoạch tiếp theo của bạn là viết các bài báo khoa học và mang chúng đi dự các hội nghị. Ngược lại, cần phải phấn đấu rèn luyện các kỹ năng, tức là làm đi làm lại những việc cụ thể, cố gắng và mắc lỗi để ghi nhớ lâu điều tốt nhất không nên làm.

Một trong những lĩnh vực mà “bàn tay cứng rắn” hay “con mắt kim cương” song hành với tầm nhìn rộng lớn là lập trình. Nếu nói chuyện với các nhà phát triển có kinh nghiệm, bạn sẽ được nghe những câu chuyện dũng cảm, trong đó một người học toán/vật lý/dạy học từ khi còn trẻ, sau đó cảm thấy mệt mỏi và chuyển sang làm phụ trợ. Cũng sẽ có những lập trình viên không có trình độ học vấn cao hơn! Trước hết, điều có giá trị ở một nhà phát triển không phải là chứng chỉ hay bằng tốt nghiệp mà là số lượng và chất lượng của các chương trình, kịch bản và trang web được viết.

“Nhưng chờ đã!”, bạn phản đối, “Nghe hay đấy - hãy cầm lấy và làm đi!” Tôi không thể dễ dàng viết cho mình một chương trình nếu trước đây tôi chưa từng lập trình! Điều quan trọng là tôi phải hiểu nơi viết, cách nói chuyện cơ bản bằng ngôn ngữ lập trình với trình biên dịch. Nó không giống như tìm số điện thoại của thợ sửa ống nước trên Google.”

Có một sự thật cay đắng trong chuyện này. Một khía cạnh xa lạ dẫn đến một khía cạnh khác, từ đó dẫn đến khía cạnh thứ ba, và chẳng bao lâu quá trình này biến thành một màn trình diễn của một ảo thuật gia, người tiếp tục rút những chiếc khăn tay đã buộc ra và không thể lấy chúng ra khỏi chiếc mũ chóp. Thành thật mà nói, quá trình này thật khó chịu; đến “chiếc khăn tay” thứ 5 thì có vẻ như độ sâu của sự thiếu hiểu biết đã gần với Rãnh Mariana. Một giải pháp thay thế cho điều này là các bài giảng tương tự về 10 loại biến, 3 loại vòng lặp và 150 thư viện có thể hữu ích. Thật đáng buồn.

Hyperskill: chúng tôi đã xây dựng, xây dựng và cuối cùng là xây dựng

Chúng tôi đã suy nghĩ về vấn đề này trong một thời gian dài. Ngày đăng bài cuối cùng trên blog của chúng tôi nói lên rất nhiều về khoảng thời gian chúng tôi đã suy nghĩ. Sau tất cả các cuộc tranh luận và nỗ lực tích hợp cách tiếp cận mới trên Stepik, chúng tôi đã kết thúc với... một trang web khác. Bạn có thể đã nghe nói về nó với tư cách là một phần của Học viện JetBrains. Chúng tôi gọi nó là Hyperskill, được xây dựng dựa trên phương pháp học tập dựa trên dự án, liên kết nền tảng kiến ​​thức Java với nó và tranh thủ sự hỗ trợ của nhóm EduTools. Và bây giờ biết thêm chi tiết.

Với tình yêu từ Stepik: Nền tảng giáo dục Hyperskill

Mục tiêu cụ thể. Chúng tôi cung cấp một “menu” các dự án, tức là. các chương trình mà bạn có thể viết với sự trợ giúp của chúng tôi. Trong số đó có tic-tac-toe, trợ lý cá nhân, blockchain, công cụ tìm kiếm, v.v. Dự án bao gồm 5-6 giai đoạn; Kết quả của mỗi giai đoạn là một chương trình hoàn chỉnh. “Vậy thì tại sao chúng ta lại cần những giai đoạn khác nếu mọi thứ đã ổn thỏa ở giai đoạn đầu tiên?” Cảm ơn vì câu hỏi. Với mỗi bước, chương trình sẽ trở nên hữu dụng hơn hoặc nhanh hơn. Lúc đầu, mã có 10 dòng, nhưng cuối cùng nó thậm chí có thể không vừa đủ 500.

Một chút lý thuyết. Không thể ngồi viết thậm chí Hello World mà không biết một từ nào về lập trình. Do đó, ở mỗi giai đoạn của dự án, bạn sẽ biết mình phải nắm vững những kiến ​​thức cơ bản về mặt lý thuyết nào và quan trọng nhất là lấy chúng ở đâu. Những kiến ​​thức cơ bản cũng có trên Hyperskill trong phần “Bản đồ kiến ​​thức”. Nếu trong giai đoạn đầu tiên của dự án, học sinh không được yêu cầu đọc dữ liệu từ một tệp thì họ có thể không thể tiếp tục. Họ sẽ tự học nó sau này để phát triển chung hoặc họ sẽ cần nó ở giai đoạn tiếp theo.

Với tình yêu từ Stepik: Nền tảng giáo dục Hyperskill

Bản đồ kiến ​​thức. Nó cho bạn thấy những chủ đề bạn đã học và chúng liên quan với nhau như thế nào. Mở bất kỳ chiếc áo dễ thương nào. Bạn có thể lướt qua nó, nhưng chúng tôi khuyên bạn nên hoàn thành những nhiệm vụ nhỏ để đảm bảo rằng thông tin nằm gọn trong đầu bạn. Đầu tiên, nền tảng sẽ cung cấp cho bạn các bài kiểm tra, sau đó nó sẽ cung cấp cho bạn một số nhiệm vụ lập trình. Nếu mã biên dịch và vượt qua các bài kiểm tra, hãy so sánh nó với giải pháp tham chiếu, đôi khi điều này giúp tìm ra cách tối ưu hơn để triển khai nó. Hoặc đảm bảo rằng giải pháp của bạn đã xuất sắc.

Không có gì thêm. Chúng tôi đang chờ đợi cả người dùng “xanh” và các nhà phát triển có kinh nghiệm. Nếu bạn đã viết chương trình rồi thì không sao, chúng tôi sẽ không bắt bạn thêm 2+2 hay lật lại một dòng. Để đạt ngay cấp độ mong muốn, khi đăng ký, hãy cho biết bạn đã quen với những gì và chọn một dự án khó hơn. Đừng ngại đánh giá quá cao bản thân: nếu có chuyện gì xảy ra, bạn luôn có thể quay lại chủ đề đã quên trong bản đồ kiến ​​thức.

Với tình yêu từ Stepik: Nền tảng giáo dục Hyperskill

Công cụ. Thật tuyệt khi viết những đoạn mã nhỏ trong một cửa sổ đặc biệt trên trang web, nhưng việc lập trình thực sự bắt đầu bằng việc làm việc trong môi trường phát triển (Ikết th�c Dsự vươn lên Emôi trường). Các lập trình viên có kinh nghiệm không chỉ biết cách viết mã mà còn biết cách thiết kế giao diện đồ họa, tập hợp các tệp khác nhau thành một dự án, sử dụng các công cụ phát triển bổ sung và IDE đảm nhiệm một số quy trình này. Tại sao không học những kỹ năng này khi bạn đang học lập trình? Đây là lúc JetBrains ra tay giải cứu và một phiên bản đặc biệt của Giáo dục Cộng đồng IntelliJ IDEA với plugin EduTools được cài đặt sẵn. Trong một IDE như vậy, bạn có thể tham gia các khóa đào tạo, kiểm tra các vấn đề đã giải quyết và xem các mẹo dự án nếu bạn quên điều gì đó. Đừng lo lắng nếu đây là lần đầu tiên bạn nghe thấy từ “plugin” hoặc “IDE”: chúng tôi sẽ cho bạn biết nó là gì và cách cài đặt nó trên máy tính hoặc máy tính xách tay của bạn mà không gặp nhiều khó khăn. Hiểu lý thuyết rồi vào IDE và hoàn thành giai đoạn tiếp theo của dự án ngay tại đó.

Thời hạn. Không có ai trong số họ! Chúng tôi là ai để gõ đầu và cho bạn biết tốc độ viết chương trình là bao nhiêu? Khi bạn thích viết mã và muốn hoàn thành nó, bạn sẽ hoàn thành nó, hôm nay hoặc ngày mai. Hãy phát triển vì niềm vui của riêng bạn.

Những sai lầm. Mọi người đều thừa nhận chúng, bạn cũng vậy ở một trong các giai đoạn của dự án, và khi đó giai đoạn này sẽ không vượt qua được các bài kiểm tra tự động. Chà, bạn sẽ phải tự mình tìm ra điều gì đã xảy ra. Chúng tôi có thể cho bạn biết lỗi nằm ở đâu, nhưng điều đó có dạy bạn cách viết mã cẩn thận không? Đọc các mẹo từ IDEA hoặc một chủ đề lý thuyết về Lỗi và khi chương trình cuối cùng hoạt động, lượng dopamine rất có thể sẽ xuất hiện không lâu nữa.

Một kết quả rõ ràng. Vậy là bạn đã hoàn thành xong bản thảo đầu tiên, tiếp theo là gì? Hãy tận hưởng thành quả lao động của bạn! Chơi tic-tac-toe với bạn bè và đồng thời khoe khoang về thành công của bạn. Tải dự án lên GitHub để hiển thị cho nhà tuyển dụng tương lai, tự viết mô tả và cho biết kiến ​​thức mà bạn đã áp dụng ở đó. 4-5 dự án phức tạp và giờ đây, một danh mục đầu tư khiêm tốn dành cho nhà phát triển mới bắt đầu đã sẵn sàng.

Cơ hội để phát triển. Giả sử bạn nhìn vào Hyperskill và không thấy bất kỳ chủ đề quan trọng hoặc dự án hữu ích nào ở đó. Hãy cho chúng tôi biết về nó! Nếu nền tảng của bạn rộng hơn và phong phú hơn bản đồ kiến ​​thức thì hãy viết thư cho chúng tôi theo mẫu Đóng góp. Nhóm của chúng tôi sẽ chia sẻ các mẹo và thủ thuật của riêng chúng tôi với bạn, vì vậy chúng tôi sẽ sẵn lòng giúp bạn chuyển hóa kiến ​​thức của mình thành nội dung hữu ích, dễ hiểu đối với người dùng ở các độ tuổi và trình độ khác nhau. Có lẽ chúng tôi thậm chí sẽ trả tiền, nhưng điều đó không chắc chắn.

Chào mừng: xin chào.hyperskill.org Hãy đến, nhìn, thử, đề xuất, khen ngợi và phê bình. Chúng tôi cũng đang học cách dạy bạn.

Nguồn: www.habr.com

Thêm một lời nhận xét