Инструкция для тех, кто хочет стать программистом с нуля. Хочу стать программистом


Инструкция для тех, кто хочет стать программистом с нуля

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

С чего начать

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

Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:

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

Какой язык, технологию и направление выбрать

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

  • Наличие на рынке вакансий. Конечная цель этого пути — найти работу программистом. А это будет трудно сделать, если на рынке вакансий никто не будет искать разработчиков на вашем языке программирования. Проверьте сайты с вакансиями, посмотрите, кого больше ищут, выпишите десяток языков. И переходите к следующему критерию.
  • Низкий уровень вхождения. Если вам придётся потратить длительное время на изучение языка, это может отбить у вас охоту к программированию вообще. Почитайте о тех языках, которые вы выбрали выше. Просмотрите литературу, которую нужно будет прочитать, чтобы изучить эти языки. И выберите те, о которых пишут, что они лёгкие, или которые вам показались лёгкими. Такими языками могут оказаться PHP, Ruby, Python.
  • Кайф от процесса. Если вам не нравится писать код на выбранном языке, вы не будете получать удовольствия от этого процесса, от работы и от жизни. А оно вам надо? Делайте правильный выбор.

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

В любом случае изучите веб-технологии. Это язык разметки HTML, стили CSS и JavaScript, который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.

Как получить начальный опыт

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

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

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

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

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

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

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

Почему стоит выбрать Python

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

Код программы на Python читабелен. Вам даже не нужно быть программистом, чтобы в общих чертах понять, что происходит в программе. Из-за несложного синтаксиса Python вам понадобится меньше времени для написания программы, чем, например, на Java. Огромная база библиотек, которая сэкономит вам кучу сил, нервов и времени. Python является высокоуровневым языком. А значит, вам не нужно особо думать о ячейках памяти и о том, что там разместить. Python — язык широкого назначения. И он такой простой, что даже дети могут его выучить.

Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.

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

Языки C и C# очень сложны для новичка. Ruby — хороший выбор в качестве второго языка, но не первого. JavaScript — очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.

Важен ли английский язык

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

Что нужно знать, кроме языка программирования

Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что — зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.

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

Последние шаги

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

lifehacker.ru

Как стать программистом с нуля самостоятельно

С чего начать учится программированию с нуля чайнику?В этой статье я постарался подробно разобрать, можно ли стать программистом с нуля самостоятельно и какие варианты есть для того, чтобы освоить программирование самостоятельно и начать зарабатывать на этом.UPD: Тем, кто ищет, с чего начать изучать программирование с нуля в 2018 (или пока только собирается и приступит в 2019 :)), сильно повезло благодаря книге Якова Крамаренко «Введение в разработку программного обеспечения». Я искренне рекомендую с ней ознакомится — она стоит того, чтобы обновить статью №1 по рейтингу Google и отзывам читателей для тех, кто изучает программирование самостоятельно.

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

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

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

С чего начать изучение программирования

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

Книга по веб-программированию для начинающих

В 2018 появилась книга «Введение в разработку программного обеспечения» Якова Крамаренко. Для изучающих программирование с нуля — возможно лучшая книга, с которой стоит начать. Книга освещает начальные шаги в веб-разработке, не затрагивая серверной части. Яков в доступной форме рассказывает про HTML, CSS  и Javascript, которые необходимы, если вы изучаете веб-программирование.

Поэтому теперь у вас есть выбор — дочитать до конца эту статью и воспользоваться моими рекомендациями, или начать с книги Якова :)

Ви можете розпочати вчити програмування українською or start learn programming in English — все варианты доступны! Главное начать :)

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

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

Также я очень рекомендую Гарвардский курс по основам программирования CS50: https://cs50.harvard.edu/.

Версия 2016 года есть в переводе: https://courses.prometheus.org.ua/courses/Prometheus/CS50/2016_T1/about.

Лучше пройти курс на английском. И язык прокачаете, и информация посвежее. Хотя сильно курс не менялся — только в 2017 вместо PHP начал использоваться Python.

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

Дальше — мои оригинальные рекомендации, актуальные и сегодня.

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

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

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

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

Как самостоятельно стать программистом с нуля

Что нужно чтобы стать программистом

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

1. Разобраться в HTML и CSS

Хороший курс для базового освоения HTML и CSS: https://webref.ru/layout/learn-html-css

После этого стоит посмотреть на возможности Bootstrap, который стал стандартом де-факто для ускоренной разработки веб-приложений: http://getbootstrap.com/

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

На этом тоже можно зарабатывать — как на фрилансе, так и работая в ИТ-компании, которая специализируется на веб-разработке.

Но раз мы решили стать программистом — двигаемся дальше!

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

2. Познакомиться с jQuery

Для этого я рекомендую книгу «jQuery — учебник для начинающих»:http://anton.shevchuk.name/jquery-book/

Если понравилось — можно продолжить разбираться с frontend и начать изучать Javascript.

Если следом пойдет https://angularjs.org/ или http://backbonejs.org/ — то это путь во фронт-енд разработку. Хорошая специальность, тем более, что такие знания пригодятся любому программисту, который выбрал веб-разработку.

Мой совет — пока остановиться на jQuery и двигаться дальше.

3. Освоить серверный язык программирования

Тут выбор большой. Самые перспективные языки программирования — Ruby, Java, Python, Node.JS (Javascript для сервера).

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

Хороший вариант — язык программирования Python и Django

Плюс — Python и Django научат вас «правильному» программированию.  Python стабильно входит в ТОП5-10 самых востребованных языков, а хорошие специалисты в Python одни из самых высокооплачиваемых программистов. Python одновременно простой и понятный для начинающих программистов язык программирования, и при этом используется во многих крупных компаниях и на больших проектах.

Вообщем я люблю Python и рекомендую начать с него.

Для самостоятельного освоения прочтите «Python для детей» Джейсона Бриггса или посмотрите:

Язык программирования Python за 10 минут

Язык программирования Python — подробно для начинающих

Среди других материалов рекомендую Learn Python The Hard Way. книгу «Простой Python. Современный стиль программирования». И, конечно The Python 2 Tutorial и The Python 3 Tutorial.

Django — возможно лучший фреймворк для веб-разработки

Лучший инструмент на все случаи жизни очень сложно найти. Django имеет все шансы стать таким инструментом для веб-разработки.

Я точно рекомендую познакомится с ним.

С чего начать для изучения Django:

Начните с официальной документации, там очень хороший tutorial: https://docs.djangoproject.com/en/2.1/intro/

Затем посмотрите http://www.tangowithdjango.com/

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

Вариант №2 — PHP и WordPress

Другой путь — начать с PHP и работы с популярными CMS. Если вы изучаете программирование сами и хотите быстро начать работать — начните с PHP.

Многие считают PHP «не совсем настоящим» языком программирования и для этого есть основания. PHP редко используется в крупных веб-приложениях и заточен только для веб — использовать его в других областях не получится.

С другой стороны — PHP лидирует по количеству запущенных в мире сайтов. На нем основаны самые популярные CMS (системы управления сайтами).

Для старта рекомендую книгу: «Изучаем РНР и MySQL» авторов Линн Бейли и Майкл Моррисон

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

Хорошо разобравшись с этим, уже можно найти работу. Под PHP и WordPress очень много сайтов, поэтому работы хватит всем.

Как начать зарабатывать программистом

Многие представляют работу программиста-фрилансера так:

Хочу стать программистом

Или так:

Как стать программистом с нуля

На самом деле это выглядит примерно так:

Программирование для начинающих

Если вы готовы к работе программиста и ищете способ зарабатывать — добро пожаловать на фриланс! Фриланс-биржи позволят вам найти простые заказы (возможно почти бесплатно на первых порах) — чтобы получить практику. Как правило, работа в ИТ-компании может быть прибыльнее, если вы просто ищете работу программиста.

Уже после пункта 2 — освоив HTML, CSS и jQuery — можно идти на фриланс биржи и брать несложные заказы, нарабатывая профиль.

Знаете английский? https://www.upwork.com/

Совсем нет, даже со словарем? http://freelance.ru/

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

Быстрый путь в веб-разработчики

Исходя из моего опыта, на изучение программирования с нуля уйдет от 6 до 12 месяцев в лучшем случае, при этом 6 месяцев — это если вам кто-то помогает.

Чтобы ускорить процесс входа в ИТ — ищите возможность пойти на тренинг (возможно понадобится не один) или найдите человека, который будет заниматься с вами. Реально без человека, который передаст вам свои знания — очень сложно, можно просидеть год за книгами и так и не начать. А со знающим человеком, который может просто рассказать о сложных вещах — намного легче.

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

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

Как только почуствуете уверенность в том, что можете что-то создать — ищите компанию, где сможете развиваться дальше или клиентов.

HTML, CSS, Python и Javascript — это только базовые знания, первый этап. Дальше очень важна практика, изучение алгоритмов и инструментов для разработки.

Учиться на программиста

Если есть вопросы — задавайте в комментариях! Надеюсь эта статья поможет вам сделать первый шаг. Успехов!

itman.in

Хочу стать программистом

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

Как бы банально не звучало, но начать следует с изучения основ языка программирования. Не следует изучать языки предназначенные для обучения такие как: Pascal, Basic. Выберите полноценный язык программирования который используют в своей деятельности профессионалы. Например, начните изучать C/C++, C#, Java или Python. Начать изучение языка вы можете по книгам и для каждого языка найдется парочка достойных, подробно и доступно написанных книг. Для Python я бы посоветовал книгу Марка Лутца «Изучаем Python», для Java Брюс Эккель «Философия Java», для C++ Брюс Эккель «Философия C++», для C# Эндрю Троелсен «Язык программирования C# 2010 и платформа .NET 4.0». Так же не забывайте о практике, выполняйте упражнения предлагаемые в книгах и пробуйте писать свои небольшие программы. На этом этапе вы овладеваете главным инструментом программиста и уже можете создавать нечто свое, нечто уникальное, но чтобы вы могли создать современный, востребованный и качественный продукт вам придется расширять и углублять свои знания.

История развития алгоритмов

Любой начинающий специалист, желающий стать программистом, должен знать историю развития и становления своей отрасли хотя бы для того0 чтобы не повторять «чужие» ошибки. История для программиста — алгоритмы. Вы должны ближе познакомится алгоритмизацией и историей развития алгоритмов. Тут можно посоветовать такие книги как Дональд Кнут «Искусство программирования» и Томас Кормен, Чарльз Лейзесторн, Рональд Ривест, Клиффорд Штайн «Алгоритмы. Построение и анализ». Следует предостеречь, что тут вам может понадобиться познания в области математического анализа и не помешает вооружиться хорошим справочником по этой дисциплине.

Операционные системы и программирование

Вы должны быть хорошо знакомы с операционными системами под которые планируете разрабатывать программы. Вы должны знать как устроены эти системы, знать как минимум по одному языку командой оболочки для вашей системы, иметь базовые навыки системного администрирования. Для Windows могу посоветовать Уильям Станек «Windows 7 для продвинутых», Linux — Маттиас Далхаймер, Мэтт Уэлш «Запускаем Linux», FreeBSD — Майкл Лукас «FreeBSD. Подробное руководство». Если вы собираетесь разрабатывать ПО для смартфонов или планшетов, тогда не стоит забывать об операционных системах для мобильных устройств.

Программирование баз данных

Чем бы вы не занимались и какого бы рода ПО не разрабатывали готов поспорить, что вам придется столкнуться с базами данных. Без опыта работы хоть с какой-то СУБД вы не сможете стать программистом даже в отдаленном понимании смысла этого слова. В любом проекте где имеется база данных, она становится главным объектом для внимания программистов. Очень важно не только уметь грамотно проектировать структуру БД, но и уметь организовать взаимодействие программы с оной наиболее оптимальным способом. Могу посоветовать несколько книг: Томас Коннолли, Каролин Бегг «Базы данных. Проектирование, реализация и сопровождение. Теория и практика.», К. Дж. Дейт «SQL и реляционная теория», Стефан Фаро «Рефакторинг SQL-приложений», Кэвин Кляйн, Дэниэл Кляйн, Брэнд Хант «SQL справочник».

Рефакторинг кода

хочу стать программистом

Объектно-ориентированное программирование и проектирование, рефакторинг кода. Очень важно научиться писать код так чтобы он был понятен другим программистам, он был универсальным и его можно было использовать повторно, именно в этом нам поможет объектно-ориентированное программирование. Обязательно стоит прочесть такие труды как: Эрих Гамма и др. «Приемы объектно-ориентированного проектирования», Мартин Фаулер «Шаблоны корпоративных приложений». Это книги ставшие классикой и шаблоны приводимые в них надо знать наизусть. Так же вам может потребоваться изучить какие-то специфические шаблоны связанные с той область в которой вы планируете работать. Рефакторинг — улучшение и повышение качества уже существующего кода, и вам очень важно овладеть этим умением. В этом вам помогут следующие книги: Мартин Фаулер «Рефакторинг существующего кода», Роберт Мартин «Чистый код. Создание, анализ и рефакторинг».

resume professor

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

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

Я перечислил основные темы которыми необходимо овладеть чтобы успешно разрабатывать современные и качественные программы, но время не стоит на месте, а IT-отрасль развивается стремительно. Надо постоянно осваивать новые технологии, чтобы оставаться востребованным специалистом ну и конечно же не забывать о практике! Если вы всерьез решили стать программистом, тогда вас наверняка заинтересует моя следующая статья о языке программирования Visual C#.

Хочу стать программистом, с чего начать? was last modified: Март 3rd, 2016 by Admin

compuzilla.ru

Сочинение “Я хочу стать программистом”

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

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

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

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

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

schoolessay.ru

Неправильный, но быстрый способ стать программистом

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

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

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

Как я стал программистом

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

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

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

Зарплатная политика

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

Позор и стыд

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

Первая работа

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

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

Рекомендации для начинающих программистов

  1. Резюме. Оно должно быть правильно отформатированным и написанным исключительно на английском. Если не хватает опыта, то его можно (и нужно) придумать, но следует подготовиться отвечать за каждое написанное в резюме слово. Например, если у вас там написано JMS (Java Message Service), то вам как минимум следует пройти хоть одну обучалку и поиграться с JMS, поделать какие-нибудь примеры, пускай это и будет банальное «Hello, world!». Теперь вам будет удобнее пускать пыль в глаза, вы ведь и правда «работали с JMS».
  2. Выучите азбуку программирования. Если вы ещё можете позволить себе «плавать» на глубоких уровнях каких-нибудь комплексных технологий вроде Struts и Spring, то неправильные ответы на элементарные вопросы вам никогда не простят. Если вас ночью разбудить, то вы должны уметь рассказать про ООП, наследование, инкапсуляцию, полиморфизм и другие базовые концепции, а также суметь объяснить это всё на примерах.
  3. Практика. Научиться программировать можно, только лишь программируя. Это больно и неприятно (если вы не программист), но другого пути нет. Единственный способ перестать бояться задачек на собеседованиях — порешать их дома самостоятельно.
  4. Читайте книги и проходите туториалы по Java только на английском. Абсолютно все термины программирования проще понимать на языке оригинала, то есть на английском. Читать техническую литературу по Java на русском — себя не уважать. Почему? Потому что, чтобы понимать что-нибудь в духе «…модуль таблицы во многих смыслах представляет собой промежуточный вариант, компромиссный по отношению к сценарию транзакции и модели предметной области», нужно быть поистине гением, которым вы вряд ли являетесь.
  5. Выучите, наконец, английский! В первую очередь это касается разговорного английского. Сложно сосчитать то огромное количество толковых программистов, которых на моей памяти забраковали по одной единственной причине — неудовлетворительный уровень разговорного английского. Нет, если вы, конечно, собираетесь работать программистом где-нибудь в «Киевстаре» или в другой отечественной компании, то ваш уровень языка не будет играть важной роли. Но если вы хотите попасть на работу в международную компанию, то сам бог велел выучить язык. Уровень вашего английского будет конвертироваться в дополнительные сотни долларов прибавки к вашей зарплате.
  6. Знайте рынок. Походите по вакансиям, почитайте требования, поспрашивайте друзей-программистов, сколько они получают. Используйте сервисы, которые позволят составить вам более полную картину о рынке IT. Вы были бы удивлены, узнав о том, насколько велико количество талантливых программистов, которые получают в два раза меньше, чем могли бы, только лишь по причине своей лени и нежелания держать нос по ветру.
  7. Торгуйтесь. Нет ничего предосудительного в том, чтобы торговаться за зарплату. Вашим аргументом в споре может быть как хороший английский, так и предложение о работе в другой компании. Последний аргумент особенно хорошо работает: «Да, но мне в Luxoft предлагают на 300 долларов больше, почему я должен соглашаться на ваши условия? Может, мы могли бы найти компромиссный вариант?». В своё время мне пару раз удалось выторговать дополнительную сотню долларов к своей зарплате, и через год эта сотня долларов дала мне дополнительные 1 800 долларов дохода на ровном месте. Вы должны понимать, что даже для небольших зарубежных IT-компаний лишняя сотня баксов как капля в море.
  8. Найдите себе ментора. Хорошо, если у вас будет более опытный товарищ, который сможет помочь советом и ответить даже на самые глупые вопросы. Благодаря его опыту и моральной поддержке вы будете продвигаться в программировании быстрее, чем в одиночку. Если нет ментора, то неплохо бы сходить на какие-нибудь курсы по программированию, которые не только дадут вам более полную картинку того, чем занимается программист, но и позволят познакомиться с более опытными людьми. Кто знает, может быть, кто-нибудь из них захочет стать вашим ментором.
  9. Начните свой проект. Даже если он будет образцом самых худших практик кодинга и вы его никогда не закончите, по крайней мере у вас будет то дело,  ради которого вам захочется разбираться в программировании и изучать новые технологии. Кроме того, у вас появится дополнительная тема для задушевных бесед на собеседованиях.
  10. Ищите работу летом. Во-первых, когда все в отпусках, в компаниях более остро ощущается нехватка кадров и повышается вероятность того, что вас позовут на собеседование. Во-вторых, поскольку ваши конкуренты-соискатели тоже на отдыхе, у вас опять-таки повышаются шансы быть замеченным HR.
  11. Никогда не сдавайтесь. Даже если вам кажется, что вы заваливаете собеседование, важно проявить стойкость и продолжить попытки решить задачу, какой бы сложной она ни казалась. Кто знает, может быть так, что вас именно в этот момент проверяют на усердие в работе!
  12. Избегайте заданий на компьютере. Нет способа быстрее раскусить непрофессионала, чем сразу же бросить его в пекло программирования. Ваша задача — постараться перевести все беседы на высокий уровень, где обсуждаются общие подходы и концепции, но никак не конкретная реализация в решении той или иной задачи. Если вам дали бумагу и ручку и попросили записать решение, то попросите возможность нарисовать его схематически. Таким образом, удалившись от синтаксиса конкретного языка, вы не только убережёте себя от каких-нибудь режущих глаз ошибок, но и покажете, что способны мыслить абстрактно, не вдаваясь так уж сильно в детали.
  13. Начинайте говорить первым. Избегайте ситуаций, когда в воздухе виснет пауза, во время которой в мозгу у интервьюера может созреть очередной коварный вопрос. Как только происходит какая-либо заминка, следует начать рассказывать что-нибудь из того, что вы хорошо знаете. Постарайтесь навязать интервьюеру свою игру.
  14. Старайтесь говорить правду. Если вы никогда не писали PL/SQL процедуры, то лучше об этом сказать прямо. Возможно, в этом для вас будет минус, однако вы убережёте себя от нужды выкручиваться, отвечая на вопрос, в котором ничего не смыслите. Опытный интервьюер за версту почувствует ваши пробелы в знаниях.
  15. Бойтесь маленьких компаний. В небольших компаниях, как правило, небольшие команды. Чем меньше в команде людей, тем быстрее вас раскусят. Ваша цель — большая и неповоротливая корпорация, где вы сможете выиграть для себя немного времени.
  16. Соблюдайте дресс-код. Если вы придёте на собеседование на должность программиста в шикарном костюме, то это вызовет больше подозрения, чем если вы явитесь в шортах или потёртом свитере. Не лишним будет также нацепить очки, мол, «эдакий я книжный червь».

Конечно, кто-то знающий может отметить, что приведённый выше рецепт — это скорее способ стать кодером, чем программистом, и он где-то будет прав. Однако дело всё в том, что вы никогда не найдёте вакансию с заголовком «Требуется плохой кодер». Всем нужны программисты. Желательно senior. У которых более пяти лет опыта работы на корпоративных проектах и которые одинаково хорошо владеют сразу несколькими языками программирования, при этом досконально разбираются в СУБД, умеют писать bash-скрипты, хранимые процедуры, знают в совершенстве Linux, TCP/IP, обладают лидерскими качествами, стрессоустойчивостью, коммуникабельностью и ещё массой навыков, «без которых никак».

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

lifehacker.ru

Что нужно, чтобы стать программистом и хорошо зарабатывать?

Что нужно, чтобы стать программистом и зарабатывать от 2000$ в месяц?

От автора: работа программистом может стать вашим счастливым билетом в жизнь. Это сложная дорога, требующая огромного количества потраченных усилий и времени на изучение языка HTML, CSS, Java, PHP и прочих технических штук, но, черт возьми, игра стоит свеч. Продолжайте чтение статьи, если вас не пугают трудности на пути к звездам, и вы четко хотите понять, что нужно, чтобы стать программистом.

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

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

С чего начать?

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

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

Современные тенденции и подходы в веб-разработке

Узнайте алгоритм быстрого профессионального роста с нуля в сайтостроении

Узнать подробнее

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

Развиваться в этой тематике можно, выбрав один из 4 представленных ниже путей:

Самостоятельно стать программистом (самообразование).

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

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

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

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

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

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

Современные тенденции и подходы в веб-разработке

Узнайте алгоритм быстрого профессионального роста с нуля в сайтостроении

Узнать подробнее
Получить высшее образование в университете.

Этот путь будет самым долгим. За сколько можно стать программистом в университете? Лет 5, не меньше. Нельзя сказать, что у вас будет большое преимущество в знаниях, ведь половину образовательной программы разбавят ненужными предметами вроде физкультуры, философии и прочих наук, с преподавателями которых явно не поговоришь на языке HTML или Java.

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

Стать крутым программистом с помощью ментора.

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

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

Какие знания необходимы?

Знания, которые необходимо получить, зависят от того, на чем вы хотите специализироваться. Каким программистом лучше стать — решать только вам. У каждого человека свои цели и предпочтения. Если говорить о том, что надо, чтобы стать программистом в самом начале, то советую определиться с подходящим языком программирования (PHP, Java, Python, Ruby и т. д.). Критериями выбора могут стать следующие 3 параметра:

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

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

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

Как получить первый практический опыт?

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

Не нужно ждать, пока закончится последняя страница новой мега полезной книги, которая сделает вас гуру программирования. Увидели задание? Тут же выполняйте, потом усложняйте, экспериментируйте. Задача: прокачать ключевые навыки в программировании до уровня автоматизма. Бои выигрывает не тот, кто много знает, а тот, кто может удачно применить свои знания на поле битвы.

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

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

Современные тенденции и подходы в веб-разработке

Узнайте алгоритм быстрого профессионального роста с нуля в сайтостроении

Узнать подробнее

Практика монетизации блога: от раскрутки до реальных денег

Пошаговая система по созданию, раскрутки и монетизации блога.

Научиться

webformyself.com

Итак, вы решили стать программистом

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

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

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

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

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

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

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

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

Однако выбор «высокоуровневой» ниши не означает, что вы можете ничего не знать об ассемблере, Си, C++, устройстве операционных систем и так далее. И наоборот. Хороший Python-программист знает, как найти узкое место в своей программе и при необходимости переписать ее на Си, а крутой сишник знает, как сэкономить время, сгенерировав кусок шаблонного кода скриптом на Python, после чего протестировать его еще одним скриптом на Python.

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

Саморазвитие — это отдельная большая тема, которой я надеюсь когда-нибудь посвятить отдельный пост, но в первую очередь это означает чтение книг. Не бложиков и не новостных сайтов, хотя это тоже полезно, а именно книг (о программировании, а не фэнтези). Возьмите за привычку читать по пути на работу и с работы, перед сном, после сна, во время еды, в душе… читайте как можно больше! Некоторые книги о программировании довольно объемны, поэтому я настоятельно рекомендую приобрести хороший планшет (мне лично для чтения нравятся планшеты с диагональю 10") и читать книги с него.

О чем должны быть эти книги? Ну, в первую очередь, неплохо бы читать нечто, связанное со спецификой вашей работы. Но не только. Читайте книги об алгоритмах, операционных системах, СУБД, системах контроля версий, просто книги о разработке (тут вспоминаются, к примеру, Спольски, Макконнелл, Брукс, Фаулер…). Они пригодятся вам независимо от вашей работы и выбранной ниши. Также изучайте новые языки программирования. Как я уже когда-то писал, это редко оказывается пустой тратой времени.

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

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

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

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

Дополнение: См также Советы и примеры задач, которые помогут вам в освоении нового языка программирования

Метки: Работа, Разработка, Философия.

eax.me