Когда я преподавал программирование в ВУЗе, то в начале семестра я приглашал лучших учеников на кафедру и предлагал им следующий вариант изучения курса: «Можете не ходить на лекции. Я поставлю вам зачет автоматом и пять баллов на экзамене, если к концу семестра вы сделаете…»
Как я сам узнал этот секрет
Дальше я рассказывал студентам секрет быстрого изучения программирования. Но как я сам узнал его?
Это было давно, когда я еще работал программистом в космической отрасли. У меня был приятель, который работал переводчиком. Мы иногда пересекались и обсуждали всякие IT-темы. Он был гуманитарий и слабо разбирался в компьютерах. Но он купил компьютер и у него было много вопросов.
Как-то во время очередной встречи он мне неожиданно сказал: «Я тут написал драйвер для джойстика!» Я поразился, написание драйверов — это весьма сложная задача. Как мог человек, который не знал программирования, написать драйвер?
А дело было так. Он купил джойстик, чтобы играть в компьютерные игры. Но в те времена была проблема драйверов. Не каждое устройство можно было запустить на компьютере, если не было соответствующего драйвера.
Как стать ПРОГРАММИСТОМ с НУЛЯ?
Мой приятель попал именно в такую ситуацию. Драйвера для его материнской платы не было. Но на дискете с драйверами прилагался текст драйвера на языке Си.
Хотя он не был программистом, но играть очень хотелось. Он взял инструкцию к материнской плате и стал сравнивать коды в инструкции с текстом программы драйвера. Он обнаружил, что отличаются только последовательность команд, а сами команды были похожи.
Дальше он стал разбираться с тем, как можно скомпилировать программу на Си, как она отлаживается. Все это было очень трудно. Но когда первый раз джойстик вдруг среагировал на нажатие кнопки, это была победа!
Шаг за шагом он добавил обработку всех команд и джойстик полностью заработал!
Весь этот процесс у него занял полгода. То есть гуманитарий, который и с компьютером-то разобрался только недавно, за полгода написал сложную программу.
Когда я его спросил:
— Как же ты так во всем самостоятельно разобрался?
— Играть очень хотелось!
Так я узнал секрет быстрого изучения программирования.
Что я говорил студентам?
Полная фраза звучала так: «Я поставлю пятерку автоматом, если в конце семестра вы принесете мне программу, которую сделаете для себя».
Что за программа, значения не имеет. Главное, чтобы студент сам ею пользовался. Обычно студенты писали базы данных, проигрыватели аудио, простые игры.
И у всех, кто брался, получалось превосходно. Они знали программирование намного лучше тех студентов, кто решал учебные задачи.
В чем же секрет этого способа изучения программирования?
Когда новичок прослушал курс и пытается написать свою программу, то он вдруг понимает, насколько сложное это дело и сколько он еще не знает.
В этот момент начинает казаться, что программирование — это безумно сложное дело и ему с этим никак не справиться.
Совсем другое дело, если новичок сразу начал с программы, которая ему нужно. В этот момент включается мотивация: «Играть очень хочется!» и тогда новичок пишет пусть криво и косо работающую программу, которая хоть как-то шевелится.
Но хитрость в том, что если традиционный студент изучает все подряд, а потом все это забывает, то продвинутый студент изучает ровно то, что нужно для конкретной программы и сразу это пускает в дело. А то, что сделал своими руками — это не забудешь.
Знания про запас
Большая проблема традиционного обучения в том, что знания получаются в надежде их будущего применения. Поэтому студенту трудно различить, где что-то важное, а где то, что никогда не пригодится.
Поэтому обычная стратегия такая: накопить побольше знаний в надежде, что они когда-либо пригодятся.
Продвинутые ученики, напротив, прямо сейчас ищут и изучают то, что нужно для решения задачи. Они ищут ответы в Интернете, задают вопросы на форумах, спрашивают на StackOverflow. То есть они активно накапливают знания, которые сразу применяют и получают пользу.
Но есть и еще один важный момент. Те знания, которые запасены на будущее, могут иметь пробелы, то есть студент думает, что понял какую-либо тему, но на самом деле он ее только «прослушал», а конкретно применить все равно не сможет.
А вот те знания, которые прямо сейчас используются, уже не могут быть с пробелами. Любое непонимание приводит к тому, что надо детально разобраться. Причем в программировании нужно разобраться вплоть до последней запятой, иначе программа не заработает.
Методика обучения пошагово
Итак, как же выглядит самый эффективный путь изучения программирования?
Шаг 1. Выберите программу, которую будет сами использовать.
Не нужно замахиваться на что-то сложное. Смотрите те ситуации, с которыми вы сталкиваетесь. Например, вам не хватает программы для заметок — напишите ее. Или вам хочется заметки автоматически публиковать в своем твиттере — сделайте это.
Главное — не думайте о том, что вы сейчас приступаете к проекту на миллиард долларов. Стартап вас еще ждет, но не сейчас. Программа должна быть самой обычной.
Шаг 2. Поищите аналоги и посмотрите, как они сделаны
Проведите небольшое исследование на тему того, какие программы используются для решения вашей задачи. Потом узнайте на каком языке эти программы написаны, и какие библиотеки были при этом использованы. Можете расспросить опытных программистов на форумах, они подскажут.
Шаг 3. Сразу начните писать программу
Ни завтра, ни через полгода, а вот прямо сегодня. На том уровне знаний, который у вас сейчас есть. Написали текст и запустили на компиляцию. Вы можете возразить: «Да я даже не знаю, что такое компиляция?» Отлично, самое время узнать, что это такое.
Не ждите идеала. Пишите кривой, но работающий код. Запомните: сначала — результат, а потом — оптимизация.
Шаг 4. Заминка
Может получиться так, что некоторые моменты программы заработали сразу, а вот с другими случилась заминка. Тут надо поступать так: параллельно пишите то, то получается и одновременно разбираетесь с тем, что не получается. То есть работу над программой не останавливаете ни на минуту.
Шаг 5. В зачет идет только код
Это одно из главных правил программиста. Вы можете что-либо изучать, искать информацию, задавать вопросы, но главное — это кодирование. Каждый день пишите код.
Шаг 6. Пользуйтесь программой
Каждый день после кодирования начинайте пользоваться своей программой. Записывайте баги и пожелания. Вы будете своим заказчиком. В этом и состоит мотивация.
Шаг 7. Друзья-тестировщики
Если ваши друзья тоже хотят данный функционал, то передавайте им версии программ. Пусть они тоже станут бета-тестерами и генераторами идей.
Твердость и упорство
Конечно же, предлагаемый путь очень сложный. Как только вы начнете писать первую реальную программу на вас обрушится такое количество трудностей, что захочется сдаться и опустить руки.
Но я предупреждал в самом начале, что это путь не для всех, только для самых упорных.
Источник: progtips.ru
Как научиться программировать с нуля в домашних условиях
В настоящее время все большую популярность набирает профессия программиста. Бывает такое, что люди, мечтающие стать программистами, даже не начинают обучение, узнав, как оно дорого стоит.
Но существует множество альтернатив дорогому обучению. Сегодня я расскажу, как научиться программировать в домашних условиях и с чего лучше начинать обучение.
Пройти обучение самостоятельно может каждый. Способов для этого имеется множество. Совершенно неважно, какими знаниями в области программирования вы обладаете, можно научиться с нуля, в домашних условиях. Сделав программирование своей профессией. Хочется отметить — высокооплачиваемой и востребованной профессией.
Главное серьёзно подойти к обучению, ведь зарплата программиста полностью зависит от его знаний и умений.
Как научиться программировать с нуля в домашних условиях
Итак, программирование имеет следующие направления:
- Web-программист (создание сайтов);
- Прикладной программист (написание программ);
- Системный программист (создание драйверов, создание программ для работы с ОС).
Прежде чем начать обучение, определите сами для себя, зачем вам это нужно, какие цели вы преследуете. Потому что программирование бывает разным. Подумайте, что бы Вам хотелось делать: писать игры; разрабатывать сайты или работать с финансовыми программами.
Имеется большое количество языков программирования и каждый из них предназначен для определенного применения. Именно поэтому программирование подразделяется на различные категории. Очень важно перед началом обучения определиться, какую область нужно освоить.
Для программирования важную роль играет английский язык. Поэтому учите его и постоянно совершенствуйте.
Сегодня можно с легкостью найти сервисы, которые помогут обучиться программированию онлайн. С помощью них можно освоить начальные принципы работы с языками программирования, а также самостоятельно создавать программы.
Популярные онлайн сервисы для обучения программированию
Давайте поподробнее поговорим о самых популярных онлайн сервисах обучения программированию.
Codecademy
Сервис пользуется огромной популярностью, так как является бесплатным и создан для тех, кто в программирование практически ничего не понимает. Завершив регистрацию, можно выбрать, подходящий Вам курс.
Процесс обучения довольно простой, с простыми заданиями. В процессе обучения все пользователи получают оценки за выполненные задания. Таким образом, становится понятно, что получается хорошо, а над чем еще нужно поработать.
Это лучший сервис, обучающий следующим языкам:
Code School
Как самому научиться программированию
Из-за востребованности web-разработчиков и авторов ПО на рынке труда возникает вопрос о том, как научиться программировать. Это навык, который может быть применен сразу в нескольких сферах: написании приложений для компьютеров и смартфонов, создании сайтов и т. д. Обучаться программированию с нуля самостоятельно сложно, могут потребоваться вложения, но позднее это окупится.
Личностные качества для самообучения
Программировать можно научиться самому. Для самообучения потребуются следующие личностные качества:
- Оптимизм и жизнелюбие. Данные качества подпитывают открытость и восприимчивость человека, помогают добиваться своего, закрепляют готовность действовать. В процессе самообучения и работы будут возникать препятствия, вопросы и проблемы. Пессимиста это оттолкнет и заставит отступить от идеи освоения программирования. Оптимист будет вдохновляться результатами других и видеть в препятствиях лишь ступеньки на пути к овладению навыком.
- Гибкость мышления. Для создания игры, приложения или сайта недостаточно выучить языки программирования. Нужно уметь их применять. Для решения многих задач потребуются креативность и стрессоустойчивость. Придется переключаться с одного занятия на другое, что потребует быстрой адаптации. Часто вы будете вынуждены исправлять ошибки в коде. Лучше воспринимать это как шанс на улучшение навыка, а не как катастрофу.
- Смелость. В процессе изучения программирования с нуля вы постоянно будете сталкиваться с чем-то неизвестным. Если постоянно бояться и отступать после первой неудачи, освоить новый навык не удастся.
- Честность. Потребуется быть откровенным, чтобы признавать, что вы чего-то не знаете или не умеете. Честный человек всегда правильно анализирует свои возможности и реже попадает в неудобные ситуации. Ученик, который искренне верит в то, что уже достиг верха мастерства, в действительности останавливается на одном уровне.
- Самодисциплина. Вам придется регулярно усваивать новую информацию, слушать, читать, анализировать код, выполнять задания и т. д. При слишком редких занятиях вам не удастся изучить программирование дома, поскольку вы будете забывать уже пройденное. Частые уроки приведут либо к выгоранию, либо к перенапряжению.
Виды программирования, которым можно обучиться
Самая простая сфера для новичка – веб-разработка. Она подразумевает создание сайтов. Сюда можно отнести:
- интернет-магазины,
- социальные сети,
- страницы-визитки,
- форумы и т. д.
Одни программисты отвечают за визуальную составляющую сайтов, другие – за их функции. Некоторые способны выполнять сразу все задачи. Для создания сайтов чаще всего используют языки PHP, JavaScript, Ruby и Python.
Следующая по сложности ступень – мобильная разработка. Писать приложения для смартфонов чаще всего приходится на языках Swift и Java. Если в дальнейшем вы хотите разрабатывать игры или ПО для компьютера, начните с мобильных телефонов. Вы поймете общие закономерности и будете допускать меньше ошибок в дальнейшем.
Если вас не пугают трудности, можно выбрать разработку программ и игр для ПК. В данном случае вам понадобятся языки C++, C, C#.
Как поступить, если не знаешь, что выбрать
При выборе учитывайте сложность освоения, количество материалов для домашнего обучения и востребованность языка на рынке труда. Проверить последнее можно с помощью сайтов для поиска вакансий. Количество материалов имеет второстепенное значение при наличии наставника.
Однако при бесплатном самообучении вам будет труднее разобраться, если в сети не окажется книг и видеокурсов.
Сохранить наглядную подсказку по выбору языка, чтобы вам было легче определиться.
Что необходимо знать
Перед началом обучения нужно знать, какие языки самые простые, зачем нужны компиляторы и т. д.
Школьные знания
Если вы не знаете, с чего начать изучение программирования, обратитесь к школьному курсу. В первую очередь пригодятся математика и английский язык. Желательно освоить информатику. В некоторых школах ученикам сразу преподают языки программирования. Чаще всего это Pascal.
Он давно устарел, но подойдет для понимания основ.
Особенности обучения в России
В России в течение долгого времени программирование не воспринимали всерьез и преподавали только как второстепенную науку. Из языков в вузах чаще всего используют Basic. Он, как и Pascal, устарел. С его помощью возможно изучить основы, но уделять слишком много внимания Basic и Pascal не стоит.
В некоторых учреждениях программу обучения обновили, но студентам все еще приходится дополнительно заниматься самостоятельно, чтобы освоить современные языки.
С какого языка программирования начать
Наиболее простые для освоения языки – Basic и Pascal. Они подойдут для начинающих, но в дальнейшем нужно перейти на другие инструменты разработки.
Работа с компиляторами
Компилятор – это программа, которая переводит код на понятный компьютеру язык. Самые распространенные компиляторы: Microsoft Visual Studio, Borland C++ и Code::Blocks. Новичкам лучше начать с Borland C++.
Что востребовано на рынке
Наиболее востребованы рынком труда веб-разработчики и создатели мобильных приложений. Первым чаще всего приходится работать с прямыми заказчиками. Создание игры или ПО для ПК – задача более трудоемкая. Она ценится выше, но подобных вакансий меньше.
Как подойти к вопросу обучения
Для эффективного обучения вам потребуются не только мотивация, но и источники информации и план.
Постановка цели на будущее
Желательно поставить себе цель создать какой-либо проект и постепенно идти к этому. Это необязательно должна быть игра или нечто крупное: можно начать с маленьких скриптов или приложений. Создать код быстро не получится, если вы не будете владеть нужными знаниями. Однако по мере освоения языка вы начнете продвигаться вперед, после создания первого проекта приступите к следующему.
Оценка собственных способностей
Правильная оценка своих способностей – главное условие обучения. Вы должны хорошо понимать, что вам дается хорошо, а что лучше проработать.
Систематизация и разработка плана обучения
Без плана обучения вы будете продвигаться медленнее, поскольку занятия будут иметь случайный характер. Распишите, сколько часов вы будете уделять программированию и по каким дням.
В план вы можете включить как чтение литературы, так и просмотр курсов, работу над проектом и т. д.
Необходимые источники информации
В качестве источников информации используют обучающую литературу, форумы, сайты с видеокурсами. Новичкам можно почитать книги, предлагающие освоить программирование за 1 день. Полный набор навыков такая литература не даст, но поможет понять основы.
Полезные советы для обучающегося
Если вы решили учиться программированию, нужно максимально расширить перечень источников информации и как можно чаще практиковаться.
Изучение чужого кода
Изучение чужих фрагментов кода поможет вам быстрее обучиться основным функциям и предотвратить часть ошибок. Заодно вы дополните свой арсенал несколькими приемами и сможете оптимизировать код.
Написание собственных элементов
Без практики вам не удастся быстро овладеть программированием, поэтому нужно как можно быстрее перейти к написанию собственных элементов кода.
Использование отладчика
Отладчик поможет вам увидеть ошибки в своем коде, что сэкономит много времени. Желательно пользоваться им постоянно. Он нужен не только начинающим, но и опытным программистам, поскольку они могут допустить ошибку по невнимательности.
Обращение к англоязычным источникам
На англоязычных сайтах вы найдете ту информацию, которой может не быть в российском сегменте интернета. Это особенно важно, если вам не удалось найти достаточно обучающей литературы по выбранному языку.
Как помочь с обучением школьнику
Освоение программирования подразумевает самообучение, поэтому лучший способ помочь школьнику – покупка книг или курсов. Не берите первую попавшуюся литературу, посоветуйтесь с ребенком и узнайте, какой язык его интересует. Если он не владеет основами и не знает, как изучать программирование дома, наймите репетитора.
Преимущества и недостатки способов обучения
У каждого метода обучения есть преимущества и недостатки. Учитывайте их, когда будете выбирать подходящий для себя вариант обучения.
Самостоятельная работа
Главное преимущество самообучения – бесплатность и возможность подстраивать график под себя. Однако это самый трудный путь, поскольку вам придется постоянно изучать и усваивать большое количество информации. Вам нужно будет самостоятельно составить учебный план, искать источники знаний и т. д. Вы чаще будете сталкиваться с ошибками и малополезной литературой, т. к. у вас пока мало опыта. Однако не стоит бояться самообучения, потому что даже при выборе других методов вам все равно придется частично изучать информацию без помощи преподавателей и наставников.
С помощью наставника
Наставник выделит самый важный материал, расскажет вам о ошибках и подводных камнях, даст те знания, которых нет в книгах. Это эффективный, но платный метод обучения. Он поможет вам сэкономить время, но нанимать наставника стоит только в том случае, если вы настроены на освоение программирования, иначе вы просто потеряете деньги.
На курсах или в университете
Университет даст вам высшее образование и знания в сфере математических наук, однако программирование придется изучать самостоятельно. Программа в вузах отстает от современных тенденций. Курсы – это риск. Если у учителя работа поставлена на поток, он будет набирать большие группы и преподавать прописные истины, которые мало чем вам помогут. Лучше предпочесть наставников с индивидуальным подходом.
Как получить опыт для трудоустройства
Рекомендуется заниматься проектами и выполнять задания на биржах, чтобы получить первый опыт. В дальнейшем вы сможете дополнить свое портфолио и предоставлять его заказчикам и работодателям.
Источник: legkonauchim.ru