Основы программирования что нужно знать
Перейти к содержимому

Основы программирования что нужно знать

  • автор:

Семь вещей, которые нужно знать начинающему программисту

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

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

Загляните под капот

Знание языка программирования — основа разработки программного обеспечения. Но не менее важно понимать, что скрывается у языка под капотом.

Пит Балл, инженер поддержки в Acquia, сказал: «Многие языки абстрагированы от того, что происходит на уровне системы, и эта абстракция полезна, поскольку позволяет разработчикам быстрее разрабатывать. Но когда вы натыкаетесь на грабли, действительно неприятный баг, нужно понять, что же происходит внутри. Совершенно необходимо тогда уметь заглянуть внутрь процесса, посмотреть системные вызовы и понять, как кусок кода взаимодействует с остальной системой».

Точно так же говорит Роберт Дуглас, вице-президент отдела удовлетворенности клиентов Platform.sh: «Когда я начинал программировать, были вещи, которые я действительно не понимал. Три примера таких вещей — файловые системы, сеть и то, как данные хранятся в памяти. Это значит, что я не обязательно понимал цели некоторых программ, с которыми сталкивался».

Знайте инструменты командной строки

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

Ветеран с двадцатилетним опытом, пожелавший остаться анонимным, сказал: «Иногда вы оказываетесь перед машиной с ограниченным набором инструментов и задачей, которую надо сделать прямо сейчас. Знайте командную строку, как пять пальцев; инструменты, такие как find, comm, diff, vi/vim, sed, awk; умейте писать небольшие скрипты прямо в командной строке, чтобы найти файл, который надо подправить прямо сейчас, потому что продакшн сломан, а Джо, который полез своими ручонками не туда, — в отпуске на Фиджи».

Балл, использовавший инструменты Microsoft, а теперь перебирающийся на Linux, соглашается: «Я узнал о командной строке и утилитах *nix все, что возможно. Я могу вспомнить код, который писал год назад, и как я проводил дни или недели, работая над тем, что решается однострочником на grep+awk».

Дебаггер — ваш друг

Как разработчик, вы проведете кучу времени, отлавливая баги. Дейв Вэйрон, биотехнолог-программист в Novartis, выделяет преимущества дебаггера, несмотря на затраты времени на его освоение.
«Учитесь пользоваться дебаггером!», — говорит он. «Потратьте день-два на его настройку. Если вы не видите ожидаемого результата, просто отладьте его: установите точки останова и аккуратно продвигайтесь по коду, особенно по коду сторонних библиотек. Это лишит вас дней разочарования, более того: вы научитесь новому, просто читая чей-то код».

Научитесь писать тесты

Некоторые разработчики уверены в критической важности модульного тестирования, которое подразумевает написание небольших тестов, проверяющих, делает ли код то, что задумал разработчик. Среди этих людей — Ричард Хэндлофф, разработчик баз данных в Strategic Power Systems. Он пишет: «Думаю, что лучший совет, который я могу дать начинающему разработчику — научиться писать хорошие тесты как можно раньше».

Планируйте самообучение

С быстрым изменением технологий меняются системы, языки и инструменты, используемые программистами.

Адам Вульф, мобильный разработчик и основатель Milestone Made, предполагает, что новые разработчики должны быть готовы к изменениям и быть на гребне волны. «Прямо сейчас я хочу сказать, что вы должны быть готовы осваивать новый стек технологий примерно каждые четыре года. Хорошие базовые знания всегда будут актуальны, но инструменты и технологии, которые вы будете использовать каждый день, будут меняться не реже, чем с названной частотой».

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

Кооперируйтесь

Несмотря на то, что обычно разработчики работают обособленно, им приходится взаимодействовать с другими людьми. Бен Миллер, CTO Sinclair Digital Ventures, подчеркнул важность готовности к командной работе для вашей карьеры: «Большие проекты — это куча движущихся деталей, собранных вместе, и то, как они соединяются и разделяют проблемы, создаст невероятные инженерные сложности, если вы не будете осторожны», пишет он.
«Прежде чем браться за улучшение одного алгоритма, соберитесь с командой и убедитесь, что нет способа разделить проблему на всех, сделав ее проще. Разработка — командная игра!».

Подтверждая важность командных навыков, Вейрон говорит: «Если вы не можете понять самостоятельно, как работает этот интерфейс, попросите помощи. То, что вы считаете свою работу шедевром, не делает ее шедевром. Как в колледже, у других людей в комнате те же вопросы или вопросы, на которые только вы можете ответить. Разрабатывайте отношения с коллегами. Часто просто озвучивание проблемы вызывает озарение».

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

Разрабатывайте для себя вне работы

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

Перевел: Андрей Никифоров
___

Полезные материалы для начинающих разработчиков от образовательного IT-портала GeekBrains:
Запись вебинара «Все, что вы хотели знать о профессии программиста»
Бесплатный онлайн-курс для начинающих «Основы программирования»

  • обучение программированию
  • программирование для начинающих
  • программирование с нуля
  • основы программирования
  • курсы программирования
  • Блог компании GeekBrains
  • Программирование

Что нужно знать программисту? Чек-лист требований

Итак, вы твердо решили готовить ребенка к IT-карьере, вас интересуют, а каке же требования к программисту? Математика, алгоритмика и английский — только малая часть того, что придется освоить будущему айтишнику. Что ещё нужно обязательно знать, чтобы стать программистом?

Фундаментальная база

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

Математику

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

Логику

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

Алгоритмику и структуры данных

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

Базовые инструменты разработки

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

Английский

Без него не обойтись! Потому что все почти языки программирования используют английские слова. Знание языка поможет легче разобраться в коде, использовать библиотеки, проходить продвинутые курсы и общаться с коллегами из других стран. Но не только, чтобы дружить: зная язык, всегда можно найти ответы у более опытных специалистов.

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

знания программиста

Какими знаниями еще должен обладать программист?

«Человеческими». Это значит, что он понимает базовую психологию общения и готов к сотрудничеству. Речь идёт о развитии так называемых гибких навыков. В наше время мало быть просто хорошим специалистом. Необходимо работать как самостоятельно, так и в команде, уметь искать нужную информацию и разбираться в ней. Чтобы быть успешным программистом, нужно соответствовать строгим требованиям рынка, которые постоянно обновляются. Безусловно, спрос на IT-специалистов высокий, но по-настоящему успешные программисты даже не ищут работу. Как так? Хедхантеры гоняются за ними сами.

И им бы не удалось достичь высоких результатов, если бы они просто хорошо разбирались в своей сфере. Работа в IT, вопреки популярному мнению, мало похожа на добровольное заточение в серверной. Наоборот: специалисты постоянно поддерживают контакт, согласовывают действия и ищут компромисс. Без этого встанет работа любой компании! Поэтому обладать модными в наше время soft skills просто необходимо. Элементарные знания психологии, умение их применять и быть гибким — must have каждого программиста.

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

Практика и ещё раз практика

Можно обладать всеми фундаментальными знаниями, но зачем они нужны, если их не использовать? Будущий программист должен знать, как применять теорию на практике. Ещё лучше — пробовать разные направления, чтобы получать навыки в нескольких IT-профессиях и ещё глубже погружаться в информационные технологии. Эти знания не будут лишними: в IT есть специальности, которые предполагают совмещение нескольких профессий.

Одна из них — fullstack-разработчик. Этот универсальный профи способен и интерфейс сайта сверстать, и функционирование форм и кнопок запрограммировать, и сервер написать. Fullstack-разработчики могут работать с большим набором технологий и создавать веб-проекты в одиночку, одновременно выполняя задачи frontend-программиста и backend-разработчика.

Многофункциональные профи высоко ценятся на рынке и никогда не останутся без работы. Однако их путь начинался с малого — фундаментальной базы IT-знаний. А начать ее осваивать можно прямо сейчас! Помогите ребенку заложить прочный фундамент будущей профессии. Для этого зарегистрируйтесь на нашей платформе Informatics и выберите дату вступительного испытания. Мы проверим знания ребенка и поможем подобрать программу обучения.

Программирование с нуля: с чего начать и как выучить

Фото: Patricia de Melo Moreira / Bloomberg

Программирование — это процесс создания программ (программного обеспечения). Для этого программисты пишут исходный код на одном из языков программирования. Существует более 300 языков программирования, но для успешной карьеры можно выбирать из десяти самых популярных. Еще правильнее будет сначала определиться с областью, в которой вы собираетесь работать, и только потом приступать к выбору языка. Одним из лучших языков для начинающих является Python. Этот популярный язык общего назначения хорош лаконичностью и простотой синтаксиса, его активно используют в IT-компаниях России и мира. Другими популярными языками считаются Java и C. Они сложнее, особенно для новичков, но владение ими обеспечивает лучшее понимание того, что вы делаете и что происходит с вашей программой. Вместе с языком Pascal язык С обычно изучается в вузе на профильных факультетах. Использование других языков программирования зависит от цели деятельности. Например, в качестве серверных языков популярны php, Java, ruby. Из клиентских языков наиболее перспективен Java Script. Для разработки сложных высоконагруженных проектов требуется C++. На этом же языке пишутся игры. Еще одна перспективная сфера — разработка приложений для мобильных устройств. Тут используют Java, Objective-C, Swift. Любой опытный программист знает несколько языков, однако код на работе он пишет только на одном из них. Какой язык программирования учить прямо сейчас: 9 самых востребованных

Нужно ли программисту знать математику и английский?

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

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

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

Frontend-программист

Такой разработчик по определению стоит на «переднем крае» и отвечает за визуальную составляющую сайта: то, каким его видит посетитель. Frontend-разработчики следят за тем, чтобы все графические элементы исправно работали, контент отображался на всех устройствах, шрифты не «ползли», а картинки не загружались слишком долго. 1. Обучение HTML В первую очередь начинающий frontend-разработчик должен освоить HTML — язык гипертекстовой разметки. Это базовый инструмент, который позволяет вынести на страницу все основные элементы, будь то фотографии, таблицы или текст. 2. Обучение CSS Внешне написанная на HTML интернет-страница будет напоминать простейший текстовый документ. Чтобы «оживить» его, используется каскадная таблица стилей или CSS. Она меняет не структуру страницы, а ее внешний вид: шрифты, расположение элементов, тени и цвета. Другими словами, если HTML используется для описания логической структуры страницы, язык CSS отвечает за графические элементы и прописывается в отдельном файле. 3. Обучение JavaScript Наконец, чтобы элементы веб-сайта могли перемещаться и реагировать на действия пользователя, разработчик прописывает код на языке JavaScript. Он заметно сложнее первых двух, но результат стоит того: от скриптов зависит появление всплывающих окон или же перетаскивание элементов на странице (например, сортировка фото в соцсети). В отличие от CSS, код JavaScript встраивается в структуру HTML, поскольку влияет не на внешний вид элементов, а на их поведение на странице. Вчерашняя техника уже завтра: могут ли устареть языки программирования

Backend-программист

Красивая оболочка сайта не имеет смысла без начинки: видеоролики, гиперссылки и картинки должны быть связаны с сервером, базой данных, с другими интернет-сайтами. Программно-аппаратную работу сервиса берут на себя backend-разработчики. Они же отвечают за информационную безопасность (защиту от хакеров) и следят за нагрузкой на сервер (чтобы страница не «висла» из-за наплыва посетителей). 1. Обучение PHP Базовый инструмент backend-разработчика — язык программирования PHP. Он нужен, чтобы связать видимую пользователю страницу с сервером, где хранятся какие-либо данные. Например, чтобы не выкладывать на веб-сайт по одной фотографии при помощи HTML, можно запустить скрипт, автоматически подгружающий туда условную галерею, лежащую на сервере. Язык PHP настолько сильно упрощает работу по созданию сайта, что изучать его SkillBox рекомендует и frontend-разработчикам. 2. Обучение SQL Аббревиатура SQL расшифровывается как «структурированный язык запросов». В отличие с PHP, который нужен для связи сайта с сервером, языки SQL позволяют управлять уже самими базами данных. Сейчас существует множество подобных языков, самые распространенные из которых — это MySQL, MSSQL, PostgreSQL и прочие. Разработчики «полного цикла» в совершенстве владеют языками, необходимыми как для frontend-, так и для backend-программирования. Они являются универсальными специалистами, хотя, очевидно, глубина их погруженности в какую-то конкретно область веб-разработки уступает осведомленности узких специалистов.

А какие еще бывают программисты?

  • 1С-программист, в непосредственные задачи которого входит оптимизация готовой системы 1С и ее настройка непосредственно под каждое предприятие.
  • Инженер-программист, который чаще всего занят в сфере разработки программного обеспечения для автоматизации производства, он же обычно программирует бытовую технику.
  • Game Developer, который специализируется на создании компьютерных игр. Геймдевелоперы заняты в полном цикле жизни видеоигры: создание, тестирование, доработка, поддержка, обновления, модификация и т.д.
  • Android- и iOS-разработчики, которые занимаются созданием игр, программного обеспечения, интерфейсов и обновлений для устройств, созданных под брендом Apple, или Android-устройств.
  • Системный программист, в задачи которого кроме разработки программных модулей и их интеграции входит адаптация и модификация программных продуктов под конкретную систему, исходя из ее логики и задач. Он же может заниматься разработкой баз данных и их администрированием.
  • Передовым направлением в области программирования считается сфера Data Science. Она объединяет искусственный интеллект и данные, умение прогнозировать на основе статистических данных.

Куда пойти учиться на программиста?

Если есть возможность поступить в вуз, то лучше выбрать один из ведущих: МГУ, МИФИ, ВШЭ, СПБГУ, МФТИ, МГТУ им. Баумана, МАИ, ИТМО и т.д. Речь идет, естественно, о профильных факультетах. Выпускники этих университетов лидируют в рейтинге портала Superjob, составленного по критерию уровня стартовых зарплат программистов.

Фото:Jonathan Borba / Unsplash

Можно ли научиться программированию на онлайн-тренингах и курсах?

Можно. Начальные навыки программирования помогут приобрести такие популярные платформы, как Яндекс.Практикум, Сodecademy, Skillbox, GeekBrains, HTML Academy. После прохождения подобных курсов человеку становится легче понять, в сторону какого направления двигаться в профессиональном развитии.

Бесплатные курсы нередко открывают и спонсируют крупные российские компании: Mail.Ru Group, «Яндекс», «Лаборатория Касперского», Сбербанк, Тинькофф банк, «2ГИС», «Роснано», «Сколково» и HeadHunter.

Многие ведущие мировые вузы открывают курсы в онлайн. Например, курсы MIT можно найти на платформе Coursera.

Как освоить программирование самостоятельно?

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

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

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

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

Кроме того, можно подписаться на тематические каналы в Telegram, например: канал для новичков в Python, сообщество веб- и Java Script-разработчиков, канал разработчиков Ruby и Ruby on Rails и другие.

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

Где найти самоучитель по программированию?

Лучше всего подходить к изучению комплексно, например, совмещая онлайн-курсы, официальную документацию к языкам, лекции, статьи, книги. На GitHub можно найти огромную коллекцию бесплатных книг по программированию. Также доступен корпус электронных книг, охватывающий 24 языка программирования.

Что такое метод Франклина и как он может помочь в обучении программированию?

Это способ, позволяющий систематизировать информацию из лекций и самоучителей.

Его можно описать следующими ступенями:

  1. Читайте книгу. Когда в книге попадется образец кода, прочитайте его, сделайте заметки, которые могут помочь вам вспомнить эту информацию в будущем.
  2. Закройте книгу.
  3. Попробуйте набрать код, воссоздав его как можно ближе к оригиналу.
  4. Сравните свой код с оригиналом, исправьте ошибки, повторите пункты 1−3, пока не начнет получаться оригинальный код из книги.

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

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

Нужен ли диплом и опыт работы после обучения веб программированию с нуля?

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

С чего программисту начать поиск работы?

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

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

Затем нужно подготовить резюме, портфолио и сопроводительные письма. Именно они создают первое впечатление о кандидате.

Как составить резюме, если нет опыта?

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

Еще один важный пункт — заполнение навыков. Например, на HeadHunter они работают как теги, по которым рекрутеры ищут кандидатов. Поэтому лучше описать максимальное количество технологий, которые вы изучали или с которыми приходилось работать, а не только базовые JavaScript, HTML и CSS.

Где брать проекты для портфолио?

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

Примеры самостоятельных проектов начинающего разработчика:

  • Тестовые задания. Выкладывайте решения тестовых заданий на GitHub. Так вы одновременно и участвуете в отборе на позицию начинающего разработчика, и расширяете портфолио.
  • Совместные pet-проекты. Это проекты, которые вы делаете для себя в свободное от работы время (это может быть личный блог, игра или телеграм-бот), с однокурсниками и единомышленниками, которых вы встретили за время обучения веб-разработке.
  • Участие в opensource-проектах. Лучше всего начинать с проектов, в которых есть разделение задач по уровню сложности. В этом сборнике на GitHub перечислены как раз такие проекты.

С чего начать изучать программирование?

В голове почти любого человека, начиная с 2018-2019 года, появляются мысли о том, чтобы поменять профессию на что-то около IT. Эти мысли сразу разбиваются о скалы нескольких больших мифов.

  • Рынок переполнен специалистами и сквозь огромную конкуренцию прорваться просто невозможно. У меня тоже были такие мысли, когда я уже нашел первую работу. Меня это очень бесило до тех пор, пока я не увидел, какое большое количество людей боится сложностей, связанных с обучением. ОЧЕНЬ много новичков забрасывают курсы или свое личное обучение по многим причинам. Я общаюсь с людьми из этой сферы и могу уверенно сказать, что очень часто слышна цитата «Мы не можем найти хорошего разработчика». Учитывая то, что последние 3 года реклама курсов звучит из каждого утюга, потребности в специалистах вообще не должно быть, но она есть) Также аргумент против мифа о перенасыщении рынка -это то, что сама сфера развивается очень быстро, появляются новые компании, появляются рабочие места.
  • Обучиться профессии в IT очень сложно. На это можно сказать и да, и нет. Курсы, которые говорят: «ПОСЛЕ ПОЛУГОДА КУРСОВ ГАРАНТИЯ ТРУДОУСТРОЙСТВА» лгут, никто не будет искать вам работу) Суть в том, что обучение любой новой профессии, с которой ранее вы не были знакомы, будет тяжелым, но это только сначала. Информации, которую надо будет выучить, действительно много, но с каждым месяцем обучения будет становиться все проще и проще. А когда найдется первая работа с хорошим тимлидом, который будет указывать на ошибки прямо в проекте, вы получите буст в скорости обучения который сложно осознать.
  • Кто-то уже впереди и мне его не догнать. Я не психолог, но мне кажется, что этот загон появляется у всех людей в самых разных жизненных ситуациях. Лично у меня такие мысли были во время обучения в универе. Ребята с макбуками и в костюмах, которые зачем-то писали код, пока сидели в столовой и на перерывах между парами, рассказывали что у них новый ПРОЕКТ, или разговаривали о простых вещах сложным языком, заставляли думать, что я позади шагов на 10. Но по факту все это отставание было только у меня в голове. Тут могу только посоветовать почитать несколько притч про черепаху и зайца, не обращать на это внимания и спокойно учиться в том темпе, в котором вам комфортнее.
  • Очень забавно, но почти все люди которые при мне хотели начать что-то делать в программировании, думают, что для обучения нужен мощный ПК, знание Линукса или вообще надо покупать мак. Это абсолютно не так! Для обучения и даже для каких-то личных проектов хватит старенького ноута на винде. Главное чтобы он не лагал до такого состояния, что им просто пользоваться невозможно.
  • Работа разработчиком для очень умных ребят. Вранье, я троечник, чуть не вылетел после 9 класса в техникум, поступил в Бауманку на платку, никогда на учебу не забивал, но и звезд с неба не хватал. Много списывал. Все, что знаю, получил не с пар, а из гугла. Всем этим совсем не горжусь, но это прямое доказательство того, что даже не самый «Умный» паренек может чему-то научиться, главное быть усердным и не забивать на развитие. Данных заблуждений в голове может быть огромное множество, поэтому их все расписать невозможно, но мне кажется, что эти — самые популярные. Если вы твердо решили чему-то учиться, двигаемся дальше к основной теме этой статьи. С чего же все-таки начать изучать программирование?
  1. Что из себя представляет разработка? Для людей которые совсем не представляют, что делает программист на работе, постараюсь объяснить простыми словами. Есть проект, например какой-то сайт. Пусть будет ВК. У ВК есть группа людей, которые разбираются в том, какие новые функциональности хотят видеть пользователи. Они заметили, что многим не нравится слушать голосовые сообщения. Было решено добавить возможность распознавания речи, чтобы пользователь нажал кнопку и увидел текст голосового сообщения. Дальше эта идея подробно расписывается на бумаге: как и что должно работать. После этого в игру вступают дизайнеры. Это ребята которые по описанию фичи рисуют то как она будет выглядеть на сайте. И вот на следующем этапе начинают работу разработчики. У них на рабочих ноутбуках есть самая обычная папка, в которой лежит много текстовых файлов. Вот в этих текстовых файлах находится код на разных языках программирования. Задача разработчика добавить в нужные места такой код, чтобы все выглядело и работало согласно дизайнам и описанию фичи. Если все работает, дальше работу программистов проверяют тестировщики, и, если все хорошо, отправляют пользователю.
  2. Как выбрать язык программирования для обучения? Когда человек начинает гуглить что-то про изучение программированию, голова идет кругом от огромного количества разных языков. На эту тему можно рассуждать очень долго, но суть видео и статей сведется к тому, что люди защищают тот язык, на котором пишут. Ищут в нем плюсы, знают как обойти его минусы или просто закрывают на них глаза. Тем не менее есть несколько критериев по которым можно сделать +- объективный выбор.
    1. Популярность языка (Статья на тему). Это важно, поскольку у популярного языка большее комьюнити, больше обучающих материалов.
    2. Количество вакансий (Статья на тему). Тут все понятно. Больше вакансий — больше работы.
    3. Средняя зарплата разработчиков (Статья на тему). Это не должно быть самым важным пунктом среди трех перечисленных, тк. зарплаты очень сильно зависят от компании. Но для общего представления стоит это знать.

    Когда я смотрел на эти графики 4 года назад, я в первую очередь обратил внимание на JavaScript, и не пожалел о своем выборе. В любом случае важно понимать, что когда выучен 1 язык программирования, второй учится в разы легче.

    1. САМОЕ важное, что должен уметь делать программист — правильно формулировать вопрос в Гугл. В работе приходится обращаться к гуглу почти каждый день, во время обучения нужно гуглить целый день.
    2. youtube.com — Главный друг человека, который только начал обучение. Вбиваете например «JavaScript уроки» и вам попадается пара-тройка плейлистов с названиями наподобие «JavaScript с нуля». Найдите того, кто объясняет понятнее, и смотрите его. Если что-то не поняли в объяснении, сформулируйте запрос в Гугл и ищите до тех пор, пока не сможете объяснить своими словами. Это идеальный вариант.
    3. habr.com, medium.com и прочие сайты со статьями — Скорее всего вам будут часто попадаться на сайты со статьями. Иногда они будут на английском, это нормально, пугаться не стоит. Переводите в переводчике, делайте все как там написано, и все будет работать. Если не работает — формулируете вопрос и пишите в поисковой строке гугла.
    4. stackoverflow.com — Это лучший источник информации когда попадется незнакомая ошибка. Просто вставляете в поисковую строку Гугла текст ошибки, с вероятностью 99% в первых ссылках будет этот сайт. В основном там пишут на английском, но переводчик поможет разобраться что к чему.
    5. learn.javascript.ru — Замечательный учебник по JS который охватывает весь синтаксис. В конце каждого урока есть задание и решение к нему с объяснением.

    Подытожим. Для того, чтобы начать изучать любой язык программирования, нужно:

    1. Выделить первые шаги, изучив несколько дорожных карт того языка, который вы выбрали.
    2. По выделенным темам искать обучающие видео в YouTube, статьи в интернете, электронные учебники или курсы.
    3. Я бы посоветовал долго не штудировать синтаксис на маленьких задачках и поставить перед собой цель сделать стандартный «Список дел». Обычное приложение которое может создавать, отображать, изменять и удалять текстовые заметки. Такие приложения называют CRUD приложениями (Create Read Update Delete) и очень часто их дают в качестве тестового задания на позиции джуна. В процессе его создания вы изучите синтаксис языка, столкнетесь с кучей проблем и будете искать их решение в гугле. Никто не мешает поискать гайды в YouTube «Как сделать список дел на JavaScript» к примеру. Делаете все как на видео, набираетесь опыта. Далее к этому приложению можно будет прикрутить базу данных, написать для него сервер и, если вам хочется запариться, развернуть в интернете, чтобы кто-то мог зайти туда по ссылке.
    4. Если в процессе обучения в статье или обучающем видео вы заметите незнакомый символ или слово в коде (такое будет происходить очень часто), лучше поставить на паузу, погуглить это слово и разобраться что оно означает, где применяется и зачем.

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

    • с чего начать
    • с чего начать новичку
    • программирование
    • javascript
    • мотивация
    • мотивация на обучение
    • программирование с нуля
    • JavaScript
    • Программирование

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *