Серьезно решил освоить профессию программиста, для чего было перерыто огромное количество обзорного материала, чтобы иметь представление о процессе разработки, ее перспективных областях и пр.
На данный момент я представляю себе это следующим образом:
Основные направления разработки:
1. Web.
2. Desktop.
3. Системы (ОС, embedded и пр.).
Необходимые знания и навыки:
1. Инструменты разработки (языки программирования и верстки, IDE, системы контроля версий и т.п.).
2. Фундаментальные знания:
- алгоритмы (поиск, сортировка и пр.), анализ алгоритмов,
- структуры данных (линейные структуры, графы и пр.).
3. Прикладные знания:
- паттерны проектирования,
- платформы, под которые создается ПО,
- фреймворки.
Для меня наиболее интересным направлением является web-разработка, как front- , так и back-end, начал учить языки C# и JavaScript (знаю базово синтаксис, могу решать крайне простые задачи), параллельно читаю Макконнелла (чтобы получить общее представление о процессе разработки).
Вопрос: как правильно изучать программирование? А именно - не упускаю ли я какие то моменты, требующие внимания, в каком порядке что учить, а самое главное - как получить хорошую практику (совет "участвуй в opensource" - слишком расплывчатый). Было бы хорошо получить именно упорядоченный список действий.
Цель: получение теоретических знаний и практических навыков в объёме, достаточном, чтобы устроиться на должность web-программиста (junior) и хорошо себя показать (а не как говнокодер-хеллоуворлдщик).
Дополню мысль - проблема не в том, чтобы найти нужную информацию, курс, книгу, а в том, как при таком обилии доступной информации понять, какая действительно нужна, выбрать максимально эффективную методику, не учить лишнего (малополезного на начальном этапе).
Из тех кто "решил освоить профессию программиста" редко получается что-то выше чем говнокодер-хеллоуворлдщик.
Программирование - это все время "освоение". Этим нужно жить. Иначе вы - просто code-monkey, который "освоил" как писать говносайты с посещаемостью в 10 человек, и пишет их, пишет, пишет... "Профессия" обязывает.
Чтобы устроится на должность web-программиста (junior) достаточно знать основы - ООП, синтаксис языка, etc, и уметь решать тривиальные задачи типа "достать с базы", "отправить форму", короче базовые примеры из книги. И все.
А дальше - программировать, программировать, программировать. Много. Тогда и будет толк.
Отвечаю спустя более чем год. Поработал сперва php code monkey, потом немного в веб-студии, теперь в хорошей конторе полноценным junior java разработчиком, с хорошей командой и грамотным workflow.
Согласен с Freika. Php надо знать и JS в первую очередь для веб. Популярные языки, информации и решений по ним море. По большей части программирование сводится к вводу запроса в поисковик, и просто копипаст решений в свой код.
Лично я C# пытался освоить, но так его и не понял, решения на js и php оказались проще. Как я понял, это язык лучше если надо углублённо программировать - в нескольких потоках, ssl, приложения с windows GUI, и т.п. Для создания сайтов, плагинов под CMS или javascript плагинов для браузера, скриптов-парсеров... - это не нужно.
И обязательно нужна мотивация. Без неё подобные обзоры - пустая болтовня, которая ни к чему не приведёт. Например: надо создать свой сайт, беру CMS тот же wordpress, трачу 1-2 дня на поиск какого-то плагина, подходящих нет, ввожу вопрос в поисковик - выдаёт решения в основном все на php - и вот тогда и начинается изучение. Ибо надо, и надо конкретно сейчас.
@Freika
О боги.
ASP.Net MVC == C# для веба, где тут хардкор? Все веб-ориентированно, просто и красиво. Если модель MVC не слишком понятна, то есть обычные ASP.Net Web Forms, но лучше таки разобраться в MVC, там нет ничего сложного. Зачем вы пишете о том, в чем не разбираетесь? @baal1979
Если вы пытались и не поняли, то может проблема не в языке, а в вас? Ваши выводы про углубленность в корне не верны.
@kynisa тут что, сборище флудо-троллей? :) извиняюсь.
один обзывает "копипастером" за копирование кода из комьюнити, опенсоурс, и учебников, осуждает, может ещё в суд подать хочет? :)
Вы ищете во мне проблемы, за то что у меня есть мнение об одном из множества языков, не подошедшем к моим задачам. Ещё и богов призываете. :) В ком проблемы?
Знаете, "о вкусах не спорят". Человек спросил мнения. Мнения высказываем. У всех разные взгляды. Это не значит что весь мир неправильный, а вы правильный. Нет какого-то кодекса для всех, и вы не судья осуждать.
Кстати, когда-то в 90-х и конце 80-х я знал хорошо язык ассемблера. А начинал с языка для программируемых калькуляторов. У них было несколько десятков байтовых регистров, в которые можно было записать программу. Потом кодинг на zx spectrum. Наверняка эти языки покажутся вам сложными. А какие замечательные были языки в конце 90-х... у меня диски были с ними десятки, многие из которых не прижились и давно умерли. А какие сложности и глюки были в первых версиях Cи... Прелесть...
Занимаюсь этим сейчас? - нет. Зачем мне это, если оно не подходит для моих задач. Понимаете, всё относительно и преходяще. :)
И не надо меня грузить вашей мерой углублённости.
@kynisa Ввёл в поиск запросы: "cms на C#" и "cms на ASP.NET". Результаты несколько летней давности, и то со смехом.
Как понял, единственной живой cms на C# является DotNetNuke. Пишут что тормозная, но не знаю.
Смотрим в Яндексе статистику сайтов рунета по используемым на них cms за 2011 год. safesearch.ya.ru/replies.xml?item_no=120 DotNetNuke занимает 1% популярности. 87% - wordpress и joomla на php. Полдюжины самых популярных cms для интернет-магазинов которые видел - тоже.
Соответственно, в области веб-мастеринга php надо знать. Для десктоп-приложений, согласен, наверно ASP.NET C# то что надо.
Вообще, это холивар, Microsoft против всех: ASP vs Php, C# vs Java, JScript vs Javascript, Silverlight vs ... и т.п. habrahabr.ru/post/90139
@baal1979
никто вас не троллит. Вы просто пытаетесь судить о вещах, в которых ничего не смыслите. Я постараюсь прояснить.
C# - язык. ASP.NET - технология для создания веб-сайтов. Вы правда считаете что для декстоп-приложений технология для создания веб-сайтов это то что нужно? У меня для вас плохие новости...
Да, php популярней, готового больше, с этим глупо спорить. Но говорить что C# для веба - это хардкор и не подходит - это обманывать людей. Это просто, вакансий под это достаточно. Вопросы?
Теперь о CMS. "Взял CMS, облепил плагинами, сайт готов" - это не совсем веб-мастеринг. Это клепание говносайтов. И еще - я не знаю php, но могу написать сайт с нуля на ASP.Net. Я не могу назвать себя веб-мастером? Серьезно?
@kynisa Я привёл запросы для поисковика выше. Вот одна из ссылок в топе результатов: www.sql.ru/forum/813942/cms-na-asp-net Там какраз человек говорит тоже что вы, что он за час может на ASPnet слепить интернет-магазин. Это вызывает у всех улыбку.
Также привёл ссылку где в комментариях сравнивается C# и PHP, и методы их совместного использования.
Вы так торопились выискать глупости в моём сообщении, что пишете будто я советовал ASPnet для десктоп-приложений. Перечитайте, я написал там рядом "C#", подразумевая что это веб-десктоп-приложение.
Если вакансий предостаточно, притом что 99% сайтов в интернет стоят на php. Тогда замечательно, могу вам только позавидовать.
@kynisa Касательно постоянного поминания слова "говносайты". Всё относительно. Например склёпаный на конвеере говносайт может быть дорвеем-сателитом, и давать трафик и деньги. Время - деньги, клепать их быстро и просто.
И для кого-то какой-либо сайт - говносайт, а для кого-то нормальный. Например, по моему убеждению Mail.ru является говносайтом и помойкой. Смотрел интервью с основателем LiveInternet, он тоже так считает, но называет его цивильней - "франкенштейном, не для умных, для домохозяек и блондинок". Но при этом говорит что его прибыльность и конверсия с рекламы в нём едва не больше чем у Яндекса, и популярность едва не больше чем у ВКонтакте, а если ещё учеть принадлежащий mail.ru Одноклассники которые равны с ВКонтактами... то вот тебе и "говносайт от сраной Рашки". :)
@kynisa Хех. Если следовать вашей логике что cms обвешанная плагинами - это говносайт. Значит когда вы устанавливаете браузер, и ставите к нему плагины - это говнобраузер? А если вы ставите Windows и облепливаете утилитами приложениями - это говновиндовс? Что-то у вас говно везде... :)
Вообще-то плагины - это фрагменты кода, чтобы не изобретать "с нуля" велосипед, как вы предлагаете. ASP.net он же тоже с расширениями, и для C# библиотеки функций есть - это тоже говнотехнологии? Или я опять ошибаюсь? :)
@baal1979
Если у вас в интернете 99% сайтов на php, а расширения и библиотеки функций это то же что и плагины к cms - нам больше не о чем разговаривать. Извините.