Эта статья является вводной для небольшого цикла статей, которые призваны положить начало обучению людей, которые хотят научиться создавать сайты, но на данный момент понятия не имеют что это значит. Однако первые несколько статей будут полезны и тем, кто хочет научиться программировать и в других сферах. В данной статье будет очень много воды и вступительной информации, но обещаю, терпеливые не пожалеют потраченного времени.
Давайте начнём с того, что я расскажу чем занимаюсь, раз уж решил написать небольшой, так скажем, урок. Я занимаюсь разработкой сайтов чуть больше двух лет. За это время успел освоить многие технологии, которые вам скорее всего также пригодятся, раз вы попали на эту страницу, такие как php, javascript, jquery, css, less, mySQL, различные CMS системы (о них будет позже), структуры и алгоритмы обработки данных, принципы и практическое использование ООП, некоторые php фреймворки и многое другое. Похожий список сможет предоставить практически любой web-разработчик, имеющий стаж хотя бы год-полтора, и перечислять всё нет смысла так как сейчас для вас это пустые слова. Когда я сам решил заниматься web’ом и увидел стек, который нужно знать, я испугался и даже забросил эту идею на пару месяцев так как на тот момент у меня был скудный опыт написания программ на C++ по математическому анализу, моделированию физических экспериментов, смутное представление о том что такое HTML и вообще из чего состоит web. Однако университет, в котором я тогда ещё учился, заставил меня сесть за изучение HTML и javascript, и сейчас я очень этому рад.
Для кого эта статья
На данный момент существует множество различный групп Вконтакте и сайтов в сети, которые рассказывают практически с нуля о той или иной технологии или языке программирования. Даже у опытного разработчика разбегаются глаза, когда смотришь на всё это обилие уроков и заданий, боюсь говорить о эмоциях человека не знакомого с программированием. Целю написания данной статьи в первую очередь является определить путь и указать на старт людям, желающим погрузится в разработку и создание программ и сайтов. Если вы уже имеете какой-либо опыт в программировании, то данный текст для вас будет абсолютно бесполезен. Основываясь на своём опыте и опыте моих коллег, я постараюсь максимально правильно выстроить порядок предложенных материалов, чтобы не забегать вперёд, но и не упустить ничего важного.
Почему я против книг
Громкий заголовок, правда? Давайте я раскрою его суть. Этим высказыванием следует руководствоваться только на самых первых стадиях обучения. Если вы учились или учитесь в университете, сейчас я говорю о технических специальностях, то вы скорее всего почувствовали на себе гнёт преподавателей по отношению к изучению теории. Я так же столкнулся с этой проблемой: то, что читали на лекциях, чаще всего не применялось на практике вообще, эти знания давали хорошую базу и понимание как работает тот или иной закон или механизм, однако открыв учебник и почитав, предложенную в университетской библиотеке, литературу, я с ужасом обнаруживал, что лекционные занятия это даже не вершина айсберга, это маленький кусочек льда, который еле выглядывает из под воды и временами уходит в глубь под напором волн. Получалось, что чтобы сделать что-то на практике, нужно было освоить столько материала, что не хватило бы и года для его изучения. Приходилось вычитывать какие-то выдержки из книг, искать в них решение конкретных задач при конкретных условиях. Подобные ситуации выбивали меня из колеи. А однажды, увидев около 10 книг толщиной более 300 страниц по PHP у своего друга, я понял, что с web’ом всё будет точно так же.
Подведём итог, к чему это всё было сказано: Я очень не люблю разработчиков которые отправляют новичков читать книжки, когда те подходят к первым с вопросами. В России у многих есть одна плохая черта — они никогда не пишут статей или книг и никогда не помогают кому-то для того чтобы научить человека, они это делают ради того, чтоб показать, что они знают больше вас. По этому моя рекомендация для начинающих разработчиков: не лезьте в книги не попробовав что-то сделать руками. Вы только отобьёте у себя желание заниматься программированием как таковым. В своё время, ещё ничего не зная о программировании, я открыл книгу «C++ для чайников» автора Стефана Р. Дэвиса. Сейчас многие скажут, что я дурак, но прочитав около сотни страниц, я осознал, что вообще ничего не понял из прочитанного. На тот момент мне было 13 или 14 лет и после этого я забросил программирование аж до университета. Чтоб не повторить моих ошибок, советую следовать простым и понятным инструкциям ниже.
Основные понятия, изучение основ и алгоритмов
Я не раз слышал как новичкам советуют выбрать Ruby как первый язык программирования. Не знаю на сколько этот совет оправдан так как я с ним не знаком. По моему мнению, лучший язык для изучения основ это C++. Перед тем как начнём, вам следует соблюдать одно единственное правило — никогда не читать без дела, а именно — всё, что вы прочитываете тут же повторяйте, не бездумно копируйте код из книги или сайта, перепечатывайте его сами и разбирайте каждую строчку и каждую запятую. На начальных этапах это отнимет уйму времени, но после вы будете благодарны себе за подобную дотошность.
Как я и сказал, я не буду грузить вас теорией, но кое-что почитать всё же придётся. Для начала следует разобраться в основных понятиях и алгоритмах.
- IDE — Руководство по установке и настройке среды разработки — в чём собственно вы будете писать программы. От себя рекомендую Visual Studio и Embarcadero RAD studio.
- cppstudio.com — Ссылка на подробное разъяснение что такое язык программирования, компилятор, операторы, циклы, исключения, как работают программы и проходит процесс их написания. По окончанию изучения вы сможете создавать несложные программы.
- Опять же cppstudio.com — очень полезная информация о структурах данных. Внимательно отнеситесь к этой теме так как в любом языке программирования без этого вы не уедете дальше вывода на экран слов «Привет мир!».
- Практика — множество практических заданий по теории, указанной в предыдущих двух пунктах. Настойчиво советую не пренебрегать выполнением. Чем больше практики — тем проще будет в будущем и тем легче будет восприниматься теория.
Выше указанных материалов вам хватит на пару месяцев изучения. Уверен, что при выполнении практической части будут возникать вопросы и что-то не будет получаться. Далее представлен список ресурсов, на которые вы можете обратится с вопросами. Чаще всего ответ вы получите в течении 1-10 часов.
- Cyberforum — Первый и основной портал, которым я пользовался при изучении C++.
- Toster — Русскоязычный портал помощи разработчикам. Разделён на темы по огромному количеству языков программирования и технологиям.
- Stackoverflow — Англоязычный портал по разработке. На момент написания статьи существует и русская версия.
В перерывах между написанием кода и задаванием вопросов на Тостере, будет полезно почитать (настоятельно рекомендую):
- Системы счисления — делайте упор на двоичную и шестнадцатиричную системы.
- Устройство ПК — если не знакомы с устройством компьютера, то вам сюда.
- Передача данных
- Память — компьютерная память, что это такое и какие виды.
- Оперативная память — обязательно к прочтению
- Что такое утечка памяти, Утечки памяти в C++ — Всё об утечках памяти и методах борьбы с этим. Полезно будущим Java и JavaScript программистам.
На этом, я думаю, вводную статью можно заканчивать. Изложенного материла хватит чтоб понять как работает программный код и научиться создавать несложные программы. Получив основные знания, вы сможете браться за учебную литературу более плотно. В следующей статье я расскажу о направлениях разработки, выборе языка программирования и соответствующей литературе по каждому из них. Я очень благодарен, если у вас хватило терпения дочитать статью до конца, надеюсь она была вам полезна.
comments powered by HyperComments