Pull to refresh
27
Karma
0
Rating
Петр Калинин @pkalinin

Физик-программист и учитель

OpenFOAM с точки зрения программиста-физика

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

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

Если там нужно какое-то более сложное моделирование, какие-нибудь свои дифуры, то надо смотреть. Но в целом я не вижу принципиальных проблем, главное иметь хотя бы уравнения, описывающие процессы (а лучше — понимание того, какими численными методами их лучше решать).

OpenFOAM с точки зрения программиста-физика

Я уже давно не работаю с OpenFOAM, но в целом основная проблема, которую я вижу — это модель взаимодействия жидкости с поверхностью.

Так-то гидродинамику (течение жидкости, влияние раскручивания и т.д.) OpenFOAM вам посчитает. Но если у вас на поверхности происходят нетривиальные процессы, то надо иметь модель этих процессов.

Автоматизация для самозанятых: как интегрировать налог с IT проектом

Спасибо, все до сих пор так же работает!

А еще они сообщения об ошибках в запросе присылают на русском и притом весьма понятном языке. (А еще если им послать невалидный json, то в ответ вываливается стектрейс o_O.)

Вот моя реализация (включая обновление токена, правда, это пока в боевых условиях еще недотестировал): github.com/petr-kalinin/algoprog/blob/master/server/lib/npd.coffee

*удивительно, что такая полезная статья и так мало комментариев и плюсов

«Pascal и уж тем более Basic точно не нужны»: интервью с тренерами по спортивному программированию

Интересно. Надо будет пообщаться со знакомыми преподавателями насчет Котлина.

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

Другое дело, что IntelliJ, подозреваю, сложная (говорю по опыту PyCharm'а для питона). Создавать проект, все такое, ради программы на две строчки — это кажется слишком. Среды а-ля Wing IDE 101 или Code::Blocks кажутся удобнее в этом плане — запустил и сразу пишешь код.

«Pascal и уж тем более Basic точно не нужны»: интервью с тренерами по спортивному программированию

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

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

«Pascal и уж тем более Basic точно не нужны»: интервью с тренерами по спортивному программированию

Мы про начальное обучение школьников говорим (когда редкая программа больше сотни строчек), или про что?

«Pascal и уж тем более Basic точно не нужны»: интервью с тренерами по спортивному программированию

Школьное образование (а мы говорим все-таки про него) уж точно не нацелено на получение квалификации. Даже для продвинутых школьников. Нет никакой необходимости в школе учить язык от корки и до корки.

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

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

«Pascal и уж тем более Basic точно не нужны»: интервью с тренерами по спортивному программированию

А IDE — я рекомендую WIng IDE 101, хотя это несколько спорный вопрос.

«Pascal и уж тем более Basic точно не нужны»: интервью с тренерами по спортивному программированию

Согласен, что, конечно, это определяется и популярностью языков. Да, через 10-20 лет скорее всего будет другой хороший язык для старта.

«Pascal и уж тем более Basic точно не нужны»: интервью с тренерами по спортивному программированию

Зачем школьникам, начинающим изучать программирование, читать полноценные книги по языку? Им нужно-то небольшое подмножество языка, и для этого нужна не большая книга, а небольшая методичка. У меня на сайте (algoprog.ru, см. уровень 1) есть все нужные материалы, или вот ниже советуют pythontutor — на мой взгляд, там не очень понятно для школьников, но это мое личное мнение.

«Pascal и уж тем более Basic точно не нужны»: интервью с тренерами по спортивному программированию

Мне представляется, что на начальном уровне и в простых программах это не так существенно. И если вы не будете работать профессиональным программистом, то тоже не очень существенно. Вообще, честно говоря, не понимаю, зачем в современном мире читать книги по языку программирования, когда есть интернет.

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

«Pascal и уж тем более Basic точно не нужны»: интервью с тренерами по спортивному программированию

И много вы скриптов в офисе в своей жизни писали? Особенно таких, для которых нужно нетривиальное знание языка.

Я же пишу — «почти» никогда. Да, конечно, и паскаль вам может теоретически пригодиться, но все-таки это весьма и весьма редко.

«Pascal и уж тем более Basic точно не нужны»: интервью с тренерами по спортивному программированию

Петр из статьи — это я (хотя меня и не предупредили о том, что статья будет опубликована :), и некоторые мои фразы несколько покорректировали, но вроде не очень существенно).

Тут много дискуссий вызвал извечный вопрос про то, с какого языка начинать обучение программированию и, в частности, мой ответ, который еще и оказался вынесен в заголовок статьи. Давайте я более подробно раскрою свой ответ. (Отмечу, что за ответы Инессы и Сергея я не отвечаю и не во всем с ними согласен :) )

Я рекомендую всем начинающим начинать обучение с питона. На нем вполне можно получить базовые навыки программирования (и, как я это писал в ответе на другой вопрос — это не типы, не ООП, а переменные, циклы, if'ы и т.д.; представление о типах данных вы, конечно, тоже получите, пусть и несколько неявное). И после этого вы не просто можете написать пару учебных программ, но вы владеете инструментом, который вам наверняка пригодится и в дальнейшем в жизни — в университете, в работе, если ваша работа хоть как-то, пусть косвенно, будет связана с программированием. Если вы будете профессионально заниматься программированием, то скорее всего вы изучите и другие языки, и все продвинутые концепции, но питон все равно всегда вам пригодится. А если вы не будете профессиональным программистом, но будете писать какие-нибудь небольшие скрипты, то питона вам будет более чем достаточно.

При этом никто не мешает на питоне в целях обучения реализовывать те же простейшие сортировки и другие алгоритмы вручную — собственно, я и требую писать их вручную, см. также мой пост про это. А вот когда школьники уже довольно неплохо пишут на питоне и решают алгоритмические задачи — вот тогда я рекомендую переходить на C++, потому что он существенно быстрее питона и один из наиболее распространенных высокопроизводительных языков. (Ну или можно Java, но тут уже скорее специфика олимпиадного программирования сказывается.)

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

Ruby, go, swift, rust, даже C# и Javascript — все-таки (как минимум, пока что) достаточно нишевые языки. Это, естественно, мое мнение, я могу и ошибаться, но кажется, что именно питон сейчас является такой «затычкой к каждой бочке», языком, который пригодится более-менее везде, особенно для людей, не ставших профессиональными программистами. А профессиональные выучат себе любой другой язык, когда он понадобится.

Еще отдельно отмечу то, что на питоне очень мало boilerplate — простейшие программы типа «сумма двух чисел» пишутся в три строчки. (Сравните, например, это с тем, что происходит в той же Java.) Для школьников это, безусловно, важно — зачем им писать кучу boilerplate-кода, которого они пока не понимают.

(И да, отмечу, что я имею в виду именно чистый питон, а не Jupiter и т.д.)

(И интересная тема про Kotlin, я слушал о нем ряд хороших отзывов (не в контексте обучения), но сам я его не знаю, и язык слишком новый, опыта использования его как первого языка пока мало, если такой опыт вообще есть. Ну и не знаю, решили ли они проблемы с Java-boilerplate.)

Аналитическое вычисление производных на шаблонах C++

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

Progrobot: бот справки по языкам программирования

Вряд ли, во всяком случае далеко не в ближайшее время, тем более что я его вообще не знаю. Если и буду добавлять какие-то еще языки, то в первую очередь Java и JavaScript. С другой стороны, pull requests are welcome :)

Progrobot: бот справки по языкам программирования

Сайты в той версии, как они сейчас есть, не очень для этого подходят, это надо отдельный сайт писать, или делать что-то аналогичное боту, но локальное. Мне показалось, бот проще.

Progrobot: бот справки по языкам программирования

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

Progrobot: бот справки по языкам программирования

Про другие проекты — я не пробовал, и вряд ли буду в ближайшее время. Если дойдут руки, я скорее попробую добавить документацию по другим языкам программирования типа JS или Java. Если хотите, можете попробовать :)

Progrobot: бот справки по языкам программирования

Интересно, да, не знал. Преимущество телеграма — он у меня и так все время запущен.

Progrobot: бот справки по языкам программирования

Если я правильно понял, оно только под mac?

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity