Компьютеры Windows Интернет

Какой изучать язык программирования. Как выбрать подходящий вам язык программирования. Другие мнения разработчиков

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

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

Самые простые языки программирования в освоении

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

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

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

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

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

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

Хочу сделать iOS-приложение

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

Самые простые языки программирования в освоении

  • Fоrtran
  • Basic
  • Pascal
  • Modula
  • Lisp и другие.

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

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

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

Но многие специалисты убеждены в том, что для познания языка программирования не следует сразу переходить к его визуальной реализации. Проще говоря, если хотите изучать Паскаль, то изучайте именно его, а не Delphi XE, изучайте Си вместо VC++ with MFC/QT и так далее.

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

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

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

Не подвластны времени

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

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

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

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

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

Затем продолжайте обучение

Курс может быть оплачен двумя партиями: 50% суммы должно быть выплачено до начала курса, остальные 50% через месяц после начала. После заполнения нашей заявки вы получите от нас счет-фактуру, которая будет оплачена в течение одной недели. Он быстро узнал ценные навыки кодирования, и после курса мы смогли интегрировать его в более крупный проект. Совет №1: Поймите, почему кодирование важно для будущего карьеры.

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

Войти в ай-ти: начинаем с нуля или свитчеры

Эта , которой Владимир Кожаев начал серию с советами новичкам. Обязательной частью в ней будут две статьи, но если весь материал охватить не удастся, обещал добавить ещё.

Откуда дровишки?

Ах, вы думали? Вы, значит, иногда думаете? Вы мыслитель. Как ваша фамилия, мыслитель?
Спиноза? Жан Жак Руссо? Марк Аврелий?
© Золотой телёнок

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

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

Я в отрасли с 2005, и за это время перед глазами у меня прошло много историй и судеб. Но это не главное, дело в том, что большинство юных (и не очень) неофитов, которым я помогал успешно работают, некоторые уже на второй-третьей работе. Но и это не главное. Очень ценно, что у меня есть примеры тех, у кого не получилось . Ценно потому, что иногда знать, что делать гораздо менее важно, чем знать чего и как не делать . Как и все обобщения, нижесказанное справедливо лишь для условий Украины и в меньшей степени для стран бывшего СНГ. Об условиях работы в США я знаю мало, поэтому желающие эмигрировать поищите другой источник информации (например, замечательный подкаст «Америчка» Якова Файна, либо «SiliconValleyVoice » Михаила Портнова).

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

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

Социально-психологический портрет свитчера

Роман - ведь это зеркало, с которым идешь по большой дороге.
То оно отражает вам лазурь небосвода, то грязные лужи и ухабы.
© Стендаль. Красное и Чёрное

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

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

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

Жил-был человек, работал на далёкой от ай-ти работе, возможно добился успеха, но вот случился кризис 2008-го года, жить стало тяжелей. Потом произошёл майдан 2013-го, аннексия Крыма, война на Донбассе, доллар рванул вверх и жить стало совсем тяжело. И вдруг наш герой вспоминает, что в институте (школе/детском саду) он неплохо программировал на Паскале (получил пять на экзамене/успешно ответил на вопрос/умел включать компьютер). «Эврика, пойду я в ай-ти, там много платят и работа интересная».

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

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

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

Если студент-программист не имеет опыта и стоит задача всего лишь (!) его получить, свитчеру до этого семь вёрст и всё лесом: нужно определить, чем заниматься, и получить знания. Дело, сразу скажу, нелёгкое, поэтому людей справедливо одолевают сомнения: получится ли у меня, стоит ли овчинка выделки, а может ну его нафиг? С этого и начнём.

Если в ай-ти компанию не берут или альтернативное место работы

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

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

Получится ли у меня?

Судьба - очень удобное слово для тех, кто никогда не принимает решений!
© Джоди Фостер

Когда-то давно, когда программист с опытом зарабатывал меньше секретарши из постсоветского НИИ, программирование было уделом задротов в растянутых свитерах. Тренд «войти в ай-ти» соответственно отсутствовал. Но мало-помалу в страну пришёл аутсорсинг. Заработки у основателей ай-ти контор были запредельными: низкие украинские зарплаты сочетались с бросовым, но всё же внешним рейтом. К примеру, в 2004-м году программисту за час работы платили 2 доллара, а продавали этот час за 15. Поэтому в программисты стали брать всех, кто в состоянии написать программу «привет мир», в тестеры - умеющих включить компьютер. Более чем шестикратная разница внутреннего и внешнего рейтов покрывала любые издержки. Продолжалось это благословенное время примерно до 2008-го года. Желающих войти в ай-ти из других специальностей было мало, потому что заработок программиста хоть и вырос, до установщика кондиционеров, увы, не дотягивал.

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

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

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

С чего начать, или выбор пути

Тот факт, что язык программирования заставляет программистов отступать от кода, заставляет программы организовываться и может сразу определить, какой набор инструкций не зависит от другого набора инструкций. Еще одна философия Питона состоит в том, что в идеале должен быть один и только один способ делать вещи. Это отличное преимущество для начинающих людей, поскольку нет места для языковых двусмысленностей. Это язык, невероятно совместимый с его дизайном, что, просто вложив несколько дней с помощью языка, вы сразу заметите, что вы уже помните о значительном числе функций и специальных словах языка, не заглядывая в документацию. Это очень естественный и дружелюбный язык для начинающих. Это означает, что с момента своего создания он был задуман как язык программирования, предназначенный для людей, которые уже знали, как программировать. Поэтому за относительно короткое время вы можете начать создавать интересные проекты и начать решать реальные проблемы - почти сразу. Бывают случаи, когда у вас есть два непрерывных блока кода, но второй блок работает до первого, или просто и просто никогда не запускается. Настолько разочаровывающие для новичков, они не понимают, что именно происходит в их программах. Этот сценарий может вызвать много путаницы для новичков и может привести к отказу от программирования из-за разочарования. Узел не является языком программирования. Хотя кривая обучения является относительно низкой, и она также является одним из тех языков немедленного удовлетворения, языковой синтаксис имеет тенденцию быть несколько сложным и иногда запутанным для тех, кто начинает программирование. Использование одинарных кавычек - это не то же самое, что использовать двойные кавычки. Если вы хотите присоединиться к двум текстовым строкам, вам нужно использовать точку, но если вы хотите добавить два номера, вы должны использовать символ плюса. Несоответствие в номенклатуре функций делает язык не очень интуитивным. До сих пор мы видели слабые языки ввода текста; это означает, что интерпретатор языка программирования не заставляет программиста объявлять, является ли переменная числовой или является строкой текста. Сам язык не трудно понять, это очень зрелый язык и является еще одним из языков немедленного удовлетворения. Можно сразу начать писать переносные программы, которые могут работать практически на любых компьютерах мира, мобильных или встроенных устройствах. Можно создать относительно быстрые настольные приложения и многое другое. Оба языка вдохновили дизайн и развитие ряда языков программирования. Например, использование точки с запятой, чтобы разграничить конец инструкций или использование ключей для разграничения блоков кода. Чтобы запустить оба языка, они строго типизированы, поэтому компиляторы заставляют программистов объявлять типы переменных, которые они будут использовать в своих программах. Резюме: Какой язык является наиболее подходящим для обучения программированию, является проблемой неразрешенного обсуждения.

Так что видим: требования возросли на порядок. Что из этого следует: учиться, учиться и ещё раз учиться! Каждый день, по три-четыре часа, минимум год. После этого нужно нарабатывать опыт, бесплатно писать программы. Так что от начала обучения до трудоустройства пройдёт в лучшем случае два года. Есть у вас возможность и мотивация два года после работы упорно трудиться (фактически, по полдня)? Если есть, хорошо, но у меня для вас сюрприз: никто не гарантирует, что на первой работе вы продержитесь больше недели! Джуниор, тем более стажёр, - самые уязвимые позиции.

Ещё одна важная штука - английский. Заказчики в Украине сплошь иностранные, внутренний рынок мёртв. Как вы думаете, будут они учить русский/украинский ради талантливого, но пока мало чего умеющего стажёра? У кого английский есть, тому, конечно, легче. У кого нет - учимся. А как вы хотели?

Отсюда следует настораживающий вывод:

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

Хорошо взвесьте, можете ли вы себе это позволить?

Чтобы не сойти с ума, учёба должна стать вашим хобби.

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

Шлём демотиваторов подальше

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

Честно зарабатывать для себя и семьи вполне хорошо и правильно.

С чего начать, или выбор пути

У меня растут года,
будет и семнадцать.
Где работать мне тогда,
чем заниматься?
© Маяковский

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

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

И вот ещё один совет: не ломитесь в ручные тестеры!

При этом становиться программистом вовсе не обязательно.

Некоторым достаточно просто сменить отрасль, опираясь на предыдущие навыки. Например, вместо бухгалтера в фирме по производству колбасы стать таким же в программерской конторе. Если умеете работать с людьми (официанты, бортпроводники, хостессы) - прямая дорога в офис-менеджеры. Были начальником - идите в менеджеры, психологом - в рекрутеры и эйчары. Но что делать, если вы таки да хотите стать программистом? Становиться, что же ещё! Но что изучать, вот вопрос? Ответ на него в следующем пункте.

Что и как учить, чтобы стать программистом

Детей надо учить тому, что пригодится им, когда они вырастут
© Аристипп

Что же изучать, чтобы быстрее получить долгожданную работу: Java, C#, а может С++? Да, эти языки, конечно, востребованы и хорошо оплачиваются, но есть две проблемы.

Проблема первая: любой язык существует не сам по себе, но вместе с инструментальными средствами: компиляторами или интерпретаторами, которых может быть несколько, библиотеками и каркасами (по-английски framework) и типичными подходами, применяемыми в рамках предметной области. Так вот, дело в том, что для указанных языков любая из возможных специализаций (возможно, кроме android) предполагает высокий порог вхождения . Другими словами, учиться вам придется особенно долго. Именно поэтому для переквалифицирующихся я рекомендую специализации с низким временем входа: это прежде всего программирование фронтенда с помощью языка JavaScript и родственных, потом разработка сайтов на языке PHP или Python, далее разработка мобильных приложений под Android или iOS. А вот в разработку энтерпрайз приложений на платформе JavaEE или.NET, тем более в системное программирование, бигдату или анализ данных свитчерам лучше не лезть. Слишком долго придётся учиться.

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

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

Отсюда ещё один совет: технике программирования нужно обучаться - задачки решать.

Как же учиться

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

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

Только после этого можно начинать поиск работы.

Список литературы для специализации программиста на Java под Android

  • Для первоначального знакомства с языком я рекомендую книгу Якова Файна «Программирование на Java для детей, родителей, дедушек и бабушек».
  • После того, как книга прочитана, можно переходить к книге Брюса Эккеля «Философия Java». Только не берите русскоязычный вариант в мягкой обложке - он сокращённый, там упражнений нет.
  • Найдите либо более новое издание, либо английское под названием «Thinking in java». Задачки по программированию тупо гуглим по вопросу «алгоритмические задачи для собеседований».
  • Либо книга дядюшки Якова «Java Programming 24-Hour Trainer» либо книга Эккеля «Thinking in java enterprise».
  • Для освоения шаблонов проектирования берём книгу Эккеля же «Thinking java in patterns».

Чтобы освоить MySQL и git можно воспользоваться просто официальной документацией. После этого можно уже приступать к изучению собственно Android, например, по книге «Android Разработка приложений для чайников» Донн Фелкер. После этого я рекомендую написать две-три игры, выложить их на стор. Дальше можно искать работу.

Ментор, как найти и не надоесть

Часто у новичка возникают вопросы, которые он сам разрешить не в состоянии. Хорошо бы спросить у кого-то, кто понимает, но где его взять? Обращайтесь к тем, кто пишет статьи, ведёт блоги (p.s. к автору обращаться НЕ надо, я уже и так помогаю нескольким, а время не резиновое). Почему к ним? Просто, если человек даёт советы по собственной инициативе, скорее всего, он согласится помочь, когда его просят. Кроме того, ментор должен обладать навыками учителя, в какой-то степени гуру, не все даже супер-пупер-дупер синьоры их имеют.

Задавать вопросы нужно в таком порядке:

  1. В начале пытаемся найти решение сами.
  2. Если не получается, идём гуглить.
  3. Если и после этого не получается, задаём вопрос на Stackowerflow или на другом форуме, но лучше на нескольких сразу. Задав вопрос, читаем его, возможно, прочитав, поймёте, как решить проблему.
  4. И только, если пункты 1-3 не дали эффекта, обращаемся к ментору.

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

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

Что ещё надо? Если ты спрашиваешь ментора, и он даёт совет, воспользуйся им! Если не пользуешься, не ной, что ничего не выходит. У меня есть знакомая, которая приблизительно раз в месяц спрашивает: «что же мне делать?». Я ей рассказываю, подробно, она приходит через месяц, не выполнив из моих рекомендаций ровно ничего! Цикл повторяется вновь. Стоит ли говорить, что результаты её печальны?

Курсы, могут ли они помочь

Это, смотря, чего вы от них ждёте. Если введения в специальность, однозначно - да. Хорошие курсы вам в этом помогут. Но, подчёркиваю, хорошие. Как же их найти? Давайте подумаем: сколько программист способный вести курсы получает в час? Правильно, от 20-ти долларов, скорее выше. Положим, в группе 10 человек. Два раза в неделю лекции + практические задания, на проверку которых тоже тратится время. То есть в неделю преподаватель должен потратить на ваше обучение минимум 15 часов, скорее 20-ть (к лекциям ведь готовиться надо) 20*20=400 баксов - минимальная зарплата лектора. Добавляем к ней ещё хотя бы 200 (аренда помещения, расходные материалы, прибыль конторы). В месяце четыре недели с хвостиком. То есть стоимость месяца хороших курсов для группы из 10-ти человек должна стоить 600*4+ хвостик(200)=2600 долларов. Делим на 10 и получаем 260 долларов на одного человека в месяц. По нынешнему курсу в тридцать баксов это будет 7800 гривен. Понятно?

Могут ли хорошие курсы быть дешевле? Да, если проверка домашних заданий автоматизирована (как на курсере) и слушателей много - тогда получится взять объёмом. Или, если основная цель курсов не заработок денег, а пиар. Я могу порекомендовать курсы Якова Файна или те, что проводятся владельцами сайта javascript.ru.

Но зарубите себе на носу: ни одни курсы не дадут вам всех знаний. Ещё одна замануха - обещание стопроцентного трудоустройства.

Даже бесплатные курсы крупных ай-ти компаний после серьёзного отсева не обещают трудоустройства всех. Это и понятно, курсы идут в течении продолжительного времени. С другой стороны, в учебном центре не оракулы, предсказать, сколько стажёров понадобится конторе через полгода, не могут. Откуда же тогда рабочее место для вас возьмёт обучающая организация? У неё ведь и вовсе нет собственной разработки. Вопрос риторический!

Как устроиться на первую работу и что там делать

Самая тяжелая работа - её отсутствие!
© Рубен Багаутдинов

Ну вот, начальные сведения из программирования получены. И вы окрылённый начинаете слать резюме. Вы думаете гуглы с майкрософтами будут за вас драться кистенями? Посмотрите на ситуацию с точки зрения работодателя: приходит какой-то неизвестный тип, образование у него юридическое, самому 27 лет, английский средненький. Говорит, что что-то знает, честно-честно, но увы - доказательств этому нет. Возьмёте вы его на работу?

Что же можно сделать? Правильно, предъявить доказательства, что вы что-то можете! А как это сделать? Создать работающий проект достойный внимания, а лучше два-три, и выложить его в свободный доступ. Пусть люди увидят товар лицом. Думаете, после этого вас р-р-раз и взяли? Нет, не взяли, но без реализованных проектов шансов вообще никаких. Дело в том, что работодателю может что-то и не понравится, вы ведь начинающий ещё. Как же быть? Правильно, надо очень вежливо просить указать недостатки, благодарить за уделённое время и оные недостатки устранять. Потом идти к следующему работодателю и так до получения желаемой должности. Ну и конечно параллельно подчитывать теорию, чтоб от зубов отлетало. Однако проект в продакшене всё равно самое важное - он ваш проводник в мир больших денег.

Я знавал ребят, которые учили шаблоны параллельного программирования, аспектно-ориентированное, динамическое, и кто знает, что ещё, при этом недоумевали: «почему же меня на работу не берут?». Да потому, что показать нечего! Можно долго рассуждать о качестве кода, но какой в этом толк, если реальной работы ты не делал никогда?

Преимущества свитчера

Окончивший вуз по специальности «программное обеспечение» или «системный анализ» в течении полного рабочего дня пять лет изучал то, что вы осваивали в течении года по вечерам, урывками. Изучал под руководством опытных наставников, делал лабораторные работы, проходил практику. Конечно, теорию он знает лучше! Можно конечно сказать, мол, знаем мы эти постсоветские вузы, но уверяю вас: студент КПИ или университета Шевченко, который хочет получить знания, таки да, имеет эту возможность. Но есть преимущества и у вас. Дело в том, что выпускник вуза «молодой ишшо», часто-густо (но не у всех) в голове у него ветер. Это не потому что он плохой, просто жизненный опыт приходит с возрастом.

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

Не умеете, ну… как же вы дожили до своего возраста?

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

Что делать, если оффер получен

Стоит ли говорить, что сумма зарплаты на первом месте работы - не самое главное? Да, она должна обеспечивать хотя бы минимальные потребности, ну там снимать койко-место, одеваться в секонде и кушать не одни только макароны, но не вздумайте торговаться! Джуниоров на рынке очень много, есть и с профильным образованием. И я писал выше, что у них преимущества есть. Поэтому, получили оффер - радостно киваем и выходим на работу . На ней, между прочим, ещё продержаться надо. Для джуниора-стажера увольнение не редкость, даже если для своего уровня он идеален. Просто толку от такого человека сравнительно мало, делает он самую простую работу. Закончилась такая или просто заказчик решил сократить штат: «спасибо, дорогой друг, мы будем о тебе вспоминать». Что же делать? Как я и говорил, готовиться к финансовой нестабильности и не унывать - быстренько искать другую работу . Ещё хороший способ: брать на текущей работе отпуск и идти на стажировку/испытательный срок. И только если он успешно пройден, увольняться со старой. Это сложно, согласен, но на ваших руках, возможно, семья, другие близкие люди - рисковать их будущим вы не можете.

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

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

Бывает так, что в работе вы сталкиваетесь с затруднениями. Допустимо ли спрашивать? Конечно, да! Но вести себя нужно точно так же, как с ментором: в начале сам, потом гуглить, потом на форум и только потом задавать вопросы.

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

При этом, договорённости надо выполнять. Договорился, что проработаешь минимум два года - сделай это. Условились закончить проект? Заканчивай! Карма, она ведь такая: какой мерой вы отмеряете, такой и вам будут мерить.

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

Если в ай-ти компанию не берут или альтернативное место работы

Бывает такое. Что же, сидеть и ждать у моря погоды? Вовсе нет - обратитесь в государственную организацию, лучше всего в НИИ. Денег у госконторы обычно немного, но задачи по программированию возникают и часто довольно сложные. К примеру, моей первой работой была Николаевская астрономическая обсерватория (НИИ НАО). Чем только я там не занимался: обработка результатов астрономических наблюдений, математическая статистика, веб-разработка, базы данных. Сейчас много говорят о бигдата, так вот задачи с этой самой бигдатой у меня были ещё в далёком 2005-м году. Кто не верит, может вспомнить старую присказку «много как звёзд на небе» или словосочетание «астрономические числа». Правда приходилось и ящики таскать, но это не так уж страшно.

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

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

Вам за 40, или борьба с дискриминацией

Постсоветское общество, к сожалению, очень косное и приверженное предрассудкам. К примеру, считается, что подчинённый обязательно должен быть младше начальника, дескать по-другому руководителя не будут уважать. Тем более, стажёр не может быть сорокалетним солидным дядькой. Ещё бытует мнение, что по достижении зрелости работать на рядовой должности вообще стыдно, вне зависимости от оплаты. Существуют и другие стереотипы. Ну там программист обязательно должен быть трудоголиком, живущим только работой, красивая женщина обязательно глупа (а значит не может выполнять обязанностей сложнее приготовления кофе). В итоге это выливается в раздражающую фразу: «технические навыки у вас хороши, но, к сожалению, вы не впишетесь в коллектив». Поскольку рецепта вечной молодости нет, нужно что-то делать.

  • Во-первых, можно поискать работу с западным руководством. Как правило, в Европе и США подход к гендерным и возрастным различиям проще: если человек обладает знаниями и может работать по состоянию здоровья, он подходит. Вообще на западе, насколько мне известно, другие традиции происходящие с одной стороны из-за законодательной борьбы с дискриминацией (попробуй только отказать из-за возраста, национальности или пола - штрафы будут «освежающей» величины), с другой - ориентации преимущественно на зарабатывание денег. Напротив, в некоторых отечественных конторах девизом до сих пор является: «мы не пашем, не сеем, не строим, мы гордимся общественным строем» и всякий, кто не разделяет политических, социальных или иных убеждений - враг, брать на работу его не стоит.
  • Во-вторых, спасением для возрастных или по ряду причин не могущих работать в офисе остаётся фриланс. Я писал , что это сложно и подходит не каждому, но у свитчера есть ряд вышеуказанных преимуществ. Во всяком случае, если не пробовать, не получится точно! Заказчику фрилансера вообще всё равно, как выглядит человек на другом конце, важно, чтобы работа была выполнена в срок и с приемлемым качеством. Так что, если не берут совсем никуда, об этом виде заработка можно подумать.

История об инвалиде-колясочнике

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

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

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

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

Вспомните об этом человеке, когда будете оправдывать своё ничегонеделание, дескать вам тяжело. А парализованному с кучей физических и психологических проблем легко было? Да, ему помогли, но если бы он не работал, никто бы ему не платил просто так. Так что если получилось у него, не вижу причин, чтобы не получилось у вас.

Успехов вам в освоении!

Немного мотивации



«С какого языка программирования начать?» — именно такой вопрос часто задают люди, решившие попробовать научиться программировать. Еще лет пять назад можно было посоветовать учиться программировать на Бейсике, но на данный момент это полный идиотизм, так как Бейсик — это уже древнее ископаемое. Да, сейчас многие могут посоветовать учиться программировать на Visual Basic. Упрощенная версия этого языка – VBA (Visual Basic for Application) встроена во все офисные приложения Майкрософт. Тем кто пишет макросы для офисных приложений Майкрософт без VBA не обойтись. Тем не менее, не могу посоветовать ни Бейсик, ни Visual Basic в качестве языка для изучения программирования.
Я предлагаю рассмотреть два случая:

1. У вас все замечательно с математикой и физикой, вы без труда запоминаете довольно сложные формулы, вас не пугают различные непонятные символы.
В этом случае, стоит начать изучение программирования с языка Си. Дело в том, что Си очень мощный язык, на основе которого создано много других еще более мощных языков, таких как С++, Java, С#, PHP и других. К слову сказать, на этом языке написана операционная система Windows и практически все компьютерные игры, в которые вы играете.

Если вы остановите свой выбор на Си, а точнее все же на С++, то информации по этому языку более чем достаточно в Интернете. Тем не менее, советую купить хороший справочник по С++. Настоятельно рекомендую купить справочник Герберта Шилдта.

Справочник по С++

Полный справочник по C++. Книга является бестселлером и издается уже в четвертый раз. 4-е издание. В четвертом издании этой книги полностью описаны и проиллюстрированы все ключевые слова, функции, классы и свойства языка С++, соответствующие стандарту ANSI/ISO. Информацию, изложенную в книге, можно использовать во всех современных средах программирования. Освещены все аспекты языка С++, включая его основу — язык С. Справочник состоит из пяти частей: 1) подмножество С; 2) язык С++; 3) библиотека стандартных функций; 4) библиотека стандартных классов; 5) приложения на языке С++. Книга предназначена для широкого круга программистов.
Заказать книгу>>

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

Самоучитель Pascal

Программирование на Pascal.
Автор Сэм Аболрус. Оригинальное название книги в переводе с английского – «Изучаем Паскаль за три дня». Действительно, освоить азы программирования на Паскале, при помощи это книги можно за пару дней. Автор работает программистом в корпорации Майкрософт.
Заказать книгу>>

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