«Цель данной статьи — сделать программирование доступным каждому», — пишет Робин Сильбер, инженер программного обеспечения из Вашингтона.
Часто задаваемые вопросы
Мне как учителю часто задают следующие вопросы:
«Какой язык программирования мне учить, если я новичок?»
«Какой язык программирования пользуется наибольшим спросом в плане работы?»
«Какой самый популярный язык программирования?»
Топовые языки программирования
Если вы ищете официальнsq рейтинг языков программирования, вы можете найти его здесь: IEEE Spectrum top programming languages.
Этот список отлично подходит для проверки, пользуются ли сегодня каким-то конкретным языком программирования. Однако, если вы новичок, я не рекомендую выбирать язык на основе только этого списка.
Как выбирать язык программирования
Компьютерные науки — это полностью кумулятивная область изучения. Что означает, каждая последующая тема строится на предыдущих темах.
Если вы раньше пытались изучать программирование (или любую сферу STEM (Science, Technology, Engineering, and Mathematics — наука, технологии, инженерия, математика)) в школе, но безуспешно, – дело было не в вас. Хороший преподаватель любого кумулятивного предмета внимательно изучает учебную программу. При условии, что каждый ученик достаточно подготовлен, это прояснит, наличия каких знаний можно ожидать. Хороший профессор не рассчитывает на знания вне этой сферы. Всему, выходящему за пределы исходных знаний, нужно учить. Каждая тема учебного плана подается последовательно, в соответствии с другими темами.
Когда предмет кумулятивен, самое пристальное внимание должно уделяться построению учебного плана. Потому не выбирайте язык по его месту в рейтингах. Выбирайте тот язык, для которого у вас есть полный учебный план, не предполагающий наличия исходных знаний.
Несколько советов
Прежде чем вы начнете учиться писать код, важно задуматься над тем, что сказано выше: все в компьютерных науках кумулятивно.
Мне нравится это повторять, потому что самая большая ошибка, которую вы как восходящий программист можете сделать, это сдаться только из-за того что сочтете себя недостаточно умным для обучения программированию. Изучение кода никак не связано с вашим интеллектом. Да, это сложно, но не потому, что вам чего-то не хватает, а потому что нужно выучить очень много тем.
Прежде всего, примите как данность следующий сценарий: вы знакомитесь с новой темой и она совершенно бессмысленна для вас.
Этот сценарий будет повторяться снова и снова. То, как вы каждый раз будете справляться с этой ситуацией, будет обуславливать ваш успех.
Если вы не понимаете тему, которую изучаете, оставайтесь на месте. Не переходите к следующей. Повторюсь, темы кумулятивны. Перескакивания здесь – как попытка приладить крышу к дому без стен и фундамента.
Я сама была в такой ситуации неоднократно. Мне часто приходилось пересматривать одну и ту же видеолекцию чтобы уловить предмет. Не разочаровывайтесь, оказавшись на моем месте.
Если руководство (или книга), которым вы пользуетесь, недостаточно поясняет тему, вам придется найти другие ресурсы, подходящие для вас. Нельзя сдаваться только потому что вам не подходит раскрытие темы в видео. На YouTube можно бесплатно найти практически все необходимое для учебы, что бы вы ни искали. Определите, что нужно найти (например, [тема] в [ваш язык программирования] + другие вспомогательные слова).
Если вы ищете обучающие материалы на YouTube, обратите внимание на статистику. Гляньте на рейтинг и/или число просмотров. Если вы все еще не уверены, стоит ли это видео вашего времени, почитайте отдельные комментарии, чтобы определить, что думают другие.
Многие темы не будут понятны с первого раза. Поэтому воздержитесь от плохих мыслей о себе.
Цель — быть уверенным в своем понимании того, что изучаете. По мере продвижения нужно заниматься самоанализом. Проходя каждую тему, спрашивайте себя:
- «Понятна ли мне эта тема?»
- «Была здесь какая-то новая терминология? Если да, было ли формальное определение для каждого термина?»
- «Были здесь новые навыки? Понял ли я, как их использовать в приложении? Смогу ли я показать свое понимание этого навыка, решая реальные задачи?»
- «Буду ли я завтра помнить то, что только что выучил? А послезавтра? Если нет, как я собираюсь удержать это в памяти?»
Последний совет: никогда не стоит недооценивать силу памяти. Запоминание — совершенно «недоиспользуемый» подход к обучению. Да, основная цель — понимание темы. Но чтобы понять потребуется время. Если вам трудно уловить суть темы, разбейте ее на важные термины и запомните их. Если вы не понимаете, как что-то работает, вашей первой целью должно быть запоминание. Если вам нужен совет по части запоминания, подумайте над использованием техники учебных карточек.
1 — Основы компьютерных наук
Первый шаг это изучение основ компьютерных наук, которые я осветила в своей статье «Вступление к терминологии информатики». Эта статья написана с мыслями о моей аудитории: о каждом. Я специально сделала ее понятной даже для тех, кто никак не связан с компьютерами.
Понятия, содержащиеся в этой статье, являются преимущественно определениями. Вы можете просто прочитать статью, и это нормально, что вам достаточно. Я рекомендую запомнить эти термины. Подходите к каждому термину, как если бы вы учились в школе, и вам нужно было суметь вспомнить определение каждого термина для экзамена. Если не хотите, это не обязательно. Однако, чем больше этих понятий вы можете зафиксировать в памяти, тем легче будет понимать последующие темы.
2 — Логика высказываний (опционально)
Нет, чтобы быть программистом вам необязательно хорошо разбираться в математике. Математические навыки могут быть полезны, но они не являются обязательными.
Если вы сомневаетесь насчет своих математических способностей, я рекомендую изучение логики высказываний. Принципы, освещаемые в логике высказываний, являются строительными блоками программирования.
Вы можете изучать логику высказываний с помощью этого руководства на YouTube: Basic Concepts in Propositional Logic.
3 — Программирование на Java
После того как вы изучите основы информатики, вы будете готовы к изучению языка программирования.
Я долго обдумывала и приложила много усилий для создания пути обучения, подходящего каждому, без оглядки на его прошлый опыт. Для этого пути я выбрала Java, потому что это язык, в котором я разбираюсь лучше всего. Я недостаточно квалифицирована чтобы создать учебный план для языка, с которым я не знакома.
Java это один из самых пользующихся спросом языков программирования. Он классифицируется как объектно-ориентированный язык программирования (позже вы узнаете, что это означает) и используется для создания десктопных, мобильных и веб-приложений.
Если вы предпочитаете учиться по книге, я советую Head First Java.
Если вы ищете видеоуроки, я рекомендую видео № 1–19, 31–33, 88 и 93 курса по Java на YouTube, созданного Дереком Банасом: Java Video Tutorial.
Первый видеоурок из этого курса направит вас к скачиванию компьютерной программы под названием Eclipse. Это интегрированная среда разработки (Integrated Development Environment, IDE). Вы можете думать об «IDE» как о странном названии для текстового редактора, созданного для программистов. Это просто компьютерное приложение, предоставляющее текстовый редактор для программирования, а также другие инструменты для запуска ваших программ. Вот ссылка на видео Дерека Банаса о том, как скачать Eclipse: Install Eclipse for Java.
4 — Алгоритмы и структуры данных
Алгоритм это набор инструкций (или шагов) для осуществления определенной задачи, где каждый шаг должен быть четко определенным, исполняемым и конечным (это значит, что его исполнение не продолжается вечно).
Структура данных это способ организации данных в памяти.
Алгоритмы и структуры данных это две самых сложных темы в программировании. Вам не обязательно учить алгоритмы для базовых навыков в программировании. Однако, если вы хотите стать инженером программного обеспечения в уважаемой технической компании, на собеседованиях от вас будут ожидать демонстрации понимания алгоритмов и структур данных.
Что касается меня, следующий туториал помог мне в развитии моих навыков, касающихся алгоритмов, от уровня новичка до эксперта: Udemy tutorial on Algorithms and Data Structures. Я приобрела много руководств по алгоритмам. Этот был самым понятным из всех. Хотите ли вы изучить алгоритмы и структуры данных или подготовиться к техническому интервью, это руководство — залог вашего успеха.
Примечание: курс дорогой, но очень важный. Я получила возможность пообщаться с инструктором, и она щедро предложила купон на скидку с $50 до $10. Скидочный купон применяется автоматически, когда вы кликаете по ссылке.
Я рекомендую использовать это руководство совместно с курсом от Udemy: VisuAlgo. VisuAlgo это бесплатный ресурс, наглядно показывающий, как значения, вводимые в алгоритм, изменяются во время его выполнения.
5 — Android-разработка
Android-разработка, по моему мнению, является одним из самых крутых применений программирования на Java. Android-приложения преимущественно программируются на Java, так что, изучив этот язык, вы готовы к изучению Android.
Вот самый лучший видеокурс о том, как приступить к изучению Android: Udacity-Android Development for Beginners.
После прохождения этого курса, у вас есть пара вариантов, куда двигаться дальше. Это может быть расширение указанного видеокурса, с теми же учителями из среды работников Google. Дополнительные лекции станут видимыми после прохождения курса (если не можете их найти, поищите на Udacity). Это хороший вариант, особенно в силу своей бесплатности.
Однако, если вы имеете желание потратить деньги на выдающуюся книгу, я крайне рекомендую следующую: Head First Android Development: A Brain-Friendly Guide. Эта книга дает детальные наглядные пояснения, что действительно помогает вам изучить концепции, на которых зиждется Android. Каждая часть проводит вас сквозь пример приложения. Все тщательно поясняется с использованием понятных каждому слов и диаграмм.
Полезные ресурсы
Stack Overflow это сайт, где программистам могут бесплатно помочь с их кодом. Если вы застряли и хотите задать вопрос, сначала поищите ответ на сайте самостоятельно. Если не найдете, создайте учетную запись и поместите вопрос самостоятельно!
Есть тысячи образовательных сайтов, где вы можете найти уроки по программированию. Среди моих любимых — Codecademy, Udemy, Udacity, Team Treehouse и Khan Academy.
***
Подписывайтесь на наш канал в Telegram!
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]
Здравствуйте,хотел бы поинтересоваться. Ссылки на сайты по поводу ознакомления и тд,на английском языке. А есть такая же информация на русском? Подскажите пожалуйста
Добрый день! Поскольку у нас много переводных статей, ресурсы в них чаще всего на английском. Так навскидку даже сложно предложить альтернативный список на русском. Но ссылки на ресурсы могут быть в тематических статьях. Попробуйте воспользоваться поиском на нашем сайте, введя название выбранного языка программирования. Также можно найти что-то интересное по запросам «с нуля», «научиться программировать самостоятельно», «для начинающих».
С пожеланиями удачи в учебе, редакция Techrocks.