Заметил, что у многих гуманитариев слабо развит навык декомпозиции, чёткого разделения задачи на подзадачи. Плюс навык технического абстрагирования тоже зачастую отсутствует: либо не видят общего между сущностями, либо начинают лезть в такие дебри. Помогаю девушке одной, учительнице русского и литературы и психолога, изучать программирование, пишет «бложик» в качестве учебного задания: с одной стороны, она гуглит что-то вроде «как написать блог», а, с другой, когда совместными усилиями разбили задачу на подзадачи типа «написать пост», «написать комментарий», то не видит связи между постом и комментарием, носом ткнёшь, что и то, и другое текст, вводимый пользователем и хранящийся на сервере — «ну да», не ткнёшь, а просто задавая вопросы типа «что общего?» — начинает рассказывать о том, что и то, и другое байтики в памяти компьютера (это если свернуть с рассуждений об эмоциональном состоянии пользователей, в котором он пишет).
И это не единичный пример. Потому ещё несколько советов:
— Не знаете как решить задачу? Разбейте её на подзадачи, часть из которых решить можете сразу. Разбили — решайте те, которые можете. Потом те, которые не можете, тоже разбивайте, до те пор пока не дойдёте до таких формулировок, в которых вам не хватает явно технических знаний, а не понимания что должно происходить, что должно быть на входе, а что на выходе. Но при этом никаких множественных выходов — формулировки вроде «записать пост в базу и показать его пользователю» не приемлемы, это две разные задачи (по крайней мере на этапе обучения). Принцип единственной ответсвенности. Если не получается избежать двух отвественностей, то чётко выделите главную и побочну — в задаче размещения поста главная отвественность разместить его так, чтобы видели другие пользователи, а не тот, кто разместил.
— Если задачи зависимые, например, вы знаете как показать запись из БД, но не знаете как её туда записать, то просто ставьте временные заглушки даже на то, что знаете, вместо обращения к БД сделайте простое присваивание с явно тестовыми данными post.body = "Я пока не знаю как записать пост в БД, а значит и нечего читать из неё, поэтому вы видите этот текст".
— Абстрагируйтесь от предметной области, когда работаете с техническими задачами. Не думайте категориями «пост», «новость», «статья», «документ» и внезапно окажется, что задача размещения поста в блоге практически не отличается задачи размещения новости на сайте-визитке или статьи на портале. Это просто задача размещения введенной пользователем информации.
— Изолируйте решения подзадач. Если размещение поста в блоге состоит из подзадач «получить данные из браузера», «проверить их на корректность», «записать в базу данных», «вывести пост», то пишите не «простыню» кода, а четыре строчки, вызывающие соответствующие функции/методы.
— изучайте ООП и ФП, не зацикливаясь на чём-то одном, решайте учебные задачи в обеих. Столь разные парадигмы расширят ваш кругозор и «заставят» задумываться какую в конкретной ситуации выбрать, тем более что популярные языки позволяют с легкостью использовать обе, но не смешивайте два подхода в рамках единой задачи пока не поймёте плюсы и минусы.
— Не бойтесь не оптимальности и избыточности — главное чтобы работало. Вам проще понять if (a > b) return true else return false? — так и пишите, а не return a > b, не бойтесь что вас назовут быдлокодером. Не бойтесь давать длинные названия функциям и переменным — лучше назвать переменную lengthOfTextThatUserInputed чем l. Не бойтесь повторяться, но бойтесь копипастить, при этом не забывайте про изоляцию — когда надоест писать одно и то же, сами заметите, что пара функций у вас отличаются только названием переменных.
— Вообще ничего не бойтесь, но не забывайте про изоляцию, инкапсуляцию и низкую связанность — тогда ошибку легко исправить, а главное найти.
— Пользуйтесь отладчиком для изучения непонятного кода, а не для отладки
— Изучите TDD/BDD и попробуйте их применять, возможно понравится и/или поможет избавиться от лишних страхов
— Найдите опытного «гуру», который будет давать фидбэк на ваш код, а лучше двух с диаметрально противоположными взглядами на идеальный код.
"… Си хорош тем, что имеет 7-8 операторов, десяток операций — и всё. Его учить — плёвое дело. Однако он не для трусов. Си — это свобода плюс ответственность. Почему многие так и остаются на всю жизнь на Паскале? Потому что готовы пожертвовать свободой, лишь бы ответственности поменьше. А у Паскаля настоящий тоталитаризм: шаг в сторону — расстрел. Си — это настоящая демократия. Разгильдяйство и воровство тут не проходят. Однако для людей, скажем так, с совестью — полная свобода. Ассемблер — это коммунизм. Туда дорога ещё меньшему количеству народа, чем в Си. VB — гнилой капитализм. Вот почему: меньше вложить — больше заработать, пару тыков мышой — и у вас офигенное приложение, медленное — значит солидное; и ещё для его приложений надо иметь крутую тачку, а крутая тачка — это престижно."
(с) какой-то форум.
(с) Крис Касперски, Компьютерные вирусы изнутри и снаружи
Пишу Вам из 2012 года. Мы уже давно прошли уровень 95 винды и не стоим на месте. Большинство современных компьютеров имеют 64-х битную архитектуру и многоядерные процессоры. Столь громадная производительность требует наличия операционных систем, способных с ней справиться. К сожалению, windows 95 не сосвсем подходит для нас.
Сейчас почти каждый компьютер имеет 4 гигабайта оперативной памяти и видео на 512мб. Я понимаю, Вам в это сложно поверить, но для нас точные физические рассчеты и графика на уровне кинотеатра в играх уже стали обычным делом.
Добро пожаловать в наш мир, надеюсь вы будете чувствовать себя комфортно.
В последнее время всё чаще встречаю цитаты из романа «Атлант расправил плечи» (да и сам оставлял). Как бы не пришлось нам цитировать «1984» Джорджа Оруэлла или что похардкорнее.
Подтверждаю. Меня в детстве пытались научить играть на гитаре. Выбесило так, что хотелось скупить все гитары мира и устроить здоровенный такой костёр.
Несколько лет назад снова проснулось желание побренчать, начал учиться этому сам (в смысле, книги, видео, прочее, без учителя). И теперь очень даже неплохо играю / переигрываю / сочиняю.
Учитель очень важен. Причем не просто «самый крутой профи по данной теме», а человек, который в состоянии научить, усилив интерес к предмету.
Эту страну нужно поднимать. От простой службы в армии, и исправления ситуации путем создания bat'ников(как кто то в комменте написал) на отключение автозапуска флешек, до прямой пропаганды правильного пути жизни в душЕ у себя, в семье, на лестничной площадке, во дворе, в городе на митинге!
Когда на 5 человек(среднестатистическая семья) будет один идейный, проникшийся круговой жопой, очень быстро общество осознает и будет действовать. Если делаешь что-то, делай это осмысленно, тогда глупые поступки и бездействие быстро пройдет.
Описал не только проблему с безопасностью и надежностью ПРО нашей, а вцелом по всем проблемам России. Очень универсально, конечно я всей картины не знаю и как действовать в той или иной ситуации знать не могу, но в своей отрасли я постараюсь, чтобы маленькими шажками искореннить все проблемы, в которых я вижу решение.
По DirectX'у хватило MSDN'а, от корки до корки. По ASM'у — я уже и не помню… был лет 17 назад талмуд Джордейна еще на 8086 со 128kb памяти :) ПК «Ассистент» производства Смоленск, потом еще был киевский «Поиск» с 640Kb, которых на всё хватало :)
По C/C++ точно не помню, разные были книги, очень хорошо подтянулся на ixbt'овском форуме программирования. По математике и алгоритмам — универ и ACM'овские олимпиады. Ну и сильно в своё время зацепила книга Майкла Абраша «Zen of Graphics Programming», который с Джоном Кармаком делал растеризатор для первого Quake. Хотя из неё в данном топике, да и вообще в современном мире с графическими ускорителями уже мало что применимо.
Лично я считаю что полей вообще должно быть два.
— Мыло
— Логин
ВСЁ
На мыло присылается уведомление о регистрации где и высылается логин и сгенерированный пароль, ссылка на активацию (если оная требуется) должна вести сразу в профиль где пароль (и всё остальное) можно сменить. ВСЁ (даже логин можно опционально сделать, сгенерировать что-то типа Юзер0001 и послать всё в том же письме, но это в случае если в проекте не будет запрещено его менять.)
Для магазинов же вообще считаю регистрацию опциональной. Карзина в идеале реализуется на JS (т.е клиент-сайд) или в крайнем случае Сессиях (если сервер-сайд) в обоих случаях регистрация там ни к чему. Однако она вполне может там быть, для постоянных клиентов. (чтоб вести историю, получать на мыло сообщения о новинках и акциях, и.т.д.)
Борьба с ботами отдельная история, капча может и быть, но она должна отсеивать ботов а не людей… Я увы чаще всего вижу капчу системы «угадай мелодию с одной ноты», и это реально бесит, словно отсеивают людей а не ботов…
Кто-то умный в свое время сделал, или же так сложилось эволюционно, что люди все время заняты. Придумана система — сначала людей растят, а потом запрягают и ездят на них. Люди пашут сутками, производят работу и зарабатывают деньги, чтобы их потратить и дать заработать другим. Люди воспроизводят сами себя.
Для упрощения все стандартизовано. Нормы, когда кто и как что должен делать.
При этом таланты сами отфильтровывают себя, проходя через груду всего ментального говна, которое на него нанизывает среда, чтобы сделать его таким, как все.
Вообще, я считаю, все люди талантливы в детстве. И эта система порочна лишь одним — она выявляет не самых талантливых, а самых несгибаемых. Если такие обладают талантами — повезло, нет — берут упорством.
ИМХО, разумеется.
Что касается человека, не буду судить за другим. Но, однозначны две вещи
1. Человек должен эволюционировать сам, всю жизнь и всегда
2. Человек должен всегда хотеть чего-то.
Два этих тезиса создают движение, поступки, мысли, и рождают окружающий мир и преобразует самого человека. Если же человек ниче не хочет, и не меняется — то ппц.
Позволю прокомментировать 2 аспекта. Извините, за сумбур — уже ночь.
Осмелюсь предложить небольшой фильтр, основанный на том, что не все формы одинаково полезны. В жизни нам нужно рассказать о себе – местоимение I и задать вопрос собеседнику – местоимение YOU. Будем считать эти ситуации самыми важными. Конечно, формы с he, she, they, we, it – важны, но просто запомним, что у you/they/we одинаковая форма множественного числа. Пока не будем рассматривать he/she/it. Поверьте, это значительно облегчит вам жизнь.
Это работает только со взрослой аудиторией. С детьми и школьниками совсем другой подход – у них больше времени и школьная программа требует знания всех грамматических форм.
Постоянные, повторяющиеся действия – Present Simple
I learn English every day. – I + основная форма глагола, никаких окончаний. Строение предложения: кто / что делает / с кем, с чем / когда.
Do you know her? – Зазубриваем [dju] + основная форма глагола без окончаний.
Where do you work?
Действия, происходящие сейчас – Present Continuous
I am learning English right now.
Are you listening?
Where are you going?
Прошедшее время
Тут все просто – учите неправильные глаголы. Нет разницы в формах I/you/he/she/it/we/they
I worked hard.
Where did you go?
When did she come? Present Perfect – начинающим лучше сосредоточиться на тех случаях, когда Present Perfect соответствует глаголу совершенного вида, когда важно действие и не указано точное время.
I have done it.
I haven’t done it yet.
Have you written to her?
Будущее время – Future Simple
Достаточно частицы will. I will do it. She will do it. Will you do it? I won’t do it. (Я в курсе про все случаи будущего времени, поверьте в жизни, новичку, пока, лучше о них не знать.)
ЭТО ПОКА ВСЕ! Овладейте уверенно этими формами, прежде чем постигать Past Continuous, Past Perfect, Future Perfect, etc.
Словарный запас
Вы правильно заметили, что новичку сложно разобраться в многозначности слов. Например, fair это и «светлые волосы» – fair hair и «честно» – It’s fair. Однако, большинство слов однозначны sofa / table / one / winter и ученик может спокойно их учить.
При изучении слов важно записывать не отдельные слова, а устойчивые словосочетания. Например: congratulate on, in the far future, commit a crime, reach your destination.
Осмелюсь указать на свой проект ilearner.ru, где вы можете найти как отдельные слова, так и словосочетания, с переводом и озвучкой. Над проектом пока не поработал дизайнер, но все слова уже озвучены и с ними можно работать.
Алгоритм, который автор использует для вычисления чисел Фибоначчи — это феерический ппц, потому что в нём шизофреническое количество повторных вычислений, и для числа пять подсчёты выглядят подобным образом:
Для подсчёта чисел Фибоначчи нужен цикл, тогда каждый член считается один раз:
Есть несколько решений. Это FreeApps, Ninite и AllMyApps. Последние вообще выиграли стартап и заручились поддержкой Intel и Microsoft (эти компании числятся в партнерах). Механизм у всех трех сервисов прост: выбираем на сайте программы, скачиваем клиент, запускаем, клиент ставит выбранные программы. Также существуют программы со статическим набором софта, такие как ZeuApp, Smart Installer Pack и апдейтеры AppGet, Appupdater, File Hippo Update Checker, Secunia Personal Software Inspector, Sumo, Update Star. Не буду здесь описывать достоинства и недостатки этих сервисов и программ, скажу лишь, что мы, досконально перебрав существующие решения, решили написать свой вариант.
Г-ин Тиньков все время учит, что надо понаблюдать за окружающим миром, за людьми и понять, чего им не хватает. Как только вы это увидите — сразу принимайтесь удовлетворять эту потребность. Последнее, что он делает, это высылает кредитки по почте. Т.е. он определил, что люди хотят пользоваться быстрыми кредитными деньгами, но им лень идти в банк и стоять очереди. Вот и все. Есть потребность — вот решение.
Что же касается неосознанных потребностей, то иногда талантливый человек сам находит какую-то потребность, т.е. то, о чем многие даже не думали. Это может быть принципиально новый продукт или услуга.
Так вот и стартап в понимании «своего бизнеса» нужно делать исходя из понятных потребностей (риск меньше, т.к. понятна целевая аудитория) или неосознанных потребностей (здесь важна вера в успех, но и риск выше, хотя велика вероятность захватить рынок всерьез и надолго).
Если мы постоянно будем изобретать велосипед, то 360 км/ч не разгоним никогда.
Я тоже недоумеваю, зачем этот алгоритм, если есть решето Эратосфена и современное решето Аткина. А тут и объяснено всё, и реализовано.
А сейчас, чтобы придумать что-то своё, нужно прежде много изучить, а потом уже сделать что-то лучше. Поверьте, гениально простые идеи на низких уровнях потихоньку исчерпались, и сейчас они гениально просты только для людей с достаточным уровнем знаний в той или иной области. Теорему Ферма тоже пыталось доказать много дилетантов (фермисты), толк от этого нулевой.
зы. Писать алгоритмы на Python — тенденция хорошая. Люблю этот язык.
И это не единичный пример. Потому ещё несколько советов:
— Не знаете как решить задачу? Разбейте её на подзадачи, часть из которых решить можете сразу. Разбили — решайте те, которые можете. Потом те, которые не можете, тоже разбивайте, до те пор пока не дойдёте до таких формулировок, в которых вам не хватает явно технических знаний, а не понимания что должно происходить, что должно быть на входе, а что на выходе. Но при этом никаких множественных выходов — формулировки вроде «записать пост в базу и показать его пользователю» не приемлемы, это две разные задачи (по крайней мере на этапе обучения). Принцип единственной ответсвенности. Если не получается избежать двух отвественностей, то чётко выделите главную и побочну — в задаче размещения поста главная отвественность разместить его так, чтобы видели другие пользователи, а не тот, кто разместил.
— Если задачи зависимые, например, вы знаете как показать запись из БД, но не знаете как её туда записать, то просто ставьте временные заглушки даже на то, что знаете, вместо обращения к БД сделайте простое присваивание с явно тестовыми данными
post.body = "Я пока не знаю как записать пост в БД, а значит и нечего читать из неё, поэтому вы видите этот текст"
.— Абстрагируйтесь от предметной области, когда работаете с техническими задачами. Не думайте категориями «пост», «новость», «статья», «документ» и внезапно окажется, что задача размещения поста в блоге практически не отличается задачи размещения новости на сайте-визитке или статьи на портале. Это просто задача размещения введенной пользователем информации.
— Изолируйте решения подзадач. Если размещение поста в блоге состоит из подзадач «получить данные из браузера», «проверить их на корректность», «записать в базу данных», «вывести пост», то пишите не «простыню» кода, а четыре строчки, вызывающие соответствующие функции/методы.
— изучайте ООП и ФП, не зацикливаясь на чём-то одном, решайте учебные задачи в обеих. Столь разные парадигмы расширят ваш кругозор и «заставят» задумываться какую в конкретной ситуации выбрать, тем более что популярные языки позволяют с легкостью использовать обе, но не смешивайте два подхода в рамках единой задачи пока не поймёте плюсы и минусы.
— Не бойтесь не оптимальности и избыточности — главное чтобы работало. Вам проще понять
if (a > b) return true else return false?
— так и пишите, а не return a > b, не бойтесь что вас назовут быдлокодером. Не бойтесь давать длинные названия функциям и переменным — лучше назвать переменнуюlengthOfTextThatUserInputed
чемl
. Не бойтесь повторяться, но бойтесь копипастить, при этом не забывайте про изоляцию — когда надоест писать одно и то же, сами заметите, что пара функций у вас отличаются только названием переменных.— Вообще ничего не бойтесь, но не забывайте про изоляцию, инкапсуляцию и низкую связанность — тогда ошибку легко исправить, а главное найти.
— Пользуйтесь отладчиком для изучения непонятного кода, а не для отладки
— Изучите TDD/BDD и попробуйте их применять, возможно понравится и/или поможет избавиться от лишних страхов
— Найдите опытного «гуру», который будет давать фидбэк на ваш код, а лучше двух с диаметрально противоположными взглядами на идеальный код.
— Никому не верьте — все люди лгут :)
"… Си хорош тем, что имеет 7-8 операторов, десяток операций — и всё. Его учить — плёвое дело. Однако он не для трусов. Си — это свобода плюс ответственность. Почему многие так и остаются на всю жизнь на Паскале? Потому что готовы пожертвовать свободой, лишь бы ответственности поменьше. А у Паскаля настоящий тоталитаризм: шаг в сторону — расстрел. Си — это настоящая демократия. Разгильдяйство и воровство тут не проходят. Однако для людей, скажем так, с совестью — полная свобода. Ассемблер — это коммунизм. Туда дорога ещё меньшему количеству народа, чем в Си. VB — гнилой капитализм. Вот почему: меньше вложить — больше заработать, пару тыков мышой — и у вас офигенное приложение, медленное — значит солидное; и ещё для его приложений надо иметь крутую тачку, а крутая тачка — это престижно."
(с) какой-то форум.
(с) Крис Касперски, Компьютерные вирусы изнутри и снаружи
Пишу Вам из 2012 года. Мы уже давно прошли уровень 95 винды и не стоим на месте. Большинство современных компьютеров имеют 64-х битную архитектуру и многоядерные процессоры. Столь громадная производительность требует наличия операционных систем, способных с ней справиться. К сожалению, windows 95 не сосвсем подходит для нас.
Сейчас почти каждый компьютер имеет 4 гигабайта оперативной памяти и видео на 512мб. Я понимаю, Вам в это сложно поверить, но для нас точные физические рассчеты и графика на уровне кинотеатра в играх уже стали обычным делом.
Добро пожаловать в наш мир, надеюсь вы будете чувствовать себя комфортно.
Несколько лет назад снова проснулось желание побренчать, начал учиться этому сам (в смысле, книги, видео, прочее, без учителя). И теперь очень даже неплохо играю / переигрываю / сочиняю.
Учитель очень важен. Причем не просто «самый крутой профи по данной теме», а человек, который в состоянии научить, усилив интерес к предмету.
Мне вот не повезло. Но и самоучкой быть неплохо.
Когда на 5 человек(среднестатистическая семья) будет один идейный, проникшийся круговой жопой, очень быстро общество осознает и будет действовать. Если делаешь что-то, делай это осмысленно, тогда глупые поступки и бездействие быстро пройдет.
Описал не только проблему с безопасностью и надежностью ПРО нашей, а вцелом по всем проблемам России. Очень универсально, конечно я всей картины не знаю и как действовать в той или иной ситуации знать не могу, но в своей отрасли я постараюсь, чтобы маленькими шажками искореннить все проблемы, в которых я вижу решение.
По C/C++ точно не помню, разные были книги, очень хорошо подтянулся на ixbt'овском форуме программирования. По математике и алгоритмам — универ и ACM'овские олимпиады. Ну и сильно в своё время зацепила книга Майкла Абраша «Zen of Graphics Programming», который с Джоном Кармаком делал растеризатор для первого Quake. Хотя из неё в данном топике, да и вообще в современном мире с графическими ускорителями уже мало что применимо.
— Мыло
— Логин
ВСЁ
На мыло присылается уведомление о регистрации где и высылается логин и сгенерированный пароль, ссылка на активацию (если оная требуется) должна вести сразу в профиль где пароль (и всё остальное) можно сменить. ВСЁ (даже логин можно опционально сделать, сгенерировать что-то типа Юзер0001 и послать всё в том же письме, но это в случае если в проекте не будет запрещено его менять.)
Для магазинов же вообще считаю регистрацию опциональной. Карзина в идеале реализуется на JS (т.е клиент-сайд) или в крайнем случае Сессиях (если сервер-сайд) в обоих случаях регистрация там ни к чему. Однако она вполне может там быть, для постоянных клиентов. (чтоб вести историю, получать на мыло сообщения о новинках и акциях, и.т.д.)
Борьба с ботами отдельная история, капча может и быть, но она должна отсеивать ботов а не людей… Я увы чаще всего вижу капчу системы «угадай мелодию с одной ноты», и это реально бесит, словно отсеивают людей а не ботов…
Кто-то умный в свое время сделал, или же так сложилось эволюционно, что люди все время заняты. Придумана система — сначала людей растят, а потом запрягают и ездят на них. Люди пашут сутками, производят работу и зарабатывают деньги, чтобы их потратить и дать заработать другим. Люди воспроизводят сами себя.
Для упрощения все стандартизовано. Нормы, когда кто и как что должен делать.
При этом таланты сами отфильтровывают себя, проходя через груду всего ментального говна, которое на него нанизывает среда, чтобы сделать его таким, как все.
Вообще, я считаю, все люди талантливы в детстве. И эта система порочна лишь одним — она выявляет не самых талантливых, а самых несгибаемых. Если такие обладают талантами — повезло, нет — берут упорством.
ИМХО, разумеется.
Что касается человека, не буду судить за другим. Но, однозначны две вещи
1. Человек должен эволюционировать сам, всю жизнь и всегда
2. Человек должен всегда хотеть чего-то.
Два этих тезиса создают движение, поступки, мысли, и рождают окружающий мир и преобразует самого человека. Если же человек ниче не хочет, и не меняется — то ппц.
Осмелюсь предложить небольшой фильтр, основанный на том, что не все формы одинаково полезны. В жизни нам нужно рассказать о себе – местоимение I и задать вопрос собеседнику – местоимение YOU. Будем считать эти ситуации самыми важными. Конечно, формы с he, she, they, we, it – важны, но просто запомним, что у you/they/we одинаковая форма множественного числа. Пока не будем рассматривать he/she/it. Поверьте, это значительно облегчит вам жизнь.
Это работает только со взрослой аудиторией. С детьми и школьниками совсем другой подход – у них больше времени и школьная программа требует знания всех грамматических форм.
Постоянные, повторяющиеся действия – Present Simple
I learn English every day. – I + основная форма глагола, никаких окончаний. Строение предложения: кто / что делает / с кем, с чем / когда.
Do you know her? – Зазубриваем [dju] + основная форма глагола без окончаний.
Where do you work?
Действия, происходящие сейчас – Present Continuous
I am learning English right now.
Are you listening?
Where are you going?
Прошедшее время
Тут все просто – учите неправильные глаголы. Нет разницы в формах I/you/he/she/it/we/they
I worked hard.
Where did you go?
When did she come?
Present Perfect – начинающим лучше сосредоточиться на тех случаях, когда Present Perfect соответствует глаголу совершенного вида, когда важно действие и не указано точное время.
I have done it.
I haven’t done it yet.
Have you written to her?
Будущее время – Future Simple
Достаточно частицы will. I will do it. She will do it. Will you do it? I won’t do it.
(Я в курсе про все случаи будущего времени, поверьте в жизни, новичку, пока, лучше о них не знать.)
ЭТО ПОКА ВСЕ! Овладейте уверенно этими формами, прежде чем постигать Past Continuous, Past Perfect, Future Perfect, etc.
Словарный запас
Вы правильно заметили, что новичку сложно разобраться в многозначности слов. Например, fair это и «светлые волосы» – fair hair и «честно» – It’s fair. Однако, большинство слов однозначны sofa / table / one / winter и ученик может спокойно их учить.
При изучении слов важно записывать не отдельные слова, а устойчивые словосочетания. Например: congratulate on, in the far future, commit a crime, reach your destination.
Осмелюсь указать на свой проект ilearner.ru, где вы можете найти как отдельные слова, так и словосочетания, с переводом и озвучкой. Над проектом пока не поработал дизайнер, но все слова уже озвучены и с ними можно работать.
Для подсчёта чисел Фибоначчи нужен цикл, тогда каждый член считается один раз:
И выполняется это за доли секунды!
Мне нравится спокойная протоплазма, — сказало Оно, и гигантский рот сомкнулся над Парком, — но мне нравится и активная протоплазма...
Г-ин Тиньков все время учит, что надо понаблюдать за окружающим миром, за людьми и понять, чего им не хватает. Как только вы это увидите — сразу принимайтесь удовлетворять эту потребность. Последнее, что он делает, это высылает кредитки по почте. Т.е. он определил, что люди хотят пользоваться быстрыми кредитными деньгами, но им лень идти в банк и стоять очереди. Вот и все. Есть потребность — вот решение.
Что же касается неосознанных потребностей, то иногда талантливый человек сам находит какую-то потребность, т.е. то, о чем многие даже не думали. Это может быть принципиально новый продукт или услуга.
Так вот и стартап в понимании «своего бизнеса» нужно делать исходя из понятных потребностей (риск меньше, т.к. понятна целевая аудитория) или неосознанных потребностей (здесь важна вера в успех, но и риск выше, хотя велика вероятность захватить рынок всерьез и надолго).
Я тоже недоумеваю, зачем этот алгоритм, если есть решето Эратосфена и современное решето Аткина. А тут и объяснено всё, и реализовано.
А сейчас, чтобы придумать что-то своё, нужно прежде много изучить, а потом уже сделать что-то лучше. Поверьте, гениально простые идеи на низких уровнях потихоньку исчерпались, и сейчас они гениально просты только для людей с достаточным уровнем знаний в той или иной области. Теорему Ферма тоже пыталось доказать много дилетантов (фермисты), толк от этого нулевой.
зы. Писать алгоритмы на Python — тенденция хорошая. Люблю этот язык.