e29516cf

Какой ты программист: каким ты станешь программистом

3 признака, что вы станете хорошим программистом

Диагностируем задатки.

14 апреля 20164 минуты25661

Эксперты компаний Acronis, КРОК, Mercaux Inc., «СТРИМ», ICL Services и Bell Integrator рассказали, по каким признакам определяется «предрасположенность» к программированию. Что же делает вас потенциальным разработчиком?

У вас математический склад ума

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

Если из этого исходить, то один из главных признаков того, что у человека есть талант к программированию — это наличие аналитического склада ума, то есть склонности к изучению, анализу и выстраиванию в „законченные формы“ любой информации, которую он получает» — говорит Антон Енакиев, Вице-президент Acronis по разработке.

«Нужно дружить с математикой, как говорил один русский ученый, „она ум в порядок приводит“» — соглашается Сергей Стрелков, руководитель направления собственных разработок компании КРОК.

Любимый вопрос новичков или «насколько программисту нужно знать математику?»

«„Математический склад ума“ в контексте программирования вовсе не синонимичен типичному представлению об „ученом-математике“, которых обычно изображают в фильмах. Программист — это не Рассел Кроу в роли нобелевского лауреата Джона Нэша, погруженный в цифры и постоянную аналитику.

В 90-95% своей работы программисты используют только базовый математический аппарат, и лишь в 5-10% задач необходимы глубокие знания математики.

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

Какая именно нужна математика рассказывает Алексей Светлов, руководитель отдела разработки технического департамента ООО «Стрим»: «Основа программирования — дискретная математика. И хороший программист должен любить и понимать этот предмет.

Обратите внимание

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

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

«Можно не знать досконально теорию вероятностей и высшую математику, но линейная алгебра должна быть неотъемлемой частью мышления в решении большинства задач или „записана на подкорке мозга“ (как говорят некоторые учителя) — это врожденная грамотность, но в математическом смысле» — считает Воротников Денис, ведущий веб-программист Mercaux Inc. 

Вы ленивы

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

А ленивому программисту лень писать много кода — он будет искать способ, как сделать меньше работы с тем же результатом» — объясняет Алексей Светлов, руководитель отдела разработки технического департамента ООО «Стрим».

Вы любите решать нестандартные задачи

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

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

Альтернативный экспресс-тест на склонность к программированию

А вы сможете создать алгоритм приготовления яичницы, не только в «идеальных» условиях, но и придумать несколько успешных альтернативных вариантов, а также создать алгоритм приготовления при исключительных, ошибочных исходных условиях? 

«Если человек сможет расписать по шагам как приготовить яичницу, указав не только happy путь, а так же exceptional и alternative, тогда точно сможет стать программистом» — утверждает Николай Каштанов, ИТ-эксперт ICL Services по предоставлению сервиса. 

Если говорить о личностных качествах, то Федор Зубарев, руководитель программ компании Bell Integrator считает, что чаще всего эти два типа людей потенциально могут стать хорошими программистами: «1-й: дотошные, пунктуальные, иногда занудные. Люди, готовые разбираться с любой мелочью, вникающие во все детали. 

2-й: люди творческие, немного неаккуратные в различных, в том числе и в бытовых, вопросах. Образование — профильное или чисто математическое»

Узнаете себя в одном из типов? Записывайтесь на бесплатный курс по программированию!

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

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

Если такая работа продолжает радовать, если хочется еще что-то поделать „для себя“ — поисследовать, изучить что-то новое — признаки таланта налицо.

» — убежден Сергей Стрелков, руководитель направления собственных разработок компании КРОК.

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

Начало усердной работы: профессия «Веб-разработчик».

Источник: https://geekbrains.ru/posts/good_diagnosis

Как не стать программистом или… тебе здесь не место

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

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

Ну а если ты в процессе самоопределения по данной профессии — you are welcome!

ТЕРМИНОЛОГИЯ

Согласно учебникам, программирование — это всего лишь процесс написания инструкций на каком-либо языке программирования (ЯП).

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

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

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

Важно

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

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

Самое главное умение в программировании, это научиться воспроизводить (исполнять) код в уме. Мозг программиста должен уметь запускать участки кода в уме. Вы прокручиваете цикл, вычисляете переменные и представляете, примерно, что будет на выходе.

Ощущение того, что вы чувствуете программу — очень важный этап в становлении программиста.

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

Горькая правда

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

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

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

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

Ответом было тупое молчание и недопонимание.

СТАНОВЛЕНИЕ

Наши дела обстоят так. Ты читаешь про алгоритмы, учишь любой язык, пишешь десятки различных мелких программ. Любых программ — для себя, для друга, просто чтобы разобраться с технологией и пр. И уделяешь этому МНОГО времени. Я еще раз уточню – МНОГО времени.

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

Вот оно! Отлично!

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

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

О языках

Существует много языков программирования, но особняком в это списке всегда стоял С++. Почему С++?

С++ — это минималистичный язык, возникший как набор макросов от ассемблеристов. Вернее сначала возник С. Но не в этом суть, я не историк.

Почему рядовой программист должен знать С++? Это примерно как священник, не знающий Библию. Как маркетолог, не знающий о правиле 4П. Как фотомодель без макияжа. Так и С++ — это тот самый необходимый багаж, который должен просто хотя бы лежать в голове на одной из полок.

Ты можешь не использовать С++ в действии, но ты должен знать его как канон, как основу всех основ.

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

А еще можно «выстрелить себе в ногу»)) так считал автор языка С++, господин Страуструп. Потому что таким инструментом, как С++, нужно очень грамотно владеть, чтобы пользоваться им виртуозно.

Также учтите, что часть современных языков взяла С++ за базу — Java, PHP, Perl, Ruby etc.

Все известные программы написаны исключительно на С++ (или С) — ОС Windows, ОС Linux, MacOS, iOS, Firefox, Kaspersky, Chrome etc.

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

Почему delphi не вариант?

Здесь я приму отчаянную попытку отговорить начинающих от программирования на Delphi. Pascal (IDE Delphi) — это программирование в рамках (ИМХО). Pascal — это язык, придуманный ученым Н. Виртом в 1970-ом году, в ходе разработки другого языка Модула-2.

Pascal широко использовался для изучения основ программирования, но коммерческое использование он получил только в 80-90-е годы.

За десятилетия правления Борланда и InPrise он превратился в монстра, заимствовав (украв) часть синтаксиса из С++.

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

Я в свое время немало людей перетащил с болота Delphi на C++, чему они сами были впоследствии несказанно рады. Будучи С++-программерами, они с ужасом вспоминали про Паскаль и больше не имели желания на нем программировать.

Совет

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

Читайте также:  Как оспорить оценку на экзамене: можно ли оспорить несправедливую оценку

Через 2 месяца Delphi (Pascal) покажется вам детским садом и вы перейдете на следующий уровень развития (в среднюю школу). А там уже и Python не за горами. Развивайтесь! А вам слабо? Сразу попрошу не разводить холивор по поводу кто круче — Дельфи или С.

Если Вы пишете на Дельфи хорошие коммерческие программы и ваши юзеры довольны продуктом, то значит все отлично. Пишите и дальше. Вы нашли свою нишу.

Использование яп

Теперь посмотрим на мировую статистику за 2015 год, так на чем все-таки пишут программы?
C (C++,C#,ObjC) — 28.5% (это нормальные пацаны)
Java — 21.5% (это Android, серверные и мобильные приложения )
Basic (+.NET) — 4.

1% (это США с их обожаемым Visual Basic)
Python — 3.8% (это кулхацкеры, линуксоиды и гики)
Delphi (Pascal) — 2.9% (это Россия и Восточная Европа)
PHP — 2.7% (Web-программирование)
Javascript — 2.

5% (Web-программирование)
Ruby — 2.0%

Шаги по становлению программиста

С чего же начнется твое обучение программированию? 1. Ознакомление с алгоритмизацией

Тут для начала все таки хорош Pascal. Он неплохо развивает блочное мышление. Вводит в предметную область программирования. Не отпугивает так, как С++. И нога останется целой.

2. Переменные и типы данных 3. Базовые элементы языка Структуры, классы Циклы, ветвления, выбор, переходы, функции 4. Ознакомление с ООП

ООП — это именно тот функционал, который делает из программы человека «хорошую» программу. Это скелет (остов) любой приличной программы.

Это то, от чего едет крыша у начинающих. Это то, от чего бегут недалекие программисты. Тут начинается абстракция. Требуется понять только одно — ООП является костяком любой хорошо спроектированной программы.

Без ООПа порой сложно выстроить между собой логическое и интуитивно-понятное взаимодействие модулей программы. 5. Знакомство с технологиями — работа с файлами, потоками, графикой, сокетами, СУБД, Web, XML 6. Углубление — работа над своими проектами 6-9 месяцев.

Тут важно не дергать готовые компоненты, а писать чистый С++ код. Важно просто набить руку.

Фреймворк и компилятор(ide)

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

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

Проблема современного программирования — излишнее многообразие фреймворков, сред и ЯПов. Нельзя выучить все из них. Многое определяет заказчик или компания-работодатель. Можно начать изучение с Visual C++ (среда от Microsoft), Builder C++ (Embarcadero) и Qt.

Visual C++ — это классика. Если нужно много удобных визуальных компонентов, если нужен навороченный интерфейс — берите Builder C++. Нужна кроссплатформенность — берите Qt C++. Я начинал программировать на С++ в DOS.

Тогда (в 90-х) больше и не было ничего (unix не в счет)! Сейчас у нас есть C#.NET, Qt, wxWidgets, C++Builder, C++ VisualStudio под Windows. И не менее жирные вариации под Linux. А если еще посмотреть в сторону Java, Android… то просто слюнки текут от возможностей.

Готовьте голову к обширному вливанию документации. Как говорят программисты — RTFM.

Учите один язык и одну среду. Учеными доказано, что программист с 3-летним опытом программирования на одном языке работает в 3 раза продуктивнее программиста с таким же опытом, но на другом языке.

Хорошие правила программирования

1. Написал первую версию программы!? Выкинь и начните писать вторую версию. 2. Проектирование программы начинайте на бумаге — блоки, связи, морфология, схемы (UML) 3. Переменные самодокументируемые — bPersonNameValidity 4. 60% кода — обработка ошибок и исключительных ситуаций. 5. Разбивайте код на мелкие модули. Хорошая практика — один класс-один модуль.

Какие они бывают?

Разделение на системных(С) и прикладных(П) программистов. С — знают устройство операционной системы, основы API, как работает ОС (потоки, процессы, прерывания, хуки), стараются весь код писать сами без привлечения сторонних компонент. Часто сторонники VisualStudio. Не любят создавать ПО с большими графическими интерфейсами.

П — пишут программу, использую сторонние модули и компоненты. Не вдаются в устройство ОС. Любят Delphi и Builder. Embedding — самый профессиональный уровень. Программирование под железки — hardware. Требует знаний электроники и ассемблера. Самый высокооплачиваемый сегмент программирования. Web-программисты — пишут код для динамических сайтов. Чаще на PHP.

Дополнительно нужно знать HTML, CSS, JS и пр.

ЭПИЛОГ

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

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

По С++. Читаем Страуструпа. Держите его книгу под рукой.

И еще. Учи английский язык. Программисты должны уметь свободно читать на английском. 99% документации по программированию на английском. Перевода не ждите. Названия переменных тоже называем английскими словами, заодно это комментирует код.

Если при изучении языка программирования, ты чувствуешь что продираешься через джунгли, что твои мозги вязнут в этой мути, что языковые конструкции ужасны и труднопонимаемы, и ты чувствуешь нарастающее раздражение, то вполне возможно, что это не твое. Бросай! Программирование — это не профессия, это диагноз.

Главное, что ты — пытался, но возможно что твое призвание в другом.

P.S

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

Изучить язык != научиться программировать.

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

Источник: https://habr.com/post/275409/

Неправильный, но быстрый способ стать программистом – «Хакер»

Содержание статьи

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

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

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

С компьютером я впервые познакомился в 6 лет. В 13 лет у меня уже был свой персональный веб-сайт. В школе учился плохо, в универе тоже. На втором курсе мой друг нашёл работу Java-программистом и настоятельно рекомендовал мне сделать то же самое. Идея заинтриговала. Нужен был план.

Первый шаг — резюме

Первая и основная проблема, с которой сталкиваются новички, — резюме. Без адекватного, цепляющего резюме тебя не будут приглашать на собеседования. Но как быть тем, у кого совсем нет опыта работы? Для того чтобы «не с пустыми руками» идти к HR, мы с другом вписали мне в резюме целый год опыта работы над его проектом, над которым якобы вместе трудились.

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

Первые собеседования были провальными. Надо мной буквально смеялись. На первом же техническом собеседовании, где мне дали пару задачек на бумаге, меня раскусили в два счёта. Кто-то даже по-отечески посоветовал книгу Thinking in Java.

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

Обратите внимание

Меня взяли на должность Junior Java developer с одним условием — первые три месяца я буду проходить курс SCJP (Sun Certified Java Programmer), который восполнил бы мои пробелы и выковал бы из меня более подготовленного специалиста.

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

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

  1. Резюме. Оно должно быть правильно отформатированным и написанным исключительно на английском. Если не хватает опыта, то его можно (и нужно) придумать, но следует подготовиться отвечать за каждое написанное в резюме слово. Например, если у тебя там написано JMS (Java Message Service), то как минимум следует пройти хоть одну обучалку и поиграться с JMS, поделать какие-нибудь примеры, пускай это и будет банальное «Hello, world!». Теперь будет удобнее пускать пыль в глаза, вы ты и правда «работал с JMS».
  • Выучи азбуку программирования. Если ты ещё можешь позволить себе «плавать» на глубоких уровнях каких-нибудь комплексных технологий вроде Struts и Spring, то неправильные ответы на элементарные вопросы тебе никогда не простят. Если тебя ночью разбудить, то ты должен уметь рассказать про ООП, наследование, инкапсуляцию, полиморфизм и другие базовые концепции, а также суметь объяснить это всё на примерах.
  • Практика. Научиться программировать можно, только лишь программируя. Это больно и неприятно (если ты не программист), но другого пути нет. Единственный способ перестать бояться задачек на собеседованиях — порешать их дома самостоятельно.
  • Читай книги и проходи туториалы по Java только на английском Абсолютно все термины программирования проще понимать на языке оригинала, то есть на английском. Читать техническую литературу по Java на русском — себя не уважать. Почему? Потому что, чтобы понимать что-нибудь в духе «…модуль таблицы во многих смыслах представляет собой промежуточный вариант, компромиссный по отношению к сценарию транзакции и модели предметной области», нужно быть поистине гением, которым ты вряд ли являешься.
  • Выучи, наконец, английский! В первую очередь это касается разговорного английского. Сложно сосчитать то огромное количество толковых программистов, которых на моей памяти забраковали по одной единственной причине — неудовлетворительный уровень разговорного английского. Нет, если ты, конечно, собираешься работать программистом где-нибудь в отечественной компании, то твой уровень языка не будет играть важной роли. Но если ты хочешь попасть на работу в международную компанию, то сам бог велел выучить язык. Уровень твоего английского будет конвертироваться в дополнительные сотни долларов прибавки к зарплате.
  • Знай рынок. Походи по вакансиям, почитай требования, поспрашивай друзей-программистов, сколько они получают. Используй сервисы, которые позволят составить более полную картину о рынке IT. Ты был бы удивлён, узнав о том, насколько велико количество талантливых программистов, которые получают в два раза меньше, чем могли бы, только лишь по причине своей лени и нежелания держать нос по ветру.
  • Торгуйся. Нет ничего предосудительного в том, чтобы торговаться за зарплату. Твоим аргументом в споре может быть как хороший английский, так и предложение о работе в другой компании. Последний аргумент особенно хорошо работает: «Да, но мне в Luxoft предлагают на 300 долларов больше, почему я должен соглашаться на ваши условия? Может, мы могли бы найти компромиссный вариант?». В своё время мне пару раз удалось выторговать дополнительную сотню долларов к своей зарплате, и через год эта сотня долларов дала мне дополнительные 1 800 долларов дохода на ровном месте. Ты должен понимать, что даже для небольших зарубежных IT-компаний лишняя сотня баксов как капля в море.
  • Найди себе ментора. Хорошо, если у тебя будет более опытный товарищ, который сможет помочь советом и ответить даже на самые глупые вопросы. Благодаря его опыту и моральной поддержке ты будешь продвигаться в программировании быстрее, чем в одиночку. Если нет ментора, то неплохо сходить на какие-нибудь курсы по программированию, которые не только дадут более полную картинку того, чем занимается программист, но и позволят познакомиться с более опытными людьми. Кто знает, может быть, кто-нибудь из них захочет стать твоим ментором.
  • Начни свой проект. Даже если он будет образцом самых худших практик кодинга и ты его никогда не закончишь, по крайней мере, у тебя будет то дело, ради которого захочется разбираться в программировании и изучать новые технологии. Кроме того, у тебя появится дополнительная тема для задушевных бесед на собеседованиях.
  • Ищи работу летом. Во-первых, когда все в отпусках, в компаниях более остро ощущается нехватка кадров и повышается вероятность того, что тебя позовут на собеседование. Во-вторых, поскольку твои конкуренты-соискатели тоже на отдыхе, у тебя опять-таки повышаются шансы быть замеченным HR.
  • Никогда не сдавайся. Даже если кажется, что ты заваливаешь собеседование, важно проявить стойкость и продолжить попытки решить задачу, какой бы сложной она ни казалась. Кто знает, может быть, тебя именно в этот момент проверяют на усердие в работе!
  • Избегай заданий на компьютере. Нет способа быстрее раскусить непрофессионала, чем сразу же бросить его в пекло программирования. Твоя задача — постараться перевести все беседы на высокий уровень, где обсуждаются общие подходы и концепции, но никак не конкретная реализация в решении той или иной задачи. Если тебе дали бумагу и ручку и попросили записать решение, то попроси возможность нарисовать его схематически. Таким образом, удалившись от синтаксиса конкретного языка, ты не только убережёшь себя от каких-нибудь режущих глаз ошибок, но и покажешь, что способен мыслить абстрактно, не вдаваясь так уж сильно в детали.
  • Начинай говорить первым. Избегай ситуаций, когда в воздухе виснет пауза, во время которой в мозгу у интервьюера может созреть очередной коварный вопрос. Как только происходит какая-либо заминка, начинай рассказывать что-нибудь из того, что ты хорошо знаешь. Постарайся навязать интервьюеру свою игру.
  • Старайся говорить правду. Если ты никогда не писал PL/SQL процедуры, то лучше об этом сказать прямо. Возможно, в этом для тебя будет минус, однако ты убережёшь себя от нужды выкручиваться, отвечая на вопрос, в котором ничего не смыслишь. Опытный интервьюер за версту почувствует твои пробелы в знаниях.
  • Бойся маленьких компаний. В небольших компаниях, как правило, небольшие команды. Чем меньше в команде людей, тем быстрее тебя раскусят. Твоя цель — большая и неповоротливая корпорация, где ты сможешь выиграть для себя немного времени.
  • Соблюдай дресс-код. Если ты придёшь на собеседование на должность программиста в шикарном костюме, то это вызовет больше подозрения, чем если ты явишься в шортах или потёртом свитере. Не лишним будет также нацепить очки, мол, «эдакий я книжный червь».
  • Конечно, кто-то знающий может отметить, что приведённый выше рецепт — это скорее способ стать кодером, чем программистом, и он где-то будет прав. Однако дело всё в том, что вы никогда не найдёте вакансию с заголовком «Требуется плохой кодер». Всем нужны программисты. Желательно senior. У которых более пяти лет опыта работы на корпоративных проектах и которые одинаково хорошо владеют сразу несколькими языками программирования, при этом досконально разбираются в СУБД, умеют писать bash-скрипты, хранимые процедуры, знают в совершенстве Linux, TCP/IP, обладают лидерскими качествами, стрессоустойчивостью, коммуникабельностью и ещё массой навыков, «без которых никак».Такие люди существуют, я их сам видел. Но их слишком мало, чтобы полностью покрыть нужды вечно голодного рынка IT-специалистов. А это значит, что у тебя всегда есть шанс, эдакий ты авантюрист.
Читайте также:  Какую работу найти в кризис в москве или другом городе? сложно ли найти работу в условиях кризиса? разбираемся

Источник: https://xakep.ru/2014/11/17/programmer-job-hack/

Как я стал программистом и успешно поменял профессию в 34 года

Всем своим читателям большой привет!

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

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

Итак, как я стал программистом в 34 года.

Первое знакомство с компьютером и программированием

Эта история началась почти 20 лет назад. В 15 лет я поступил в Компьютерный Лицей и познакомился с компьютером. Там же я увлекся программированием и был одним из лучших в лицее. Мне очень нравилось программировать, и я был уверен, что после окончания лицея я буду поступать в технический ВУЗ и стану программистом.

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

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

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

Погоня за перспективой и разочарование

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

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

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

Что делать?

Однако сказать легче, чем сделать. Когда я увлекался программированием, то дальше учебных языков я не заходил. Не успел. Поэтому по сути я был полным нулем в современных технологиях. Я лишь понимал логику программирования. Знал базовые общие языковые конструкции. И имел опыт написания программ на учебных языках программирования.

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

Важно

Другой вопрос, как обучаться? Пойти на курсы или учиться самому? А может онлайн курсы или вообще найти настоящего программиста, заплатить ему, чтобы он меня научил? Или пойти в ВУЗ?

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

Первые шаги

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

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

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

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

Дело в том, что я все это время интенсивно учился. Вечера и выходные у меня не проходили зря. Я штудировал HTML, CSS, Javascript, Jquery, PHP и устройство WordPress. И уже к концу месяца мог сделать готовую несложную тему для WordPress с исходного psd макета.

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

Фриланс

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

Это придало мне уверенность, и я ушел со студии. Фриланс стал настоящей школой. Различные задания, нет того однообразия, что было в студии. Я действительно сильно вырос пока работал во фрилансе. Очень быстро у меня появились 3 постоянных заказчика. Задачи становились все серьезнее. Я стал увереннее. Все это происходило буквально в течении 3-4 месяцев.

Я стал программистом!

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

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

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

Совет

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

Напоследок как всегда интересное видео.

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

Так что скоро еще увидимся!

Источник: http://undertherock.ru/programmirovanie/kak-ya-stal-programmistom-v-34-goda.html

Как становятся программистами? 12 интервью с экспертами. | статьи о программировании mkdev

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

Этими вопросами задаётся, наверное, каждый, кто думает о карьере программиста. Основываясь на собственном опыте, я сделал всё возможное, чтобы ответить на большую часть этих вопросов, написав Самообразование веб-разработчика. Но моё мнение касательно самообразования и способов обучения – это лишь мнение одного человека (хотя я, безусловно, не сомневаюсь в его правильности 🙂 ).

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

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

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

Читайте также:  Изобретения и достижения николы тесла. список и видео интересных изобретений. часть 1

Программисты

  • Максим Кремнев, Aviasales
  • Павел Хрулёв, Ruby on Rails разработчик, фрилансер на odesk, elance.
  • Варвара, Ruby и node.js разработчик, Social Quantum
  • Даниил, программист, Social Quantum
  • Михаил, тимлид, Social Quantum
  • Роман Колеснев, Fullstack Rails developer; Social Quantum
  • Сергей Резванов, ruby-разработчик, IkitLab
  • Константин, тех. лид в одном из стартапов Санкт-Петербурга
  • Корнеев Евгений, тимлид, SmartSpace
  • Антон Черепанов, web-разработчик в Evrone, ментор в mdkev.me
  • Кирилл Ширинкин, консультант
  • Дмитрий Василец, консультант

Максим Кремнев, Software Developer, Aviasales

Сколько лет в веб-деве?

5-6

Почему выбрал программирование и веб-разработку?

Возможность зарабатывать деньги, делая то что тебе нравится

Какими путями учился этому мастерству?

Самообразование

Расскажи подробнее о начале своего пути: как, когда, что?

18-19-20 лет. Работал в это время системным администратором, паралелльно увлекался всякими интересными вещами вроде gentoo, bash, python, django (первое что вспомнил).

Как-то на одном локальном джоб борде наткнулся на вакансию руби программиста от @ipronix, решил, стоит попробовать и может им питонисты тоже нужны. Но оказалось не нужны, а вот рубисты, даже джуниоры (я тогда этого слова не знал), да, нужны. Ну а что…

предложили деньги, причем больше чем я получал системным администратором и решил совмещать офлайн и онлайн работу.

Спустя какое время после начала изучения получил первые деньги за веб-разработку? Как получил первый заказ?

Через 1 месяц. Все @ipronix

С чего стоит начинать новичку?

С How To или Get started

Чего тебе не хватало в начале твоего пути?

Времени

Какие нибудь книги, сайты, которые можешь посоветовать?

Источник: https://mkdev.me/posts/kak-stanovyatsya-programmistami-12-intervyu-s-ekspertami

Я горжусь своей профессией. я — программист

Роберт А. Хайнлайн

Писать про IT-профессии довольно сложно, ведь они сейчас в каждой сфере. Почти в любой профессии что-то связано с IT.

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

Можно сколько угодно внутренне самосовершенствоваться и утверждать, будто самое важное — это твой богатый внутренний мир, но, на самом деле, всё, что происходит в сознании человека, не имеет никакого смысла и значения, если не дает реальных ощутимых практических плодов, влияющих на жизнь и развитие общества в целом. Объективно, человек — это его работа, это конечный результат прилагаемых усилий. Всё остальное — только почва, из которой такой плод — результат — может вырасти. Люди, не сумевшие вовремя этого осознать, обрекают себя на то, чтобы долгое время, если не навсегда, оставаться аутсайдерами, способными только ныть, жаловаться и недоумевать, почему общество их отвергает?!

Когда-то передо мной встал вопрос: кем стать?

Я знала свои сильные стороны — математика, точные науки, всевозможные вычисления, естествознание.

Обратите внимание

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

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

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

Когда я знакомлюсь с людьми, меня спрашивают: «Таня, а на кого ты учишься? Кем ты хочешь стать?», и тогда я думаю: «Я учусь на программиста, но что значит стать программистом? Я ведь люблю то, что изучаю», тогда я понимаю, что программист – это не просто профессия, это состояние души, это в крови. Как и любая профессия. «Выбери себе работу по душе, и тебе не придется работать ни одного дня в своей жизни» Конфуций.

Но, как и у любого дела, у программирования есть свои плюсы и минусы.

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

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

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

Иногда приходится сталкиваться с неадекватным отношением к себе — девушке-программисту — со стороны представителей противоположного пола.

Важно

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

Что касается плюсов.

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

Компьютеризировано буквально всё — от микроволновой печи и прочих бытовых приборов, которыми пользуется любая домохозяйка, до смартфона и автомобиля.

Да что автомобиль?! А космический корабль; а роботы-хирурги, помогающие врачам оперировать на самых сложных участках?! И с каждым годом будет появляться всё больше подобных устройств, в то время как примитивные вещи уйдут в прошлое.

Так кто же такой программист? Это специалист, задача которого — научить компьютер необходимым каждому навыкам. Если же мы собираемся кого-то (или что-то) чему-то обучать, то обязаны говорить на одном языке со своим учеником, не важно, одушевленным или неодушевленным и быть способным объяснить ему нашу задачу.

Мало того, от программиста требуется еще и знать профессии и сферы деятельности, в которых используется компьютер! И сделать так, чтобы машина и специалист в той или иной области смогли понять друг друга и «договориться». Интересно? Еще как! Вот вам и применение для моей экстраверсивности, желания и умения общаться не только с машинами, но и с людьми.

И более всего я хочу сама общаться с заказчиками, а не поручать это «бизнес-информатикам».

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

Совет

Недавно меня попросили написать программу для одной типографии – калькулятор. Я месяц отработала помощником в типографии. Провела много времени, общаясь с сотрудниками.

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

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

Второй плюс.

Постоянное самосовершенствование, непрерывное движение вперед.

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

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

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

Основные — специалисты по 1C-бухгалтерии, разработка веб-сайтов, программирование на языках Си (Си шарп чаще всего), а так же язык Java. При этом средняя оплата за проект, который можно выполнить в короткие сроки — 50 000 руб.

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

Следующий плюс.

Обратите внимание

Есть все шансы стать инди-разработчиком. То есть, полностью работать на себя, без необходимости зависеть от кого бы то ни было и выставлять исключительно свои проекты. Девиз инди-программистов — «Do It Yourself» — сделай это сам.
Пятое достоинство: возможность профессионального роста.

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

Пусть многие говорят: «Если ты посвятил жизнь программированию, то кем-то выше, чем программистом ты не станешь!», хочу оспорить: человек может стать кем угодно, многие профессионалы и знаменитые личности раскрывались в довольно взрослом возрасте.

А программист? У него исключительная возможность: ведь создавая программы в разных областях – мы начинаем разбираться в этих областях, что дает нам шанс понять, чего мы хотим, и хотим ли чего-то другого?

Прочитала недавно один пост про неравенство: «Физик-ядерщик всегда может стать маляром, а маляр никогда не станет физиком-ядерщиком». Я считаю, что программист – это и повар, и маляр, и физик-ядерщик, и танцор, и видеооператор.

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

Когда пишешь программу, сайт, хочешь – не хочешь, а в «тортиках» разберешься. И это не только мое мнение:
«Да, программист не должен знать все. Для написания программы для перевода не нужно знать все слова немецкого языка, чтобы считывать их переводы из базы данных. Но основы грамматики выучить придется.

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

Важно

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

Я была просто потрясена, узнав, какие головокружительные перспективы у этой профессии! Это и новые решения в области обработки колоссального объема данных, и дизайн интерфейсов всевозможного оборудования, и развитие виртуальных миров, и цифровая лингвистика (вот вам, кстати, прекрасная возможность сочетать общую, в том числе, гуманитарную глубокую образованность, чувство языка, с, казалось бы, сугубо «техническими» навыками), и то, что сегодня называется архитектурой виртуальности — ведь в обозримом будущем даже школьное обучение будет базироваться исключительно на работе с компьютерами. И проектирование нейроинтерфейсов, которые позволят «подстроить» цифровые технологии под индивидуальные нейрофизиологические и психологические особенности каждого пользователя! Я уж не говорю о том, что почти любое массовое производство станет полностью автоматизированным, а бытовая робототехника войдет в каждый дом. А медицина, конкретно — хирургия и создание кибербиопротезов, которые позволят несравнимо улучшить качество жизни людей, по тем или иным причинам утратившим здоровье? Понятно, что здесь без программистов обойтись невозможно…

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

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

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

Источник: https://www.pvsm.ru/programmirovanie/80785

Ссылка на основную публикацию