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


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

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

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

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

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

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

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

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

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

  1. Web программирование
  2. Создание мобильного ПО
  3. Информационная безопасность

Web программирование

Конечно же, сфер деятельности которые можно записать под web-программирование очень и очень много, в данном случае мы будем рассматривать Frontend. Если точнее, то Web frontend, потому что этот термин можно отнести и не только к веб-программированию.

Если сказать простым языком, то фронтенд разработчик — это человек, который отвечает за получение входной информации от пользователя(например, на сайте) в любых её проявлениях и передача её дальше(куда скажут, обычно этим занимается backend разработчик). Если еще проще, то фронтенд — это интерфейс между пользователем и бэкендом.

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

Специалисты в области frontend’a очень ценятся в крупных компаниях(apple, microsoft, yahoo, google и так далее). Кстати, для примера, можете зайти на сайт компании Apple и посмотреть, что значит хорошая работа frontend разработчиков.

Что нужно знать frontend разработчику:

  1. JavaScript во многих его проявлениях( Angular JS, Backbone JS, Rcact JS, Bootstrap JS, node JS, ecmascript, express JS и так далее). То есть вам придется иметь дело с очень большим количеством библиотек JavsScript(но в этом ничего страшного нет — это даже круто).
  2. Html, CSS — это основа основ, без доброго хтмл и каскадных таблиц никуда не уйти в области фронтенда.
  3. Серверные языки. Вам по-любому придется работать с серверами, а для этого вам пригодиться какой-нибудь perl или php. Конечно вы можете работать на С++, но это не так эффективно, поэтому запишите в список своих целей изучение серверного языка.
  4. Придется научиться работать с базами данных, а для этого вам, вероятнее всего, нужно освоить MySQL.

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

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

 Создание мобильного ПО

Уверен вы знаете, что рынок мобильного программного обеспечения растет еще быстрее, чем процесс развития IT, вероятно, за счет высокой конкуренции. Apple судиться с Samsung, Samsung с еще половиной Азии и так далее,  это создает возможность для нашего выхода на рынок мобильных приложений. Почему? Все просто! Это мотивирует подобные компании делать все лучшие продукты, что увеличивает возможности разработчиков, а чем больше вы можете, тем лучше вы создадите приложение(игру, например).

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

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

 

Не секрет, что самые распространенные операционные системы(мобильные) — это iOS и Android. Но, к сожалению, для того, чтобы создавать приложения для, например, iOS, нужно знать одни языки программирования, в то время как для Android нужны другие.

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

Что нужно знать разработчику мобильных приложения для ОС apple iOS:

  1. Зарегистрироваться как iOS разработчик(за 99$ или 299$). Разницу вы можете узнать на сайте Apple или из вот этой статьи на хабре.
  2. Mac OS X — вам по-любому нужна ОС от Apple, так как без неё не загрузить iOS SDK, но это не значит, что нужно покупать mac. Многие писали о том, что им хватало хакинтоша или виртуальной машины(об этом вы так же можете узнать на хабре).
  3. Язык программирования Objective-C или, уже совсем скоро, Swift. Логичнее использовать недавно созданный язык программирования от компании Apple(Swift), так как он действительно хорош и, я уверен, что компания приложит все усилия для перевода на него всех своих разработчиков.

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

Что нужно знать разработчику мобильных приложения для ОС android:

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

  1. Необходимо знать язык программирования Java(можно C#).
  2. Зарегистрироваться как android разработчик.
  3. Вам можно разрабатывать на любой ОС, в отличии от разработки под iOS.

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

Вывод:

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

Информационная безопасность

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

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

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

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

Чтобы соответствовать статусу, вам ЖИЗНЕННО необходимо из-за дня в день совершенствоваться, искать новые способы нападения и защиты при этом не попав под следствие за взлом.

В этом случае лучшей возможностью развития является работа на КГБ, ФБР, ЦРУ и так далее.

Что нужно знать специалисту по информационной безопасности:

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

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

Итоги:

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

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

Похожие статьи:

yhoome.ru

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

ПРОЛОГ
Это статья для того, кто решил стать кулхацкером программистом, для того, кто еще не понимает, куда он может вляпаться и кто думает, что это не будет стоить ему больших усилий.

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

Ну а если ты в процессе самоопределения по данной профессии — 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.
Немного из опыта других Программирование — это не развлекательная вечеринка, а кропотливая работа, требующая много знаний и определенный склад ума. Изучить язык != научиться программировать.

habr.com

Сможете ли вы стать программистом?

Любовь к делу

Вам должно не просто нравиться программирование — вы должны болеть этим. Чтобы достичь успеха, нужно быть немного фанатиком своего дела, как Никола Тесла или Ричард Докинз.

Спросите себя, почему вы хотите стать программистом. Если ответ — «Это модно» или «Чтобы заработать деньги», то вам лучше заняться чем-нибудь другим. Нет ничего ужаснее, чем ходить на работу просто потому, что надо.

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

Работодателю на заметку: хороший знак, если в резюме в графе «Хобби» соискатель на должность программиста указал: «Пишу код».

Умение проявлять гибкость

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

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

Работодателю на заметку: эксперт в С++ или Java — это здорово, но ещё лучше, если программист, специализирующийся на том или ином языке, разбирается в остальных, знает, как устроен не только back-end, но и front-end.

Современный программист должен проявлять гибкость мышления. Без неё невозможно ориентироваться на результат и смотреть на продукт глазами пользователя.

Готовность обучаться

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

  • Читайте книги по программированию.
  • Подписывайтесь на блоги известных кодеров.
  • Обменивайтесь опытом с коллегами в специализированных сообществах.
  • Посещайте тематические конференции.
  • И, конечно же, смотрите онлайн-курсы.

Подспорьем послужит сервис GeekBrains.ru. Там вы сможете совершенствовать навыки кодинга на Python, PHP и других языках, с которыми работаете, и прокачивать сопутствующие скиллы. Например, в области системного администрирования, SEO или SMM.

Планирование

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

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

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

Умение работать в команде

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

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

Работодателю на заметку: предложите программисту-стажёру провести небольшую самопрезентацию перед коллегами — поймёте, нет ли у него проблем с общением.

Человек, испытывающий трудности с коммуникацией, не командный игрок. Он не объяснит коллегам задачу и не поймёт фидбэк.

Умение быстро входить в состояние потока

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

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

А что нужно вам, чтобы войти в состояние потока? Изучите одноимённую книгу Михайя Чиксентмихайи и выработайте свой алгоритм.

Терпеливость

Написать код — полдела. В работе программиста много рутины: проверка кода, поиск и устранение багов и — самое ненавистное — правки. Это требует усидчивости и терпения.

Простой тест: выберете один из бесплатных курсов GeekBrains и пройдите от начала до конца. Выполните все задания не халтуря. Если справитесь, то с настырностью (в лучшем понимании этого слова) у вас порядок. А как насчёт стрессоустойчивости?

Умение справляться с трудностями

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

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

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

Здоровая порция лени

Ларри Уолл, создатель языка программирования Perl, в своей книге называет три важных для программиста качества:

  • высокая самооценка;
  • нетерпеливость;
  • лень.

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

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

Амбициозность

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

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

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

lifehacker.ru

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

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

Эксперты компаний 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-й: люди творческие, немного неаккуратные в различных, в том числе и в бытовых, вопросах. Образование — профильное или чисто математическое»

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

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

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

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

 

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

geekbrains.ru

8 способов стать лучшим программистом

Эстер Шиндлер пишет о технологиях с 1992 года, переводя язык технарей на привычный английский. За годы работы в IT она вынесла несколько советов, которые могут стать руководством к обучению программированию. Приводим для вас перевод её статьи.

Настало время серьезно улучшить ваши навыки программирования. Давайте сделаем это!

Это простая карьерная цель, но нельзя просто сказать себе “я хочу стать офигенным программистом”. Говоря “я хочу стать лучше”, вы должны знать, что включает в себя понятие “лучше”. Более того, слишком много людей стремятся к совершенствованию без понятия о том, как это сделать.

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

1. Напоминайте себе, как много вам нужно выучить

Первый шаг в обучении программированию – понять, что вы ничего не знаете. Это звучит очевидно, но опытные программисты знают, как долго можно преодолевать это заблуждение. Слишком многие студенты выпускаются с высокомерной установкой “Я лучше знаю” уверенные в том, что знают всё и должны доказать это каждому новому коллеге. Другими словами, позиция “Я знаю, что делаю!”, может встать на пути изучения чего-то нового.

2. Перестаньте пытаться доказать свою правоту

Чтобы стать не просто хорошим, а отличным, вам нужно учиться на опыте. Но будьте осторожны, опыт может научить нас повторять жалкое поведение и создавать плохие привычки. Мы все встречали программистов с восемью годами опыта… точнее, всего с годом опыта, но о котором они говорят в восемь раз чаще. Чтобы избежать этого синдрома, посмотрите на всё, что вы делаете и спросите себя: “Как я могу сделать это лучше?”.

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

3. “Код работает” – это не конец, а начало

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

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

Часть этого процесса – понять, что значит “улучшить”. Нужно сделать её быстрее? Проще документируемой? Используемой повторно? Более надежной? Ответ меняется с каждым приложением, но сам процесс не меняется.

4. Напишите его три раза

Хорошие программисты создают работающие программы. Отличные – программы, которые работают безукоризненно. Это редко случается с первого раза. Лучшее программное обеспечение обычно написано три раза:

  1. В первый раз вы пишете программу, чтобы доказать себе (или клиенту), что решение возможно. Кто-то может не понимать, что это просто опытный образец, но не вы.
  2. Во второй раз вы заставляете программу работать.
  3. В третий раз вы заставляете её работать правильно.

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

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

5. Читайте код. Читайте много кода.

Вы, вероятно, ожидали от меня этот совет, и это наиболее общая и наиболее ценная рекомендация для совершенствования навыков программирования. Менее очевидны причины, по которым чтение чужого кода так важно.

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

  • Как бы я написал этот блок? Что бы вы сделали по-другому, видите ли вы другое решение?
  • Чему я научился? Как я могу применить этот метод к коду, который я писал ранее?
  • Как я могу улучшить этот код? И если это open source источник и вы уверены, что ваше решение лучше, сделайте это.

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

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

Предупреждение: легко просто читать много кода, не становясь отличным программистом, как человек, который хочет стать писателем, читает отличную литературу, не совершенствуя собственную прозу. Многие разработчики смотрят на открытые исходники или другие источники, пытаясь “найти ответ”, или просто копируя и вставляя код, решающий такую же проблему. Это сделает вас даже хуже, как программиста, потому что вы просто принимаете чужую мудрость без её анализа. (Более того, этот код может быть полон багов, но так как вы его не разобрали, вы только что импортировали целую кучу багов).

6. Пишите код, а не выполняйте задания

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

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

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

7. Работайте один на один с другими разработчиками всегда, когда есть возможность

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

Возможно, вам повезет и вы найдете ментора, которому сможете доверить всё: от методов кодинга до карьерных решений. Не упустите такую возможность.

8. Изучайте методы, а не инструменты

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

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

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать [email protected].

apptractor.ru

Как стать хорошим программистом? | KV.by

Что нужно изучить программисту, чтобы повысить свой уровень профессионализма? На этот вопрос отвечают пользователи сайта Quora.

 

Пья На, работает в компании Google

Почитайте о структуре и интерпретации компьютерных программ. (Например, «Структура и интерпретация компьютерных программ», Харольд Абельсон и Джеральд Джей Сассман). Если вы целеустремленный и действительно хотите изучить основы компьютерных наук, то никакая другая книга за настолько короткий промежуток времени не даст столь всесторонний и глубокий взгляд на информатику. 

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

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

Прочтите книгу Питера Норвига «Научитесь программировать за 10 лет».

 

Майк Каутермарш, работает в Product Hunt

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

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

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

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

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

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

Однажды мой наставник дал мне классный совет: “Ты должен поднять свою пятую точку со стула и пойти поговорить со своими клиентами”. Именно после этого все поменялось для меня.

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

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

Начать – это совсем просто, и вы тоже так можете.

  • Посещайте все корпоративные мероприятия, познакомьтесь со всеми людьми в вашей компании, занимающимися не только технической составляющей.
  • Постарайтесь обедать с самыми разными людьми. Возьмите кофе и выйдите из своего офиса. Узнайте, как работают и что делают остальные люди.
  • Проводите время в местах общего пользования. Может в вашей компании есть комната отдыха? Игровая комната? Кухня? Постарайтесь проводить хотя бы немного времени там, спросите у своих коллег, чем они занимаются в рабочее время.
  • Задавайте как можно больше вопросов. Бизнес-среда, как и любая профессиональная сфера, обладает собственным сленгом. Изучите специальные слова, которые используются в ней.

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

Когда вас назначают на проект, вы делаете именно то, что вам приказано? Именно так поступают обычные разработчики. Отличный разработчик понимает, какую именно пользу должен принести этот проект. Изучите так называемое «правило 20/80» (принцип Парето) и обсудите с проект-менеджером, каким образом вы можете решить задачу при помощи минимального объема кода. Помните, что вы стремитесь меньшими усилиями добиться большего.

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

Итак, как же стать отличным программистом?

  1. Не закрывайтесь в «технической ракушке» и постарайтесь узнать, как работает бизнес.
  2. Изучите и применяйте принцип Парето 20/80!
  3. Используйте свои технические навыки для того, чтобы решить важные для компании задачи.

 

 

Пауль Колоцсвари, работает в компании Motorola

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

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

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

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

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

www.kv.by

Кто такие программисты и как стать программистом?

Кто такие программисты и как стать программистом?

Кто такие программисты и как стать программистом?

Начнем с того, что разберемся, кто такие программисты и чем они, собственно говоря, занимаются. Программисты – это люди пишущие программы для компьютеров. Как всем известно, или почти всем, то без программы компьютер работать не может. Без программы компьютер не сможет умножить два на два, даже если у него, два, четыре либо более ядер. Говоря по простому, компьютер полный идиот и чтобы он что-то мог сделать, ему надо все досконально объяснить. Этим то и занимаются программисты, которые пытаются втолковать компу что и как сделать. Что касается программ, то их бесконечно много, это и наши любимые компьютерные игры, тестовый процессор Word, архиваторы, mail-агент и много еще чего.

Пока что я перечислил только полезные программы, а есть еще и вредоносные, к которым относятся компьютерные вирусы.Кто самый известный в мире программист? Конечно Билл Гейтс, глава корпорации Майкрософт. А кто считается первым программистом? Вы не поверите, но это женщина – дочь английского поэта Байрона Ада Лавлейс. Именно она составляла программы для аналитической машины Беббиджа, которая является прообразом современных компьютеров.Много ли зарабатывают программисты? Все зависит от того, насколько хорош программист и насколько удачно он устроился на работу. Расскажу один пример. Интернет знакомый моего товарища решил сходить на собеседование по поводу работы в Майкрософт. Во время собеседования его спросили, сколько он хочет зарабатывать в месяц, на что он ответил, что его устроит 5 тысяч долларов. Хотя человек не на что не надеялся, попытка оказалась удачно и он был принять программистом в Майкрософт, да еще с зарплатой большей, чем он просил. С какой точно, я увы, не знаю, потому-то об этом новоиспеченный программист Майкрософт умолчал.

Итак, как же стать программистом? Чтобы стать программистом надо научиться программировать и заниматься как можно регулярнее, как и всяким другим делом, в котором вы хотите стать профессионалом.На каком языке учиться программировать? По этому вопросу «сломано не мало копий». Вообще, для обучения программированию был специально создан язык Pascal, автором которого является Никлаус Вирт. Со временем язык предназначенный для обучения, перерос в язык для профессионального программирования и на данный момент является основой такой среды программирования, как Delphi. Некоторые преподаватели считают, что для обучения программированию лучше использовать язык Basic, который на данный момент лежит в основе такой среды программирования, как Visual Basic. Упрощенная версия этого языка – VBA (Visual Basic for Application) встроена во все офисные приложения Майкрософт.А какой же язык программирования нужно усвоить, чтобы устроиться работать в Майкрософт? Конечно же язык С (Си), а точнее С++, а если еще точнее, то С#.С чего начать? Надо купить хорошую книжку по программированию. Я вам могу посоветовать три, две первые для обучения программированию на Паскале, а одна для обучения программированию на Си.

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

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

Автор Сэм Аболрус. Оригинальное название книги в переводе с английского — «Изучаем Паскаль за три дня». Действительно, освоить азы программирования на Паскале, при помощи это книги можно за пару дней. Автор работает программистом в корпорации Майкрософт. Настоятельно рекомендую ее приобрести. Моя оценка этой книги 5(отлично).

Заказать книгу>>

Основы программирования

Основы программи- рования

Окулов С. Это книга, которую необходимо иметь каждому, кто решил научиться решать олимпиадные задачи по информатике. Пожалуй, это лучшая книга, которая мне попадалась по этой тематике. Повествование начинается от изучения среды программирования Turbo Pascal, а заканчивается решением задач на графах. Настоятельно рекомендую приобрести эту книгу. Моя оценка этой книги 5(отлично).

Заказать книгу>>

Программирование на С++ (с CD-ROM).

Програм- мирование на С++

Авторы Дирк Хенкеманс, Марк Ли. Хотим ли мы того или нет, но любому программисту желающему достичь определенных высот в своей карьере необходимо знание языка программирования С++. На сколько реально самостоятельно изучить С++? При помощи этой книги это вполне реально. Книга написана весьма толково и без лишнего академизма. В ней рассматриваются вопросы которые необходимо знать как при изучении С++, так и при изучении других языков программирования. Курс обучения построен на создании простых текстовых игр. В 14 главе описано как создать заготовку для игры с полноценной графикой. Все исходники есть на CD-ROM. К сожалению нет компилятора, но его можно найти в Интернете. Моя оценка этой книги 5(отлично).

Заказать книгу>>

Какой совет можно дать на последок? Программировать и еще раз программировать, только так можно стать настоящим программистом.

Евгений Мухутдинов

www.lamer-stop.ru