Профессия: программист. не всё однозначно
Содержание:
- Бесплатные курсы и материалы для самостоятельного обучения
- Программирование ближе к математике или к иностранному языку
- Выбор языка программирования
- Где можно изучить математику
- Навыки и качества хорошего программиста
- Но чем конкретно занимаются программисты?
- Как наверстать упущенное
- Как научиться программированию
- Какой язык программирования выбрать?
- Какие навыки нужно развивать, чтобы стать успешным программистом
- Александр Баталов, технический директор Zavento:
- Усталость от математики
- Какая математика нужна программистам
- Я хочу стать программистом. Где учиться?
- Программист и математика
- Роман Моисеенко, технический директор и сооснователь Мерката:
- Среда разработки
- Что почитать?
- Роман Моисеенко, технический директор и сооснователь Мерката:
- Константин Третьяков, руководитель отдела сопровождения санкт-петербургского филиала компании «1С-Рарус»:
Бесплатные курсы и материалы для самостоятельного обучения
На площадке Coursera можно найти бесплатные программы по разным направлениям в IT на русском и английском языках:
- Crash Course on Python, разработанный в партнерстве с Google;
- Java Programming and Software Engineering Fundamentals от Duke University (США);
- HTML, CSS, and Javascript for Web Developers от Johns Hopkins University (США);
- iOS-разработка: Swift, UI и многопоточность от Московского физико-технического института;
- Введение в язык Kotlin, курс Санкт-Петербургского политеха.
На площадке edX собраны бесплатные курсы Гарварда, Массачусетского университета, Беркли, Бостонского университета и других именитых учебных заведений. Например:
- Python Basics for Data Science;
- Programming for the Web with JavaScript;
- Introduction to C++.
В подборках для новичков чаще всего встречается несколько книг, с которыми полезно познакомиться:
- «Чистый код» Роберта Мартина;
- «Совершенный код. Мастер-класс» Стива Макконнелла;
- «Искусство программирования» Дональда Кнута;
- «Паттерны проектирования» Эрика и Элизабет Фримен;
- «Алгоритмы: построение и анализ» Томаса Кормена и Чарльза Лейзерсона.
Советы выпускницы SkillFactory:
В IT нужно постоянно учиться. Регулярно выходят новые версии рабочих инструментов или появляются более сложные. Если вы взяли курс, решайте все задачи сами, даже если они кажутся слишком трудными. На реальной работе никто не будет приносить все «на блюдечке»: нужно уметь искать информацию, разбираться в ней и применять на практике.Ищите компании с возможностями для роста. Менять работу не страшно, но внутри привычной компании это делать комфортнее. Теперь я работаю в компании, где могу пробовать новые специальности.Лариса Петрова, бывший инженер-программист второй категории, стала fullstack-разработчиком. Читайте ее историю
Программирование ближе к математике или к иностранному языку
С одной стороны, программирование у многих людей ассоциируется с математикой. Считается, что айтишник хорош в точных науках. С другой, мы же говорим язык программирования», а не система программирования», например. Значит это что-то похожее на изучение английского. Какой из двух тезисов ближе к правде?
Скорее второй, чем первый. У компьютерных языков тоже есть своя лексика и грамматика. Они более точные и логичные, чем любой человеческий язык. По сути мы можем сравнить изучение языка программирования с изучением английского, и это не будет прям грубым сравнением. Нужно выучить слова (функции), грамматику (логику и правила написания кода), устойчивые фразы (часто используемые фрагменты кода). Можно даже сказать, что русскоговорящему выучить Python или JavaScript, к примеру, проще, чем арабский или корейский язык. А может даже проще, чем любимый нами английский.
А что с математикой? Она тоже нужна. Условный математический склад ума значительно упростит вам работу с кодом. Умение мыслить категориями из технических наук пригодится не столько в изучении языка, сколько в его применении. Вам будет проще представить в голове, как реализовать задуманное.
Если речь идет о базах данных, блокчейне, искусственном интеллекте или других сложных штуках, то тут уже без математики совсем никак. Причем речь идет не о школьном курсе, а о самой настоящей высшей математике. Для рядовых же задач достаточно базовых знаний.
А вот что касается английского, то он пригодится в любом случае. Код пишется на английском, комментарии к нему и техническое задание зачастую тоже. Без английского в IT вам будет намного сложнее, но об этом позже.
Можно ли стать айтишником с нуля
Конечно можно, ведь все когда-то начинали с нуля. Запаситесь терпением и мотивацией и начните осваивать новую профессию. Ваша предыдущая специальность и образование большой роли не играют. Программистом с нуля может стать как инженер, так и учитель младших классов. Препятствием может стать разве что возраст. Найти первую работу в IT после 23-25 будет сложнее, чем более молодом возрасте.
Выбор языка программирования
Есть много разных языков программирования, и пока вы не погрузились в тему, сложно в них разбираться. Какой начать учить, чтобы потом не пожалеть?
Давайте так. Мы будем описывать разные ситуации. Читайте каждый пункт по очереди. Если поймете, что этот пункт не про вас, переходите к следующему. И так пока не получите свой ответ.
- Хочу что-то предельно простое, может даже не самое практичное. Ваш язык: Ruby.
- Я хочу начать кодить для себя, из любопытства или в рамках самосовершенствования. У меня нет на примете проекта, который мне бы хотелось реализовать. Посоветуйте мне лучший способ начать. Ваш язык: Python.
- Я хочу начать кодить для себя, из любопытства или в рамках самосовершенствования. У меня нет на примете проекта, но я хотел бы выучить такой язык, чтобы после него было легко переключиться на любой другой (даже если изначально изучение первого языка будет трудным). Ваш язык: С++.
- Я хочу кодить для себя, и у меня на примете есть проект. Он связан с сайтами. Хочу выучить самый простой язык из тех, что позволит мне создавать сайты в интернете. Ваш язык: JavaScript.
- Я хочу кодить для себя, и у меня на примете есть проект. Он связан с сайтами, но в будущем я хотел бы работать не только с ними. Ваш язык: Python.
- Хочу стать программистом для себя, и есть идея проекта, связанного с приложениями на Android. Ваш язык: Java
- Хочу стать программистом для себя, и есть идея проекта, связанного с приложениями на iOS Ваш язык: Objective-C
- Хочу стать программистом для себя, и есть идея проекта, связанного с компьютерными играми или сложными программами в 3D. Ваш язык: C++
- Я иду в программирование ради денег, и хочу получить хорошую работу. Компания не имеет особого значения. Ваш язык: Java или Python.
- Я хочу устроиться на работу в компанию и работать с веб-интерфейами. Ваш язык: JavaScript.
- Хочу устроиться в компанию и работать с сайтами. Готов потрудиться чуть больше, но охватить при этом более широкий спектр знаний. Ваш язык: PHP.
- В будущем я хочу устроиться в крупную корпорацию вроде Google или Facebook. Ваш язык: Python.
- В будущем я хочу устроиться работать в Apple. Ваш язык: Objective-C.
- В будущем я хочу устроиться работать в Microsoft. Ваш язык: C#.
Решение серьезное, не нужно делать его на основе одного-двух предложений в каком-то там списке. Почитайте больше о языке, который мы вам подсказали. Узнайте, для чего конкретно он применяется, погуглите вакансии с ним, посмотрите примеры реализованных проектов. Подойдите к этому со всей серьезностью.
Где можно изучить математику
Благодаря Интернету с его познавательными роликами в изучении математики можно обойтись без использования учебников в большинстве случаев. Хотя иногда туда все-таки придется заглядывать. Вариант идеально подойдет для тех, кто не любит изучение материала по книгам.
В Интернете можно найти популярные математические курсы на английском языке. Они отличаются более понятным объяснением и доступностью. Такие уроки зачастую бесплатны, а предлагают их преподаватели и ученики ведущих мировых университетов. Минус в том, что нужно знать не просто английский язык, а его специализированный раздел, связанный с математикой и программированием.
Если брать платный вариант изучения этой науки, то можно рассмотреть дистанционные курсы. Они, как правило, гораздо дешевле, чем очное или заочное обучение, не требуют особенной подготовки, сдачи экзаменов. Всего лишь нужно выбрать интересующее направление, подать основные документы и оплатить курс.
Например, в Едином Центре Высшего Дистанционного образования специалисты помогут определиться с курсом и учебным заведением. Всю работу по подаче документов они берут на себя. Вы знакомитесь с программой курса, стоимостью и сроками обучения. Если вас все устраивает, то оплачиваете курс и приступаете к учебе.
Как правило, лекции и практические занятия происходят по видеосвязи, которая сохраняется в записи. Это позволяет несколько раз подробно пересматривать изучаемый материал. С преподавателями всегда можно связаться, домашние и практические задания проходят удаленно и отправляются по почте. По окончании курса вы сдаете экзамен и получаете диплом государственного образца.
Для самостоятельной практики можно купить или скачать из Интернета сборник задач.
Навыки и качества хорошего программиста
Несомненно, знания – самое важное, что может быть в профессии, но программисту никуда и без личностных качеств и навыков, ведь вам предстоит нелегкая работа, в которой будет задействована вся команда разработки. Делимся с вами, какими навыками и качествами обладает востребованный специалист
Знает, что такое софт скиллы, и работает над их развитием.В вакансиях часто фигурируют такие скиллы, как коммуникативность, умение работать в команде, стрессоустойчивость, гибкость и проактивность. Как развивать гибкие навыки с помощью упражнений, курсов, видео и книг, можно почитать в нашем материале.
Аналитически мыслит
Хороший программист чаще всего обладает аналитическим складом ума и типом мышления. Это значит, что он логичен, последователен, понимает и может объяснить каждый свой шаг. Такие люди способны находить самое эффективное и оптимальное решение любой задачи в короткие сроки. К слову, аналитически мыслить может научиться каждый, например, решая логические задачи и играя в специальные игры.
Знает, как писать чистый код
Написанный вами код будут читать ваши коллеги, а также работать с ним придется и другим членам команды. Хороший программист тот, кто умеет “кодить чисто и понятно”. Такой код поможет не просто быстрее работать, но и избежать недопониманий со стороны коллег, а также создавать меньше багов.
Стремится быть лучше, знать больше – саморазвивается
Без постоянного саморазвития не стать хорошим программистом. IT-сфера прогрессирует неустанно: появляются новые языки, фреймворки и другие инструменты. Регулярное обновление своих знаний, сомнения в том, что вы знаете «как правильно» приведут вас к успеху в карьере и сделают настоящим профессионалом.
Любит то, что делает
Каждый день идти на нелюбимую работу, чтобы писать нудный код… Думаем, это страх каждого: делать то, что не нравится. Прислушайтесь к себе, действительно ли к программированию лежит ваша душа. Давайте делать только то, что нам нравится, потому что тогда, это будет получаться лучше.
Но чем конкретно занимаются программисты?
- Разработка мобильных приложений — одна из топовых специальностей в программировании, в которой ежедневно открываются сотни вакансий. Всего есть три вида мобильной разработки:
- iOS-разработка подразумевает создание приложений для iPhone. Работа с этой системой требует наличия MacBook или компьютера Mac, поэтому новичкам придется вложить на старте профессии от 100 000 рублей.
- Android-разработка имеет низкий порог вхождения — для старта подойдет любой ноутбук на Windows. Выбор устройств для разработки гораздо шире: флагманские, средние и бюджетные линейки Samsung, Xiaomi, Honor и еще десятка производителей.
- Кроссплатформенная разработка для двух операционных систем одновременно.
Обычно для разных типов систем крупные компании нанимают двух разных разработчиков, но иногда ищут специалистов-универсалов.
Веб-разработка
- Frontend — программирование видимой части сервиса, с которой пользователь взаимодействует в браузере. Сюда входят, например, внешний вид сайта, выпадающее меню, взаимодействие с кнопками, формы обратной связи и многое другое.
- Backend — работа с внутренней частью сайта или веб-приложения, невидимой для пользователя. Backend-разработчики отвечают за то, чтобы информация после заполнения формы на сайте попадала в базу данных, а при необходимости данные быстро подгружались из базы и передавались на фронтенд, видимую часть сайта. Например, когда вы просматриваете новости, код, написанный на бэкенде, извлекает из хранилища свежие публикации, передает их на фронтенд, и пользователь уже видит привычную ленту.
- Fullstack — это работа со всем сразу. Термин придумали для программистов, знающих несколько языков и совмещающих навыки фронтенда и бэкенда. Некоторые fullstack-специалисты берут на себя мобильную разработку, работу с сервером или UX-дизайн. Их многофункциональность может стремиться к бесконечности.
- Разработка игр или геймдев — игровые разработчики участвуют в создании компьютерных и мобильных игр разной сложности, от простых платформеров в 2D до крупных AAA-проектов уровня GTA, «Ведьмак» и Cyberpunk 2077.
- Системное программирование — это создание программного обеспечения для операционных систем. Не самое популярное направление разработки, зато в нем меньше конкурентов. Например, системный программист занимается разработкой драйверов, которые помогают системе взаимодействовать с другими устройствами: подключить колонки к ноутбуку с помощью аудиодрайвера или принтер с помощью драйвера, разработанного под конкретную модель.
Как наверстать упущенное
У меня была очень сильная школьная программа, в 11-м классе мы уже проходили элементы высшей математики. Но на факультете бизнес-информатики математический анализ и линейную алгебру мы закончили изучать уже в середине второго курса. Я основательно подзабыл материал и растерял навыки, в том числе и программирование: мы изучали только язык C#. Главная проблема заключалась в том, что мне очень не хватало навыков решения задач.
Так что для того, чтобы поступить на ФКН и в ШАД, мне пришлось самому на протяжении всего четвёртого курса вспоминать математику и заниматься ею в свободное от университета время. Помогла практика решения задач в онлайн-контестах, это подтянуло навыки C++. Но больше всего мне помогло то, что моя сильная сторона — это комбинаторика. Для неё не нужно много знаний, главное — развитая логика.
Как научиться программированию
Итак, вы определились с языком, теперь нужно придумать, как его выучить. А выучить его вам будет не так уж и сложно, как кажется на первый взгляд. У страха глаза велики. Нужно просто приложить усилия и потратить на обучение несколько месяцев. Это не так уж и много на самом деле. Специалисты уже подсчитали, что на изучение programming language нужно в среднем от 6 до 13 недель, если заниматься по 8 часов в день. Если предположить, что вы уже где-то работаете на полный рабочий день, и свободного времени у вас меньше, то это 2-6 месяцев.
Есть еще такая теория как «10,000 hours rule». Она гласит, что в любом ремесле можно стать профессионалом за 10 тысяч часов. Если поделить на 40 часов в неделю, то выйдет около пяти лет. Но это чтобы стать прям экспертом. А для первых серьезных проектов и первой работы достаточно, как мы уже сказали, от нескольких месяцев до полугода.
Где учиться?
- Книги. У нас в блоге выходила подборка лучших книг для изучения программирования. Рекомендуем к прочтению.
- Онлайн-курсы. В той же самой подборке о них тоже сказано несколько слов, но если вкратце, то можно заниматься в GeekBrains (рус), Яндекс Практикуме (рус), Codeacademy (англ), Coursera (в основном англ), Skillshare (в основном англ) и так далее.
- Видеоуроки на YouTube. Есть много хороших бесплатных курсов. В том числе записи уроков из платных видеокурсов прошлых лет — слитых или выложенных самими школами.
- Оффлайн школы и тренинги. Это самый дорогой способ научиться программированию, но самый эффективный. Под личным руководством наставника вам будет гораздо проще, ведь не придется задерживаться на одном месте.
Что общее у всего вышеперечисленного? Наличие практики. В хороших учебниках всегда есть разделы с практикой, на онлайн-курсах есть тренажеры или домашние задания. На ютубе вы можете сами попробовать написать программу по туториалу. А на тренингах вы именно этим и будете заниматься большую часть времени. Возможность написать что-то своими руками будет вас мотивировать. В идеале вы должны написать свою первую программу уже на первом, максимум на втором уроке.
Стоит ли поступать в университет, чтобы научиться программировать? Можно, но это вовсе не обязательно. Курс обучения в университете длится от четырех лет. За это время вы спокойно можете выучиться самостоятельно и получить несколько лет опыта. Поступать стоит в том случае, если вы планируете освоить сложную профессию по узкой специальности, и знаете, что в этом конкретном университете вас этому могут научить.
Какой язык программирования выбрать?
Это зависит от того, чем вы хотите заниматься:
Для тех, кто никогда не имел дела с кодом, лучше всего подходит 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.
Узнать больше
Какие навыки нужно развивать, чтобы стать успешным программистом
Программист – это не только прибыльная и увлекательная, но и сложная профессия, которая дается далеко не каждому. Даже если учеба по профессии дается человеку относительно легко, это не гарантирует его успешного трудоустройства и продуктивности действий на реальной работе.
Почему так происходит? Причин много и именно на них стоит обратить внимание и развивать в себе соответствующие навыки:
Не хватает усидчивости. Многие даже умные ребята никак не могут освоить программирование, так как для этого нужно много работать и практиковаться. Гулять и развлекаться проще и веселее, поэтому многие сходят с дистанции просто по причине лени и отсутствия дисциплины. Выучиться на кодера однозначно будет проще человеку с аналитическим складом ума. Чтобы продвижение в профессии шло лучше, нужно старательно решать задачи по математике и физике, это поможет развить некоторые аналитические склонности и укрепить их
Важно немедленно начинать учить английский. Даже хорошие программисты сталкиваются с препятствием на пути вверх по карьерной лестнице – плохое знание английского
Это может быть сильным тормозом, поэтому учить язык стоит заранее и хорошо. Также важно быть уверенным пользователем ПК. Программист не должен отвлекаться подолгу на ерунду и простые вещи, типа установка нужной программы или антивируса. Это должно быть для человека само собой разумеющимися вещами.
Важно отметить, что многие школьники не понимают, что программист – это не тот, кто занимается переустановкой Windows. Данная профессия предполагает значительно более сложную работу
Александр Баталов, технический директор Zavento:
Если вы планируете заниматься графикой, то, скорее всего, вам пригодятся дифференциальные уравнения и геометрия. Если моделированием естественных процессов (например, в области энергетики), то нужны: математический анализ, дифференциальные уравнения, математическая физика и вычислительная математика. Если финансовой сферой, то необходимо разбираться в теории вероятности и математической статистике, а также математической логике, алгебре, теории чисел и вычислительной математике. Для создания игр пригодятся все разделы математики, так как там есть и отрисовка графики, и моделирование физических процессов, ну и, конечно же, создание искусственного интеллекта.
Лично в моем опыте больше всего пригодились математический анализ, дифференциальные уравнения и вычислительная математика.
Усталость от математики
Последние четыре года в школе я занимался физикой, математикой и олимпиадным программированием и со временем от всего этого немного подустал. И когда я поступал в Вышку через олимпиаду, я выбрал бизнес-информатику: мне показалось, что это неплохая возможность сменить направление и при этом продолжать заниматься программированием.
Но на бизнес-информатике упор больше делался на базы данных, аналитику и экономику — дисциплины, которые не слишком сильно меня занимали. Через четыре года я решил вернуться к истокам и попробовать поступить в совместную магистратуру факультета компьютерных наук и Школы анализа данных Яндекса.
Какая математика нужна программистам
Работа программистом требует познаний в нескольких математических разделах, которые не каждый человек даже слышал. Но благодаря опыту разобраться с ними не составит труда в будущем.
- статистика и комбинаторика – основу этого раздела проходят в старших классах. Для каждого программиста must have;
- логика и дискретная математика; раздел посвящен основам теории числе, множеств, база изучается в школе;
- математический анализ – самостоятельно изучить раздел, который нужен для работы в Computer Science, довольно трудно;
- теория алгоритмов, чтобы разобраться с эти разделом, нужно хорошо знать математику в целом. Знания раздела необходимы для анализа алгоритмов – основных понятий в программировании;
- линейная алгебра поможет развить абстрактное мышление. Программистам в сфере графики, разработки игр и виртуальной реальности без нее никуда.
Я хочу стать программистом. Где учиться?
Можно самостоятельно учиться программированию, записаться на онлайн-курсы и даже учиться очно — плюсы есть у каждого варианта.
Самообразование не требует серьезных затрат, понадобятся только усидчивость и умение добывать нужную информацию. При правильном подходе уже через несколько месяцев после начала обучения получится написать простую программу.
С другой стороны, грамотно составленный курс обучения даст новичку полное представление о профессии и позволит быстро освоить разные инструменты на практике.
Обучение онлайн по сравнению с очным требует меньше времени, а хорошие онлайн-школы сопровождает своих учеников до первого трудоустройства, помогает с составлением резюме и портфолио. Например, в SkillFactory помощью в трудоустройстве занимается специальный карьерный центр.
Самостоятельное обучение: блоги, приложения, книги, бесплатные курсы и видеоуроки
Плюс: дает возможность попробовать себя в новой сфере деятельности без вложений.
Минус: отсутствие опытного наставника и структуры работы. Кроме этого, бесплатные курсы бывают поверхностными, поэтому с их помощью редко получается стать опытным специалистом.
Поступление в вуз или колледж
Плюс: профессиональное образование помогает расширить кругозор. Помимо фундаментальных знаний по специальности, выпускники получают общие знания в других сферах: экономике, культуре, политике и естественных науках.
Минус: IT-индустрия развивается быстро, современные государственные программы не успевают под нее адаптироваться, и выпускники рискуют выйти в большой мир разработки с неактуальными или неполными знаниями.
Онлайн-курсы
Плюс: главный плюс онлайн-обучения на курсах программистов — это поддержка ментора и формирование профессионального сообщества. Все вопросы можно обсудить с коллегами по цеху. Также онлайн-школы предоставляют ученикам доступ к большим методическим базам.
Минус: сам процесс обучения может занимать от полугода до двух лет, потребуется мотивация, чтобы его закончить.
Программист и математика
Эти два понятия неразрывно связаны между собой. Что начать работать программистом, следует освоить школьный курс. На начальном этапе айтишник должен быть знаком с простыми математическими функциями: сложением, вычитанием, умножением и делением. В некоторых школах основам программирования учат с 1 класса, хотя дети в этом возрасте всерьез не выбирают специальности и глубоко изучать программирование им еще рановато.
Если для вас важно стать хорошим программистом, то без изучения математики на серьезном уровне никак не обойтись. А если вы еще и не обладаете математическим складом ума, то стоит ли вообще думать о программировании?. Давайте исходить из того, что мозг – это мышца, и ее можно натренировать, как любую другую
Если задаться целью и постоянно заниматься математикой, то почему бы гуманитарию не стать успешным программистом
Давайте исходить из того, что мозг – это мышца, и ее можно натренировать, как любую другую. Если задаться целью и постоянно заниматься математикой, то почему бы гуманитарию не стать успешным программистом.
Изучая различные языки программирования, вы постоянно будете получать задачи, решить которые без глубоких математических познаний нельзя.
И тогда произойдет следующее:
- Вы определитесь с тем, что требует изучения. После этого можете заниматься самостоятельным изучением, записаться к репетитору или на специальные курсы – предпочтительный формат учебы зависит от вас. У вас будет цель и путь. Поэтому учиться станет легче, чем раньше, когда не было определенности.
- Вы станете понимать законы высшей математики без учебников. Этого не хватит для профессионального роста. Зато вы сможете решать локальные задачи и набирать опыт.
Роман Моисеенко, технический директор и сооснователь Мерката:
Мы устроили опрос разработчиков в нашей компании и они отметили, что очень пригодилась комбинаторика и комбинаторные алгоритмы, в основном — при оптимизации различных алгоритмов, работающих с перестановками, сочетаниями, размещениями, разбиением на подмножества, обходы графов, а также при оценке сложности того или иного алгоритма.
Также в прикладной разработке местами полезна тригонометрия. Из менее популярных, но все же полезных разделов — это теория множеств при работе со сложными массивами, числовые ряды, дифференциальное и интегральное счисление, статистика, однако их применение довольно специфично и сильно зависит от продуктов, которые разрабатывает компания.
Среда разработки
Код на python может быть помещен в файл с расширением .py и отправлен интерпретатору для выполнения. то классический подход, который обычно разбавляется использованием среды разработки, например pyCharm. Однако, для python (и не только) существует другой способ взаимодействия с интерпретатором — интерактивные блокноты jupyter, сохраняющие промежуточное состояние программы между выполнением различных блоков кода, которые могут быть выполнены в произвольном порядке. Этот способ взаимодействия позаимствован у блокнотов Mathematica, позже аналог появился и в MATLAB (Live script).
Таким образом вся работа с python-кодом переносится в браузер. Получившейся блокнот можно открыть с помощью nbviewer.jupyter.org, github (и gist) умеют самостоятельно показывать содержимое таких файлов (преобразовывать).
Из браузерной природы jupyter следуют его недостатки: отсутствие отладчика и проблемы с печатью большого количества информации (зависание окна браузера). Последняя проблема решается расширением, которое ограничивает максимальное количество символов, которое можно вывести в результате выполнения одной ячейки.
Что почитать?
Онлайн-медиа — здесь обсуждаются нишевые события и более узкие темы.
- Google Developers — надежный первоисточник, из которого можно узнавать актуальные новости о продуктах компании.
- I Programmer — портал для программистов. Новости обо всех направлениях от UX до робототехники и всех языках программирования.
- Smashing Magazine — статьи о веб-дизайне: разбор кода, свежие кейсы, советы по трудоустройству и общению с клиентами.
- Хабр — универсальный русскоязычный ресурс, где можно найти гайды, обсуждения, код-ревью и кейсы от разработчиков разных компаний от IT-гигантов до небольших digital-агентств.
- Вастрик — авторский инди-блог про IT и выживание в мире технологий. Тексты про машинное обучение, блокчейн, VR, вычислительную фотографию, машинный перевод и многое другое.
- For Web — блог в Twitter с полезными материалами для фронтендеров: свежие статьи, доклады и инструменты от сибирского разработчика Андрея Романова.
Искать решение своей проблемы и задавать вопросы стоит на англоязычных форумах, как специализированных, так и не очень. Есть два популярных варианта:
- Reddit — популярный форум на все темы подряд, на котором часто сидят опытные разработчики, выкладывают свои кейсы и комментируют другие публикации. Найти их можно по тегу «programming».
- Stack Overflow — закрытый клуб для программистов без рецептов и котиков. Здесь можно запросить у опытных коллег code review, комментировать публикации и давать им оценку.
- CyberForum — форум программистов, системных администраторов, где помогают в решении задач по программированию.
- Game Dev — форум, на котором разбирают создание игр и все, что с ним связано.
Роман Моисеенко, технический директор и сооснователь Мерката:
Что касается ресурсов, к которым стоит обратиться в случае, когда нужных знаний нет или они просто позабыты за давностью лет, то скорее это не учебники, а Google и Хабр. Как правило, задача стоит не в самообразовании или восполнении недостающих знаний, а в вспоминании конкретного материала или нахождении наиболее эффективного математического инструмента для решения конкретной задачи. И вот на Хабре зачастую встречаются очень хорошие статьи по применению той или иной математики к решению конкретных задач, а особенно ценны комменты, где порой идет очень живое обсуждение плюсов и минусов описанного подхода.
Константин Третьяков, руководитель отдела сопровождения санкт-петербургского филиала компании «1С-Рарус»:
Самые лучшие программисты — те, кто понимают, насколько ограничены их возможности. Совершенствование во многом достигается опытом, но самообразование тоже должно быть. Причем это не только книги и курсы — например, практикующему программисту очень помогает общение на форумах. Иногда именно там можно найти решение сложной задачи и взять его на вооружение.
Тем, кто, как я, решил связать свою деятельность с 1С, я рекомендовал бы начать с изучения возможностей платформы, прочесть книгу М. Радченко «Практическое пособие разработчика», а также воспользоваться материалами ресурса «курсы-по-1с.рф». Добавлю, что в среде 1С понадобится минимум 3-5 лет, чтобы выйти на приличный уровень, и программирование здесь далеко не единственный необходимый навык.