Показаны сообщения с ярлыком программирование. Показать все сообщения
Показаны сообщения с ярлыком программирование. Показать все сообщения

среда, 28 марта 2012 г.

Три вещи, которые я ненавижу в книгах о программировании для начинающих

Слишком длинные


Если обложка Вашей книги заявляет, что она для начинающих, и при этом составляет 800 страниц, Вы все делаете неправильно. Откройте свой редактор заново. Урежьте книгу вдвое. Я прекрасно понимаю, что делая книгу толще, Вы можете просто отправдывать ее огромную цену, но это, конечно же, никак не поможет начинающему программисту. Я также понимаю, что довольно непросто не позволять книге растолстеть. Есть куча сложных концепций и практик, которые требуют детального объяснения. Но эта та трудная работа, с которой Вам как автору приходится иметь дело. Хорошенько поразмыслите, чему следует учить новичков, а чему нет. Не вешайте на них груз в виде бесполезных знаний, не подавляйте их интерес здоровенным материалом.

Вот, например, книга краткая, но в тоже время достаточно подробная — «Eloquent Javascript» (Marijn Haverbeke).

Слишком много примеров вида «Hello, World!»


В идеале, «helloworld»-подобный пример должен встречаться в книге только единожды. Если и дальше приводятся беспорядочные и бесполезные примеры вроде рисования ёлочки в консоли, читатели все больше будут чувствовать себя оторванными от реальной практики. Читатели не идиоты. Они знают, что настоящие программисты никогда не рисовали ёлочки в консоли (разве что только ради смеха). Так зачем заставлять читателей делать всю эту ерунду? Если Вы обучаете их строкам, то приведите пример о генерации CSV файлов. Никогда больше не заставляйте читателей рисовать ёлку.

В книге «Ruby on Rails Tutorial: Learn Rails by Example» (Michael Hartl) автор занимается преподаванием во время создания реального проекта, что, несомненно, оставляет у читателя чувство завершенности.

Нет ответов на упражнения


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

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

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

Оригинал лежит здесь.

Визуализация и интеллектуальные разработки


image

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

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

О Будущем
Давайте попытаемся представить себе будущее. Я считаю, что будущее за визуализацией и интеллектуальными разработками.
Для человеческого разума откроются бесконечные возможности, если оцифровать реальность и качественно ее визуализировать.
Можно смоделировать свой собственный мир, со своими законами, попробовать себя в разных ситуациях, самому создавая эти ситуации. Не можете представить себя в образе президента страны, смоделируйте и попробуйте. Не можете представить себя в качестве бездомного и нищего, не обязательно им становиться, можно просто смоделировать эту ситуацию и попытаться пожить на улице.
Визуализация предоставит вам возможность ощущать мир вокруг, интеллектуальные разработки, такие как искусственный интеллект, оживят его, сделают ваши модели способными самостоятельно существовать.
Хочется провести аналогию между программированием и волшебством. 
Наверняка, каждый человек был бы не против уметь колдовать. Это реально, достаточно уметь программировать и иметь специальные очки, через которые вы сможете наблюдать построенный мир.
Сейчас уже используются такие технологии, но представьте, что вы сами создаете мир вокруг вас, у вас есть инструмент — код и у вас есть визуализатор – что-то на подобии компилятора. Вы создаете оболочку и начинаете писать процедуры, функции, библиотеки, которые можно будет использовать внутри вашей оболочки, просто вызывая их. Чем не заклинания?
Представьте, что вы стоите в поле и говорите: «BuildHouse» и появляется дом, смоделированный вами ранее в тестовой области.
Вы будете программировать свой собственный мир изнутри, и вам уже станет не обязательно возвращаться сюда, в эту ограниченную реальность, кроме как поесть, сходить в туалет и поспать. Хотя и эти потребности, наверняка, можно будет автоматизировать, скорректировать или просто отключить.
Таким образом, я ожидаю в будущем технологии, дающие возможность моделировать процессы за счет фантазии и логики. Да, как в Матрице.

А как вы видите будущее? 
Вот еще интересный взгляд на будущее, про программирование мозга habrahabr.ru/post/140666/