Профессия программист

Практиковаться на реальных проектах

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

Еще немного лайфхаков для новичков в интервью с разработчиком.

Если у вас пока нет работы программиста, начинайте писать свой стартап-проект. Разумеется, из этого ничего не выйдет — в 99,99% случаев так и происходит. Зато вы получите бесценный опыт и «потрогаете» программирование своими руками.

Pascal и Delphi — самые строгие учителя

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

Почему Pascal?

Если мы говорим именно об обучении программированию с самых основ, то начинать нужно на Pascal или Delphi.

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

Пример программы на Pascal.

Такие языки, как PHP и Node.js, позволяют разработчику очень много вольностей в процессе написания кода. В результате без необходимых знаний о том, как правильно программировать, вы с большой вероятностью получите «грязный» код со множеством ошибок.

Пример ужасного PHP-кода при условии, что в свойстве active передаются строки ‘true’ и ‘false’:

$len = strlen($r->active);if ($len == 4) {$a = true;} else {$a = false;}if ($a){//do something}

А так выглядит корректный код:

if ($r->active == ‘true’){//do something}

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

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

Почему Delphi?

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

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

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

Пример тренировочных заданий по Delphi.

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

Начинаем писать под stm8, выбираем среды разработки и стартуем

Tutorial

На пути в программировании stm8 есть развилка, о ней сегодня и поговорим.
Определимся что речь будет идти о средах которые могут писать под си. Для начала поговорим о подходах, я выделю 2 основных.
Первый установка ST Visual Develop и выбор в качестве компилятора COSMIC Бывший платный, а ныне бесплатный, но со своими заморочками; регистрация, получение ключа, и прочие танцы с бубном.
Второй же вариант, более простой VS Code + PlatformIO и компилятор SDCC полностью свободный. И опять же не все так просто. Sdcc не умеет исключать не используемые функции. Я решил этот вопрос хоть и успешно, но не без дополнительных действий при написании кода.

Про синтаксис и семантику в программировании

Легко ли научиться говорить на иностранном языке? Можно выучить все буквы, много слов, грамматику по учебнику. Но вот чтобы заговорить – потребуется практика общения. Аналогично в программировании.

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

В процессе написания программ, увы, ошибки возникают. Аналогично мы можем совершать ошибки, говоря на иностранном языке. Нас могут не понять. Компьютер тоже может не понять написанное программистом. Это и есть ошибки.

Ошибки бывают, во-первых, синтаксические. Вместо UP напишем по ошибке AP, или вместо ELEPHANT запишем ELEFANT. Можем подобным образом ошибиться? Почему бы и нет. Синтаксические ошибки находит транслятор языка программирования (тот, что был написан ранее другими программистами) и показывает их программисту. Мол, что это за AP? Нет такого слова в синтаксисе языка. Исправляй, пожалуйста!

В распространенном текстовом редакторе Microsoft Word компьютер тоже указывает на синтаксические ошибки. Редактор подчеркивает ошибочные слова красным цветом. Скажем, мы печатаем ошибочное слово, которого, возможно, нет в нашем родном языке. В ответ редактор Word подчеркивает неправильное слово красным цветом и, порой, сразу предлагает варианты исправлений. Похожим образом программист может видеть синтаксические ошибки в текстах написанных им программ (в написанном коде).

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

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

Веб и интернет

Веб — самая про­стая область для стар­та. Сюда отно­сит­ся всё, что мож­но посмот­реть или сде­лать в браузере:

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

Вот базо­вый набор любо­го веб-разработчика:

  • HTML,
  • JavaScript (это не то же самое, что Java),
  • CSS. 

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

Что ещё почитать:

  • Как сде­лать стра­ни­цу «О себе»
  • Как сде­лать сайт за 10 минут без программирования
  • Раз­би­ра­ем­ся в CSS и оформ­ля­ем всё красиво
  • Чёр­то­вы пси­хи: как доба­вить сне­жи­нок на любой сайт одной строкой

Кто такой программист

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

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

Программисты обладают такими качествами, как:

  • стрессоустойчивость,
  • внимательность,
  • усидчивость,
  • ответственность,
  • креативность.

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

Статистика

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

  • день недели и время публикации;
  • формат статьи;
  • объем;
  • затраты на рекламу;
  • тема;
  • автор;
  • язык;
  • количество ключей.

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

Полезная литература:

  • Чарльз Уилан. «Голая статистика».
  • Савельев&nbspВ. «Статистика и котики».

Нужно: аналитикам, ученым, разработчикам ИИ.

Ступеньки карьеры и перспективы

Хорошим стартом карьеры может стать присоединение к группе программистов при разработке какого-либо проекта

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

Проблема «утечки мозгов» в этой профессии — одна из самых острых.

Программист может сделать карьеру до руководителя группы программистов (тим-лидер), IT-директора предприятия, менеджера IT-проекта и т.п. В ходе работы программист может перемещаться в рамках своей специальности, совершенствуясь профессионально.

Как подойти к выбору специализации и направления?

Веб-разработка — пожалуй, самое популярная и понятная новичкам специализация в IT. Если вам пока кажутся сложными профессии DevOps-инженера, data scientist, Python-разработчика, выбирайте именно веб-разработку.

Но не все так просто — вслед за специализацией нужно выбрать и направление для работы. В разработке сайтов их три:

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

По данным исследования HeadHunter и «Яндекс.Практикума», фронтенд-разработчики — самые желанные среди работодателей, и спрос на них продолжает расти: за 2016-2018 годы количество вакансий выросло на 20%. Средняя медианная зарплата новичков в этом направлении — 45 тысяч рублей. Фулстек-разработчики менее популярны, но доля вакансий для них выросла за это же время в два раза, а средняя медианная зарплата на стартовой позиции составила 63 200 рублей.

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

Google I/O: что нового представили Android-разработчикам

Перевод

Перевод официального анонса с комментариями от Android Developer Surf Олега Жило.

Как Android разработчики мы стремимся создавать опыт, который будет радовать людей по всему миру. Работа разработчика не становится легче: сейчас, когда люди зависят от ваших приложений больше, чем когда-либо, их ожидания значительно выросли. Сегодня в рамках Google I/O мы рассказали о том, как мы помогаем разработчикам в создании красивых и качественных приложений. Мы представили Android 12, который получил масштабное обновление дизайна интерфейса, показали Jetpack, Jetpack Compose, Android Studio и Kotlin. Также мы помогаем увеличить охват ваших приложений будь то поддержка носимых устройств или устройств с большим экраном. Вы можете посмотреть полную версию Developer Keynote, но в этой статье мы расскажем обо всех ключевых пунктах конференции.

Не знаешь, с чего начать? Протестируй это

Требования к поступающим: немного школьной математики будет кстатиЧто понадобится в учебе: усидчивость, внимательность, любовь к деталямКому понравится: дотошным и усидчивым; кому нужен быстрый старт карьерыСколько зарабатывают начинающие специалисты: ~50-100 тыс. рублей

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

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

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

Учебная программа комплексно имитирует работу тестировщика: человек вливается в коллектив в роли «стажера», постепенно повышая знания и навыки до уровня начинающего QA-инженера.

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

Используют и Selenium, и баг-трекеры. Все по-взрослому. Заодно появится активный аккаунт на GitHub и ряд проектов в портфолио. Так что работа найдется без труда.

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

Тестировщики, умеющие писать автотесты — бесценны

Ещё и время прохождение курса не ограничено. Поэтому можно учиться в собственном режиме, совмещая с текущей работой или учебой.

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

Знания про запас

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

Поэтому студенту трудно различить, где что-то важное, а где то, что никогда не пригодится

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

Продвинутые ученики, напротив, прямо сейчас ищут и изучают то, что нужно для решения задачи. Они ищут ответы в Интернете, задают вопросы на форумах,  спрашивают на StackOverflow. То есть они активно накапливают знания, которые сразу применяют и получают пользу.

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

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

Ангелина Филиппова

училась на курсах Pluralsight, Codeacademy, Moscow Coding School и hexlet.io

Я начала учиться на английском в Pluralsight (ранее Code School) и Сodecademy, потому что сначала хотела разобраться в основах и понять, стоит ли продолжать. За пару месяцев нерегулярных занятий я прошла все курсы по HTML, CSS и JavaScript. Уроки на этих сайтах разбиты на маленькие задания, все понятно, и при выполнении задач не возникает никаких проблем. После нескольких курсов у меня появилось ощущение, что я уже что-то знаю, но самостоятельно сделать пока ничего не могу. Я думаю, что Pluralsight и Codeacademy — лучший способ начать, хотя там не рассказывают о многих аспектах работы программиста, без которых не обойтись.

Потом я увидела рекламу курсов фронтенд-разработки от Moscow Coding School, программа понравилась мне и мужу, который помогал мне учиться. Курс занял около 40 часов, плюс домашние задания. Тогда программу можно было пройти за 3 недели, занятия длились 6 часов по выходным. Большую часть того, чему нас учили, я уже знала, да и вообще занятия в группе, когда все время нужно кого-то и чего-то ждать, оказались не для меня. С другой стороны, было полезно получить рецензию на свой код и иметь возможность задать вопрос учителю офлайн, потому что иногда код может работать, но при этом он очень плохой. Самым полезным навыком, полученным на курсе, стало умение правильно дебажить код (искать ошибки в программе. — Прим. ред.). В плане обратной связи офлайн-формат удобнее, но зачастую это лишает тебя возможности самому найти решение и научиться чему-то.

Минусы и подводные камни

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

Сильная нагрузка на глаза

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

Сидячий образ жизни

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

Необходимость учиться всю жизнь

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

Необходимость тратить очень много свободного времени на обучение

Недавно на Хабре была статья про человека, который готовился к марафону Ironman. Так вот, его тренер в числе первых вопросов спросил, как к его решению относится семья. Думаю, и на IT-курсах у семейных людей должны спрашивать то же самое. Потому что в ближайшие год-два, при условии, что вы хотите расти как разработчик, вам нужно будет уделять обучению и работе очень много времени. И забирать это время будете у семьи. А про какие-то хобби и праздные тусовки вообще можете забыть. Если у вас прокачанные навыки тайм-менеджмента, будет проще. Если вы и сейчас как белка в колесе ничего не успеваете, будет очень сложно.

Скромная зарплата на первое время

Уже в нескольких статьях мы писали, что школы программирования осознанно создают миф об огромных зарплатах. Мелькают цифры 100, 120, 150 тысяч рублей. Так вот, на первых порах о таких зарплатах можете забыть, если, конечно, живете не где-нибудь в Калифорнии. В провинции, даже в городе-миллионнике, вам для начала будут платить 20-35 тысяч рублей. В Москве в районе 30 — 70 тысяч рублей.

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

Где получить опыт?

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

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

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

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

Программирование

Почему это важно

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

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

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

Экономика образования

Почему программирование — новая грамотность и зачем учить этому детей

Где можно применить

Это зависит от языка программирования. В быту легко применять Arduino, Java, Java Script: на Arduino можно программировать микроконтроллеры для детских игрушек на радиоуправлении, бытовых приборов; на Java можно написать приложение для телефона; на Javascript сделать сайт, который будет собирать запросы пользователей, например, заказы покупателей.

Менеджерам, аналитикам и маркетологам может пригодиться Python, чтобы работать с данными в таблицах и базах, иногда базовых знаний достаточно, чтобы настроить макросы в Excel.

Разработчик подбирает языки под задачи: серверы пишут на PHP и Go, движки для игр — на C# и C++, мобильные приложения создают на Java и Kotlin, системные приложения пишут на C.

Средние компании

  • Компании численностью от 100 до 1 000 сотрудников;
  • Медианная оценка в данной весовой категории — 4,4 из 5;
  • Оценку прошли 56 компаний (их рейтинг).
Компания Оценка Лучшие качества
Кнопка — аутсорсинг бухгалтерии.
→ Подробная оценка
4,86 1. Современные технологии
2. Адекватная зарплата
3. Комфортные условия труда
5. Профессиональный рост
6. Карьерный рост
7. Отношения с коллегами
8. Грамотность менеджмента
9. Связь с топ-менеджментом
Solit Clouds — продуктовая и заказная разработка.
→ Подробная оценка
4,83 1. Интересные задачи
2. Адекватная зарплата
3. Отношения с коллегами
4. Признание результатов труда
5. Связь с топ-менеджментом
6. Компания делает мир лучше
Wrike — сервис для эффективной совместной работы.
→ Подробная оценка
4,79 1. Социальный пакет
2. Комфортные условия труда
3. Профессиональный рост
4. Карьерный рост
5. Грамотность менеджмента
Haulmont — разработка программного обеспечения.
→ Подробная оценка
4,79 1. Комфортные условия труда
Добавить комментарий

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

Adblock
detector