Содержание

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

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

Допустим, человек занимается научными исследованиями, и сотрудники его лаборатории в проектах используют Fortran — это одна ситуация. Другой вариант — студент, изучающий машинное обучение, который хочет писать проекты на Python. Ещё вариант: разработчик решил изучить С++, чтобы устроиться на работу в коммерческую компанию. Эти и другие ситуации требуют разного подхода и объёма прилагаемых усилий для изучения языка.

Я попытаюсь дать общие рекомендации, но в каждом случае в этот алгоритм следует вносить коррективы.

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

2.

Практика. В каждом языке есть свой «Hello, world!». Пытайтесь сразу же применять полученные знания на практике, закрепляйте освоенные конструкции языка.

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

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

5. Старайтесь, чтобы ваш код увидело как можно больше коллег, чтобы как можно раньше получить фидбэк на то, как вы пишете или оформляете код. Оформление кода или code style в крупных проектах — отдельная тема, и её тоже следует изучить. Также как и процесс code review.

6. Если вам требуется глубокое понимание языка (например если вы разработчик в крупной коммерческой компании), не ограничивайте себя изучением только его одного. Посмотрите вокруг на остальное: скриптовые языки, ассемблер. Задайте себе вопрос, чем они отличаются, почему устроены иначе, какую цель преследовали авторы этих языков? Изучайте различные фреймворки, библиотеки, погрузитесь немного в теорию компиляции, разберитесь с тем, как устроен процесс «сборки» проектов в разных средах.

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

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

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

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

На этом у меня всё. Ищите свой путь, не бойтесь наступать на «грабли». Чем раньше вы их «соберёте» — тем меньше «мин» будет в проектах, которые вы после себя оставите.

Лучшие способы изучить программирование без зубрёжки | GeekBrains

Обучение через игры, видео и интересную литературу

https://d2xzmw6cctk25h.cloudfront.net/post/1612/cover_image/original-97c8aa2c2dadf25ca9661a6ad495e826

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

Обучение через практику

IT-мир давно задался целью сделать программирование массовым явлением. Началось это во времена перехода от огромных вычислительных машин к персональным компьютерам. Тогда, в 1960-е годы появился язык Logo, позднее – Basic и Pascal, а сегодня балом правит яркий Scratch. У каждого из них свой подход, но суть одна – для создания рабочей программы вам хватит нескольких минут на ознакомление с синтаксисом и интерфейсом.  Взглянем на пример Scratch.

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

✔ Шаг 1. Регистрируемся на сайте. Регистрация не требует немедленного подтверждения, и уже через пару минут мы оказываемся за рабочим холстом.


✔ Шаг 2.

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

✔ Шаг 3. Создаём простую программу, где наш кот-лиса пинает футбольный мяч. Таймер показывает +4 минуты.

✔ Шаг 4. Оформляем игровое поле, добавляем немного функций, и вот наш кот-лис забивает гол в ворота.

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

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

Обучение через игры

Вы можете увидеть эффективность этого метода, наблюдая за маленькими детьми.

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

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

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

Codecombat — пожалуй, самая известная браузерная игра, связанная с программированием. В цене языки Python и JavaScript.

Empire of Code — космическая стратегия, где программирование – не необходимый навык, но очень полезный. И именно поэтому у вас будет стимул изучить JavaScript или Python.

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

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

Codewars — один из ведущих сайтов в области изучения и закрепления навыков программирования через задания и конкурсы. Поддерживаются языки Java, JavaScript, Ruby, Python, C#, Clojure, Haskell, CoffeeScript.

Обучение через видеоролики

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


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

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

Обучение через «правильную» литературу

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

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



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


 

5 языков программирования, которые надо учить первыми | GeekBrains

Основа востребованности современного программиста.

https://d2xzmw6cctk25h.cloudfront.net/post/1666/og_cover_image/af4a28a7853d17625124ffebf3b28891

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

Судите сами: для веб-разработки неплохо бы владеть PHP, JavaScript, Python, Ruby, а еще HTML и CSS; в мобильной сфере — Swift, Objective-C, Java, C#. Перечень языков для создания десктопных приложений можно даже не начинать — по сути, все будут полезны. Именно поэтому мы взяли на себя ответственность назвать 5 языков программирования, которые надо изучить хотя бы шапочно, чтобы сегодня называться программистом.

Python

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

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


def fib_recursion(i):
	if i > 1:
   	 return fib_recursion(i-1) + fib_recursion(i-2)
	return i
            	
for i in range(10):
	print i, fib_recursion(i)

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

Стоит упомянуть, что на данный момент актуальны две версии: Python 2 и Python 3. Вам за основу лучше брать последнюю, так как поддержка Python 2, а значит — и активная разработка на ней, прекратится совсем скоро.

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

JavaScript

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


function fib_recursion(n) {
   return n < 1 ? 0
    	: n <= 2 ? 1
    	: fib_recursion(n - 1) + fib_recursion(n - 2);
}
 
console. log(fib_recursion(10));

Объем кода практически не изменился, зато снизилась читаемость. После изучения Python вы без проблем разберетесь, как работает структура return, и оцените удобство именно такого способа записи.

Кроме того, экосистема JavaScript богаче, чем Python. Она предлагает обилие сред разработки, редакторов кода, фреймворков, библиотек. Это еще один шаг к пониманию, как работает «взрослое» программирование.

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

C#

Если вы не определились с языком, значит еще не решили, что вас привлекает: веб, мобильные или десктопные приложения. Тогда ваше решение — C#, универсальный инструмент для всех направлений разработки. Чтобы создавать десктопные приложения, понадобится Visual Studio (версия Community — бесплатная). Для мира мобильных устройств установите Xamarian, а для веба пригодится ASP. NET.

Взглянем на наш код на языке C#:


static void Main(string[] args)
{
	int number = 10;
	fib_recursion(number);
}
 
static void fib_recursion(int n, int a = 0, int b = 1)
{
	if (n == 0) return;
	Console.WriteLine(a);
	fib_recursion(--n, b, b+a);
}

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

Подробней о языке C# вы можете узнать в нашей ознакомительной статье.

Swift

Подходим к самому интересному — языкам, безупречное владение которыми поможет вам попасть в сферу мобильной разработки. Swift не вполне универсален: он еще не полностью вытеснил Objective-C из приложений для Apple, но перспективы у него блестящие.

Четвертая версия Swift вышла в 2017 году: она содержит множество улучшений для работы со строками, коллекциями; возросла надежность и многое другое. Это уже не «сырой» язык, а классический представитель верхушки рейтинга TIOBE с планомерным развитием. С помощью Swift вы можете создавать приложения для всех продуктов Apple: macOS, watchOS, iOS и любой новой системы, если она появится.

Посмотрим на код последовательности Фибоначчи:


func fib_recursion(num1: Int, num2: Int, steps: Int) {
 
	if steps > 0 {
    	let newNum = num1 + num2
    	fib_recursion(num2, num2: newNum, steps: steps-1)
	}
	else {
    	print("result = \(num2)")
	}
}
fib_recursion(0, num2: 1, steps: 10)

Java

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

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

А вот так выглядит Java-код нашей последовательности в простейшем императивном случае:


public class MainClass {
 
  public static long fib_recursion(long number) {
	if ((number == 0) || (number == 1))
  	return number;
	else
  	return fib_recursion(number - 1) + fib_recursion(number - 2);
  }
 
  public static void main(String[] args) {
	for (int counter = 0; counter <= 10; counter++)
  	System.out.printf("Fibonacci of %d is: %d\n", counter, fib_recursion(counter));
  }
}

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

Для тех, кто хочет начать быстрое освоение Java, наш педагог Сергей Ирюпин подготовил цикл вводных статей, которые мы постепенно публикуем в блоге:

Заключение

К списку можно было бы добавить ряд полезных языков вроде PHP, C++ или Ruby. Или несколько функциональных для общего развития: Lisp, Haskell, Clojure. Впрочем, до этого вы обязательно дойдете. Но сперва выбирайте специализацию, записывайтесь на курсы GeekBrains и осваивайте пять описанных must know языков.

UPD. Если вы хотите знать, как изменилась ситуация с языками программирования во второй половине 2019 года, мы подготовили об этом отдельный материал.

Я хочу научиться программировать, но не знаю, с чего начать

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

Часто задаваемые вопросы

Мне как учителю часто задают следующие вопросы:

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

«Какой язык программирования пользуется наибольшим спросом в плане работы?»

«Какой самый популярный язык программирования?»

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

Если вы ищете официальн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!


Лучший способ изучить программирование самостоятельно

Автор статьи: admin

Метки: Новичку / Разное

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

1. Купите хорошую книгу:

Для начало вам надо купить хорошую книгу, под словами хорошая книга, я имею виду книгу, которую можно использовать как справочник, например, книга авторов Дмитрия Котирова и Игоря Симдянова «PHP 7 в подлиннике» или «Язык программирования C++. Базовый курс».

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

2. Внимательно читайте:

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

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

3. Практика:

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

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

Сколько времени уйдёт:

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

Вывод:

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

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

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

Подписываетесь на соц-сети:

Оценка:

Количество оценивших: 3
Средняя оценка: 3,33

Загрузка…

Также рекомендую:

Как Освоить Программирование Для Начинающих

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

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

Готовы освоить программирование для начинающих? Давайте начнём!

Что Такое Программирование?

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

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

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

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

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

Самые Полюбившиеся Статьи

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

Почему я Должен Учиться Программировать?

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

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

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

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

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

Пошаговое Руководство: Программирование Для Начинающих

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

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

Шаг 1: Осознайте, Почему Вы Хотите Освоить Программирование

Самой первой вещью, которую вам нужно сделать – ещё даже перед мыслью о начале обучения и просмотре видео на YouTube по этой теме – будет поиск ответа на вопрос “Почему вы хотите этим заняться?”. Не торопитесь и тщательно обдумайте то, что вы хотите получить от него, почему навыки программирования вам нужны и сколько денег и времени вы готовы в это вложить.

Рассмотрите эти аспекты:

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

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

Шаг 2: Выберите Правильные Языки Программирования

Различные типы программирования требуют различных типов навыков. Например, если вы хотите освоить программирование для начинающих веб-разработчиков, то такие языки как HTML, CSS, Java и JavaScript станут основой. Похожим образом разработка мобильных приложений потребует от вас знаний Java (для Android) или Swift (для iOS). Выбор правильного языка очень важен и по этой причине мы подготовили список самых популярных из них:

Java

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

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

Python

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

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

Ruby

Ruby — это язык программирования набирающий популярность для фуллстэк разработки лишь в последнее время. Он позволяет проводить простую интеграцию как бэкенд, так и фронтенд компонентов нового сайта с помощью фреймворка Ruby on Rails.

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

Solidity

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

HTML

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

HTML невероятно прост, а специальные курсы по программированию, вроде учебника по HTML5 или курс про основы HTML помогут сделать обучение более эффективным.

CSS

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

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

JavaScript

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

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

Шаг 3: Выберите Правильные Источники Для Обучения

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

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

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

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

Шаг 4: Скачайте Редактор Кода

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

Большая часть языков программирования имеют свои собственные редакторы кода, которые вы сможете скачать. Обычно они идут вместе с интерактивной средой разработки (IDE), способной помочь вам писать чистый и правильный код. Однако простые языки, вроде HTML и CSS, могут практиковаться напрямую в обычном текстовом редакторе, если для вас так легче.

Шаг 5: Практикуйтесь в Написании Своих Программ

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

Тип программы или проекта, над которым вы будете работать, будет зависеть от выбранного языка. Например, если вы изучаете программирование для начинающих веб-разработчиков, то с помощью HTML/CSS вы можете создать свой собственный сайт. Знания Java позволят вам начать создавать ваше собственное мобильное приложение для Android. Запомните, чем больше практики, тем выше ваши шансы добиться в этом успеха!

Шаг 6: Присоединитесь к Онлайн Сообществу

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

Шаг 7: Изучайте Чужой Код

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

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

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

Шаг 8: Продолжайте Учиться

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

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

Самые Популярные Статьи

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

Заключение

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

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

  1. Определите почему вы хотите начать и что хотите добиться.
  2. Выберите правильный язык для достижения целей.
  3. Выберите онлайн-курс и начните обучение.
  4. Скачайте правильный редактор кода.
  5. Практикуйтесь, практикуйтесь и ещё раз практикуйтесь!
  6. Присоединитесь к сообществу разработчиков.
  7. Изучайте код других людей.
  8. Никогда не прекращайте обучение!

Итак, вот и всё – 8 простых шагов, чтобы вы смогли стать программистом. Прекратите откладывать дела на потом, начните сейчас и добейтесь результата!

Оставьте ваше честное мнение

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

Сколько нужно времени на изучение Java? Исследование JavaRush

Один из самых популярных вопросов среди тех, кто начинает учить Java — “За какое время можно научиться программировать?” Дать однозначный ответ на этот вопрос сложно. Сроки обучения зависят от многих факторов: предыдущего опыта работы и образования, интенсивности занятий, целей обучения, прочего. Но мы решили приблизиться к тому, чтобы определить оптимальный отрезок времени на обучение. Для этого в марте мы провели опрос среди наших студентов с минимум 30-м уровнем на JavaRush и спросили, как они изучали программирование на Java и сколько времени для этого понадобилось.

1. Портрет студента: стартовый уровень знаний, сфера деятельности

В Java-программирование можно прийти практически из любой сферы: это подтверждают результаты опроса. Для начала мы решили узнать, чем наши выпускники занимались до изучения Java. Практически 40% пользователей, которые начали обучение на JavaRush, изучали программирование в ВУЗе. Вдвое меньше — знали по крайней мере один язык программирования (не Java), еще меньше — были знакомы с основами Java. Конечно, это хорошая основа для старта. Но не обязательная. Примерно треть студентов осваивали Java с чистого листа. Среди студентов с техническим бэкграундом больше всего сисадминов, программистов 1С, веб-разработчиков, инженеров. Среди “свитчеров” разбег большой — от преподавателей до специалистов по продажам, маркетингу, экономистов, спортсменов. Давайте посмотрим теперь, сколько времени в среднем может понадобиться на обучение и поиск работы Java-джуном.

2. Время на обучение и поиск работы

Минимум — 3 месяца, максимум — несколько лет уходит на изучение программирования на Java. Интересно, что даже те, кто в общей сложности потратил больше 2 лет (2,5, 3 или 4 года) отметили, что справились бы вдвое быстрее, если бы не “растягивали” обучение. В среднем на поиск работы уходит от месяца до трех. Минимум — неделя. Максимум — год.

3. Планирование обучения

В обучении всегда работает простая зависимость: чем выше интенсивность занятий и меньше количество перерывов и “пропусков”, тем быстрее можно освоить предмет. В особенности это касается программирования, где практика играет большую роль, чем теоретические занятия. Мы спросили у выпускников JavaRush, сколько времени они выделяли на обучение, и узнали, что в среднем они занимались по 1-3 часа в день, часто совмещая обучение с основной работой. При этом почти треть выпускников обучалась без перерывов, а остальные делали одну или несколько пауз на значительное время. Само собой, чем больше времени уделять учебе и чем меньше «привалов» устраивать, тем больше шансов освоить Java-программирование и найти работу в течение 6-12 месяцев. А если очень постараться, то и в течение 3-6 месяцев. Как ответил один из участников опроса: «С самого начала у меня был какой-то план, и я его не придерживался». Нужно планировать свое обучение или нет? Большинство считает, что да. План обычно включает в себя список тем и инструментов, которые необходимо освоить, примерные сроки обучения и список ресурсов (онлайн-курсов, книг, другое), которые нужны для этих целей. 73% ответили, что у них был предварительный план. Из тех, кто планировал обучение, две трети выпускников обучались на нескольких ресурсах, почти треть — только на JavaRush.

4. Источники обучения

Что учить, как учить, а еще — где учить? В идеале, нужно комбинировать несколько источников. Ниже — список обучающих источников в порядке упоминаемости нашими выпускниками. Учить программирование только по книгам — бессмысленно. Но совсем без них — тоже не получится 🙂 Они хорошо дополнят практику программирования. Среди лучших книг для новичков студенты и выпускники JavaRush назвали:
  • Head First Java
  • Effective Java
  • Философия Java
  • Структуры данных и алгоритмы в Java
  • Чистый код
  • Java 8. Руководство для начинающих
  • Паттерны проектирования
  • Java. Библиотека профессионала

Мини-итог по планированию обучения

Чтобы обучение было эффективным, выпускники и опытные программисты рекомендуют:
  • проходить JavaRush
  • смотреть видеокурсы (Головач и другие)
  • читать туториалы (Tutorialspoint, Baeldung, Oracle)
  • проходить сертификацию Oracle (Associate, Professional — OCA, OCP)
  • практиковаться на Github
  • читать Stackoverflow, Хабр и другие ресурсы
  • проходить стажировку JavaRush, местных IT-компаний
Тем, кто только начинает обучение, будет кстати этот план: Как начать программировать

5. Рекомендации тем, кто ищет работу в сфере Java-программирования

Пожалуй, самая популярная фраза в советах от тех, кто уже закончил обучение и нашел работу — «не сдаваться». Легко ли учиться? Далеко не всегда. Но это точно стоит потраченных усилий 🙂

Топ рекомендаций от опытных программистов

Есть несколько навыков, которые вам точно пригодятся, когда вы устроитесь на работу. Поэтому если вы приближаетесь к этому моменту, рекомендуют:
  • внимательно смотреть на предупреждения и советы InteliJ IDEA: гуглить ошибки, проблемы и задачи
  • уделить внимание базам данных, алгоритмам и структурам данных
  • изучить паттерны проектирования
  • попробовать с нуля написать сложную программу: например, почтовый клиент, чат-бот или игру
Немного позднее — освоить основные инструменты (Git, Maven), а также основы Unit Testing, Spring, Spring Boot, Hibernate.

6. Мотивационные советы напоследок

«Главное держать темп, не делать больших перерывов и никогда не стоять на месте. Каждый день нужно совершать хотя бы маленький шажок к своей цели». «Если кажется, что решение слишком простое, скорее всего, это правильное решение. Не нужно усложнять». «Ведите дневник, заведите проект свой, не делайте больших перерывов, учите инглиш, приготовьтесь к чувству, что вы самый тупой человек на земле. Для меня это было больно, долго, унизительно. И думаю, потому немногие доходят до конца и потом получают человеческие деньги». «Если это девушка: не выходить замуж и не рожать детей: очень мешает учебе и работе :))» «Не бояться показывать код и адекватно воспринимать критику.» «Даже если вы чувствуете, что программирование — это не ваше, все равно постарайтесь дойти своими силами до 30 уровня на JavaRush: это научит вас думать».

7. Итоги. Как учиться Java-программированию, чтобы достичь результата

Упорство и мотивация — то, без чего точно не обойтись. Если идти по поставленному плану, соблюдать баланс теории и практики, заниматься ежедневно минимум 1-3 часа, реально изучить Java-программирование до уровня, который позволит найти работу, за 6-12 месяцев. Также важно оставаться частью комьюнити и следить за требованиями компаний, в которых вам бы хотелось работать. Редакция JavaRush говорит огромное «спасибо» всем, кто поучаствовал в опросе. Если у вас есть другие темы, о которых вам было бы интересно почитать или узнать мнение большинства — пишите в комментариях 🙂 Сделаем.

Как научиться программированию? — GeeksforGeeks

Вы хотите научиться программированию в 2020 году ?? Хотите создать веб-сайт, например Facebook, Twitter, Instagram или что-то вроде WhatsApp?
Вы действительно в восторге от этих веб-сайтов или приложений и решили научиться программировать. Вы хотите создать следующий Facebook, Instagram или любое другое любимое приложение. Итак, какой подход вы будете использовать для создания таких веб-сайтов?

Наиболее распространенный подход, которому следует большинство людей, — это… Вы покупаете несколько книг по программированию, рекомендованных в блогах или на веб-сайтах, или переходите на курсы или учебные пособия на YouTube (или на любые другие ресурсы), чтобы начать обучение программированию. .Вам также нравится и нравится, когда вы изначально смотрите этот учебник, и вы чувствуете, что изучаете много интересных концепций и новых вещей в программировании. Что ж, это может быть действительно хорошо в течение короткого периода времени, но то, что происходит с большинством начинающих программистов, — это … они перегружены таким количеством концепций и застревают в одном учебнике за другим. Для них становится все более проблематично и неприятно, когда их просят начать реальный проект самостоятельно без какой-либо помощи. У них нет логики, они не понимают, с чего начать, как решить конкретную проблему или как самостоятельно построить какой-то конкретный модуль.

Да, это правильно … Итак, как научиться программировать, как лучше всего изучать программирование …?
Ну, большинство новичков сталкиваются с этой проблемой при кодировании. Учебники фантастические, и они учит множеству концепций или различных подходов в кодировании для создания чего-либо, но когда вы начинаете работать над каким-то реальным проектом, вы чувствуете неудовлетворенность, потому что вы не можете использовать все эти концепции в своем проекте. Итак, лучший совет для изучения программирования в 2020 году — следовать подходу к обучению на основе проектов. Создавайте как можно больше проектов, чтобы укрепить свои навыки решения проблем в программировании. Помните, что программирование — это не изучение языка (Python, C ++, Java и т. Д.), Это способность решать проблемы . Также на работе работодателю нужен специалист по решению проблем, поэтому во время собеседований ваше умение решать проблемы превыше всего.

Итак, как развить навыки решения проблем во время обучения программированию? скажите, что мне нужно сделать, чтобы научиться программировать…


Давайте обсудим шаги для изучения программирования и несколько советов по развитию навыков решения проблем…

1.Выберите язык и поймите основные понятия

Многие новички пропускают основы и сразу переходят к блестящим инструментам и технологиям. Это не сработает ни при собеседовании, ни при создании какого-либо проекта. Вы станете еще более сбитым с толку и отвлечетесь, если вам не ясны основы. Итак, сначала выберите язык программирования, который вам наиболее удобен (Python или C ++ хорош, но это зависит от вашей конечной цели), и разберитесь в синтаксисе и основных концепциях (переменные, условные выражения, операторы, циклы и т. Д.).
Создавайте программы и создавайте основы, используя свой любимый язык. Если вы учитесь в колледже, колледжи хороши в преподавании основных понятий, иначе вы можете воспользоваться помощью Интернета. GeeksforGeeks, Codecademy, HackerRank и т. Д. Хороши для построения базовых основ. Ниже приведены несколько полезных советов, которым следует следовать, когда вы начинаете изучать основы. Это также улучшит ваши навыки решения проблем.

  • Большинство курсов начинается с обучения языку программирования, это хорошо, но вы понимаете, как использовать язык программирования для решения проблем. Например, как решить задачу сложения двух чисел.
  • Придерживайтесь одного языка. Не пытайтесь сначала выучить все. Большинство новичков продолжают переходить с одного языка на другой, что является пустой тратой времени. Изначально лучше придерживаться одного языка. Если вы хотите стать Java-разработчиком, изучите java. Изучение первого языка является трудным для большинства начинающих программистов, но ваш мозг в конечном итоге научится синтаксису, если вы начнете практиковаться каждый день.
  • Старайтесь составлять программы каждый божий день, не оставляя промежутков, даже если это всего одна или две. Попробуйте сначала сделать небольшие программы, а затем переходите к более сложным, но сохраняйте последовательность.
  • Придумайте хорошую стратегию обучения. Например: вместо того, чтобы сначала изучить все теории, а затем перейти к тому, чтобы программы следовали соотношению 2: 1 между концептуальным обучением и активным обучением. Это означает, что после каждых двух часов концептуального обучения посвящайте час практическому изучению или активному обучению.
  • Создайте небольшое приложение или проект, основанный на изученных вами основах. Например, сделать калькулятор или что-то интересное для вас. Узнайте, как использовать Google, если вы где-то застряли.

2. Изучите структуру данных и алгоритмы

Структура данных и алгоритмы

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

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

3. Сборка проектов

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

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

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

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

4. Исследуйте

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

Ознакомьтесь с различными подходами и методами других разработчиков. Возьмите за привычку читать код на GitHub или StackOverflow. Вы найдете несколько способов решить одну проблему. Адаптируйте лучшие практики для решения проблемы в программировании. Присоединяйтесь к онлайн-сообществу, участвуйте в проектах с открытым исходным кодом или участвуйте в каком-либо конкурсе.Если вы студент, участвуйте в ACM — ICPC или GSoC. Чем больше вы исследуете и практикуете, тем лучшим программистом вы станете.

Как правильно научиться программировать | Сара А.

Метвалли

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

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

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

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

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

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

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

Чтобы развить интуицию в программировании, вам необходимо попрактиковаться:

  1. Научитесь внимательно читать задачи. Прочтите задачу, чтобы узнать подробности того, что именно вам нужно делать, каковы ваши входные данные и каковы ваши ожидаемые результаты.
  2. Решите проблему, не думая сначала о коде. Я ставлю этот шаг первым, потому что, если вы уже знаете, как кодировать, вы, скорее всего, сразу перейдете к нему. Останавливаться! Сначала решите проблему, используя общеупотребительные слова.
  3. Проверьте свое решение на различных примерах ввода.Как только вы придумаете решение, попробуйте разные сценарии и посмотрите, подходит ли ваше решение для всех.
  4. Практикуйтесь в решении проблем каждый день. Ежедневное решение новых задач поможет вам развить интуицию в программировании и отработать навыки решения проблем. Ежедневная проблема кодирования — хороший ресурс для этого.

Этот шаг очень важен, но многие пропускают его совсем. Изучение правильного мыслительного процесса и того, как решать проблемы программирования, поможет сократить время, которое вы тратите на решение проблем в будущем.Это также поможет вам быстрее и эффективнее изучить несколько языков программирования. Отличная книга о процессе решения проблем — Think Like a Programmer.

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

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

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

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

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

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

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

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

Когда вы работаете над реальными приложениями, пытаясь решить множество проблем, вам всегда нужно помнить о сложности ваших ответов. Например, если я дал вам книгу и попросил открыть страницу номер 5, вы можете просто просмотреть страницы 1–5.Поскольку 5 — это довольно близко к началу, переход через p [возрасты до этого] не занял много времени. Но допустим, я хотел, чтобы вы открыли страницу 489. Это, вероятно, займет у вас немного больше времени.

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

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

Подождите! Еще не время изучать конкретный язык программирования, но вы почти у цели.

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

Но,

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

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

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

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

Наконец, вы готовы начать кодирование.

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

На этом этапе вы можете спросить себя, с какого языка программирования начать?

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

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

  • Рядом с моим домом есть красивый сад.
  • Я очень люблю сад возле моего дома.
  • Я наслаждаюсь красотой сада возле моего дома.
  • Рядом с моим домом есть сад. Это красиво.

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

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

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

  1. Развивайте хорошую интуицию в программировании (работайте над навыками решения проблем).
  2. Изучение алгоритмов и структур данных.
  3. Изучите хотя бы основы теории сложности.
  4. Сначала реализуйте свои решения, используя псевдокод.
  5. Изучите синтаксис любого языка программирования.

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

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

Почему все так спешат?

Зайдите в любой книжный магазин, и вы увидите, как Teach Yourself Java за 24 часа вместе с бесконечными вариациями, предлагающими научить C, SQL, Ruby, алгоритмы и т. Д. За несколько дней или часов. Расширенный поиск Amazon по запросу [название: научить, себя, часов, с: 2000 и нашел 512 таких книг. Из первой десятки девять книг по программированию (вторая — по бухгалтерскому учету). Аналогичные результаты дает замена «учи себя» на «учись» или «часов» на «дни».

Вывод таков: либо люди очень спешат учиться о программировании, или о том, что программирование как-то невероятно проще узнать больше ничего. Felleisen et al. отдают дань этой тенденции в своей книге How to Design Programs , когда они говорят «Плохое программирование — это просто. Идиоты могут выучить это за 21 день , даже если это манекенов, ». Комикс« Abtruse Goose »тоже получил свое.

Давайте проанализируем, что такое заголовок Научитесь C ++ за 24 часа может означать:

  • Научитесь: За 24 часа у вас не будет времени написать несколько значимых программ и извлекайте уроки из своих успехов и неудач с их. У вас не будет времени поработать с опытным программистом и понять, каково жить в среде C ++. Короче, ты не будет времени многому научиться. Таким образом, книга может говорить только о поверхностное знакомство, а не глубокое понимание. Как сказал Александр Поуп, небольшое обучение — опасная вещь.
  • C ++: Через 24 часа вы сможете изучить некоторые синтаксисы C ++ (если вы уже знаете другой язык), но вы не могли узнать много о том, как использовать язык. Короче говоря, если бы вы были, скажем, Базовый программист, вы можете научиться писать программы в стиле Базовый с использованием синтаксиса C ++, но вы не могли узнать, что такое C ++ на самом деле хорошо (и плохо) для.Так в чем смысл? Алан Перлис однажды сказал: «Язык, который не влияет на то, как вы думать о программировании, знать не стоит «. Один из возможных моментов: что вам нужно немного изучить C ++ (или, что более вероятно, что-то например, JavaScript или обработка), потому что вам нужно взаимодействовать с существующий инструмент для выполнения конкретной задачи. Но тогда ты не обучение программированию; вы учитесь выполнять эту задачу.
  • за 24 часа: К сожалению, этого недостаточно, так как следующий раздел показывает.

Научитесь программированию за десять лет

Исследователи (Блум (1985), Брайан и Хартер (1899), Хейс (1989), Simmon & Chase (1973)) показали это требуется около десяти лет, чтобы развить опыт в любом из множества зоны, в том числе шахматы, музыкальная композиция, телеграф работа, рисование, игра на фортепиано, плавание, теннис и исследования в нейропсихология и топология. Ключ совещательный практика: не просто делать это снова и снова, а бросать вызов самому себе с задачей, которая выходит за рамки ваших текущих возможностей, попробуй ее, анализировать вашу производительность во время и после выполнения и исправлять никаких ошибок.Потом повторить. И повторить еще раз. Кажется, нет настоящие ярлыки: даже Моцарт, который в 4 года был музыкальным вундеркиндом, взял Еще 13 лет до того, как он начал создавать музыку мирового класса. В другой жанр, Битлз, казалось, ворвались на сцену с череда хитов №1 и появление на шоу Эда Салливана в 1964 году. Но с тех пор они играли в маленьких клубах в Ливерпуле и Гамбурге. 1957 г., и, хотя на раннем этапе они приобрели массовую популярность, их первая великая критический успех, Sgt. Peppers , выпущен в 1967 году.

Малькольм Гладуэлл популяризировал эту идею, хотя он концентрируется на 10 000 часов, а не на 10 годах. Анри Картье-Брессон (1908-2004) использовал другую метрику: «Ваши первые 10 000 фотографий — ваши худшие». (Он не ожидайте, что с цифровыми фотоаппаратами некоторые люди смогут достичь этой отметки за неделю.) Настоящий опыт может занять всю жизнь: Сэмюэл Джонсон (1709–1784) сказал: «Превосходство в любом отделе может быть достигается только трудом всей жизни; его нельзя покупать в меньшая цена ». И Чосер (1340-1400) жаловался:« Lyf такой короткий, ремесло так долго, чтобы Лерне.«Гиппократ (ок. 400 г. до н.э.) известен отрывком« ars longa, vita brevis «, которая является частью более длинной цитаты» Ars longa, vita brevis, occio praeceps, Experimentum periculosum, iudicium difficile «, что на английском языке переводится как» Life is short, [the] craft долго, возможность мимолетная, коварный эксперимент, суждение трудно. » Конечно, ни одно число не может быть окончательным ответом: это не кажется разумным предположить, что все навыки (например, программирование, игра в шахматы, игра в шашки и музыка) может потребоваться одинаковое количество времени для освоения, и все люди займет ровно столько же времени.В качестве Проф. К. Андерс Эрикссон сказал: «В большинстве областей замечательно, сколько времени даже самые талантливые люди нужны для достижения высочайшего уровня производительности. Число в 10 000 часов просто дает вам ощущение, что мы говорим годы от 10 до 20 часов в неделю, и те, кого некоторые люди утверждают, являются наиболее талантливыми людьми, все еще должны достичь высочайшего уровня «.

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

Вот мой рецепт успеха в программировании:

  • Заставьте заинтересоваться программированием и займитесь программированием, потому что это весело.Убедись что это по-прежнему достаточно весело, так что вы будете готовы потратить свои десять лет / 10 000 часов.
  • Программа . Лучший способ обучения — это обучение при выполнении. Говоря более технически, «максимальный уровень производительность для физических лиц в данной области не достигается автоматически в зависимости от расширенного опыта, но уровень производительность может быть увеличена даже очень опытными людьми, поскольку результат сознательных усилий по улучшению »(стр. 366) и «для наиболее эффективного обучения требуется четко сформулированная задача с подходящий уровень сложности для конкретного человека, информативная обратная связь и возможности для повторения и исправления ошибок.»(стр. 20-21) Книга Познание на практике: разум, математика и культура в повседневной жизни Life — интересный ссылка на эту точку зрения.
  • Поговорить с другими программистами; читайте другие программы. Это важнее чем любая книга или учебный курс.
  • Если хотите, проучитесь четыре года в колледже (или больше в колледже Высшая школа). Это даст вам доступ к некоторым вакансиям, требующим учетные данные, и это даст вам более глубокое понимание области, но если вам не нравится школа, вы можете (с некоторой самоотдачей) получить аналогичный опыт самостоятельно или на работе. В любом случае книжное обучение само по себе не быть достаточным. «Компьютерное образование не может сделать эксперта из никого. программист больше, чем изучение кистей и пигментов может сделать кто-то искусный художник «, — говорит Эрик Реймонд, автор книги The New Хакерский словарь . Один из лучших программистов, которых я когда-либо нанял, имел только высшая школа; он создал много отличного программного обеспечения, имеет свою собственную группу новостей и сделал достаточно опционов на акции, чтобы купить собственный ночной клуб.
  • Работа над проектами с другими программистами.Будь лучшим программистом по некоторым проектам; быть худшим для других. Когда ты лучший, вы можете проверить свои способности вести проект и вдохновлять другие с вашим видением. Когда ты хуже всех, ты узнаешь, что за мастера делают, и вы узнаете, что им не нравится делать (потому что они заставить вас сделать это за них).
  • Работа над проектами после других программистов. Понять программу, написанную кем-то другим. Посмотри, что нужно, чтобы понять и исправить это, когда оригинальные программисты не вокруг.Подумайте, как разрабатывать свои программы, чтобы упростить тех, кто будет их поддерживать после вас.
  • Выучите хотя бы полдюжины языков программирования . Включите один язык, который подчеркивает абстракции классов (например, Java или C ++), тот, который подчеркивает функциональную абстракцию (например, Lisp, ML или Haskell), один который поддерживает синтаксическую абстракцию (например, Lisp), один который поддерживает декларативные спецификации (например, Prolog или C ++ шаблоны) и тот, который подчеркивает параллелизм (например, Clojure или Go).
  • Помните, что в «информатике» есть « компьютер ». Знать сколько времени требуется вашему компьютеру, чтобы выполнить инструкцию, получить слово из памяти (с пропуском кэша и без него), считывание последовательных слов с диска и поиск нового места на диске. (Ответы здесь.)
  • Займитесь языком стандартизация усилий. Это может быть комитет ANSI C ++ или может решить, будет ли ваш локальный стиль кодирования иметь 2 или 4 пробела уровни отступов.В любом случае вы узнаете, что другие люди как в языке, насколько глубоко они это чувствуют, и, возможно, даже немного о том, почему они так себя чувствуют.
  • Имейте здравый смысл, чтобы выйти из усилия по стандартизации языка как как можно быстрее.
Учитывая все это, сомнительно, как далеко вы можете пройти, просто книжное обучение. Перед тем как родился мой первый ребенок, я прочитал все How До книг, а еще чувствовал себя бестолковым новичком. 30 месяцев спустя, когда должен был родиться второй ребенок, вернулась ли я к книгам на освежить? Нет.Вместо этого я полагался на свой личный опыт, который оказался гораздо более полезным и обнадеживающим для меня, чем тысячи страниц, написанных экспертами.

Фред Брукс, в своем эссе No Silver Bullet определила план из трех частей для поиска отличных разработчики программного обеспечения:

  1. Систематически определяйте лучших дизайнеров как можно раньше.
  2. Назначьте наставника по вопросам карьеры, который будет отвечать за развитие потенциального клиента и тщательно вести карьерный досье.
  3. Предоставляйте возможность развивающимся дизайнерам взаимодействовать и стимулировать друг друга.
Это предполагает, что некоторые люди уже обладают качествами, необходимыми для быть отличным дизайнером; задача состоит в том, чтобы как следует их уговорить. Алан Перлис выразился более лаконично: «Каждого можно научить лепить: Микеланджело пришлось бы научить, как этого не делать. Так и с великие программисты ». Перлис говорит, что у великих есть внутреннее качество, выходящее за рамки их обучения. Но причем тут качество взято? Это врожденное? Или они развивают это через усердие? Как Огюст Гюсто (вымышленный повар в Ratatouille ) говорит: «Готовить может любой, но только бесстрашный. может быть здорово.»Я думаю об этом больше как о готовности посвятить большой часть жизни на совещательную практику. Но возможно бесстрашный — способ резюмировать это. Или, как критик Гюсто, Антон Эго говорит: «Не каждый может стать великим художником, но великим художник может прийти откуда угодно «.

Так что покупайте книгу по Java / Ruby / Javascript / PHP; Вы будете наверное, получу от этого какую-то пользу. Но ты не изменишь свою жизнь, или ваш реальный общий опыт программиста за 24 часа или 21 день. Как о работе трудно постоянно улучшаться в течение 24 месяцев? Что ж, теперь вы кое-чего начинаете…


Список литературы

Блум, Бенджамин (ред.) Развитие талантов в молодежи , Баллантайн, 1985.

Брукс, Фред, No Silver Bullets , IEEE Computer, vol. 20, нет. 4, 1987, с. 10-19.

Брайан, W.L. & Хартер, Н. «Исследования по телеграфному языку: Приобретение иерархии привычек. Обзор психологии , 1899, 8, 345-375

Хейс, Джон Р., Полное решение проблем Лоуренс Эрлбаум, 1989.

Чейз, Уильям Г. и Саймон, Герберт А. «Восприятие в шахматах» Когнитивная психология , 1973, 4, 55-81.

Лаве, Жан, Познание на практике: разум, математика и культура в повседневной жизни Life , Cambridge University Press, 1988.


Ответы

Приблизительное время для различных операций на типичном ПК:
выполнить типичную инструкцию 1/1000000000 с = 1 наносекунда
выборка из кэш-памяти L1 0.5 наносекунд
неправильное предсказание перехода 5 наносекунд
выборка из кэш-памяти L2 7 наносекунд
Блокировка / разблокировка Mutex 25 наносекунд
выборка из основной памяти100 наносек
отправить 2 Кбайта по сети 1 Гбит / с 20000 наносекунд
последовательное чтение 1 МБ из памяти 250 000 наносекунд
выборка из нового места на диске (поиск) 8000000 наносекунд
последовательное чтение 1 МБ с диска 20000000 наносекунд
отправить пакет из США в Европу и обратно 150 миллисекунд = 150 000 000 наносек

Приложение: выбор языка

Несколько человек спрашивали, какой язык программирования им следует изучить в первую очередь. Однозначного ответа нет, но рассмотрите следующие моменты:
  • Используйте своих друзей . На вопрос «какая операционная система должна Я использую Windows, Unix или Mac? «, Я обычно отвечаю:» использовать что угодно ваши друзья используют «. Вы получаете преимущества, извлекая уроки из друзья компенсируют любую внутреннюю разницу между ОС или между языками программирования. Также подумайте о своих будущих друзьях: сообщество программистов, частью которого вы станете, если вы Продолжить. Есть ли у выбранного вами языка большое растущее сообщество? или маленький умирающий? Есть ли книги, веб-сайты и онлайн-форумы получить ответы? Вам нравятся люди на этих форумах?
  • Будьте проще .Языки программирования, такие как C ++ и Java предназначены для профессиональной разработки большими командами опытные программисты, озабоченные эффективностью выполнения их код. В результате эти языки имеют сложные части, предназначенные для этих обстоятельств. Вы озабочены обучением программированию. Вам не нужны эти сложности. Вам нужен язык, который был разработан таким образом, чтобы его было легко выучить и запомнить. одинокий новый программист.
  • Играть. Каким способом вы бы предпочли научиться играть на пианино: нормальный, интерактивный способ, при котором вы слышите каждую ноту, как только нажимаете клавишу, или «пакетный» режим, в котором вы слышите ноты только после того, как закончите целую песню? Понятно, что интерактивный режим облегчает обучение игре на фортепиано, а также программирование.Настаивайте на языке с интерактивным режимом и используйте его.
Учитывая эти критерии, мои рекомендации по первому программированию язык будет Python или Схема . Другой выбор — Javascript, не потому, что он идеально подходит для начинающих, но потому что для этого есть так много онлайн-руководств, таких как Учебник Ханской академии. Но твой обстоятельства могут отличаться, и есть и другие хорошие варианты. Если твой возраст является однозначным числом, вы можете предпочесть Алиса или писк или Blockly (они также могут понравиться ученикам старшего возраста). Важный дело в том, что вы выбираете и начинаете.

Приложение: книги и другие ресурсы

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

учиться программированию

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

После того, как 16 марта COVID разрушил мою старую работу (фильм), я начал учиться программировать дома.Я делал глупые маленькие игры на C # и прочее для Интернета, но думал, что никогда не смогу сделать что-то «профессиональное». Оказывается, создание десятков проектов для развлечения помогает вам учиться очень быстро, и сегодня я и еще трое ребят выпустили инструмент для создания схемы Next.js GraphQL.

В любом случае, я не буду рекомендовать свой рабочий процесс другим, но вот мой годичный процесс:

  • ДЛИННАЯ РАБОТА: Я бы кодировал 10-15 часов в день в начале COVID. Мой режим сна был нарушен, и я ложился спать к 7 утра, но я учился ТАК БЫСТРО в течение полугода, делая это.

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

  • Переходите к интересным проектам: Я знаю, что я обучаюсь на основе проектов и никогда не намеревался «изучать» сложные предметы, но наличие цели заставляет вас заниматься новыми концепциями.Если вы не знаете, чему СЛЕДУЕТ учиться, проекты очень быстро сообщают вам об этом.

  • Сначала скопируйте / вставьте, затем задайте вопросы: этот совет может быть худшим, но создание чьего-либо кода из stackoverflow — не всегда плохой способ обучения. То, что вы этого не написали, не означает, что вы не можете проанализировать его и узнать, как это работает.

  • Разместите свои проекты в Интернете: Моя тупая маленькая игра на C #? Взлетел из ниоткуда и собрал почти пару тысяч подписчиков за 3-4 месяца.У меня появилось много друзей, и я был приглашен в Discord с другими программистами, где мы делимся проектами / кодом друг с другом.

Как видите, это был не совсем легкий год, но, без сомнения, самый ВЕСЕЛЫЙ и насыщенный год, который закончился изучением трех языков, несколькими веселыми и глупыми проектами, множеством новых друзей и, наконец, чем-то «профессиональным» для гордиться.

Мои цели на следующий год:

  • Закончить игру (да) и сделать Kickstarter.

  • Найдите работу Front End Developer.

  • Выучить язык более низкого уровня, может быть, сделать игру на C ++ с помощью SDL?

5 шагов для изучения любого языка программирования

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

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

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

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

1. Синтаксис

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

Например,

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

 

while j while k tile = Tile (k * w)
board.add (tile)
k + = 1
j + = 1
k = 0

Lua просто использует ключевое слово конец :

 

для i, obj в ipairs (hit) do
, если obj.перемещение == 1, затем
obj.x, obj.y = v.mouse.getPosition ()
конец
конец

Java, C, C ++ и подобные языки используют фигурные скобки:

 

в то время как (std :: getline (e, r)) {
wc ++;
}

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

Принять меры

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

2. Встроенные и условные операторы

Язык программирования, как и естественный язык, имеет конечное число слов, которые он распознает как допустимые. Этот словарь можно расширить за счет дополнительных библиотек, но базовый язык знает определенный набор ключевых слов. В большинстве языков не так много ключевых слов, как вы думаете.Даже на очень низкоуровневом языке, таком как C, есть только 32 слова, например для , do , , а , int , float , char , break и т. Д. .

Знание этих ключевых слов дает вам возможность писать основные выражения, строительные блоки программы. Многие встроенные слова помогают создавать условные операторы, влияющие на ход вашей программы. Например, если вы хотите написать программу, которая позволяет вам щелкать и перетаскивать значок, тогда ваш код должен определять, когда курсор мыши находится над значком.Код, который заставляет мышь захватывать значок, должен выполнять только , если курсор мыши находится в тех же координатах, что и внешние края значка. Это классический оператор if / then, но в разных языках это выражается по-разному.

Python использует комбинацию , если , elif и , иначе , но явно не закрывает оператор:

 

if var == 1:
# действие
elif var == 2:
# какое-то действие
else:
# другое действие

Bash использует , если , elif , else и использует fi для завершения оператора:

 

если ["$ var" = "foo"]; затем
# действие
elif ["$ var" = "bar"]; затем
# какое-то действие
еще
# другое действие
fi

C и Java, однако, используют , если , иначе и иначе, если , заключенные в фигурные скобки:

 

if (логическое) {
// действие
} else if (логическое) {
// какое-то действие
} else {
// какое-то другое действие
}

Хотя есть небольшие различия в выборе слов и синтаксисе, основы всегда одни и те же. Изучите способы определения условий на языке программирования, который вы изучаете, в том числе if / then , do ... while и case .

Принять меры

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

3. Типы данных

Код имеет дело с данными, поэтому вы должны узнать, как язык программирования распознает различные типы данных. Все языки понимают целые числа и большинство понимают десятичные дроби и отдельные символы (a, b, c и т. Д.). Они часто обозначаются как int , float и double и char , но, конечно, встроенный словарь языка информирует вас о том, как обращаться к этим объектам.

Иногда в язык встроены дополнительные типы данных, а иногда сложные типы данных включаются с помощью библиотек. Например, Python распознает строку символов с ключевым словом str , но код C должен включать заголовочный файл string.h для строковых функций.

Принять меры

Библиотеки

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

4.Операторы и парсеры

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

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

Вам также необходимо знать, как сравнивать и работать с нечисловыми данными, такими как символы и строки. Это часто делается с помощью базовых библиотек языка.Например, Python имеет метод split () , а C требует string.h для предоставления функции strtok () .

Принять меры

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

5. Функции

Код

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

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

Принять меры

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

Вы можете узнать все, что угодно

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

9 советов по обучению программированию без предварительного опыта

Обучение программированию — это процесс на всю жизнь, но эти советы начнутся на вашем пути

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

1. Сначала изучите базовые концепции кодирования.

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

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

Управляющие структуры: управляющие структуры в программе определяют, какие переменные использовать на основе существующих параметров. Например, операторы if … then … else — это одна из простейших управляющих структур во многих языках, которая сообщает программе, как действовать.

Структуры данных: различные методы хранения и доступа к данным на компьютере.

Синтаксис: Набор правил, определяющих грамматику языка программирования.

Инструменты: программа, которая поможет вам программировать быстрее.

2. Выберите правильный язык.

Еще в старшей школе я впервые познакомился с программированием, пройдя обязательный курс C ++, который меня преподавали. В то время моим единственным предыдущим опытом программирования был БЕЙСИК. Я использовал оператор GOTO для рисования фигур, не понимая, какой цели он служит или может служить.

Сейчас Python многие люди считают новым Бейсиком. C ++ был интересен на начальных этапах, потому что концепция объектно-ориентированного программирования казалась управляемой.Новые пользователи считали, что функции, массивы и ключевые слова вроде void и public имеют смысл. Но по прошествии некоторого времени стало обычным делом обнаруживать, что они изучили лишь часть семантики C ++, не понимая, что происходит под ними.

3.

Выберите язык, демонстрирующий низкоуровневые концепции.

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

Что подразумевается под понятиями низкого уровня? Ну, например, знаете ли вы, что когда вы пишете функции на C ++, они попадают в стек вызовов? Возможно, вы слышали о переполнении стека, плохо понимали указатели и имели поверхностное представление о логических элементах. Это низкоуровневые концепции.

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

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

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

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

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

Это все зависит от вашего мнения. Другие разработчики могут сказать вам, что ваш выбор может быть менее осторожным в отношении синтаксиса. Когда вы выбираете первый язык, выберите тот, который поможет вам достичь ваших целей программирования. У некоторых людей совсем не возникает проблем с прорезыванием зубов, когда они делают первые шаги в C ++. Они выбрали язык, потому что были готовы принять вызов.

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

4. По возможности избегайте популярных языков.

Старайтесь не выбирать промышленные языки, такие как PHP, JavaScript, C ++ и C.Это языки, которые использовались годами и несут в себе большой багаж, который может помешать вашему обучению. Возможно, начнем с Smalltalk, который в 2017 году занял второе место в опросе разработчиков Stack Overflow для самого любимого языка программирования. Вы получите мягкое введение в программирование с объектно-ориентированными вариантами Smalltalk. Это отличный язык для изучения предметов.

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

5. Выберите язык в соответствии с вашими целями.

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

6. Учитесь кодировать на практике, а не просто читая

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

7. Не игнорируйте основы.

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

8. Попробуйте написать код на бумаге.

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

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

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

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

Питон

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

Python также идеально подходит для веб-разработки, графических пользовательских интерфейсов (GUI) и разработки программного обеспечения. Фактически, он использовался для создания Instagram, YouTube и Spotify, поэтому он явно пользуется спросом среди работодателей в дополнение к более быстрой адаптации.

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

C #

Хотя C — один из самых сложных языков для изучения, он по-прежнему является отличным вариантом для первого языка, поскольку на нем реализованы почти все языки программирования. Это означает, что как только вы выучите C, вам будет проще выучить больше языков, таких как C ++ и C #.

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

Таким образом, C — исключительный выбор, чтобы стать мастером программирования и талантливым разработчиком с самого начала, если вы готовы принять вызов.

Ява

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

Это делает его одним из самых желанных (да, мы имеем в виду высокооплачиваемых) языковых навыков.Итак, если вы хотите выучить язык, который поможет вам сделать отличную карьеру, это может быть тот, который вам подойдет, особенно если учесть лучшие работодатели для программистов Java, включая Ebay, Amazon и IBM.

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

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

JavaScript

JavaScript — еще один невероятно популярный язык. По данным General Assembly, многие веб-сайты, которые вы используете каждый день, используют JavaScript, включая Twitter, Gmail, Spotify, Facebook и Instagram.

Кроме того, он незаменим при добавлении интерактивности веб-сайтам, поскольку взаимодействует с HTML и CSS. Это делает его незаменимым для интерфейсной разработки и веб-сайтов, ориентированных на потребителя, при этом приобретая все большее значение в серверной разработке и постоянно растущий спрос.Благодаря своей популярности JavaScript также является лидером в фреймворках автоматизации тестирования, являясь основой таких фреймворков, как Protractor и Nightwatch.JS.

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

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

Рубин

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

Основная причина, по которой людям нравится Ruby, — это потрясающая полнофункциональная среда Ruby on Rails, которая становится все более популярной среди стартапов и корпоративных решений. Airbnb, Groupon, Hulu и Soundcloud — это лишь некоторые из веб-сайтов, созданных с помощью Ruby on Rails, а Ruby сегодня имеет довольно активное сообщество разработчиков.

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

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

  • Если вы ищете что-то легкое: Python
  • Если вам нужен прочный фундамент, чтобы стать мастером-разработчиком: C
  • Если вы ищете работу или хотите создавать мобильные приложения: Java
  • Если вы хотите попробовать интерфейсную разработку: Javascript
  • Если вы программируете для веб-сайта своего стартапа: Ruby

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

По его собственным словам, Коллиер — энтузиаст Javascript — утверждает: «Изучать программирование сложно, и поэтому мне это нравится».

Специально для тестировщиков, поскольку индустрия обеспечения качества начинает все больше требовать навыков в автоматизации тестирования, знания программирования становятся бесценным активом.В разделе «Кодирование — ключ к карьере в области автоматизации тестирования: готовы ли вы?» T.J. Махер утверждает, что обучение программированию — это способ номер один прорваться в автоматизацию тестирования. Затем, даже если вы думаете, что понимаете это, вам нужно продолжать практиковать все время.

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

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

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