Методи підвищення логіки при програмуванні [закрито]


21

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

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

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


8
Це звичайно відчувати себе таким чином. Не всі ми будемо писати компілятори або будемо хардкор-програмістами. У мене немає офіційної підготовки з програмування, але вирішення проблем є ключовим. Коли технологія змінюється дуже швидко, дуже важко залишатися над водою. Я прагну до постійного вдосконалення. Це моя мета. Зрозумійте, що ця професія зовсім інша, прагніть робити найкраще і продовжуйте рухатися вперед. Я завжди потребую часу на тиждень, щоб дізнатися чи зрозуміти щось нове. Поки ви будете дотримуватися такого ставлення, вам стане краще.
Джон Рейнор

"Я боюсь коду ... якщо я не закінчу його вчасно, мій начальник звільнить мене тощо".
Пол Д. Уейт

@ PaulD.Waite Щоправда, це не велико, але дуже часто.
Прамеш Байрачаря

Відповіді:


12

Я особисто пропоную почати з менших перешкод; спробуйте взяти на себе кодування меншими шматками і отримати більше уваги до проміжних перемог. Це здається, що ви або перевантажуєтесь, або нудьгуєте, якщо щось триває занадто довго або не показує прогресу. Я можу остаточно сказати, що я був у одному човні.

Подумайте про це, як побороти сендвіч: Ви не з'їсте всю річ за один шматочок, ви зламаєте її. Зробіть те ж саме з вашими проектами, завданнями тощо. Залежно від того, на якому рівні ви перебуваєте, ви, можливо, захочете попросити свого керівника / керівника розбити його для вас. Якщо ви несете відповідальність за власне робоче навантаження, встановіть для себе невеликі лінії фінішної обробки, які не можуть бути досягнуті (не встановлюйте мету, якої ви ніколи не досягнете, це просто змусить вас зневірити і поставить вас у небажане становище). тобто "До полудня я хочу, щоб цей клас був визначений", "До 2 я хочу, щоб цей інтерфейс був реалізований" тощо.

Моя компанія горезвісна тим, що почала і нарощувала проект, дозволяючи мені дістатись до позначки 90%, потім висунувши килим з-під мене, щоб перейти до "наступної великої речі". Я починаю знемагати, що я ніколи нічого не роблю, і перетворює мене на "фанк" (якщо ви хочете). Нарешті я відштовхнувся і сказав їм, що не рухаюся далі, поки не закінчу те, що майже завершив. Це творило чудеса для моєї поваги, моралі та енергії (хоча я не можу сказати те саме про своїх роботодавців: знизуйте плечима :)


7

Моєю пропозицією було б отримати наставника.

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

Візьміть ці плани своєму наставнику та поговоріть із ним / з ним. Якщо вони побачать, що ви стоїте на неправильному шляху або ви пропустили щось важливе, перегляньте свої плани та спробуйте ще раз.

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

Якщо ви зробили все вищезазначене успішно, ви доставили проект вчасно та з правильними результатами. Якщо ви хочете повернутися та змінити якусь частину проекту, у вас є всі створені вами тести, а також робоча копія програми, з якої можна побудувати.

Мені це здається так, ніби ти просто трохи розсіяний і не маєш концентрації. Можливо, якщо ви зможете виправити ці сфери та співпрацювати з ким-то, кого ви поважаєте, ви швидко підете на шлях.

Вдачі вам


6

Я вважаю, що я в точно такому ж становищі, як і ти, і не приємно бути там. Це може бути деморалізуючим і, чесно кажучи, досить пригнічуючи часом. Однак, як і в усьому, я вважаю, що ви можете зробити певні речі, які допоможуть полегшити це, і таким чином просунутися до більш здорової та щасливої ​​трудової кар’єри.

  1. Ви повинні хотіти змінитись і покращитись. Якщо ви почуваєтесь таким, але не готові поставити себе на жорстких подвір’ях, щоб вдосконалити свої навички, то нікого не допоможе будь-який інструмент / процес.

  2. Деякі люди природно геніальні. Деякі люди наполегливо працюють, щоб бути геніальними. Більшість людей просто наполегливо працюють, щоб прагнути бути блискучим. Якщо ви не є природним талановитим (програмуванням чи іншим способом), то важка праця може вас там дістати. Просто рівень наполегливої ​​праці буде змінюватися. Немає нічого неможливого.

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

  4. Попросіть поради у тих, кого вважаєте хорошими програмістами. Ніколи не бійтеся розмовляти і питати поради у колег. Однак завжди приймайте їхні поради за номінал і вирішуйте самі, чи згодні ви з цим чи ні. Неважливо, наскільки хтось геніальний, завжди існує багато способів програмування циклу.

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

  6. Ексклюзивність застосовуйте принципи дизайну невеликими кроками, а потім пишайтесь тим, що зробили. Якщо ви пишаєтесь тим, що кодуєте, то є менше шансів на помилки та помилки.

  7. Відкрийте для пропозицій та допомоги. Закрите для одновимірного мислення. Будьте відкриті до багатьох можливостей і методів. Слідкуйте за тими, хто думає, що існує один спосіб для всього. Трохи як 4.

  8. Бути геніальним програмістом - це не те, що бути геніальним працівником. Якщо бути геніальним програмістом - все, що ти хочеш, тоді, якщо чесно, ти ніколи не потрапиш туди. Однак у всіх є можливості, я вважаю геніальним працівником і людиною. Працюйте над речами, які можуть допомогти вам дістатися.


Чудова відповідь. Звучить, що ці моменти походять від чудового наставника. Помітьте мене senpai !! _ / _
Прамеш Байрачаря

4

Якщо через 3 роки щоденного кодування ви боретесь з основами, вам потрібно серйозно розглянути можливість того, що це не правильна професія для вас.

Це не погано. Програмування не для всіх, знайдіть те, в чому ви хороші, і робіть це, а не примушуйте щось до себе, що просто не природно.

Якщо те, що ви говорите, вірно .. Ви ніколи не будете "винятковим програмістом". Це добре, просто прийміть це.


Коментатори : коментарі призначені для пошуку роз'яснень, а не для розширеного обговорення. Якщо у вас є власне рішення, залиште відповідь. Якщо ви вважаєте, що ця відповідь хороша, голосуйте за неї. Якщо ви не вважаєте, що це добре, голосуйте за нього. Якщо ви хочете обговорити це питання з іншими, скористайтеся чатом . Див . FAQ для отримання додаткової інформації.

Давай, за три роки ніхто не стає "винятковим".
ЖакБ

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
...

повторюйте процес розбиття, поки ви повністю не зрозумієте логіку.

Це полегшить осмислення. І простіше визначити загальні процеси. Перш ніж почати кодування, переконайтеся, що ви вже з'ясували логіку. Зробити помилки - це не просто добре, як очікується. Знайти їх, перш ніж реалізувати їх, набагато простіше виправити.

Часто логіка є найважчою частиною програмування. Чому не всі хочуть це зробити. Якщо ви не любите логіку, але любите дизайн інтерфейсу, є ролі, які спеціалізуються саме на цьому, де ви можете отримати більше задоволення. У цьому немає нічого поганого. Я особисто віддаю перевагу логіці інтерфейсу користувача. Є й інші ролі, якщо логіка не там, де ви хочете розібратися, де ви хочете бути.


2

У мене були подібні проблеми раніше. Це сталося прямо до того, як я згорів і не міг програмувати на продуктивному рівні протягом майже року після цього (а мені тоді було лише 19).

У будь-якому випадку, озираючись на це, питання, яке я мав, було відсутністю керівництва та управління. Я працював би над тим, щоб щось реалізовувати місяць-два, а потім, коли це було майже зроблено, раптом це потрібно зробити зовсім по-іншому. Це було величезним ударом по моїй самооцінці, оскільки я дуже пишаюся кожним рядком коду, який я пишу. Також керівництво складалося здебільшого з пари годинних обговорень, як щось має працювати, а потім через пару днів нічого не обговорювати. Дещо в цьому була і моя вина, звичайно. Це також посилювалося тим, що в якийсь момент робота стала надзвичайно стомлюючою, і я відчув, що я просто набираю код і насправді взагалі не креативний.

Загальні вказівки:

  1. Якщо ви відчуваєте, що не вистачає напряму, підніміть його. Попросіть свого начальника про більшу структуру, куди йдуть справи
  2. Якщо вам доведеться весь час видаляти код (і це не так, як рефакторинг), серйозно запитайте, чому не існує більш повного плану, побудованого перед реалізацією
  3. Якщо у вас є дуже маленький запуск і функціонує як "провідний" розробник, коли ви, очевидно, не досвідчені, проковтніть свою гордість і скажіть своєму менеджеру, що ви насправді більше молодшого розробника.
  4. Тедіум, як правило, викликаний появою жодної роботи, яка не буде виконана. Робіть свої завдання меншими укусами і стежте за своїм прогресом. Це допоможе відчути, що ви щось робите
  5. Якщо все інше не вдасться, ви можете почати застосовувати в іншому місці, особливо якщо ваш менеджер не переймається тим, що ви можете рухатися до вигорання

-1

Знайдіть індуктивну логічну гру типу Zendo та пограйте у неї у вільний час. Серйозно. Індуктивна логіка - це серце налагодження.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.