Написать пост

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

Аватар Типичный программист

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

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

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

Рейтинг полезности ответа:
28.5

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

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

Так что желаю всем успеха, будущие коллеги!;)

Рейтинг полезности ответа:
5.6

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

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

Прежде всего, программисты делятся по тому, каков будет итоговый продукт их деятельности: веб-программисты, которые делают проекты в Интернете, игроделы, разрабатывающие игрушки, системные программисты, которые постоянно находятся по локоть в железе и многие другие. И даже когда мы рассмотрим отдельную область, оказывается, что все не так просто. Например, среди веб-программистов выделяют отдельно front-end и back-end программистов. Первые пишут на JavaScript и немного верстают на CSS и HTML, наполняют веб-странички жизнью, картинками, анимацией, делают так, чтобы каждый посетитель мог пользоваться каждой возможностью сайта и насладился приятной глазу картинкой. Вторые делают так, чтобы за анимацией были реальные данные, работающая функциональность (например, анализ данных). Рассмотрим сайт с погодой. Тучки, летающие по страничке и кнопки, их корректная работа и аккуратный вид — заслуга front-end программиста, а данные о прогнозе погоды для любого города и на любой период — работа back-end программиста. Все деления, конечно же, условны, но уже можно понять, что в одном случае программиста интересует, КАК надо показать информацию, а в другом — ЧТО надо показать.

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

Что можно начать делать прямо сейчас? Ты счастливчик, потому что живешь в эру, когда существует огромное количество специальных учебных материалов, которые можно брать и пользоваться, зачастую совершенно бесплатно. Самые популярные образовательные порталы сейчас: khanacademy.org, coursera.org, codecademy.com, edx.org. На них бесплатно доступны курсы от профессоров самых престижных университетов, в любое время дня и ночи, для людей любого уровня. Немыслимая еще десять лет назад роскошь, когда ты можешь получить безграничные знания, обладая лишь желанием, интернетом и знанием английского языка. Кроме того, для развития математической и алгоритмической интуиции можно разминать свой мозг задачами спортивного программирования, которые ты можешь найти на сайтах acm.timus.ru, codeforces.com, projecteuler.net и других подобных ресурсах. Более того, интересным и познавательным является решение подобных задач в соревновательном режиме на сайтах topcoder.com и codeforces.com.

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

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

Удачи и успехов!

Рейтинг полезности ответа:
55.0

Чтобы учиться программировать, надо программировать. Разные, совершенно не связанные и не логичные, вещи: code.org, hexlet.io, gamedev.ru.

Рейтинг полезности ответа:
0.3

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

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

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

Поэтому, если «душа» рвётся, а характер и голова позволяют «посидеть, подумать и разложить на детали», то смело выбирайте дневное отделение вуза с профильной кафедрой. Днем получайте фундаментальное образование, а по ночам — прикладные знания. Изучайте интереснейший мир IT со всех сторон: если вас интересуют физические процессы — моделируйте их, если интересно написание программ на новых языках — пишите их. Делайте то, что вам интересно, пробуйте новое и пытайтесь найти себя в IT. К окончанию вуза за вашими плечами будет хорошее базовое образование, знание нескольких языков программирования и главное — понимание, что интересно именно вам. Переносите все это в резюме и идите junior’ом в крупную компанию, а лучше сразу к нам в Acronis.

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

Рейтинг полезности ответа:
15.6

Самое главное — начать пробовать создавать какие-то программы. Если вам еще нет 12 лет — попробуйте создавать простые игры на Kodu Game Lab или Scratch. После 12-ти можно переходить на традиционные языки программирования. Это может быть Python, хотя лично мне всегда был близок C# – для него есть хорошая среда разработки, а программировать можно всё: от игр в Unity, до веб-сайтов на ASP.NET или электроники. Для обучения можно посмотреть видео-уроки, или почитать книжку C# для школьников.

Рейтинг полезности ответа:
8.7

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

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

После того, как появилась определённость с направлением — время искать подходящее место.

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

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

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

Ещё что-нибудь?

Да, ещё есть специальные онлайн курсы по языкам, алгоритмам. Из числа известных: coursera.org, javarush.ru. Информацию по алгоритмам и структурам данных можно найти на e-maxx.ru.

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

И всё?

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

Удачи в освоении программирования!

Рейтинг полезности ответа:
17.5
Следите за новыми постами
Следите за новыми постами по любимым темам
52К открытий52К показов