• Стоит ли изучать Битрикс?

    @lexnekr
    знаю, что Битрикс с точки зрения развития, путь вниз

    Смешно.
    Битрикс - это путь.
    Любой путь лучше, чем топтание на месте.
    С битриксом на кусок хлеба с маслом в ближайшие годы заработаете гарантированно.
    Ну и на что-то другое перейти всегда можно.

    Если других хороших вариантов прямо сейчас не видно, я бы на вашем месте согласился. Любой даже самый ненавистный продукт стоит хотя бы немного потыкать (я так в своё время с 1С пободался).
    Ответ написан
    1 комментарий
  • Стоит ли изучать Битрикс?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    так говоришь, как будто всю жизнь решил этому посвятить и вариантов больше не будет изменить выбор.
    смотри на это как на очередной фреймворк, коих в твоей карьере разраба будет еще куча.
    и учитывая что ты новичок - это тебе все равно будет ценным опытом.
    Ответ написан
    3 комментария
  • Майнинг, с чего начать и стоит ли вообще?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    можно. Но нужны нормальные вложения. На 1000$ вы купите только пару тройку нормальных видюшек=)
    Кто майнит реально по уму они вкладывают в 10-20 раз больше. Это 6-7 и более ферм в которых по 5-6 видюшек радионов rx 480 и лучше + бесперебойник на каждую ферму 2200-3500вт ещё всякие доп плюшки в виде доп охлаждений и тд и тп. а с 1000$ на пару булок хлеба намайните.
    Для примера на личном опыте вот эта https://krsk.au.ru/9862490/ несла в среднем 30к в месяц. вот и дальше прыгайте считайте примерно что да как и думайте стоит или нет. 1000$ хватит только на 1 нормальный бесперебойник=) или 2 блока питания и 1 видюху и то не самую ахти для майнинга=)
    Ответ написан
    5 комментариев
  • Обучение в GeekBrains, перспективы?

    @seamen
    программист любитель
    Думаю все эти курсы - развод на бабки на ниве большой моды на программирование. Как тут написали можно самостоятельно этому научиться и не тратить деньги. Сам сейчас так делаю. Ведь 9 месяцев это где-то 8000руб*9=72000 руб. Или ошибаюсь?
    Ответ написан
    Комментировать
  • Стоит ли записываться на курс GeekBrains?

    @jicool
    Курсы - говно. Сам в GeekUniversity записался и после первых двух уроков попросил возврат средств. Преподаватели не дают основ, а галопом по Европам. Не ведитесь на рекламу, никогда не пользуйтесь платными услугами GeekBrains.ru!!!!
    Ответ написан
    Комментировать
  • Какие вопросы спрашивают на собеседовании Django разработчика?

    xSkyFoXx
    @xSkyFoXx
    • Самый главный навык, которым вы должны обладать - это python. Вы должны знать базовые конструкции языка, уметь пользоваться генераторами списков, отличать экземпляры от классов и т.п.
    • Django повсеместно использует классы и наследование. Вы должны уметь отвечать на базовые вопросы по ООП, его реализацию в Python. Понимать, как работает наследование, как сделать перегрузку базового класса и вызвать конструктор родителя.
    • Так как Django - это мощный ORM, вы должны понимать, как делать простые SQL запросы, как проверить миграцию, какая разница между пустым значением и значением, заполненным пустотой. Так же отличать JOIN'ы и уметь их применять в правильном контексте.
    • Обладать базовым пониманием HTML и CSS, в идеале - умением что-то подхачить на JS.
    Ответ написан
    5 комментариев
  • Генерация PDF в django?

    @immaculate
    Программист-путешественник
    Везде где можно, отказался от ручной генерации PDF. Делаю аккуратные стили, а генерация PDF уже средствами браузера (печать в PDF, или сразу печать, минуя PDF-вариант). Там где нужен не именно PDF, а просто представление для печати, лучше использовать такой подход.
    Ответ написан
    Комментировать
  • Что изучать верстальщику и в каком порядке?

    vilka_2009
    @vilka_2009
    Верстаю
    Не слушай тех, кто говорит, что без JS верстальщик - не верстальщик. Такие люди уже слишком давно работают, чтобы осознавать насколько сложно быстро изучить js попутно получая свой первый опыт в верстке.
    Запомни вообще: мы не можем знать все и сразу. Опыт - это самое важное после стремления и умения учиться и развиваться. Чтобы ты не боялся, что не возьмут в другую компанию: https://habrahabr.ru/post/323188/ Взять к примеру сообщение Тима Дикерса: "Привет, в лид в гугле, и более чем 30 лет программирую. И каждый раз мне надо искать, как узнать длину строки в питоне." А ведь самый первый урок на любом языке начинается с примера, как узнать длину строки ))

    Теперь поделюсь немного своим опытом. Как начинала я: я уволилась с работы и пошла учиться на курсы в htmlacademy База там дается отличная, правда с первого раза мне сложно было заставить себя учиться, поэтому я прошла бесплатно второй такой же интенсив. Перед НГ защитилась на отлично, можно сказать, и в феврале меня уже пригласили на работу примерно как у тебя (тоже java, совдепия, xml, таблицы). Сидела я там и баги всякие поправляла. Ушла через 5 месяцев. Долго не могла устроиться и из-за отсутствия свободных мест, и из-за собственного же страха и неуверенности. Бралась за фриланс, получала опыт, даже бесплатно работала в стартапе)) Мне важно было как можно больше практиковаться и получать опыт. Благо вообще нравится верстать) Весной следующего после увольнения года мне предложили работать в какой-то новой конторке, нас там было всего трое - дизайнер, программист и верстальщик. Всему обещали научить и чему успели научили) И ведь до сих пор люди считают, что верстальщик в компании должен быть! А некоторые компании совмещают приятное с полезным: верстальщика с программистом-фронтендером. Тем самым экономят рабочие места и зарплаты. Удобно же, да?) И вот такие опытные разрабы и говорят, верстальщик без js - не верстальщик. Фигня все это. Сейчас верстка гораздо сложнее и заковырестее, чем работа контент-менеджера, которая заключается в том, чтобы текст писать и вставлять его куда надо. Когда ты умеешь js - ты уже junior фронтендер. Это мое ИМХО. Ты отвечаешь не только за верстку, но и за фронт. Короче, далее)) В этой маленькой конторке я получила норм опыт и через пол года меня уже переманили в другую, одну из топовых организаций нашего небольшого города (тоже 400к). Зп как я когда-то хотела, проекты интересные, полная свобода действий и самостоятельность, даже уважение!) и я не знаю JS. И флексбоксы только начала пробовать. И проекты в моем портфолио за 2 года можно по пальцам пересчитать. Нужно просто успокоить себя и осознать, что верстка - это совсем не сложно. И js тоже совсем не сложно. И быть неопытным - тоже не проблема. Те организации, которые готовы брать неопытных людей, знают на что идут, они могут выделить свое личное время на твое обучение, на допиливание твоего опыта) Мы с коллегами 2 раза в неделю остаемся после работы и учим js. Нам читают учебник learn.javascript (да да), быстренько так зачитывают, все на пальцах и примерах в браузере тут же показывают, объясняют простым языком и потом ты уже спокойно можешь перечитывать учебник и понимать, что там написано и выполнять задачки под статьями. Периодически, для закрепления материала, нам дают домашку. Точнее давали, мы уже закончили js-лекции. И все равно, нельзя сказать, что мы сейчас прям сядем и плагин свой напишем - ни! Мы теперь можем понять практически любой код, написанный другими людьми. И использовать его. Для написания своего нужен просто опыт, больше практики.

    Я думаю, что работая в этой конторке на отстающих технологиях ты просто тратишь время зря. Иди в любую другую, реально. Просто за опытом. И да, в Москве медом не намазано. Там абсолютно так же как и в твоем городке, просто мест больше. Лучше туда наоборот опытным матёрым фронтендером ехать, за деньгами. А опыт в любом месте можно найти.

    Вот мой "блог"-цель по развитию в профессии, может прибавит тебе чего. Я его чисто как чек-лист для себя составляла.

    По поводу адаптива: в бутстрапе тоже используются медиазапросы. И покапавшись в нем, поюзая его, я поняла и осознала, что такое адаптив. Не знаю, что там учить перед его использованием?! Его и создавали как раз для программистов-бэкэндеров, чтобы они не запаривались и не вникали в адаптивную верстку, а просто юзали нужные классы. Так что, начинай использовать бутстрик и норм будет ;)

    Вот те мини-план от меня:
    • отбросить страхи
    • включить уверенность
    • блочная верстка
    • сетка на float || inline-block
    • попробовать бутстрап
    • html5, css3, семантика (она плотно зашита в html5)
    • попробовать расположить все элементы на странице/блоке позиционированием
    • ( так же все это можно попрактиковать на бесплатный курсах html-академии )
    • медиа-запросы
    • устроиться на работу
    • осознать бутстрап (то есть попробовать осознанно сверстать несколько макетов на бутстрапе, с адаптивом, на работе прям и попробуешь, ведь ты же уже знаком с бутстрапом :))
    • флексы - узнать и осознать, что это круче и удобнее бутстрапа в миллион раз
    • Внедрить флексы в рабочий проект, утвердив с ведущими и доказав, что его можно спокойно юзать и что не надо поддерживать ie 9... да даже 10
    • Самое главное: уделять по 1-2 часу в день, чтобы прочитать 0,5-1 главу на learn.javascript и пройти задачки под каждой прочитанной статьей ( у меня примерно столько уходило времени).


    Кстати да, совсем забыла про svg - это само собой ) Выкладывать на гитхаб свои работы прям на ходу разработки - это тема! Проверяющие будут видеть как ты коммитишь и юзаешь гит.
    Ответ написан
    10 комментариев
  • Тупиковое и медленное развитие, лекарство?

    @xfg
    Полутора миллионник в России. Найти человека, который бы знал что-то о многоуровневой архитектуре или ddd среди тех, кто идет на вакансию PHP/Python/Ruby программист, крайне трудная задача. Из 100 придут 99 сеньоров по 20-25 лет каждому с умением отгружать спагетти на очередном крутом фреймворке. Найти хорошего фуллстек разработчика вообще за гранью фантастики.

    Видел я таких, которые через месяц выкатывают в продакшн. Всё работает на честном слове, без тестов, без solid, без grasp, без паттернов, без архитектуры в конце концов.

    - Как нам убедиться, что ваш код работает как ожидается?
    - Бля буду работает!

    - Как работает Event loop в Javascript ?
    - Что это?
    Ответ написан
    Комментировать
  • Тупиковое и медленное развитие, лекарство?

    voronkovich
    @voronkovich
    Нужно позволить всякому шлаку проплыть мимо вас. Не нужно вкладывать много времени в изучение того, что завтра изменится. Лучше тратить время на фундаментальные вещи, срок жизни которых больше 5-10 лет.
    Примеры:
    • Реляционные СУБД. Я использую их уже лет 10, и ничего принципиально нового (с точки зрения разработчика) в них не появилось. Я как изучил SQL 10 лет назад, так и пользуюсь им до сих пор. В тоже время, я знаю достаточно хипстеров, которые каждый день пишут на новом фреймворке и при этом не смогут составить запрос с joinами. Изучайте реляционные базы данных и SQL - они будут жить еще лет 20-ть;
    • ООП. У меня на полке лежит книга банды 4-х, которую я купил давно. Мне не нужно каждый год покупать новый экземпляр из-за того, что шаблоны проектирования вдруг взяли и "устарели". Изучайте ООП. Оно будет актуальным еще очень долгое время;
    • Регулярные выражения;
    • Командные оболочки sh/bash;
    • и т.д.

    Короче говоря, не тратьте время на синтаксис, тратьте его на семантику.

    И поменьше читайте хабр. Полезной информации там все меньше и меньше, и в то же время, подобные ему ресурсы создают у людей чувство неполноценности, из-за того что они не используют "этот новый супер-мега фреймворк".
    Ответ написан
    5 комментариев
  • Тупиковое и медленное развитие, лекарство?

    @HellWalk
    Замечаю, что есть уникумы, которые за месяц осваивают то что я за год

    Встречал людей, которые считают, что если они пол годика пишут на php - то они знают этот язык на отличном уровне. Хотя лично я считаю, что "отличный уровень php" появляется лет через 10, и то не всегда (есть примеры из жизни).

    По этому, прежде всего стоит задать вопрос - а те люди, которые, как вы говорите, схватывают все на лету, и все такие успешные программисты - действительно такими являются? Может быть они просто создают такой образ?

    То есть пока был актуален ангуляр, учил учил....опоздал. И это уже не впервые.

    Вы случаем не из тех людей, которые верят всем подобным разговорам:
    - php прошлый век, нужно срочно переходить на питон
    - питон прошлый век, все нормальные программисты пишут на js/ноде
    - и т.д.

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

    P.S. Алкоголем не увлекаетесь? От него реально тупеют, заметно на людях 30+
    P.P.S. Для вас это и 302 вакансии на hh.ru по ангуляру - не актуальный фреймворк? Что-то мне подсказывает, что у вас алгоритм оценки гуляет то резко вниз, то резко вверх - какие-то нормальные инструментарии считаете мертвыми, каких-то программистов считаете гениями.
    Ответ написан
    3 комментария
  • Тупиковое и медленное развитие, лекарство?

    Konstantin18ko
    @Konstantin18ko
    Стоматолог
    Хочешь быстро выкачивать в продакшен? Вруби режим Vanille. Пиши, параллельно свой проект. Зацепись за один язык как основной и дальше учи всё в нем вдоль и поперёк. Затем, как всё выучишь, хватай самый сложный фраемворк и от сложного к простому начинаешь разбирать. Это мой подход.
    Для наглядной статистики: я врач, у меня 8 часовой рабочий день. С сентября 2016 начал изучать PHP и JavaScript. С 1 января по 9 января 2017 пишу програму которая помогала мне писать истории больных. Сейчас программа пользуется популярностью и ей пользуется вся ординаторская. Сейчас проект переписывается на Symfony 3.
    Что мне понадобилось: время после работы, интернет.
    Ответ написан
    22 комментария
  • Как сохранить в модели с типом Time время учитывая часовой пояс?

    shaks
    @shaks
    iKapex
    Вот чё делать?

    Снимать трусы и бегать :)

    Да. действительно. Побаловался в консоли, узрел такое поведение.
    h_1497531911_1753289_fae2be68da.png
    Так происходит потому что:
    Active Record keeps all the datetime and time columns timezone aware. By default, these values are stored in the database as UTC and converted back to the current Time.zone when pulled from the database.


    Данное поведение фиксится достаточно просто.
    # config/application.rb
    ..........
    config.active_record.time_zone_aware_attributes = false


    Результат:h_1497532143_2268431_bf18b998c8.png

    Подробнее тут api.rubyonrails.org/classes/ActiveRecord/Timestamp.html

    P.S. но я бы советовал оставить это поведение, т.к. это правильно. И выставить в настройках
    #config/application.rb
    config.active_record.default_timezone = :local

    Таким образом, AR будет конвертить обратно в локальный часовой пояс. А т.к. у тебя он выставлен небыл, то он оставлял UTC
    Ответ написан
    1 комментарий
  • Почему не находит страницу?

    sim3x
    @sim3x
    изучите пеп8 - там четко указано как нужно именовать функции

    #
        url(r'^$', views.BookList, name='BookList'),
        url(r'^category/(?P<category_slug>[-\w]+)/$', views.BookList, name='BookListByCategory'),
        url(r'^book/(?P<id>\d+)/(?P<slug>[-\w]+)/$', views.BookDetail, name='BookDetail'),
        url(r'^contacts/$', views.ContactsPage, name='ContactsPage'),
    Ответ написан
    Комментировать
  • Какие алгоритмы нужно знать веб разработчику?

    @mletov
    Зависит от того, что собираетесь программировать. В большинстве случаев, как написали выше, - никакие, но...
    Работал в одной конторе, встала хитрая задача найти оптимальные сочетания, что-то вроде комбинаторики, из нас троих ни один ее не решил, знаний матчасти не хватило, в итоге, в лоб тупо перебором подгоняли.

    Тут гораздо важнеее не web/mobile/desktop, а предметная область.
    Ответ написан
    Комментировать
  • Какие алгоритмы нужно знать веб разработчику?

    @unabl4
    ruby on rails web dev
    Фактически никакие. Больше упор лучше делать на структуры данных, паттерны, архитектуры, инфраструктуры и т.д и т.п
    Ответ написан
    2 комментария
  • Какие алгоритмы нужно знать веб разработчику?

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

    В веб-разработке важно чтобы запрос к серверу занял как можно меньше времени. Для этого нужно быстро обратиться к БД, что-то посчитать и вернуть ответ. Пользователь не любит ждать. Порой нужно использовать техники кеширования данных и некоторые другие оптимизации.
    По-моему, основными факторами задержки являются:
    1. неоптимальные запросы к БД
    2. неоптимальный выбор структур данных и, как следствие, понижение скорости работы и повышенные требования к памяти
    3. повторяющиеся операции в коде
    4. блокирующие операции в коде
    5. неоптимальная отдача статического контента сервером
    Ответ написан
    Комментировать
  • Путь становления Реверс инженера?

    TrueBers
    @TrueBers
    Гуглю за еду
    Рецепт прост до безобразия:
    Если вам хочется разбираться в каждой фиче, каждую новую программку ковырять, разбирать формат её файлов, каждую новую игру пытаться взломать, написать для неё бота, чит и т. п. Значит это ваше, просто продолжайте делать то, что делаете.

    Если нет, то никакие книги не помогут. В этом деле нужна страсть и огромное терпение.

    Матан никому не нужен в реверсе. Максимум решение систем линейных уравнений понадобится.
    Важно скорее нестандартное мышление, умение брутфорсить в голове множество вариантов, подходов. Для этого нужно знать технологии. Т. е. буквально, знать нужно как можно больше. Чем больше вы знаете, тем быстрее будет решена задача. Это абсолютно различные области: ОС, сети, способы шифрования, компрессии, хеширования, сериализации; знание баз данных и их языков запросов; знание компиляторов в плане, как они генерируют код; знание реализации той же стандартной библиотеки, понимание как компилируется один и тот же код разными компиляторами, понимать, как работают интерпретаторы байткода, виртуальные машины, и т. п.

    Это, что касается общих технологий. А есть ещё такая штука, как архитектурные паттерны. Они обычно применяются в прикладных приложениях, малварь редко такое применяет. Т. е. нужно видеть в коде, например, паттерн Event, различные варианты паттерна MVC, и т. п. Например, вы реверсите продукт на Qt. Чтобы его понимать, вам нужно знать... Qt, и уметь на нём разрабатывать, читать его исходный код, знать что такое метаобъекты, как они хранятся, используются, вызываются. А если, внезапно, оно юзает что-то интерпретируемое, типа питона или луа, то вам, мало того, что нужно знать сами языки, так ещё и реализацию их интерпретаторов. А ещё бывает JIT...

    Нужно ещё решить, что вы хотите реверсить. Малварь и прикладные приложения немного расходятся. В малвари нужно больше знать нестандартных вещей. Различных вариантов антиотладки, скрытия активности, багов операционной системы, поведения антивирусов. Малварь может быть ботнетом, например. Ботнеты обычно имеют командный сервер, который довольно трудно вычислить, он меняется динамически, как-то не даёт себя обнаружить. Для этого нужно знать как устроен интернет, как работает dns, разбираться в сетевых протоколах.

    Короче, для реверсера нужно учить всё. Не нужно фильровать определённые технологии, вам понадобятся все они без исключения. Ибо всё, что было создано для вычислительных систем, в них используется, а соответственно, вам придётся это знать, чтобы реверсить.

    Кстати, чуть не забыл.

    Самая лучшая книга по реверсу на русском.

    И ещё есть классический курс статей от Рикардо Нарвахи: «Введение в крэкинг с нуля, используя OllyDbg». Погуглите его. Если осилите книгу Юричева и этот курс, то сможете спокойно собеседоваться в Касперский. Хотя, поверьте, есть вещи поинтереснее касперского.
    Ответ написан
    1 комментарий
  • Почему нельзя использовать указатель без объявления переменной?

    TrueBers
    @TrueBers
    Гуглю за еду
    А потому что, учите ассемблер, вот почему.
    Разработчика на C/C++ не бывает без базовых знаний ассемблера.
    Можно взглянуть сюда и понять очень многое.

    На 6-й строке ассемблерного кода у вас происходит выделение стекового фрейма. Это та область памяти, где будут храниться ваши локальные переменные, которые вы объявляете в текущей функции, т. е. в нашем случае это int var; int *pvar;. Несмотря на то, что сумма размеров этих переменных на стеке sizeof(int) + sizeof(int*) = 12 для x86_64, выделяется 16 байт согласно пункту 3.2.2 SystemV ABI AMD64, который говорит, что стековый фрейм должен быть выровнен по границе 16 байт. На другой архитектуре здесь может быть другое правило.

    Стек растёт вниз по адресам, т. е. выделение памяти на нём — это просто вычитание (инструкция SUB) из адреса его вершины (регистр RSP) числа, равного тому количеству памяти, которое мы хотим выделить. К вам как бы «всплывает» кусок памяти «откуда-то снизу». Эта память скорее всего использовалась предыдущими вызовами функций и осталась не затёрта! Соответственно, вы должны инициализировать этот поюзаный кем-то кусок под себя.
    Что-то типа аналогии со школы или универа, когда в аудитории есть такая раздвигающаяся доска из двух или трёх частей, видели наверное, когда выдвигаешь одну часть, а другая задвигается. Так вот, когда вы приходите на лекцию, выдвигаете доску, а там, внезапно, предыдущая группа не стёрла за собой свои творения, и вам придётся это стирать и писать вещи, относящиеся к вашему предмету. Естественно, если вы попытаетесь использовать для вашего предмета то, что осталось от предыдущей группы, получится бред в большинстве случаев.

    Когда адрес вашего указателя где-то используется без инициализации (7-я строка асм кода), он возьмёт тот самый мусор, который к нам пришёл при выделении фрейма.
    Получается лотерея: если этот мусор случайно оказывается действующим указателем на память, доступную для записи, ОС не выбрасывает исключение и пишет куда-то в непонятное место, ломая тем самым случайное место в вашей программе. Т. е. вы попадаете на тот случай, когда во фрейме попался до сих пор действующий указатель из мусора предыдущей функции, которая использовала этот кусок фрейма и не затёрла. А когда лотерея проиграна, и попали не на указатель, а на не пойми что, ОС бросает исключение. Поэтому ошибка не всегда проявляется.

    Это всё частный случай реализации языка Си для конкретной архитектуры. Конечно, в терминах стандарта таких вещей не бывает вообще, а объявлено просто как неопределённое поведение, которого нужно избегать.
    Ответ написан
    1 комментарий