Методы повышения логики при программировании [закрыто]

21

Я занимаюсь программированием с последних 3 лет. Но я, кажется, потерялся в этом. Я не в состоянии справиться с этим, хотя я пишу каждый день.

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

Мне всегда интересно, как мне стать лучшим программистом, как многие выдающиеся программисты. Я знаю, это звучит субъективно, но я думаю, что это поможет сообществу программистов преуспеть в этом, особенно для средних, таких как я или начинающие программисты.

Умеш Кача
источник
8
Это обычное чувство. Не все из нас будут писать компиляторы или будут хардкорными программистами. У меня нет формального обучения программированию, но решение проблем является ключевым. Поскольку технологии меняются очень быстро, очень трудно оставаться над водой. Я стремлюсь к постоянному улучшению. Это моя цель. Понимать эту профессию совсем по-другому, стремиться делать все возможное и продолжать двигаться вперед. Я всегда уделяю время каждой неделе, чтобы узнать или понять что-то новое. Пока вы сохраняете такое отношение, вы поправитесь.
Джон Рейнор
«Я боюсь кода ... если я не закончу его вовремя, мой босс уволит меня и т. Д.» - это не очень хорошая среда для того, чтобы получать удовольствие и, следовательно, лучше программировать.
Пол Д. Уэйт
@ PaulD.Waite Правда, это не здорово, но очень и очень часто.
Прамеш Баджрачарья

Ответы:

12

Я лично предложил бы начать с меньших препятствий; попробуйте взять кодирование небольшими порциями и получить больше к промежуточным победам. Звучит так, будто вы либо перегружены, либо скучаете, если что-то длится слишком долго или не показывает прогресса. Я могу точно сказать, что я был в одной лодке.

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

Моя компания печально известна тем, что начала и наращивает свой проект, позволяя мне достичь отметки 90%, а затем выскользнуть из-под меня коврика, чтобы перейти к «следующей большой вещи». Я начинаю расстраиваться из-за того, что я ничего не делаю, и впадаю в «фанк» (если хотите). Наконец, я отступил назад и сказал им, что не буду двигаться дальше, пока не закончу то, что почти закончил. Это сделало чудеса для моего уважения, морали и энергии (хотя я не могу сказать то же самое о моих работодателях: shrug :)

Брэд Кристи
источник
7

Мое предложение было бы получить наставника.

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

Отнесите эти планы своему наставнику и обсудите их с ним. Если они увидят, что вы на неправильном пути или пропустили что-то важное, пересмотрите свои планы и попробуйте снова.

Теперь, когда у вас есть утвержденный план, придерживайтесь его. Не меняйте свои планы, пока не произойдет что-то совершенно катастрофическое, а затем вернитесь к пересмотру ваших планов, получению одобрения и перезапуску. В противном случае придерживайтесь своего плана и выполняйте именно то, что вы решили сделать. Проверяйте у своего наставника через регулярные промежутки времени, чтобы проверить правильность вашей реализации, и убедитесь, что вы пишете и используете тесты по пути.

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

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

Удачи вам.

unpythonic
источник
6

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

  1. Вы должны хотеть измениться и стать лучше. Если вы чувствуете, что это так, но не готовы ставить труднопроходимые дворы, чтобы улучшить свои навыки, тогда мало кто сможет вам помочь.

  2. Некоторые люди, естественно, блестящие. Некоторые люди усердно работают, чтобы быть блестящими. Большинство людей просто упорно трудиться, чтобы стремиться быть блестящим. Если вы не обладаете естественным талантом (программированием или иным образом), то тяжелая работа поможет вам. Просто уровень тяжелой работы будет варьироваться. Невозможное возможно.

  3. Примите ваши недостатки и стремитесь улучшить. Одно из самых больших препятствий, которые я вижу, - это люди, которые боятся признать, что их путь не является хорошим, и поэтому никогда не обращаются за советом и не обсуждают другие способы ведения дел. Следовательно, они никогда не изучают лучшие практики и продолжают повторять одни и те же ошибки снова и снова.

  4. Спросите совета у тех, кого вы считаете хорошими программистами. Никогда не бойтесь говорить и спрашивать совета у коллег. Однако всегда принимайте их советы за чистую монету и решайте сами, согласны ли вы с этим или нет. Неважно, насколько блестяще кто-то есть, всегда есть много способов запрограммировать цикл.

  5. Читать читать читать. Читайте новости группы. Размещайте вопросы на таких сайтах, как это (хорошо сделано). Покупайте книги, которые вы слышали хорошо, или попросите рекомендации.

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

  7. Открыт для предложений и помощи. Закрыто для одномерного мышления. Будьте открыты для многих возможностей и методов. Ищите тех, кто думает, что есть один способ для всего. Немного похоже на 4.

  8. Быть блестящим программистом - это не то же самое, что быть блестящим сотрудником. Если вам нужно быть блестящим программистом, то, честно говоря, вы никогда этого не добьетесь. Однако у каждого есть способность, которую я считаю блестящим сотрудником и человеком. Работайте над вещами, которые могут помочь вам туда добраться.

dreza
источник
Отличный ответ. Звучит так, будто эти моменты исходят от великого наставника. Обратите внимание на меня сэмпай !! _ / _
Прамеш Баджрачарья
4

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

Это неплохая вещь. Программирование не для всех, найдите то, что у вас хорошо получается, и делайте это, а не навязывайте себе что-то, что просто неестественно.

Если то, что вы говорите, правда ... вы никогда не будете "исключительным программистом". Это нормально, просто прими это.

Идиоты
источник
Комментаторы: комментарии предназначены для уточнения, а не для расширенного обсуждения. Если у вас есть собственное решение, оставьте ответ. Если вы считаете этот ответ хорошим, проголосуйте за него. Если вы не думаете, что это хорошо, проголосуйте. Если вы хотите обсудить этот вопрос с другими, используйте чат . Смотрите FAQ для получения дополнительной информации.
Да ладно, никто не станет "исключительным" через три года.
JacquesB
3

Постарайтесь погрузиться в состояние сознания Потока . Это самый важный фактор, который я видел, чтобы быть хорошим разработчиком. Чтобы сделать это, вам нужно принять вызов, который, как вы знаете, вы можете сделать, но трудный. Вам нужно найти правильный уровень вызова, чтобы попасть в него; тогда вы можете постепенно увеличивать его по мере улучшения ситуации. Выполнение задач, которые либо слишком просты, либо слишком сложны, будут пагубными.

конфигуратор
источник
3

Разбейте его на маленькие кусочки.
Позвольте мне продемонстрировать использование бутерброда PB & J.

Выясните общий базовый процесс.

1 - Get Ingredients
2 - Combine Ingredients
3 - Cut Sandwich
4 - Serve Sandwich

Затем сломайте каждый из них

**Get Ingredients**
1 - Validate/Create PB
1.1 - Validate/Create Jelly
1.2 - Validate/Create Bread
2 - Move PB To assembly area
...

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

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

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

SoylentGray
источник
2

У меня была такая проблема раньше ... Это случилось прямо перед тем, как я сгорел и не мог программировать на продуктивном уровне почти год после этого (а мне тогда было всего 19).

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

Общие рекомендации:

  1. Если вы чувствуете, что нет направления, поднимите это. Спросите своего начальника для большей структуры в том, где дела идут
  2. Если вам приходится все время удалять код (и не так хорошо, как рефакторинг), серьезно задайтесь вопросом, почему до реализации не разработан более полный план
  3. Если вы находитесь в очень маленьком стартапе и работаете как «ведущий» разработчик, когда вы явно не опытны в этом, проглотите свою гордость и скажите своему менеджеру, что вы на самом деле скорее начинающий разработчик.
  4. Утомление, как правило, вызвано тем, что работа не выполняется. Выполняйте свои задачи небольшими кусочками и следите за своим прогрессом. Это поможет почувствовать, что вы что-то делаете
  5. Если все остальное терпит неудачу, вы можете начать применять в другом месте, особенно если ваш менеджер, кажется, не заботится о том, что вы, возможно, идете на выгорание
Earlz
источник
-1

Найдите индуктивную логическую игру, такую ​​как Zendo, и играйте в нее в свободное время. Шутки в сторону. Индуктивная логика является сердцем отладки.

Малахия
источник