Вопрос к программистам, общий

NtNet
Уже с Приветом
Posts: 4309
Joined: 15 Jul 2015 03:22

Вопрос к программистам, общий

Post by NtNet »

А вы перед тем как писать коды свои как разрабатываете алгоритм?
- На основе знания языка (языков) программирования- т е знаете прекрасно какая команда (оператор и тд) что делает и так и опираясь на эти знания решаете задачу?
- Как-то по другому?

- Насколько хорошо знаете язык(и) с которыми работаете?

×××
На открытие темы натолкнул сегодняшний митинг с боссом (что-то вроде tech lead он) -
У меня есть мелкая задачка - в SSAS добавить measures такие же как я уже делала (Total minutes, и разная куча других) - но для Same Period Prior Year
Во встроенном DAX там есть функция SameperiodLastYear , я ее и использовала
(Твкже же как и в Power BI)

А босс сказал что вот в SQL он когда-то делал что-то более сложное чтобы добиться подобного результата
Я и напомнила что он тогда использовал
Union all и в where задал условие за текущий год-1 (тоже уже точно не помню, функции date там были)

А он заметил - что он совсем не помнит что он тогда использовал - а что он
Очень хорошо- мгновенно может выстроить алгоритм для решения той или иной задачи...

Вот я и думаю - находить алгоритм - это способности нужны или есть книги какие - где этому научиться можно?
В применении к базам данных, с исп SQL?

Вот я например, если не сложная,задача стоит то тоже очень быстро решение знаю
А если сложное или то ч чем я не сталкивалась - то впечатление что у меня не хватает - то ли знания более advanced SQL, толи как создать алгоритм решения задачи. Пока не всегда понимаю чего не хватает ))

Просто меня поразила как он забыл про union all
В то же время если задачу поставить он действительно мгновенно знает что надо написать чтобы решить !!!
User avatar
Helmsman
Уже с Приветом
Posts: 6450
Joined: 15 May 2003 00:04
Location: LA

Re: Вопрос к программистам, общий

Post by Helmsman »

Оно почти как математика - нужно представлять, где какую формулу применить или как свести к готовой формуле. Т.е. знать побольше "формул" и где/как они применяются сильно помогает. Сюда же знание используемых инструментов и предметной области.
alex_127
Уже с Приветом
Posts: 7723
Joined: 29 Mar 2000 10:01
Location: Kirkland,WA

Re: Вопрос к программистам, общий

Post by alex_127 »

NtNet wrote: 21 Sep 2019 05:29 А вы перед тем как писать коды свои как разрабатываете алгоритм?
- На основе знания языка (языков) программирования- т е знаете прекрасно какая команда (оператор и тд) что делает и так и опираясь на эти знания решаете задачу?
- Как-то по другому?

- Насколько хорошо знаете язык(и) с которыми работаете?

×××
На открытие темы натолкнул сегодняшний митинг с боссом (что-то вроде tech lead он) -
У меня есть мелкая задачка - в SSAS добавить measures такие же как я уже делала (Total minutes, и разная куча других) - но для Same Period Prior Year
Во встроенном DAX там есть функция SameperiodLastYear , я ее и использовала
(Твкже же как и в Power BI)

А босс сказал что вот в SQL он когда-то делал что-то более сложное чтобы добиться подобного результата
Я и напомнила что он тогда использовал
Union all и в where задал условие за текущий год-1 (тоже уже точно не помню, функции date там были)

А он заметил - что он совсем не помнит что он тогда использовал - а что он
Очень хорошо- мгновенно может выстроить алгоритм для решения той или иной задачи...

Вот я и думаю - находить алгоритм - это способности нужны или есть книги какие - где этому научиться можно?
В применении к базам данных, с исп SQL?

Вот я например, если не сложная,задача стоит то тоже очень быстро решение знаю
А если сложное или то ч чем я не сталкивалась - то впечатление что у меня не хватает - то ли знания более advanced SQL, толи как создать алгоритм решения задачи. Пока не всегда понимаю чего не хватает ))

Просто меня поразила как он забыл про union all
В то же время если задачу поставить он действительно мгновенно знает что надо написать чтобы решить !!!
В Sql это больше вопрос опыта и разнообразного чем знание хитростей. Когда-то давно я знал все про дедлоки и что случилось. Но дать совет что именно поправить в большой системе не мог - такого опыта у меня не было.
Andriy777
Уже с Приветом
Posts: 1486
Joined: 28 Jan 2002 10:01

Re: Вопрос к программистам, общий

Post by Andriy777 »

Попробуйте развлечься книгами Курпатова (Красная Таблетка, Чертоги Разума) и Ю-туб видео подборкой "Вынос Мозга" от Савельева. Для Ю-Туба, чтобы его не смотреть, можно перегонять в mp3, mp4 с помощью https://ytmp3.cc/ и слушать как аудио на телефоне. Книги Курпатова в аудио есть тоже.

Есть и другие на английском (с которых, видимо, Курпатов тоже черпает инфу для своих). Что-нибудь типа "Thinking Fast and Slow".

Книги Курпатова - аггрегированная, выстроенная в систему, подборка знаний от других. Савельев - просто прикольный проффесор.

Они то Вам и расскажут о разных состояниях мозга. В момент, когда босс болтает на митинге, у него, скорее всего, мозг решает первоочередную задачу доминантности. А, вот, когда нужно решать реально техническую задачу, то нужно его переводить в режим "озадаченности". Он не перейдет туда раньше 20 минут по любому, если только таких задач человек не решает по 5 за день и решения "в кеше".

В этом разрезе меня всегда волновала проблема программистских интервью.

1. Никто не хочет, чтобы задачу кандидат знал.
2. Если он ее реально не знает, но потенциально может решить, то он все равно должен 20 минут переводить свой мозг из режима "треплюсь и продаю свое резюме" в режим "озадаченность над проблемой". Это только чтобы начать реально думать. Ее еще надо решить. А время на интервью ограничено, хотят 2 задачи за интервью, вступление перед задачами, вопросы после и на все про все 1 час.

Вот и получается, что все практикуются на Leetcode и непосредственно перед интервью штудируют книги. Заполняют кеш. Гениев не найти.
Andriy777
Уже с Приветом
Posts: 1486
Joined: 28 Jan 2002 10:01

Re: Вопрос к программистам, общий

Post by Andriy777 »

А насчет "как вы разрабатываете алгоритм" - анекдот.

На въезде в США, офицер проводит интервью с H1B приезжим. Диалог.

- so, you are a software engineer, right?

- yes, sir.

- so, can you explain me what is "heap" structure and when is it used?

- may i take a look on Stackoverflow.com?

- wellcome to the United States!
NtNet
Уже с Приветом
Posts: 4309
Joined: 15 Jul 2015 03:22

Re: Вопрос к программистам, общий

Post by NtNet »

Вот и я в сложных для меня случаях - на stackoverflow (или реже на привет)
Причем в 70% очень помогает
NtNet
Уже с Приветом
Posts: 4309
Joined: 15 Jul 2015 03:22

Re: Вопрос к программистам, общий

Post by NtNet »

Andriy777 wrote: 21 Sep 2019 15:45 Попробуйте развлечься книгами Курпатова (Красная Таблетка, Чертоги Разума) и Ю-туб видео подборкой "Вынос Мозга" от Савельева. Для Ю-Туба, чтобы его не смотреть, можно перегонять в mp3, mp4 с помощью https://ytmp3.cc/ и слушать как аудио на телефоне. Книги Курпатова в аудио есть тоже.

Есть и другие на английском (с которых, видимо, Курпатов тоже черпает инфу для своих). Что-нибудь типа "Thinking Fast and Slow".

Книги Курпатова - аггрегированная, выстроенная в систему, подборка знаний от других. Савельев - просто прикольный проффесор.

Они то Вам и расскажут о разных состояниях мозга. В момент, когда босс болтает на митинге, у него, скорее всего, мозг решает первоочередную задачу доминантности. А, вот, когда нужно решать реально техническую задачу, то нужно его переводить в режим "озадаченности". Он не перейдет туда раньше 20 минут по любому, если только таких задач человек не решает по 5 за день и решения "в кеше".

В этом разрезе меня всегда волновала проблема программистских интервью.

1. Никто не хочет, чтобы задачу кандидат знал.
2. Если он ее реально не знает, но потенциально может решить, то он все равно должен 20 минут переводить свой мозг из режима "треплюсь и продаю свое резюме" в режим "озадаченность над проблемой". Это только чтобы начать реально думать. Ее еще надо решить. А время на интервью ограничено, хотят 2 задачи за интервью, вступление перед задачами, вопросы после и на все про все 1 час.

Вот и получается, что все практикуются на Leetcode и непосредственно перед интервью штудируют книги. Заполняют кеш. Гениев не найти.

Спасибо за ссылки и за детальный анализ
Начальник прямо при мне иногда пишет программу, если у меня затык какой или что-то показать хочет

Меня смущает что сама я так категорически не умею
Т е - если совсем что-то простое (наподобие задачки в теме выше с 2мя списками студентов, то идея сразу в голове, и то все-же мне попробовать сначала надо, для точного ответа)

А так - я трачу ну ... минут 30, а иногда и час+ на рродумывание и пробование - как именно я делать это буду

Не умею сразу из головы брать решение

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

Может из-за опыта, не знаю
DropAndDrag
Уже с Приветом
Posts: 6024
Joined: 11 Mar 2011 05:36

Re: Вопрос к программистам, общий

Post by DropAndDrag »

NtNet wrote: 21 Sep 2019 21:53 Начальник говорит, да и я это видела, что он прям почти что мгновенно решение знает
Но он правда программирует абсолютно или почти все свободное время
Включая выходные-праздники и свой отпуск

Может из-за опыта, не знаю
при узкой специализации или когда держит руку на пульсе такое возможно. это как решение олимпиадных задач по математике
DropAndDrag
Уже с Приветом
Posts: 6024
Joined: 11 Mar 2011 05:36

Re: Вопрос к программистам, общий

Post by DropAndDrag »

NtNet wrote: 21 Sep 2019 05:29 А вы перед тем как писать коды свои как разрабатываете алгоритм?
- На основе знания языка (языков) программирования- т е знаете прекрасно какая команда (оператор и тд) что делает и так и опираясь на эти знания решаете задачу?
- Как-то по другому?
- Насколько хорошо знаете язык(и) с которыми работаете?
1. - если это просто программа, то обычно проблем нет. больше гимора с разбиванием на объекты и их взаимодействие, или в state machine аккуратно прописать все действия и не запутаться
- если действительно новый алгоритм, то обычно он завязан на что-то реальное, а там уже не до программистских заморочек
2. если бы я знал все, что использую, моя башка бы уже дала дуба ))) хорошо, если вы используете что-то одно, а вот если у вас десяток продуктов в разных областях ( не только IT), а еще каждый год новые релизы ... так что постоянно натыкаюсь на что-то новое
3. если не знаю что-то конкретное, то обычно есть ощущение, что должно быть и проблема правильно сформулировать, чтобы найти
4. скорее всего уже знаю плохо, но зато знаю много чего кроме языков ...
Andriy777
Уже с Приветом
Posts: 1486
Joined: 28 Jan 2002 10:01

Re: Вопрос к программистам, общий

Post by Andriy777 »

DropAndDrag wrote: 21 Sep 2019 22:04
NtNet wrote: 21 Sep 2019 21:53 Начальник говорит, да и я это видела, что он прям почти что мгновенно решение знает
Но он правда программирует абсолютно или почти все свободное время
Включая выходные-праздники и свой отпуск

Может из-за опыта, не знаю
при узкой специализации или когда держит руку на пульсе такое возможно. это как решение олимпиадных задач по математике
Дьявол в деталях. Мгновенный ответ в фазе "thinking fast". Это когда раньше мозг решал множество подобных задач и сами задачи легкие. В Макдональдсе народ гамбургеры лепит быстрее любой домохозяйки. В Jiffy Lube и масло поменяют, и лампочку заменят быстрее, чем я почешу репу.

Еще может быть, что мозг обманывает. Он выдает по-быстрому решение и говорит "отцепись от меня". Главное не поверить ему, остановиться, найти способ перепроверки. Вы, или начальник убедились в том что его решение верное? Или дело было вроде:

1. Начальник быстренько налабал прототип и прогнал тривиальный тест.
2. Сказал - "ну что-то типа того, доведите до ума", блеснул умом и побежал.

Это если не вдаваться в "Вынос Мозга" от Савельева. Тот вам расскажет про "индивидуальную изменчивость", про "поля различающиеся до 4-х раз и под-поля различающиеся до 40 раз у различных людей". Тогда на работе есть еще и интересное социологическое исследование - гений ли начальник или выпендривается и маскируется.
Andriy777
Уже с Приветом
Posts: 1486
Joined: 28 Jan 2002 10:01

Re: Вопрос к программистам, общий

Post by Andriy777 »

NtNet wrote: 21 Sep 2019 21:53 Меня смущает что сама я так категорически не умею
Т е - если совсем что-то простое (наподобие задачки в теме выше с 2мя списками студентов, то идея сразу в голове, и то все-же мне попробовать сначала надо, для точного ответа)

А так - я трачу ну ... минут 30, а иногда и час+ на рродумывание и пробование - как именно я делать это буду
Эйнштейн, говорят, был "тормозной педалью". Медленно думать - далеко не грех.
NtNet
Уже с Приветом
Posts: 4309
Joined: 15 Jul 2015 03:22

Re: Вопрос к программистам, общий

Post by NtNet »

Andriy777 wrote: 21 Sep 2019 22:49
DropAndDrag wrote: 21 Sep 2019 22:04
NtNet wrote: 21 Sep 2019 21:53 Начальник говорит, да и я это видела, что он прям почти что мгновенно решение знает
Но он правда программирует абсолютно или почти все свободное время
Включая выходные-праздники и свой отпуск

Может из-за опыта, не знаю
при узкой специализации или когда держит руку на пульсе такое возможно. это как решение олимпиадных задач по математике
Дьявол в деталях. Мгновенный ответ в фазе "thinking fast". Это когда раньше мозг решал множество подобных задач и сами задачи легкие. В Макдональдсе народ гамбургеры лепит быстрее любой домохозяйки. В Jiffy Lube и масло поменяют, и лампочку заменят быстрее, чем я почешу репу.

Еще может быть, что мозг обманывает. Он выдает по-быстрому решение и говорит "отцепись от меня". Главное не поверить ему, остановиться, найти способ перепроверки. Вы, или начальник убедились в том что его решение верное? Или дело было вроде:

1. Начальник быстренько налабал прототип и прогнал тривиальный тест.
2. Сказал - "ну что-то типа того, доведите до ума", блеснул умом и побежал.

Это если не вдаваться в "Вынос Мозга" от Савельева. Тот вам расскажет про "индивидуальную изменчивость", про "поля различающиеся до 4-х раз и под-поля различающиеся до 40 раз у различных людей". Тогда на работе есть еще и интересное социологическое исследование - гений ли начальник или выпендривается и маскируется.
Частично именно что "fast thinking" типа отцепись от меня. Но все же, в большинстве случаев начальник гораздо лучше знает SQL, принципы и алгоритмы при программировании. И то что он советует 100% идеально.
Я в лучшем случае могу придумать что-то не хуже, но и не лучше

Но тут еще дело в его 25 летнем опыте
И знание и постоянное писание на еще нескольких языках (какая-то там 2я работа где еще на c# или что-то подобное)
Короче, доя него это как хобби
24/7 причем

У меня же пока около 2х лет опыта SQL
Причем меня кидают на разные другие , хоть и related продукты, где нужно чему-то новому учиться
Типа power bi, sass, ssrs и т д
И там бывают свои языки встроенные
Не успеваю я SQL натаскаться, как уже что-то новое

Но это в перспективе не проблема, и то и это учу, и практикуюсь

Начальник очень талантливый (как минимум просто отличный девелопер)

Я лично для себя волнуюсь - что - в следующих работах будет надо очень быстро решать сложные задачи , а я медленная ...
И в тех других работах будет не non profit контора, и начальник увлекающийся программер, тк это его единственное дело по жизни
И его особо не волнует медленно я делаю или быстро
(Если честно,я иногда и за 2-8 часов код напишу-проверю и в графике нарисую, а 1й день только митинги и отдых)

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

(Это 1я моя контора где я именно девелопер, раньше была аналистом в аксесе 4 года, а до этого пробовала разные бизнес аналист работы и мне совсем то не пошло)
NtNet
Уже с Приветом
Posts: 4309
Joined: 15 Jul 2015 03:22

Re: Вопрос к программистам, общий

Post by NtNet »

Andriy777 wrote: 21 Sep 2019 23:08
NtNet wrote: 21 Sep 2019 21:53 Меня смущает что сама я так категорически не умею
Т е - если совсем что-то простое (наподобие задачки в теме выше с 2мя списками студентов, то идея сразу в голове, и то все-же мне попробовать сначала надо, для точного ответа)

А так - я трачу ну ... минут 30, а иногда и час+ на рродумывание и пробование - как именно я делать это буду
Эйнштейн, говорят, был "тормозной педалью". Медленно думать - далеко не грех.
Ну я,не Эйншиейн :))
Но и не тормоз полный
Просто я лично предпочитаю медленно, основательно работать. В идеале, когда есть 2-4 дня на проект какой-нибудь
И тогда я могу время свое рассчитать так что день расслабляюсь и только поверхностно готовлю что-то или делаю не важные дела, а потом дня 2 работаю пока все не идеально.
Короче, когда можно не торопясь и временем самой распоряжаться

Но бывало что надо было быстро выдавать что-то за пару часов "ad hoc" задачи какие-нибудь
Так тоже могу, но чаще не получаю от такого удовольствия
И устаю очень и от митингов и от быстрого ритма
NtNet
Уже с Приветом
Posts: 4309
Joined: 15 Jul 2015 03:22

Re: Вопрос к программистам, общий

Post by NtNet »

Если точнее выразиться - там где не сложные задачи - я приспосабливаюсь и быстро отлично все делаю

Но --- если что-то сложное-новое то быстро не могу!
Мне будет тяжело

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

Это как раз одна из главных причин по которой я сомневаюсь и мечтаю (пока :))
уйти из ИТ и из программирования
Не исключено, раз люди быстро умеют решать сложные вещи и им это нравится (у меня чаще стресс от этого) - то я просто не имею таких способностей и занимаюсь не вполне своим делом получается !
NtNet
Уже с Приветом
Posts: 4309
Joined: 15 Jul 2015 03:22

Re: Вопрос к программистам, общий

Post by NtNet »

Начальник, кстати говорит, что я полностью технически способна быть именно db developer
(Если бы не характер капризный немного)
Не исключает через много лет что я вместо него буду тут директором

Но - естественно --- я не буду ждать никакие годы там, еще некоторое время пройду этот "bootcamp" и буду искать работу уже надеюсь на в 1.5-2 раза больше зп и посильнее позицию
-)))👿😎

Return to “Вопросы и новости IT”