Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович

Программа за 100 шагов / Шаг 1. Желанные программы.

Hide

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Формулировать мечты и цели.
Трудности: Сформулировать этот список.
Ну, честно говоря, список моих программ - это изобретение велосипеда, но почему бы его не усовершенствовать?:) У меня получился список из игр, прикладных программ и ПО. Итак, в порядке написания: Игры: 1) Змейка; 2) Червы (да-да, может, и странно, но карточные игры я всегда мечтал написать); 3) Сапёр; 4) Морской Бой; 5) Морской флот; 6) Кто хочет стать миллионером? 7) Угадай мелодию; 8) Поле Чудес (нет, не "Виселица", а именно со всеми действиями, как в Поле Чудес); 9) написать мод к игре Сталкер; 10) Создать шахматы аналог "Шахматная планета"; 11) Написать хоккейный симулятор; 12) Написать мод к игре Мафия; 13) Написать мини-футбольный симулятор; 14) Создать свою стрелялку. Из прикладных программ: 15) Говорящие часы; 16) Программу для зарядки глаз, вроде EyeLeo; 17) Математическую решалку, причём не только там, где интегралы, а и двойные, тройные; 18) Решалку по физике; 19) Тест-программа, причём и с вопросами на ввод ответа, соответствия и развёрнутый ответ; 20) Ускорение программ вроде CleanMaster; 21) cвой вирус; 22) свой АНТИвирус; 23) программу для работы с БД; 24) Свою собственную БД; 25) Программа-восстановитель как Recover; 26) Программа, которая сама пишет программы; 27) свой GPS навигатор; 28) Программу, которая жесты глухонемых переводит в текст; 29) Программу-пианино; 30) Голосовую программу, которая могла бы правильно переводить тексты. Ну и бонусы 31) Графический редактор вроде Фотошоп; 32) Среду разработки; 33) Свою операционную систему. Пока это мечты, но постепенно двигаемся :)
Научился: Написать свои желания на бумаге - это хороши придумано. Сам будешь уже точно знать, что ты хочешь и в каком направлении двигаться дальше. Только бы еще это все реализовать или хотя бы бОльшую часть из этого. Но уровень знаний не позволяет. Итак, посмотрим, что бы мне хотелось (мне самому интересно): 1) Программа-анализатор для спортивных ставок (в нее буду вставлять результаты матчей, характеристики игроков, а программа будет анализировать и прогнозировать игру. Строить графики, в каком состоянии находится соперник, динамика последних игр;. 2) Какой-нибудь простой файловый менеджер (где можно будет, удалить, создать, переименовать, добавить папку, поиск по маске, просмотр файла); 3) Недавно создавали секундомер со списком дел, интересная задумка. А можно написать программу-напоминалку. Записываешь в нее список дел на сегодня, неделю, и она тебе напоминает об этом; 4) Менеджер паролей (надежный, с защитой от взлома). Когда долгое время не обращаешься к чему-либо, забываешь пароль, и было бы удобно все свои логины и пароли систематизировать и хранить в одной программе, зная, что если даже злоумышленник, проникнет на твой компьютер и получит доступ к этой программе, он все равно не сможет ее взломать; 4) Программа для распознавания капчи (я искал в интернете материал, но ничего толкового нет, программа будет на основе нейронный сетей. Пусть будут решаться не все капчи, а часть, но если я САМ ее напишу, я буду очень рад за себя); 5) Программа-робот (как в фильме "Железный Человек", программа Jarvis, искусственный интеллект. Я бы с ним разговаривал, давал задания (к примеру, скачай мне то-то, найди мне то-то, открой то-то и запиши), а он бы выполнял. С понимаем русской речи (в интернете есть, но только говорить нужно на английском языке). С возможностью саморазвития и самообучения; 5) Электронный дневник (можно было бы систематизировать записи, записывать о том, что полезного сегодня сделал, опять-таки с возможностью защиты от несанкционированного доступа. Мне дневник нужен для того, ведь скорость набора на клавиатуре у меня будет побыстрее, нежели я буду писать ручкой на бумаге, а скорость мысли настолько огромная, что не всегда получается ее уловить. И тогда, при наборе на клавиатуре своих мыслей, процесс шел бы намного быстрее); 6) Программу для заработка денег (она бы ходила по сайтам, разгадывала бы капчу, в случае обрыва связи или непредвиденной ситуации, могла бы анализировать этот инцидент, и благополучно из него выходить); 7) Программу-макрос (для платформы андроид, задаем действия, количество повторений и было бы предусмотрено много нестандартных ситуаций и путей их решений - к примеру, обрыв связи, перезапуск смартфона, появление рекламы и т.п.); 8) В игры я не играю, как-то уже вырос из этого. Была игрушка на сайте mail.ru. Может кто помнит, называлась "Бомберы". Года 3 (может чуть больше) эту игру закрыли, а это была одна из немногих игр в те времена, где я умел играть и мне нравилось это делать. Так вот (это, наверное, моя главная мечта) я хотел бы написать эту игру и запустить в сеть, то есть возобновить деятельность этой игры. А про что игра, я так и не сказал. Все вы, наверное, играли в игру "Бомбер-мэн". Ходит человечек по полю, ставит бомбочки, взрывает ящички. Цель игры - убить всех монстров на карте и найти дом. Когда взрываем ящички, иногда попадаются бонусы (увеличение скорости передвижения, увеличение радиусы взрыва, дополнительная бомба и т.п.). Так вот, игра "Бомберы" чем-то напоминает игру "Bomber Man". Только каждый игрок управляет не человечком, а пушистым зверьком (пушистиком) или непонятным роботом (забыл, как он называется, не суть важно) и цель игры состоит в уничтожении соперника. Всего могут играть до 4-ех игроков, у каждого игрока по 3 жизни (наверху полоска жизни), чтобы тебя убить, нужно было 3 раза попасть бомбочкой. Так же на карте, под ящиками, есть бонусы (скорость, радиус взрыва и бомбы). Имеется возможность покупать различные бонусы за реальные деньги. Но покупать можно ограниченное число раз за игру. И я вот хотел бы реализовать такую классную игрушку. Во-первых, это еще было прибыльно (покупка бонусов за реальные деньги), а, во-вторых, самому написать такой проект это нечно! Супер по-моему. Может кто откликнется мне помочь, я был бы непрочь поработать в команде. 8) Программа, которая записывает твою речь и переводит в текст (конечно же с поддержкой русского языка); 9) Нормальную программу для чтения текста с поддержкой русской речи (а не как читают различные русские голосовые движки, слушать невозможно. А это программа бы правильно ставила ударения, делала бы паузы в нужных местах, ускоряла или замедляла темп в зависимости от ситуации. Было бы неплохо предусмотреть возможность самообучения); 10) Как-то раз нашему студенту задали написать программу с использованием самообучающегося дерева решений, потом чтобы можно было его (дерево) перенести на другой компьютер. Сейчас немного поясню, что это за дерево решений. Есть такая игры "акинатор" (студенты же вечно во что-нибудь играют), цель игры - угадать задуманное тобой слово путем задавания вопрос. К примеру, мы задумали слово "стол". Программа спрашивает: "Это живое?", а мы можем отвечать только "да" или "нет". Мы отвечаем "нет". Далее программа спрашивает: "это мебель", мы - "да" и т.д. То есть в базу знаний программы заложено дерево решений - что спросить дальше в зависимости от предыдущего ответа. Поиграйте в игру "Akinator", Вы лучше поймете о чем я. И вот мне бы тоже хотелось написать такую игру или наподобие такой игры, чтобы программа могла отгадать практически любое загаданное слово. А что с тем студентом, спросите Вы? Он конечно написал, даже сделал игрушку под Андроид. Сейчас он учится в престижном университете в Казани. Так к слову, стоимость обучения на платной основе составляет 2,5 млн рублей за 4 года. Студент этот прошел собеседование (заочное, а потом очное) и его приняли на бюджетную основу. Молодец, парень, что сказать. Я немного отвлекся, идем дальше. Мне кажется, что тридцать программ, это как-то много. Напишем часть, потом реализуем эти цели, поставим новые и будем к ним двигаться. Ну раз сказано тридцать, так тридцать. Я уже не буду так подробно останавливаться на каждой программе, а то я так и к вечеру не управлюсь, а еще дела есть. 11) Вообще, любую игрушку с ИИ (искусственным интеллектом). К примеру, тот же самый морской бой (анализ расстановки кораблей, анализ удара следующей цели. Только написать это хотелось бы самому); 12) Крестики-нолики (можно и крестики-нолики 5 в ряд, снова с искусственным интеллектом); 13) Игра 2048 по сети (каждый играет на своем компьютере, а не на одном два игрока); 14) Вообще хотелось бы написать не саму игру 2048, а ИИ (искусственный интеллект), который бы сам мог набрать 2048 (а то и больше) очков в этой игре. Я встречал в интернете такие программы. Но они работают очень медленно (по крайней мере, у меня но ноутбуке), наверное, многое зависит от "начинки" компьютера. Каждый ход у меня выполнялся по 3 секунды, а теперь нетрудно посчитать, что на сбор 2048 очков примерно уходило около 1 часа, а то и больше. Как мне объяснили, скорость работы программы будет со временем уменьшаться, так как программа анализирует всевозможные ходы. Да и шанс набрать 8192 невелик, всего 50%. Но мне бы хотелось написать программу, чтобы работала с достаточно высокой скоростью, пусть даже и с невысоким процентом набора определенного количества очков. 15) Честно говоря, уже не знаю, что писать. Все, что хотел уже написал. Может быть программу для решения каких-нибудь несложных уравнений. Выдавался бы полный ход решения, по шагам. К примеру, нахождения определителя матрицы по методу Гаусса; 16) Может что и с музыкой связанное. К примеру, программа подбирала бы тебе песни, то есть составляла бы плейлист, в зависимости от настроения. Выбираешь в ней свое настроение, а программа тебе ищет аудиотреки под твое состояние; 17) Какую-нибудь книгу сделать, например, кулинарную. Где было бы собрано очень много рецептов, начиная от самых простых и заканчивая самыми сложными. Программа бы поддерживалась на многих операционных системах, в том числе и на Андроид; 18) Какую-нибудь карточную игру. К примеру, дурак подкидной. Реализовать игру с компьютером. Опять-таки с ИИ; 19) Программу для тренировки памяти (несколько уровней сложности, разнообразные упражнения. К примеру, на запоминание цветов, последовательности слов, визуальное запоминание картинок); 20) Программу, в которую можно было сгрузить текст из многих источников. Или даже она сама бы скачивала тексты из всего, что только можно. И потом, путем замены, рерайта получался бы новый текст с высоким процентом уникальности. Очень было бы полезно для написания текстов на заказ (рерайтинг в частности); 21) Хотелось бы разработать правильную базу данных (БД). Сейчас поясню, что значит "правильную". В университете у нас есть такая дисциплина - Базы данных (БД). Но нам показали самый минимум, к примеру, как связать БД и программу. Мы просто "кидали" на форму таблицы, созданные в MySQL Server и все на этом. А хотелось бы научиться красиво оформлять форму, сделать возможность поиска, удаления, изменения записей с последующим сохранением в БД. Также хотелось бы правильно составлять БД (выделять основные сущности, правильно организовывать связи между таблицами). В общем, хотелось бы написать программу, которая бы отвечала моим требованиям; 22) Честно говоря, я больше и не знаю, чего мне хочется. Итак немало получилось. Немного еще поболтаю. Вообще, всё, что бы мне захотелось, я бы вложил в программу (я писал о ней выше) Jarvis. Это ИИ с возможностью самообучения. Захотелось бы мне заархивировать данные, мне достаточно попросить моего помощника (Джарвиса) сделать это. Захотелось поболтать, пожалуйста. Узнать новое - пожалуйста. Он бы меня учил даже (как правильно запоминать информацию, рассказывал бы про открытия). Да, получается лень - двигатель прогресса. Мне лень взять книжку и прочитать о чем-то, лучше попрошу своего приспешника (как в мультфильме "Мегамозг") рассказать мне об этом. А Вы только задумайтесь, как это классно! Да, пускай мой Джарвис не мог делать все (я не про то, что "кофе варить он не умеет", к примеру, нет - я про другое), писать программы приходилось бы мне. Но мелкие рутинные дела я бы мог на него "взвалить". Напишу еще что-нибудь, но основное, что я хотел бы реализовать, я написал выше (а самое основное я тогда ниже выделю, что для меня самое главное из этих целей). 22) Игра "Змейка" (ползаем по полю, кушаем яблочки, иногда появляются бонусы); 23) Игра раньше такая была, наподобие арканоида. Внизу ракетка, а наверху стена из кирпичей. Нужно, отбивая шарик, разбить всю стену. По мере исчезания кирпичиков, появляются бонусы (к примеру, увеличение мощности шарика, увеличение длины ракетки и т.п.). Вот хотелось бы реализовать такое, в игре конечно же не один уровень; 24) Если же брать бизнес-аналитику. Я в экономике не силен. Программу на прогнозирования курса валюта составлять глупо, этим должны заниматься люди. Это немного другая тема, как-нибудь об этом поговорим, если интересно Вам будет. Можно написать программу "Конвертер валюты". В ней была бы самая актуальная информация о текущем курсе основных валют (то есть информация скачивается из интернета), можно было бы конвертировать абсолютно любую валюту в другую. Можно и подумать про сохранение полученных данных, если кому-то это будет нужно; 25) Написать программу, с помощью которой можно было бы контролировать абсолютно все электрические приборы дома. Что-то наподобие "умного дома". Можно было бы отслеживать напряжение в каждой розетке, ее ток, в общем основные характеристики. И при подключении устройства в сеть, можно было бы увидеть какую нагрузку этот прибор оказывает и в дальнейшем, можно было предотвратить перегрев и выход из строя проводки. А кстати, весьма дельная мысль, как Вы считаете? Конечно, нужно ее еще развить, но задумка, на мой взгляд, весьма неплохая. 26) Есть же вертолеты на пульте управления или машины, тоже на пульте управления. Написать программу, с помощью которой можно было управлять этими игрушками. Я имею в виду, не только вперед-назад, влево-вправо, а чтобы были какие-то дополнительные характеристики: число оборотов двигателя, включить серво-привод на каком-то колесе и т.п.; 27) Программа для слежения за состоянием здоровья. Она была бы полезна тем людям, которые хотят быть здоровыми. Насчет функционала особо мыслей нет. Но к примеру, можно было бы вводить в программу, сколько уровень сахара в крови и при его повышении выдавался бы сигнал, что нужно предпринять какие-то меры. И можно включить напоминание о приеме лекарств в нужное время; 28) Программа для людей, ведущих активный образ жизни. В основном для людей, занимающихся спортом. К примеру, в программе можно было бы выбрать пищу, рассчитать ее калорийность. Еще показывалось сколько калорий сжигается при занятии определенным видом спорта в течение определенного промежутка времени. 29) Программа-самоучитель. В программе можно было бы найти любую информацию на задуманную Вами тематику. К примеру, Вы собрались построить дом, но не знаете с чего начать. А в программе, было бы расписано все, "от А до Я", - какой кирпич выбрать, как залить фундамент и т.п. И так на любую тему. Все было бы систематизировано и ненужно было бы лезть в Интернет и искать информацию; 30) И, наконец, тридцатый завершающий пункт. Хотелось бы создать свой интернет-магазин. Я с сайтостроением совсем не знаком, не понимаю, что и как работает. А вот свой продающий интернет-магазин иметь было бы неплохо. ------------------------- Как я и обещал выше (перечислить, что для меня основное"). Итак, мне бы хотелось создать игру "Бомберы" (это вполне реально, к тому же, снова повторюсь, очень прибыльное дело), сделать виртуального друга Джарвиса, которому можно было бы поручить практически любое дело. А остальное, на мой взгляд, можно будет написать, если понадобится. Сейчас поясню. Я собираюсь работать на дядю (не исключаю такой вариант по крайней мере). И что скажет заказчик, то я буду делать. Скажет: "напиши мне, морской бой" (это я как пример), я сделаю. Что захочет заказчик, то я и буду делать. Будут его идеи, а моя реализация. Вообще хотелось бы писать программу для себя, под свои нужды. Нужна мне программа для распознавания образов - сел, сделал.
Трудности: Устал я набирать текст. Слишком я подробно пишу. Да и 30 программ с трудом придумать. Основных у меня 3-5, ну 10. А потом, по мере, набирания опыта, возможно, захочется что-то еще написать.
Пока писал, меня интересная идея посетила. Не обижайтесь, Евгений Витольдович) А что, если Евгений Витольдович, возьмет и воплотит в жизнь некоторые из наши идей. Каждый пишет то, что он хотел бы реализовать. Но ввиду нехватки знаний, времени или еще чего-нибудь это сделать не может, или он (она) только начал осуществление своей мечты. А тут, бац, Евгений Витольдович со своим багажом знаний, умений и связями (я к тому, что есть такие проекты, где одному реализовать неподсильно). Немного отступления, снова. Я всегда один, у меня нет единомышленников. В группе у нас никто не умеет программировать. Да, представьте себе, третий курс, он НИ РАЗУ (!) за все время обучения не написал НИ ОДНУ программу. Да все Вы знаете, какое у нас обучение. Есть даже студенты, которые еще летнюю сессию не закрыли. А никто никого отчислять не будет. У нас в группе 5 человек, кто ходит на пары. Ладно, я отвлекся. И никому не надо писать, то есть хочешь - пиши сам. Я пробовал, подходил к студентам, кто хочет поучаствовать в совместном проекта, никто так и не изъявил желания. Отступление закончилось. И вот тут Евгений, а может кто и другой возьмет идею и реализует. А автор, к примеру, ты. Твоя идея, ты ее хотел реализовать. А тебя опередили. Мы живем в такой век, что все стараются как можно заработать много денег. Особенно в молодые годы, в студенческую пору, это особенно актуально. И вот, очень обидно будет, ты придумал, а у тебя забрали. Я никого ни в чем не обвиняю, пытаюсь порассуждать. Что скажете, Евгений Витольдович? Как быть? Да, Вы сами говорите, что не нужно делиться ни с кем своими сокровенными желаниями, намерениями с кем-то, иначе не сбудутся. А тут мы получается, что делимся. Или Вы считаете, что тоже, маловероятно, что кто-то напишет здесь свои ИСТИННЫЕ намерения. Я вот, человек честный, открытый, я написал, чего бы я хотел. Не стал придумывать или писать, что было мне неинтересно. Боязно за свои идеи. Лучше дома написать свои намерения на листочке и никому их не показывать. А потом,трудиться и осуществлять задуманное. Спасибо, что выслушали. Хотелось бы высказаться. Жду ответа, Евгений Витольдович. Ваше мнение по этому поводу.