Автор оригинала: John Selawsky.
Похоже ли программирование на стрессовую работу для вас? Люди считают, что этого не должно быть, так как, похоже, все, что делают программисты, – это сидят перед экраном и печатают. Нет ситуаций, связанных с жизнью или смертью, нет огромной ответственности по сравнению с медициной, банковским делом или бухгалтерией. Технически говоря, разработка программного обеспечения должна быть одной из самых спокойных работ в мире.
И все же, оказывается, тревога за кодирование реальна. Когда я разговариваю со своими студентами-программистами, выясняется, что многие не могут сосредоточиться, работая более одного часа, и их поглощает стресс от поиска работы в области технологий.
Вот почему я хотел поделиться некоторыми советами, которые помогут учащимся, изучающим программирование, снять стресс с их образования. Их применение придаст вам больше уверенности и поможет наслаждаться каждым часом, проведенным за учебой.
Почему Учащиеся, Изучающие Программирование, Испытывают Стресс?
Для начала давайте подробнее рассмотрим основные причины стресса среди технарей. Чтобы не утомлять вас длинными списками, я сузил список причин, по которым программисты не чувствуют себя спокойно, до трех:
- Синдром самозванца. Поскольку средняя зарплата программиста довольно высока (86 тысяч долларов в год,/| согласно шкале оплаты ), разработчики часто думают, что их навыки не стоят зарплаты. Работа в командах также увеличивает нагрузку — вы всегда находитесь в контакте со своими коллегами, которые кажутся более проницательными, более сведущими в технологиях, ориентированными на общую картину или внимательными к деталям. Все вышесказанное заставляет разработчиков программного обеспечения недооценивать ценность и начинать подчеркивать, что в один прекрасный день другие могут назвать их претендентами. Не будучи “настоящим программистом”. Если вы достаточно долго интересовались технологиями, вам не чужд архетип “настоящего программиста”. Если вы достаточно долго интересовались технологиями, вам не чужд архетип “настоящего программиста”. Видеть в программистах бездельников стало настолько распространенным явлением, что начинающие изучать программирование начали задаваться вопросом: “Я не могу писать код в течение 8 часов подряд-может быть, разработка программного обеспечения не для меня?”. Правда в том, что работа по 16 часов в день крайне контрпродуктивна-
- согласно исследованию Стэнфорда , сотрудники с 40 — часовой рабочей неделей работают в три раза продуктивнее, чем те, кто работает 60 часов в день. Начинаю слишком поздно. Хотя, на мой взгляд, кодирование не имеет возрастных ограничений, пока вы стремитесь изучать и осваивать новые технологии, некоторые из моих студентов, похоже, так не думают. Действительно,
- истории о 14-летних инженерах ИИ могут запугать и обескуражить кого угодно. Учащиеся в возрасте 30+лет, изучающие программирование, чувствуют угрозу со стороны молодых вундеркиндов в области программирования, начинают недооценивать свои навыки и не рискуют просить более высокую зарплату на работе.
Если вы тоже боретесь с этими проблемами (а мы все были там по крайней мере один раз), хорошая новость в том, что всегда есть активные способы справиться с тревогой за кодирование и повысить эффективность вашего обучения.
4 Совета, как научиться программировать без стресса
Как вы можете сделать обучение кодированию приятным и последовательным? Как сделать так, чтобы успехи и неудачи ваших сверстников не вызывали у вас зависти или уныния? Это советы, которые я реализовал за годы изучения языков программирования и работы с начинающими Java-программистами.
Совет № 1. Выберите основной язык программирования
Лучше ли овладеть одним языком программирования или быть программистом среднего уровня во многих-это распространенный спор при разработке программного обеспечения. Лично я не возражаю против изучения нескольких языков. Однако я считаю, что у каждого программиста должна быть одна технология, которую он знает как свои пять пальцев.
Подумайте о языках, на которых мы говорим, — есть много людей, которые знают два, три или пять. Однако большинство из нас наиболее хорошо владеют одним (в лучшем случае двумя) языком — тем, на котором мы думаем и разговариваем с большинством людей в нашем социальном кругу. Программирование в этом отношении аналогично — вы можете быть продвинуты во многих языках, — однако убедитесь, что у вас есть один язык, на котором вы “думаете” как разработчик.
Какой язык должен выучить студент-программист в первую очередь? Лично я рекомендую учитывать количество учебных ресурсов, рынок труда и универсальность технологии. Я предлагаю учащимся, изучающим программирование, начать свой путь разработки программного обеспечения с Java — вот почему.
Java лидирует по количеству размещений вакансий
По данным Indeed, крупнейшего агрегатора вакансий в мире, Java, Python и Javascript являются ведущими языками программирования по количеству вакансий.
Java хорошо преподается
Учащиеся, изучающие программирование, часто испытывают стресс и подавленность, потому что они не доверяют ресурсам, которые они находят в Интернете. Чтобы убедиться, что вы изучаете язык программирования в соответствии с самыми высокими отраслевыми стандартами, полезно ознакомиться с лучшими университетами и учебными практиками.
Если вы хотите использовать академические материалы для обучения, переход на Java-разумный выбор, так как 10 лучших ученых степеней CS в стране выбирают язык для вводного курса (Python лидирует небольшими числами, с 13 доступными программами).
Разработчикам Java хорошо платят
И последнее, но не менее важное: отсутствие уверенности в том, что ваша работа хорошо оплачивается, вызывает стресс. Вот почему крайне важно обеспечить, чтобы работа на изучаемом вами языке программирования была финансово прибыльной. Что касается Java, то это одна из самых высокооплачиваемых областей изучения компьютерных наук. Согласно PayScale , средний разработчик Java получает 74 000 долларов в год.
Совет № 2. Планируйте свое образование
Начинающим программистам свойственно сразу погружаться в изучение языка программирования, не проводя особых исследований его фундаментальных концепций. Они слишком полагаются на весь учебный контент, который они находят в Интернете, — чаще всего это прямая дорога к беспорядку. Большинство новичков начинают слишком рано вмешиваться в сложные концепции и впадают в уныние из-за сложности языка и отсутствия прогресса.
Вот почему составление графика обучения имеет решающее значение, если вы хотите стать успешным программистом за максимально короткий промежуток времени.
Как создать эффективную учебную программу, которой вы действительно будете придерживаться?
Для начала запишите понятия, из которых состоит язык, который вы хотите выучить, в порядке возрастания сложности. Для Java список будет выглядеть следующим образом:
- Базовый синтаксис Java
- Основные концепции ООП
- Коллекции и структуры данных
- Базы данных
- Параллелизм и многопоточность
- JVM и управление памятью
- Знание экосистемы Java
Разбейте каждую из этих концепций на более мелкие модули — это будут темы для повседневного обучения. Вот как выглядит разбивка синтаксиса Java:
Концепции синтаксиса Java :
- Переменные
- Типы данных
- Операторы If-else
- Петли
- Непрерывные и прерывные заявления
Поскольку это не пост, посвященный Java, я не буду излагать здесь всю учебную программу. Тем не менее, в Интернете есть множество учебных дорожных карт — обязательно ознакомьтесь с ними.
Установите четкие сроки для каждого из этих модулей — таким образом, у вас будет четкое представление о том, сколько времени вам потребуется для завершения части вашей учебной программы.
Будьте щедры в своих оценках — концепция языка программирования может оказаться более сложной, чем вы думаете. Лучше иметь накладные расходы, чем начинать тренироваться в стрессе часами.
Совет № 3. Соберите нужные ресурсы
Необходимость применять знания, полученные при обучении в реальных условиях, является основной причиной беспокойства среди студентов-разработчиков. Пользователь форума Freecodecamp прекрасно суммировал это беспокойство:
” Недавно я понял, что всякий раз, когда я пишу код, я начинаю бояться, что однажды у меня будут брать интервью другие профессиональные программисты”.
Если вы тоже боитесь, что у вас нет того, что нужно для успешного прохождения собеседований, в этом могут быть виноваты ресурсы, которые вы используете для обучения. Хотя книги и видеокурсы важны для понимания сути языка, я уверен, что программисты должны уделять огромное внимание практике во время обучения.
Разговаривая с начинающими разработчиками Java, я обычно предлагаю следующий стек ресурсов.
Книги и учебные пособия — 20% всех ресурсов, в основном для справочных материалов
По статистике, большинство разработчиков не читают книг. Я понимаю почему — большинство из них скучны, устарели и недостаточно хорошо держатся в голове. Однако, если я застрял при работе над проектом, я рад узнать, на какие книги, ресурсы документации и учебные пособия следует ссылаться при поиске решения моей проблемы. На мой взгляд, вам не следует тщательно читать книги подряд, но просмотр пары дает вам прочную теоретическую основу языка.
Вот мои любимые книги и учебные пособия по Java:
Книги :
- Глава Первая Java — увлекательное, удобное для начинающих чтение, которое дает вам быстрое понимание того, как используется язык и его базовая структура.
- Эффективная Java — единственная в своем роде книга для опытных программистов, которые хотят максимально использовать набор инструментов языка.
- Java Puzzlers — честное руководство по подводным камням и проблемам Java. Чтение этой книги сэкономит вам часы работы с угрозами после развертывания.
Учебные пособия :
- Вундеркинды Java — кода -хорошо структурированный список сообщений, связанных с Java, который легко использовать для ссылок при работе над новыми проектами.
- Учебные пособия Java Oracle — официальные учебные пособия Oracle являются справочными ресурсами большинства разработчиков (включая меня).
- Programming Creek — еще одна интуитивно понятная и простая в использовании учебная база данных по Java-эта определенно заслуживает того, чтобы быть в вашем списке избранных.
Онлайн — курсы- более глубокий взгляд на язык, сочетание теории и практики — 30% всех ресурсов
Видео онлайн-курсы следуют за мной в списке учебных ресурсов по разработке программного обеспечения. В отличие от книг, они более практичны и увлекательны. Лекторы часто представляют тематические исследования и делятся реальными языковыми приложениями. Помимо этого, существуют обучающие платформы, которые позволяют студентам связаться с преподавателями, чтобы задать вопросы.
Хотя онлайн-видеокурсы не дают вам достаточно места для практики, чтобы быть уверенным в своих навыках программирования, они, безусловно, являются надежным способом создать контекст для концепций, о которых вы читаете в книгах.
Вот мои любимые курсы Java :
- Объектно-ориентированное программирование на Java от Coursera
- Основы Java от Pluralsight
- Программирование На Java Для Начинающих от Udemy
Платформы, основанные на практике-50% всех ресурсов
В кодировании практика совершенствует. Вот почему решение реальных проблем так же важно, как изучение синтаксиса языка из книг и онлайн-курсов.
Я настоятельно рекомендую студентам не торопиться и исследовать практические игры и платформы, которые помогут вам стать лучше в любом языке программирования, который вы выбрали. Вот мои любимые приложения для Java:
- Codegym — мощная практическая платформа, позволяющая стать опытным Java – программистом. Существует более 1200 практических заданий в сочетании с короткими лекциями, которые помогут вам освежить теорию, лежащую в основе каждой проблемы. Codegym охватывает все аспекты языка — ядро Java, Коллекции, Многопоточность, Службы и JSP, даже обработку баз данных и SQL.
- HackerRank — простая в использовании и хорошо структурированная платформа с проблемами Java – практики. Если вы хотите сравнить себя с другими учащимися, изучающими программирование, это подходящее место, чтобы соревноваться друг с другом, выполняя небольшие задания. Есть задания разного уровня сложности — они помогут как начинающим, так и продвинутым разработчикам.
- Codewars -это ресурс для практики Java, управляемый сообществом, где разработчики создают проблемы и выполняют практические задачи друг для друга. Помимо Java, платформа поддерживает JS, C, C++ и многие другие языки.
Совет № 4. Присоединяйтесь к сообществам
Одна из фатальных ошибок, которые, как я видел, совершают студенты-разработчики, – это попытка самостоятельно справиться с трудностями программирования. Кодирование и так тяжело и одиноко, и, скорее всего, ваша семья будет изо всех сил пытаться понять ваши трудности с образованием.
Чтобы убедиться, что вы не усваиваете проблемы и не расстраиваетесь из-за незначительных неудач, обратитесь за помощью к коллегам. Лично я большой поклонник Reddit, Freedcodecamp и Stack Overflow, но вы должны найти то, что работает для вас.
Вот список сообществ программистов, которые следует проверить в качестве отправной точки:
Reddit :
- r/код вместе
- r/Информатика
- r/ежедневный программист
- r/compsci
- r/java
- r/learnpython
- r/машинное обучение
Другие платформы :
- Форум Freecodecamp
- Стековый поток
- GitHub
- Форум по программированию на PHP
- Форумы JavaScript
- Форумы JavaScript
Вывод
Если вы студент-программист, изо всех сил пытающийся справиться с тревогой за кодирование, помните, что вы не одиноки в этом. Хотя существуют различные способы справиться со стрессом при обучении, по моему опыту, наличие четкой цели и плана вашего обучения CS поможет вам подходить к каждому учебному дню со спокойным умом.
В качестве отправной точки выберите один язык, которым вы хотите овладеть, создайте подробную учебную программу, основанную на сроках. Найдите правильные ресурсы — книги, курсы и практические платформы — для продвижения вашего обучения. Не забывайте также общаться с другими разработчиками — вместе легче преодолевать трудности обучения программированию.
Впервые опубликовано на Levelup Отключен .
Оригинал: “https://www.codementor.io/@johnselawsky/keep-calm-and-start-coding-how-to-fight-coding-anxiety-18dvrf8wdw”