Server sync... Block time in database: 1664358957, server time: 1664359065, offset: 108

10 вещей которые сэкономят время и силы начинающему кодеру


Привет, Голос!

Этот пост особенно будет полезен для новичков и тех, кто хочет попробовать себя в кодинге или начал изучать новый язык. Хотите сэкономить время и силы? Перейдём сразу к делу!

I. Не затревайте в "ловушке туториалов" слишком наддолго.

imagepng

Что такое "ловушка туториалов"? Если вы уже пробовали изучать какой-либо язык, то наверняка вам попадалось множество гайдов, мануалов и туториалов которым вы пробовали следовать и у вас получалось с определенными успехами. Опасность застрять в таковой ловушке - в неспособности в будущем мыслить полностью самостоятельно и реализовывать собственные проекты. Конечно, нельзя недооценивать полезность туториалов, и вам придётся, хотите вы или нет, прочитать десятки и сотни таковых. Однако, если вы ощущаете сильную от них зависимость, попробуйте сделать собственный проект. В первое время вам может быть тяжело, но усилия окупят себя с лихвой и ваша кривая обучения взлетит до ннебес.

II. Не попскайте фундаметальные основы языка, переходя сразу к "прикольным" в вещам.

image.g

Фундаметальные вещи могут показаться нудноватыми, скучными или малопонятными. Но с погружением в язык вам будет всё проще и всё понятнее понимать то, что написано в фундаментальных вещах, в той части которую вы читаете при первых шагах и знакомстве с языком. Полезно будет также перечитать основы после того, как вы более-менее закончили курс ЯП (Языка Программирования). Пропустить фундаментальные основы - это как пойти и попытаться играть в профессиональный волейбол сразу после трёх бросков мяча или пытаться победить гроссмейстера в шахматы, когда вы играли в них всего пару раз в жизни. Вам нужно совершить 1000 бросков или сыграть 1000 игр, чтобы "прочувствовать" игры. Рваться в бой это конечно здорово, но постарайтесь освоить основы на должном уровне. Иногда так же может быть полезно выйти за пределы языка, если вы понимаете, что "плаваете" в какой-то теме (к примеру, "работа с файловыми системами"), и изучить тему вне пределов кодинга, обособленно. А затем уже возвращаться к конкретному языку и определенной "fundamentals" теме. Кстати, важно также изучить основы не только языка, но и платформы или среды разработки, с которой вы планируете работать. Это сэкономит огромное количество времени в будудущем.

III. Не третесь запомнить всё наизуизусть!

image.

Не имеет значения, если даже вы профессиональный кодер и уже работаете с языком несколько лет, вы всё равно можете попасть в ситуацию когда хотите загуглить простейшие вещи, например, как реализовать цикл или условие. Это нормально! Не стыдитесь этого! Вы даже можете гуглить это изо дня в день на протяжении какого-то времени. Ничего страшного! Это происходит с нами со всеми и это совершенно нормально! Самое главное здесь - чтобы вы знали, где посмотреть. Документация, блог-пост, ваши собственные заметки... В этом случае вы всегда сможете обратиться к справочнику и быстро найти ответ. Особенно данный совет актуален для тех, кто кодит нерегулярно или использует множество различных ЯП. Это огромное заблуждение, что профессиональные разработчики проводят часы или даже весь день в бесконечном написании кода без того, чтобы заглядывать куда-либо (хотя изредка попадаются, конечно, и такие). Если только вы не хотите связать свою жизнь с одним и только одним ЯП, не парьтесь по поводу того, чтобы подсматривать куда-то, даже если давно уже свободно владеете каким-то ЯП. В конце концов, "научитесь учиться", даже если вы уже 10 раз читали определенную страничку документции - не стыдитесь заглянуть вновь и сэкономить время на проверке типичных ошибшибок.

IV. Найдитебе ментентора.

image.

Он не обязательно должен быть в оффлайне! Можно просто найти себе друга в сети или поискать телеграм-чат, обсуждающий данный ЯП. Если у вас не будет ментора, вы рискуете порой "застревать" с какой-то простой или небольшой темой на целые дни, не зная что делать и как загуглить проблемное для вас место. Пусть у вас будет человек, которому всегда можно задать вопрос, и сэкономить себе кучу времени. А отвлекаться от кодинга очень даже полезно. Задайте вопрос вашему ментору и вернитесь к задаче завтра, после того как получите от него ответ или подсказки! Изучение ЯП таким образом снимет множество нервных моментов и уберет излишнюю озадаченность, привнесёт лёгкость, человечность и понятность в ваш процесс обучения. Так же, снизится вероятность того, что вы просто забросите курс обучения, ведь мотивация может упасть очень сильно, если вы будете "буксовать" на каждой мелкой проблемлеме.

V. Ныряйт документацию к ЯП и платформе разработки - чем скорее тем лу лучше!

imageg

Как только вы почувствуете некоторую самодостаточность в ЯП и независимость от учебников и "hello world" гайдов, документация будет вашим хорошим другом. В общем документация отлично поможет вам выбраться из той самой "ловушки туториалов" - проблемы #1. Кстати, очень часто есть "официальная" документация а также другие источники вроде учебников, подробных справочников от вашей платформы или среды разработки или же просто некая неофициальная документация. Посмотрите несколько разных форматов и выберите тот, который вам кажется наиболее полезным и понятным. Совершенно не обязательно привязываться к официальной документации, и единственное её преимущество может быть в том, что она обычно обновлена до самой последней, акутальной версии ЯП. Однако, фундаментальные вещи редко меняются в языках и вы совершенно спокойно можете пользоваться чуть-чуть устаревшей, но более понятной документацией (или, к примеру, вы можете обратиться к документации, переведенной на ваш родной язык). В конце коцнов, даже если документация изначально вам покажется неудобной, возможно со временем изучения языка вы измените своё мнение или же просто привыкните к формату, подготовленному автораорами.

VI. Любитеше дело!

image.png

Да-да, если вам не нравится то, чем вы занимаетесь, возможно вам стоит здесь остановится. Попробуйте найти другой ЯП, который вам понравится больше, или, возможно, кодинг не для вас (хотя, признаюсь, я лично (@sxiii) считаю что базовые знания в кодинге полезны для 100% людей). В конце концов, языков программирования более 1000 - и есть даже необычные графические или музыкальные - неужели даже среди них вы не найдете ничего интересного для себя? Не верю! Так же, если вы учите какой-то язык "чисто ради денег", то, пожалуй, вам стоит всё-таки найти язык, который вам реально понравится, или остановиться с этим квестом.
Конечно, бывают такие разработчики, которые работают "ради денег", и они не кодят потому, что им нравится решать необычные проблемы, разгадывать загадки или же создавать свои собственные вещи. Но это очень грустный кейс - не будьте такими! Найдите язык, к которму вам самим захочется возвращаться снова и снова. Вам должен самим нравится тот факт, что вы можете просто взять какую-то идею из своей головы, напечатать какие-то загадочные цветные слова на чёрном фоне, и затем произойдёт какое-то волшебство (и всё заглючит ;). Получайте удовольствие от процесса, или для вас кодинг будет не наградой, а наказанием, и вы не захотите возвращаться к нему без крайней необходимости. Конечно же, ваш путь будет не лёгкий, вы будете местами "застревать", искать решения очевидных проблем, но - это абсолютно нормально! Если у вас достаточно вдохновения и мотивации, и вам нравится то, что вы начали, у вас обязательно всё получится, и вы будете воспринимать любую проблему как вызов (challenge accepted!) и реально стремиться её решить. Если же вам не нравится определенный язык (или даже кодинг в целом), практически любая проблема - камешек на вашем пути - может "скинуть" вас с пути и уничтожить вашу мотивацию. На самом деле, спойлер - большинство "камешков" на пути никуда не денется - вы просто научитесь заранее их обходить или на них не попадаться... Или не научитесь ;) Кроме того, технологии постоянно развиваются и меняются, ЯП эволюционируют... Вам понадобиться достаточно мотивации для того, чтобы изучать всё это, обновлять свои знания, и следовать за актуальными трендами. Так что если вам не нравится процесс обучения, решения проблем, создания новых объектов, - вам придётся очень-очень трудно на вашем пути. Поэтому: реально вам нужно любить то, что вы делаелаете!

VII. Со вреем станет проще!

image.png

Вначале вам может показаться просто фантастически огромным океан знаний и возможностей языка. Вам может казаться, что это никогда не изучить на достаточном уровне, не освоить... Но! В процессе роста вашей карьеры и знаний, например, работая на фрилансе или даже с обычными компаниями, вы будете постоянно создавать новые приложения и проекты. А когда вы их создаете, у вас на винчестере будет накапливаться кодовая база "старых" проектов. Вы всегда сможете к ней обратиться или даже просто скачать снова проект с гитхаба и взять от него какую-то часть (или построить на его основе новый проект, или переписать его с нуля, и т. д. - нужное подчеркнуть ;). Это сэкономит время и силы, вы также (скорее всего) сможете обнаружить конструктивные проблемы и ошибки в вашем более старом коде. Так или иначе, это будет ускорять и упрощать для вас разработку в будущем. Примерно так и работают системы управления версиями и крупные проекты от сообщества, вы можете ощутить эффект таких инструментов, даже работая с самим собой, а точнее со старой версией кода, который вы написали когда-то. Быстро сможете обновить и улучшить его. Таким образом, вы "новый" станете ментором сами для себя "старого", из прошлого. Можно также представить себе это, как ящик с инструментами, которые вы давно купили (или сделали сами). Доставая такой ящик, вы повышаете эффективность своей работы, быстро найдете нужный инструмент, доработаете его, сделаете ещё лучше, и скорее всего очень быстро сможете использовать в продакшене. Со временем станет пропроще!

VIII. Терпен старание. Планомерное изучение!

image.png

Множество людей часто говорят: "я хочу стать разработчиком на языке XYZ так быстро, как только возможно!". Это звучит для меня как что-то вроде: "я не хочу ничего учить, но хочу зарабатывать уже сегодня кучу денег, и без усилий", - прямо серия "любимые заявления МЛМщиков". Обратитесь к концепции "утром деньги - вечером стулья", только временной разрыв между первым и вторым может быть целые месяцы или даже годы. Поймите, как и в любой десциплине, чтобы стать профессионалом на каком-то уровне, нужно время и усилия! Конечно же, всё зависит от вашей усидчивости, терпения, внимания и времени, которое вы готовы уделять вашему обучению и практике. Но невозможно стать профессионалом за один день. Будъте объективны в оценке своих сил и возможностей, но не стоит и недооценивать себя (см. пункт 7!). В общем, кодинг - это не спринт. Это марафон... Это очень, очень длительное путешествие (которое, по сути, не заканчивается никогда!). Если вы попытаетесь придти к конечной точке в режиме спринта, то все вещи, что я перечислил выше будут регулярно вас "кусать за задницу" ;). И не стоит пытаться сравнивать себя с другими людьми, у вас собственный темп обучения, и это абсолютно нормально. Конечно, вам будут постоянно попадаться люди, решающие вашу многочасовую проблему, раздумывая над ней 1 секунду. Но наиболее вероятно, их количество потраченных часов на обучение и практику будет значительно превышать ваше... Так что зачем пытаться это сравнивать? У вас свой собственный путь. Просто продолжайте изучать ваш любимый ЯП и не наказывайте себя за профессионализм других. Вы и не заметите, как станете таким человеком, которому другие будут задавать свои глупые 1-секундные вопросы. И в длительной перспективе ваше терпение и старания обязательно окупятпятся.

IX. Знания комнити и совремременныме инструменты - ваши друзья!

imagng

Микроблоги, доски с вопросами и ответами, соцсети, чаты, форумы - ваши друзья! От Github до Twitter, от Reddit до форума вашего ЯП, и коненчо же Stackoverflow, Telegram, Quora, даже Steemit, Golos и Facebook - всё это может помочь вам сэкономить время, быстрее решить проблему, найти ответ, и т. д. Не пренебрегайте этими средствами, я бы даже сказал, обязательно пользуйтесь ими всеми время от времени. Очень важно, чтобы вы не боялись сразу запрыгивать в обсуждения, форумные ветки, дискашн-посты. Задавайте вопросы, просто общайтесь, зарегистрируйтесь везде в конце концов. Не тяните и не варитесь только в своём "маленьком уютном болоте" - помощь для необычного вопроса обязательно придёт из самого неожиданного источника!
!

X. Практский совет от @sxiii: пользуйтесь редакторами с подсветкой кода!

image.png

Если всяческие "свистелки" ещё можно обсуждать на предмет полезности при начальном обучении (напр., автоматическое закрытие скобок или дописывание параметров "за вас"), то вот специализированный редактор кода с подсветкой синтаксиса для вашего языка - это совершенно точно то, что вам необходимо с самых первых, ранних шагов. Изучите для начала ваш редактор или IDE - его базовые функции и возможности. Подсветка синтаксиса сэкономит вам множество нервов и времени при проверке своего же кода. Особенно данный совет актуален для не очень внимательных или легко отвлекающихся людей. Пользоваться специализированным софтом для кодинга - это не зазорно, это НОРМАЛЬНО и полезно.

Кстати, вы можете сделать из этой статьи чек-лист на 10 пунктов и отметить, какие вещи вы делали в соответсвии с рекомендациями, а какие - нарушили. Это будет отличным ориентиром и подсказкой как упростить себе дальнейшее изучение данного (или нового!) ЯП. Со временем вы поймете ценность данной статьи и сможете отмечать всё больше и больше флажков напротив пунктов, а в какой-то момент все 10 будут наконец-то отмечены зеленой "галочкой".

Удачи и стабильной супермотивации в изучении вашего языка программирования!

P.S. Статья написана на основе чудесного видео, расширена и дополнена мной.

С вами как всегда
@sxiii from OoOsLoO City!


Comments 5


@sxiii я не прогер, но мне тоже было весьма интересно!

16.04.2020 11:16
0

@ladyzarulem glad to know! =)

16.04.2020 12:00
0

@sxiii, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:

  • Голосов - 4 позицию - 31 Голосов
  • комментарии - 9 позицию - 2 комментарии
  • Потенциальных Выплаты - 1 позицию - 15,024 GBG
17.04.2020 06:13
0

@kedgaks и всем-всем-всем спасибо for your kind donations =))

17.04.2020 09:22
0