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

Содержание

Стать разработчиком с нуля: мифы в голове новичков

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

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

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

Миф 1: языки программирования непонятные

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

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

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

Но эти языки тоже были далеки от обычной лексики. И над ними тоже начали появляться надстройки — ещё более простые и понятные. Потом ещё надстройки. Здесь есть и обратная сторона — каждый новый уровень сужал возможности программиста.  Так мы подошли к новому времени.

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

Миф 2: программировать скучно

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

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

Миф 3: учиться нужно очень долго

Ранее было сказано, что достаточно 16 недель с преподавателем, чтобы выучить Ruby. Это не означает, что через 19 недель будет некуда расти. Учиться нужно будет всегда. Чем больше программист знает и умеет, тем он дороже.

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

 

А ещё мы взяли комментарий у Алексея Поимцева — ведущего разработчика и генерального директора в студии Progress Engine, а также преподавателя курса:

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

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

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

Алексей Поимцев,
Progress Engine

***

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

tceh.com

Как взрослому человеку научиться программированию с нуля — Вопросы на vc.ru

Добрый день.

Меня зовут Алексей, у меня двое детей (3,5 и 1 год) и две работы (11 часов в сутки, на ногах с 6:30, домой приезжаю в 20:00). В будущем я очень хочу стать ближе к робототехнике, программированию и всему, что связано с высокими технологиями.

Подскажите, пожалуйста, инструменты и методики для быстрого и эффективного обучения практически с нуля. В моем случае дело дошло до оплаты курсов в «Специалисте» при МГТУ по основам программирования и СУБД и программированию на языке C.

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

Стремления очень много, а вот времени не всегда хватает.


Отвечает Глеб Кушедов, основатель школы интернет-технологий Epic Skills

Привет.

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

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

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

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

Начать я, конечно, порекомендую с web-программирования — по этой теме можно найти большое количество качественных материалов, и быстрее всего будет виден результат. Основные ресурсы, которые могут пригодиться — HTML Academy, Code School, Loft Blog и Lynda.

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

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

Обязательно попробуйте заняться UX — может, это будет для вас чем-то более родным.

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

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

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

Сходите на тусовки айтишников: вы посмотрите, пообщаетесь, поймете как мы думаем, а может и вовсе передумаете становиться одним из нас.

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


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

vc.ru

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

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

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

Мое знакомство с настоящим программированием произошло вовсе не в ВУЗе, а на работе. Примерно за месяц до начала первого курса, я устроился на пол-ставки помощником системного администратора в офис неподалеку. Первая задача, которая встала там передо мной – разобраться, как работает сайт компании, который хостился в собственной серверной, т.к. в работу помощника сисадмина входили и обязанности веб-мастера. Тогда-то мне и дали четыре книги. Одна была о PHP, вторая о JavaScript, третья о HTML, четвертая о CSS. Начал я с книги об HTML, но т.к. уже знал достаточно много со времен школы, мне это быстро наскучило и я переключился на PHP. Книга познакомила меня с основными типами данных, такими понятиями, как ветвление, циклы и функции. Чуть позже – с SQL. Разбор основ программирования занял всего пару недель и когда я начал учиться, я уже примерно понимал, что к чему. PHP – очень простой язык, он отлично подходит для начинающих. Для тех, кто не хочет связываться с сайтами, подойдет Delphi, которому нас начали обучать на первом курсе. Язык очень простой, конструкции его интуитивно понятны, возможности его широки, он подходит как для начинающих программистов, так и для профессионалов. Рекомендую всем, кто хочет научиться программированию под Windows. В дальнейшем меня научили так же основам C/C++, Prolog, LISP, Haskell. Теперь я сам преподаю программирование в ВУЗе, который окончил.

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

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

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

thequestion.ru

Обучение программированию с нуля: с чего начать изучение в домашних условиях

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

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

Что нужно знать «чайнику»

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

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

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

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

Особенности обучения программированию на постсоветском пространстве

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

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

В странах бывшего СССР основным языком программирования, преподаваемым в технических ВУЗах, был Бейсик.

Ситуация кардинально не изменилась и через 10 лет. Лишь некоторые учебные заведения, учуяв веяния нового времени, в начале двухтысячных года начали перекраивать свое обучение под мировые стандарты. И только с этого момента программирование стало восприниматься как отдельная профессия и специализация обучения:

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

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

В некоторой мере такая тенденция сохраняется и по сей день. Хотя в наше время количество профессионалов, занимающихся преподаванием, заметно возросло.

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

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

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

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

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

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

  • Простая для понимания основа – часть встроенных возможностей языка для простоты вынесена в отдельно подключаемые библиотеки. К таким элементам относится большая часть математических функций и методов для работы с файловой системой;
  • Оптимально подогнанная система типов – благодаря простому набору типов данных и строгой типизации уменьшается риск допущения ошибок в процессе написания программного кода;
  • Направленность C на процедурный тип программирования, при котором соблюдается четкая иерархия всех элементов кода;
  • Доступ к памяти машины с помощью указателей;
  • Минимальное количество поддерживаемых ключевых слов;
  • Поддержка области действия имен;
  • Поддержка пользовательских типов данных (объединения и структуры).

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

Программы (компиляторы) для программирования

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

Компилятор – специальная программа, переводящая программный код в форму, понятную для компьютера.


Вот несколько специализированных компиляторов с поддержкой языка C:

  • Microsoft Visual Studio – профессиональный инструмент, поддерживающий множество языков, в том числе и несколько серверных. Подойдет для новичков, если брать его «на вырост»:
  • Borland C++ — бесплатный компилятор, идеально подходящий для начинающего обучение. В отличие от предыдущего инструмента, отличается ясным и понятным интерфейсом. Поэтому его освоение не вызовет особых трудностей даже при самостоятельном освоении азов программирования:
  • Code::Blocks – бесплатная среда разработки, поддерживающая написание кода на нескольких языках. Средний по сложности освоения вариант:

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

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

Тенденции на рынке программирования

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

  • Веб-программирование – здесь понадобятся знания PHP, CSS и HTML;
  • Разработка приложений под мобильную операционную систему Android – данная платформа построена на основе Java. Поэтому потребуется знание основ этого языка;
  • C# (си sharp) – дальний потомок C. На основе C# построена веб-технология ASP.net от Microsoft.

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

www.internet-technologies.ru

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

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

1. Самостоятельно

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

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

Платформа с бесплатными курсами по веб-разработке freeCodeCamp

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

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

Обязательно поставьте перед собой цель создать свой проект и постоянно работайте над ним.

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

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

Сервис вопросов и ответов на технологические темы «Тостер»

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

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

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

2. С помощью ментора

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

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

3. У преподавателей «живых» курсов

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

Популярные русскоязычные онлайн-площадки, которые занимаются системной подготовкой программистов: «Нетология», GeekBrains и Loftschool.

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

4. В университете

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

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

Как выбрать направление и язык

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

  1. Веб-разработка. Популярные языки: JavaScript, PHP, Python, Ruby.
  2. Мобильная разработка. Популярные языки: Java, Swift.
  3. Разработка игр и программ для настольных компьютеров. Популярные языки: C++, C#, C.
  4. Big Data, машинное обучение. Популярные языки: Python, R, Scala.

На что обратить внимание при выборе

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

График востребованности языков на международном рынке труда / research.hackerrank.com

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

ИНФОГРАФИКА: Какой язык программирования учить первым →

Если не можете определиться

Если вы в замешательстве, присмотритесь к JavaScript — языку, на котором написан почти весь веб. Многие организации и программисты советуют новичкам выбирать именно этот язык в качестве первого.

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

  1. JavaScript относительно легко освоить. А чтобы написать что-то и запустить на этом языке, достаточно иметь редактор кода и браузер.
  2. JavaScript — самый востребованный язык на международном рынке труда и у него большие перспективы. В экосистему JavaScript инвестируют крупные компании вроде Google, Microsoft и Facebook.
  3. У JavaScript очень широкая сфера применения: от сайтов и браузерных игр до мобильных приложений.

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

Что ещё должен знать программист: математика и английский?

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

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

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

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

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

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

  1. Выполните несколько заказов на биржах фриланса. Это могут быть «Фрилансим» или Upwork. Предлагайте свои услуги бесплатно, тогда к вам придут первые заказчики.
  2. Найдите единомышленников и создайте с ними общий проект. Люди объединяются для таких целей почти на каждой образовательной площадке, где есть курсы по программированию.
  3. Выберите курсы, организатор которых помогает с трудоустройством. Например, в GeekBrains после обучения открывается доступ к стажировкам от разных компаний, в том числе — оплачиваемым. GeekUniversity и «ШАГ» гарантируют трудоустройство своим выпускникам.

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

lifehacker.ru

Как научиться программировать с нуля и найти первую работу. Большой FAQ от Reddit | Статья

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

Читать далее

Начало
    С чего мне начать?
    Какой язык программирования стоит выучить первым?
    Где можно найти качественные образовательные ресурсы?
Как совершенствовать навыки
    Как перейти с начального уровня на средний?
    Где можно найти тренировочные упражнения и идеи для проектов?
    Как улучшить навык реализовывать задачи/задания в программах (алгоритмическое мышление)?
    Я не могу придумать классную идею для проекта. Мне просто не хватает креативности? Как другие программисты ищут вдохновение?
    Где можно найти примеры хорошего кода и проектов для обучения?
    Как выучить темы, которые рассматриваются в стандартных университетских программах по информатике?
    Как начать крупный проект и не забросить его?
Распространённые страхи и опасения
    Я уже слишком стар для программирования?
    Есть что-то другое, чему мне сначала нужно научиться?
    Нужно ли мне хорошо знать математику?
    Я много гуглю или не знаю, как делать что-то, когда только собираюсь начать. Это плохо?
    Программировать сложно?
Вопросы про обучение
    Что значит «знать язык» или «уметь программировать»?
    Я только что начал учить язык Х. Стоит ли мне начинать учить язык Y?
    Стоит ли учить более одного языка программирования одновременно?
    Это плохо, что у новичков иногда возникают проблемы с задачами и упражнениями?
    Как найти/поддерживать мотивацию, чтобы учиться программировать?
С чего мне начать Х?
    С чего начать делать видеоигры?
    С чего начать делать веб-сайты/веб-приложения/веб-разработку?
    С чего начать делать мобильные приложения/приложения для Android/приложения для iOS/приложения для Windows Phone?
    Как автоматизировать что угодно?
Терминология и словарь
    В чём разница между информатикой (computer science, CS), компьютерной инженерией (computer engineering, CE), программной инженерией (software engineering, SE), программированием и кодированием?
    С чём разница между Cи, C++, Objective-C и C#?
    В чём разница между Java и JavaScript?
Инструменты и управление версиями
    Что такое управление версиями/контроль версий? Стоит ли мне его использовать?
    С чего начать использовать управление версиями?
    Что такое IDE? Стоит ли мне её использовать?
Компьютеры и операционные системы
    Какую операционную систему мне следует использовать?
    Какой компьютер/ноутбук мне следует купить?
Карьера и работа
    Можно ли заработать много денег на программировании?
    Можно ли получить работу в программировании, не имея диплома по информатике? Или вообще без высшего образования?
    Как войти в эту отрасль и получить стартовую должность?
Что делать дальше?
    Больше не новичок
    Программирование — лишь инструмент
    Как улучшить навыки программирования
Разное
    Как обучить программированию ребёнка?
    Как делать вклад в open source-проекты?
    У меня вопрос по Си/Python/другому языку.
    Там нет моего вопроса. Что мне делать?
    Да, мой вопрос есть в ЧаВо, но я хочу получить ответ от реального человека.
    Как редактировать вики /r/learnprogramming (включая эти ЧаВо)?

Итак.

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

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

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

  1. Найти небольшую задачу или проект, который вам будет интересно решить. Можете попробовать создать инструмент для решения небольшой жизненной задачи или с нуля реализовать программу, которая вам кажется интересной. Такой проект мотивирует вас продолжать учиться кодить и даст возможность применить полученные знания на практике.
  2. Почитайте информацию о разных языках программирования, чтобы выбрать наиболее подходящий для вашего проекта. (См. рекомендации ниже).
  3. Найдите один качественный ресурс для новичков по этому языку и руководствуйтесь им. (Также см. ниже).
  4. Помимо этого ресурса, гуглите и задавайте вопросы.
  5. Выполните несколько оригинальных проектов на этом языке.

Вот эти вещи мы советуем не делать:

  1. Нельзя просто пассивно штудировать выбранный ресурс: делайте упражнения и домашние задания; практика – это незаменимая часть обучения программированию.
  2. Не переключайтесь без необходимости с одного языка на другой. Выберите один и придерживайтесь его, потому что главное в программировании — решать задачи, а не выучить языки. Научиться решать проблемы сложно, и этот навык можно отточить, только если постоянно тренироваться. Каждый раз, когда вы переключаетесь на другой язык, то теряете время, в которое могли бы тренироваться применять полученные знания, чтобы развить навыки решения задач.
  3. Не прекращайте учиться после того, как закончили какой-либо курс. Программирование — одна из тех областей, где всегда есть, чему учиться.

И наконец, помните, что обучение программированию — долгий и трудный процесс. Если вам тяжело, не расстраивайтесь! Это абсолютно нормально, и многие люди годами учатся и тренируются, пока не почувствуют себя достаточно компетентными, чтобы искать работу или сделать вклад в серьёзный проект. К счастью, просто начинать учиться совсем не так сложно.

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

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

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

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

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

Я хочу научиться…

  • …разрабатывать приложения для iPhone — Swift (ещё)
  • …разрабатывать приложения для Android — Java (ещё)
  • …создавать веб-сайты — JavaScript, CSS, HTML5 (ещё)
  • …писать десктопные приложения для Windows — C#
  • …создавать 2D/3D-игры — JavaScript, C# или C++ (ещё)
  • …программировать Arduino/микроконтроллеры/роботов — Си
  • …заниматься научными/математическими вычислениями или анализом данных — Julia, Python, R или Matlab
  • …заниматься автоматизацией и разработкой скриптов — многие языки (Python, Ruby, Bash, Powershell, AutoHotKey…)

Если в списке нет того, что вам нужно, поищите другие варианты на этих ресурсах:

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

Где можно найти качественные образовательные ресурсы?

Как перейти с начального уровня на средний?

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

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

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

Вот несколько советов, как не сдаваться и что делать дальше.

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

Вместо того, чтобы брать курсы и уроки, которые (как вы думаете) научат вас тому, чему вы хотите научиться, начните активно искать способы обучиться самостоятельно. Например, если вы понятия не имеете, как создать игру, загуглите «как написать игру на Х», где «Х» — это язык программирования, который вы собрались использовать. Если у вас всплыло сообщение об ошибке, которая вам незнакома, попробуйте загуглить её. Если вы хотите освоить машинное обучение — погуглите и найдите годную книгу, пособие или онлайн-курс.

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

Постоянно практикуйтесь

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

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

(См. также ЧаВо: Где можно найти тренировочные упражнения и идеи для проектов и ЧаВо: Я не могу придумать классную идею для проекта. Мне просто не хватает креативности? Как другие программисты ищут вдохновение?)

Научитесь декомпозировать задачу

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

Допустим, вы хотите создать игру «камень-ножницы-бумага». Её можно разделить её на несколько подзадач: как получить вводные данные от пользователя, как заставить компьютер сделать случайный выбор, как определить победителя и как повторить игру (если вы хотите играть несколько раз подряд).

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

Если вы совсем не знаете, как сделать что-то (например, как заставить компьютер выбрать случайное значение), погуглите. В данном примере поиск «Х выбрать случайное значение» (где Х — используемый язык программирования) покажет несколько различных способов, которые вы сможете использовать. Иногда задачу получается разбить на множество частей без поисковика, а иногда без него не обойтись.

Так, если вы учите Java и хотите научиться писать игры, но понятия не имеете, с чего начать или как разбить задачу на составляющие, загуглите «java игры уроки». Поиск даст несколько хороших источников, которые научат вас писать игры и (обычно автоматически) разбивать процесс написания игры на подзадачи поменьше.

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

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

Больше советов смотрите в ЧаВо: Как улучшить навык реализовывать задачи/задания в программах (алгоритмическое мышление).

Будьте систематичны

Когда вы пишите и отлаживаете код, ни в коем случае не привыкайте просто пробовать сделать что-то, рассчитывая, что это случайно сработает. Будьте максимально чётки и последовательны — метод «проб и ошибок» здесь не подойдёт.

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

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

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

Не делайте что попало, пока что-нибудь не сработает — будьте последовательны.

Не расстраивайтесь, если приходится исправлять баги или гуглить

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

Отладка (и трудности!) — неотъемлемая часть программирования. Если получится, постарайтесь не отчаиваться и не злиться. Отнеситесь к этому как к занимательному квесту или головоломке.

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

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

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

Не бойтесь попросить помощи

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

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

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

Больше информации читайте в руководстве о том, как задавать вопросы на reddit.

Пройдите более интенсивный вводный курс

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

Железное правило: если вводные курсы по программированию, которые вы проходили, не вызвали у вас особых трудностей или не содержали заданий, упражнений и мини-проектов, вам нужно поискать более требовательные курсы. Постоянная практика (и трудности!) — неотъемлемая часть учебного процесса.

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

Где можно найти тренировочные упражнения и идеи для проектов?

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

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

Здесь список простых клонов 49 игр, которые можно повторить.

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

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

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

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

  • утилиты командной строки (ls, wget, curl и т.д.)
  • текстовый редактор
  • IDE
  • программу для просмотра изображений
  • пакет офисных приложений (например, Microsoft Office или Libreoffice)
  • язык программирования (интерпретатор или компилятор)
  • веб-браузер
  • базу данных (реляционную или нереляционную)
  • веб-сервер
  • систему управления версиями

Если хотите сделать что-то потру

dev.by

Оставить комментарий