Как побороть боязнь чистого листа?

Осознал, что моей проблемой является сабж.

Я не пишу код. Мне хочется программировать, но сам процесс программирования практически не используется.

Я смотрю видео по технологиям, читаю книги, прохожу обучающие курсы, в которых одно и то же. Сомневаюсь в выборе языка "java или python".

А не берусь потому, что боюсь не справиться, что код будет страшным, что не добью его до конца и погрязну в нагромождении костылей или что это слишком просто для того, чтобы вообще писать. Какая-то шизофрения - я хочу писать код и не хочу писать код одновременно. Было ли у кого-то похожее и как с этим бороться?
  • Вопрос задан
  • 7440 просмотров
Решения вопроса 5
Meehalkoff
@Meehalkoff
Просто перестань придумывать отговорки и начни уже делать то, что нравится. Соберись, тряпка! Жизнь слишком коротка, чтобы тратить ее на свои страхи и комплексы ;)
Ответ написан
@gleb_kudr
У всех такое бывает в какой-то степени, просто обычно не с кодом. Это типичный симптом прокрастинации. Просто начинайте с чего-то самого простого и очень легко осуществимого за пару минут. И с таких зацепок уже гораздо легче будет погружаться в работу.
Ответ написан
@larionov_n
1) Начните с простого изучения языка на CodeAcademy.com. Java - слишком сильно завязан на ООП. Выбирайте - Python, он проще для начала. Пройдите все задания на академии.
2) Изучите мат.часть и принцип работы встроенных в язык базовых функций и конструкций (Идеально желательно).
3) Попробуйте сфокусировать свое мышление не на результат (Готовая программа, игра, редактор), а на последовательность действий с помощью которых вы напишите одну функцию (Но она будет идеально выполнять свою единственную задачу).
4) Необходимо понимать, что у нас есть данные и методы работы с данными. Для этого вам нужно изучить структуры данных и лучшие практики по работе с ними. (В помощь школьный PASCAL - Олимпиадные задачи, к примеру реализация алгоритма быстрого поиска, найти меньший элемент, наибольший). - Советую на это потратить больше всего сил. При реализации какого либо алгоритма, советую на бумажке подставлять значения вместо переменных и самому его проигрывать в голове.
5) Изучите основные алгоритмы - Только после того как вы будете готовы работать со структурами данных и будете уверенны в знании выбранного языка. Советую перед этим прочитать книги по множествам, вспомнить базовую алгебру, четко самому вывести понятие конечной суммы в математике, логарифма. - Как минимум. Начинайте читать Вирта. (Это тяжело но помогает научиться думать как следует).
6) Читайте SourceCode, это самый интересный и самый полезный вариант для получения представления о структуре программ. С библиотек не советую начинать. Когда будет сами уже писать маленькие программы без нужды заходить в гугл или stackoverflow. Можете переходить на библиотеки. Зарегистрироваться в GitHub и читать открытый код. Когда поймете, что это помогло. Можете стать контрибутором одной из любимых библиотек. (Любой работодатель это ценит).
7) ООП - После всех пунктов, можете почитать Буча и попробовать труды Банды четырех. Шаблоны проектирования, Мартин Фаулер (Рефакторинг, Шаблоны корпоративных приложений).
8) БД (Проектирование, выборки, нормализация, SQL язык).
9) Полет вниз (Переходите на C, потом на C++). Реализуете уже написанные map, reduce, изучаете более подробно структуры данных, алгоритмы, понимаете указатели, работаете с памятью, высчитываете эффективность алгоритмов. Напишите большую программу на C/C++ - которая будет выполнять 20 разных функций (Смотреть API вконтакте, выводить в окно информацию с АПИ, реагировать на кнопки и прочее). Можете попробовать GameDev.
10) Функциональное программирование.
11) Параллельное программирование.
12) Системное программирование (Unix, напишите свой интерпретатор, почитайте книгу драконов, посмотрите как работают различные компиляторы с вашим кодом).
13) Завалите все кто вас обидел в этом посте.

Удачи!
Ответ написан
Sterhel
@Sterhel
Перфекционизм, доведенный до фанатизма, неплохо так сковывает.

Идите и делайте.

Лучше потом смотреть на результат труда вида "Средненькое ничего, надо доработать", чем на "У меня просто идеальное нихрена".
Ответ написан
Пригласить эксперта
Ответы на вопрос 14
@killla
Иди грузчиком работать. Кодинг это не твоё.
Ответ написан
algreenzer
@algreenzer
Я в этом шарю
В писательстве есть прием "Я не знаю о чем писать" - стоит только написать эту строчку, как сразу появляется осмысленное желание написать о чем-то. Потом достаточно стереть первую строчку, и как будто легко вот так вот взял и написал.

Попробуйте придумать для себя строчки кода, схожие по действию. Я не силен в программировании, но суть попробую изобразить:
function nihuyanedelat () { $loh == 0; NCNecros == 0;}
function pishicodbleat ('clean', 'perfect', 'no-crutches', 'more-money') {
    var $lenivaya_jopa = [name]=>"NCNecros";
    if (!loh) {
        $(workay_po_hardu) { document.respect('true'); 
    } else {
        $(sosai) { life.realise('false'); 
    }

day.addEventListener('NCNecros').onPC&morningСoffee = pishicodbleat();
Ответ написан
@Kyberman
Хороший способ борбы с сабжем - метод коротких итераций. То есть, как сказал @gleb_kudr, начать с чего нибудь очень простого и реализовать это, не думая о качестве кода. Затем посмотреть, не слишком ли плох код, если надо сделать рефакторинг. Потом добавить ещё какую-нибудь небольшую функциональность, снова рефакторинг и так далее. Вам стоит прочитать эту книгу.
Сомневаюсь в выборе языка "java или python"
- попробуйте написать на обоих что-нибудь простое. Хороший программист должен знать больше одного языка программирования.
Ответ написан
metamorph
@metamorph
У Вас просто нет подходящей задачи.

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

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

Найдите задачу по душе и вперед с песней.

Что же касается кривого кода - это действительно может стать сильным стопором ("решение существует, но оно какое-то кривое, поэтому я не буду его применять, а посижу и подумаю над более красивым").

Лично я с таким борюсь следующим образом: если чувствую, что затупил, пишу кривую реализацию с пометкой "FIXME: ...". Это позволяет двигаться дальше, и в процессе может либо прийти в голову нормальное решение, либо логика кода может смениться до неузнаваемости (и кривое решение уйдет само собой).
Ответ написан
q1t
@q1t
было и иногда есть такое, порой ощущение что не хватает напарника(цы) - идея парного программирования нравится :) Или если ты студент, можно начать делать интересный совместный проект.
Ответ написан
@sergeygarnov
я тоже так боялся, а потом раз - и уже работаю программистом и выполняю сторонние заказы)
@Meehalkoff верно говорит, что жизнь слишком коротка
Ответ написан
@wordwild
Если возраст позволяет - литр водки.
Если не позволяет - читать книги, смотреть видео, ждать...
Ответ написан
nistelroi
@nistelroi
Однажды либо начнешь писать код, либо надоест читать книги.
И тогда все разрешится
Ответ написан
@maxfox
Очень знакомо, тут выход - либо устроится в хорошую компанию джуниором, либо бороться с этим самостоятельно. Второе - сложнее, но лично для меня выбора не было. Нет образования, опыта работы, плюс собственный бизнес-проект, далекий от IT, но который бросить нельзя. Итого - минимум свободного времени, отсутствие какой-либо поддержки от более опытных коллег. Это тяжело, но писать хочется, т.к. это единственное что увлекает по-настоящему.
Мой совет - берите самую простую задачу и делайте, не бросайте. Найдите себе единомышленника, работайте вместе.
Если интересен Python - можно поработать вместе, зависит о того, в какой области ваши интересы. Если веб - то есть пара интересных задумок, на которые пока не решиться, напарник бы сильно помог.
Ответ написан
- Модули, Компоненты - перестаньте разрабатывать "приложения", а делайте это через композицию компонент, где компонентом может являться как маленький инпут с попапом, так и целые вью. С таким подходом вы занимаетесь разработкой только компоненты, вначале небольших, потом начинаете компоновать побольше и так далее. Таким образом пропадает страх перед целым приложением, а вы концентрируетесь только на небольшие части.

- Модули, Слои - делите приложения на слои.

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

Вообщем, счастье в правильной архитектуре.
Ответ написан
Tantacula
@Tantacula
Ларавельщик, витающий в небесах.
Зарегайтесь на codeacademy.com и запустите урок по любому языку. если знаете html css хотя бы на начальном уровне, то по jquery, если нет - php. Можете руби или питон взять, но по ним задач в интернете, за которые новичок может денег срубить куда меньше, а долгое отсутствие возможности применить свои знания на практике положительно на процесс не повлияет. Только не откладывая до вечера или выходных через неделю, а сейчас - разницы между тем, читаете вы что-то или кодите на самом деле нет - время уходит в любом случае, только второй вариант даст вам бонусов в будущем.
Ответ написан
vipuhoff
@vipuhoff
Очень помогает разбить то что ты хочешь на маленькие и очень простые кусочки, сделать каждый из них по отдельности и потом легко собрать в кучу когда закончишь.
Может конечно ты и не закончишь, но ты даже в этом случае сделаешь больше чем если бы ты не начал:) А полученные кусочки могут еще пригодиться в будущем.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы