Обучиться программированию. Программировать с нуля. «Сейчас» — самое подходящее время, чтобы начать

январь
2016

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

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

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

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

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

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

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

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

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

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

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

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

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

Прочитал предыдущих ораторов - большинство технари и их точка зрения очень ясна и понятна.
Но, парень четко указал, что он не технарь, потому что занимается дизайном. Хотя я и работа программистом и учился на разработчика, но также я сам художку закончил и студентом дизайнером подрабатывал. Мы, люди искусства, - не гуманитарии и не технари, поэтому оба эти направления даются нам одинаково легко и тяжело одновременно.
Я бы на твоем месте сперва спросил себя:
«Ты хочешь „видеть“ что ты создаешь или же тебе очень нравится понимать и решать математические задачки?»
1) Если «видеть», то в твоем случае html+CSS+javascrip + твой дизайн = оптимальный вариант. Как альтернатива - silverlight сайты или наконец flash. Быть спецом по user Interfaces. Им, кстати, тоже нормально платят.
2) Если же тебе нравится решать головоломки (а со временем я стал за собой замечать, что решаю их даже в повседневной жизни), задачки по физике или алгебре или геометрии (или потому что от учительницы многое зависеть может) в школе и эти предметы шли + ты понимаешь их, то можно и пробовать программировать.
Добавлю про себя: даже код писать в универе меня не научили (зато алгоритмы составлять и описывать ясным языком), пришлось карпеть самому. Советую взять книгу Дж. Либерти «С++ за 21 день» (читать её можно на много дольше) и читать. Там будет все очень разжовано и понятно написано.
Но, конечно, бех технического образования программировать можно, но тренероваться и набивать руку будет очень сложно. На собеседованиях джунеоров гоняют по 3 вещам:
1) ООП. Основы. Знать на зубок (в приведенной мной книги все очень ясно описано с примерами)
2) Сам язык, на котором хочешь писать. Синтаксиса + основные библиотеки (строки, числа, даты пожалуй все для начала)
3) SQL запросы и базовая теория баз данных.
Что касается языков, то тут можно разводить кучу споров и холиваров, но есть 2 их типа по синтаксису: С++ подобные и все остальные (когда уже знаешь 1 язык, тогда синтаксис перестает быть важным, сперва он только и важен).
С++: С++, JAVA, C#, Javascrtipt, actionscript, php и др.
не С++: Pascal, Python, Basic, Prolog и др… тут кто во что горазд.
Я бы рекомендовал как и сам начать изучать С++ (а потом перейти на C# или Java). Учить любой язык с 0 будет одинаково сложно а потом легче и легче, поэтому не слушай тех, кто говорит: не учи «С++, он сложный». Он скорее основа основ + синтаксис похожий с другими языками группы. А решать любые задачки можно на любом языке.
Я бы на твоем месте и проучился больше 2 курсов, то уже закончил бы универ, попутно изучая javasctipt+дизайн и занимался интерфейсами с точки зрения психологии пользователя и не парился сменой профессии, применил все свои знания универа + программирование.

Хотя добавление новой клавиатуры, мыши и монитора повышает общую стоимость, сравнимую с дешевым ноутбуком. В ноутбуках меньше кабелей для работы и хранения. Помните Совет № 4: Научите их с самого начала, чтобы попросить своего партнера по клавиатуре и мыши вместо того, чтобы просто хватать их.

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