Pull to refresh

Comments 147

Учитесь, обучая других
Странно. Читая это я всегда вспоминаю цитату Б.Шоу: Кто знает, тот делает, кто не знает — тот учит других
Ха, а я вспоминаю цитату «Уже и сам понял, а они еще нет!». А вообще проговаривание, прорисовывание перед кем-то — очень сильный метод для понимания.
точно сказано, иногда думаешь, что знаешь что-то, потом по мере объяснения появляются белые пятна
Точняк. Я вот например, когда чего-то не знаю, но хочу изучить — статью по этой теме на Хабру пишу. :)
Да!
Имхо, если не можешь объяснить что-то другому человеку, значит не до конца понял это сам.
Или просто скудный социальный опыт и ты не умеешь красиво излагать свои мысли :)
ну, красота это уже другое, можно некрасиво, но понятно объяснить
конечно, это все субъективно, но в целом опыт показывает, что незнающий человек не может объяснить, а знающий как правило может
Ну я вот не умею, как раз по обозначенным выше причинам, мне всегда проще сделать, а там пусть другие смотрят что и как, чем пытаться кого-то чему-то научить.
Говорят, что настоящий ученый может считаться настоящим, если сможет объяснить свою теорию 6-летнему ребенку.
Если человек внятно не может объяснить чем он занимается и зачем это нужно…

Вообще, у людей очень туго с логикой и пониманием. Было одно время програмил простенькую программку для бухгалтерии (1С тогда в организации не использовался). У меня НЕДЕЛЯ ушла на то, чтобы из БУХГАЛТЕРА вытащить сведения о том, как соотноситься информация о товарах и в какую группу налогового учета их надо внести (ну и остальное по мелочи).
Кажется, к концу той недели она сама начала понимать, как нужно вести складской учет (точнее, почему именно так, а не иначе, в соответствии с установленными правилами) и для чего нужны все те статьи затрат и т.п… :)
А если можешь объяснить, но другие не поняли, считается что объяснил?
Это не ИМХО, это еще Бернард Шоу сказал (по крайней мере, ему приписывают). Дословно,
«Если вы что-то не можете объяснить 6-летнему ребёнку, вы сами этого не понимаете.» ;)
А вот преподаватели к примеру ТФКП часто считают иначе ;)
Называется «постукаться об дурака».
Из своего опыта давно уже заметил, что обучая, учишься сам.
Качественный рассказ о теме вынуждает разобраться во всех краевых случаях, пройти цепочки зависимостей, установить все причинно следственные связи.
Ничего странного. Именно обучение других часто позволяет найти «лазейки» в знаниях. Там так и написано «Учитесь, обучая других:»
вы не замечали, что подобных цитат от, скажем так, не глупых людей очень много, и они по большей части друг другу противоречат? ;) всё складывается из личного опыта, в общем виде для саморазвития на определённой стадии обучение других даёт профит и себе. вопрос в том кого обучать, чему и зачем
Помнится, в инете встречал упоминание об одном сильно эрудированном товарище, который на спор мог привести цитаты/афоризмы известных/великих людей в защиту каждой из двух спорящих друг с другом точек зрения. Я таким «полнофункциональным» :) набором афоризмов не обладаю, но всё же не раз встречал прямо противоречащие друг другу высказывания великих людей.
Я с Б.Шоу не согласен. Как ни крути, сениоры ВСЕГДА учат юниоров. А уж простите, посмеиватся над кем-то кто учит или над тем кто учится — грубо. Взрослым человек не станет, пока не выростит ребёнка, здесь подобная ситуация.
К сожалению, в нашей реальности бывает прав и Б.Шоу. Поэтому ваше «ВСЕГДА» следует заменить на «как правило».
По-моему, у Шоу о другой ситуации. О том, когда человек, не понимая, только учит других, а сам ничего не делает.
Как бы не парадоксально это не звучало, но это очень полезно.
Как-то прочитал в подобном топике банальный совет «посещайте форумы для новичков, помогайте им решить проблемы, и это вернется вам вторицей».
С тех пор стараюсь по свободе заглядывать в разделы для новичков и стараться помогать практически (а не просто тыкать в документацию). Это развивает, во первых прерывая литературу в поисках ответа, освежаются фундаментальные знания, по ходу приобретаются новые.
Да и просто приятно помочь кому-то, это улучшает карму и настроение. :)
А вы думаете, что анекдот, кончающийся фразой «На третий раз я уже и сам понял», тупой и не несет в себе смысла?
Три уровня понимания:
— объяснили — понял
— сделал сам не хуже
— рассказал другому, и тот понял

Причём каждый из уровней нельзя достигнуть, пока сам не попробуешь.

Плюс к тому, при объяснениях вслух мысли структурируются лучше. Я часто, объясняя кому-то, почему что-то нельзя сделать, обнаруживаю другой способ это сделать.
Стив Макконнелл, Дональд Кнут, Пол Грэм, Гай Стил… Они ну совсем ничего не знают, правда? (:
Меня удивляет некоторая часть хабралюда, которая плюсует сомнительное утверждение Бернарда Шоу, имеющее смысл только в определённом контексте, но минусуют за намёк на его некорректность. Вдумайтесь — Шоу, быть может, сказал эту фразу так, между делом, говоря о каком-то конкретном человеке, или просто ради красного словца, а теперь люди декламируют её как прописную истину.
И вообще, надо понимать, что любые подобные категоричные утверждения обречены быть ошибочными в некоторых или даже многих ситуациях.

По крайней мере, я обосновал своё мнение.
«Кто может — делает. Кто не может — учит»
Закон Х.Л.Менкена.

«Кто не может учить — управляет»
Дополнение Мартина.
А если перевести фразу обратно в оригинал, то что надо заметить?
Открыл пост, повелся на маркетинг «Всего за 6 шагов!», а тут план лет на 10,
UFO landed and left these words here
И тут не обошлось без маркетинга
С ума сойти! Ну и списочек. Я уже года три как мечтаю C++ или Java выучить, но понимаю что и HTML, CSS и JavaScript можно до конца жизни изучать.
Ну Вы преувеличиваете :)
Нет, я всё же считаю что совершенствовать свои знания в фронт-энд веб разработке можно бесконечно.
А уметь делать всё из вышеперечисленного списка хорошо (подчеркиваю, делать хорошо) мне вообще представляется почти нереальным.
Или это я просто такой легивый и медленный, что у меня на осваивание новых технологий уходит много времени. Тоже не исключено.
Да нет, просто новые технологии последнее время ОЧЕНЬ быстро стали появляться, развиваться и угасать, что за всем не уследишь…
Главное начать. Со взрослыми языками очень приятно работать :)
Что вы подразумеваете под взрослыми? Вы считаете JavaScript недостаточно взрослым? [последнее предложение не попытка похоливарить]
Да, являясь веб-разработчиком, я нахожу JS и PHP не слишком серьёзными в сравнении с более «взрослыми» языками, вроде семейства C или Java. С них можно начать, но с них со временем нужно уходить. Естественно, это личное мнение. :)
Ну вообще там в два раза меньше способов, поскольку перечислены просто два варианта нотации при работе со свойствами и методами объектов :)
Да, именно.

А по секрету: надо исключить первый, location = location иначе не напишешь.
Не хватает location.reload.call() и location.reload.apply() со всеми комбинациями обращения к свойствам как к членам массива :)
Каждый язык создан для решения определенного круга задач. А сравнивать их этот хороший, а этот плохой бессмыленно.
Абсолютно верно, именно поэтому я их так и не сравниваю.
> «Да, являясь веб-разработчиком, я нахожу JS и PHP не слишком серьёзными в сравнении с более «взрослыми» языками, вроде семейства C или Java.»
Разве это не Вы написали?
А разве из написанного вытекает ваше предположение? Необязательно. Я это заявлял исключительно с целью подчеркнуть, что эти языки достаточно просты и бедны и многого с ними не добьёшься. Укрепившись в них, надо браться изучать те, где больше возможностей, а не топтаться на месте.
Вы очень сильно недооцениваете PHP и Javascript.
JS я люблю, но для своих целей. А PHP, увы, я даже переоценил, после того как покодил под .Net.
А вы какие цели преследуете? Изучить как-можно больше «достаточно взрослых» языков?
Практически любой язык программирования, в конечном итоге не более чем инструмент для решения определённого круга задач. Это выше уже прозвучало.
В моём понимании, движение вперёд это углубление в каком-то конкретном деле (в данном случае язык программирования либо фреймворк), а не изучение всего подряд, понемножку.
А в вашем?
Нет, таких целей я пока не преследую и не ставлю, хотя тред почти к этому и призывает. Я лишь говорю, что какие-то темы имеют в себе меньше потенциала, их можно изучить относительно быстро, а дальше будет рутинное пережёвывание старого в «новое». Я согласен с автором в том, что надо расширять свой кругозор, чтобы стать толковым программистом. Однако, по недавнему опыту сужу, далеко не всегда опыт можно будет применить обратно к тому, с чего начинал.

Да и, будем честны, веб-девелоперы так много не зарабатывают, как товарищи с толстых клиентов и мобильных платформ. :)
>Да и, будем честны, веб-девелоперы так много не зарабатывают, как товарищи с толстых клиентов и мобильных платформ. :)

1. Всё зависит от человека и от компании.
2. Если заниматься тем, за что больше платят, всегда будут платить мало.
Я сужу по аналитическим топикам с Хабра же, простите.
А я стараюсь судить по личному опыту. Извините за бестактность…
> «Да и, будем честны, веб-девелоперы так много не зарабатывают, как товарищи с толстых клиентов и мобильных платформ. :) „

Вот это новость. Сколько для Вас “много»?

Я считаю, что главное это заниматься тем, что тебе нравится и тогда деньги будут. А если гнаться только за деньгами, то можно и у разбитого карыта оказаться.
Сейчас для меня много 60-80. А вообще денег много не бывает, только мало, уж простите мне мой материализм. Но и неправильно не поймите, богатства я не ищу и не ценю, для меня важнее другие вещи. Тем не менее, в нашем мире без этого никуда.

А если мне нравится разработка программного обеспечения и электронных систем в целом? Почему бы тогда не стремиться туда, где и работать приятней (а именно про это был мой первый комментарий, на PHP и JS мне работать не так приятно, как на том же C#), и платят больше?
> «А если мне нравится разработка программного обеспечения и электронных систем в целом?»

Если Вам нравится (душа лежит так сказать) работать в это области, то Вы по любому будете стремится к самосовершествованию в ней. И поверьте Вас заметят, найдут.
Сейчас для меня много 60-80.

Килорублей в месяц? Зарабатывают. В принципе и килобаксов в год столько зарабатывают, но это уже за океаном преимущественно.
> Сейчас для меня много 60-80
Уверяю вас, в Москве это вполне посильная задача. Занимайтесь тем, к чему лежит душа и у вас всё получится. Удачи вам!
Ну почему же? Для обучения Borland Pascal хороший, а Quick BASIC — говно.
Что не каждый язык создан для определенного круга задач. Например я не вижу отличий в кругах задач Ruby и Python, почему бессмысленно сравнивать их?
Каждый язык создан для определенного круга задач.

Например, вот сравнение:
habrahabr.ru/blogs/ruby/48952/
И какой вывод следует из этого сравнения?
Вывод: с выходом ruby 1.9 минус один аргумент против руби о его тормознутости. :)
Взрослый язык программирования — это язык, который не может осилить школота :)
Извинитe, картинку забыл:
Здесь предлагают просто попробовать, чтобы иметь представление.

1. Изучайте различные парадигмы программирования
Первые три-четыре пункта вероятнее всего у вас будут даже после института, т.е. представление вы уже имеете. Остальное ради интереса опять же не мало смотрели или трогали в той или иной степени.

2. Изучайте тонкости программирования на различных платформах
Реальность такова, что сейчас вообшем-то тоже многие успели себя попробовать везде. Я вот разве что встраиваемое приложение не писал, ну и система реального времени по правде говоря институтский опыт.

3. Совершенствуйте понимание программного обеспечения на различных уровнях.
За исключением B-tree БД и своего ЯП, со всем остальным вам всеравно прийдется столкнутся. Первую программу я написал 15 лет назад, за это время все эти пункты у меня были, причем вынужденные, а не интереса ради.

Остальное опять же с опытом будет само собой, ну разве что кроме open source — для такого нужно время и деньги, а не все обладают такой роскошью.
А почему, интересно, в парадигмы затесался ассемблер? Он вообще язык, и ассемблеры они разные. Там наверное уместнее смотрелось бы процедурное программирование.
Имеется ввиду, скорее всего, низкоуровневое программирование, хотя, тоже сомнительно называть это парадигмой…
Имеется ввиду именно ассемблер, ибо является своеобразным «языком электроники». Ближе к железу только машинные коды или программирование ПЛИС. Это очень своеобразная область, так как даже сам алгоритм пишется не в древовидном, а в линейном виде (нет вложенных конструкций).
это как (линейный вид и вложенные конструкции?)
Это

  ldi r16, 10
  ldi ZL, Low(str)
  ldi ZH, High(str)
LOOP_START:
  lds r20, Z+
  cmpi r20, 0
  breq NEXT
  call do_something
  subi r16, 1
  breq LOOP_START
NEXT:
  ...

вместо

const char *p_char = str;

for (int i = 0; i < 10; ++i)
{
  if (*p_char == 0)
    break;

   ++p_char;
}


Пример надуманный, но суть передаёт.
В способе записи. Как между "(* (+ a b) (- c d))" и "(a + b) * (c — d)". Для вас это, возможно, станет открытием, но способ записи алгоритма сильно влияет на мышление.
Может быть я совсем непонятно задал вопрос. Вы написали, что алгоритм в ассемблере записывается в линейном, а не древовидном виде. И, после моего вопроса привели в качестве иллюстрации два листинга похожих алгоритмов на ассемблере и си. Листинги практически идентичные и я действительно не понимаю в чем отличие.

И разве не так будет правильно записать декомпиляцию ассемблерного листинга?
int i = 10;
const char *p_char = str;
do
{
if (*(p_char++) == 0)
break;
do_something();
--i;
}(while i > 0)

(насчет инкремента в if, как-то страно правда вышло)
Код на C древовидный, так как в нём имеются обособленные вложенные конструкции. Код же на ассемблере линеен: там управление передаётся только вперёд или назад, но не вглубь. Вы про «плоское» хранение древовидных структур в файле/буфере слышали? Вот это то же самое, только дерево — C, а его плоское представление — ассемблер.
Ассемблер — сейчас уже это особый мир. После него может сильно поменяться отношение к программированию, когда видишь, что софтинка, деляющая что-то осмысленное, занимает единицы килобайт и при этом «летает».
Плюс к тому — начинаешь очень хорошо осознавать, во что в итоге превращается код. В результате получается эдакая фоновая оценка — насколько эффективна та или иная фича, как она может быть реализована. Хотя это не после одной программы, конечно.

As for me — через низкоуровневое программирование должен пройти каждый приличный программист. Очень помогает от code bloat и нагромождени абстракций.
Я о том, что он не подход к программированию, а язык. Хоть там в основном рулит процедурный подход, но никто (кроме здравого смысла) не может помешать вам использовать объектно-ориентированный подход для написания приложений на ассемблере.
Согласен, формально говоря — да, не подход. Но, с другой стороны — отличия от высокоуровнеывх языков всё же разительны и, думаю, выделение в отдельную категорию ассемблер заслужил.
Это язык программирования со своим подходом.
Инструкции ассемблера как правило более низкоуровневые и для написания эффективных программ на ассемблере нужно мыслить иначе, чем при написании программ на ЯВУ.

Лучшей иллюстрацией разницы в подходах между ассемблерами и ЯВУ будет, пожалуй, Brainfuck.
По сути это язык ассемблера для специфичного RISC-процессора. Является тьюринг-полным, но мысля теми же категориями, что и при написании программ на Си и прочих ЯВУ, далеко не уедешь.
Только в брейнфаке отсутствуют некоторые конструкции, которые обычно каждый уважающий себя ассемблер/процессор предоставляет.
А возьмем x86. Чего там нет что есть в Си? Циклы, условные операторы, арифметические/логические операции, вызов подпрограмм. Есть, конечно стандартные функции, но их вряд ли стоит здесь рассматривать как часть языка.
В ассемблере более мелкие «строительные блоки», из чего автоматически следует, что для написания эффективных программ нужно мыслить в несколько ином ключе, чем при использовании ЯВУ.

На вскидку:

В ассемблере (возьмём тот же IA32/x86) я могу выполнить одно сравнение, а затем, в зависимости от результатов, разветвить выполнение на более, чем две ветви:

cmp eax, ebx
ja @@above
jb @@below
jz @@zero


В большинстве ЯВУ нам понадобится минимум два if-a. Можно найти и другие примеры.

Естественно, ассеблер не настолько сильно отличается от тех же C++ или Java, насколько от них отличаются ФЯП а-ля Haskell.
Был у меня как-то на собеседовании чрезвычайно развитый человек — обо всем мог поговорить, но не знал нормально ни одной технологии :)) Что вы думаете насчет узкой специализации? Так ли нужно писать веб-приложение человеку, от которого ждут код ассемблере?
Всё ясно. А работать-то когда? На пенсии?
А жить работая… или если вы работаете что бы жить, то вы треть жизни тратите впустую.
Однажды я задумался. При рождении ребёнок спит почти весь день. Потом его сон сводится к половине дня. Средний подросток должен спать 6-8 часов. 8 часов — это треть дня. 6 — часов — это четверть дня. Ладно, возьмём 8 часов — среднее время сна человека в день. После университета человеку где-то 21 год. Треть этого он проспал, т.е. 7 лет. Вот я и задумался над этим, я 5-7 лет своей жизни просто проспал. Сколько же я мог сделать за это время… наверное, после этого я начал ценить время. Учусь (всю жизнь учиться надо), работаю, не трачу время на плевание в потолок. Треть жизни и так теряется, куда уж далее…
Вот я и задумался над этим, я 5-7 лет своей жизни просто проспал. Сколько же я мог сделать за это время…

Немного. Заболевания, вызывающие полное отсутствие сна очень быстро приводят к смерти ( en.wikipedia.org/wiki/Sporadic_fatal_insomnia), значительно сокращающие период сна — к нарушению работы мозга и заметному снижению когнитивных функций.

Так что не стоит жалеть о той трети жизни, она вам позволяет получить больше от оставшихся двух.
К сожалению, многие шаги не сработают для 90% программистов здесь — на похапе не работает ни ФП, ни СРВ ;-)
Ну, кстати, если язык тьюринг-полный, то программировать на нём можно почти по любой парадигме (особенно если язык интерпретируемый, как php), только можно быть не так удобно. Вот, например, про ООП на C: www.planetpdf.com/codecuts/pdfs/ooc.pdf
Да не в языке здесь дело. А в программистах.
Впрочем, для них и предназначена статья — так что может быть я и не прав.
Спасибо за ссылку. Я тут пилю компилятор потихоньку, и изложенные в ней идеи очень пригодятся.
> если язык тьюринг-полный, то программировать на нём можно почти по любой парадигме

… за которую от коллег не получишь стулом по точке вход.
Страшно подумать, чем и куда можно получить за ООП на Brainfuck.
искренне уважение коллег и доброту медицинского персонала.
Покажите мне хоть одного человека, который выполнил все эти пункты?

И вообще, оно надо? Лично для меня лучше быть узким спецом, чем везде и понемногу
Оно приносит пользу именно в области специализации. По многим причинам — начиная с освоения различных стратегий мышления и заканчивая возможностью увиденное использовать в своей сфере.
Там статья о том, что приобретая опыт в различных областях, мы совершенствуем себя, как разработчика. Что определенного пути нет, но чтобы веселее было, можно выделить себе «достижения», как в компьютерных играх и приводится список нужных, по мнению автора, ачивок. Рекомендуется менять по своему усмотрению.
Скорее всего, в этом пересказе я переврал статью. Так же как и автор перевода.
>Покажите мне хоть одного человека, который выполнил все эти пункты?

все пункты из всех шести шагов? ничего сверхъестественного — они перекрываются же, у меня, например, из каждого шага по 3-4 пункта выполнено, только SICP и всякие прологи не осиливал еще.

>Лично для меня лучше быть узким спецом

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

кроме того, это просто развивает мозг, как рабочий инструмент (допаминчик выделяется при изучении нового, связей между нейронами становится больше).
кроме того, это дает больше возможностей по трудоустройству
> ничего сверхъестественного — они перекрываются же, у меня, например, из каждого шага по 3-4 пункта выполнено, только SICP и всякие прологи не осиливал еще.
Так у меня тоже процентов 80-85 выполнено, но я говорил именно про все пункты. Еще же пункты, которые не выполнило процентов 99 всех разработчиков (да и не пыталось выполнить). Например, «напишите язык программирования», «напишите драйвер устройства», «напишите книгу по программированию». Кто выполнил эти три пункта?
>Например, «напишите язык программирования», «напишите драйвер устройства», «напишите книгу по программированию». Кто выполнил эти три пункта?

а что сложного в написании драйвера устройства — это какая-то страшная магия? пишу в перерывах между троллингом на хабри.

про язык программирования — многие пишут встроенные DSL для своих проектов, мне для геймдева приходилось писать что-то вроде VM, где абилки фактически программировались опкодами.
интересно, а Джейсон Рудольф все пункты выполнил которые описал.
UFO landed and left these words here
По-моему, эти 6 шагов, нифига не 6, а больше. Это раз. И, по-моему, чтобы стать гуру во всем этом, жизни не хватит. Это два. Сам автор не выполнил все эти пункты. Это 3.

Так как после этого можно относиться к данным советам? :(

Наоборот — там не про «стать гуру», а про «попробовать и понять основные моменты». Ну и за всё не поручусь — но книгу автор таки написал :-)
написать «нетривиальное приложения», выступать на лекциях и прочее — это таки гуру.

хелловорлды на хаскеле можно и из торрентов скочять.
И вообще, это не шаги, а «достижения». Цифры 6 в оригинале тоже нет
Спасибо, отличная статья!
Добавил несколько фишек в свой арсенал.
Подняли мне настроение!
Всё-таки статья не описывает весь спектр требований к современному программисту.

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

Ну а что касается Open Source — не знаю как в других областях, у нас в веб-технологиях Open Source продукты являют лишь пример либо быдлокодинга и непрофессионализма — Drupal/Joomla/Wordpress/многочисленные shop-движки, либо оверинжинеринга и явапоклонничества — всякие доктрины/симфонии и иже с ними.

Их изучать стоит лишь для того, чтобы так никогда не делать.

Хотя есть конечно, и неплохие примеры, вроде Yii.
>у нас в веб-технологиях Open Source продукты являют лишь пример либо быдлокодинга и непрофессионализма — Drupal/Joomla/Wordpress/многочисленные shop-движки, либо оверинжинеринга и явапоклонничества — всякие доктрины/симфонии и иже с ними.

костыли и непрофессионализм — это у вас в PHP-мирке, а не у нас в веб-технологиях.

вот именно поэтому и советуют учить более одного языка и более одной платформы — чтобы не казалось, что все вокруг точно так же, как в родном уютном болоте.
Ну насколько я знаю, с высокоуровневыми языками в вебе все не очень весело: большинство руби-продуктов завязано на тяжелом Ruby on Rails из сотен переплетенных классов, и Питоновский джанго тоже не легкий. Плюс, вещи, которые в PHP реализованы на Си (веб-сервер, многие функции, разбор Урл-параметров), там написаны нативно, то есть неэффективно.

А еще в PHP есть много библиотек на Си для работы с СУБД, архивами, и еще много чем. А в других языках их либо нет, либо они не на Си.

Код может и красивый, и логичный, но громоздкий (если учитывать библиотеки) и жадный до памяти в итоге выходит. Вряд ли сайт на Руби в 10 Мб на поток по памяти уложится.

А, еще Яваскрипт и Нода есть, но там тоже половина вещей, к которым я привык в PHP, типа операций со строками и с массивами, расширение классов, написаны на самом же яваскрипте. Но это все равно интересная платформа, из-за особенности асинхронных вызовов.

Как-то страшно пытаться там что-то делать и тратить силы, если изначально понятно, что летать оно точно не будет с таким подходом. Да и фейсбуки всякие не на Руби написаны — это показательный пример.
UFO landed and left these words here
>Плюс, вещи, которые в PHP реализованы на Си (веб-сервер, многие функции, разбор Урл-параметров), там написаны нативно, то есть неэффективно.
>А еще в PHP есть много библиотек на Си для работы с СУБД, архивами, и еще много чем. А в других языках их либо нет, либо они не на Си.

извините, не узнал зеленого брата! чуть-чуть подтянуть матчасть, чтобы таких откровенных ляпов не торчало — и кто-то будет даже верить

>Код может и красивый, и логичный, но громоздкий (если учитывать библиотеки) и жадный до памяти в итоге выходит. Вряд ли сайт на Руби в 10 Мб на поток по памяти уложится.

а зачем жалеть память? ей не больно, в нее много влезет
К слову сказать, с учетом copy-on-write у меня воркеры Rails занимают по 5-8 Мб памяти каждый, так что вполне себе укладываются.
Из известного анекдота:
деньги, машину, квартиру — это раз.…

P.S. Code Kata кто-нибудь бы перевёл.
Статья из серии «Что ты должен успеть сделать этим летом» или «Места, которые надо посетить в своей жизни», которые публикуют в журналах вроде Космополитен или Менс Хелф.

Люди сами должны понимать, что им надо, а что нет.
UFO landed and left these words here
  • взорвите свой мозг и соберите кусочки обратно в надежде получения новых знаний и навыков
Картинка-загадка, то она есть, и вот её нет o.O
Среди хабравчан ходят легенды, что только один сайт может сдюжить хабрасилу великую, иные сайты роняющую. Зовётся тот сайт хабрасторейджем да обитает он под доменом орговским. Путь-дорогу к нему знает всякий сервер днсный, спросить просто его достаточно. Попробуй, и не будут картинки пропадать впредь у тебя.
Узнавайте и вникайте во все мелочи и тонкости языка, на котором пишите. Это будет выделять вас среди говнокодеров-верхоглядов.
Мелочи — не главное. Мелочи — САМОЕ главное.
Соглашусь. И этот совет обнажает ошибку в одном довольно распространённому мнении: «под каждую задачу следует брать наиболее подходящий инструмент => программист должен знать много языков».
А почему вы поставили "=>" между этими двумя тезисами? Они не связаны никак.

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

А «Right Tool For The Right Job» — это совсем другое золотое правило. Просто не беритесь за «не свои» задачи, вот и все.
У меня возникла идея насчёт нового проекта. Создам систему ачивментов (achievement), которые буду отмечать галочками. Да, к этому следует сремиться. Ачивки на то и создаются. Спасибо автору.
Основное — это структуры данных, алгоритмы, как устроены внутренности ПК. А тут описано не искусство программирования, а все его разнообразие.
Такой вопрос: какое приложение понимать как нетривиальное, а какое как тривиальное?
Я думаю, что под тривиальным имеются ввиду наборы готовых решений. Т.е. разработки «под копирку», а нетривиальные — придуманные решения самим разработчиком.
Если разработчик написал, допустим, веб-сайт для обмена книгами с использованием, допустим, php фреймворка, можно ли считать это приложение нетривиальным? Вроде как фреймворк и предоставляет, частично, готовые решения, но и разработчику необходимо потрудиться.
По сравнению с полиморфным вирусом под x64 — нет.
Only those users with full accounts are able to leave comments. Log in, please.