Как стать программистом
Содержание:
- Роман Моисеенко, технический директор и сооснователь Мерката:
- Обучение в ШАДе
- Полезная литература для развития
- Усталость от математики
- Мифы профессии
- Что почитать?
- Нужно ли высшее образование программисту?
- Какой язык программирования выбрать?
- Как наверстать упущенное
- Александр Баталов, технический директор Zavento:
- Николай Добровольский, вице-президент Parallels:
- Вы любите решать нестандартные задачи
- Роман Моисеенко, технический директор и сооснователь Мерката:
- Не теорией единой
- Программист и математика
- Где можно изучить математику
- Но чем конкретно занимаются программисты?
- Программирование ближе к математике или к иностранному языку
Роман Моисеенко, технический директор и сооснователь Мерката:
Что касается ресурсов, к которым стоит обратиться в случае, когда нужных знаний нет или они просто позабыты за давностью лет, то скорее это не учебники, а Google и Хабр. Как правило, задача стоит не в самообразовании или восполнении недостающих знаний, а в вспоминании конкретного материала или нахождении наиболее эффективного математического инструмента для решения конкретной задачи. И вот на Хабре зачастую встречаются очень хорошие статьи по применению той или иной математики к решению конкретных задач, а особенно ценны комменты, где порой идет очень живое обсуждение плюсов и минусов описанного подхода.
Обучение в ШАДе
Самыми трудными для меня были, наверное, первые четыре месяца. Мне не хватало базовых математических знаний. То, что многим студентам давалось легко, мне приходилось изучать отдельно, прикладывая большое количество усилий. Спасло то, что, несмотря на продвинутый уровень знаний студентов, в ШАДе любую тему начинают с базы.
Выпускной Школы анализа данных — 2019
Примером тому является курс по дискретной математике Андрея Михайловича Райгородского. Он всегда начинает с азов, которые может понять любой, и быстро разгоняется до очень сложных вещей. И если человек будет следить за всем этим, записывать, то он поймёт, что происходит. Это мне очень помогло.
С точки зрения общения с людьми, Школа — это волшебное место. В ШАДе можно спокойно подойти к любому человеку и начать обсуждать любую задачу, и всем будет очень интересно.
Без ШАДа я бы точно не получил те знания, которые у меня есть сейчас, во всяком случае, в области высшей математики и программирования. Именно последние полгода в ШАДе и направили меня в сторону науки. В частности, восхитительный курс по глубинному обучению и по reinforcement learning. Меня зацепило глубинное обучение, и я решил заниматься именно этим. У меня широкие научные интересы, но они так или иначе касаются компьютерного зрения. Сейчас я сотрудник лаборатории ADASE в Сколтехе. Я опубликовал две статьи на конференциях уровня А* и одну — на конференции уровня B. Собираюсь дописать диссертацию и продолжать заниматься наукой.
Полезная литература для развития
Книги, которые советуют прочитать тренера Тренинг-центра ISsoft:
- Стив МакКонел «Совершенный код. Мастер-класс». Книга по разработке ПО, охватывающая ВСЕ аспекты создания программ. Рекомендуем прочитать ее всем, не зависимо от языка и платформы, которую вы выбрали.
- Томас Кормен, Чарльз Лейзерсон и др. «Алгоритмы. Построение и анализ». Для профессионала эта книга — настольный справочник, а для студента — отличный учебник. Фундаментальный труд известных специалистов в области информатики достоин занять место на вашей полке.
- Род Стивенс «Алгоритмы. Теория и практическое применение». Небольшая по объему альтернатива, книга без «пугающей» математики.
- Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес «Приемы объектно-ориентированного проектирования. Паттерны проектирования». Классическая книга по объектно-ориентированной разработке. Авторы излагают принципы использования паттернов проектирования и приводят их каталог.
- Чед Фаулер «Программист-фанатик». Яркое увлекательное руководство, которое поможет быстро сделать карьеру в индустрии разработки ПО. Сборник практических советов и рекомендаций, касающихся ситуаций, с которыми сталкивается любой разработчик.
Надеемся, что вы любите писать код и потратите много времени на то, чтобы стать хорошим программистом. Если вам нужна помощь в обучении, ждем вас в Тренинг-центре ISsoft.
Усталость от математики
Последние четыре года в школе я занимался физикой, математикой и олимпиадным программированием и со временем от всего этого немного подустал. И когда я поступал в Вышку через олимпиаду, я выбрал бизнес-информатику: мне показалось, что это неплохая возможность сменить направление и при этом продолжать заниматься программированием.
Но на бизнес-информатике упор больше делался на базы данных, аналитику и экономику — дисциплины, которые не слишком сильно меня занимали. Через четыре года я решил вернуться к истокам и попробовать поступить в совместную магистратуру факультета компьютерных наук и Школы анализа данных Яндекса.
Мифы профессии
А если программист ещё и геймер… Всегда можно найти пару 😉
Программисты гребут деньги лопатой. Нет. С одной стороны, заработные платы в ИТ-сфере действительно выше других отраслей и, как показала эта чумачечая весна, ИТ ещё и более защищена, приспособлена к активной удалённой работе. Однако чтобы пройти путь до зарплаты выше рынка, нужно получить более низкую зарплату, а иногда так даже пройти бесплатную стажировку — не ради денег, а ради знаний, навыков и связей. На высоких позициях заработные платы действительно могут достигать 500 тыс. рублей в месяц, и к этому нужно стремиться. Но если вы на первом своём собеседовании на должность программиста пренебрежительно закидываете ногу за ногу и просите «сотню на руки» в столице или «сороковник» в регионах, вы проиграли. Лучше устроиться, показать результат и попросить повышение: эффективным программистам редко отказывают.
Программисты часто болеют. Увы, отчасти это правда. Сидячая работа, руки на мышке и клавиатуре, ненормированные режимы сна и питания зачастую играют злую шутку и вместе с опытом и карьерным ростом приходят лишний вес, одышка, сахарный диабет, гипертония, заболевания ЖКТ, заболевания опорно-двигательной системы, туннельный синдром и даже психические расстройства. Но это случается только с теми, кто полностью погружается в работу и забывает о себе
Регулярный спорт, правильное и регулярное питание, перерывы (не перекуры и не перекусы!), грамотно организованное рабочее место, подобранные добавки и витамины, активное общение с коллегами, сообществом, друзьями и семьёй, чтение — полезные привычки, которые сохранят ваше здоровье и, что немаловажно, обеспечат отличное функционирование мозга.
Программист имеет низкий потолок в карьере. Нет, любой программист имеет возможности горизонтального и вертикального роста
Программист может расти как внутри программирования, так и в управлении разработкой до тимлида, CTO, CIO и т.д. При наличии хорошей идеи талантливый программист и хороший управленец может открыть своё дело и расширить горизонт навыков на максимальную величину.
Программистов заменят роботы. Буду краток. А кто роботов будет программировать? 😉
Что почитать?
Онлайн-медиа — здесь обсуждаются нишевые события и более узкие темы.
- Google Developers — надежный первоисточник, из которого можно узнавать актуальные новости о продуктах компании.
- I Programmer — портал для программистов. Новости обо всех направлениях от UX до робототехники и всех языках программирования.
- Smashing Magazine — статьи о веб-дизайне: разбор кода, свежие кейсы, советы по трудоустройству и общению с клиентами.
- Хабр — универсальный русскоязычный ресурс, где можно найти гайды, обсуждения, код-ревью и кейсы от разработчиков разных компаний от IT-гигантов до небольших digital-агентств.
- Вастрик — авторский инди-блог про IT и выживание в мире технологий. Тексты про машинное обучение, блокчейн, VR, вычислительную фотографию, машинный перевод и многое другое.
- For Web — блог в Twitter с полезными материалами для фронтендеров: свежие статьи, доклады и инструменты от сибирского разработчика Андрея Романова.
Искать решение своей проблемы и задавать вопросы стоит на англоязычных форумах, как специализированных, так и не очень. Есть два популярных варианта:
- Reddit — популярный форум на все темы подряд, на котором часто сидят опытные разработчики, выкладывают свои кейсы и комментируют другие публикации. Найти их можно по тегу «programming».
- Stack Overflow — закрытый клуб для программистов без рецептов и котиков. Здесь можно запросить у опытных коллег code review, комментировать публикации и давать им оценку.
- CyberForum — форум программистов, системных администраторов, где помогают в решении задач по программированию.
- Game Dev — форум, на котором разбирают создание игр и все, что с ним связано.
Нужно ли высшее образование программисту?
Этот вопрос сломал не один десяток устойчивых мнений и разрушил столько же взаимоотношений. На самом деле, не существует однозначного ответа, но в то же время ответ лежит на поверхности.
«Программист» — это очень и очень широкое понятие, которое охватывает сотни разнообразных специальностей. Но даже в одной специальности по программированию в одном случае «вышка» будет нужна, а в другом — не нужна абсолютно. Почему так происходит? Допустим, вы талантливый программист, который ищет себе работу. Большинство частных компаний и стартапов в первую очередь попросят вас доказать свои знания и опыт и презентовать проекты, в которых вы участвовали, а потом собственными тестами и задачами проверят вашу квалификацию. Если подойдете, то вас возьмут на работу, даже если у вас на руках будет диплом «ПТУшника». Но если вы со своими «талантами программиста» попытаетесь устроиться в госпредприятие, то, скорее всего, у вас в первую очередь спросят диплом об образовании.
Талантливые программисты нужны везде, но если у него еще будет профильный диплом об окончании вуза, то работу найти будет проще. При этом, анализируя ресурсы, где размещены вакансии для программистов, например, superjob.ru, stackoverjlow.com, hh.ru, получается, что больше 70% всех вакансий не требуют высшего профильного образования, а только опыт. Остальные 30% примерно наполовину разделяются между теми, кому нужно просто высшее образование, и теми, кому необходимо именно профильное.
В общем, можно смело констатировать тот факт, что большинство IT-шных специалистов не имеют профильного образования, тем более высшего, а приходят в специальность самостоятельно через курсы, книги и много практики. Почему именно таким путем? Потому что обучающие программы по программированию в вузах не успевают за требованиями в программировании. Онлайн-школы и прочие площадки для самообучения быстрее адаптируют свой материал под нужды современного программирования.
Но раз вы все-таки ищете вузы программирования в России, то давайте будем разбираться с этим вопросом.
Какой язык программирования выбрать?
Это зависит от того, чем вы хотите заниматься:
Для тех, кто никогда не имел дела с кодом, лучше всего подходит Python. Его используют и в Data Science и машинном обучении, для создания скриптов в 3D-редакторах и, разумеется, в веб-разработке.
Google использует Python для ранжирования поисковой выдачи, также на нем работают YouTube, Dropbox и Reddit. Еще на этом языке написан фреймворк Django — универсальный инструмент для веб-разработчиков, который отвечает за создание внешнего интерфейса и работу на сервере.
Курс
Fullstack-разработчик на Python с нуля
Научитесь программировать на Python и Javascript и получите востребованную профессию за 15 месяцев. Дополнительная скидка 5% по промокоду BLOG.
Узнать больше
Если вы хотите идти в веб-разработку — определитесь, что вам больше интересно: backend или frontend. Вот, что нужно освоить для каждой специальности:
Frontend
HTML и CSS — это языки разметки, с помощью которых элементы сайта в браузере встают на нужные места.
Javascript — язык, который добавляет сайту динамику: анимацию нажатия кнопок, движение карточек продуктов, отправку уведомления.
Python — универсальный язык, который подходит для frontend-разработки, а также backend и других интересных задач.
Кроме этого, понадобится базовое знание основ веб-технологий. Например, нужно знать, как работает протокол http или зачем необходимо шифрование данных.
Научиться всему этому можно здесь.
Backend
Go — язык для backend с простым синтаксисом. Подходит для крупных проектов и высоконагруженных приложений, таких как YouTube или Ozon.
PHP — простой в освоении язык, подходит только для backend, но специалисты советуют обратить внимание на более современные инструменты. Java — универсальный язык, который используется уже более 20 лет
Код, написанный на Java, работает одинаково на разных устройствах, что является его базовым преимуществом
Java — универсальный язык, который используется уже более 20 лет. Код, написанный на Java, работает одинаково на разных устройствах, что является его базовым преимуществом.
Научиться этому можно здесь.
Начинающим разработчикам мобильных приложений стоит определиться, с какой операционной системой они будут работать, потому что код для iOS и Android пишется на разных языках.
iOS
Objective-C — язык программирования Apple, который используется в первую очередь для MacOS. Приложения для iOS раньше тоже писали на нем, но теперь мобильные разработчики используют в основном Swift.
Swift — понятный и логичный язык, который отражает главные качества iOS — функциональность и производительность.
Освоить навыки можно здесь.
Android
Java — кроссплатформенный язык для создания мобильных и серверных приложений. На нем также можно писать backend для сайтов.
Kotlin — язык, альтернативный Java, большую часть нового кода сейчас стараются писать именно на нем. Но Java стоит знать для того, чтобы ориентироваться в уже написанном коде, а благодаря совместимости языков код на Kotlin и Java можно миксовать в одном проекте.
Освоить профессию можно здесь.
Курс
Android-разработчик с нуля
Вы освоите программирование и главные навыки мобильного разработчика, подготовитесь к трудоустройству и уже после первых 8 месяцев обучения сможете начать работать по новой специальности. Дополнительная скидка 5% по промокоду BLOG.
Узнать больше
В геймдеве выбор языка зависит от уровня проектов и платформ, с которыми вы хотите работать:
C++ — потребуется, если вы планируете создавать крупные AAA-проекты с фотореалистичной графикой для PlayStation и Xbox. В этом случае обойтись простыми в изучении базовыми языками точно не получится. Подробная статья о С++.
C# (Си-шарп) — язык для движка Unity, разработанный компанией Microsoft. Он особенно популярен в России и считается более простым в освоении, чем C++. Изначально на нем создавались проекты эксклюзивно для ПК, но сейчас код, написанный на C#, можно портировать на Android, iOS, Xbox и другие платформы.
Курс
Разработчик игр с нуля
Научитесь создавать игры на самом востребованном движке Unity и станьте востребованными специалистом. Дополнительная скидка 5% по промокоду BLOG.
Узнать больше
Как наверстать упущенное
У меня была очень сильная школьная программа, в 11-м классе мы уже проходили элементы высшей математики. Но на факультете бизнес-информатики математический анализ и линейную алгебру мы закончили изучать уже в середине второго курса. Я основательно подзабыл материал и растерял навыки, в том числе и программирование: мы изучали только язык C#. Главная проблема заключалась в том, что мне очень не хватало навыков решения задач.
Так что для того, чтобы поступить на ФКН и в ШАД, мне пришлось самому на протяжении всего четвёртого курса вспоминать математику и заниматься ею в свободное от университета время. Помогла практика решения задач в онлайн-контестах, это подтянуло навыки C++. Но больше всего мне помогло то, что моя сильная сторона — это комбинаторика. Для неё не нужно много знаний, главное — развитая логика.
Александр Баталов, технический директор Zavento:
Особенно рекомендую книгу «Совершенный код» Стива Макконнелла, ее можно назвать азбукой программирования. В ней описаны многие аспекты разработки, начиная от именования переменных и заканчивая личностными качествами инженера. Они будет полезна для прочтения как новичкам, так и опытным разработчикам (об этом, кстати, пишет и сам автор). В своей работе я ее нередко использую, ссылаясь на отдельные главы при обучении молодых специалистов. Эту книгу надо штудировать от корки до корки, даже предисловие является интересным и полезным. Читается легко, информация представлена в структурированном виде. Кстати, глава 35 этой книги прекрасно ответит на вопрос: «Какие книги и ресурсы стоит изучать».
Ну, и кончено, нельзя обойтись без реального общения. Я сейчас говорю про профильные конференции, где можно пообщаться вживую, расширять свой профессиональный круг знакомств, а также найти потенциального работодателя (если это необходимо). Лично мне нравится it-конференция «Стачка», ежегодно проводимая в Ульяновске в апреле.
Николай Добровольский, вице-президент Parallels:
Программисты бывают разные. Математика и алгоритмика нужны в вещах связанных с низкоуровневыми оптимизациями и алгоритмами обработки данных. Но это далеко не вся и даже не самая большая часть работы. Например, наиболее трудоемкий процесс — написание пользовательского интерфейса. Здесь математика практически не нужна нигде. Требуется понимание подходов к построению удобных в использовании сервисов.
В этом есть сложность нашей, еще советской, школы программирования. У нас очень развита академическая составляющая, математика, комбинаторика, алгоритмика и слабые навыки создания приятных в использовании ИТ-продуктов. Это крайне важных аспект при их коммерческой реализации. Продукты должны красиво выглядеть, быть интуитивно понятны и простыми в использовании. С этим у нас в России далеко не все просто. Отчасти это связано с факторами внешней среды. Там где нет понятий сервиса, культуры и удобства обслуживания, прививать подобные ценности непросто. Но это крайне важный аспект, поскольку именно он позволяет программистам на всех уровнях делать удобные и ориентированные на конечного пользователя продукты.
Подобные навыки можно получить на курсах product management, program management и других дисциплинах. Десять, двадцать, тридцать лет назад слово «программист» объединяло в себе все, что так или иначе было связано с компьютерами, системами связи, программированием и так далее. Сейчас же все очень быстро развивается. Огромное количество технологий появляются каждый день. Что-то появляется, что-то умирает достаточно быстро.
Цикл порой может быть в год-два. Например, с точки зрения пользовательского опыта или web-технологий, то что сейчас считается мейнстримом, через три года может быть никому не нужно
При этом, крайне важно оставаться в информационном поле, следить за трендами, осваивать новые технологии
Правило «10 000 часов», предполагающее трансформацию специалиста из «чайника» в профессионала» через практический опыт никто не отменял. Если говорить о книгах, то, на мой взгляд, одна из интереснейших работ в области эргономики была написана Дональдом Норманом и называется «Дизайн привычных вещей» (Designer everyday things). Написанная в 1988 году, она и по сей день дает основные ответы на вопросы создания удобных вещей.
Вы любите решать нестандартные задачи
«Не стоит забывать и о том, что программирование в большой мере творческая профессия. Несмотря на всю четкость алгоритмов и следованию гайдлайнам (правила программирования на каком-либо языке), специалисту этой профессии очень часто приходится придумывать гармоничные решения для реализации нестандартных задач. Стоит учесть, что речь идет о специалистах, разрабатывающих современные программные продукты для широкого круга пользователей, потому как в некоторых областях есть специфика, которая требует четкого следования определенным правилам и где нет места творческому подходу — например, низкоуровневое программирование на языках, близких к базовым» — объясняет Воротников Денис, ведущий веб-программист Mercaux Inc.
Роман Моисеенко, технический директор и сооснователь Мерката:
Мы устроили опрос разработчиков в нашей компании и они отметили, что очень пригодилась комбинаторика и комбинаторные алгоритмы, в основном — при оптимизации различных алгоритмов, работающих с перестановками, сочетаниями, размещениями, разбиением на подмножества, обходы графов, а также при оценке сложности того или иного алгоритма.
Также в прикладной разработке местами полезна тригонометрия. Из менее популярных, но все же полезных разделов — это теория множеств при работе со сложными массивами, числовые ряды, дифференциальное и интегральное счисление, статистика, однако их применение довольно специфично и сильно зависит от продуктов, которые разрабатывает компания.
Не теорией единой
Разрабатывать игры, программы, приложения и т.п. довольно увлекательно. Львиная доля решений реализуется на базовом уровне с применением основных математических правил. Но время вам покажет, что математические знания оптимизируют, облегчают, структурируют программное обеспечение. Человек, который хочет заниматься программированием, но чувствует нехватку математических знаний, обязательно возьмет себя в руки и изучит необходимые разделы.
И это касается не только гуманитариев, стремящихся к программированию. Даже опытные программисты не отказываются от курсов и частенько открывают учебник по математике.
Программист и математика
Эти два понятия неразрывно связаны между собой. Что начать работать программистом, следует освоить школьный курс. На начальном этапе айтишник должен быть знаком с простыми математическими функциями: сложением, вычитанием, умножением и делением. В некоторых школах основам программирования учат с 1 класса, хотя дети в этом возрасте всерьез не выбирают специальности и глубоко изучать программирование им еще рановато.
Если для вас важно стать хорошим программистом, то без изучения математики на серьезном уровне никак не обойтись. А если вы еще и не обладаете математическим складом ума, то стоит ли вообще думать о программировании?. Давайте исходить из того, что мозг – это мышца, и ее можно натренировать, как любую другую
Если задаться целью и постоянно заниматься математикой, то почему бы гуманитарию не стать успешным программистом
Давайте исходить из того, что мозг – это мышца, и ее можно натренировать, как любую другую. Если задаться целью и постоянно заниматься математикой, то почему бы гуманитарию не стать успешным программистом.
Изучая различные языки программирования, вы постоянно будете получать задачи, решить которые без глубоких математических познаний нельзя.
И тогда произойдет следующее:
- Вы определитесь с тем, что требует изучения. После этого можете заниматься самостоятельным изучением, записаться к репетитору или на специальные курсы – предпочтительный формат учебы зависит от вас. У вас будет цель и путь. Поэтому учиться станет легче, чем раньше, когда не было определенности.
- Вы станете понимать законы высшей математики без учебников. Этого не хватит для профессионального роста. Зато вы сможете решать локальные задачи и набирать опыт.
Где можно изучить математику
Благодаря Интернету с его познавательными роликами в изучении математики можно обойтись без использования учебников в большинстве случаев. Хотя иногда туда все-таки придется заглядывать. Вариант идеально подойдет для тех, кто не любит изучение материала по книгам.
В Интернете можно найти популярные математические курсы на английском языке. Они отличаются более понятным объяснением и доступностью. Такие уроки зачастую бесплатны, а предлагают их преподаватели и ученики ведущих мировых университетов. Минус в том, что нужно знать не просто английский язык, а его специализированный раздел, связанный с математикой и программированием.
Если брать платный вариант изучения этой науки, то можно рассмотреть дистанционные курсы. Они, как правило, гораздо дешевле, чем очное или заочное обучение, не требуют особенной подготовки, сдачи экзаменов. Всего лишь нужно выбрать интересующее направление, подать основные документы и оплатить курс.
Например, в Едином Центре Высшего Дистанционного образования специалисты помогут определиться с курсом и учебным заведением. Всю работу по подаче документов они берут на себя. Вы знакомитесь с программой курса, стоимостью и сроками обучения. Если вас все устраивает, то оплачиваете курс и приступаете к учебе.
Как правило, лекции и практические занятия происходят по видеосвязи, которая сохраняется в записи. Это позволяет несколько раз подробно пересматривать изучаемый материал. С преподавателями всегда можно связаться, домашние и практические задания проходят удаленно и отправляются по почте. По окончании курса вы сдаете экзамен и получаете диплом государственного образца.
Для самостоятельной практики можно купить или скачать из Интернета сборник задач.
Но чем конкретно занимаются программисты?
- Разработка мобильных приложений — одна из топовых специальностей в программировании, в которой ежедневно открываются сотни вакансий. Всего есть три вида мобильной разработки:
- iOS-разработка подразумевает создание приложений для iPhone. Работа с этой системой требует наличия MacBook или компьютера Mac, поэтому новичкам придется вложить на старте профессии от 100 000 рублей.
- Android-разработка имеет низкий порог вхождения — для старта подойдет любой ноутбук на Windows. Выбор устройств для разработки гораздо шире: флагманские, средние и бюджетные линейки Samsung, Xiaomi, Honor и еще десятка производителей.
- Кроссплатформенная разработка для двух операционных систем одновременно.
Обычно для разных типов систем крупные компании нанимают двух разных разработчиков, но иногда ищут специалистов-универсалов.
Веб-разработка
- Frontend — программирование видимой части сервиса, с которой пользователь взаимодействует в браузере. Сюда входят, например, внешний вид сайта, выпадающее меню, взаимодействие с кнопками, формы обратной связи и многое другое.
- Backend — работа с внутренней частью сайта или веб-приложения, невидимой для пользователя. Backend-разработчики отвечают за то, чтобы информация после заполнения формы на сайте попадала в базу данных, а при необходимости данные быстро подгружались из базы и передавались на фронтенд, видимую часть сайта. Например, когда вы просматриваете новости, код, написанный на бэкенде, извлекает из хранилища свежие публикации, передает их на фронтенд, и пользователь уже видит привычную ленту.
- Fullstack — это работа со всем сразу. Термин придумали для программистов, знающих несколько языков и совмещающих навыки фронтенда и бэкенда. Некоторые fullstack-специалисты берут на себя мобильную разработку, работу с сервером или UX-дизайн. Их многофункциональность может стремиться к бесконечности.
- Разработка игр или геймдев — игровые разработчики участвуют в создании компьютерных и мобильных игр разной сложности, от простых платформеров в 2D до крупных AAA-проектов уровня GTA, «Ведьмак» и Cyberpunk 2077.
- Системное программирование — это создание программного обеспечения для операционных систем. Не самое популярное направление разработки, зато в нем меньше конкурентов. Например, системный программист занимается разработкой драйверов, которые помогают системе взаимодействовать с другими устройствами: подключить колонки к ноутбуку с помощью аудиодрайвера или принтер с помощью драйвера, разработанного под конкретную модель.
Программирование ближе к математике или к иностранному языку
С одной стороны, программирование у многих людей ассоциируется с математикой. Считается, что айтишник хорош в точных науках. С другой, мы же говорим язык программирования», а не система программирования», например. Значит это что-то похожее на изучение английского. Какой из двух тезисов ближе к правде?
Скорее второй, чем первый. У компьютерных языков тоже есть своя лексика и грамматика. Они более точные и логичные, чем любой человеческий язык. По сути мы можем сравнить изучение языка программирования с изучением английского, и это не будет прям грубым сравнением. Нужно выучить слова (функции), грамматику (логику и правила написания кода), устойчивые фразы (часто используемые фрагменты кода). Можно даже сказать, что русскоговорящему выучить Python или JavaScript, к примеру, проще, чем арабский или корейский язык. А может даже проще, чем любимый нами английский.
А что с математикой? Она тоже нужна. Условный математический склад ума значительно упростит вам работу с кодом. Умение мыслить категориями из технических наук пригодится не столько в изучении языка, сколько в его применении. Вам будет проще представить в голове, как реализовать задуманное.
Если речь идет о базах данных, блокчейне, искусственном интеллекте или других сложных штуках, то тут уже без математики совсем никак. Причем речь идет не о школьном курсе, а о самой настоящей высшей математике. Для рядовых же задач достаточно базовых знаний.
А вот что касается английского, то он пригодится в любом случае. Код пишется на английском, комментарии к нему и техническое задание зачастую тоже. Без английского в IT вам будет намного сложнее, но об этом позже.
Можно ли стать айтишником с нуля
Конечно можно, ведь все когда-то начинали с нуля. Запаситесь терпением и мотивацией и начните осваивать новую профессию. Ваша предыдущая специальность и образование большой роли не играют. Программистом с нуля может стать как инженер, так и учитель младших классов. Препятствием может стать разве что возраст. Найти первую работу в IT после 23-25 будет сложнее, чем более молодом возрасте.