Pull to refresh
0
@Tobanabread⁠-⁠only

User

Send message
Заметил, что у многих гуманитариев слабо развит навык декомпозиции, чёткого разделения задачи на подзадачи. Плюс навык технического абстрагирования тоже зачастую отсутствует: либо не видят общего между сущностями, либо начинают лезть в такие дебри. Помогаю девушке одной, учительнице русского и литературы и психолога, изучать программирование, пишет «бложик» в качестве учебного задания: с одной стороны, она гуглит что-то вроде «как написать блог», а, с другой, когда совместными усилиями разбили задачу на подзадачи типа «написать пост», «написать комментарий», то не видит связи между постом и комментарием, носом ткнёшь, что и то, и другое текст, вводимый пользователем и хранящийся на сервере — «ну да», не ткнёшь, а просто задавая вопросы типа «что общего?» — начинает рассказывать о том, что и то, и другое байтики в памяти компьютера (это если свернуть с рассуждений об эмоциональном состоянии пользователей, в котором он пишет).

И это не единичный пример. Потому ещё несколько советов:

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

— Если задачи зависимые, например, вы знаете как показать запись из БД, но не знаете как её туда записать, то просто ставьте временные заглушки даже на то, что знаете, вместо обращения к БД сделайте простое присваивание с явно тестовыми данными post.body = "Я пока не знаю как записать пост в БД, а значит и нечего читать из неё, поэтому вы видите этот текст".

— Абстрагируйтесь от предметной области, когда работаете с техническими задачами. Не думайте категориями «пост», «новость», «статья», «документ» и внезапно окажется, что задача размещения поста в блоге практически не отличается задачи размещения новости на сайте-визитке или статьи на портале. Это просто задача размещения введенной пользователем информации.

— Изолируйте решения подзадач. Если размещение поста в блоге состоит из подзадач «получить данные из браузера», «проверить их на корректность», «записать в базу данных», «вывести пост», то пишите не «простыню» кода, а четыре строчки, вызывающие соответствующие функции/методы.

— изучайте ООП и ФП, не зацикливаясь на чём-то одном, решайте учебные задачи в обеих. Столь разные парадигмы расширят ваш кругозор и «заставят» задумываться какую в конкретной ситуации выбрать, тем более что популярные языки позволяют с легкостью использовать обе, но не смешивайте два подхода в рамках единой задачи пока не поймёте плюсы и минусы.

— Не бойтесь не оптимальности и избыточности — главное чтобы работало. Вам проще понять if (a > b) return true else return false? — так и пишите, а не return a > b, не бойтесь что вас назовут быдлокодером. Не бойтесь давать длинные названия функциям и переменным — лучше назвать переменную lengthOfTextThatUserInputed чем l. Не бойтесь повторяться, но бойтесь копипастить, при этом не забывайте про изоляцию — когда надоест писать одно и то же, сами заметите, что пара функций у вас отличаются только названием переменных.

— Вообще ничего не бойтесь, но не забывайте про изоляцию, инкапсуляцию и низкую связанность — тогда ошибку легко исправить, а главное найти.

— Пользуйтесь отладчиком для изучения непонятного кода, а не для отладки

— Изучите TDD/BDD и попробуйте их применять, возможно понравится и/или поможет избавиться от лишних страхов

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

— Никому не верьте — все люди лгут :)

Моя любимая цитата :)

"… Си хорош тем, что имеет 7-8 операторов, десяток операций — и всё. Его учить — плёвое дело. Однако он не для трусов. Си — это свобода плюс ответственность. Почему многие так и остаются на всю жизнь на Паскале? Потому что готовы пожертвовать свободой, лишь бы ответственности поменьше. А у Паскаля настоящий тоталитаризм: шаг в сторону — расстрел. Си — это настоящая демократия. Разгильдяйство и воровство тут не проходят. Однако для людей, скажем так, с совестью — полная свобода. Ассемблер — это коммунизм. Туда дорога ещё меньшему количеству народа, чем в Си. VB — гнилой капитализм. Вот почему: меньше вложить — больше заработать, пару тыков мышой — и у вас офигенное приложение, медленное — значит солидное; и ещё для его приложений надо иметь крутую тачку, а крутая тачка — это престижно."
(с) какой-то форум.
(с) Крис Касперски, Компьютерные вирусы изнутри и снаружи
UFO landed and left these words here
Дорогой Condorious!

Пишу Вам из 2012 года. Мы уже давно прошли уровень 95 винды и не стоим на месте. Большинство современных компьютеров имеют 64-х битную архитектуру и многоядерные процессоры. Столь громадная производительность требует наличия операционных систем, способных с ней справиться. К сожалению, windows 95 не сосвсем подходит для нас.

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

Добро пожаловать в наш мир, надеюсь вы будете чувствовать себя комфортно.
В последнее время всё чаще встречаю цитаты из романа «Атлант расправил плечи» (да и сам оставлял). Как бы не пришлось нам цитировать «1984» Джорджа Оруэлла или что похардкорнее.
«Что ж, когда уголовников не хватает, их создают. Столько вещей объявляется криминальными, что становится невозможно жить, не нарушая законов. Кому нужно государство с законопослушными гражданами? Что оно кому-нибудь даст? Но достаточно издать законы, которые невозможно выполнять, претворять в жизнь, объективно трактовать, – и вы создаете государство нарушителей законов и наживаетесь на вине.» © Айн Рэнд
Подтверждаю. Меня в детстве пытались научить играть на гитаре. Выбесило так, что хотелось скупить все гитары мира и устроить здоровенный такой костёр.

Несколько лет назад снова проснулось желание побренчать, начал учиться этому сам (в смысле, книги, видео, прочее, без учителя). И теперь очень даже неплохо играю / переигрываю / сочиняю.

Учитель очень важен. Причем не просто «самый крутой профи по данной теме», а человек, который в состоянии научить, усилив интерес к предмету.

Мне вот не повезло. Но и самоучкой быть неплохо.
Каков план действий, господа?
Эту страну нужно поднимать. От простой службы в армии, и исправления ситуации путем создания bat'ников(как кто то в комменте написал) на отключение автозапуска флешек, до прямой пропаганды правильного пути жизни в душЕ у себя, в семье, на лестничной площадке, во дворе, в городе на митинге!
Когда на 5 человек(среднестатистическая семья) будет один идейный, проникшийся круговой жопой, очень быстро общество осознает и будет действовать. Если делаешь что-то, делай это осмысленно, тогда глупые поступки и бездействие быстро пройдет.
Описал не только проблему с безопасностью и надежностью ПРО нашей, а вцелом по всем проблемам России. Очень универсально, конечно я всей картины не знаю и как действовать в той или иной ситуации знать не могу, но в своей отрасли я постараюсь, чтобы маленькими шажками искореннить все проблемы, в которых я вижу решение.
UFO landed and left these words here
По 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, где вы можете найти как отдельные слова, так и словосочетания, с переводом и озвучкой. Над проектом пока не поработал дизайнер, но все слова уже озвучены и с ними можно работать.
Алгоритм, который автор использует для вычисления чисел Фибоначчи — это феерический ппц, потому что в нём шизофреническое количество повторных вычислений, и для числа пять подсчёты выглядят подобным образом:


Для подсчёта чисел Фибоначчи нужен цикл, тогда каждый член считается один раз:
<code>function fib_loop(n) {
  fib = [ 1, 1 ];
  for( i = 2; i <= n; i++ )
    fib[i] = fib[i-1] + fib[i-2];
  return fib[n];
}</code>

И выполняется это за доли секунды!
А что в этом такого?

Мне нравится спокойная протоплазма, — сказало Оно, и гигантский рот сомкнулся над Парком, — но мне нравится и активная протоплазма...
Есть несколько решений. Это FreeApps, Ninite и AllMyApps. Последние вообще выиграли стартап и заручились поддержкой Intel и Microsoft (эти компании числятся в партнерах). Механизм у всех трех сервисов прост: выбираем на сайте программы, скачиваем клиент, запускаем, клиент ставит выбранные программы. Также существуют программы со статическим набором софта, такие как ZeuApp, Smart Installer Pack и апдейтеры AppGet, Appupdater, File Hippo Update Checker, Secunia Personal Software Inspector, Sumo, Update Star. Не буду здесь описывать достоинства и недостатки этих сервисов и программ, скажу лишь, что мы, досконально перебрав существующие решения, решили написать свой вариант.
Потребности бывают осознанные и не осознанные.

Г-ин Тиньков все время учит, что надо понаблюдать за окружающим миром, за людьми и понять, чего им не хватает. Как только вы это увидите — сразу принимайтесь удовлетворять эту потребность. Последнее, что он делает, это высылает кредитки по почте. Т.е. он определил, что люди хотят пользоваться быстрыми кредитными деньгами, но им лень идти в банк и стоять очереди. Вот и все. Есть потребность — вот решение.

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

Так вот и стартап в понимании «своего бизнеса» нужно делать исходя из понятных потребностей (риск меньше, т.к. понятна целевая аудитория) или неосознанных потребностей (здесь важна вера в успех, но и риск выше, хотя велика вероятность захватить рынок всерьез и надолго).
Если мы постоянно будем изобретать велосипед, то 360 км/ч не разгоним никогда.

Я тоже недоумеваю, зачем этот алгоритм, если есть решето Эратосфена и современное решето Аткина. А тут и объяснено всё, и реализовано.

А сейчас, чтобы придумать что-то своё, нужно прежде много изучить, а потом уже сделать что-то лучше. Поверьте, гениально простые идеи на низких уровнях потихоньку исчерпались, и сейчас они гениально просты только для людей с достаточным уровнем знаний в той или иной области. Теорему Ферма тоже пыталось доказать много дилетантов (фермисты), толк от этого нулевой.

зы. Писать алгоритмы на Python — тенденция хорошая. Люблю этот язык.
1

Information

Rating
Does not participate
Location
Россия
Registered
Activity