• Является ли инженер-системотехники, программистом?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Ну, если смотреть на корочки, то ваш оппонент прав. Но не образование делает программистом.
    Ответ написан
    1 комментарий
  • Должен ли верстальщик уметь поднимать сервер и разворачивать проект на Linux?

    @anton99zel
    29а класс средней школы №7
    Это называется "Тыжпрограммист, почини чайник!"
    Ответ написан
    1 комментарий
  • Должен ли верстальщик уметь поднимать сервер и разворачивать проект на Linux?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Верстальщик - должен уметь поставить и настроить свою рабочую среду окружения, чтобы верстать.
    Т.е., заниматься своей прямой деятельностью.
    И больше - ничего.
    Далее - читаем регламент организации, обязанности по вакансии и делаем выводы.
    Ответ написан
    Комментировать
  • Должен ли верстальщик уметь поднимать сервер и разворачивать проект на Linux?

    @UPSA
    anykey. Я не программист, я просто ленивый.
    Мое мнение ....
    1. Заказчики хотят сэкономить на администраторе. junior frontend (Верстальщик) может и должен уметь разворачивать LAMP сервер, но никак не Верстальщик (junior frontend).
    2. Либо вы не договариваете что обещали заказчику ))). Бывало такое - "Мы сделаем вам сайт, дайте нам хороший интернет и мощный сервер"
    Ответ написан
    Комментировать
  • Должен ли верстальщик уметь поднимать сервер и разворачивать проект на Linux?

    php666
    @php666
    PHP-макака
    говорят я должен это уметь, поднимать сервак итд
    работаю PHP разработчиком, не умею на Убунте работать и не хочу. Когда надо на *nix подобных системах что-то разворачивать пишу письмо специалистам в группу под названием UnixAdmins и они это делают. И это нормально. Моя задача - разрабатывать проект, а не ковыряться в серваках.

    развернуть локально на убунту проект на php, nginx, mysql, итд .... говорят я должен это уметь, поднимать сервак итд
    Нет, не должен. Это был бы безусловно полезный навык, но ты лишь junior frontend.

    Может посоветуете как быстро этому научиться?)
    Никак. Это будет тупой копипаст из мануала без понимания. А понимание приходит лишь с годами опыта.

    То, что у них надо все с нуля настраивать каждому человеку - это кривая организация их структуры. Например, у нас работа ведется на сервере, по SSH через PHPStorm вносятся все изменения на хосты разработчиков, сервер настроен единожды и под всех. Поработал - зашел на сервак в свою директорию, закоммитил изменения. Всё.
    Придет новый чел - ему просто создадут директорию, настроют хост, он склонирует проект, подключится через PHPStorm к серверу и начнет работать. Все. И это - правильно.

    Наверно не пройду испытательный срок
    да и хрен бы с ними.
    Ответ написан
  • Как "продолжить"?

    shabelski89
    @shabelski89
    engineer
    *** Я же учил Python ***

    Час, день, неделя, годы,
    Бессмысленный и длинный PEP,
    В дни жестокой непогоды,
    Учит пайтон человек.
    Ответ написан
    1 комментарий
  • Как "продолжить"?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Сначала вам нужно знать базовый синтаксис языка. Плюс несколько стандартных библиотек. Потом ищете простую идею для своей программы. Не нужно искать идеи в интернете или тут спрашивать. Напишите несколько программ для себя. Вот мой пример:
    1) Я заметил, что много времени провожу на qna.habr.com(количество переходов можно посмотреть в браузере). Так вот, я захожу на главную страницу сайта, и смотрю новые вопросы по моим тегам. Делаю это почти каждые 10-30 минут. Это здорово отнимает время. Решим проблему с помощью python. Взял 3 библиотеки(requests, notify2 и beautifulsoup) и написал простую программу. Суть ее в том, что она раз в минуту запрашивает главную страницу qna(с cookies), парсит ее и забирает из нее текст вопроса и ссылку. Потом проверяет в цикле, есть ли данная ссылка в файле. Если нет, значит показываем на рабочем столе уведомления с новыми вопросами, а ссылки записываем в файл. И так в цикле. Вроде бы программа простая, но с помощью нее можно поработать на практике с циклами, файлами, сетью, парсингом и т.д.
    Потом мне стало интересно, что такое боты в Телеграм. Почитал документацию и примеры. Вышеуказанною программу переделал под бота. Теперь уведомления приходят мне в телегу.
    2) Следующую программу сделал для rutracker.org Суть ее в следующем - указываем программе ссылку на раздел форума, она парсит сначала главную страницу раздела, вытаскивает номер последней страницы и потом скачивает и парсит с первой по последнюю страницу, вытаскивая заголовок раздачи, размер, сиды/пиры и записывает это все в базу sqlite3. Открываю базу с помощью sqlitebrowser, и могу искать раздачи по тексту, также сортируя по сидам, пирам, размеру и т.д Здесь опять можно потренироваться на практике с циклами, работой с сетью, парсингом, базой данных.

    Когда будете писать код, который вам интересен, вы и сами не заметите как, запомните синтаксис, часто используемые библиотеки и т.д.

    Пример бота для qna.habr.com:
    5e57a5a5d8f6b747820507.png
    Ответ написан
    Комментировать
  • Почему Ruby недооценённый язык?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Конкретно в случае Ruby VS Python дело не во вкусах, а наличии у Python простой и эффективной двусторонней интероперабельности с C\C++.
    Ответ написан
    1 комментарий
  • Используете ли вы annotations в Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    mypy и аннотации типов - это костыли. Если нужна статическая типизация, то надо брать язык со статической типизацией.
    Ответ написан
    1 комментарий
  • Используете ли вы annotations в Python?

    @javedimka
    Хочу сока
    Да, потому что сложно помнить все аттрибуты на твоих классах. А когда пишешь анотацию - IDE сама все подсветит и даст подсказки.
    Ответ написан
    3 комментария
  • Нужно ли читать книги про JavaScript что бы его освоить?

    Anitamsk
    @Anitamsk
    Frontend Dev
    Просто читать книги по Javascript - довольно дикое занятие. Это тоже самое что учиться водить, и не сидеть за рулём.
    Вот вам сайт - Link
    Смысл такой -
    Прошли "Типы" - выполнили 20 задач на строки, числа, булевы значения;
    Прошли функции - выполнили 20 задач на функции
    Прошли объекты\массивы - выполнили задачи на объекты и массивы.
    И тд и тп.

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

    Ну и самое главное - понять для чего вам нужен JS. Если ваша задача - стать фронтендером - изучив базу и es6 - не задерживайтесь, и смотрите на на библиотеки, фрейморки и тд и тп. Иначе если будете зазубривать язык, так и помрете в погоне за идеалами.
    Ответ написан
    1 комментарий
  • Как посчитать количество ключей во вложенных словарях?

    0xD34F
    @0xD34F
    def countCarsByBrand(cars, brands):
      return sum(len(v.keys()) for k, v in cars.items() if k in brands)
    
    
    print(countCarsByBrand(cars, [ 'Audi', 'BMW' ]))
    Ответ написан
    1 комментарий
  • Как вывести среднюю сумму элементов словаря?

    @deliro
    Общее количество машин — это сумма количеств ключей в каждом вложенном словаре. Логично, что

    sum(len(x) for x in cars.values())

    Средняя стоимость — ну тут вообще просто:

    from statistics import mean
    
    for manufacturer, cars_data in cars.items():
        print(manufacturer, "в среднем стоит", mean(cars_data.values()))


    mean — это не какая-то магическая функция, это просто сумма выборки, делённая на количество элементов в ней. Ну как обычное среднее.
    Ответ написан
    2 комментария
  • Каким вы видите будущее Ruby?

    Fahrenhe17
    @Fahrenhe17
    Ruby on Rails developer
    В свое время похожее меня терзало, но остался с руби и доволен как слон. Несколько помог вот этот доклад, который увидел как-то тут же, на тостере.
    https://youtu.be/xPFRUM_oDKA

    А если от себя - руби, а в частности рельсы не умрут. Особенно с теми обновлениями, что есть в 5 версии.
    Ответ написан
    3 комментария
  • Пригоден ли Sublime Text 3 для Ruby on Rails?

    opium
    @opium
    Просто люблю качественно работать
    Что вам мешает просто его поставить и попробовать?
    Дел на пять минут
    кому то подходит кому то не подходит
    Ответ написан
    2 комментария
  • Какую книгу почитать, чтобы создать сайт на PHP?

    vasjabingo
    @vasjabingo
    учусь
    Книги, нацеленные на практику программирования, необходимую в корпоративном секторе

    Книги, нацеленные на практику программирования, необходимую в корпоративном секторе
    Томас Кормен: Алгоритмы. Построение и анализ. Описаны самые разнообразные алгоритмы, сочетается широкий диапазон тем с глубиной и полнотой изложения; при этом изложение доступно для читателей самого разного уровня подготовки.
    Стив Макконнелл: Совершенный код. Мастер-класс. Опираясь на академические исследования, с одной стороны, и практический опыт коммерческих разработок ПО — с другой, автор синтезировал из самых эффективных методик и наиболее эффективных принципов ясное прагматичное руководство.
    Джон Бентли: Жемчужины программирования. Книга посвящена наиболее привлекательному аспекту профессии программиста: жемчужинам программирования, рождающимся за пределами работы, в области фантазии и творчества. В них рассматриваются: постановка задач, теория алгоритмов, структуры данных, вопросы повышения эффективности кода, а также верификация и тестирование программ.
    Эндрю Таненбаум: Компьютерные сети. Последовательно изложены основные концепции, определяющие современное состояние и тенденции развития компьютерных сетей. Авторы подробнейшим образом объясняют устройство и принципы работы аппаратного и программного обеспечения, рассматривают все аспекты и уровни организации сетей — от физического до уровня прикладных программ.
    Дональд Кнут: Искусство программирования. Описаны основные понятия, методы программирования и информационные структуры. Для методов имитации, символьных вычислений, числовых методов, методов разработки программного обеспечения даны примеры элементарных приложений.
    Эрих Гамма: Приемы объектно-ориентированного проектирования. Паттерны проектирования. Описываются простые и изящные решения типичных задач, возникающих в объектно-ориентированном проектировании. Авторы излагают принципы использования паттернов проектирования и приводят их каталог. Таким образом, книга одновременно решает две задачи. Во-первых, здесь демонстрируется роль паттернов в создании архитектуры сложных систем. Во-вторых, применяя содержащиеся в справочнике паттерны, проектировщик сможет с легкостью разрабатывать собственные приложения.
    Мартин Фаулер: Рефакторинг. Улучшение проекта существующего кода. Помимо описания различных методов рефакторинга, автор приводит подробный каталог более чем с семьюдесятью рефакторингами и полезными указаниями, которые научат вас, когда их следует применять. Книга содержит подробное описание свыше 70 методов рефакторинга, причем не только теоретическое их описание, но и практические примеры на языке программирования Java. Следует учесть, что изложенные в книге идеи применимы к любому объектно-ориентированному языку программирования.
    Роберт Мартин: Чистый код. Создание, анализ и рефакторинг. Книга полна реальных примеров, позволяющих взглянуть на код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Вы узнаете много нового о коде. Более того, научитесь отличать хороший код от плохого, узнаете, как писать хороший код и как преобразовать плохой код в хороший.
    Ахо Альфред: Структуры данных и алгоритмы. Подробно рассмотрены Структуры данных и алгоритмы, которые являются фундаментом современной методологии разработки программ. Показаны разнообразные реализации абстрактных типов данных, начиная от стандартных списков, стеков, очередей и заканчивая множествами и отображениями, которые используются для неформального описания и реализации алгоритмов.
    Джеффри Фридл: Регулярные выражения. Книга знакомит с фундаментальными основами регулярных выражений, функциональными возможностями языков программирования и позволяет оптимизировать работу с информацией. Вы научитесь самостоятельно конструировать регулярные выражения и использовать приведенные в книге примеры для быстрого решения самых актуальных задач.
    Ахо Альфред: Компиляторы. Принципы, технологии и инструментарий. Книга описывает основные принципы разработки компиляторов, включая детальное рассмотрение лексического и синтаксического анализа и генерации кода. Строгость изложения материала смягчается большим количеством практических примеров. Написание компиляторов охватывает такие области знаний, как языки программирования, архитектура вычислительных систем, теория языков, алгоритмы и технология создания программного обеспечения.
    Томас Коннолли: Базы данных. Проектирование, реализация и сопровождение. Теория и практика. Полное справочное руководство по проектированию, реализации и сопровождению баз данных. Книга содержит подробное описание особенностей разработки приложений баз данных для Web и многочисленные примеры кода доступа к базам данных из Web, в том числе с применением средств JDBC, SQLJ, ASP, JSP и PSP Oracle. В ней дано всестороннее введение в технологию информационной проходки, хранилищ данных и OLAP, представлены современные распределенные, объектно-ориентированные и объектно-реляционные СУБД.
    Александр Шень: Программирование. Теоремы и задачи. Книга содержит задачи по программированию различной сложности. Большинство задач приводятся с решениями. Цель книги – научить основным методам построения корректных и быстрых алгоритмов.
    Сегаран Тоби: Программируем коллективный разум. Практическое руководство по программированию интеллектуальных приложений для Web 2.0. Здесь вы найдете все необходимое, чтобы научиться создавать самообучаемые программы, которые способны собирать и анализировать огромные массивы данных, имеющиеся в Сети.
    Ричард Хэзфилд: Искусство программирования на C. Значительное внимание уделено таким актуальным вопросам, как обработка данных, работа с битами и байтами, отладка программ, управление памятью, моделирование, рекурсия, а также темам, не часто встречающимся в литературе, но играющим важную роль при разработке коммерческих приложений. Описание самых разнообразных алгоритмов в книге гармонично сочетается с вопросами их практической реализации. Приведено большое количество фрагментов кода и целых программ, которые непосредственно можно применять в сложных приложениях.
    Уоррен мл. Генри: Алгоритмические трюки для программистов. В книге воплощен пятидесятилетний стаж ее автора в области разработки компиляторов и архитектуры компьютеров. Здесь вы найдете множество приемов для работы с отдельными битами, байтами, вычисления различных целочисленных функций; большей части материала сопутствует строгое математическое обоснование. Каким бы ни был ваш профессионализм — вы обязательно найдете в этой книге новое для себя; кроме того, книга заставит вас посмотреть на уже знакомые вещи с новой стороны.
    Керниган Брайан: Практика программирования. Рассматриваются принципы практического профессионального программирования, которые, выходя за рамки простого написания кода, включают в себя проектирование, правильный выбор алгоритмов и структур данных, отладку и тестирование, оптимизацию быстродействия и переносимости, автоматизацию рабочего процесса.
    Мотвани Раджив: Введение в теорию автоматов, языков и вычислений. Классическое издание. Рассматриваются различные машины Тьюринга, при помощи которых формализуются понятия разрешимых и неразрешимых проблем, а также определяются функции временной и емкостной оценки сложности алгоритмов. Изложение ведется строго, но доступно, и сопровождается многочисленными примерами, а также задачами для самостоятельного решения.
    Ананий Левитин: Алгоритмы. Введение в разработку и анализ. Делая основной упор на понимании идей, а не на механическом рассмотрении работы того или иного алгоритма, автор излагает ключевые принципы и методы разработки алгоритмов так, что они могут быть применены как универсальный инструментарий для широкого диапазона задач, а не только для разработки алгоритмов. Несмотря на отсутствие громоздких математических доказательств, в книге выдержана достаточная математическая строгость.
    Макконнелл Джефри: Анализ алгоритмов. Вводный курс. В книге обсуждаются алгоритмы решения наиболее широко распространенных классов задач, покрывающих практически всю область программирования: поиск и сортировка, численные алгоритмы и алгоритмы на графах. Особое внимание уделено алгоритмам параллельной обработки, редко освещаемым в литературе на русском языке.
    Николай Непейвода: Основания программирования. Главная цель создания этого пособия, по словам автора, — объяснить читателю существенную взаимосвязь и взаимозависимость различных понятий программирования. Помимо этого, книга раскрывает суть базовых понятий и помогает без труда ориентироваться в них. Для самоконтроля по усвоению материала в книге разработан ряд заданий. Рекомендуется не только начинающим знакомство с программированием, но и специалистам-практикам.
    Ответ написан
    2 комментария
  • Как перебрать вложенный массив?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Ну выделите вложенный массив - да перебирайте:

    nums = [1, 2, 3, 4, 5, 6, 7, [1, 2, 3, 4, 5]]
    for im in filter(lambda x: isinstance(x, list), nums):
        # в im - вложенный массив 
        for y in im:
           print(y)

    1
    2
    3
    4
    5
    Ответ написан
    1 комментарий
  • Почему появляется ошибка 'int' object is not subscriptable?

    @che_aa
    Нету запятой после 5, должно быть
    x = [1, 2, 3, 4, 5, [1, 2, 3]]
    Ответ написан
    2 комментария
  • С чего начать карьеру ИТ?

    Мне 30 лет. Начал свою карьеру в ИТ в 27.
    У меня ИТшное высшее образование, но жизнь сложилась так, что во время учебы нашел работу не по специальности, которая сразу начала приносить неплохой доход (производство рекламы: наружка, полиграфия). В один "прекрасный" день, спустя 10 лет работы, я понял, что достигнут потолок и мне совершенно не интересно дальше развиваться в этом направлении. Тогда то я и начал искать чем заняться.
    Я прекрасно понимаю страхи и мысли, которые крутятся в голове у человека уже с семьей.
    "А не поздно ли?", "А с чего начать?", "А как на меня будут смотреть другие люди/друзья/коллеги?", "А на какой доход и через сколько времени можно рассчитывать?", "А откуда взять время на жену/детей и учебу?" и еще куча других...
    В 16-22 все эти вопросы совершенно не волнуют - ты еще юн, свободен от обязательств и в какой-то мере финансово не обременен...

    Немного порассуждаем :)

    Отвечу на самые-самые вопросы:
    А не поздно ли?
    Нет. Никогда не поздно! Звучит банально, но это работает.
    Нужно срочно забыть сколько тебе лет и оперировать только понятием жизненный опыт. А его к 30 уже порядком. Мозги еще не "заржавели", тело еще не барахлит.
    НО нужно сразу условится - любая сфера ИТ требует ПОСТОЯННОГО самосовершенствования и изучение нового материала. ЛЮБАЯ.

    Чем заняться-то?
    Я для начала для себя определил две области ИТ в которых возможен быстрый прогресс за короткий срок и достаточно быстрое трудоустройство. 1С-программирование и веб-программирование.
    Они были выбранные после тщательного анализа локального рынка труда + низкий порог входа + возможность быстрого прогресса. Долго сомневался, читал форумы и статьи, что бы выбрать окончательно, но в итоге победило направление веб-программирования. Решающим стали два критерия: возможность удаленной работы на зарубежных биржах и отсутствие привязки к конкретной узкой технологии. В финансовом плане 1Сники на начальном этапе получаю больше, но со временем Веб вырывается вперед.
    Многие написали выше, что надо учить основы основ. Разложить всю теорию по полочкам. Понять принципы ООП и паттерны проектирования. Это правильно, НО... время+семья+деньги накладывают некоторые свои ограничения. Как мне кажется главная цель - это смена сферы деятельности, т.е. добиться результата. Да, по началу будут жуткие "решения" и "ужасный вырвиглазный лапшевидный говнокод", НО плох тот программист, который не продолжает свое обучение ПОСТОЯННО. Но учиться уже на работе под руководством более опытных товарищей НАМНОГО проще.

    А с чего начать это ваше "веб-программирование"?
    Сразу оговоримся, что есть принципиально два разных направления: "фронт-энд" и "бэк-энд". "Фронт-энд" проще и дружелюбнее для совсем начинающих. Его изучение позволит быстрее прийти к выполнениюглавной цели. Поэтому дальше я буду рассматривать именно это направление.
    Да-да, конечно, потом можно и "бэк-энд" изучить и даже полностью перейти на него. Можно совмещать, обв.
    И еще одно отступление: уровень английского Pre-Intermediate. Это само собой разумеющееся. В любом случае придется читать, слушать и понимать.
    Итак по теме вопроса.
    Рекомендую начинать с: htmlacademy.ru - пожалуй лучший русский ресурс для новичков. Интерактивные задания с самых азов. Все основные курсы бесплатные. Платная подписка открывает доступ к продвинутым курсам - рекомендую покупать эту подписку уже после прохождения всех базовых курсов. Есть два платных месячных "интенсива" - весьма неплохие и стоят своих денег.

    Остальные ресурсы рекомендую проходить параллельно с HTML-академией, начинать где-то после 7 курса:
    www.codecademy.com - на английском. Помимо курса по HTML&CSS можно попробовать JavaScript и jQuery + неплохие ознакомительные курсы по "бэк-энду"
    https://dash.generalassemb.ly - на английском. Интересны тем, что имитируют выполнение реального заказа на фрилансе.
    Есть еще куча ресурсов и курсов, но для начала этого вполне хватит.
    В любом случае придется изучить JavaScript. В этом деле поможет уже упоминаемый выше www.codecademy.com + learn.javascript.ru

    И главное - больше практики. Применяйте свои знания.
    Верстайте псдшники хотя бы ради практики и портфолио. Прикручивайте к ним что-нибудь простенькое на jQuery.

    А откуда взять время на жену/детей и учебу? Как совмещать-то все еще же работа есть...
    Если уделять учебе хотя бы 1 час в день, то можно вполне все успевать.
    Я учился так:
    - на работе была возможность почитать и поделать небольшие занятия в течение дня ( в сумме полчаса)
    - еще часик уже ночью, когда все спят дома.
    - в выходные вставал пораньше и в субботу за два часа пока все спят повторял все сделанное за неделю, а в воскресенье подбивал итоги и планировал следующую неделю.
    Придется пожертвовать сериальчиками и какими-нибудь излишествами нехорошими - всегда есть что-то. Все время дисциплинировать себя первое время. Можно вести блог или поставить цель на смартпрогресе. Главное регулярно заниматься. даже 15 минут в день - это уже большой плюс.
    Еще очень важно, что бы домашние знали к чему вы стремитесь и чем заняты.

    А на какой доход и через сколько времени можно рассчитывать?
    Тут все ОЧЕНЬ индивидуально. Все зависит от усердия и желания.
    Можно грубо прикинуть "скоростное прохождение этого квеста":
    1) материальные вложения: 30-32 т.р. два интенсива(базовый и продвинутый) и помесячная платная подписка на htmlacademy.
    2) временные вложения: 5-7 месяцев на курсы и интенсивы от htmlacademy + 2-3 месяца на основы JavaScript и jQuery

    После этого вполне можно пойти работать верстальщиком с перспективами карьерного роста с окладом от 15 т.р. или попробовать себя на фрилансерских биржах.
    Почему так мало?В моем регионе именно столько получают стажеры-верстальщики в первый месяц, но это уже работа + на реальных проектах прогресс пойдет намного быстрее. А следовательно и вырастет доход.

    А не будет ли мне сложно "работать" в молодом коллективе?
    Возможно первое время будут какие-то сложности, но как мне кажется в любом случае ценятся базовые человеческие качества + профессионализм. А если учесть, что к 30 уже есть достаточно богатый жизненный опыт, то я не думаю, что возникнут проблемы.

    Как-то так :)
    Удачи. И главное помните - все зависит только от вас. От ваших желаний и вашего трудолюбия.
    Ответ написан
    3 комментария