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

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

Выбор направления разработки и языка программирования

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

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

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

Получение образования: выбор школы и университета

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

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

Качественные курсы по разным направлениям предлагает учебный центр «Специалист.ru» при МГТУ им. Н. Баумана. Здесь можно изучить Kotlin, Golang, стать экспертом в разработке VR-AR, изучить геймдизайн, познакомиться с интернетом вещей.

Skillbox — один из лучших онлайн-университетов востребованных профессий. Направления — программирование, дизайн, маркетинг, управление. Компания предлагает обучение, а после помогает устроиться на работу программистом в одну из известных компаний: Альфа-Банк, Мегафон, Яндекс, Сбербанк, МТС и другие

С помощью Skillbox вы можете стать веб-дизайнером, интернет-маркетологом, графическим дизайнером, UX-дизайнером, Java-разработчиком, SEO-специалистом, руководителем digital-проектов.
Стоит обратить внимание и на веб-сайт Udemy.com, который предлагает самый большой выбор онлайн-курсов в мире. Введите в поисковую строку слово «программирование», и сервис сам предложит самые популярные поисковые запросы и востребованные направления обучения:

Развитие своих профессиональных навыков

  • «Чтобы оставаться на месте, надо бежать» — в современном мире эта фраза характеризует многие сферы деятельности и лучшим образом подходит для профессионального кредо программиста. Учиться и развиваться стоит не только для того, чтобы повысить свою привлекательность на рынке труда, но и чтобы банально не стать невостребованным.
  • Сколько времени нужно чтобы стать программистом? Вы должны были слышать о правиле 10 тысяч часов авторства Малкольма Гладуэлла, согласно которому для достижения уровня настоящего мастера (в нашем случае — чтобы войти в 1% лучших программистов) требуется потратить на изучение определенного навыка в общей сложности 10 тысяч часов. Это правило не работает в сфере IT. Намного меньше, в отдельных случаях меньше года, но если вы перестанете изучать новые технологии, через 5 лет ваши карьерные перспективы будут достаточно туманными. В сфере IT учиться придется всегда!
  • Участвуйте в сообществах, чатах, форумах, конференциях. Это бесплатно, познавательно и интересно. Крупными русскоязычными сообществами для программистов являются Habr.com, Киберфорум и другие. Если профессионально развиваетесь в определенной сфере, вам могут быть полезны тематические сообщества — такие как форум программистов Java, где можно попросить совета, помощи, найти друзей, работу Android разработчиком, работу программистом Java.
  • Читайте специализированную литературу. Казалось бы, книги — устаревший способ получения информации, но нет, принципы программирования неизменны уже много лет. Программисту любого уровня можно рекомендовать чтение литературы об архитектуре, организации кода, паттернам проектирования, ООП. Уже более 25 лет не может потерять популярности легендарное издание Gang of Four: Design Patterns.
  • Пишите код не только на заказ, но и для своих проектов. Они станут важным элементом вашего портфолио, так как свидетельствуют об инициативности. Американские работодатели очень лояльно относятся к соискателям, у которых есть тематический блог или YouTube-канал на английском языке о своих разработках.

Как новичку выбрать платформу для мобильной разработки

Минимальная база для старта в профессии — знание языка программирования и среды разработки. В iOS лучше начать со Swift и Xcode или AppCode, а в Android — с Kotlin и Android Studio. Если пишете в одиночку, желательно хоть немного разбираться в стандартах дизайна и разработки под эти платформы. Но в любом случае придётся глубоко зарываться в официальные руководства.

Вот базовый набор инструментов для старта в Android-разработке, который можно установить для Windows, Linux или MacOS:

  • Среда разработки Android Studio (уже включает Kotlin). Инструмент бесплатно загружается с developer.android.com.
  • Java Runtime Environment (Kotlin основан на Java, поэтому использует её компилятор). Скачать можно с java.com.


Окно среды разработки Android Studio

Набор для старта в iOS-разработке:

  • Компьютер Macintosh. На других платформах не получится полноценно делать приложения под iOS.
  • Среда разработки: Xcode или AppCode. Скачать можно с developer.apple.com и jetbrains.com.

Если нет Мака, но попробовать очень хочется, есть три простых варианта:

  1. GNU/Linux с установленным Swift (есть официальные пакеты под Ubuntu, CentOS и Amazon Linux; скачать можно на официальном сайте языка), текстовый редактор вроде mousepad или gedit, компилятор clang и набор инструментов для работы с Unicode — libicu-dev.
  2. Windows с неофициальным пакетом Swift for Windows и текстовым редактором вроде Notepad++ или Brackets. Пакет выложен на GitHub.
  3. Готовая сборка MacOS для виртуальной машины с торрентов (например, под Virtualbox).

Перспективы профессии программиста

В любом случае, в дальнейшем вас ждёт долгий и увлекательный путь по карьере, который сам по себе тоже бывает совершенно разным. Официально, науке Computer Science чуть больше 50 лет, так что она достаточно нова, и в ней есть, куда расти и развиваться ещё многие годы. Будучи неопытным разработчиком, я отовсюду слышал фразы вроде «Всё уже написано, нечего программировать». Поверьте, это сущая глупость.

При этом, за счёт всеобъемлющего проникновения во все области жизни, IT-сфера чрезвычайно широка и позволяет добиться совершенно разных целей: высоких зарплат, научных степеней в разных областях, интересных задач и нескучной работы, возможности настраивать маятник баланса жизни и работы (work-life balance) в ту или иную сторону.

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

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

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

Антон Ярков – Senior Software Developer and Chief of development staff.  Инженер-программист и руководитель команды из 100 разработчиков в компании Access Softek Inc., занимающейся разработкой банковских продуктов для рынка США. Последние 8 лет играет ключевые роли в приятии инженерных и управленческих решений, работая над высоконагруженными и инновационными приложениями. 10+ лет опыта в разработке в стартапах и enterprise. LinkedIn.

Интересные факты

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

Часто первым программируемым устройством принято считать жаккардовый ткацкий станок, построенный в 1804 году Жозефом Мари Жаккаром, который произвёл революцию в ткацкой промышленности, предоставив возможность программировать узоры на тканях при помощи перфокарт.

Первое программируемое вычислительное устройство, Аналитическую машину, разработал Чарлз Бэббидж (но не смог её построить). 19 июля 1843 года графиня Ада Августа Лавлейс, дочка великого английского поэта Джорджа Байрона, как принято считать, написала первую в истории человечества программу для Аналитической машины. Эта программа решала уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости. 

В своей первой и единственной научной работе Ада Лавлейс рассмотрела большое число вопросов. Ряд высказанных ею общих положений (принцип экономии рабочих ячеек памяти, связь рекуррентных формул с циклическими процессами вычислений) сохранили свое принципиальное значение и для современного программирования. В материалах Бэббиджа и комментариях Лавлейс намечены такие понятия, как подпрограмма и библиотека подпрограмм, модификация команд и индексный регистр, которые стали употребляться только в 1950-х годах.

Однако ни одна из программ написанных Адой Лавлейс никогда так и не была запущена.

Аду Августу, графиню Лавлейс, принято считать почётным первым программистом (хотя, конечно, написание одной программы по современным меркам не может считаться родом занятий или профессиональной деятельностью). История сохранила её имя в названии универсального языка программирования «Ада».

Первый работающий программируемый компьютер (1941 год), первые программы для него, а также (с определёнными оговорками) первый язык программирования высокого уровня Планкалкюль создал немецкий инженер Конрад Цузе.

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

Что нужно знать, чтобы стать программистом

Чтобы стать успешным и востребованным программистом, нужно обзавестись рядом hard skills и soft skills. Первые отвечают за технические умения и знания, вторые — за качества, которые помогают эффективно работать и находить общий язык с командой.

3.1 Hard skills

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

3.1.1 Основы информатики

В такой сложнотехнической профессии понадобятся даже самые азы, а именно:

  • какие типы данных бывают и чем они отличаются друг от друга;
  • понимание систем счисления — двоичной и шестнадцатеричной;
  • булева алгебра;
  • понимание принципов выполнения операций ЭВМ.

3.1.2 Математика

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

3.1.3 Алгоритмы

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

3.1.4 Принципы ООП

Объекто-ориентированное программирование — это подход в разработке, при котором за основу берутся абстрактные объекты, а не функции или процедуры

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

  • абстракция;
  • наследование;
  • инкапсуляция;
  • полиморфизм.

3.2 Soft skills

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

3.2.1 Знание английского

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

Митап «Как стать PHP-разработчиком с нуля»

9 июня в 16:00, Онлайн, Беcплатно

tproger.ru

События и курсы на tproger.ru

Держите бесплатные материалы по английскому для программистов.

3.2.2 Умение работать в команде

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

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

Для эффективной командной работы следует понимать и использовать гибкие методологии разработки. Почитайте об Agile, Scrum и Kanban — пригодится.

3.2.3 Стрессоустойчивость

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

Кроме того, вам нужно спокойно принимать пожелания и вносить правки, если требуется, не срываясь на проджект-менеджера и тем более заказчика. Хорошим подспорьем станут книги «Как разговаривать с кем угодно, когда угодно и где угодно» и «HBR Guide. Эмоциональный интеллект».

3.2.4 Постоянное саморазвитие

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

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

3.2.5 Тайм-менеджмент

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

При планировании рабочего дня учитывайте дедлайны, используйте тайм-трекер и таблицу Эйзенхауэра:

Каков сегодня типичный список знаний и навыков разработчика Full Stack

Всё зависит от специфики работы. Но, естественно, самый важный навык — это уметь разрабатывать ПО с нуля. Для этого требуются знания серверных и «фронтовых» языков программирования, баз данных, базовые навыки администрирования Linux и Docker. Хорошо бы также знать основные виды уязвимостей (XSS, Sql-injection) — ведь тот, кто знает, как можно взломать, наверняка сообразит, как создавать устойчивые к взлому системы. Также немаловажным будет знания в области защиты от DDoS, для этого нужно уметь выполнять нагрузочное тестирование своих сервисов (целями которого является определение узких мест, оптимизация скорости работы ПО и в конечном счете возможность дать ответ на вопрос, сколько запросов в секунду система может обрабатывать), знать как можно защитить себя на уровне веб-сервера, iptables и прочих инструментов

Вот мой список, который я рекомендую всем интересующимся специализацией Full Stack:

  • TypeScript;
  • NodeJS;
  • PostgreSQL (основная СУБД);
  • Redis (СУБД для кэша, системы очередей и т.д.);
  • Jquery (так или иначе появляются задачи по парсингу веб-страниц, и базовое понимание синтаксиса jquery-like может сэкономить кучу времени)
  • Docker (куда же без него?);
  • TDD (разработка через тестирование, повышает стабильность фич, ускоряет процесс написания кода и его стабилизацию)
  • Docker Swarm либо Kuberneties (k8s) для развертывания горизонтально масштабируемого ПО;
  • Gitlab CI/CD
  • Nginx;
  • Debian (либо другой Linux, нужны знания на уровне работы с cli, установки софта и его настройки, работы с файловой системой);
  • Proxmox (незаменимый инструмент для вашей домашней лаборатории, а также для продакшн, хотя на старте лучше использовать облачные решения — так проще).

Так или иначе, устремляясь в русло разработки Full Stack, надо начинать с чего-то достаточно простого. Если вы уже опытный специалист, то сами понимаете, какие еще технологии нужно изучить. Ну а молодому разработчику для начала стоит освоить JavaScript, поскольку этот язык уже долгое время является одним из самых популярных и используется для создания компонентов как frontend, так и backend. Прочие платформы, такие как .NET, например, и подобные, можно будет освоить, когда в этом возникнет необходимость.

Впрочем, с появлением контейнерных сред всё важнее становится не знание какого-то отдельного языка программирования или фреймворка, а умение выстроить процесс создания продукта. Другими словами, все более важными для разработчика Full Stack становятся знания в области управления проектами, поскольку такой разработчик должен уметь организовать работу нескольких (а иногда и многих) узких специалистов — как штатных, так и внешних. На разработчика Full Stack нередко ложится роль лидера проектов, поэтому он должен организовать правильным образом и себя, и других участников своей команды. Для этого ему требуются определенные лидерские качества.

Как стать разработчиком с нуля: общий план развития

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

Например, вы решили стать Python Backend-разработчиком и хотите создать свой собственный сервис заметок, чтобы ваши записи хранились не у сторонней компании, а под вашим контролем у вас на сервере. Вы определились, что у вас будет  бэкенд с базой MongoDB и REST API. Теперь пришло время открыть туториалы по Python и перепечатать оттуда код, который поднимет у вас веб-сервер, создаст endpoint вашего REST API и будет отдавать текст Hello World. Потом открыть другой туториал по работе с MongoDB и понять, как из Python работать с базой данных.

Редактируйте код и смотрите на результат, делая выводы о внутреннем устройстве языка и кода. Через 10-20-100 итераций вы сможете создавать свои endpointы, которые будут записывать данные в БД. Попутно вы узнаете, что такое и из чего состоит HTTP-запрос. Повторяйте процесс до тех пор, пока не реализуете весь функционал своего приложения. Всегда задавайте себе вопросы: почему не работает, как сделать. Не забывайте читать профильную литературу и статьи, которые помогут узнать о новых возможностях языка или инструмента.

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

Итак, приложение создано, вы разворачиваете и запускаете его на удалённом сервере, оно работает. Но в какой-то момент на сервере проводятся технические работы, он перезагружается. Ваше приложение уже не работает, необходимо запускать его заново. Вы размышляете, как сделать так, чтобы приложение стартовало при запуске сервера. Гуглите, находите ответ в виде утилит systemd и supervisord, читаете описание и порядок использования, пытаетесь их внедрить, ловите кучу ошибок, опять читаете книги, статьи и в итоге всё успешно настраиваете. Вот первый опыт работы с ОС и первый решенный кейс. А теперь вы хотите, чтобы ваше приложение работало в Docker-контейнере, а потом хотите сделать асинхронный API. Теперь вы знаете, как этого добиться.

Мир технологий – с чего начать?

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

Java

Многие опытные разработчики считают, что «Java – король языков». Это язык программирования, который не только пользуется большим спросом на рынке, но и очень удобен для начинающих. Кроме того, Java существует уже давно, поэтому доступно множество учебных ресурсов.

Python

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

JavaScript

Не запутайтесь – JavaScript отличается от Java. Этот язык программирования чаще всего используется при создании веб-сайтов. Кроме того, как и Python, это также довольно простой язык, который не должен вызывать проблем у начинающего разработчика.

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

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

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

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

Работа в команде, хорошее общение, организация работы – все это так же важно, как и знание языков программирования

Чтобы устроиться на работу в IT, обязательно обратите внимание на следующие навыки

Выбор направления в программировании

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

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

Ну а если по порядку, то для веб-разработки и создании сайтов, лучше подходят языки python с (библиотекой django), востребованный, однако теряющий популярность язык PHP и многими любимый язык Ruby (c библиотекой Rails). Приведенные языки являются серверными языками, которые разрабатываются в бекенде. Они работают с логикой сайта, например вытягивают данные из базы данных, обрабатывают и предоставляют пользователям.

Помимо бэкенда, есть фронтенд, который является визуальным и динамическим составляющим сайта. Для работы с фронтендом нужно изучить 3 взаимосвязанные технологии. Это HTML, CSS и JavaScript. Они является пожалуй единственный стандартом во всемирной паутине, поэтому знание этих составляющих является важным моментом для разработки веб-сайтов.

Если вы хотите разрабатывать десктопные приложения под Windows, то стоит изучить язык C#. Для кроссплатформенной разработки, то есть под Windows, Linux и MacOS, хорошим вариантом является язык Java. 

Для разработки игр, используют очень мощный языки C++ и C#. C++ в основном используется при разработки собственного игрового движка, крупными компаниями. Если вы начинающий разработчик игр, то конечно же лучше использовать игровой движок Unity, который собственно и использует язык C# для написания игровой логики.

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

В разработки под iOS используется мощный язык Swift, который активно развивается за счет внедрения новых инструментов разработки, компанией Apple.

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

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

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

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

Как стать программистом с нуля

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

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

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

Вам следует определиться с направлением, в котором вы хотите развиваться:

  • Frontend developer (разработка визуальный интерфейсов на сайте или в приложении);
  • Backend developer (серверные решения для обработки данных с различных сайтов, игр, приложений и т. д.);
  • Разработчик мобильных приложений;
  • Data science (построение нейросетей для искусственного интеллекта);
  • Системный программист (низкоуровневое программирование бытовых приборов и прочих устройств).

Многие новички считают, что “стать программистом” — это выучить синтаксис определенного языка. Это не совсем так. Синтаксис безусловно важен, но сейчас существует достаточное количество IDE (Integrated Development Environment – специальных редакторов для написания кода), которые помогают с командами, подсказывают с символами и исправляют ошибки. Как автопроверка в ворде. Гораздо важнее понимать более базовые понятия, такие как: системы счисления (двоичная, десятичная, шестнадцатеричная и и т. д.), булева алгебра, как устроена память компьютера, логика, основные математические операции и так далее.

Если вам не терпится побыстрее получить должность стажера, то, наверное, самый быстрый для вас путь — это Frontend разработчик. Вам следует выучить технологии HTML, CSS и JavaScript. В процессе обучения обязательно нужно будет собрать портфолио из красивых, адаптивных под разные устройства, сайтов, и можно идти покорять эйчаров своим резюме. Процесс обучения занимает около 10-12 месяцев. Сейчас огромное количество онлайн и очных курсов. Также есть много толковых роликов на ютубе, где вы сможете сверстать сайт параллельно с автором видео.

Если же хотите погрузиться в программирование более подробно, можете пройти курс Компьютерные науки CS50 (доступен на английском языке бесплатно). Он состоит из 11 модулей (1,5-2 часовых лекций и лабораторных работ, на которые можно получить фидбэк) и плавно двигается по языкам программирования, затрагивая все их особенности. Курс можно проходить в своем темпе. Также есть чат поддержки, где вы сможете познакомиться с другими студентами и обрести новые полезные знакомства.

В backend разработке придется работать с базами данных, большими потоками информации, и тут понадобится выучить чуть больше всего, одного синтаксиса языка (например, Java, C#, Goland, Python etc) будет недостаточно. Здесь уже обязательны знания устройства баз данных, следует изучить и научиться работать с готовыми фреймворками которые используются на рынке.

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

Интересно: История успеха: как сисадмин стал директором завода крупной строительной компании.

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

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

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

Adblock
detector