Как я учился программировать, или как лишится личной жизни за 3 шага
На написание этого сообщения меня сподвиг пост в блоге Lexpable, о его попытках обучения С++.
Я ужаснулся от того, что в интернете кто-то не прав и решил, коротко описать, то как я учился и учусь программировать.
Во первых, я Вам рекомендую определится для чего Вам это надо. Если Вы хотите писать игры — то забудьте об этом учтите, что написать змейку просто. Написать, что-то более менее красивое\работающее очень сложно. Это не месяцы учебы, это годы. Годы программирования по 3-4 часа в день. Если Вас это не пугает и Вы готовы потерять регулярный секс с большегрудыми блодинками большую часть Вашей жизни то вперед.
Эти зачеркнутые надписи выглядят очень глупо правда?
Во первых программирование очень широкая область. Описать даже половину применений очень сложно. Для каждой области требуются свои навыки и умения. Я изначально хотел рассказать о типах языков программирования, чтобы показать какой я умный и образованный, но этого тоже делать не буду, ибо помочь, это Вам ничем не сможет. Хотя если кому то будет интересно могу написать отдельную статью.
Но я(Так уж и быть), расскажу о самых популярных языках программирования с которых Вы можете начать. И расскажу о тех учебниках, которые использовал при их изучении.
1. ССи. Низкоуровневый язык программирования. Для новичка ему очень просто обучится, но очень сложно программировать.
Что-то крупное на нем пишут редко. Собственно я бы не рекомендовал начинать с него, но если Вы хотите просто посмотреть, что такое програмирование, то это Ваш выбор.
Самая интересная книга по нему это:
www.ozon.ru/context/detail/id/2480925/
Но у нее есть несколько минусов. Во первых эта книга очень старая и в ней не учтены некоторые изменения, которые произошли с языком. Но это не принципиально.
И она написана очень академичным стилем. Примерно, как учебник по высшей математики. Если для Вас читать такое трудно, то есть:
www.ozon.ru/context/detail/id/966202/
В ней описаны некоторые основные алгоритмы и рассказано все довольно подробно.
Увы больше книг на русском о С, я не видел и посоветовать не могу.
2. С++
Язык, который вырос из С, путем переработки и добавки в него ООП
Приятный язык, но безумно нагруженный и поэтому сложный. Для новичка, как мне кажется слишком сложный и не понятный. Но это один из самых востребованных языков в России. Поэтому я дам пару советов, касательно литературы.
Во первый это снова Герберт Шилдт:
www.ozon.ru/context/detail/id/1498452/
Очень удобный справочник, я с удовольствием им пользуюсь.
Альтернатива:
www.ozon.ru/context/detail/id/2988768/
Очень подробная книга. Несмотря на это читается достаточно легко.
Ну и есть еще книга от создателя языка Бьярне Страуструпа:
www.ozon.ru/context/detail/id/85559/
Новичкам, особенно тем, кто не в курсе, что такое программирование и с чем его едят, читать ее сложно и бессмысленно. Но как вторая книга, она смотрится прекрасно.
Недавно вышла новая книги Бьярне Страуструпа, в этот раз, как раз для «newbie»:
www.ozon.ru/context/detail/id/5403053/
Русское издания я если честно не видел, видел только электронное английское. Примерно 100 первых страниц описывается, что такое программист и чем он занимается. В целом довольно интересно. Другое дело надо ли Вам это? Интересно ли? Если нет… То вообще надо ли Вам учится этому? Каждый должен решить сам. Наверно для тех, кто никогда не программировал это самая полезная книга. Единственное может отпугнуть ее стоимость. Я так и не собрался с силами и не заказал на Amazon. Наверно сделаю себе подарок на новый год.
3. Python(Ruby, PHP, Perl, JavaScript, ....)
Скриптовые язык. Статья в википедии на тему скриптовых языков странная. Английский вариант лучше.
Почему они вместе? Потому, что они практически взаимозаменяемы. Мне больше нравится Python. Учится ему новичку одно удовольствие. И так считаю не только я, но и ребята из MIT(Один из самых уважаемых технических универститетов в мире), которые читают на нем лекции. Проблема всего одна, учебников на русском по Python нет.
Вернее есть, но они либо не актуальны, либо совершенно не читабельны.
Вот неплохая книга:
www.ozon.ru/context/detail/id/4878060/
Но издание очень старое и сейчас его нигде не купить. Fail.
Актуальное издание на английском:
oreilly.com/catalog/9780596513986
Но на русский оно не переводилось.
У Python есть еще прекрасный гайд для начинающих:
wiki.python.org/moin/BeginnersGuide
Отличная возможность изучить английский язык. Он Вам все ровно понадобится. Хотя бы надо уметь читать и писать на нем.
4. Delphi, Pascal.
Pascal появился почти одновременно с C. Изначально планировался, как академический язык для обучения программированию. Позже появилось его развитие Delphi(В нем добавили ООП). Сейчас это все загнулось и не развивается, учится по нему я бы в любом случае не рекомендовал.
5. С#, Java.
Я не программирую на этих языках и посоветовать литературу не могу, увы. Довольно популярные языки и в целом очень приятные. Они появились относительно недавно и поэтому очень хорошо отражают современные концепции программирования. При этом довольно минималистичны. Если найдете хорошую литературу, то это Ваш выбор.
И так. С языками более\менее разобрались. Но увы выучить синтаксис языка мало. Это тоже самое, что научится ездить на машине только прямо и не уметь сделать даже простейший разворот. А мы же стремимся к победам в формуле один.
Что нас ждет дальше? Это зависит от пути, который вы выбрали. Кроме Computer Science, Вам наверняка потребуются смежные области. Яркий пример математика. Она нужна практически всем программистам хотя бы в минимуме. И за словом математика, скрывается целый комплекс наук, таких как: теория вероятности, статистика, теория чисел и т.д. Основы электроники не помешают, хотя бы рамках информатики.
Ну вот вы выбрали язык, прочитали по нему нескольки книг, написали несколько программ, окончили университетский курс математики… Ваша борода(Накладная в случае если Вы не самец) уже достает до пояса и только Вы хотите стереть пот со лба, как выясняется, что это еще не все… Вас еще ждут целая куча книг по алгоритмам(Часть будет в курсе математики), тонны документации по библиотекам, тысячи новых открытий в области математики, физики, астрономии, физиологии особей противоположного пола(А в особо запущенных случаях даже и своего!) и т.д.
[ПАФОС]Путь программиста — это путь саморазвития и ежедневного роста личности[/ПАФОС]
Фуф… Это было сложнее, чем я думал. Для тех парней со стальными яйцами или девушек со стальными… ээээ яичниками? Которые прочитать столько безграмотного текста я приготовил подарок, да конечно Вы можете сказать, что такого полно в интернете. Но я столько выбирал и так старался! Да и потом она прекрасна… Это нечто вроде, того, как смотреть на картину в эрмитаже… Что?! ЧТО?!?!
За бортом остались:
1. Функциональные языки(Lisp, Haskell, ....). Ибо мало используются.
2. Графические библиотеки(OpenGL, DirectX). Их можно смело приписать к остальным библиотекам.
3. Очень много всего.
Получилось немного сумбурно, но для статьи которая писалась 40 минут, помоему окей. Да и где Вы еще найдете, столько плоских шуток на единицу текста.
В любом случае спасибо за внимание.
Лучшие комментарии
Сайты в общем случае разрабатывать проще. Если Вы хотите такой сайт, как по ссылке, то достаточно будет взять готовую CMS(Система управление сайтом. Что-то типа программы для создания сайта. Уметь программировать не надо), например Danneo и заказать под нее дизайн. Ну если уж нужна будет, какая то особенная функциональность заказать еще и ее(Т.е, Вам добавят функциональность в готовую CMS). Сайт по Вашей ссылке выбрал другой путь, там вероятно самописная CMS и сделана она к тому очень плохо. Дизайн с технической точки зрения сделан совершенно не профессионально.
Точную сумму за такой сайт не назову, так как все зависит от наглости\раскрученности брэнда исполнителей. От 200$ до бесконечности.
Но если взять готовую CMS + заказать к ней дизайн, вполне можно уложится от 80$ до опять же бесконечности. И сайт будет в 100 раз лучше.
А вот если писать свою нормальную CMS, то это месяцы разработки и несколько тысяч долларов(Примерно, может и меньше я не знаю). Сейчас так делают либо для крупных проектов, либо те кому не куда делать деньги.
+еГ
++
Мало того, я ж еще и железнячник в том плане, что умею проектировать всякие мигающие и не только штуки (мыкрапрацессарные устройства)
Хорошие программисты всегда нужны. Хорошие кодеры тоже никуда не денутся.
Годы программирования по 3-4 часа в день.Это из 24х то. Вам не хватает времени на блондинок? ;•) Вот то, что программисты всегда учатся — это да)
Кстати, книги, о которых в посте написано, они использовались в живом виде?)
Проблема всего одна, учебников на русском по Python нет. Вернее есть, но они либо не актуальны, либо совершенно не читабельны.Лутц? Не?
Сколько стоит заказать в России вот такой вот простенький сайт? www.valeo.lv/index2.php Заказ на фирме. Хотел бы цены сравнить.
Сейчас это все загнулось и не развивается, учится по нему я бы в любом случае не рекомендовал.О нет, зачем я учил его!
А статья очень хорошая. Теперь я наверно буду по-новому пути следовать, по пути Явы и С)
П.С. Картинка отпад!
Да и собственно сейчас в этой профессии много и девушек, они кстати в отличии от парней долго встречаются\женятся только на себе подобных, т.е на других программистах или людях из смежных научных областей. Исключений я на данный момент не видел.