Что будет, если писать код от руки

Пол-года назад была мной опубликована статья о конспектировании от руки учебника learn.javascript.ru уважаемого Ильи Кантора, в следствии чего стало ощутимее проще кодить на JavaScript. В этот раз, я переписал от руки документацию React’a (гифка весит около 550мб).

https://drive.google.com/file/d/1k6hV3mWhQPVlJ-r58TRG199GXGmbipKh/view?usp=sharing

У каждого человека развиты свои виды памяти, с помощью которых его мозг и запоминает информацию. Мне больше всего подходит конспектирование. После рукописи я не запоминаю прям всё что написал, но в голове остаются многие базовые принципы работы или ссылки на материал. Это помогает пользоваться знаниями, спасает в случаях непонимания работы скрипта. Джуниор зачастую сталкивается с ситуациями, где он просто не в состоянии технически осмыслить откуда берутся данные и что значат две скобки подряд.
Теория помогает расширить границы понимания работы и возможностей инструментов, ведь нельзя использовать, чего не знаешь.

Предыдущая статья вызвала вопросы со стороны комьюнити, на которые я хотел бы ответить:

1) «Возомнил о себе». Коспектирование идеальных образцов кода и принципов работы языка оставляет след в мозгу. Это учёба на реальных примерах. Ведь каждый программист должен иметь представление идеальной картины проекта, а позже уже подстраиваться под его реалии, в этом и главная задача разработчика — быть гибким. Как и любое ремесло нахрапом кодинг не учится, это требует времени и усилий. Конспектирование параллельно с работой дают свои плоды и помогают понять проект.

2) «Лучше буду туториалы смотреть». Это уже проходили, большинство туторов не закончено и код на GitHub’e остаётся лежать на половину сырым. Горячие головы не хотят учиться, а сразу в бой, потому-что взрывной энергии вагон и тележка. Нахрапом профессию не освоить, только трудом и обучением, пишите и теорию.

3) «Пишешь в пустую, оно никому не надо». Спорно, это сродни прохождения самому глубокому курсу по материалу. Плюс, код пишется не кнопками, а от руки. Это механически забивается в память, до автомата, причём намного лучше, чем если просто печатать. Рукопись более осмыслена, чем просмотр видео. Скринкасты мешают картинкой кода, перемотками, голосом и прочим. Ведь код, под своей сути — это ничего кроме текста. Только материал, не нужно добавлять сюда музычку и другие приколы, это избыточно.

4) «Перепиши Дональда Кнута». Благодаря статье узнал о таком человеке-современнике, спасибо за подсказку. Это будет следующим материалом для обучения.

Конспектирование очень хорошо ложится на уже имеющуюся базу, практика нужна сто процентов, но иногда без теории это тупик. Лучшая теория — в источниках, лучший способ усвоить — написать.

Если вы не учились в университете и не имеете компьютерного образования, если у вас нету ментора — будьте готовы писать от руки. В конечном итог никто, кроме себя, вас не обучит.

👍НравитсяПонравилось0
В избранноеВ избранном2
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

кто открыл врата ада?

Було. Писав. Але ж, блін, по С++ та Ассемблеру, і справді стисло та вдумливо. І то, недовго, адже згодом перейшов до ретроспективного виділення потрібних фрагментів маркером прямо в книгах або на роздрукованих матеріалах, створюючи можливість потім за вечір поновити у пам’яті прочитане, пробігшись тільки по справді ключовим моментам, яких у пересічній книзі бодай 15% від всього об’єму.

Але щоб повністю... від руки... про реакт... Автор, тупе питання, ви ж, ніби, не зелений джун; то що змусило думати, ніби ту доку взагалі є сенс запам’ятовувати?

Он є люди (часто, з певними вадами), які і без зтирання рук в криваві мозолі можуть запам’ятати цілі телефонні довідники. І шо? Думаєте, їм то сильно допомагає досягти успіху в житті? В їх випадку, вважайте, є сервер з кипою встановлених дисків великого об’єму, а операційку в силу різних причин ніяку не встановити... і що толку від всіх тих петабайт даних?

В часи інтернету нема ніякої потреби щось переписувати. Зберіг в електронному вигляді -> пошук по сторінці -> готово. Тепер навіть наукові публікації можна читати по діагоналі. У совковикладачів має підгорати з їх динозаврячими методичками. А незабаром і викладачів стільки непотрібно буде, бо в онлайні інформація значно вищої якості і в максимально доступному для засвоєння вигляді. Бюрократам — чупачупс.

Так, мене дістали були срані чсвшники, які вважають що їм мають ботинки цілувати за те що вони знаходяться в класі/аудиторії. Божки місцевого розливу.

Для меня написание кода от руки оказалось единственным эффективным методом научиться программировать. Если не написал код от руки, то выветривается все в течение дня.

А для мене писати будь-що від руки — це визнати що топік мені не цікавий. Завжди ненавидів бездумне конспектування в навчальних закладах.

ТС теж програміст, але вирішив пописати манускрипти. Ну, кожному своє, напевно.

На інформатиці в 90-ті нам від руки на дошці крейдою малювали «оригінальний» вигляд доріжок CD-диска. А потім з цієї теми контрольну давали. Враховуючи, що ми ніколи таких дисків наживо не бачили (часи дискет та касет)... то інакше ніж особливо цинічним катуванням це не назвеш.

В этот раз, я переписал от руки документацию React’a

Вы серьезно?

будет написанный код от руки...

Ты открыл собственный способ запоминать. Не обращай внимания на все комментарии и комментаторов. Ты на правильном пути.

Что будет, если писать код от руки
Пророк Самуїл. А шо буде? Нічого не буде — П***єц буде!!!
Что будет, если писать код от руки

не скомпілюється. а ще буде боліти рука.

А от що якщо «відсидити» руку, так щоб вона оніміла ...

Автор, что если нам объединить усилия? Я не шучу. Сам заинтересован.

лучший способ усвоить — написать.
Если вы не учились в университете и не имеете компьютерного образования, если у вас нету ментора — будьте готовы писать от руки.

Люблю когда очередной «новатор» начинает делиться внезапно сошедшим на него озарением, призваным спасти бедное человечество, которое по печальному стечению обстоятельств никак раньше до этого озарения не дошло.

Специально запоминать (зубрить) не надо. Чем чаще читаешь одно и то же — тем лучше запоминается само собой. А читаешь обычно в ходе практики. Труднее сего в самом начале — тогда все непривычно — как несоленую пищу есть. Преодолевший эту первую трудность проходит в IT.

Мне не очень понятно, что именно конспектировать.
Документацию к методам? Или определения из ООП?

Задам вопрос с неожиданной стороны. А всегда ли надо запоминать? Объём память в голове конечен, и очень сильно конечен, к тому же стирать оттуда гораздо сложнее, чем записывать. Понятно, если информация фундаментальная, необходимая не один десяток лет, то да, запоминать надо. Какие-нибудь ключевые RFC стоят того, или система команд ARM, ну или тот же Core JavaScript. Или Кнут, да.

Но React и прочее фреймворкобесие? Оно же протухнет раньше, чем вы ручку от бумаги поднимете :)

И второе замечание. По-моему надо именно конспектировать, то есть совершать двухпроходное «сжатие» информации. Вычленять из текста самое важное, и записывать в «сильн.сокр.виде». А не переписывать один в один.

Объем пяти бесконечен. Чем больше человек знает, тем больше он может узнать.

Объем пяти бесконечен

Это на минуточку противоречит физическим и биологическим законам.

Чем больше человек знает, тем больше он может узнать.

На каких фактах основывается такое смелое утверждение?

Это на минуточку противоречит физическим и биологическим законам.

Люди по десять иностранных языков учат. Уж точно вы не станете глупее, если новых пару методов из АПИ библиотеки запомните.

Люди по десять иностранных языков учат.

Как это коррелирует с

Объем пяти бесконечен

?

Уж точно вы не станете глупее, если новых пару методов из АПИ библиотеки запомните.

А это вообще к чему?

ктото не умеет в сарказм

Какие-нибудь ключевые RFC

Какие конкретно есть ключевые ?

или система команд ARM

если эмбедер, и то щас такой эмбедед пошол с ардуино, даже комманды знать не нужно...

Или Кнут

надо поискать хоть одного веб девелепора, который из кнута чтото на практике реально пременил.

который из кнута

вот он я. использую кнут! и пряник!

Второй вариант, для усвоения информации: вместо переписывания ручкой — электронный блог о примерах использования. Очень многие так делают...

Если «визуал», то попробуйте визуализировать, всякие флоу чарты, со стейт диаграммами, маслом по мольберту... может даже реальную пользу принесут.

Да, вот так выглядит нынче ИТ, как у филологов — гламурные конспекты (жаль что не разноцветными ручками а нет, таки разноцветными :) ) и главное, чтобы на инглише, надо же по выпендриваться. Перепишем доки 4-х убогих методов реакта, вместо кодинга вандервафль. Лет 5-10 ржали бы как кони, если такой в тиме спалился :D

Бачу неочевидний але дуже шкідливий наслідок:
Якщо автора хтось поставить співбесідувати людей, може початись ситуація в стилі: «А за що відповідає третій параметр метода trololo() класу Ololo з модулю RogaAndCo».

Якщо хтось із вас так робить, припиніть негайно, це повний тупняк, ви показуєте свою некомпетентність.

Профанация, сорян. По двум основным причинам:

1) Избыточность хорошего текста

Чтобы пояснить на примере скопипащу рандомный абзац из того самого гайда

Instead of artificially separating technologies by putting markup and logic in separate files, React separates concerns with loosely coupled units called «components» that contain both. We will come back to components in a further section, but if you’re not yet comfortable putting markup in JS, this talk might convince you otherwise.

Чтобы сжато выразить смысл нужно намного меньше текста: «Реакт объединяет логику и представление в слабо связанных юнитах, называемых «компонентами» — и при внимательном чтении именно так это и работает: хороший избыточный текст помогает читателю уловить только суть в сухом остатке. Но при переписывании это так не работает: ежу понятно, что если ты не какой-то суперчеловек (съевший стаю собак на переписывании), то этот абзац в «оперативную память» не влезет, и переписывать ты его будешь по кускам. То есть переписчик НЕ работает со смыслом текста в общем случае.

2) Необходимость повторения для нормального обучения

Как правило, нормальное обучение предполагает определенный ритуал: изучил теорию, порешал практические задачки чтобы закрепить, в дальнейшем работая над следующим «модулем» снова нужно применить ранее усвоенное и т.д. В итоге эти повторения и превращают информацию в устойчивое знание. И разумеется, при переписывании конспекта ничего похожего непроисходит.

З.Ы. Записывание от руки действительно помогает запоминанию, на эту тему есть очень годный хак (подсмотрел у Барбары Окли). Суть в том, что прочитав/прослушав достаточно большой блок информации нужно в течение короткого времени (не более минуты после, а лучше еще меньше) записать от руки пару ключевых тезисов резюмирующих основную суть услышанного/прочитанного. Но это не имеет ничего общего со сплошным «переписыванием конспекта».

2) «Лучше буду туториалы смотреть». Это уже проходили, большинство туторов не закончено и код на GitHub’e остаётся лежать на половину сырым. Горячие головы не хотят учиться, а сразу в бой, потому-что взрывной энергии вагон и тележка. Нахрапом профессию не освоить, только трудом и обучением, пишите и теорию.

Для новичков — справедливо. Но разработчику с опытом как правило даже поверхностного туториала хватит, чтобы увидеть, в каком направлении копать, — а там уже, опираясь на документацию, он «по мотивам» туториала напишет правильное решение.

для меня был хороший метод восприятия информации 20 лет назад, во времена учебы и слегка после. С тех пор писать от руки я разучился. А еще, откровенно — лень. Поэтому сейчас конспектирую в гуглдоки, потому что документирование информации позволяет не тратить память на мелочи и всегда иметь источник для валидации.

Джуниор зачастую сталкивается с ситуациями, где он просто не в состоянии технически осмыслить откуда берутся данные и что значат две скобки подряд.

две скобки это проблема, да. Нужно глянуть в конспект) Каждый усваивает материал по своему, конеш, но вот конспектирование доки это прям я даже не знаю, как помягче скзать. Документация на то и документация (особенно либы), что ее не нужно зубрить. Часть апи ты не будешь использовать на своем проекте,часть забудешь при переходе на другой. Это нормально, все удержать в памяти если не невозможно, то бессмысленно точно.

мне показалось, что это то другое и есть

Гайд по конспектированию: youtu.be/M2f9JoEZzZ0

Сначала ты учишь блокнот, а потом блокнот учит тебя тому, чему ты научил его ранее.

Писал код от руки в 10 лет. В 11 появился доступ к компу — ввел и заработало. Была какая-то фигня на BASIC. Главное, что заработало.

Писав в блокнотах-зошитах на бейсіку, асемблері і форті. Паскаль вже не такий компактний з цими своїми відступами...

Написаний код часто працював зразу після введення, деколи 1-2 баги бували.

В этот раз, я переписал от руки документацию React’a (гифка весит около 550мб).

Мм, 10 секундная гифка 550 метров, кайф.
Рекомендую Вам переписать гайд «How to compress image».

Ем... А почитати і потім покодити, на тому ж літкоді, ви не пробували?

— Как понять, ты технарь или гуманитарий?
— Напечатай три раза «автоэлектростеклоподъёмник».
— (через минуту) Напечатала, вроде без ошибок.
— Ну вот. Технарь бы вставил.

начнешь компилировать в уме и запускать на глаз

Хочу посмотреть как тестами покроет :)

Что будет, если писать код от руки

Станешь тем самым лидом что на собеседовании тебе дает ручку и листок)
Товарищь бы стал хорошим спортсменом, потому как конспектирование это моторика (мышечная память), а вот инженерное дело это больше про
понимание. Если совсем в лоб тысячи раз написаное import react from ’react’ не дает тебе понимание как же этот иморт происходит, даже не заглядывая в глубь, резолв зависимостей, три шейкинг, транспиляцию, компиляцю, парсинг, разбор, трансляцию.... вон многие синьеры считают что реакт это фреймворк)

вон многие синьеры считают что реакт это фреймворк)

Можно думать что угодно, все ответы правильные.

Можно думать что угодно

а можно и доки прочесть

A JavaScript library for building user interfaces

Настало время охудивительных историй

Какие другие варианты усвоения пробовали перед тем как понять что этот подходит больше всего?

Да практически все самые распостранённые: подкасты (Кантора того же), стримы на ютубе с онлайн кодингом (есть в моём профиле гитхаба), чтение статей (при сложностях в решении задач или из интереса), иногда менторство (просто учишь, а потом стыдно, что чего-то не знаешь). Понюхать код нельзя, через кожу почувствовать тоже. Так что конспекты и механическая память самые надёжные.

Понюхать код нельзя, через кожу почувствовать тоже. Так что конспекты и механическая память самые надёжные.

Тем более что конспекты можно набить легалайзом и скурить! Кури код! Призыв ещё никогда не звучал столь буквально!

Так он не код писал, а документацию — сие курить дзэн постигнешь :)
Может это тот редкий индивид, который к хорошему (нет) коду таки научится писать хорошие комменты и доки. Чтобы хоть понять можно было, а что код ДОЛЖЕН делать.

А то ведь самая серьёзная трата времени при поиске ошибок — это понять, как надо было правильно, чего хотел сделать автор. И по этой причине часто дешевле переписать с нуля код в пару человеко-месяцев.

И по этой причине часто дешевле переписать с нуля код в пару человеко-месяцев.

шарікови більшовики теж так вважали:
...мы разрушим до основанья, а затем: Мы наш, мы новый мир построим —: Кто был ничем, тот станет всем.
ну й приспів теж на щось таке натякає:
Это есть наш последний И решительный бой;

Коммунисты пообещали рабочим и крестьянам много чего, но что-то не срослось.

обещать — еще не значит жениться.

Так идея утопии такой хороша или плоха? Всем достаточном количестве хлеба и зрелищ. Чего еще желать?

Пожалуй я теперь больше трансгуманист чем кто-то еще.

В цілому я ж гуманіст, не те шо ви, папаша ©

насправді я трохи про інше: про вже набившу оскомину звичку українських розробників у будь-якій незрозумілій ситуації переписувати код повністю з нуля.

Я призываю к большему — переписанный код должен по размеру в байтах, количестве строк и т.п. быть короче чем исходный. Не можешь сократить — не программист значит. Но мы ведь программисты? Надо просто написать автоматический полуночный рефакторинг — бот. Чтобы программа сама чистила себе перышки, когда буде появится такая возможность.

невірно мислите. менший за об’ємом код буде гірше продаватись )))

Я за Open Source. Авто-рефактор-бот будет например создавать вот такие функции cons(rhg( p1,p2)ghjretp1+p2jhg(2,2)) А программист потом, изучая «хитин» давать удобоваримые названия функциям. И это и будет вся его работа в общем-то — ну кроме начального описания в комментариях идеи по типу: ////а вот здесь выведи цикл с двумя счетчиками и вот этим условием выхода.

так розібратися ж в чужому коді важче ніж написати свій з нуля? принаймні так стверджував Олексій тут трохи вище.

Верно. Но достойнее высокого звания программист. Это еще одна ступенька на пороге входа в профессию. И кстати говоря — пакование (упрощение) кода (хотя бы на 1 строчку) процесс трудоемкий.

Это еще одна ступенька на пороге входа в профессию

Цю сходинку більшість українських розробників просто перестрибують )))

...А якщо серйозно цікавитесь спрощенням коду то є напрямки :
1) спортивний: code golfing
2) демосцена

Спасибо за новые слова. Погуглю. Я предпочитаю экстремальное программирование.

Есть у революции начало, нет у революции ***ца!

Революции и удержание рабов от них это проблематика «стрела времени черная дыра»
Понимаешь, в чем-то ошибочна сама стратегия «Право сильного использовать слабых как ему захочется без согласия слабых на то» и вот такая стратегия как раз и порождает энергии и потенциалы в социуме которые время от времени переворачивают все вверх дном — словно речь идет о песочных часах — вверху хозяева жизни, внизу обеспечивающие им эту самую жизнь. Можно устроить все стабильнее и долговечнее, надежнее и безопаснее, с меньшими перепадами.

Можно, но нельзя. Потому что право сильного.

Подписаться на комментарии