Задать вопрос
  • Музыка и программирование

    классическая музыка
    Ответ написан
    Комментировать
  • Музыка и программирование

    @peanut
    Программист
    Скрипка или пианино во время программирования умиротворяют.
    Помню читал статью(жаль я пруфлинк не могу найти) и суть ее, на сколько я помню, в том, что проводилось исследование влияния музыки на работоспособность и результаты такие — если человек привык к прослушиванию музыки за работой, то есть постоянно это делает, то музыка не сказывается отрицательно на результаты монотонной работы, но при решении творческой задачи результаты хуже почти у всех, кто слушал музыку из-за взаимодействия участков мозга отвечающих за творческое мышление и восприятие.
    Так что может бируши лучше?
    Ответ написан
    Комментировать
  • Startandroid, Брайн Харди, или оффициальные туториалы?

    @akass
    Developer
    +1 за Харди, что мешает взять книгу с собой в армию?
    Ответ написан
    5 комментариев
  • Что изучать, на что тратить свободное время, чтобы в будущем стать востребованным программистом с нормальным заработком?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Ответ на вопрос будет сильно зависеть от того, в каком направлении вы думаете развиваться.
    Будет ли это сетевое программирование? Тогда это си, в основном.
    Может быть, веб-программирование? Тогда тут могут быть php, javascript, python, ruby.
    Захотите разрабатывать программы на десктоп? Вам нужны c# или java.
    На мобильные платформы? тогда java и objective c (плюс swift).
    Или податься в разработку игр? Тогда либо c++, либо с# (для Юнити - наверное, самой популярной платформе).
    Хотите экзотики? Приглядитесь к функциональным языкам - Erlang и Haskell.
    Разработка железа и драйверов для железа? тогда си (без плюсов) и ассемблер.
    Определитесь, что вы хотите, потому что всё объять не получится. Выберите один (или два) направления и добейтесь хорошего уровня в нём. А потом вам будет уже легче двигаться дальше.

    Мой совет - попробуйте изучать C# или Java (они во многом похожи) для софта, или Javascript и php/python для веб-приложений и сайтов.

    Добавлю, что очень правильный совет дал @tsarevfs - помимо языка программирования, хороший программист должен знать несколько инструментов - и в первую очередь, это система контроля версий, например, git. Плюс юнит-тестирование (хотя это можно начать изучать позже, через годик-два). Плюс - нужно хорошо знать свою IDE, в которой работаете; не вздумайте работать в блокнотиках!

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

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

    UPD. Важное дополнение из обсуждения в комментариях (спасибо @Argentum88 @Deerenaros )
    Чтобы стать профессионалом и "востребованным программистом с нормальным заработком", нужно очень хорошо понимать внутреннее устройство тех систем (платформ, фреймворков), на которых идёт работа.
    Для этого нужно заглядывать вглубь. Изучив различные мейнстрим-инструменты, посмотреть на аналогичные менее популярные системы. Изучать исходный код используемых open-source библиотек. Написать свою подобную систему. Для web - написать свою CMS (хотя бы базовую). Для десктоп-программ - попробовать программировать без навороченных библиотек, которые делают рутинную работу за программиста. Для разработчика игр - сделать простую игру на базовом инструментарии платформы, где всё придётся делать своими руками.
    Всё это даст возможность проникнуться, почему всё делается именно так, даст понимание взаимосвязей разных частей программы.
    А потом, осознав это, выбрать один из уже готовых инструментов, и продолжать писать на нём, уже обладая более глубоким его пониманием.
    Ответ написан
    21 комментарий
  • Хочу устроиться Android разработчиком. С чего начать, куда двигаться?

    @Mintormo
    Могу посоветовать стандартный набор ресурсов:
    startandroid.ru/ru/uroki/vse-uroki-spiskom.html
    developer.alexanderklimov.ru/android
    И, как справочник, официальная документация:
    d.android.com
    Еще посоветую посматривать статьи на Хабре:
    habrahabr.ru/hub/android_dev
    Вот неплохая книга (есть на рутрекере):
    www.ozon.ru/context/detail/id/24301926

    Что касается джуниора, то лично я сам сейчас хочу им стать и составил для себя следующий план:

    1. Общая архитектура приложения. Компоненты приложения.
    2. Интерфейс (Fragments, ActionBar, диалоги и прочее). Работа с анимацией элементов управления. Создание кастомных элементов управления.
    3. Многопоточность (Threads + Handler, AsyncTask, runOnUiThread, post).
    4. Работа с файлами.
    5. Сеть. Сокеты. WebView.
    6. Сервисы.
    7. Google Maps и GPS (в перспективе возможно OpenStreetMap и MapKit Яндекса).
    8. SQLite.
    9. Протоколы. HTTP/HTTPS, JSON, XML, OAuth2, возможно protobuf.
    10. API социальных сетей (ВКонтакте, Facebook, Twitter, Instagram, Flickr).
    11. Создание виджетов.

    Вот когда с этим закончу, сделаю парочку простых проектов и пойду устраиваться джуниором. :)
    Ответ написан
    1 комментарий
  • Как подготовиться к собеседованию (Android разработка)?

    @FoxInSox
    Людей которые себя позиционируют junior разработчиками, но вместе с этим имеют опыт работы в другой сфере, часто проверяют на способность работы программистом в целом, а выбранная специализация(android, frontend, backend) уже второстепенно. Про тестеров могут возникнуть вопросы вроде "Может быть он хотел стать программистом, но не смог никуда устроится и стал тестером".

    Так что я бы на вашем месте готовился к вопросам по Java(коллекции, GC, ООП, работа с памятью и тд), вопросам по основным алгоритмам и структурам данных. И если вы идете в серьезную компанию, а не стартап какой попало, то я бы на вашем месте готовился усердно, т.к. вашими конкурентами будут 20-22-х летние студенты или выпускники, которые последние несколько лет учили все выше перечисленное ежедневно, и еще, наверняка, у них не пустой GitHub/StackOverflow и они гарантированно как минимум год готовы будут работать за опыт, что в вашем случае еще не факт.

    Если вы покажете себя как потенциально хороший программист, то вам простят не 100% знание Android'а.
    Ответ написан
    3 комментария
  • Различия между классом и объектом?

    Я придумал свою дурацкую аналогию.

    Класс — это бог, который есть всегда. И бог по образу и подобию своему создаёт экземпляры — человеков. Каждый человек наделён своим набором свойств (рост, вес, ...) и методов (плавать, ходить, летать, ...). А бог в свою очередь наделён общими для всех методами: принимать мольбы, карать, посылать манну небесную и сотворить чудо. Эти методы могут быть приватными. Т.е. бог например может принимать мольбы только людей, а не марсиан. А вот сотворить чудо может как для людей, так и для марсиан — ему не жалко.

    : )
    Ответ написан
    Комментировать
  • Различия между классом и объектом?

    Weageoo
    @Weageoo
    Класс = срособ организации полей, методов и пр. = инкапсулированный «кусок» функциональности, описание структуры будущих объектов + своё пространство имён внутри.

    Статическая составляющая класса — static-методы и static-поля — это логический способ организации функциональности, общей для любого объекта выделенной сущности. Тут значение имеет логическая составяющая — например, статический метод Parse есть и в классе int, и в классе Guid — но его функциональность различна и соответствует выделенной сущности. Для static-составляющей класса, в принципе, его можно воспринимать как пространство имён. Но пространсто имён нельзя инициализировать, нельзя создать объект пространства имён.

    Объект = экземпляр класса = объект, типом которого является какой-то класс = класс после инициализации = сущность в памяти, обладающая поведением, способная изменять своё состояние.
    Ответ написан
    Комментировать
  • Различия между классом и объектом?

    homm
    @homm
    Может быть вам легче будет понять, если вы будете думать о классе как о наборе функций, а об объекте как о наборе данных.

    Некоторые функции в классе могут быть использованы только с набором данных (т.е. объектом), который передается неявно, когда вы указываете $object->method().

    Другие функции не требуют объекта, поэтому могут быть вызваны напрямую из класса.

    С этой точки зрения очень логично выглядит Python, где у любого метода есть явный аргумент self, указывающий на объект, из которого был вызван метод. А запись object.method(5) является краткой записью ObjectClass.method(object, 5).
    Ответ написан
    1 комментарий
  • Разработка игр

    sdevalex
    @sdevalex
    — Если не знаешь английский, то учи этот язык. На русском по разработке игры очень мало всего.
    — Если не знаешь C++, то учи его (учить можно не полностью, тонкости в любом случае придут с практикой).
    — Если немного знаешь C++ (свободно владеешь указателями и ссылками), то бери простой 3d движок (Irrlicht, Horde3D), читай форумы и уроки.

    А вообще разработка игр — это всего 10 простых вещей и 997 очень сложных… Три простых вещи я перечислил выше.
    Ответ написан
    Комментировать
  • Какую IDE выбрать для разработки под Android?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Лучше то, что говорит отец - Google: Android Studio.
    Ответ написан
    Комментировать
  • Какую IDE выбрать для разработки под Android?

    anyd3v
    @anyd3v
    Android Studio, она базируется на IntelliJ IDEA, только android plugin на много развитее, тк его в первую очередь делают для Android Studio а потом вносят в IDEA
    Ответ написан
    7 комментариев