• Как убрать лень начинающему программисту?

    @Centrino
    Пойти поработать грузчиком, официантом, курьером, строителем (разнорабочим) на пару месяцев - все сразу снимет)

    Но а может программирование не то, к чему душа лежит.
    Ответ написан
    Комментировать
  • Как отлично запоминать прочитанный материал?

    sim3x
    @sim3x
    Повторять

    habrahabr.ru/post/216633

    https://ru.wikipedia.org/wiki/%CA%F0%E8%E2%E0%FF_%...

    Если есть два дня
    первое повторение — сразу по окончании чтения;
    второе повторение — через 20 минут после первого повторения;
    третье повторение — через 8 часов после второго;
    четвёртое повторение — через 24 часа после третьего.
    Если нужно помнить очень долго
    первое повторение — сразу по окончании чтения;
    второе повторение — через 20-30 минут после первого повторения;
    третье повторение — через 1 день после второго;
    четвёртое повторение — через 2-3 недели после третьего;
    пятое повторение — через 2-3 месяца после четвёртого повторения
    Ответ написан
    2 комментария
  • Знаете ли вы столь же полезные сайты как Toster, Habrahabr, Lifehacker?

    globuzer
    @globuzer
    gezgrouvingus progreszive ombusgrander greyderzux
    Подкаст radio-t.com
    Говорят о многом и собирают инфу отовсюду; читать не надо, только слушай.
    Ответ написан
    6 комментариев
  • Как начать заниматься фрилансом? Как начать программировать с нуля?

    globuzer
    @globuzer
    gezgrouvingus progreszive ombusgrander greyderzux
    Есть деньги или нет, главное учиться. Вы вышли в интернет, значит на это есть деньги. Делаете все что написали, значит тоже есть деньги. Уровень состоятельности зависит от уровня трат.
    Вам не к чему тратить, если адекватно оценить, не нужны Тайланды, не нужны БМВ и бентли, не нужны блондинки. Хотя это всем не помешает, но в вашем случае в данный момент нужно научиться и набраться опыта.
    Главное - поступить в хороший технический ВУЗ, связанный с информационными технологиями, всегда, сейчас и потом очень хорошо изучать и штрудировать базовые и основные науки: математика, физика, алгоритмы, шифрование, криптография, английский язык (написал что будет акутально вам). На старших курсах устроиться куда то подрабатывать, ну и опыт перенимать.
    На начальных курсах не стремиться за деньгами, а стремиться получить больше опыта и знаний, навыков. Запомните, что вложите в себя изначально - потом окупиться в несколько раз дороже, так что главное ЗНАНИЯ. Учитесь, хоть даже вы и из деревни! Все доступно! У вас есть интернет! Это уже просто ОФИГЕТЬ! У меня знакомые в свои годы не имели интернета, писали рефераты в ручную, рисовали алгоритмы по программированию карандашом с линейкой и оформляли отчеты по комбинационным алгоритмам от руки! Вы сейчас в шоколаде просто! Пользуйтесь технологиями и информацией во блага своего багажа знаний! Учитесь всему! Учитесь учиться! Учитесь находить нужную информацию! Учитесь быть внимательным! Учитесь промышленному шпионажу! Учитесь!
    А все остальное потом приложится! Если сейчас все вложить в себя, все сделать правильно, то лет через 5-9 вы сможете обеспечить и себя и своих близких достаточно на высоком уровне. И не забывайте про психологию, людей, связи, общение, развивайтесь в целом! Развивайте свою личность, учитесь! Тогда и только тогда вас ждет успех! Успех удивительный! Да будет так! Да прибудет с вами сила!
    Ответ написан
    9 комментариев
  • А в чем минусы node.js?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В том же в чем его и плюсы.

    Асинхронность... ее там нет. Там есть event loop что позволяет писать крайне эффективные программы в плане работы с I/O (что для web очень неплохо) и не париться о таких вещях как потокобезопасность, блокировки и т.д. А если еще и несколько инстансов приложения запусть - по одному на ядро скажем, то утилизация вычислительных мощностей выйдет неплохой. Но распаралелить что-то в рамках одного процесса воркера мы уже не можем. Мы не можем посчитать что-то, проанализировать, заняться обработкой жирной картинки прямо при обработке запроса потому что наш процесс воркер так же обрабатываете еще пару десятков запросов, и пока мы будем удовлетворять нужды одного простаивать будут все. Нода хороша когда у нас все состоит из элементарных операций которые не занимают много времени, все жирное надо выносить из основного процесса и разруливать очередями и т.д. Эта проблема имеет массу решений на самом деле, но все уже усложняется и нода теряет свою красоту. Лучше взять Java/c#/Python для этого (и не надо тут вспоминать про шутки с многопоточностью в CPython).

    callback-hell. Собственно наличие event loop диктует так же правила о том, как должна писаться программа. Кучи колбэков, невозможность дебажить нормально и получить четкий стэктрейс из ошибки. Да, есть промисы которые решают первую проблему, да есть либы вроде zone.js которые решают вторую и частично первую проблему... но все это не тривиальное дело.

    Собственно... разработка больших и сложных проектов на ноде возможна... но требует от разработчика хорошие знания и понимание того, как работает его платформа. А это увеличивает стоимость разработки в то время как можно взять более эффективные в этом плане инструменты.
    Ответ написан
    10 комментариев
  • Какие самые реальные и действенные проекты\работы\фриланс для python-программиста?

    voidnugget
    @voidnugget
    Программист-прагматик
    Пишу на питоне ещё с 15 лет (2.4+)... ненавижу его runtime и архитектуру. Язык хороший - реализация никакущая. Ну да его синтаксис достаточно упрощён, но и за синтаксический сахар приходится платить сложностями отладки и поддержки.

    Сейчас же почти все известные мне конторы не используют питон в продакшенах с более-менее высокой нагрузкой. Яндекс тому пример. Чаще питон используется для решения прикладных задач администрирования, так как это делается, к примеру, в SaltStack. Все дружно слезают с питона, РНР и рельсов на Golang, Java/Scala, и иногда даже Groovy - производительность выше в десятки раз, и managed runtime на много стабильнее. Правда в случае с JVM очень сильно раздувается куча в виду избыточности объектной модели (оператву жрёт как дурное, а я байтики считать привык). Сейчас это должно лечится с помощью Project Graal и Truffle, правда пока до этого дошёл только jRuby, который тоже в пару десятков раз быстрее Ruby. По идее и Groovy тоже должен переползти как-то ... Вот про jyton ничего не знаю.

    Много моих знакомых слезло на Golang с Ruby и Питона.
    Стоит попробовать - он достаточно простой и идиоматичный, вот рефлексию стоит обходить стороной - она очень медленная, впрочем как и везде. Работу может и не найдёте сразу, но после реализации пары простых проектов будет проще предлагать в качестве целевой платформы.

    Фрилансить с питоном начать можно, но очень желательно опробовать ещё хотя бы пару окружений и фреймворков типа Groovy Grails, или Typesafe Stack. Сейчас требования рынка возросли в пару раз за последние два года - нужны ассинхронности/многопоточности, push-нотификации в мобильные приложения и по вэбсокетам/комету. И это всё с богатыми js-фронтендами на всяких там Angular'ах и React'ах. Естественно можно крутить костыли типа Celery / Gearmand / Beanstalk / RabidMQ, но накладные расходы на коммуникацию слишком большие :( Компилируемые языки со своими Managed Runtime'ами позволяют строить монолитные приложения в которых подобные решения избыточны в рамках одной и той же машины, а если это куча нод в кластере то нужно мерить/думать.

    Django сейчас сложно поддерживать так как он достаточно сильно развился за последние 3 года, и я очень сомневаюсь что сохранится совместимость новых версий со старыми.

    А вот с pyramid (pylons) и SQLAlchemy можно строить достаточно хорошие приложения. У них есть enterprise поддержка и соответствующие гарантии.

    Типовые задачи на питоне:
    - написать какой-то мелкий скрипт с Gui на PyQT / Pyside для какой-то аналитики и отрисовки графиков, иногда попадаются задачки с gstreamer'ом
    - написать какое-то простое RESTful CRUD приложение, в стиле "одна табличка БД - один контролеер", это конечно же тонна копипасты и мне больше нравятся DataMapper'ы по типу TastyPie. Иногда люди хотят чистого Tornado или Flask'a, так как им не нравится overhead в джанге и pylons.
    - написать скрипты для деплоя чего-то, обычно люди не знают про SaltStack.

    В плане архитектуры питонистам чужды различные SOA с CQRS-ES'ом, потому что сам компилятор не располагает. Хотя её достаточно просто поддерживать.

    Проблема всех проектов на Node.js / Python / Ruby это отсутствие долгосрочной поддержки библиотек и фреймворков - часто ломается обратная совместимость, и нужно постоянно следить за состоянием всех зависимостей. Опять же нужен TDD/BDD для того что это всё хорошо контролировать. Тестируешь руками - себя не уважаешь.

    Ну и вроде всё ...
    p.s. я опубликую на хабре статью сегодня-завтра "Freelance - you're doing it wrong" там поделюсь опытом работы и основными организационными проблемами в рамках удалённой работы и фриланса, покажу разницу между ними.
    Ответ написан
    6 комментариев
  • В чем же сила Node.js ?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Сила в том что все знают JS. Кто может писать на PHP/Ruby/Python? Те кто пишут на PHP/Ruby/Python соответственно (и скажем по 10%-15% от количества каждых кто может писать хотя бы на двух из трех языков. Кто может писать на JS? Все фронтэндеры + добрых каких 60%-70% от всех этих php/ruby/python/java/c# разработчиков...

    Что это дает? ОГРОМНЕЙШЕЕ комьюнити... большая часть быдло конечно но засчет огромнейшего количества разработчиков инструментарий начал просто очень быстро развиваться. Кому нужен инструмент написанный на Ruby если его можно написать на JS и его сможет поддерживать на порядок больше людей?

    Вопрос производительности по началу стоял как основная фишка языка. Все кричали наконец-то, V8 на сервере, асинхронность! Самый быстрый интерпритируемый язык на планете и все такое. Но на деле все чуть сложнее. JS реально быстрый. По сравнению с тем же Ruby он в разы быстрее! Но по большому счету на это адекватным людям плевать с высокой колокольни, так как js нифига не асиинхронный. JS работает в один поток. Причем в этом же потоке работает и сборщик мусора. Если он начнет все чистить - все замрет. Обычно это не сильно большая проблема но как-то забавно. Асинхронное в JS только работа с IO которая на плюсах/си реализована...

    Революционности так же нету. JS на сервере не новая идея и практиковался еще лет за 5 до. Просто это была очень удачная реализация да ктому же если бы не V8 то так же все было бы не так круто.

    Что до сравнения с PHP и т.д. - это инструменты для разных сфер. PHP - разработка web-сайтов. node.js - демоны, инструменты разработки, шины данных, доставка данных и т.д. Для всего остального PHP подходит больше. Есть правда пара интересных проектов главная цель которой устранить дублирование кода на сервере и на клиенте.... но подходят эти наработки пока только для очень простых проектов (хотя все относительно).

    Если вас прям плющит от нового, быстрого, современного, с клевым дизайном и тоже где повлиял гугл - golang.
    Ответ написан
    11 комментариев
  • Что такое серверная и клиентская часть?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Любая система в веб состоит из 2х частей.
    1 часть (клиентская) - это фактически та программа, которой вы пользуетесь у себя на компьютере. Например браузер.

    Сам по себе браузер ничего не умеет. Он умеет только отображать информацию полученную откуда либо.

    Соотвественно вводится 2 часть системы - серверная.
    Она как-то взаимодействует с клиентом (браузером, телефоном и т.п) таким образом, чтобы пользователь клиента мог получить какую либо полезную информацию.

    Т.о. клиент отправляет запрос серверу. Сервер его обрабатывает и отдает ответ. Клиент этот ответ отображает.

    Для клиентской части вам надо (в первом приближении): HTML\CSS, JavaScript или создать программу (для андройда, для компьютера и т.п.)

    Для серверной части вам надо (в первом приближении): PHP, веб-сервер (apache, nginx), база данных (MySQL, Postgresql, MongoDB и т.п) или другая программа способная взаимодействовать с клиентом каким либо образом.

    Можно не создавать клиент-серверную архитектуру. Можно сделать обычную программу, и работать с ней.
    Ответ написан
    Комментировать
  • Как опознать фреймворк Ruby on Rails на сайте?

    cha-cha
    @cha-cha
    Ответ написан
    Комментировать
  • Расширение команды разработчиков. Вопрос безопасности)

    DeusModus
    @DeusModus
    Ведите себя порядочно и тщательно отбирайте кандидатов. У меня вот куча «секретного» кода на руках многих больших проектов и никаких мыслей ни продать, ни себе забрать.
    Ответ написан
    Комментировать