Дом » Станьте великим программистом » Я учусь программировать (JavaScript) около года, но я все еще не могу что-либо разрабатывать самостоятельно, я не могу сдаться. Как мне стать лучше?

Я учусь программировать (JavaScript) около года, но я все еще не могу что-либо разрабатывать самостоятельно, я не могу сдаться. Как мне стать лучше?

477
Последнее обновление: 2021-02-06 21:34:05


Ответить:
Похоже, на этот ответ уже есть много хороших технических советов, поэтому я просто расскажу вам свою историю, которая, надеюсь, вдохновит вас. Это не должно быть какой-то саморекламой, но это повествование о моем собственном опыте и обо всех разочарованиях, которые у меня были на моем пути программирования. Как бывший графический дизайнер, изучивший основы Flash в колледже, я впервые попробовал написать код в 2005 году на языке Macromedia Flash ActionScript 2.0, чтобы сделать что-то действительно простое: переместить положение оси x изображения. Это был не столько код, сколько отдельная инструкция и выглядела примерно так: Буквально это была всего одна строка, но код не компилировался, и продолжали появляться ошибки, которых я не понимал. Тогда я не мог знать, что (по запутанным причинам) мой код был правильным, но был помещен в неправильную область. Flash был инструментом анимации кадров на временной шкале, и код можно было написать и затем поместить в определенные кадры, которые выполняли его, когда ползунок временной шкалы продвигался мимо этого кадра. Мой код, по-видимому, не был назначен ни одному фрейму, который я не понимал в то время. Это очень расстраивало, потому что у меня не было возможности узнать, что я делаю, никто не научил меня делать это правильно, и я не был уверен, с чего даже начать понимать эзотерические сообщения об ошибках. Я даже не стремился научиться программировать, я просто хотел, чтобы мое изображение переместилось в положение 350 по горизонтали на экране, но даже это не удалось. За несколько лет до этого я потерпел неудачу и в конце концов бросил базовый курс компьютерного программирования, который проходил в старшей школе, что помешало мне на год окончить школу с достаточными кредитами. Меня также перевели с математических классов на математический класс, где я выучил математику, необходимую для работы кассиром в McDonalds. Я думал, что у меня просто не хватает ума, чтобы изучать математику и программирование, и вместо этого посвятил себя тому, чтобы стать графическим дизайнером. После того, как я не смог правильно написать даже одну инструкцию во Flash и полагая, что я не годился для программирования, я фактически отказался от любых мыслей о попытках написать даже простой код. Вероятно, это было бы концом моей недолгой карьеры программиста. Тем не менее, я посещал бесплатные ежемесячные Flash-встречи в моем городе, наполненные профессионалами в области рекламы, которые создавали Flash-сайты для крупных товарных брендов. По сути, они пришли продемонстрировать группе свои впечатляющие работы, и я поразился тому, что они построили. Они использовали тот же самый Flash, что и я, но они могли создавать произведения искусства, которых я не мог достичь с моими базовыми знаниями Flash. Я уже достиг технических пределов основных возможностей графического дизайна Flash. Чтобы сравнить это ограничение, представьте, что вы можете использовать только HTML и CSS для создания веб-сайтов без каких-либо возможностей Javascript. Мне стало ясно, что если я хочу выйти за рамки основ, мне придется изучить ActionScript. В 2005 году YouTube тогда еще не было. Видео еще не было широко распространено в сети. Я не слышал о Википедии еще несколько лет, а руководств по ActionScript было не так много, кроме того, что мало что было найдено на Поэтому я пошел в местный книжный магазин и купил книгу Flash ActionScript для начинающих за 60 долларов. Тогда для меня это были большие деньги. Тогда я не мог этого знать, но это будет первая из большой коллекции различных книг по программированию, информатике и математике, которую я в конечном итоге соберу и прочту в течение следующих 15 лет. Моя первая книга была лучше случайных интернет-руководств, потому что она была хорошо структурирована и давала базовый синтаксис программирования и знания с небольшими приращениями. Изучение базового синтаксиса было далеким от информатики, но я постоянно обращался к книге и искал, как что-нибудь сделать. Разве это помогло мне решить все мои проблемы, когда я застрял? Нет. Я в отчаянии стучал по клавиатуре много-много раз. Я никогда не считал себя умным парнем и, конечно, не гением, но в конце концов я обнаружил, что у меня есть суперсила: упрямая способность не сдаваться. Я также обнаружил еще один факт: никто не умирает, если ваш код не компилируется. Для написания кода вам даже не нужна лицензия или какое-либо специальное оборудование. Если вы допустили ошибку, пробуйте снова и снова и снова, пока не исправите ошибку. Я считаю, что успех не в том, родились ли вы умным от природы. Это больше о том, чтобы не сдаваться, когда вы застряли. Каждый учится в своем собственном темпе, но года может быть недостаточно. Мне потребовалось еще одно У меня был крошечный бизнес по веб-дизайну для местных предприятий, и я создавал небольшие Flash-приложения и веб-сайты, которые имели очень, очень, очень базовую функциональность с помощью ActionScript, но самым важным было то, что я постоянно совершенствовался, даже если это было очень медленно. Я до сих пор помню свой самый ранний код. Забудьте об объектно-ориентированном программировании. До 2008 года мой код был полностью процедурным, без функций и без отступов кода. Это буквально выглядело как длинный список отдельных инструкций, выполняемых последовательно. Я даже не знал о существовании концепции ООП до 2009 года. Однако я заметил интересную тенденцию, которая, кажется, верна для многих людей: знания увеличиваются. Это означает, что в период с января 2005 года по декабрь 2005 года я выучил и понял гораздо меньше, чем я узнал в период с января по февраль 2020 года, потому что у меня не было предыдущего опыта или знаний, которые можно было бы использовать, когда я начинал полностью с нуля. Точно так же я, вероятно, узнал и понял больше в 2019 году, чем мои первые три года в период с 2005 по 2008 год, потому что мне больше не нужно беспокоиться об изучении базовых идей и я могу сосредоточиться на изучении узкого круга знаний. Когда вы начинаете учиться, ваша кривая знаний изначально линейна или хуже. Вы накапливаете одно знание за раз и изо всех сил пытаетесь его понять. Постепенно, как и сложный процент, он становится логарифмическим, если вы продолжаете его придерживаться. Вы можете относиться к другим концепциям и предыдущим знаниям, которые вы уже понимаете. Первые несколько лет самые разочаровывающие, и именно здесь большинство людей сдаются. В те годы, когда я начал изучать программирование, я пополнил ряды профессиональных Flash-разработчиков в рекламной индустрии и постепенно перешел в индустрию программного обеспечения, где стал старшим разработчиком, работающим над множеством интересных программных проектов: безопасность, рендеринг графики, Android. разработка приложений и создание сервисов потокового видео для таких брендов, как Showcase и Univision, среди многих других. Я даже видел, как мое приложение Roku работало по телевизору в Центральной Америке на пляжном курорте, где я случайно отдыхал. Flash уже давно умер, но я смог легко перенести все, что я узнал из своих дней Flash, в Javascript. Это два моих проекта Javascript, основанных на концепциях математики и информатики, которые я изучил при кодировании с помощью ActionScript. Это тот же код Javascript, который может написать любой. Я использую те же циклы, массивы и переменные, что и все остальные. Просто мне потребовалось много времени, чтобы научиться этому. Я не считаю себя умным парнем и уж тем более гением. Я провалил компьютерное программирование и математику в старшей школе, потому что бросил это прежде, чем решил попробовать еще раз. У меня нет степени по математике или информатике, но это не мешает мне изучать программирование, математику и информатику самостоятельно. Я снова и снова сталкивался с отказом. Несколько лет назад я провалил собеседование с разработчиками игр Ubisoft на рендеринг компьютерной графики после первого раунда технического собеседования, но они побудили меня продолжать практиковаться и не сдаваться. Я не скажу вам, что это не ужасно, когда вас отвергают, вы терпите неудачу или совершаете ошибки. Но стать хорошим разработчиком программного обеспечения - это не навык, которым могут обладать только мировые Эйнштейны. Я верю, что почти каждый может сделать это с упорством. Я все еще учусь каждый день. Я никогда не узнаю всего, что нужно знать, но я знаю, что не сдамся и буду учиться всю оставшуюся жизнь. Я знаю, что это тоже не сексуально слышать, но не стремлюсь и не ожидаю создания больших ярких приложений после года программирования. Делайте детские шаги. Мне потребовалось три года, чтобы освоить основы для циклов и массивов. Улучшение происходит за счет крошечных шагов на протяжении многих лет, а не за счет резких скачков вверх, которых мы привыкли ожидать от просмотра голливудских фильмов. Моя единственная суперсила - это упорная способность не сдаваться и искать альтернативные пути решения своих проблем. Я считаю, что если вы сможете мотивировать себя продолжать, независимо от того, насколько это неприятно, вы тоже сможете достичь этого в один прекрасный день.

Ответить:
Прежде всего, молодец за проявленное упорство и стойкость. Во-вторых, я согласен с несколькими другими плакатами, но добавлю к сказанному: Убедитесь, что вы не ошиблись Единственный способ убедиться, что вы понимаете, - это начать делать, а не просто делать что-либо. Это Далее, как говорили другие, было бы неплохо найти кого-нибудь, кто будет вас обучать, или записаться в структурированный класс. u2014 Имеет смысл попросить кого-нибудь охватить с вами основные идеи в различных областях программирования и CS и представить вам практические занятия, чтобы убедиться, что концепции не просто знакомы, но и понятны, чтобы вы могли применять их в любом язык, который вы используете для изучения. Соответственно, с Javascript все в порядке, но в нем есть некоторые странности, и если это усугубляет ваши трудности, вы можете попробовать на время другой язык программирования и вернуться к JS позже. (Может быть, Python?) Вдобавок к этому, обучение программированию на самом деле не связано в первую очередь с изучением Изменить: Мэтт Кидд предложил упомянуть

Ответить:
Вы слышали про учебное чистилище? Я был в том аду и думаю, что там, где вы сейчас находитесь - без обид. По сути, он застрял на первом этапе обучения. Обучение включает в себя как входные, так и выходные данные. Входные данные - это само обучение: обучающие видео, блоги, книги, подкасты и т. Д. И выход, который делает обучение завершенным, например, написание того, что вы узнали, обучение, размышление, внедрение и т. Д. Возвращаясь к теме, в программировании - и практически в любом навыке - вы должны делать и то, и другое, особенно вывод, чтобы вы могли закрепить знания в своем уме. При этом, чтобы выбраться из ада учебников - то есть просто пассивно смотреть учебники от одного учебника к другому, что не предлагает вам ничего, кроме поверхностного обучения и иллюзии компетентности. Вы должны быть активными в своем обучении, делать это медленно, понимать каждую концепцию, изложенную в учебнике, проводить дополнительное исследование, чтобы вы могли узнать точку зрения другого человека, внести небольшие изменения в код, применить концепцию в другом проекте. Будьте ориентированы на проект. Практикуйте обучение, следуйте инструкциям, фактически делая то, что делает репетитор. Когда вы это делаете, происходит волшебство. вы застрянете и решите проблемы, на которых будете учиться. Когда вы закончите проект (каким бы маленьким он ни был), ваша уверенность возрастет, и вы встанете на путь мастерства. Программирование становится легким, если вы понимаете, что это сложно, и готовы сделать все, что нужно. Ты можешь это сделать! Удачного кодирования.

ближайшая горячая точка
горячая классификация
Это может заинтересовать
up