• Специалист по информационной безопасности - кто это?

    ntkt
    @ntkt
    Потомственный рыцарь клавиатуры и паяльника
    На первых двух курсах по прямой специальности везде рассказывают очень мало, т.к. идет общая инженерная подготовка. Ваша задача -- тупо прокачивать мозг на самом жёстком из этого, пока он максимально гибок (даже в 25 лет будет сложнее, чем в 18, поверьте). Препод лажает? Ищем хороший учебник и хреначим. На лабах дают написать RPN-калькулятор на бейсике? Ну ОК, делаем для галочки и в сэкономленное время вместо этого пишем его на ассемблере под ARM. И так далее.

    В технической ИБ есть проблема -- чтобы по-честному заниматься защитой любого стека технологий, надо понимать, как он работает на всех уровнях, от пользовательского интерфейса до дырок с электронами в полупроводнике. В одного среднего человека это понимание влезает очень плохо и с пробелами, но что делать, такова жизнь.
    Как иначе Вы будете по-честному решать, например, например, задачу защиты помещения с тем самым телекоммуникационным оборудованием от ПЭМИН (TEMPEST по-английски), не зная физических основ (да хотя бы и то, почему витая пара -- витая внутри оплетки, и с каким шагом она должна быть переплетена).

    А вот как оценить качество преподавания в Вашем конкретном случае, и какую стратегию и тактику обучения Вам следует выбрать -- это совершенно отдельный вопрос, на который готового ответа никто не даст.
    Ответ написан
    1 комментарий
  • С чего стоит начать веб-программисту?

    copist
    @copist
    Empower people to give
    copist.ru/blog/2014/03/14/need-knowledge-mind-map карта знаний для веб-разработчика - там есть и программирование и не программирование
    Ответ написан
    Комментировать
  • Сколько треугольников на картинке?

    0neS
    @0neS Автор вопроса
    По алгоритму @qmax написал функцию:

    function countTriangles($sideLength) {
        $count = 0;
        for ($i = 0; $i < $sideLength; $i++) {
            $count += (2 * $i) + 1;
            for ($j = 0; $j < $i; $j++)
                $count += $i - $j;
        }
        return $count;
    }

    Вроде бы работает правильно.

    График (длина стороны от 0 до 100):

    30917f40ce024d368738b7390c989543.png
    Ответ написан
    3 комментария
  • С чего стоит начать веб-программисту?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    Конечно же, начать надо с вопроса на тостере!
    <input type="checkbox" checked> Выполнено
    Потом воспользоваться поиском по тостеру и в гугле.
    Ответ написан
    Комментировать
  • Как проверить сайт на нагрузку?

    oxyberg
    @oxyberg
    Продуктовый дизайнер ВКонтакте
    Создать пост на Хабре со ссылкой на свой сайт.
    Ответ написан
    Комментировать
  • Удалить из списка не повторяющиеся эллементы

    a = [1, 1, 0, 1, 1, 1]
    result = [n for n in a if a.count(n) > 1]
    Ответ написан
    Комментировать
  • Как побороть боязнь чистого листа?

    @larionov_n
    1) Начните с простого изучения языка на CodeAcademy.com. Java - слишком сильно завязан на ООП. Выбирайте - Python, он проще для начала. Пройдите все задания на академии.
    2) Изучите мат.часть и принцип работы встроенных в язык базовых функций и конструкций (Идеально желательно).
    3) Попробуйте сфокусировать свое мышление не на результат (Готовая программа, игра, редактор), а на последовательность действий с помощью которых вы напишите одну функцию (Но она будет идеально выполнять свою единственную задачу).
    4) Необходимо понимать, что у нас есть данные и методы работы с данными. Для этого вам нужно изучить структуры данных и лучшие практики по работе с ними. (В помощь школьный PASCAL - Олимпиадные задачи, к примеру реализация алгоритма быстрого поиска, найти меньший элемент, наибольший). - Советую на это потратить больше всего сил. При реализации какого либо алгоритма, советую на бумажке подставлять значения вместо переменных и самому его проигрывать в голове.
    5) Изучите основные алгоритмы - Только после того как вы будете готовы работать со структурами данных и будете уверенны в знании выбранного языка. Советую перед этим прочитать книги по множествам, вспомнить базовую алгебру, четко самому вывести понятие конечной суммы в математике, логарифма. - Как минимум. Начинайте читать Вирта. (Это тяжело но помогает научиться думать как следует).
    6) Читайте SourceCode, это самый интересный и самый полезный вариант для получения представления о структуре программ. С библиотек не советую начинать. Когда будет сами уже писать маленькие программы без нужды заходить в гугл или stackoverflow. Можете переходить на библиотеки. Зарегистрироваться в GitHub и читать открытый код. Когда поймете, что это помогло. Можете стать контрибутором одной из любимых библиотек. (Любой работодатель это ценит).
    7) ООП - После всех пунктов, можете почитать Буча и попробовать труды Банды четырех. Шаблоны проектирования, Мартин Фаулер (Рефакторинг, Шаблоны корпоративных приложений).
    8) БД (Проектирование, выборки, нормализация, SQL язык).
    9) Полет вниз (Переходите на C, потом на C++). Реализуете уже написанные map, reduce, изучаете более подробно структуры данных, алгоритмы, понимаете указатели, работаете с памятью, высчитываете эффективность алгоритмов. Напишите большую программу на C/C++ - которая будет выполнять 20 разных функций (Смотреть API вконтакте, выводить в окно информацию с АПИ, реагировать на кнопки и прочее). Можете попробовать GameDev.
    10) Функциональное программирование.
    11) Параллельное программирование.
    12) Системное программирование (Unix, напишите свой интерпретатор, почитайте книгу драконов, посмотрите как работают различные компиляторы с вашим кодом).
    13) Завалите все кто вас обидел в этом посте.

    Удачи!
    Ответ написан
    1 комментарий
  • Как ответить на предложение сотрудничества?

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

    vvpoloskin
    @vvpoloskin
    Инженер связи
    muzhik-bleat_14037314_orig_.jpg
    Ответ написан
    Комментировать
  • Как побороть боязнь чистого листа?

    metamorph
    @metamorph
    У Вас просто нет подходящей задачи.

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

    А Вы, судя по всему, пытаетесь начать программировать просто так, "для того, чтобы было". Отсюда куча внутренних противоречий: "да зачем мне это надо?".

    Найдите задачу по душе и вперед с песней.

    Что же касается кривого кода - это действительно может стать сильным стопором ("решение существует, но оно какое-то кривое, поэтому я не буду его применять, а посижу и подумаю над более красивым").

    Лично я с таким борюсь следующим образом: если чувствую, что затупил, пишу кривую реализацию с пометкой "FIXME: ...". Это позволяет двигаться дальше, и в процессе может либо прийти в голову нормальное решение, либо логика кода может смениться до неузнаваемости (и кривое решение уйдет само собой).
    Ответ написан
    Комментировать
  • Как побороть боязнь чистого листа?

    @Kyberman
    Хороший способ борбы с сабжем - метод коротких итераций. То есть, как сказал @gleb_kudr, начать с чего нибудь очень простого и реализовать это, не думая о качестве кода. Затем посмотреть, не слишком ли плох код, если надо сделать рефакторинг. Потом добавить ещё какую-нибудь небольшую функциональность, снова рефакторинг и так далее. Вам стоит прочитать эту книгу.
    Сомневаюсь в выборе языка "java или python"
    - попробуйте написать на обоих что-нибудь простое. Хороший программист должен знать больше одного языка программирования.
    Ответ написан
    Комментировать
  • Как побороть боязнь чистого листа?

    @killla
    Иди грузчиком работать. Кодинг это не твоё.
    Ответ написан
    24 комментария
  • Как написать самый простой цикл на bash?

    tmin10
    @tmin10
    может запустить так будет проще: ./script || ./script ?
    Ответ написан
    Комментировать
  • Как осуществить чтение CSV файла в Python не с 1 строки?

    un1t
    @un1t
    Смею предположить, что ты хочешь пропустить первую строку, т.к. там названия столбцов. В этом случае рекомендую использовать csv.DictReader
    Ответ написан
    2 комментария
  • Как вы боретесь с ленью?

    telp
    @telp
    Системный администратор, изучаю программирование
    Не все так просто.

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

    1. Лени не существует. Есть лишь недостаточная заинтересованность. Поэтому, что-то не припомню, чтобы кто-то ленился шпилить в Доту или "таньчики" много часов подряд.

    Вот я утром сел за ноут, открыл вкладку на developer.android.com, читаю, параллельно открыт Эклипс с копипастой, потихоньку разбираюсь. И знаете, какое-то ощущение, по-английски anxiety, не знаю, как наиболее точно это будет по-русски. Поэтому легче открыть соцсети, 9gag или вообще читать в ЖЖ всякую никак не относящуюся конкретно ко мне мусорную информацию.

    Мною было прочитано множество статей о прокрастинации, мотивации, но в самое яблочко попала вот эта статья - blogs.hbr.org/2014/02/how-to-make-yourself-work-wh... С ходу не мог найти перевод на хабре. Вкратце, если анализировать, как проводят рабочее время успешные люди, то получается, что они реализуют задачи несмотря на "неудобное время", "ой сейчас неохота", а страх облажаться заменяется на страх - "что будет, если я не приступлю к текущей задаче сию же секунду".

    А также вот это выступление на Теде. www.ted.com/talks/dan_pink_on_motivation Должны быть русские субтитры. Насчет того, что приемы мотивации 19 века до сих пор широко применяются, несмотря на то, что они утратили свою эффективность. Предлагается новые способы.

    2. Нужна стопроцентная железобетонная уверенность в себе и собственных действиях.

    3. Смена физической активности. Действительно, поясница, спина, шея начинают ныть после двухчасового кодинга или браузинга. Поэтому важно делать хотя бы трехминутные перерывы, разумеется, программистам нужно несколько часов "полного погружения" в проект, желательно, чтобы их никто не отвлекал, потому что придется потом заново во все вникать и строить в голове архитектуру приложения. Я лично, когда я хочу прочитать книгу по джаве или просто художку, не сижу или лежу, а хожу по комнате, даже сбросил жирок за зиму :-) Интересно было бы измерить активность с помощью шагомера. Разумеется, это надо чтобы никто не раздражался, если вы сидите в офисе или в кабинете с коллегой.

    4. Хорошо почитать про "состояние потока", мне лично помогло. Много статей на хабре. Ученый, исследователь этого явления рассказывает - www.ted.com/talks/mihaly_csikszentmihalyi_on_flow

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

    Был рад поделиться личным подходом.
    Ответ написан
    4 комментария
  • Как ускорить web-сервер на флешке?

    opium
    @opium
    Просто люблю качественно работать
    купить быструю флешку, просто у флешек разница в производительности в несколько раз дает разницу в цене в несколько раз.
    Ответ написан
    Комментировать
  • Как и где лучше всего начать изучать программирование?

    tema_sun
    @tema_sun
    Немного оффтоп, но тем не менее.
    Вам надо учить не php, js, python, whatever, а английский. Это единственный язык, который должен знать каждый программист.
    Если же он уже на уровне чтения со словарем, то его можно будет подтянуть изучая интересующие вас языки программирования.
    Далее - придумываете себе задачу и пытаетесь ее решить. Тут документация по ЯП и stackoverflow (на нем, по-моему, можно найти ответ на любой вопрос по программированию) вам в помощь.
    Волшебной кнопки, увы, нет. Чтобы научиться программировать, надо программировать.
    Ответ написан
    Комментировать
  • Как осуществить просмотр удаленного сайта скриптом?

    @link_irk
    Браузер отправляет и принимает запросы. Вы можете любым доступным сниффером (Firebug, Google Chrome...) посмотреть, какие запросы уходят и какой на них приходит ответ. CURL по сути говоря делает то же самое, что и браузер. Так что, зная какие данные, каким методом и куда нужно передать можно сымитировать поведение браузера, вплоть до того, что можно представиться любым браузером (HTTP заголовок User-Agent). JavaScript всего лишь формирует данные (и, возможно, посылает их серверу), а уже сервер вносит изменения в БД. Так что для Вас совершенно не важно, как и что там делает JavaScript.
    Ответ написан
    Комментировать
  • Законен ли пункт договора?

    @lookid
    Во всяких EA-Канада запрещается после увольнения год работать у конкурентов. Но как это отслеживается неизвестно. По активности в линкедине? И если трудовой договор расторгнут, то вы можете уже делать всё, что угодно (в рамках уголовного кодекса). Так что это обычное запугивание, которое максимум подпортит вам рейтинг в компании.
    Ответ написан
    2 комментария
  • Какие есть open source проекты для джуниоров?

    @lookid
    Нету open source проектов для джуниоров. Open source не значит, что на этих проектах учатся джуниоры. Это значит, что у проекта открыт код. Идешь в баг-трекер, берешь любой баг и фиксишь. Вот тебе и опенсорс. Скоро лето. Время писать убийц мускулов, квейков и крайенжном? Было еще 10 лет назад. Лучше иди в любую компанию у себя. Там тебя хотя бы менеджить будут на прямую, а не "я сегодня не могу, на роликах катаюсь".

    Колледж: Компьютерных технологий и экономики (бывш. КРМК) НАУ
    Киев, 2011–2015
    Разработка программного обеспечения


    Это ты? Ой, блин, опяяяяять. Так ты еще и не в университете учишься. Иди лучше учись, Кармак. А то опять окажется, что у нас образование плохое. Будешь потом проклинать всех, что тебе учиться не давали.
    Ответ написан
    4 комментария