Естественно, все, что я описал — может не подойти для взращивания абсолютно грамотного и крутого программиста и архитектора, так как для этого нужны обширные базовые знания некоторой математики, логики и еще много чего, но для старта с нуля, чтобы понять, что происходит, должно хватить
Для того, чтобы начать программировать, неплохо бы прочитать от начала и до конца какую-нибудь базовую книжку по любому простому языку (basic, pascal), или любому другому на свой вкус, чтобы осознать, что же есть программирование, из чего состоят программы и как это все работает в простейшем приближении. Далее можно определить набор минимальных необходимых навыков для решения практических задач. Например, минимумом для создания сайтов обозначим знание html, css, JavaScript на базовом уровне и язык, на котором вы хотите писать. Тут уже можно порассуждать на тему того, на каком языке и с использованием каких технологий пишутся веб-сайты. Например, можно писать на PHP, можно писать на Java с использованием JSP (Java Server Pajes), или на C# или VisualBasic.NET с использованием технологии ASP.NET (Active Server Pages). Вообще говоря, создание сайтов — задача, требующая более обширных знаний на начальном уровне, чем, например, написание форм или консольных приложений под Windows. Этим я хочу сказать, что нужно еще понимать, как разворачивать свое веб-приложение и что для этого понадобится (к примеру, для разворачивания сайтов на ASP.NET нужен веб-сервер MS IIS, а Apache, на котором можно развернуть PHP-сайт, здесь не подойдет).
После выбора языка можно так же почитать какую-нибудь базовую книжку или простенькую документацию «для разгона», чтобы хоть как-то создать свою первую страницу HelloWorld!
Ну а дальше — изучать более глубоко язык (здесь помогут правильные книжки из магазинов), изучать дополнительные технологии вроде работы с базами данных, AJAX'а, читать про алгоритмы на досуге, посмотреть на различные JS-фреймворки, становиться мастером дивовой верстки, гуглить при возникновении проблем или обращаться к знающим знакомым
Все это, конечно, ИМХО
Если такой подход интересен — я могу порекомендовать какую-нибудь литературу для старта или даже дать несколько полезных ссылок.
Я там уже четыре года учусь. Правда, на математике — я теорверщик, а не на мат.обесе, но часто посещал некоторые их спецкурсы и имею хороших знакомых на этой специальности.
Поработав пару лет программистом я осознал, что действительно неплохо бы знать хорошему разработчику и с интересом обнаружил, что большинство из это читается как раз матобесам (про математиков я ничего не говорю, т.к. с трудом, но все же сознательно учусь на этой специальности и мне здесь нравится, я особый извращенец :) ).
Это совсем не проблема — все новые технологии читаются в спецкурсах, на которые вольны ходить все заинтересованные в данной тематике. Поверьте, система отлично работает.
Все перечисленные курсы читают на Мат-Мехе в СПбГУ, на специальности Математическое обеспечение и администрирование информационных систем (за исключением, разве что, генетики, мат-лингвистики, маркетинга, PR и что-то не помню там ПХП :) ), да еще и много дополнительных интересных спецкурсов и проектов + бонусные лекции Microsoft, Intel, Sun и т.д. Кстати, суровый матан, алгебра, геометрия, диффуры, матлогика, дискретный анализ, теорвер и даже матфизика присутствуют на первых трех курсах в полной мере. Основные гуманитарные предметы тоже не забыты. Так что, описанный идеал есть, прошу прощения, если кого-то повторил — еще не читал все комменты.
Приведение экспоненциального ряда к линейному - стандартный метод в статистике. Не понимаю, почему в облаке тегов это редко применяется, ведь такая визуализация выглядит гораздо удобнее. Поставил бы плюс, если б мог - нужно нести мудрость в массы :)
Как правило, на таких олимпиадах практически единственное решение задачи - наиболее оптимальное по скорости, т.к., насколько я помню, входные данные так подгоняют под выделяемые вычислительные мощности и выделенное время, что только самое быстрое решение и проходит.
Уязвимости есть во всех системах. Просто стимула особого нет пока - есть невероятно большое количество и серверов и рабочих станций в сети под управлением виндовса, в котором гораздо больше багов и которые закрываются гораздо медленнее. Вот и не пишут.
После выбора языка можно так же почитать какую-нибудь базовую книжку или простенькую документацию «для разгона», чтобы хоть как-то создать свою первую страницу HelloWorld!
Ну а дальше — изучать более глубоко язык (здесь помогут правильные книжки из магазинов), изучать дополнительные технологии вроде работы с базами данных, AJAX'а, читать про алгоритмы на досуге, посмотреть на различные JS-фреймворки, становиться мастером дивовой верстки, гуглить при возникновении проблем или обращаться к знающим знакомым
Все это, конечно, ИМХО
Если такой подход интересен — я могу порекомендовать какую-нибудь литературу для старта или даже дать несколько полезных ссылок.
Последние — так вообще тесты сплошные
Поработав пару лет программистом я осознал, что действительно неплохо бы знать хорошему разработчику и с интересом обнаружил, что большинство из это читается как раз матобесам (про математиков я ничего не говорю, т.к. с трудом, но все же сознательно учусь на этой специальности и мне здесь нравится, я особый извращенец :) ).