Задать вопрос
  • Что по советуете подростку в программировании?

    Для начала определитесь с тем, каким программистом вы хотите быть?
    WEB(Тут все понятно, чаще всего это сайты, интернет магазины, сервис и т.д.)
    ПО(Разработка программного обеспечения для компьютеров, это не только скайп для винды. Это и программирование автоматических контроллеров на заводах, медицинское оборудование МРТ, стройки, роботы и прочее прочее.)
    Мобильный(Если вам интересно, разработка под мобильные устройства и планшеты).
    Интернет и технологии беспроводных сетей. И этих сфер очень много, я не охватываю игровую индустрию, бизнес аналитику и прочее.

    Сейчас вы знаете мизер от каждого куска, сконцентрируйтесь на одном и учите. Тяжело? Ищите другое решение, программирование это не один путь, это множество развилок. Ну и не исключайте вариант, может ИТ не ваше. Поскольку хороший программист, сам все найдет и сам все выучит.
    Ответ написан
    1 комментарий
  • Что по советуете подростку в программировании?

    Я бы рекомендовал Python.
    Лично мне писать на нем намного приятнее. Сам начинал изучение с C++, но т.к. учился я по книжке о языке, а не о программировании, то ничего толкового не вышло.
    Python будет проще изучать т.к. в нем можно сфокусироваться именно на программировании, а не на конструкциях языка. Рекомендую книгу Dive into Python для начала, затем советую перейти к Саммерфилду: Программирование на Python 3. Подробное руководство

    Но при этом я бы всё равно не забрасывал Java куда-то на полку, а просто отложил бы ее изучение на пару месяцев. Тогда изучать ее будет проще, т.к. ты уже будешь уметь программировать и тебе придется учить именно язык.

    Ещё дам пару советов, которые я дал бы лично себе, если бы мог вернуться в прошлое(да, мне всего 17, но все же):
    1. Больше практикуйся. Уделяй в день хотя бы час времени на изучении программирования. Главное делай это постоянно. Результаты не заставят себя ждать.
    2. Займись подготовкой к олимпиадам. Поступить в хороший вуз (МГУ / ВШЭ / ИТМО) без них крайне сложно. А чтобы выиграть олимпиады нужно готовиться не меньше года. Я вот начал слишком поздно и не успел.

    p.s. Если что можешь обратиться с доп. вопросами в ЛС, отвечу.
    Ответ написан
    2 комментария
  • Как правильно подготовиться до уровня Junior PHP?

    Как написали выше, без фреймворка далеко не уедете. Для общего будет достаточно написать блоги на Yii2 и Symfony 2(Ларавел написан на ядре от симфони, есть нечто схожее). Пользуйтесь при разработке ООП(это нужно не только работодателю, но и вам. Поскольку придет ваш клиент через два года и попросит фичу, а у вас костыль на костыле и чудище никак не расширяемо). И конечно, читайте документацию того, на чем вы работаете, на английском и чем свежее тем лучше. В частности, колонки Best Practice очень помогут на первых этапах. Книги бесполезны, то что было два года назад, уже никому не нужно.

    Реализация своего проекта, тогда и тестируйте его по полной. На собеседованиях будете рассказывать как и что делали, и почему. Можно попросится помощником кому-то на фрилансе, или поработать бесплатно. Это даст ощутимый буст в знаниях, не только как программиста, но и члена команды. Научитесь использовать миграции, системы баг трекинга, системы версионного контроля, что при командной разработке не мало важно. А в качестве джуна вы будете обязательно работать в команде и под присмотром. Важно работать с разной информацией и уметь предложить несколько вариантов разработки и решений. Как-то так.

    Если вы располагаете временем. Попробуйте сделать что-то сложнее чем интернет магазин. Например, сайт авиакомпании с рейсами и заказом билетов, мониторинг и пр. Банковские системы, работа с API гугла, фейсбука, вк, или онлайн касс. Разные виды парсинга данных и их отображения.
    Ответ написан
    8 комментариев
  • Можно ли взломать черз POST?

    @dvomaks Автор вопроса
    Однажды мой препод по программированию попросил написать программу которая выведет результат сложения двух чисел 3 и 2. Так вот с заданием никто нормально не справился, все писали типа
    х=2
    у=3
    z=x+y
    print z
    Все получили неут, а решение было простое print 5. Запомнилось на всю жизнь.
    Вот и здесь примерно то же. Задал вопрос, и в ответ куча лишней информации, 80% которой не относится к сути вопроса.
    Ответ написан
    2 комментария
  • Можно ли взломать черз POST?

    magalex
    @magalex
    Архитектор распределённых систем управления
    Смотреть надо не в этот кусок кода, т.к. здесь просто пробрасывается параметр id в запрос, вызываемый функцией file_get_contents.
    А смотреть надо туда, где на ресурсе blabla.com обрабатывается запрос $url: есть там или нет обработка входящих данных.
    В общем смотрите что такое SQL injection
    exploits_of_a_mom.png
    Ответ написан
    5 комментариев
  • Как начать познание информационной безопасности?

    ranebull
    @ranebull
    Можно начать с просмотра тех же видео от Яндекс КИТ (Курсы Информационных Технологий):
    Безопасность Unix-подобных ОС
    Криптография, шифрование
    Обзорная лекция по безопасности
    Сетевая безопасность
    Информационная безопасность
    Безопасность информационных систем
    Информационная безопасность
    Безопасность информационных систем
    Из книжек можно прочитать Андрей Бирюков: Информационная безопасность: защит...
    На том же Хабре можно пролистать раздел ИБ, чтобы понять, что можно выбрать
    InfoSecurity
    Из общего, думаю, уже можно будет понять, какими прикладными вещами заниматься.
    Ответ написан
    5 комментариев
  • Где взять инструменты (ВМ или что-то другое) для анализа механизмов защиты игровых консолей на ПК?

    @shaqster
    Symfony3 Guru
    Вы действительно один, в курсовой, хотите решить задачу, над которой весь мир бьется уже второй год? Удачи. Я бы посоветовал умерить амбиции, и взять на изучение сегу, денди, или, на худой конец, х360 или ps2.

    П.С. Не специалист, но есть подозрение, что для анализа механизмов защиты игровых консолей, изучать нужно в первую очередь консоль, а не SDK. Так что вам еще потребуется вложение в размере эдак 25к рублей.
    Ответ написан
    Комментировать
  • Программирование автомобилей?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Программирование под автомобили? C#? Вы где-то видели автомобиль под управлением Windows?

    Чтобы найти толковую информацию, следует задавать толковые вопросы.
    Если вы хотите какие-то чипы программировать, то это инструкции этого чипа, то есть ассемблер.
    Ответ написан
    Комментировать
  • Научиться парсингу - с чего начать?

    @kryvel
    Системный администратор
    Для парсинга я бы посоветовал использовать Python. Он довольно гибкий и простой в изучении. И для этих целей подходит как нельзя лучше. Особенно если нужно парсить динамический контент (AJAX, javascript и постзагруза)
    Альтернативой здесь может быть Java, но это слишком сложно для начинающих
    Можно использовать такую связку:
    Python, Selenium+phantomjs ( загрузка страниц ), beautifulsoup (парсинг html), pymysql (для выгрузки в ДБ).
    Если контент статический то все еще проще - Python + beautifulsoup
    Работает все очень быстро. А главное api очень интуитивное и разобраться в функционале очень легко.
    Ответ написан
    Комментировать
  • ООП в высоконагруженных проектах считается устаревшим?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Обычная демонстрация эффекта Даннинга - Крюгера.
    Ответ написан
    Комментировать
  • Научиться парсингу - с чего начать?

    @Unknown007
    Отличная библиотека для парсинга сайтов - grab. Правда, на питоне. Самому пришлось изучить python только ради использования этой библиотеки, и не пожалел - удобный язык, как и библиотека - делаете запросы на xpath и сохраняете результаты:
    g = Grab(log_file='parse_log.html')
    g.go(url)
    pages_block = g.doc.select('//div[contains(@class,"pager")]/div[contains(@class, "pages")]')
    if pages_block:
        pages = pages_block.select('.//li/a[not(@title="Next" or @title="Previous")]')
        page_hrefs = []
        for page in pages:
            href = page.node.attrib['href']
            page_hrefs.append(href)
            print "Page: %d" % int(page.text())
    Ответ написан
    4 комментария
  • CMS vs Руки из нужного места?

    afi13
    @afi13
    С Drupal за пару дней не разобраться и не всегда получится установить пару модулей и все готово, придется писать код. Впрочем как и с любым фреймворком. С вордпрессом лучше не связывайтесь. Лучше напишите пару костылей и велосипедов для себя, потом разберитесь с каким-нибудь фреймворком.
    Ответ написан
    4 комментария
  • Знаете ли вы программистов которые в одиночку создали крутой проект?

    @Dum_spiro_spero
    По моему больше крутых проектов которые создали ДВА человека.
    Гейтс+Аллен, Джобс+Возняк, Брин+Пейдж, и т.п... Qt тоже двое ребят написали.
    Лично знаю двух ребят которые создали очень крутую штуку, но правда очень нишевую.
    А самая "крутая штука" которую "сделал я" - делалась под моим руководством, но командой из пяти человек - с четко разграниченными задачами. В кавычках - потому что это круто это а) только для меня было б) работала небольшая, но команда т.е. не в одиночестве.
    Ответ написан
    1 комментарий
  • Знаете ли вы программистов которые в одиночку создали крутой проект?

    @asd111
    Google - два парня Сергей Брин и Ларри Пейдж
    Facebook - начал Марк Цукерберг
    Instagram - два парня, один делал приложение для iPhone, другой делал сайт, потом заработали расширились
    MsDOS - первую версию сделал один человек, потом Баллмер у него купил за 50 000 $ и права перешли Microsoft
    Nginx - начал Игорь Сысоев
    Компьютер Apple I - дело рук Стива Возняка
    Linux - начал Линус Торвальдс
    Git - начал Линус торвальдс
    Redis - Salvatore Sanfilippo ( antirez )
    Minecraft - начал Маркус Перссон ( также известный как notch )
    Dropbox - начал Дрю Хьюстон
    Shadertoy - создан Iñigo Quilez ( также известен как iq )
    C++ - начал Бьёрн Страуструп
    Python - Гвидо ван Россум
    PHP - Расмус Лердорф

    SimplaCMS - начал один человек
    DLE CMS - начал один человек
    TYPO3 CMS - начал один человек

    P.S. ответ редактировался и дополнялся
    Ответ написан
    20 комментариев
  • Знаете ли вы программистов которые в одиночку создали крутой проект?

    @vpranker
    Dropbox, если тебе это пример то вот.
    Дрю Хьюстон, написал его на Питоне, один)
    Ответ написан
    Комментировать
  • Знаете ли вы программистов которые в одиночку создали крутой проект?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Так не бывает, на какой-то стадии разработки всегда кто-то еще подключается. Там где у автора уже не хватает компетенции (например дизайн нарисовать).
    Ответ написан
    2 комментария
  • Как правильно написать авторизацию/аутентификацию?

    @enibeniraba
    Очень сильно упрощенно, без ООП и паттернов):
    Авторизация:
    session_start();
    if (!empty($_SESSION['user_id']))
    	die('Вы уже авторизованы');
    	
    $user = get_user_by_login($_POST['login']);
    if (!$user)
    	die('Пользователь не найден');
    	
    if ($_POST['pass'] !== $user['pass'])
    	die('Неверный пароль');
    
    $_SESSION['user_id'] = $user['id'];
    die('Привет, '.$user['login']);

    При этом в куки пользователя запишется session_id, а в сессию user_id.

    Проверка:
    session_start();
    if (empty($_SESSION['user_id']))
    	die('Нет прав');
    
    $user = get_user_by_id($_SESSION['user_id']);
    if (!$user || !$user['active'])
    {
    	unset($_SESSION['user_id']);
    	die('Нет прав');
    }


    Выход:
    session_start();
    unset($_SESSION['user_id']);


    Если нужен доступ только с одного устройства (последнего, с которого был вход), то храним на сервере последнюю сессию пользователя и при каждом запросе:
    if ($user['session_id'] !== session_id())
    {
    	unset($_SESSION['user_id']);
    	die('Нет прав');
    }


    Если с нескольких, то делать ничего не нужно.

    При oauth авторизации через внешние сервисы в сессии и куках будет все то же самое.
    В бд добавятся 2 поля auth_provider и auth_provider_id.
    В auth_provider у тебя будет vk или fb или google... в auth_provider_id - id пользователя в vk, fb...
    Когда юзер нажимает кнопку войти через vk, ты его редиректишь на контакт. Там он что-то делает. Потом контакт его редиректит к тебе с ?code=request_code.
    Ты используя code делаешь запрос к api контакта на получение access_token.
    Получив access_token, делаешь запрос к api на получение инфы о пользователе. В этой инфе должен быть какой-нибудь уникальный id (auth_provider_id).
    Если у тебя нет пользователя с таким auth_provider_id для провайдера vk, то создаешь его либо без логина, либо генерируешь что-нибудь, без пароля.
    Если пользователь был создан или он был до этого, помещаешь в сессию user.id и считаешь пользователя авторизованным.

    PS:
    По каждой строчке ответа есть нюансы, но думаю общая картина такая.
    Естественно лучше написать класс для пользователя, чтобы использовать что-то вроде:
    $user->is_auth();
    $user->auth_by_id($user_id);
    $user->unauth();
    Ответ написан
    9 комментариев
  • Что грозит вебмастеру, если он настроил парсинг новостей из новостного сайта в свой сайт?

    dmitriy_novikov
    @dmitriy_novikov
    Занимаюсь web-разработкой с 2010г. http://dmnv.ru
    плохое ранжирование за неуникальный контент грозит)
    если серьезно - читайте, что об этом пишут сайты-источники, разрешают они копирование материалов или нет, на каких условиях. ну и смотрите по ситуации.
    Ответ написан
    Комментировать
  • ООП в высоконагруженных проектах считается устаревшим?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Мужик не молодец в том плане что совсем функциональный подход это не круто ниразу, но вместе с тем как ни странно прав, в том что сложное ооп (по крайней мере в тех хайлоад проектах что я видел) - не применялось ниразу.
    Ответ написан
    Комментировать