• Какие сейчас востребованные направления IT в Санкт-Петербурге?

    @Nodar
    Python, Ruby, JavaScript
    Опишу свой опыт. Я сам junior с полугодовым опытом разработки на Python. Причем, я еще и без образования в IT. Пару месяцев регулярно сидел на hh.ru в поисках. Опыт московский, но в Спб тоже самое.

    Самый простой способ (как это уже отметили - это Php). Я думаю вам не составит труда его изучить, тем более за год. Помимо самого языка изучить какой-либо фреймворк. Из моих наблюдений, самые популярные это Yii/Symfony. Yii несложный в освоении и многие его используют.

    Теперь о Python. Вакансий, со знание только Python намного меньше, но как правило они интереснее. Если вам интересен веб - поднимите свой скилл в Django. Практически любая python вакансия требует знаний django.

    Но если хотите не только лопатить сайты - то вот вам список того, что лучше бы освоить, если еще не знаете:
    - linux (не требуется быть гуру, хотябы знать что такое cd/ls/nano/ssh - и тп)
    - алгоритмы и структуры данных (опять же, врядли вас будут их жестко спаршивать, но что такое стек, очередь, дерево - лучше бы знать)
    - желательно уметь пользоваться git/mercurial
    - представлять что такое mysql/postgre и как там делать crud операции.
    За год это можно освоить как минимум трижды.
    -------------
    Итог всего:
    Забудьте про Ruby - молодым рубистам практически не рады
    Выбирайте либо Php (Yii/Symfony) - это в 90% случаев банальное создание сайтов, но вакансий много
    или Python(Django) + linux/алгоритмы - вакансий мало, интересных еще меньше, но найти место реально.

    И последнее, не нужно бояться. Я искал работу где-то 3 месяца, потому что хотел писать только на питоне, я не перевариваю Django и учить его не собирался, поэтому выбор был реально маленький.
    Пишите даже тем, кто не ищет джуниоров. Лично меня только 1 раз из примерно 8 собеседований поспросили сделать задания, в остальных случаях со мной просто беседовали. Я рассказывал о том, что я делаю, чтобы поднять свой скилл, какие книги читал, планирую прочесть, что планирую вообще учить. Потому что выбирая джуниора, большинство просто хочет быть уверенно, что вы рельано готовы много работать дома, чтобы поднимать свой уровень.
    Как-то так.
    Ответ написан
    Комментировать
  • С чего начать изучение веб разработки на Python, человеку абсолютно не знакомому с backend?

    @Masterme
    Работа с веб отличается от работы с не-веб одной простой вещью:
    - сервер (апач, нжинкс и т.п.) получает запрос (а запрос - это строка) от браузера,
    - сервер обращается к приложению, передавая ему эту строку как аргумент,
    - приложение возвращает результат (тоже строку),
    - сервер отдаёт полученную строку в браузер.
    Конкретно для питона такое подключение скрипта к веб-серверу решается с помощью WSGI.
    Как это сделать. В настройках веб-сервера вы указываете документ_рут вашего приложения и скрипт с колбэком. Конфигурация для апача:
    <VirtualHost *:80>
         ServerName mysite
         DocumentRoot /var/sites/mysite/public
         WSGIScriptAlias / /var/sites/mysite/script.wsgi
     </VirtualHost>

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

    def application(environ, start_response):
        status = '200 OK' 
        output = 'Hello World!'
    
        response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))]
        start_response(status, response_headers)
    
        return [output]

    Когда апач получит запрос - он через wsgi запустит функцию application, а полученный от неё результат выдаст в ответ на запрос.

    Это всё, что нужно для понимания, как обрабатывать http-запросы из питона. Всякие джанги работают на этом же механизме.

    Теперь неочевидный нюанс. Дело в том, что обычно апач в нормальном состоянии отдаёт статику как статику. А если подключить к нему wsgi - то wsgi начнёт перехватывать и запросы к статике тоже. В джанго такая ситуация решается через жопу (что доказывает, что джангодрочеры - альтернативномыслящие), а именно: предлагается создать поддомен для статики и раздавать её сервером без wsgi, нжиниксом каким-нибудь, либо отдавать статику скриптом. Оба варианта, мягко говоря, спорные. Я считаю намного лучше и гибче третий вариант:
    <VirtualHost *:80>
         ServerName mysite
         DocumentRoot /var/sites/mysite/public
         RewriteEngine on
         RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
         RewriteRule (.*) /index.py/$1 [L,QSA,PT]
         WSGIScriptAlias /index.py /var/sites/mysite/script.wsgi
      </VirtualHost>

    (Обсуждается здесь.)
    Ответ написан
    20 комментариев