Pull to refresh
28
0
Петр Калинин @pkalinin

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

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

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

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

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

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

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

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

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

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

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

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

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

И да, конечно, школьники понимают, что методички мало. Но имея такие базовые знания, они уже сами зачастую в состоянии нагуглить нужную информацию.
А IDE — я рекомендую WIng IDE 101, хотя это несколько спорный вопрос.
Согласен, что, конечно, это определяется и популярностью языков. Да, через 10-20 лет скорее всего будет другой хороший язык для старта.
Зачем школьникам, начинающим изучать программирование, читать полноценные книги по языку? Им нужно-то небольшое подмножество языка, и для этого нужна не большая книга, а небольшая методичка. У меня на сайте (algoprog.ru, см. уровень 1) есть все нужные материалы, или вот ниже советуют pythontutor — на мой взгляд, там не очень понятно для школьников, но это мое личное мнение.
Мне представляется, что на начальном уровне и в простых программах это не так существенно. И если вы не будете работать профессиональным программистом, то тоже не очень существенно. Вообще, честно говоря, не понимаю, зачем в современном мире читать книги по языку программирования, когда есть интернет.

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

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

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

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

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

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

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

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

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

(И интересная тема про Kotlin, я слушал о нем ряд хороших отзывов (не в контексте обучения), но сам я его не знаю, и язык слишком новый, опыта использования его как первого языка пока мало, если такой опыт вообще есть. Ну и не знаю, решили ли они проблемы с Java-boilerplate.)
Насколько я понимаю, это концептуально автоматическое дифференцирование, про которое я писал в свое время. Кажется, там тоже почти все из этого можно сделать, хотя, конечно, реализация на шаблонах впечатляет.
Вряд ли, во всяком случае далеко не в ближайшее время, тем более что я его вообще не знаю. Если и буду добавлять какие-то еще языки, то в первую очередь Java и JavaScript. С другой стороны, pull requests are welcome :)
Сайты в той версии, как они сейчас есть, не очень для этого подходят, это надо отдельный сайт писать, или делать что-то аналогичное боту, но локальное. Мне показалось, бот проще.
Все-таки даже с закладкой вам потребуется несколько действий, чтобы найти нужную справку. Как минимум задать поиск на сайте и т.д. Это не долго, конечно, но меня даже лишние секунд 5-10 раздражают, когда погружен в написание кода.
Про другие проекты — я не пробовал, и вряд ли буду в ближайшее время. Если дойдут руки, я скорее попробую добавить документацию по другим языкам программирования типа JS или Java. Если хотите, можете попробовать :)
Интересно, да, не знал. Преимущество телеграма — он у меня и так все время запущен.
Если я правильно понял, оно только под mac?

Information

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