нормальных за 10 лет не встречал, плотно работал с Gradle, Buck, Bazel
не оч плотно: Make, Maven, Ant, Cargo, Go build
было бы круто иметь в билд системе:
1. статически типизированный современный яп для билд файлов и плагинов вроде Kotlin 2. параллельную конфигурацию модулей 3. кеширование конфигурации 4. параллельное выполнение билд графа 5. локальный билд кеш между проектами
6. распределенный ремоут билд кеш 7. трейсинг и профайлинг конфигурации и билд графа 8. строгое версионирование и верификация зависимостей 9. легковесная контейнерезация окружения выполнения 10. JSON/etc вывод для интеграции с IDE и другим тулингом 11. мониторинг файловой системы
Так сложилось исторически, что последние 8 лет я занимаюсь несколькими проектами одновременно. По каждому проекту много задач. Со временем моей оперативки перестало хватать на то, чтобы запоминать всё. И я начала срывать дедлайны и подводить людей.
Возникла потребность в неком подходе, решающем эту проблему. Пробовала многое: писала задачи на день на листочке, выделяла отдельные дни под проекты, тудушки, календари, напоминалки… Проблема не решалась, только множилось количество бесполезных действий.
В итоге я пришла к bullet journal. Если коротко — миллениалы переизобрели ежедневники. Суть в том, что вы заводите физический ежедневник с _линовкой_ в точку. И записываете туда всё, что надо запомнить.
Сегодня будет небольшой тред-заметка про то, что помогает готовиться к выступлениям.
Вебинары, лекция, выступление — для всего пригодится.
Первым делом выбор темы. Если это не лекция на заданную тему, то стараюсь выбирать то, в что действительно интересно. Если есть энергия, заряженности, то она передаётся зрителю.
После выбора темы составляю план. Это помогает зафиксировать важные темы, о которых обязательно нужно сказать.
Пока меня тут джависты в конец не съели (хотя я и сам в большой степени джавист). Еще один небольшой тред. Про computer science.
Дело в том, что широко бытует у подрастающего поколения заблуждение о том, что программирование - это то же самое, что и computer science.
На самом деле нет. Computer science еще дальше от прикладного программирования, чем физика. Computer science - это в большой степени изучение теории алгоритмов решаемости отдельных задач и вопросы асимптотической сложности.
Все, доделал часть дел. Теперь #треддня. Как обещал про IT образование вообще и "первый язык" в частности.
Ну для начала непопулярное мнение. Не всем нужно войти вайти. Да, на данный момент, в IT сильно не хватает людей, поэтому зарплаты все еще высокие. Особенно в России, которая к сожалению страна достаточно бедная и возможность работать на международную компанию очень ценится.
Тем не менее как раз потому что зарплаты высокие, люди часто идут в IT не потому, что оно им нравится, а в погоне за этой самой зарплатой. Часто это так себе заканчивается. Даже в самих IT есть разные задачи, не связанные с программированием.
Забабахаю все-таки на ночь глядя небольшой тредик.
Мне тут на интервью очень хороший вопрос задали: какие технологии надо в первую очередь осваивать для научного программирования. Я как-то об этом даже не задумывался. А вопрос отличны. Подумал. Пишу приблизительный ответ.
Питон (да простит меня @_bravit) все-таки маст-хэв. Он есть и, я думаю, долго еще останется, некоторым общим минимумом среди научных программистов. Разумеется, не столько Python, сколько numpy.
К счастью, его освоение занимает пару недель максимум (см. тред про идеологию).
Учить бы я стал в первую очередь веб-технологии. И клиентские и серверные. Как ни удивительно, эта область уже содержит многие вещи, нужные для науки. Коммуникационные протоколы, технологии работы с данными и соответствующие архитектуры.