• Как побеждать на олимпиадах по математике и информатике?

    Daniro_San
    @Daniro_San
    Программист
    Никак

    Знающий не говорит, говорящий не знает (Лао Цзы)


    Просто участвуй в олимпиадах. Пытайся. Снова и снова. И наконец, тебе должно по настоящему нравится решать олимпиадные задачки, иначе все твои усилия будут бесполезны.

    От себя скажу что решать олимпиады по программированию != Хорошо программировать

    Говорю как человек в оных регулярно участвующий.

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

    Не веришь? Посмотри любые решения олимпиадников - на codeforces.com например.
    Там по всем стандартам ад и ужас.

    Лучше потратить время на что то действительно полезное, например на свой проект, разработка которого только в радость.
    Ответ написан
    Комментировать
  • Как выводить русские символы в файл python?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Попробуйте наподобие этого:
    # -*- codecs: utf-8 -*-
    import codecs
    
    file = codecs.open("somefile", "w", "utf-8")
    file.write(u'какая-то строка')
    file.close()
    Ответ написан
    2 комментария
  • Установка и настройка lamp?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    1. Можно. И такую и другую и вообще какую угодно.
    2. В PHP если мне память не изменяет есть режим вывода ошибок на страницу. Им в продакшне не рекомендуют пользоваться, а для отладки - почему бы и нет?
    3. Два варианта - а) найти пакет с более новой версией б) собрать PHP самому.

    Нет понятия "администрирование LAMP" LAMP - нечто искуственное и расшифровывается, если Вы еще не в курсе как Linux, Apache, Mysql, PHP - и Вы хотите по всему этому один мануал? Шкафчик понадобится под мануалы...

    Винда изначально писалась под юзера и понятно что у нее UI выведен до блеска. Да, в ней играть хорошо. Или там киношку посмотреть. В линухе, даже в "дружественной" бубунте требуется хотя бы минимальное понимание того, что делаешь.
    Ответ написан
    6 комментариев
  • Python: как проверить есть ли какие-либо файлы в директории?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    import os
    
    if os.listdir(path):
        #Есть файлы
    else:
        #Нет файлов
    Ответ написан
    2 комментария
  • Есть ли хорошие онлайн-курсы по высшей математике и алгебре?

    @myrov_vlad Автор вопроса
    Благодарю всех за ответы и рекомендации!
    Последовал советую brainick и прослушал введение в математический анализ на степике, там уже, по преподавателю, вышел на курсы от CSC на Лекториуме, так же ОЧЕНЬ рекомендую лекции Райгородского на той же курсере, например про комбинаторику, это лучший лектор, что я слышал (хотя я и не избалован хорошим образованием).
    Ответ написан
    1 комментарий
  • Замена текста в куче файлов через консоль?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Скорее всего подойдет sed
    sed -i -e 's/http/https/g' *
    (в примере меняем http на https во всех файлах в текущей директории)
    Ответ написан
    1 комментарий
  • Как запустить скрипты linux с web страницы?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    CGI
    А также функции типа eval()в JS, exec() в PHP и Python, в принципе они есть во всех ЯП.
    Ответ написан
    Комментировать
  • Как заставить return возвращать несколько массивов?

    Mogidin
    @Mogidin
    def getcoordinates(array1, array2):
    	for j in array1:
    		array3 = [j * i for i in array2]
    		yield array3
    
    array1 = [1,2,3,4,5,6,7,8,9]
    array2 = [10,20,30,40,50,60,70,80,90]
    
    for a in getcoordinates(array1, array2):
    	print a
    Ответ написан
    Комментировать
  • Как вызвать функцию на основе двух функций?

    NeiroNx
    @NeiroNx
    Программист
    Ошибка в том что вы вызываете функцию требующую параметры без указания параметров.

    может так надо:
    buildgraph(getarray1(), getarray3(getarray1(), getarray2()))

    или так
    array3 = getarray3(getarray1(), getarray2())
    buildgraph(getarray1(), array3)


    или вообще так:
    array1 = getarray1()
    array2 = getarray2()
    array3 = getarray3(array1, array2)
    buildgraph(array1, array3)
    Ответ написан
    Комментировать
  • Как оперировать с полученным функцией значением в Python?

    @vilgeforce
    Раздолбай и программист
    Волшебное слово return спасет вас, наверное.
    Ответ написан
    Комментировать
  • Как научится писать обработку данных, машинное обучение и куда с этим потом идти?

    kopcap_va
    @kopcap_va
    SEO Consultant
    На эту тему на хабре есть:
    https://habrahabr.ru/company/mlclass/blog/252743/
    https://habrahabr.ru/company/spbifmo/blog/276479/
    https://habrahabr.ru/post/270449/

    Буквально неделю назад на Coursera стартовал https://www.coursera.org/learn/mathematics-and-python - посмотрите лекции, возможно станет понятнее какие из разделов математики стоит подтянуть, т.к. в самом курсе информация по ним довольно сжатая.
    Ответ написан
    4 комментария
  • Что и на чём программировать в 13 лет?

    @Puchryamba
    Студент-программист
    Как мне показалось, грамотного ответа дано ещё не было. В 13 лет хочется конкретики, а тут всё вода типа "изучай какую-то абстрактную ерунду", а что конкретно для этого делать - непонятно.
    Помню, как сам примерно в таком же возрасте просто не знал, куда обратиться за помощью, за тем, чтобы подтолкнули. Судя по описанному, автор сейчас подкован в программировании лучше, чем я в том же возрасте.
    Так вот, если бы я вернулся в 13 лет, в первую очередь я участвовал бы во всевозможных олимпиадах. Но это не олимпиады а-ля Кит или школьные (или какие там ещё бывают?), которые проводятся раз в год, а всевозможные онлайн-олимпиады, проводящие соревнования каждую неделю. Это ко всему прочему ещё и интересно! И гораздо разнообразнее, чем просто читать книжку по олимпиадному программированию.
    Хороший сайт с олимпиадными задачами на русском - Codeforces.com. Для решения допускаются все самые популярные языки, так что с теперешними вашими знаниями можно сразу включаться в состязания.
    По теории хорошо бы изучать различные структуры данных и алгоритмы (да, тут я сам говорю "изучать какую-то абстрактную ерунду" xD). К сожалению, по этому поводу не могу ничего посоветовать кроме Никлауса Вирта "Структуры данных и алгоритмы", и то эту книгу нам советовала препод в вузе, а сам я её так и не открыл :) Но в целом вектор такой: изучать всякие списки, очереди, стеки, матрицы (это если ещё не знаете о них), устройство всевозможных деревьев (для начала бинарных деревьев поиска), классно было бы получить базовое представление о теории графов (о которой я слыхом не слыхивал до университета). А также различные алгоритмы сортировки, вещи наподобие алгоритма Кнута-Морриса-Пратта и многое-многое. Если всё-таки знакомиться с теорией графов, то там также имеется несметное количество алгоритмов.
    Но совет: не стоит зачитываться теорией, все полученные знания необходимо применять на практике. Идеально: поставить себе какую-нибудь задачу, например написание того же калькулятора, но не просто +, -, *, /, а с учётом больших чисел (тут уже надо будет самому написать структуру, поддерживающую очень большие числа), с возможностью задания переменных (для их хранения можно использовать ассоциативные массивы), с учётом прямой/обратной польской записи выражения (узнать что это за записи такие и реализовать их) и со всевозможными другими фичами. Причём важно не ошибиться: задача должна быть такая, что вы не знаете на 100% её реализацию, но примерное смутное представление имеете.
    И очень важно углубить свои познания в математике. То, что даётся как математика в школе - на самом деле мало чего стоит. Ближе к старшим классам конечно лучше, но с вузом не сравнить.
    Что касается поступления в вуз: на данный момент (во всяком случае два года назад было так :D) ЕГЭ по информатике очень лёгкое, я думаю вы можете уже сейчас открыть задания (их можно взять например на reshuege.ru) и с лёгкостью решить большую часть. Так что при нормальной подготовке нет ничего невероятного в том, чтобы сдать на 100 баллов. Другое дело математика - её надо подтягивать и подтягивать. Но вообще: не знаю как обстоит дело в Москве, Санкт-Петербурге и т.п., а у нас в Краснодаре поступить было не сложно - куда сложнее удержаться. На студента в первую сессию валится много-много новой информации. Но об этом думать вам пока рано =)
    Ну и да, конечно русский язык тоже надо знать: баллы по русскому также влияют на поступление.
    Выше дали правильный совет изучать физику: во многих вузах на программистские специальности в качестве третьего экзамена рассматривают не информатику, а физику. Да и вообще знание физики лишним никак не будет.
    И естественно без английского тоже никак, стоит попробовать читать про различные технологии программирования прямо на английском - сначала сложно, но вскоре становится довольно легко.
    Получилось длинно, но надеюсь, что максимально подробно =)
    Ответ написан
    6 комментариев
  • Стоит ли учиться писать скрипты на bash?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Конечно стоит изучать bash. В системах Linux многое на нем сделано, так что в любом случае придется с ним сталкиваться.

    Я не учил bash намеренно. В какой-то момент просто взял и начал на нем писать код :-) Могу сказать, что язык ужасный, привередливый, местами крайне неудобный, перенасыщен подводными камнями (точнее морским ежами и минами). Но в то же время bash достаточно мощный язык.

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

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

    В основе идеологии Unix-подобных систем лежит простота. Так что с чем-то сложным скорее всего придется сталкиваться редко. Знаний программирования или даже основ программирования, должно вполне хватить для понимания скриптов bash, с которыми придется сталкиваться. Но пару недель его хорошенько поковырять, лишним не будет, главное мотивацию найти.
    Ответ написан
    Комментировать
  • Что если вся "data science" сведется к последовательности вызовов готовых функций?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > создается куча курсов, пишутся книги, в которых все сложные с математической точки зрения алгоритмы объясняются на пальцах
    99,(9)% уверен - вы жОстко преувеличиваете, и не все там так радужно у Data Scientistов.
    Вы сами-то пробовали те курсы и книги в деле?
    У нас реверс-инженеров в этом плане вообще печалька по определению))) но я-то не только реверс-инженер, я занимаюсь и кучей иных областей, и проблемы с документацией и высокоуровневыми средствами вижу в абсолютной любой области, даже самой-самой банальной и стандартной, типа разработки СУБД для предприятий.

    И если бы вдруг с неба упала куча сверхвысокоуровневых средств или книг с кучей готовых решений, то я бы от этого ни разу не пострадал.
    1. Насчет удобных инструментов, большинству просто синдром утенка не позволит на них перейти. А еще они платные же должны быть, иначе это вообще фантастика какая-то. Так что разброс между мною и ими - увеличился бы, а не уменьшился.
    2. Насчет книг, навыки принципиально не может давать никакая книга. Если только она волшебная, как живая вода или ковер-самолет.
    3. Ну и, как и многие другие, скажу, что если мои текущие знания и навыки окажутся не нужны, то я просто возьму и освою что-то новое.
    Могу писать программы для американских горок. Могу сверлить и резать стены. Могу перебирать ДВС и варить водопроводные трубы. Могу ремонтировать ноутбуки, смартфоны. Могу стать воздушной планетой. Могу стать воздушным асом. Берем телевизор, вставляем в Мурманский полуостров
    А еще я стану больше бизнесменом. Не меньше, а больше! Ибо больше идей, проектов, меньше технической части.
    А кто так не умеет - тот, осмелюсь сказать, вообще не особо-то и программист. И трястись над навыками и знаниями ему уж точно не стоит - у него их нет. У него нет общих навыков и знаний, иначе бы он тоже так умел.
    Вотъ.
    Ответ написан
    Комментировать
  • План подготовки для поступления в Яндекс ШАД?

    globuzer
    @globuzer
    gezgrouvingus progreszive ombusgrander greyderzux
    нужно просто учить и штрудировать математику, на всех ее уровнях, от анализа, алгебры, вероятностей до различной логики и мышления. это основа анализа данных
    Ответ написан
    1 комментарий
  • План подготовки для поступления в Яндекс ШАД?

    littleguga
    @littleguga
    Не стыдно не знать, а стыдно не интересоваться.
    Дополню ответ Mercury13: Точные задания Яндекс выкладывал на хабре, можно их посмотреть для примера: Раз, два, три и на самом сайте ШАД есть пункт про подготовку.

    Советую просмотреть и попробовать решить самим, что не получается - сразу устраивать ликбез по данной теме. Прочитать все разборы, а также литературу, которую советуют в комментариях(к постам и сам Яндекс).
    Ответ написан
    Комментировать
  • План подготовки для поступления в Яндекс ШАД?

    @Mercury13
    Программист на «си с крестами» и не только
    Алгоритмы. Немного олимпиадного программирования ОЧЕНЬ не помешает. Алгоритмы там предлагают несложные, но очень нетривиальные, надо чувствовать, как решить задачу. Элементы сложности алгоритмов. Две задачи из восьми гарантированно будут.

    Алгебра и дискретная математика. Первый курс, всё скопом, без доказательств. Линейные уравнения, квадратичные формы, матрицы, собственные векторы, жорданова форма, перестановки, графы, теория множеств, комбинаторика, алгебра логики…

    Интегралы (не слишком «злые», но приёмы «подстановка», «по частям» и «тригонометрический интеграл» всё же освоить стоит). Интеграл средней сложности — постоянный гость в ШАДý. Может быть и ещё одна задача из мутьанализа — но это как повезёт и задача будет гарантированно нетривиальная, но решающаяся на «том, что помнишь с института» — дифференцирование, ряды Тейлора, основы топологии, простейшие пределы, правило Лопиталя. Вспомни, как берутся простейшие двойные интегралы, может попасться, например, на теории вероятностей.

    ФКП. Самое начало. Аналитических функций и рядов Лорана точно не будет. А вот то, что в комплексном поле многочлен n-й степени имеет n корней, знать надо.

    Теория вероятностей. Непрерывные и дискретные вероятности. Нечто несложное, почти что на уровне кубиков и карт, но одна-две из восьми будет. Хотя статистика — важная часть ШАДа, на экзамене не требуют. И пекла типа белых шумов и интегралов Ито не будет. Хотя что-то типа дискретной марковской цепи — а вдруг, хотя знакомые мне три экзамена не было.

    Школьные олимпиадные задачи. Возможна одна.

    Итого.
    Две — алгоритмы.
    Одна-две — вероятность.
    Одна — интеграл.
    Две-три — что угодно из школьной математики, дискретной математики, матанализа, алгебры, ФКП…

    P.S. Очень хороший приём, который мне помог. Конечно, вам придётся держать скан какого-нибудь справочника или распечатку Википедии (это не возбраняется, но электроника запрещена — впрочем, калькулятора задачи не требуют). Печатайте на одной стороне, вторую — на черновик!
    Ответ написан
    4 комментария
  • Знаете игры похожие на Foldit с уклоном на физику, математику?

    pavlinux
    @pavlinux
    Да, есть квест - "Ландау и Лифшиц", в 10 частях.
    Ответ написан
    Комментировать
  • Правильно ли я понимаю суть этого условия?

    Duha666
    @Duha666
    Всё верно поняли
    Ответ написан
    Комментировать