• Хочу научиться программированию. Что изучить??

    Tyranron
    @Tyranron
    Без практики ничего не изучите. Ставьте себе реальные задачи и пытайтесь их сделать. Всё. Всё остальное приложится со временем.
    Программирование - достаточно широкое понятие. Ваша позиция не сильно отличается от позиции "хочу понять физику". Что конкретно Вы хотите понять? Термодинамику, квантовую физику, или общую методику постановки экспериментов?
    Так и здесь. Вам нужно определиться чем бы Вы хотели заниматься как программист. Возможно, написать игру? Возможно, программировать микроконтроллеры? Или высоконагруженные системы на серверах? Или...?
    Когда ответите для себя на этот вопрос, хотя бы примерно, сразу же появится набор языков которые можно изучать, чтобы применять в этой области.
    Дальше - ставите себе задачу: реализовать такой-то проект в этой сфере с таким то функционалом. И начинаете делать, попутно узнавая у Google и в рекомендованных книгах как это делать и как это сделать лучше. Главное - дожать свой мелкий проект до конца. Во время реализации Вы как минимум изучите все базовые знания в выбранной области.
    Сделали - хорошо. Смотрим где у нас пробелы, чего недопонимаем, и исходя из этой информации ставим себе следующее задание, более сложное. И опять - дожать до конца.
    И так ступенька за ступенькой Вы освоите всё что пожелаете. И ни в коем случае не надо бояться, не маленькие же в самом деле. В голове ничего не перемешается, если Вы сядете и добросовестно всё для себя систематизируете, изучите и разложите по полочкам, и главное - попытаетесь применить.

    Также, помимо выбранной области, есть общие знания, которыми желательно владеть каждому программисту. Они относятся к алгоритмике, структурам данных, проектированию ПО, написанию вменяемого кода и другим аспектам. Потому параллельно всегда нужно повышать свой общеобразовательный уровень за чтением книг об высоких материях и абстрактных вещах (а потом пытаться их применять на практике).
    Все эти книги легко гугляться и можно найти в предыдущих ответах на данном ресурсе (Совершенный код, книга банды четырех и другие...).
    Дополнительно рекомендуется читать блоги/статьи умных людей. Это всё тоже гуглится в зависимости от интересов.
    Ну и практические примеры кода всегда можно черпать из открытых исходников различных проектов, github Вам в помощь.
    Главное - постоянно что-то программировать (чтобы закреплять новые знания), не бояться экспериментировать, никогда не останавливаться в развитии и двигаться вперед.
    Ответ написан
    Комментировать
  • Что не нравится php в скрипте при обращении к массиву?

    Tyranron
    @Tyranron
    Проверьте, возможно "M" или "E" или в коде, или снаружи прилетают, не латиницей, а кириллицей, из-за чего интерпретатор их считает разными строками, хотя для человека на вид они одинаковы. Других причин для бага не вижу.
    Ответ написан
  • Присвоение индексов строкам в таблице

    Tyranron
    @Tyranron
    UPDATE `board`
    SET `position`=`position`+1
    WHERE `position`>='$myPosition' AND `id`<>'$myID'

    Хотя я не вижу смысла делать отдельно поле для позиции. Этим самым Вы только мороки себе добавляете, так как нужно синхронизировать 2 поля, которые по сути означают одно и то же - место игрока в рейтинге. Достаточно `id` и `scores`. При выборке делаете ORDER BY `scores` ASC/DESC и уже в PHP проставляете порядковые номера по ходу разбора результатов запроса. Если нужна позиция по конкретному `id`, то:
    SELECT COUNT(`b`.`id`) AS `position`
    FROM `board` AS `b` JOIN `board` AS `my`
    ON(`b`.`scores`>`my`.`scores` OR (`b`.`scores`=`my`.`scores` AND `b`.`id`<`my`.`id`))
    WHERE `my`.`id`='$myID'

    ...если одним запросом, но лучше 2мя: сначала выбрать кол-во очков для конкретного `id`, потом посчитать позицию исходя из `id` и очков.
    Лучше увеличить сложность выборки, чем обновлять пол-таблицы каждый раз.
    Ответ написан
    2 комментария
  • Как подключить к Idea систему контроля версий?

    Tyranron
    @Tyranron
    Мануал посоветовать не могу. Не встречал. Но в IDEA все очень толково и понятно сделано, достаточно лишь попробовать, потыкать менюшки, кнопочки. Работа с github там даже вынесена немного отдельно чем работа с git.
    Всё что Вам нужно:
    1) Создаёте новый репозиторий на github
    2) В IDEA: VCS -> Checkout from Version Control -> Github
    3) Логин/пароль, или сертификат....и вперёд!
    4) Склонировали репо, работаете себе сколько влезет. Ctrl+K - коммит, Ctrl+T - апдейт, бранчи - слева внизу возле кодировок (должно писать аля Git: master), можно непосредственно и все это найти если тыкнуть правой кнопкой в левом окне с файлами проекта, там будет пункт Git.
    5) Нужно больше? Вот, пожалуйста: www.jetbrains.com/idea/webhelp/using-git-integrati...
    Ответ написан
    Комментировать
  • Каковы перспективы Junior'а в маленьком городе?

    Tyranron
    @Tyranron
    Если вопрос в том, чтобы как можно быстрее начать зарабатывать деньги, тогда Ваши пункты 3, 4 и 5. Бояться ничего не надо, наоборот, чем больше в жизни перемен - тем лучше.
    Но, если острой потребности в деньгах нет, и Вы, в принципе, на плаву, то лучше действительно идите в ВУЗ как и планировали. Нормальное обучение в нормальном ВУЗе немного вправит мозги и поможет научиться мыслить определенным образом, быстрее обучаться, даст системный подход, общие базовые знания. Помимо того, в ВУЗе у Вас будет гораздо больше свободного времени, нежели при работе Junior'ом, которое как раз можно с пользой потратить на самообучение: углубиться в ту область, которая Вам понравилась, поучаствовать в open source проектах, в конце-концов склепать пару своих проектов, если есть сильное желание. Всё будет зависеть конкретно от Вашего желания и от Вашего упорства, ну и немного фантазии.
    То-есть в дальновидном плане гораздо перспективнее, так как у Вас будет достаточно времени, чтобы научиться. Потому что работа - это в основном рутина, потребуется время, чтобы научиться делать какие-то рутинные вещи хорошо и качественно, но после этого, количество того, чему Вы научитесь на работе упадет в разы, и чтобы саморазвитие не остановилось, Вам нужно будет самостоятельно изучать новое и хорошо забытое старое, и оно уже гораздо реже будет пересекаться с Вашей рутиной, потому на него останется гораздо меньше времени, нежели у Вас было бы в ВУЗе.
    Ответ написан
    1 комментарий
  • Возможно ли ускорение факторизации числа симуляцией квантовых вычислений?

    Tyranron
    @Tyranron
    Теоретически и bruteforce можно распараллелить так, чтобы каждая машина проверяла всего один вариант, но тогда нам надо кол-во равное кол-ву операций, тогда bruteforce будет мгновенным, но где столько машин то взять?)
    То-есть нужно брать листочек и карандаш (или клаву и какой-нибудь python), и рассчитывать оптимальные соотношения времени выполнения к количеству ресурсов. Если получаются варианты, которые можно реализовать в реальном мире - тогда да, если нет - увы.
    Все же склоняюсь к варианту "нет", иначе много умников уже бы давно поломали RSA, DH, и иже с ними, так как известно, что квантовый компьютер - смерть асимметричной криптографии (полная ли?). Да и симуляция - всего лишь симуляция, и работает медленнее задуманного оригинала. Ведь если мы Жигулям присобачим корпус Тойоты, то ездить как Тойота Жигули не станут)...а если переделать все внутри как у Тойоты, то это уже будут не Жигули, а Тойота)
    Насчет последней фразы - могу ошибаться, так как не знаю тонкостей реализации симуляторов и КК (квантового компьютера).
    Ответ написан
    Комментировать
  • Как парсить xml в mysql?

    Tyranron
    @Tyranron
    Эм, написать скрипт и запускать cron'ом с периодичностью, или написать демона, который сам будет периодически лазить в xml-файл и перегонять дельты в базу. Как, куда и что - уже зависит от структуры xml и структуры таблиц в базе.
    Язык, на Ваш выбор: PHP, Python, Ruby, Perl, Golang, и многие другие...
    Если использовать вариант с демоном, то можно ещё реализовать вариант с filesystem notifications, то-есть повесить listener на файл, и при его изменении демон тут же будет парсить дельты в БД. Этот вариант мне кажется наиболее оптимальным.
    Ответ написан
    1 комментарий
  • Почему меняется порядок аргугментов при выполнении цикла в JS?

    Tyranron
    @Tyranron
    Потому что метод .show() вызывается при создании массива actions, и результат вызова .show() становится последним элементом этого массива.
    В цикле же, Вы просто выводите значения массива, которые были сформированы при создании этого массива в результате обращений к свойствам и вызовов методов этого объекта.
    Ответ написан
    1 комментарий
  • Как отправить HTTP запрос методом POST на URL через PHP?

    Tyranron
    @Tyranron
    Действительно, за время, которое потратили на создание вопроса, Вы могли без проблем найти интересующую Вас информацию в любом поисковике.

    Но раз вопрос уже задан, то должен быть и ответ(ы).
    Собственно, @OnYourLips дал ссылку на хороший фреймворк, но если нет смысла тащить в проект/скрипт целый фреймворк ради одного запроса, к примеру, то логичнее воспользоваться упомянутым CURL. В Вашем случае сценарий использования CURL будет выглядеть примерно следующим образом:
    $myCurl = curl_init();
    curl_setopt_array($myCurl, array(
        CURLOPT_URL => 'http://target.site.com/form.php',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => http_build_query(array(/*здесь массив параметров запроса*/))
    ));
    $response = curl_exec($myCurl);
    curl_close($myCurl);
    
    echo "Ответ на Ваш запрос: ".$response;

    Если надо передать при этом ещё и файлы, или обратиться по https, или ещё чего Вам понадобится - добро пожаловать в документацию:
    http://php.net/manual/ru/book.curl.php
    Советую обратиться к документации в любом случае, дабы ознакомиться со всеми возможными нюансами, а также понять и выбрать то, что конкретно Вам потребуется для решения Вашей задачи.
    Ответ написан
    3 комментария