не получается решать задачи по программированию что делать

Не могу решать задачи по программированию! Помогите!

А с математикой у тебя как?
Решение задач в программировании ничем не отличается от решения математических задач. Сначала выполняется декомпозиция задачи (разбиение на простые действия), потом рекомпозиция этих действий в готовое решение. Либо твои мозги умеют это делать, либо у тебя ГСМ и ничего не поделаешь.

Кусок мыла имеет форму прямоугольного пяраллелепипеда. Мылом мылись 7 дней. При этом его длина, высота и ширина сократились вдвое. На сколько дней хватит остатка мыла?

1. Узнать остаток мыла.
2. Узнать расход мыла за 7 дней
3. Узнать расход за день (общий расход / 7 дней)
4. Поделить остаток на дневной расход

Надо просто этого «чёртика» из головы убрать, который тебе то и дело нашёптывает: «Не могу решать задачи по программированию!».

Умение решать задачи по программированию придёт не сразу, а после некоторого опыта. Чтобы решить какую-то задачу, необязательно изобретать свой алгоритм, большинство алгоритмов были разработаны ещё до появления программирования. Если я хочу приготовить салат оливье зачем мне изобретать рецепт для этого салата, если он уже есть? Я могу просто открыть книгу с рецептами и найти там рецепт салата оливье, согласно этому рецепту я приготовлю салат. Тоже самое и в программировании. Например, поставлена такая задача найти наибольший общий делитель для двух чисел, мне нужно написать код который бы вычислял из двух целых чисел НОД, есть несколько алгоритмов чтоб вычислить НОД, я просто захожу в Google и пишу запрос «алгоритмы нахождения НОД» и первым в списке попадается алгоритм Евклида, захожу на сайт и изучаю реализацию алгоритма, и на основе этого начинаю писать код. Можно также найти готовый пример с кодом, но прежде чем смотреть готовый пример, надо попробовать самому написать код, если не можешь, в Google ищешь готовые примеры и изучаешь их, важно не просто скопировать и вставить, а именно изучить код и понять что делает каждая строчка кода. Вообщем изучай не просто язык программирования, а само программирование. Есть учебники по программированию где обучают именно программированию, а есть учебники с конкретным языком программирования, различие между ними в том что в первом случае, в учебнике уделяется больше всего именно основам программирования и разным её приемам, там тоже используется язык программирования, но больше всего уделяется обучению программированию. Во втором случае в учебнике уделяется именно языку программирования, обычно в таких учебниках предполагается что читатель уже знаком с программированием, но хочет изучить язык программирования. Когда ты пытаешься изучать программирование, купив книгу по конкретному языку ты по сути изучаешь сам язык а не программирование, там программирование ток отчасти. С++ сложный язык для первого обучения, лучше начать с чистого C хотя он тоже сложный, но если постараться то его можно изучить, C является структурным языком программирования, языки вышедшее после него такие как C++, Java, C#, PHP унаследовали синтаксис от чистого C так что изучив C ты не теряешь ничего, изучив C можно изучить и др языки вышедшее после него.

Источник

5 способов быстро победить ступор программиста

065503fb49aa42dd83c72f920e680eac

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

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

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

Давайте рассмотрим несколько наиболее распространенных причин кризисов программиста, и разберем, как с ними бороться.

Первопричина №1: Беспомощность

Первый крупный источник кризиса, особенно у новичков, — беспомощность. Это то самое ощущение перегрузки, которое заставляет вас «зависать» и сбегать от своих проблем, часами сидя на Netflix или бродя по Reddit.

Саму беспомощность можно разделить на две подпроблемы: недостаток знаний и трудности с управлением задачами.

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

С чего начать? Да, положение не из легких, и не нужно обладать особой фантазией, чтобы понять, что такая ситуация может привести к исчезновению энтузиазма у программиста.

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

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

Если же книги — не ваш конек, можете ознакомиться с несколькими курсами для программистов Udemy. Смысл в том, что после изучения максимального количества материала процесс программирования уже не будет казаться столь сложным.

Первопричина №2: Страх перед неудачей

Страх перед неудачей косвенно связан с идеей «перегруженности». Он способен влиять как на новичков, так и на бывалых специалистов. И, хотя поражает он не каждого, но страдают от него многие.

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

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

«Я никогда с этим не сталкивался, — говорил консультант по программному ПО и специалист по XML Билл Шиндлер. — Я не знаю, почему мы позволяем людям использовать такие глупые отмазки, как творческий кризис/ступор программиста… Единственное лекарство от кризиса программиста — начать программировать что-то, что угодно — точно также, как единственное средство против писательского ступора — начать писать».

«Мне нравится такая аналогия для медитации: дефрагментация жесткого диска, очистка кэша и удаление временных файлов», — пишет один из посетителей Slashdot.

Многие на собственном опыте доказали эффективность медитации для снижения уровня тревожности и «освежения» головы. Мы рекомендуем ознакомиться с этими бесплатными медитативными инструментами, они помогут вам начать. А вот такие приложения, успокаивающие ваш разум, способны творить чудеса.

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

Первопричина №3: Бесцельность

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

Если мы заглянем в теорию мотивации, то обнаружим, что у нее есть 2 формы: внутренняя и внешняя.

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

В любой момент вы обычно действуете под влиянием множества факторов, являющихся смесью как внутренних, так и внешних стимулов. Но если вашим движением управляет только внешняя мотивация, то вы можете начать задаваться вопросом: «А что я вообще здесь делаю?»

В такой ситуации у вас есть 2 варианта. Вы можете либо найти внутренний стимул для своих текущих проектов, либо отыскать другую идею, способную вас по-настоящему увлечь.

Внутренняя мотивация состоит из мечты и цели. Заинтересованы ли лично вы в результатах своей деятельности? Согласны ли вы с целями и убеждениями своей компании? Есть ли у вас ощущение, что часть выполняемой работы принадлежит вам?

Если нет, то пора задуматься, куда вы могли бы себя «инвестировать». Ищите пути к созданию собственного проекта, даже на паях с кем-то. В худшем случае — если вы просто не можете отыскать внутренние стимулы — возможно, самое время сменить условия на более удачные.

Первопричина №4: Скука

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

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

Решение в том, чтобы найти способ снова бросить себе вызов.

Работая на компанию, вы можете по доброй воле взять на себя больше обязанностей. Почему бы, вместо того чтобы просто «вылавливать» баги и устанавливать обычные утилиты, не попросить об изменении задачи или о переводе в другую команду? Этот вариант не всегда подходит, но попытаться все равно стоит.

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

«Я рекомендую программистам иметь 2—3 параллельных активных задания, над которыми он(а) может работать. Оказавшись в тупике, полезно переключиться и на какое-то время заняться чем-то другим, а потом вернуться к проблеме и взглянуть на нее с иной точки зрения»

Мало есть способов, столь же эффективно избавляющих от скуки, как смена деятельности, и программирование — не исключение. Иногда вам просто нужно что-то новенькое.

Первопричина №5: Выгорание

Если ни одна из перечисленных выше причин не подходит, возможно, вы просто переработали и выгорели, и даже находитесь на грани трудоголизма. Среди его признаков — тревожность, страх перед непродуктивностью, пренебрежение здоровьем ради работы.

Выгорание — психологический термин, подразумевающий долговременную усталость и снижение интереса к работе. Считается, что выгорание — это результат хронического профессионального стресса (например, перегрузки).

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

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

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

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

Как ВЫ боретесь с кризисом программиста?

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

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

Автор перевода — Давиденко Вячеслав, основатель компании TESTutor.

Источник

Что делать если не получается писать код имея нужные знания?

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

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

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

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

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

Потому что как мне кажется, если ты знаешь все нужные темы для решения той или иной задачи на столь низком уровне, ты должен уметь ее решать.

Вот к примеру задание:

Тут я понимаю что используются массивы, объекты, вспомогательная переменная, цикл for. of, if, функция, это все я понимал еще до того как увидел решение задачи. Но при этом я сидел и не мог решить задачу час и в голову не приходило просто ничего, я сделал базовую запись, то есть создал объект который нужно создать по заданию, создал массив и на этом все. Зато когда я увидел решение, мне стало так стыдно что я не смог решить, потому что и ответ и самое задание мне показались до боли легкими и так всегда и со всем. Хотя все нужные знания для решения у меня были

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

Источник

Думай как программист. Урок по решению задач

image loader

Если вы интересуетесь программированием, то возможно слышали фразу:

«Каждый должен учиться программированию, потому что оно учит думать.»

Наверное вы тоже задавались вопросом, что значит думать как программист?

По сути, речь идет о более эффективном способе решения задач.

Данный пост ставит целью научить вас этому.

Прочтя его, вы более точно поймете, что нужно делать, чтоб находить лучшие решения.

Почему это важно?

Решение задач — это базовый навык.

Мы постоянно решаем задачи. Большие и маленькие. Как мы это делаем? Иногда хорошо… если повезет.

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

«Большинство работодателей считает более важным навык решения задач.

Умение решать задачи практически единогласно является самой важной способностью, которую ищут работодатели… Более важной, чем знание языков программирования, отладки и дизайна системы.

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

Системный подход

Чтобы найти правильный подход, я последовал советам из книги Тима Феррисса об обучении «The 4-Hour Chef».

Это привело меня к интервью с двумя действительно впечатляющими людьми: C. Jordan Ball (занимает 1-е или 2-е место из 65 000 пользователей Coderbyte) и V. Anton Spraul (автор книги «Думай как программист. Креативный подход к созданию кода.»).

Я задал им одинаковые вопросы, и угадайте что? Их ответы были очень похожими!

Скоро вы тоже их узнаете.

Примечание: это не значит, что они все делают одинаково. Они разные люди, и вы отличаетесь от них. Но если начинать с правильных базовых принципов, то результат получится намного лучше и намного быстрее.

«Самая серьезная ошибка, которую я вижу у молодых программистов — это сосредоточеность на изучении синтаксиса, вместо изучения того, как решать задачи.»

Итак, что делать, когда вы сталкнетесь с новой задачей?

1. Понимание

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

Как узнать, что вы поняли суть задачи? Попытайтесь объяснить её простым языком.

Вспомните случай, когда вы зациклились на задаче и начали объяснять её себе. В этот момент проявляются логические ошибки, которые вы не видели раньше.

Большинству программистов знакомо это чувство.

Вот почему вы должны описать свою задачу, нарисовать диаграмму или рассказать кому-то об этом (некоторые используют резиновую уточку).

“Если вы не можете объяснить что-то простым языком, то вы не понимаете этого.”

2. Планирование

Не начинайте решать задачу без плана, надеясь не запутаться в ней. Планируйте свое решение!

В программировании не надо «идти напролом». Дайте вашему мозгу время для анализа и обработки информации.

Чтобы получить хороший план, ответьте себе на простой вопрос:

«Подав на вход X, какие шаги нужно сделать, чтоб получить Y на выходе?»

Примечание: у программистов для этого есть отличный инструмент. Комментарии!

3. Декомпозиция

Это самый важный шаг. Будьте внимательны!

Не пытайтесь решить одну большую задачу.

Вместо этого разделите её на подзадачи. Решить их будет гораздо проще.

Затем решайте подзадачи, начиная с самых простых. Когда задача кажется простой, это значит, что вы знаете ответ (или близки к нему).

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

Соединение всех маленьких задач даст вам решение исходной.
Поздравляем!

Этот метод является краеугольным камнем решения задач. Запомните это (перечитайте этот шаг, если нужно).

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

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

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

Уменьшайте задачу пока не поймете как её решить. Запишите решение. Затем разворачивайте задачу до момента, пока не вернетесь к начальному вопросу.

4. Застряли?

Сейчас вы вероятно сидите и думаете: «Эй, это все круто, но что если я не смогу решить эту задачу?».

Прежде всего сделайте глубокий вдох. Не волнуйтесь. Это происходит со всеми!

Разница лишь в том, что лучшие программисты фиксили баги и решали задачи с интересом, а не с раздражением.

На самом деле, вот три вещи, которые нужно попробовать сделать, когда сталкиваетесь со сложностями:

«Искуство отладки заключается в выяснении разницы того, что вы написали в программе, и того, что вы хотели написать»

«Иногда мы так сильно углубляемся в детали, что не учитываем общие принципы, с помощью которых можно решить задачу на более высоком уровне. [. ]

Классическим примером этого, конечно же, является суммирование длинного списка последовательных целых чисел 1 + 2 + 3 +… + n, который молодой Гаусс легко посчитал по формуле n (n + 1) / 2, избежав проблем, связанных с увеличением количества элементов»

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

Практика

Не надейтесь стать профессионалом через неделю. Для того, чтоб хорошо решать задачи, нужно решить много задач!

Практика. Практика. И еще раз практика. Только со временем вы сможете сказать: «Эта задача может быть легко решена с помощью ».

Как тренироваться? Есть интеренсые варианты!

Шахматные головоломки, математические задачи, судоку, го, монополия, видео игры и т.д.

На самом деле, общая практика среди успешных людей — это их привычка «решать микрозадачи». Например, Питер Тиль играет в шахматы, а Илон Маск играет в видеоигры.

Байрон Ривз сказал: «Если вы хотите посмотреть, как могут выглядить руководители бизнеса через три-пять лет, посмотрите в онлайн-играх».

Быстрая перемотка вперед. Илон Маск, Рид Хоффман, Марк Цукерберг и многие другие говорят, что игры были основополагающими для их успеха в создании своих компаний.

Значит ли это, что вы должны только играть в игры? Конечно нет.

Но в чем суть большинства игр? Правильно, в решении задач!

Так что же должно быть в практических занятиях. Что-то, что позволит вам решать много микрозадач (и в идеале это вам нравится).

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

Как я уже сказал, все задачи имеют сходные модели решения.

Вывод

Теперь вы знаете, что значит «думать как программист».

Вы также знаете, что решение задач — невероятный (базовый) навык, который надо развивать.

Обратите внимание, теперь вы также знаете, как практиковать свои навыки решения задач!

Наконец, я хочу, чтобы вы столкнулись с множеством задач.

«Когда вы думаете, что успешно преодолели одно препятствие, появляется другое. Но именно это делает жизнь интересной. [. ]

Жизнь — это процесс преодоления препятствий — укреплений, через которые мы должны прорваться.

С каждым разом вы узнаете что-то новое.

С каждым разом вы будете развивать силу, мудрость и перспективы.

С каждым разом будет все меньше конкуренов. И в конце останется только ваша улучшеная версия.»

Теперь идите решать задачи!

И пусть вам сопутствует удача!

Особая благодарность C. Jordan Ball и V. Anton Spraul. За полезные совет которые они дали.

Кроме того, я не мог бы преобрести своих знаний в области программирования так быстро без Lambda School. Не могу не поблагодарить и не рекомендовать их.

Источник

Как учиться программировать: 6 вещей, которые я понял, учась на Хекслете

blog promo e872632493a971b3ba0722ccffaec76d1df333a297017200dadbff257e5959c1

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

Большинство этих вещей до меня дошли именно в процессе обучения и общения с ребятами-программистами на Хекслете. Для кого-то это явно будут откровения Капитана Очевидность, но, возможно, кому-то оно и принесет пользу.

Какой язык программирования изучать первым? Неважно!

Не нужно тратить сильно много времени на выбор и мучаться этим. Берите Ruby, Python, JavaScript, PHP, Java, Lisp, да хоть паскаль — не ошибетесь. Для начала вам все равно нужно будет освоить базовые вещи, такие как циклы, условия, переменные, функции, объекты, рекурсию и т.п. Я когда-то в школе немного программировал на всяких бейсиках и C++, но к тому времени, как решил стать программистом, все это успешно забыл.

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

Новички так серьезно подходят к вопросу «Какой же язык программирования выбрать», будто им предстоит подписать договор с дьяволом, и всю жизнь писать только на этом единожды выбранном языке. Лично для меня просветлением стало, когда я увидел профили высокооплачиваемых программистов на бирже Upwork, почему-то очень во многих из них было написано примерно следующее — могу Django, могу Rails, а еще Meteor и Angular, да и Spring тоже. И Joomla само собой.

Потом я спрашивал некоторых знакомых (и малознакомых) программистов об их карьере, и увидел некий паттерн, которого раньше не понимал. Человек может, например, год работать с PHP, потом уйти на Java, потом плюнуть и выучить руби, стать RoR разработчиком, и в итоге заняться Node.js или Clojure. Любой нормальный программист знает несколько языков хорошо и десяток поверхностно. Поэтому не ломайте голову, не пытайтесь выбрать Самый Лучший Язык и строчить для этого тысяча первый вопрос на тостере. Просто берите любой язык и прочитайте по нему хотя бы одну книгу/пройдите курс. Попытки выбрать Самый Лучший Фреймворк из той же серии.

Про первую работу

Очень многие программисты начинают свою работу с весьма непрестижных компаний и крошечных зарплат. И это нормально. Но это сложно принять, особенно тем, кто решает «войти в айти» уже не в юном возрасте, имея семью и детей. Мифам об огромных зарплатах программистов зачастую способствуют школы программирования, которым нужно продавать свои курсы и в итоге на своих лендингах они крупным шрифтом пишут какие-то заоблачные цифры, вроде «средняя зарплата JavaScript программиста 150 000 рублей», при этом часто забывают сказать, что такую зарплату получают люди с опытом в несколько лет (или даже десяток лет), которые могут решать реальные сложные задачи, а вам после их курсов на старте светит тысяч 30 на испытательный срок, и это в Москве. А то и вообще попросят бесплатно поработать. За опыт и еду. Не нужно бояться идти на непрестижную и малооплачиваемую работу, потому что как только вы официально начнете работать программистом, даже за 20 тысяч в месяц, ваша привлекательность в глазах других работодателей и HRов сильно вырастет. На старте работу никто не мешает менять хоть каждые 3-6 месяцев, каждый раз уходя на бОльшую зарплату и более интересные задачи.

Но я, конечно же, не говорю, что нужно идти работать за еду, может конкретно вы найдете первую работу и за 100 000 в месяц. Просто нужно понять, что карьера тоже требует немалых усилий, и необходимо активно изучать рынок труда, время от времени общаться с рекрутерами и ходить на собеседования, чтобы адекватно себя оценивать в каждый момент времени. А первая работа — это не навсегда.

Учиться программировать сложно

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

Лично я долго (слишком долго) учился на всяких курсах из серии «посмотри на меня, делай как я». Когда начал учиться на Хекслете, у меня от некоторых заданий просто мозг кипел, да и сейчас кипит. Одно задание я пытался сделать 3 дня. Но в итоге я прокачался, и теперь могу решать более сложные задания, чем раньше. Мне кажется, именно в этом должна быть цель хороших курсов программирования. Не в том, чтобы натренировать вашу память на запоминание 1000 функций из какой-то библиотеки. А в том, чтобы заставить мозг напрягаться и с каждым днем решать все более сложные задачи.

Про code kata

На определенном этапе (почти сразу после изучения основного синтаксиса одного из языков программирования), нужно набить руку в решении простых (хотя бы простых, для начала), алгоритмических задачек. Есть десятки разных сервисов, где это можно делать — codewars.com, exercism.io, hackerrank.com и т.п. Проскочить этот этап не получится. Если вы зашли на codewars и просто не понимаете, что от вас хотят, и как решать даже самые простые задачи первых уровней, срочно вливайтесь в какое-то сообщество, где есть программисты и единомышленники, изучающие программирование, и где можно будет задавать вопросы и получать помощь. Одно из таких мест — слак чат Хекслета. Если вы не научитесь решать эти простые задания, вероятность резиста того, что вы сможете решать какие-то реальные рабочие задачи, крайне мала.

Не нужно зубрить названия функций

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

Кстати, это очень полезная штука и для изучения иностранных языков, я лично просто ненавижу делать какие-то списки, карточки и зубрить слова. Особенно у меня вызывают желание ругаться матом наборы слов, вырванные из контекста, типа «100 прилагательных на тему Погода». Это просто нереально запомнить, а даже если и зазубрил сегодня, через месяц 80 процентов забудешь. Гораздо эффективнее просто читать/смотреть интересный тебе контент на языке и искать незнакомые слова в словаре каждый раз, таким образом через какое-то время самые употребительные слова запоминаются естественным образом.

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

Начните изучать разработку с бесплатного курса «Основы современной вёрстки». Вы научитесь создавать статические веб-страницы, стилизовать элементы, использовать редакторы кода с полезными расширениями. В конце курса вы опубликуете свой первый сайт на GitHub Pages.

Тупить — это нормально. (с) Елена Малышева

То есть люди, которые занимались программированием много лет, иногда тоже не могут самостоятельно разобраться в какой-то новой фиче, и совершенно не стесняются просить совета и помощи. Однако, с вероятностью 99% предварительно они пытались сами решить эту проблему, обратились к Google и Stackoverflow, но безуспешно.

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

Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях

Источник

Adblock
detector