Написать простейшую игру

В комментах недавно появился вопрос о том, смогу ли я написать игру дурака без помощи интернета и дополнительной литературы. Какой вопрос, такой я дал и ответ, но потом появился более интересная интерпретация в принципе того же вопроса, о которой я и хочу сегодня поговорить. Ясный красный, что помнить абсолютно все нафиг нужно. Если бы я пытался выучить наизусть все, о чем хоть когда-то читал и пытался изучить, то голова Джони Мнемоника показалась бы мне маленькой флешкой. Но я реалист и не пытаюсь запоминать все. Когда я что-то читаю или изучаю, то главная цель, которую я преследую - это понимание. Если я понимаю вопрос, то все отлично, и можно продвигаться дальше.

Когда дело доходит до реальных дел, то вот тут уже свое понимание я использую для того, чтобы писать реальный код и выполнять поставленные задачи. И даже в этот момент я не пытаюсь запоминать что-то. Когда выполняешь много раз одни и те же задачи в разных контекстах, все самое необходимое запомнится само. Я никогда не пытался запомнить функции, но когда меня поставили в жесткие условия и посадили не просто за компьютер без интернета, а даже за язык программирования который я не знал и заставили писать тесты в блокноте (читай мою заметку собеседование в канадскую компанию), я сдал тест успешно и уже пол года работаю в этой компании и продолжаю писать в Notepad++ без помощи подсказок среды разработки, без мега отладчиков и даже без файлов помощи.

Во время теста мне дали только одну книгу по JavaScript и сказали, что ASP похож на JavaScript, а дальше выкарабкивайся как можешь. И ничего, за 4 часа написал все, что требовалось.

Когда есть большой опыт, все необходимое и то, чем вы пользуетесь очень часто запомниться само и игру в дурака или сапера можно будет написать без помощи справочников. Смогу ли я написать сапера, дурака или что-то простое на Delphi без помощи книг и интернета? Не вижу проблем. В таких играх нужно помнить функции работы с графикой и простейшие вещи типа массивов. Если даже забыл, как работать с графикой, всегда можно мухлянуть и использовать компоненты TImage в качестве карт и перемещать их, а компонент TImage уже сам прорисует свое содержимое.

Смогу ли я написать без Delphi, а прямо в текстовом редакторе? Если не использовать графику, а мухлянуть и упростить себе жизнь компонентами, то да. Если использовать графику по максимуму и задействовать DirectX, чтобы было красиво, то вот в этом я сейчас уже не уверен. Хотя уверен, что не смогу, потому что уже забыл DirectX. Года два назад я бы без проблем ответил ДА, а сейчас хотя бы примитивный помошник в виде IntelliSense среды разработки не помешал бы. Последний раз я видел среду разработки Delphi чуть больше года назад, когда уволился с последней работы в Питере. Ну а DirectX не использовал с того дня, как сдал книгу. Не знаю почему, но почему-то перестал использовать его :).

И вот тут мы подходим ко второй части вопроса, который недавно прозвучал в комментариях на этом блоге - что случиться, если произойдет перерыв. Базовые вещи никуда не денутся, потому что это как езда на велосипеде. Как работать с массивами, переменными, создавать объекты вы не забудите никогда. Но вот параметры функций можно подзабыть. Мне часто приходят вопросы по Delphi на мыло, но в последнее время я стал замечать, что я больше стал посылать в Help по приблизительно очерченной дорожке, потому что начинаю забывать его.

Когда-то я изучал Flash и даже что-то пытался на нем делать. Если сейчас мне дадут Flash, я без проблем смогу создать какие-то простые анимации с движениями, даже не смотря на то, что я профессионально не работал с ним. Смогу ли я что-то большее? Тут даже точняком скажу, что нет.

Мозг имеет особенность выбрасывать ненужную информацию. Ее можно сохранить, если постоянно заставлять мозг, напоминать ему и тренировать. Нужно ли? Я считаю, что нет. Ничего позорного в том, что кто-то может писать код только со справочником, книгой или интернетом нет. Как я уже говорил, главное - это понимание. Если вы понимаете, то быстро найдете решение проблемы.

Тут я уже приводил пример с SQL и курсорами. Если меня попросят написать SQL код с курсорами, то без справочника или хелпа я это не сделаю. И тут причина даже не в том, что я не могу запомнить, как это делается, а в том, что я не хочу. Если я буду знать, то для меня будет проще использовать их во многих ситуациях, вместо того, чтобы написать банальный UPDATE. Тут я даже специально не пытаюсь запоминать, как оформлять код. Конечно же, если меня бросят в тяжелые условия, то я скорей всего все же вспомню, как это делать, потому что все равно что-то со временем отложилось в башке и если покапаться, то можно найти, но вот сегодня пришлось писать код с курсорами и я полез в интернет, чтобы вспомнить, как это делается.

Если кого интересует, смогу ли я написать простую игру без помощи интернета и справочников, то спешу кого-то обрадовать, а кого-то разочаровать - смогу. Смогу даже без среды разработки, а только с компилятором командной строки, если не использовать DirectX. Но даже если не мог бы написать даже сапёра, я бы абсолютно не комплексовал. Если кто-то не может написать даже простую программу без помощи интернета, то не стоит сейчас бежать и зубрить все функции и их параметры. Это глупость. Все равно мозг очень быстро овышвырнет все, чем вы не пользуетесь в повседневной жизни. Самое главное понимание того, как все работает и как можно решить проблемы.

Итого: поэтому изначально вопрос о том, смогу ли я написать игру я посчитал глупым и не собирался отвечать серьезно. Я уже давно ни с кем не мериюсь "а ты можешь", "а у тебя больше". Все это закончилось в школе. А вот вопрос - имеет ли смысл помнить все, это уже другая плоскость. Я не знаю, что именно хотел узнать автор вопроса.


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

vasek123

18 Мая 2010

   Большое значение, тут, имеет смекалка- без смекалки и элементарную вещь не напишешь...      
   Помнится, был со мной случай, правда, не связанный с программированием: ко мне обратился один из многочисленной клиентуры с просьбой объяснить как переделать расчетный листок организации(в нем отображается общая заработная плата, удержания, и сумма к выдаче на руки), консультирование происходило по телефону(по нему что- то, только, и объяснять...). Ну я, недолго думая, отсканировал этот листок, с помощью Paint стер реальные данные и прописал нужные.
   Возникла проблема: как- же распечатать документ в нужном формате- простая печать не подходит, через обменники- то- же. В итоге скопировал изображение расчетного в MS World и распечатал в нужном мне формате(ранее, ничем подобным не приходилось заниматься)...

p.s. Мораль- программист не должен все знать, ему достаточно лишь грамотно оперировать полученными знаниями.


pat

18 Мая 2010

эх а я так уже привык к ide ее помощнику, что честно скажу - игру я не напишу...


Михаил Фленов

18 Мая 2010

Я тоже был в шоке, когда мне сказали выполнять тест в блокноте и без помощи IDE. Первая мысль была - "да они сумасшедшие гики, откуда нужно валить как можно дальше". Но ничего, справился а через месяц работы привык и сейчас сам прекрасно себя ощущаю без IDE. Это дисциплинирует и заставляет думать постоянно, потому что знаешь, что никаких удобных отладчиков под рукой нет и нужно быть аккуратным.


Alexo

18 Мая 2010

И что реально без отладчика и IDE получается писать более качественно и быстро?

А если это не так то это того не стоит)


oleg

18 Мая 2010

Задавать глупые вопросы по программированию, это моя стихия. А "дурака", я привел так, первое, что пришло на ум. Просто хотелось узнать, как вы работаете в форс-мажорных ситуациях. Когда нет интернета или того же справочного пособия. Спасибо.


Михаил Фленов

18 Мая 2010

Так и задавай вопрос, а то я не знаю, что от меня хотят. Я без интернета почти не бываю, и без него у меня ломка. Да и обращаюсь я к интернету или к файлам помощи очень редко. Все основные функции знаю наизусть. Если нет информации и невозможно найти, то начинаю научно тыкать. Тыкалка у меня за долгие годы развилась очень научная, поэтому очень часто помогает.


Роман

19 Мая 2010

Михаил, скажите не использовать IDE и отладчики, это условие фирмы?(если да то почему), или вы сами решили так работать.


Михаил Фленов

19 Мая 2010

Запрета нет. Некоторые используют Visual Studio в качестве редактора кода, но не более. Проекты очень часто большие и полная компиляция занимает ооооочень много времени, поэтому компиляция проектов идет через командную строку и rake (аналог make файла, только как я понял это ruby вариант). Это позволяет компилировать только те модули, которые изменились. Когда выполняем rake, то сценарии компиляции делают кучу автоматизации.

Когда нельзя компилировать и запускать из студии, она превращается просто в крутой редактор кода. Поэтому я использую чуть более простой редактор кода, но который стартует практически мгновенно и так я экономлю время.

Да, все это можно было бы реализовать в последней студии, да даже 2008-я позволит сделать то же самое. Но просто в компании уже давно устоялась такая компиляция, она быстрая и всех устраивает. Я не знаю, но я очень быстро привык работать в блокноте.


he110

19 Мая 2010

Отличная, четко разложенная статья. Рассмотрены в деталях все поставленные вопросы, и даже больше. Продемонстрирован очень сбалансированный и оптимизированный, выработанный с годами практического опыта подход.
Спасибо за материал, всегда интересна точка зрения  бывалого программиста, профессионала на подобные вопросы. Они действительно важны, для организации работы и подхода к программированию в общем, -начинающим программистам, для вырабатывания у них видения, расстановки приоритетов в акцентировании их внимания в столь многогранной сфере.
Спасибо еще раз за материал, и за уделенное время,  реальный диалог с читателем. Очень приятно, полезно, и круто.


Роман

20 Мая 2010

Согласен с he110, спасибо за выделенное время.


Руслан

21 Мая 2010

И писал пару игр.
В том числе и на паскале типа инры клад. Но это для общего развития


Павел

23 Мая 2010

Уважаемый Михаил Фленов. Хочу поблагодарить Вас за книгу "Библия Delphi". Каюсь, прежде чем купить ее, скачал электронный экземпляр - проверить, насколько легко будет мною пониматься текст. Самая доходчивая книга по программированию, из всех, что мне попадались. Иногда встречаются ошибки, но их число сведено к минимуму.

Настоятельно рекомендую эту книгу начинающим. Никакой отпугивающей спец. терминологии, все просто и доступно.

Еще раз ОГРОМНОЕ СПАСИБО.


X-Ray

11 Сентября 2010


Уважаемый Михаил Фленов. Хочу поблагодарить Вас за книгу "Библия Delphi". Каюсь, прежде чем купить ее, скачал электронный экземпляр - проверить, насколько легко будет мною пониматься текст. Самая доходчивая книга по программированию, из всех, что мне попадались. Иногда встречаются ошибки, но их число сведено к минимуму.

Настоятельно рекомендую эту книгу начинающим. Никакой отпугивающей спец. терминологии, все просто и доступно.

Еще раз ОГРОМНОЕ СПАСИБО.

Полностью поддерживаю и присоединяюсь (кроме скачивания электронного варианта - у меня только в бумаге, да и то еще 1-е издание). По сравнению с некоторыми другими авторами - с этой книгой очено легко изучалось.
Спасибо автору.


Айк

05 Aпреля 2011

а вот я хотела узнать про программу который можно сделать электронную учебник подскажите с ким программам надо работать что бы он был не обычном ааа


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне