• Что изучать: Ruby или Node.js?

    anderles
    @anderles
    Software Architect at Zelpex Media Group
    Я затятый php-шник, делаю проекты свыше 10 лет. Перепробовал кучу всего что есть в php мире. Сейчас делаю большие соц. проекты с помощью zf2 и laravel framework. В команде в одном из последних проектов делаем real time приложение(в основном обработка видео и картинок). После тестового приложения на php поняли что что то не то и как то туговато все здесь происходит(Использовали MongoDb, Ratchet, RabbitMq, Zf2, Laravel + многопоточность) (может мы как то не так оптимизировали весь свой php стек - но было чувство что сделали огромного зверя и не поворотливого). Начали смотреть в сторону nodejs и go. После всяческих тестовых прототипов было решено двигаться в сторону nodejs. Go в некоторых случаях даже лучше чем Nodejs - для меня в первую очередь - это то что он компилируем. Ну и не на много но быстрее! Так что если есть время тогда лучше посмотреть в сторону Go Lang. Некоторые здесь говорили что для большинства сайтов подойдет rails-based инфраструктура - Я с этим категорически не согласен(Извините, но это мое ИМХО). Для большинства сайтов как раз таки подходит php+js-based инфраструктура. Это также подтверждает количество разных фреймворков и библиотек сделанных на этих двух языках. Может я плохо искал но я не видел на фриланс биржах такое количество запросов у руби как в php или может кто то делает фронтенд на руби и без js? Почему мы в команде сделали упор все таки на nodejs? Все просто потому что я и почти все из моей команды считаем что эти два языка не то чтобы за 5 лет не выйдут из пика(как говорилось выше про руби и RoR), а они еще будут и 20 лет развиваться. И сугубо мое мнение что Java Script вообще не умрет никогда )). Сейчас nodejs отлично справляется со своей задачей - а это обрабатывать запросы с фронтенда создание видео и фото файлов или даже целых куч стеков таких файлов. Не обошлось и без php в нашем случае он работает с консольными демонами. А что можно посоветовать так это то что нужно смотреть на стабильность и рост как языка так и целых стеков. Что не нравится в nodejs так это то что код постепенно может превратиться в лапшу, но такое может быть и в php :). Ну и для разработчика вообще хорошо знать не только интерпретируемые языки но и компилируемые. Спасибо за внимание!
    Ответ написан
    Комментировать
  • Как распределить время при обучении программированию?

    Jeiwan
    @Jeiwan
    Никто вам точно не ответит. Никто не знает ваших обстоятельств, способностей, желания учиться. Никто не знает насколько глубоко вы будете изучать эти темы и насколько тщательно прорабатывать их. Дать точные сроки вам смогут, только если вы будете следовать какой-то отработанной учебной программе. И то даже после таких программ люди выходят с разным уровнем знаний и умений. Все зависит от вас. Да и не нужно знать все эти темы для того, чтобы начать работать.
    Главная ваша проблема (и проблема других таких же людей, которые решили научиться программировать) заключается в том, что вы почему-то считаете, что сможете обучиться программированию по книгам. Прочитал книжки и стал программистом! Это обманчивый путь, так как программирование — это чистая практика. Теория тут нужна только тогда, когда нужно решить какую-то практическую трудность. Чтобы читать книжки по алгоритмам, ООП и базам данных, нужен уже какой-то опыт, иначе всё, что там написано, пройдет мимо и забудется.
    Еще часто бывает, что задачи, с которыми сталкиваешься, не описаны в книжках, которые ты прочитал или хотел бы прочитать. Довольно часто решение задачи находится в интернете, а не в книгах. Это я к тому, что нужно начинать с практики и прорабатывать теорию под конкретные задачи. Вот вы написали что-то, вот застряли в каком-то моменте с БД, не знаете, как правильно сделать. Ищете в интернете или в книге, как решается эта проблема и решаете её. В итоге получаете и знание, и опыт, который это знание закрепляет.
    Если вы знаете, куда хотите пойти работать, узнайте, какие там задачи решают и цельтесь сразу туда: составьте себе список таких задач и попытайтесь решить их самостоятельно. И заодно сузите теоретический минимум. Умение решать конкретные задачи намного важнее горы теоретических знаний.
    Ответ написан
    2 комментария
  • Как вы управляете своей базой знаний? Какие инструменты для этого используете?

    dmitry-polushkin
    @dmitry-polushkin
    Инженер программного обеспечения
    Использую нейроны головного мозга. Очень рекомендую. Free of charge, open-source, пожизненная лицензия ;)
    Ответ написан
    4 комментария
  • Как настроить совместную работу sublime text 3, github и bitbucket?

    Базовые знания:
    1. Создаем новый репозиторий в GitHub/Bitbucket.
    2. Создаем папку проекта с файлом .gitignore (в нем пишем форматы файлов и пути, которые не должны отслеживаться системой контроля версий: всякие логи *.log, временные файлы *.tmp, пути /trash и т.п.)
    3. В терминале находясь в данной директории инициализируем git.
    git init
    4. В ST пишем код и сохраняем в этой директории.
    5. В терминале смотрим изменения, добавляем и ставим в очередь на коммит в git все созданные файлы/директории
    git status
    git add -A

    6. Делаем коммит-мерж
    git commit -m 'Initial commit'
    7. Добавляем связь с удаленным репозиторием
    git remote add origin <адрес репозитория из п.1 на GitHub/Bitbucket>
    git remote -v

    8. Пушим локальные изменения в удаленный репозиторий
    git push origin master

    Далее в процессе работы повторяем пункты 4-8.

    Если нужно затянуть новый удаленный репозиторий
    git clone https://github.com/repo

    Для ветвления сначала достаточно знать только checkout и merge.
    Ответ написан
    3 комментария
  • Ценится ли IT-специалист, который умеет все?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Могу по себе сказать. Так уж получилось, что карьера у меня началась с графического дизайна, но в это же время я увлекся html. Сделал карьеру в дизайне, доработался до старшего арт-директора крупного РА, потом креативного директора, получил несколько наград на фестивалях. Потом понял, что уперся в потолок, и ушел раззвиваться проджектом. Дослужился до технического директора интернет-департамента крупнейшего телеканала страны. В процессе сильно втянулся в программирование (html-css-js-php все это время было перманентным хобби и отчасти дополнительным фрилансом). Сейчас как раз выступаю в роли CTO в крупном стартапе, одновременно являясь "играющим тренером", пишущим большую часть кода и рисующим интерфейсы. Мое знакомство с компьютерами началось с Линукса - в универе в интернет-центре все компы были на нем. Итого, на выходе получился дизайнер, верстальщик, програмер, сисадмин, проджект-менеджер с хорошим пониманием всего процесса целиком и всех мелких процессов в каждом направлении, а также с четким понимаем того, как это все превращается в системный бизнес. На всех этапах моих карьер эти навыки приносили очень хороший доход. Но есть одно "НО" - у меня на это ушло 16 лет. Шестнадцать. Есть такое правило 7000 часов (если мне не изменяет память). То есть, занимаясь серьезно одним делом 7000 часов ты становишься профессионалом в этой сфере. Берем 8 рабочих часов в день, 40 часов в неделю, 50 недель в году. Итого - 2000 часов в год. 3,5 года, чтобы стать профессионалом в одной сфере. Это если отнестись к делу серьезно. Если же по-быстрому нахвататься обрывочных и общих знаний из разных областей - толку от этого мало. Такой "специалист" заявляет, что знает все, но на самом деле толком не знает ничего.
    Ответ написан
    Комментировать