Я новичок в области компьютерных наук, и мы только начали делать реальные проекты на Python. Я обнаружил, что я очень эффективен, когда использую метод ручки и бумаги, который мой профессор предложил в классе. Но когда я не могу записать свою проблему и разработать свои алгоритмы на бумаге, я очень медленный. Во время лабораторных занятий мне всегда приходится возвращать задание в общежитие. Когда я прихожу туда и пишу, я решаю проблему, которая заняла у меня весь урок примерно за 5 минут.
Может быть, это потому, что я испытываю стресс, когда вижу, как люди решают лаборатории до меня. Или, может быть, это метод ручки и бумаги.
Я просматривал форумы, и кто-то писал, что если вам нужно писать свои программы на бумаге, то вы не должны быть программистом. Я действительно волнуюсь, потому что мне намного лучше, когда я могу увидеть, что делает программа, и отследить мой путь до того, как набрать настоящий код. Я делаю что-то неправильно?
Изменить: Извините за неясность, но когда я сказал писать на бумаге, я имел в виду мой подход к решению проблем (например, написание примеров, создание таблиц со значениями и т. Д.), А не мой реальный код. Я просто использую бумагу, чтобы высказать свои идеи.
источник
Ответы:
Нет ничего плохого в том, чтобы сначала разработать свои алгоритмы на бумаге. Не столько для повседневного кодирования, сколько для более сложных алгоритмов, профессиональные программисты все время отрабатывают их на бумаге или на доске, особенно если графический формат делает это более понятным. Для студента каждая программа сложна.
Если вы хотите научиться лучше разрабатывать алгоритмы на компьютере, есть некоторые приемы, которые вы можете практиковать. Не просто начните с написания кода, напишите то же самое, что вы положили бы на бумаге в качестве комментариев, а затем разверните его в реальный код или более подробные комментарии один за другим.
Например, если я удаляю элемент из середины связанного списка, я могу начать с чего-то вроде:
Затем я мог бы заменить
// find the element
функцию с большим количеством псевдокодов и продолжать работу, пока не получу полное решение. Не думайте, что код должен быть написан линейно.источник
Действуй! Если мы называем то, что вы делаете, продумывая и разрабатывая ваше решение, то имеет смысл, что ваш процесс будет намного быстрее, чем просто уничтожение кода.
Люди любят думать (и шумные любят говорить нам), что их образ жизни лучше. Но у каждого умение и навыки разные. Так что делай, что работает для тебя. По мере того, как вы будете практиковаться, вы, вероятно, переключитесь на выполнение большей части дизайнерских работ в своей голове и будете использовать бумагу для решения более серьезных задач.
Единственное, на что нужно обращать внимание, это то, какую форму примут экзамены. Будут ли они на бумаге или на компьютере? Если они на бумажной основе, то ваш путь даст вам преимущество. Если они основаны на компьютере, то это тоже хорошо: сделайте любой дизайн на бумаге, а затем напишите код. Все, что работает лучше всего!
источник
Я не пишу реальный код на бумаге, но для чего-нибудь нетривиального я почти всегда начинаю с доски или ноутбука. Я обычно зарисовываю:
Обычно это сочетание набросков, псевдокода и английского.
Я обнаружил, что благодаря этому легче визуализировать, когда я начинаю кодировать. Я также укажу на недостатки, прежде чем я начну в коде, потому что я могу видеть все перед собой (вместо непрерывной прокрутки и переключения окна). Мало того, что после того, как это написано, я могу позволить вещам сформироваться в моей голове, пока я работаю над другими задачами. Я также могу работать нелинейно, записывая идею на бумаге, когда она попадает в меня, и затем возвращаясь к ней, когда я достигаю точки, где она мне нужна.
Передача чего-либо на бумагу - огромная помощь для сохранения памяти. Слоган для ноутбуков марки Field Notes :
После более целенаправленного подхода к написанию вещей на бумаге, даже если я через мгновение сделаю запись в приложении ToDo на своем телефоне, я обнаружу, что эта мысль в моей голове гораздо лучше, чем просто электронная заметка. Итак, планируя свое кодирование на бумаге / доске, идеи лучше остаются в моей голове.
Он также служит удобной ссылкой, когда пришло время документировать то, что я написал.
источник
Я не думаю, что изначально есть что-то не так с составлением кода (псевдо или иным образом) на бумаге - это на самом деле ничем не отличается от написания этого на доске, что многие люди делают, обсуждая, как решить проблему.
Вы пишете первые черновики эссе для классов, отличных от CS, на бумаге, прежде чем печатать их? Фактически, я делал это несколько лет назад, когда еще учился в колледже, но после первого курса я заставил себя писать все черновики на экране, поскольку это значительно облегчило написание последующих черновиков, и применима та же идея. писать код.
Я бы посоветовал вам попробовать набрать свои алгоритмы, даже если это просто в текстовом редакторе, таком как Word. Чем больше вы это делаете, тем удобнее вам не полагаться на бумагу и ручку. А если вам не хватает навыков печатания, и это на самом деле является источником вашего разочарования, пройдите курс печати! Это будет лучшее, что вы можете сделать для своей будущей карьеры.
источник
Решение проблемы и написание кода, реализующего ваше решение, - это два разных действия.
Если вы не знакомы с языком, вы потратите много времени на сам код - и недостаточно на поиск хорошего решения. Если вам в этом помогут бумага, белая доска или потолок, то обязательно сделайте это.
(Лично я выхожу из компьютера и хожу по кругу, пытаясь найти решение в своем уме)
источник
Вы будете интервью интервью! Они заставляют вас писать код на бумаге или на доске. Я полная противоположность. Пытаться писать фигурные скобки или вырезать и вставлять ручкой ТАК утомительно!
Мой папа использовал много бумаги при программировании на COBOL. Я думаю, что это просто твой стиль мышления.
источник
Раньше у нас был двух семестровый класс под названием «Основы программирования». Тесты в середине семестра и экзамены в конце были выполнены на бумаге. Если вы допустили какие-либо ошибки компиляции, вы потеряли значительное количество баллов. Если вы сделали огромные ошибки компиляции, вы потерпели неудачу. Однако я чувствую, что у нас появилась возможность взглянуть на любой код и найти ошибочные строки за относительно короткий промежуток времени.
источник
Нет ничего плохого в том, что вы делаете, я научился программировать, используя бумагу и ручку.
Как другие предложили сделать то, что работает для вас. Я помню, что первая Java-программа, которую я написал, была в основном на бумаге, а затем я потратил два часа на ее написание и пятнадцать минут на слезы, когда увидел более 200 ошибок компилятора. Их было больше, но компилятор показывал только первые 200! Однако я хочу сказать, что, написав код на бумаге, я смог продумать основной алгоритм и функциональные возможности программы. Компилятор указал причины, по которым моя программа не запускалась. 90% проблем были вне пределов исключений с массивами.
По мере того, как вы приобретете больше опыта и уверенности, вы будете меньше пользоваться ручкой и бумагой. Вы уже знаете, как использовать базовые понятия, такие как циклы и так далее. У вас будут примеры в других программах, которые вы можете использовать повторно. Вы будете использовать компилятор и IDE, чтобы находить очевидные ошибки во время написания программы. Прямо сейчас, хотя у вас нет этого опыта.
Читая ваш вопрос, я думаю, что некоторые из ваших проблем могут быть из-за фокуса. Если использование ручки и бумаги в тихой обстановке поможет вам сосредоточиться, тогда отлично.
Вы все еще в колледже, и вы все еще учитесь. В конечном счете, все, что вы делаете, это то, что работает для вас. Если с помощью бумаги и ручки вы упорядочиваете свои мысли и мыслите четко и спокойно, то вы программируете.
источник
Мой код гораздо лучше организован, когда я пишу заметки и подходы в блокноте, проверяю книги, проверяю Интернет и думаю об этом. Я также гораздо больше визуальный человек, поэтому очень полезно рисовать картинки со структурами данных. Я не записываю каждую строку, но пишу то, что считаю «важными» фрагментами или ключевыми функциями. Для больших проектов я запускаю Visio. Я не уверен, почему кто-то будет выступать за то, чтобы прыгать прямо на клавиатуру, если он не намного эффективнее или ему платят по часам.
источник
Делай то, что работает для тебя. Я бы не стал писать код на бумаге. Я пишу псевдокод и рисую блок-схемы на бумаге, но написание полного кода кажется пустой тратой времени.
источник
Я также сталкиваюсь с той же проблемой в первый день обучения техническим навыкам.
Но эта практика типов не должна давать 100% успеха, потому что если мы пишем код на бумаге, то нет шансов исправить ошибку, есть шанс исправить ошибки и исключения во время выполнения бумажной работы.
Таким образом, бумажная работа не дает никакой навигации для решения проблем. И мы можем получить скорость ввода текста в качестве бонуса из-за практики системы.
Пожалуйста, постарайтесь уделять больше времени системной практике. Это даст 100% уверенность и результат.
источник