Введение в программирование
Содержание:
- Чем занимается программист?
- Специфика профессий
- Это неинтересно
- Мифы профессии
- Что еще интересного на GeekBrains?
- Оплата труда
- Ступеньки карьеры и перспективы
- Интересные факты
- Программисты шутят
- Пошаговый план для начинающего разработчика
- Ресурсы для обучения
- Интересные факты
- Как научиться программированию на C++ с нуля
- Профильные науки
- Front-end веб-разработчик
- Требования к программисту
- Заключение
Чем занимается программист?
Основная задача специалиста по программированию — написание кодов для запуска и успешной работы программ и приложений. Что входит в понятие программа: видеоигра, мобильное приложение, настройки кухонного комбайна или холодильника, операционная система компьютера, настройки для рентгеновского аппарата. Для написания алгоритмов он использует специальные компьютерные языки. Они, как правило, состоят из ряда специальных символов и слов. Языков программирования огромное множество — каждый выбирает тот, с которым ему комфортнее всего работать и какой подходит для решения определенной задачи. Если специалист может работать одновременно с 4 и более языками, он может считаться мастером высокого уровня.
Сегодня существует некая подмена понятий. Многие ошибочно полагают, что программист — человек, который создает код для работы программ, компьютерщик — работник, который выполняет ремонт компьютеров, и IT-специалист — это все одна и та же работа. Это вовсе не так. Каждый из этих людей занимается своим делом и имеет четко определенные обязанности. Если вы хотите быть именно программистом, то вы будете работать именно с кодами.
Существует несколько направлений:
- Системные специалисты;
- Прикладные;
- Веб.
Системные программисты создают операционные системы. Прикладные занимаются разработкой приложений для развлечений, обучения, работы. Веб-программисты создают интернет-страницы и программное обеспечение для них.
Для обучения необязательно заканчивать университет, программистом можно стать после обучения в колледже или на специальных курсах. Главное, следовать за мечтой и не опускать руки.
Специфика профессий
Существует ряд специальностей, для которых необходимо перечислить знание программ, помогающих работать. Конечно, начать описание лучше с общих сведений об уровне владения компьютером и умении работать с основными программами. Например, в резюме бухгалтера эта графа может выглядеть следующим образом:
Неплохо будет, если претендент на должность менеджера по продажам помимо списка основных программ ПК укажет также знание специализированных. В его резюме указанный раздел графы «профессиональные навыки» может выглядеть так:
Уровень грамотного пользователя. Навыки поиска специализированной информации в интернете, опыт работы с различными браузерами (в том числе Explorer, Opera, Chrome и прочие). Знание основ работы с операционными системами Linux и Windows, основных офисных программ, текстовых и графических редакторов (Word, WordPad, PowerPoint, Access, Paint, Excel, Photoshop). Навыки работы со специализированными системами «БЭСТ», 1С:Предприятие (спецификация «Торговля и склад»), опыт работы с системой CRM, регулирующей взаимоотношения с клиентами.
Если должность требует более глубоких знаний определенных программ, то их необходимо указать. Так, на должность PHP-программиста можно помимо умения работать с ПК, могут понадобиться следующее: знание PHP, API соц.сетей, WordPress API, CSS, HTML, JS, CSS.
В последнем случае ориентироваться необходимо на свои знания и на требования работодателя.
Если освоение новых программ не вызывает у вас трудностей, это стоит отметить в окончании раздела.
Это неинтересно
Многим разработчикам действительно комфортно делать такие приложения, потому что это уже протоптанная дорожка и можно найти кучу материалов по этой теме.
Но они сразу их бросят, когда поймут, что выросли достаточно, чтобы начать что-то более серьёзное. Зачем цепляться за проект, который вы начали только потому, что он простой?
Я считаю, что браться за что-то стоит только в том случае, если вы искренне заинтересованы в этом и горите идеей. Тогда у вас будет эмоциональная связь с проектом.
Конечно, ненавидеть своё детище будете в любом случае — с каждым днём будете всё яснее понимать, что делали фигню. Что вообще всё тут надо сжечь и переписать.
Если нет эмоциональной связи, то вы теряете интерес и бросаете проект, чтобы начать что-то другое и на этот раз сделать всё правильно. А потом делаете то же самое с новым проектом. И с ещё одним / двумя / пятью / десятью / пятьюдесятью. Разумеется, вы получите опыт, но вместе с ним — и груз в виде брошенных проектов.
Мифы профессии
А если программист ещё и геймер… Всегда можно найти пару 😉
Программисты гребут деньги лопатой. Нет. С одной стороны, заработные платы в ИТ-сфере действительно выше других отраслей и, как показала эта чумачечая весна, ИТ ещё и более защищена, приспособлена к активной удалённой работе. Однако чтобы пройти путь до зарплаты выше рынка, нужно получить более низкую зарплату, а иногда так даже пройти бесплатную стажировку — не ради денег, а ради знаний, навыков и связей. На высоких позициях заработные платы действительно могут достигать 500 тыс. рублей в месяц, и к этому нужно стремиться. Но если вы на первом своём собеседовании на должность программиста пренебрежительно закидываете ногу за ногу и просите «сотню на руки» в столице или «сороковник» в регионах, вы проиграли. Лучше устроиться, показать результат и попросить повышение: эффективным программистам редко отказывают.
Программисты часто болеют. Увы, отчасти это правда. Сидячая работа, руки на мышке и клавиатуре, ненормированные режимы сна и питания зачастую играют злую шутку и вместе с опытом и карьерным ростом приходят лишний вес, одышка, сахарный диабет, гипертония, заболевания ЖКТ, заболевания опорно-двигательной системы, туннельный синдром и даже психические расстройства. Но это случается только с теми, кто полностью погружается в работу и забывает о себе
Регулярный спорт, правильное и регулярное питание, перерывы (не перекуры и не перекусы!), грамотно организованное рабочее место, подобранные добавки и витамины, активное общение с коллегами, сообществом, друзьями и семьёй, чтение — полезные привычки, которые сохранят ваше здоровье и, что немаловажно, обеспечат отличное функционирование мозга.
Программист имеет низкий потолок в карьере. Нет, любой программист имеет возможности горизонтального и вертикального роста
Программист может расти как внутри программирования, так и в управлении разработкой до тимлида, CTO, CIO и т.д. При наличии хорошей идеи талантливый программист и хороший управленец может открыть своё дело и расширить горизонт навыков на максимальную величину.
Программистов заменят роботы. Буду краток. А кто роботов будет программировать? 😉
Что еще интересного на GeekBrains?
Тесты
Сомневаешься, пойти на начальный курс или сразу на продвинутый? Потрать 15 минут на тест и определи уровень своих знаний.
Форум
За все время на форуме было поднято несколько сотен тем и с помощью поиска вы можете найти решение многих программистских проблем. Здесь не надо бояться задавать самые простые вопросы, к новичкам относятся с пониманием и уважением.
Блог
В блоге компании регулярно публикуются статьи на разные темы связанные с программированием, гаджетами и IT-бизнесом. Любой участник сообщества GeekBrains может предложить свою статью для публикации на портале. Лучшее из присланного проходит модерацию и становится доступным для читателей.
Оплата труда
Ступеньки карьеры и перспективы
Успешный начинающий программист в будущем может претендовать на должности: руководитель группы программистов, менеджер проекта, IT-директор.
Интересные факты
13 сентября, в 256-й день года, программисты неофициально отмечают свой профессиональный праздник. Число 256 выбрано людьми, вдыхающими в компьютерное железо «душу», потому что это количество целых чисел, которое можно выразить с помощью одного восьмиразрядного байта, а также это максимальная степень числа 2, которая меньше 365 – количества дней в году.
В календаре профессиональных российских праздников День программиста появился в 2009 г. В июле этого года Министерство связи и массовых коммуникаций России подготовило и внесло в правительство проект указа президента РФ «О Дне программиста». Специалисты министерства решили от традиции не отступать и определить День программиста на 256-й день года – 13 сентября, а если год високосный, на 12 сентября.
Программисты шутят
Житейские мудрости из жизни web-программистов:
- Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно.
- Если к вам перестали поступать жалобы на вашу программу, значит, ею уже никто не пользуется.
- Чем универсальнее написана программа, тем меньше найдется мест, где можно было бы ее применить.
- Чем точнее программист выполняет требования заказчика, тем бестолковее получается программа.
- Чем больше заказчик понимает в программировании, тем больше он мешает работе.
- Ошибки легче всего делаются и труднее всего обнаруживаются в самых простых местах программы.
- Нет более живучих программ, чем заплатки, сделанные на скорую руку.
- Чем чаще программист жалуется на чужой soft, тем хуже он делает свой.
И напоследок: программист ставит себе на тумбочку перед сном два стакана: один с водой – на случай, если захочет ночью пить, а второй пустой – на случай, если не захочет.
Пошаговый план для начинающего разработчика
Для начала, я бы порекомендовал определиться, с какой целью вы изучаете программирование и в каком направлении хотите начать, говорит Андрей Сорокин, Senior Frontend Developer в Сити-Мобил. Это могут быть разные цели: создание сайтов, мобильных приложений, веб приложений, работа с данными. Для этого в сети полно вводного материала по каждой теме (статьи, видеоролики на youtube). Также, не будет лишним узнать и про базовые вещи любого IT-специалиста, такие как: что такое ОС, как работает сеть, командная строка.
После того, как вы определились с направлением, можно попробовать бесплатные курсы. Главная задача при этом понять, что Вам это действительно интересно, иначе Вам будет очень тяжело и вы каждый раз будете задумываться, надо ли вам это.
Если вы успешно прошли этот этап, то тут уже есть несколько сценариев: Пойти на платный курс, продолжить самостоятельное обучение, поступить в ВУЗ.
Первый вариант самый простой и подходит для тех, кому трудно находить и разбирать информации самостоятельно. На курсах вам преподают информацию структурировано и дают задания, в которых вы закрепляете знания.
Второй вариант уже более сложен, для тех, кому легко задать себе вопрос и найти на него ответ в интернете. При этом я советую ставить себе маленькие цели и решать их с помощью найденной информации. Например, я хочу сделать мобильное приложение — калькулятор. Сделав поиск по этой теме и реализовав такой функционал, вы применяете только что полученные знания на практике и почувствуете, что не зря потратили на это время.
Прежде, чем поступать в ВУЗ, нужно узнать о том, что будете изучать. Ведь может быть так, что хотите быть веб-разработчиком, а в университете преподают язык C++. В таком случае все равно придется изучать информацию самостоятельно, чтобы достичь своей цели. К тому же, это самый долгий вариант, при котором будут более глубокие знания в математике, алгоритмах и информационных системах, но не будет такого быстрого вхождения в профессию и практику.
Ресурсы для обучения
Есть много вариантов, как стать разработчиком. Вы либо заканчиваете факультет информатики в университете, либо проходите курсы программирования, либо обучаетесь сами. В любом случае, вам постоянно нужно будет обновлять материалы для обучения. Поскольку я отношусь к последней категории, я расскажу вам, как фильтровал ресурсы.
Начните с онлайн-курсов
В самом начале начните с простых для понимания и обучения платформ вроде Codecademy. Там вы сможете читать инструкции и сразу же применять знания на практике благодаря встроенному текстовому редактору. Результаты будут отображаться на экране. Просто зарегистрируйтесь бесплатно, выберите технологию, которой хотите обучиться, и начинайте.
Еще один очень полезный ресурс для новичков – freeCodeCamp. В отличие от Codecademy, где нужно платить за полный курс, freeCodeCamp предлагает бесплатные уроки. Они даже выдают сертификаты, когда вы заканчиваете каждую большую секцию. Помимо этого, на freeCodeCamp вы можете найти проекты, где сможете применить полученные навыки.
Как выбрать правильный ресурс для обучения
Этот процесс довольно сложный – и не потому, что есть лишь несколько надежных источников. На самом деле, вы найдете массу онлайн-курсов, и это может вас запутать. Сложно выбрать конкретный путь, и вы, вероятнее всего, потратите много времени на то, чтобы попробовать каждый.
Прежде чем просить у кого-то совета, где вам следует учиться, или искать на эту тему информацию в интернете, спросите сначала себя. Почему? Потому что есть различные типы источников – видео, книги, онлайн-курсы. Только вы знаете, какой метод подходит вам лучше всего.
Фото: Unsplash
Лично мне нравится смотреть видео и писать код параллельно со спикером. Возможно, вы предпочитаете читать, чтобы полностью контролировать скорость обучения. В таком случае вам лучше искать известные книги.
Кроме того, попробуйте поискать информацию на Medium – там вам предложат множество ресурсов для обучения, и вы сможете выбрать для себя наиболее подходящий.
Видео
- LearnCode.academy – туториалы
- Traversy Media – туториалы
- Academind – туториалы
- The New Boston – туториалы
- LearnWebCode – туториалы
- Rally Coding – туториалы
- LevalUpTuts – туториалы
- DevTips – туториалы
- Coding Tech – туториалы
- freeCodeCamp – туториалы
- Coding Tech – выступления на технической конференции
Книги
Знакомство с языками программирования
- Марейн Хавербек «Выразительный JavaScript»
- Кайл Симпсон «Вы не знаете JS: Асинхронность и Производительность» (англ. – You Don’t Know JS: Async & Performance)
Технологии и дизайн
- Джин Ким, Кевин Бер, Джордж Спаффорд «Проект “Феникс”» (англ. The Phoenix Project)
- Стив Круг «Не заставляйте меня думать»
- Дональд Норман «Дизайн привычных вещей»
Интересные факты
Возникновение программирования как рода занятий и, особенно как профессиональной деятельности, трудно датировать однозначно.
Часто первым программируемым устройством принято считать жаккардовый ткацкий станок, построенный в 1804 году Жозефом Мари Жаккаром, который произвел революцию в ткацкой промышленности, предоставив возможность программировать узоры на тканях при помощи перфокарт.
Первое программируемое вычислительное устройство — аналитическую машину — разработал Чарлз Бэббидж (но не смог ее построить). 19 июля 1843 года графиня Ада Августа Лавлейс, дочка великого английского поэта Джорджа Байрона, как принято считать, написала первую в истории человечества программу для аналитической машины. Эта программа решала уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости.
В своей первой и единственной научной работе Ада Лавлейс рассмотрела большое число вопросов. Ряд высказанных ею общих положений (принцип экономии рабочих ячеек памяти, связь рекуррентных формул с циклическими процессами вычислений) сохранил свое принципиальное значение и для современного программирования. В материалах Бэббиджа и комментариях Лавлейс намечены такие понятия, как подпрограмма и библиотека подпрограмм, модификация команд и индексный регистр, которые стали употребляться только в 1950-х годах.
Однако ни одна из программ, написанных Адой Лавлейс, никогда так и не была запущена.
Аду Августу, графиню Лавлейс, принято считать почетным первым программистом (хотя, конечно, написание одной программы по современным меркам не может считаться родом занятий или профессиональной деятельностью). История сохранила ее имя в названии универсального языка программирования Ада.
Первый работающий программируемый компьютер (1941 год), первые программы для него, а также (с определенными оговорками) первый язык программирования высокого уровня Планкалкюль создал немецкий инженер Конрад Цузе.
Имена людей, впервые начавших профессионально выполнять работу собственно по программированию (в отрыве от наладки аппаратуры компьютера), история не сохранила, так как поначалу программирование рассматривалось как второстепенная наладочная операция.
Как научиться программированию на C++ с нуля
Если вы хотите научиться разработке C++, то у вас есть 3 пути:
- Заниматься самостоятельно, например, по учебникам или урокам из интернета.
- Учиться в вузе на факультете информатики или программирования.
- Освоить профессию с нуля на онлайн-курсе для начинающих программистов.
Самостоятельно
Несколько рекомендаций, как изучать разработку на C++ самостоятельно:
- Выберите учебную литературу. Новичкам будут полезны следующие книги: «С++ для чайников» от Д. Стефана, «Язык программирования С. Лекции и упражнения» от С. Прата, «Полное руководство по С++» от Г. Шилдта.
- Найдите дополнительные материалы для самообучения: самоучители, видеоуроки на Youtube, скринкасты от опытных программистов C++, онлайн-тренажеры для отработки навыков, форумы разработчиков, где можно задавать вопросы и пр.
- Научитесь работать в операционной системе Linux, поскольку вам будет проще настроить ее под свои задачи, когда вы начнете программировать.
- Начинайте с основ – узнайте, что такое компиляция, сборка проекта, переменные, функции, циклы и массивы, базовый синтаксис C++.
Как мы уже сказали ранее, язык считается одним из самых непростых в изучении, поэтому при самообучении у вас будут трудности: никто не объяснит сложную тему, не проверит код, не поможет найти ошибку.
Долгое время ваши практические навыки будут слабыми, поэтому есть риск, что вы забросите процесс еще в начале пути. Кроме того, у вас не будет документа об образовании и проектов в портфолио, поэтому с поиском работы также могут быть сложности.
В вузе
В институтах и университетах нет отдельной специальности по C++, на есть факультеты, на которых подробно изучают разные языки программирования: «Прикладная информатика», «Информационные технологии», «Программная инженерия». Вы получите фундаментальные знания в IT, высшей математике, логике, вычислительных системах и пр.
Обучение в вузе имеет не только плюсы, но и минусы:
- На то, чтобы получить образование, уйдет не менее 4 лет. Весь этот период вам придется посещать занятия, писать курсовые и сдавать экзамены.
- Учебный план содержит много второстепенных дисциплин, в том числе гуманитарных, например, историю или философию, которые не пригодятся вам в профессии.
- Большая часть уроков – теория, а не практика. После четырех лет обучения ваши практические навыки будут слабыми, из-за чего могут возникнуть сложности с трудоустройством.
На онлайн-курсах
Самый удобный и эффективный способ научиться программировать на C++ – пройти обучение на дистанционном курсе. Вы освоите профессию с нуля, примените свои знания на практике, сделаете несколько работ для портфолио. Онлайн-школа выдаст вам диплом или сертификат и поможет с трудоустройством.
Кратко расскажем о главных преимуществах online-курсов:
- Свободный график. У вас не будет жесткого расписания – если вы не сможете подключиться к видеоконференции, то посмотрите запись лекции в удобное время. Видеоуроки хранятся в личном кабинете и остаются после окончания курса.
- В школе преподают разработчики с большим опытом. Они доступно, простым языком, с примерами объясняют сложные темы, дают рекомендации по коду, делятся лайфхаками. Если у вас останутся вопросы после урока, то на них ответит куратор.
- Теорию сразу же закрепляют на практике. У вас будут домашние задания с проверкой, практика на тренажерах, опыт командной разработки. К концу обучения вы подготовите собственные проекты, например, онлайн-сервис, игру или сервер.
Подборка курсов
Все онлайн-курсы по разработке на C++ в 2021 году
Посмотреть подборку
Профильные науки
Так уж сложилось, что программы в основном пишутся, чтобы решать практические задачи обычных людей:
- найти ближайший магазин;
- решить домашку по математике;
- рассчитать стоимость строительства;
- отредактировать фотографию;
- создать 3D-модель;
- сохранить запись в базе данных;
- проанализировать статистику;
- перевести текст.
Чтобы успешно разрабатывать приложения для решения этих задач, нужно уметь справляться с ними самостоятельно. То есть если приложение предназначено для того, чтобы рисовать графики, то разработчик должен знать, как и зачем люди это делают, чтобы программа соответствовала требованиям пользователей. Иначе он не сможет создать ничего полезного.
Нужно: всем.
Front-end веб-разработчик
Если мы заходим на сайт и там есть кнопочки, которые меняют местоположение и цвет при наведении на них мышкой, то это дело рук front-end разработчика. Он пишет весь код на JavaScript, который выполняется без перезагрузки страницы на стороне клиента.
Где работает?
В серьезных фирмах, занятых созданием сайтов и веб-приложений. Разделение фронтенда и бекенда один из признаков наличия в компании определенного уровня культуры разработки.
Что делает?
Разрабатывает динамику пользовательского интерфейса. Если в компании нет верстальщика, то еще и переводит PSD-шаблоны в HTML-код.
Технологии
- HTML и UI фреймворки (Bootstrap, Foundation, Pure);
- CSS и препроцессоры (SASS/LESS);
- JavaScript + фреймворки/библиотеки на этом языке (Jquery, ReactJS, AngularJS, BackboneJS);
- Утилиты для сборки проектов (Grunt, Gulp, Bower).
Требования к программисту
Программист должен обладать острым умом, развитой логикой и вниманием. Так как программирование всё время бурно развивается, то необходимо уметь быстро адаптироваться к новым условиям и быть готовым постоянно изучать новые технологии
Иначе его ценность как профессионала будет со временем снижаться.
Для части программистов, которые не занимаются фрилансом или собственными разработками, важно уметь работать в команде с использованием разнообразных современных методологий: SCRUM, KANBAN, AGILE и других. Для продвижения по карьерной лестнице и работы в управлении проектами или ведущим программистом, то крайне желательны навыки управления коллективом и задачами, способность нести личную ответственность за выполнение поставленных задач
Такие качества как самостоятельность, ответственность и инициативность важны для любой профессии и программисты исключением не являются.
Ещё одним важным и необходимым требованием к программисту является владение английским языком на уровне чтения документации и справочной информации в оригинале. Все новинки и современные технологии разрабатываются за рубежом и лучше читать информацию в первоисточнике.
Заключение
Я довольно давно работаю преподавателем на образовательных онлайн-платформах, рассказывает Алексей Шепелев. Видел много ребят, которые хотели бы освоить профессию программиста. Кто-то из них работает в кафе, а кто-то домохозяйка. Все с совершенно разным жизненным опытом и возрастом. Но они прекрасно делятся на 2 основные группы: те, кто прошёл курс полностью и выполнил все домашние задания и те, кто бросил начатое на полпути.
Мне кажется, что ключиком к успеху вхождения в IT является самомотивация. Сейчас в интернете существует огромное количество курсов по любым языкам программирования — платные и бесплатные. Преподаватели и менторы на любой вкус. Осталось только этого очень захотеть. Заставить себя начать учить что-то новое и не бросить обучение на полпути.
Если вы уговорили сами себя, почему вы не видите свою дальнейшую жизнь без программирования — отлично, полдела сделано. Думаю, сначала стоит попробовать себя в веб-разработке. Первым языком программирования я бы выбрал JavaScript — его в любом случае придётся учить. Затем выбираем то, как мы будем учиться. Если есть деньги на курсы, то идём на какую-нибудь авторитетную образовательную платформу. Там учиться будет намного проще. Если денег нет — то youtube ваш верный друг. Главное — идти до конца и никогда не бросать начатое, какие бы трудности вас ни поджидали на пути.