Ответы пользователя по тегу Веб-разработка
  • Как при работе единственным веб-мастером-на-все-руки в компании максимально эффективно прогрессировать в веб-разработке?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Ответы уже дали. У вас не так много вариантов:
    1. Уходить в другую контору на оговоренный участок работы, к примеру бэкэнд
    2. Уходить в другую контору тим-лидом и направлять усилие коллектива на достижение конечного результата, тут фулстек надо знать
    3. Договориться по месту: либо у меня п.1 и п.2 и вы ищите "и швец и жнец и на дуде игрец" в лице другого человека, либо мы договариваемся о новых сотрудниках и я развиваюсь как тим-лид

    Сейчас на вас повесили весь веб, а потом "тыж программист, че, чайник починить не можешь?". Надо уметь выставлять рамки и ясно говорить "Об этом мы не договаривались, а все дополнительное по желанию и за деньги" и точка!
    Ответ написан
  • Нужно ли учить программирование на английских ресурсах?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    У Вас порою выбора не будет.

    Примеры из жизни:
    1. К примеру веб-разработчику на Python желающиему изучить как применять Flask без умения читать по-английски не возможно это сделать. Потому что по-русски до 15 статей и то не дают точной и ясной информаци. А вот по-английски есть книга от Miguel Grinberg и в его "Flask. Web-development" настолько ясно и подробно, что больше ничего и не надо!
    2. Другой пример: научиться модульному тестированию. Вроде по-русски разве что ленивый не написал, а вот по факту есть только одна книга для новичков которая формирует ПРАВИЛЬНОЕ понимание это книга Art Of Unit Testing от Roy Osherove. И можно было сказать, что "есть же перевод", но в этом переводе вместо "спринт", "забег", да и само навание перевели как "искусство автономного тестирования". Ну или всем понятный "Framework" перевсти как "Каркас" ну я если честно очень в недоумении....

    Оно вам надо? Если есть время учиться именно по-английски это НАДО делать!
    Ответ написан
  • Как сделлать нормальный проект без хороших знаний?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    >>за очень хорошую сумму
    В чем проблема-то?
    1. Найти на фриланс-бирже очень толкового человека, почитать его блог, GitHub и др. активность
    2. Далее договориться что он будет надзирателем, а Вы реализующим. Он будет непрерывно смотреть вправлять руки на место, если неправильно растут.
    3. Каждый значимы результат показывать другу, заранее оговорив сроки. А эти сроки предварительно обсудить с фрилансером-наставником

    Я к тому, что не стоит прямо сейчас ставить акцент "получить много денег", лучше поставьте акцент "получить удочку и навыки ловить рыбку".
    Ответ написан
  • Ссылки с разными get параметрами это дубли?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Я бы не считал это дублем. Параметр может влиять на формирование результата. Только лишь на основании не особо удачного названия параметра со словом 'fake' я бы не стал делать выводов о том как он влияет на результат.

    Другими словами, я бы спросил себя : Влияет ли на результат параметр? Если да, то это не дубли
    Ответ написан
  • Сменили дизайн landig page, пропали заказы. В чём может быть причина?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Jazzcool: Если что-то уже работало, то это "что-то" надо применять и с небольшими, мелкими шажочками двигаться в сторону "на мой взгляд современный". Вы же не apple, чтобы быть настолько уверенными в себе
    Ответ написан
  • С чего начать изучать программирование законченному гуманитарию?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Гумманитарию?
    0. Самым главным навыком ЛЮБОГО программиста это "Уметь читать по-английски". Даже использование гугла не так важно, как чтение на Шекспир-Language.
    1. Прочесть самой первой первой книгу, но не про программирование, а про компьютеры. Лучше Эндрю Таненбаума об этом никто не напишет. Читай, читай, читай и пока не вкуришь лучше за программирование не садиться. У любого программиста зашит в коже ответ на вопрос "Какие задачи можно решить с помощью компьютера, а какие невозможно?". Чтобы этот ответ был понятен нужно знать о том как работает вычислительная система в принципе, хотя бы на "сумбурно"
    2. Затем берите книгу по Python. Язык достаточно дружелюбен к новичкам и быстрый старт обеспечен. Решайте свои задачи, не заботясь о качестве. Просто решайте!
    3. После получения конкретного опыта решения задач. Читайте Стива МакКонела про его Совершенный код.
    4. Снова решайте задачи, но уже пытайтесь не только свои, но и вливаться в проекты с открытым исходным кодом
    5. Далее про модульное тестирование, рефакторинг и др.
    6. Только после того как в принципе будет понятно, что такое разработка нужно углубляться в дебри. В дебри под названием : алгоритмы и структуры данных. Изучать про сложности.

    P.S.:
    Не слушайте "умников" про алгоритмы сразу. Почему? Потому что пока у Вас не загорятся глаза "Да, черт побери! Это точно мое" не имеет смысла зарываться. Только когда прет и горят глаза, только в таком состоянии можно одолеть груду сложных и запутанных кодов.

    #define true false // счастливой ночи брат
    Ответ написан
  • Не могу найти работу стажёром?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    >>стоит ли звонить на прямую в разные компания чтобы узнать нужен ли стажер ?
    Вопрос из серии "А стоит ли мне с девочкой..... или она сама... ?"

    Возможно Вы не русский и поэтому поделюсь мудростью наших предков "Без труда не вынуть и рыбку из пруда". Я к тому что без "действия" цель не будет достигнута. А у Вас есть ярко выраженная цель "работать джуниором". Не важно какое Вы предпримите действие, лишь бы оно вело к достижению этой цели!
    Ответ написан
  • Что должно уметь удобное python приложение для бекапа веб-приложений?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    А Вы спросите себя: "Если я завтра приду и сервер где работало приложение вдруг приказал долго жить, то какие данные мне нужны для БЫСТРОГО восстановление работы приложения?". Как только сможете перечислить, сразу же поймете ответ на свой вопрос ;)
    Ответ написан
  • Где искать единомышленников для создания проекта?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    А запилити-ка Вы сервис целью, которого будет поиск единомышленников для проекта. Вот ей богу, было бы полезно иметь возможность зарегистрироваться, описать идею проекта. Уверен, что очень много людей хотят всего и сразу, но так не бывает. За все нужно платить, к сожалению "работа на дядю" не всегда приносит те "пряники", какие хочется, а забирает безвратно забирает самое лучшее "наше время". Существует достаточно много адекватных мыслящих людей, которые отчетливо понимают, что "надо что-то делать" и существование подобного сервиса было бы весьма полезным!
    Ответ написан
  • Как в API приложения разрабатываемое на Flask добавить получение большого бинарного файла?

    EvilsInterrupt
    @EvilsInterrupt Автор вопроса
    System programming, Reversing Engineering, C++
    Помогли советы, ответы и личная консультация Алексей и @Gen1us2k.

    Конечный итог:

    Сторона сервера, т.е. мое приложение:
    Как то так:

    app.config['UPLOAD_DIR'] = config.UPLOAD_DIR
    
    @app.route('/uploads', methods='POST')
    def upload_file():
       file = request.files['file']
       filename = secure_filename(file.filename)
       file.save(os.path(app.config['UPLOAD_DIR'],filename))


    2.
    Сторона клиента. Для тестовых целей, чтобы написать модульный тест проверяющий мое веб-приложение на Python воспользовался библиотекой requests. Достаточно легко гуглится и легко используется
    Ответ написан
  • Как правильно построить URL в идеологии REST?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Может поможет:
    * pyvideo.ru/video/87/python-rest-api
    * thenextcode.ru/post/10-kak-pravilno-delat-rest-api...
    * habrahabr.ru/post/38730

    Насколько я понял выигрывает тот API, что содержит:
    * версию
    * существительные
    * Стремится не содержать глаголов

    GOOD:
    super-puper-api/ver1/resource

    BAD:
    super-puper-api/getResources
    Ответ написан
  • Нужно ли стартаперу знать языки программирования?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Qzaur На мой взгляд, весьма желательно! Но знать не профессионально, а достаточный минимум, чтобы суметь оценить хотя бы примерно сколько та или иная задача займет по времени? К примеру "Установить Python на windows". Я могу сказать Вам, что эта задача не реально сложная и займет около 3-х дней, сам поставлю за 5 мин, а остальное время буду тратить на себя. Как Вы поймете, что эта задача действительно занимает меньше 3-х дней?

    Варианты:
    1. Собственный опыт
    2. Опыт участников команды

    Из опыта скажу, что команды различные бывают. Бывают все участники проект более менее понимают, но есть специализация. А есть строго специализация, когда один участник договаривается с другим о том что ему нужно для дальнейшей работы. Так вот, если у Вас будет команда второго типа, то надеяться на мнение участников команды не всегда получится.

    Как ни крути. А риски значительно снижаются, если Вы умнее! ;)
    Ответ написан
  • Блоговедение или программирование?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Денис Каракчиев Могу ошибаться, поэтому выскажу всего лишь свое мнение, которое может быть ошибочным.

    Итак, блог и программирование они хоть и разные вещи, как Самолет и одеяло, но они взаимосвязаны.
    Связь в том, что программист программируя "мыслит", он не просто с небес\потолка или еще откуда берет код, он его "думает и переживает". Когда Вы пишите мысли о той или иной технологии Вы лучше и глубже начинаете понимать то что Вы описываете! Поэтому и говорят "Учитель учится больше, потому что ученик задаст такие вопросы, до которых учитель ни разу бы и не додумался".

    Блог вести надо, по след. причинами:
    1. Помогаете другим
    2. Получаете критику "Да ктож так пишет-то? Надо ...." и через аргументированную критику учитесь тому, что в книгах едва ли пишут!
    3. Пиаритесь. Кто-то решив свою задачу, может порекомендовать Вас своему руководству в качестве нового сотрудника "А давайте-ка попробуем его в нашу компанию позвать?"
    4. Это Ваш собственный справочник. Написанный тем человеком, который лучше всех Вас понимает! И тем языком и речевыми оборотами, которые Вы лучше понимаете. При этом следует учесть "Вы сейчас" != "Вы вчера".

    Программирование это процесс мышления, очень часто приходится принимать различные решения . Примеры: "А что если если я объект std::string передам в виде... ?" или "Насколько Важно здесь поставить ... ?" и др. Все это может быть основано на Вашем же опыте изложенном в блоге! Отсюда п.5.

    5. Блог это Ваш описанный опыт.
    Ответ написан
  • Разработка IDE русскоязычным сообществом?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    А почему Вы так боитесь учить английский? Это же не только язык потенциальных врагов, но прежде всего это язык с помощью которого выражено громадное количество технической информации. Хотите Вы этого или нет, но сейчас программист знающий этот буржуйстанский язык, как правило, больше выигрывает по сравнению с тем кто этого языка не знает! Возможно Вам стоит просто взять и начать учить, искать способы облегчающие его изучение.
    Ответ написан
  • Текстовый редактор и компилятор или IDE - что лучше и почему?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    По части редактора рекомендую посмотреть в сторону VIM или Sublime Text
    Ответ написан
  • Какие могут быть практические рекомендации по переезду разработчика на постоянную работу из региона в Москву?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Тут все как в переходе на FreeBSD или Linux. Да, просто берешь и переходишь.

    Я в 2007-м переехал так из глубинки(Татарстан):
    1) На старте было 27.000 руб
    2) Нашел через интернет человека которым был нужен программист за 35. 000 руб в в то время (Декабрь 2007)
    3) По чистой случайности именно он и предложил место для жилья. За 10.000 руб. в месяц.

    И того у меня сразу было 10 за квартиру, осталось 17.000, из них потратил сразу же на месячный абонемент в метро. Потом нашел места где можно по дешевле кушать, рыскал по интернет специально.

    В Москве ща можно найти, уверенно причем, 1-комн квартиру без хозяев за 25 и того с тебя будет 12.5 в месяц. Я к тому что нужно будет поискать компаньона чтобы на двоих платить! Ну на проезд в метро 1200 это 60 поездок, где-то 1.000 интернет и где-то 5-6.000 руб на покушать. И того готовь 12.5 + 1.200 + 1.000 + 6.000 руб. это из расчета на месяц, но лучше накопи 40-50 чтобы на 2 месяца уверенным быть.

    Если мозги есть то работу найдешь! Просто понты не кидай, а соглашайся на то что позволит зацепиться. В последствии как освоишься в Москве, поймешь быт, нравы, манеру общения здешних людей, тогда понимание сразу придет как быть дальше и советов тебе уже тебе не нужно будет давать.

    Да. По опыту скажу, первые 5-6 месяцев всех "понаехали" тянет обратно домой. Поэтому будь готов психологически, что придется окрепнуть морально ;)

    Также, забыл сказать, если переедешь, первое время билет не важно какой должен быть с собою. В течении 90 дней любой билет ЖД-поезда будет служить тебе временной регистрацией. Другими словами, если домой не поехал, а 90 дней проходят, иди и купи за 500-600 до какого-нибудь Владимира главное из него до Москвы, а в кассе на вопрос: "А туда как?", так и отвечай что кто-нибудь докинет, походу дела придумаешь.
    Ответ написан
  • Как организовать свой рабочий процесс?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Пробую поделиться своим опытом, может кому-то чем-то и помогу, на что очень надеюсь:

    1) На работе делайте свою работу только в те моменты, когда Вы наиболее продуктивны. Т.е. установите свою "рабочую зону" и в этот момент НИЧЕГО ЛИШНЕГО и только В РАБОТУ. Результат: Ваш мозг не будет загружен мыслями: я что-то не доделал или не сделал или я мог бы работать еще лучше. В результате этого придет понимание: что если Вы не успели в рабочей фазе что-то сделать, то лучше решить задачу в не рабочей фазе Вы по-любому бы не сумели. И как вывод будете меньше париться из-за работы и не будет мучить совесть, а это ооочень важно.

    2) Заведите несколько списков:
    - статьи к прочтению
    - книги к прочтению
    - идеи для проектов
    - домашние дела
    и др. А каждый список просто сортируйте перемещая тот или иной пункт в списке выше\ниже относительно других, если он вам кажется важней или наоборот менее важным.

    3) Закладки Вашего браузера должны быть закрытыми! Все закладки в конце дня, работы, завершения задачи ЗАКРЫВАТЬ! Если что-то нужно, то добавьте ссылку на статью в свою копилку куда-нибудь или укажите в комментарии в багтрекере вашей компании.
    Если же Вы читаете статью, то даже в случае если не дочитали она все равно закрывается. Это важно. В след. раз Ваш список по чтению статей укажет Вам на ту статью какую Вы читали и где ее искать, а мозг подскажет что вы уже читали, а что перечитать. Если же вдруг он указывает на другую статью, значит эта другая есть более Важная иначе бы она не была в топе.

    4) По возможности закрывайте любые нотификаторы, аськи, жабберы, аськи, а если нет возможности из-за рабочего общения, то минимум отключите их мигание, чтобы не заостряли Ваше внимание на себе.

    5) Полюбите полноэкранную работу с программами. Если это Ваша среда разработки, то открывайте ее в полноэкранный вид, если чего-то не хватает, то поищите плагин, если же нужна консоль нужна, то навесьте горячую клавишу для ее вызова. Потому что когда решается задача, вы должны оставаться в фокусе и ничего не должно Вас от этого отвлекать. Только Вы и только решаемая задача.

    6) Слушайте монотонную музыку, которая превращает Вас на время в робота, к примеру транс, хаус или еще что-то не раздражающее и монотонное. Но ставьте не громко, чтобы уши не устали. Если же музыку слушать не хотите, все равно, наденьте наушники, чтобы отключить себя от окружающих.

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

    8) Если Вас вдруг одолевает лень или Вы застали себя бесцельно шагающим по страничкам, то способ простой: Сесть и вытянуть ноги или лечь на кровать, закрыть глаза и НИЧЕГО не делать. Тупо и просто НИХРЕНА НЕ ДЕЛАТЬ. Через некоторое время начнут возникать мысли, что нужно сделать первое, второе, третье, а потом возникнет охрененное желание ДЕЛАТЬ. Вот это и есть то самое состояние когда нужно открывать полноэкранный вид вашей программы и работать, пока прет! А переть может очень долго.

    9) Просто примите как факт: Вы человек и Вы не можете сделать все что Вы хотели бы когда-либо сделать. Как вывод: Делать только максимально Важное для Вас. Отсюда более Важный вывод: Определиться что является Важным Лично для меня, а не дяди из книги или чувак с хабром писающим кипятком от очередного языка программирования. Ваше понимание Важности для Вас ооочень. Необходимо для тщательного и быстрого решения многих Ваших проблем.
    Ответ написан
  • Какие способы нумерации версий существуют?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Не скажу что гуру, но возможно и мой взгляд на версирование поможет чем-то.

    Версирование ПО помогает:

    1) Маркетингу
    2) Саппорту
    3) Разработчику
    4) Тестировщику

    п.1. Маркетолог может сказать «Ув. пользователь мы выпустили новую мажорную версию, в этой версии продукта много багфиксов и много вкусных фич.».
    п.2. Специалист саппорта может иметь возможность отвечать более предметно на проблемы, к примеру «По лиц.политике одна мажорная версия действительна в течении… месяцев, Ваша версия устарела. Вам стоит связаться с отделом продаж для Обновления» или «Мы не можем воспроизвести Вашу ситуацию какая версия продукта у Вас стоит?»
    п.3 Разработчик увидев задачу в баг-трекере может сказать «Я чего-то не пойму, для stable-ветки комиты есть, баг исправлен. В какой конкретно версии это воспроизводится?»
    п.4. Тестировщик также как и разработчик может утверждать «Я протестировал фикс баги на новой версии…, а также версии… проблема не воспроизводится, баг пофикшен»

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

    Из этого вытекают след. вопросы:
    1) Какова судьба софта проданного покупателю?
    2) Нужно ли хранить историю билдов и версий софта или достаточно иметь один stable-разлив?
    3) Как Вы хотите сообщать тех.специалистам о том что Ваша программа изменилась координально и возможно она не совместима с форматами пред. версий или же она просто получила доп. баг-фиксы и несколько новых фич?
    4) Хотите ли вы говорить покупателям что Вы реально круто поработали и им пора бы заплатить денег Вам чтобы Вашу работу оценить?

    Как правило, видя изменение мажорной версии многие спецы задаются вопросами:
    1) Совместима ли новая версия с прежними форматами?
    2) Изменился ли GUI и нужно ли обновлять инструкции использования в корпоративной документации нашей компании?
    3) Надо ли проводить приемочное испытание?

    И ряд. др. важных вопросов

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