• Как вы организуете свою работу?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Про GitHub.

    1) Любой проект, даже самый маленький начинаю в новом репозитории. Потому что:
    - мало ли что из него вырастет,
    - код в Гитхабе это бэкап, не засерается место в Дропбоксе или других облаках,
    - мгновенный поиск по коду в репозитории, актуально когда проект уже достаточно большой,
    - легче спросить совета у коллег или показать проблему, когда исходники можно посмотреть онлайн,
    - проект удобно хоронить, если он заглох, или закинуть в портфолио, если он клевый.

    2) Создал себе на Гитхабе две дополнительные организации внутри своего аккаунта.
    - «paulradzkov-forks» — для форков чужих проектов.
    - «paulradzkov-heaven» — кладбище для старых проектов, куда перемещаются все неактуальные проекты.
    Эти две дополнительные организации позволяют очистить основной аккаунт от мусора. В нем теперь только несколько актуальных проектов, в которых легко ориентироваться.

    3) Перемещаю все старые проекты из Дропбокса на Гитхаб в «paulradzkov-heaven». Проектов много, это долго, но освободилось уже несколько гигов (т.к. там кроме кода psd-исходники, архивы с инсталляторами и прочее). Место в облаках заканчивается, а на Гитхабе — резиновое.
    Это кладбище уже пригодилось, когда у меня попросили поискать исходники проекта, над которым я работал 3 или 4 года назад, а я через минуту ответил им ссылкой на нужный репозиторий. Не пришлось никуда лезть, распаковывать, искать, запаковывать, отправлять почтой или закачивать в облако.
    Повторюсь, что на Гитхабе классный поиск по исходникам: если нужно посмотреть, как что-то сделал в старом проекте, но не помнишь в каком — можно довольно быстро найти искомое без возни с архивами.

    Итого.
    Код должен лежать на Гитхабе.
    В том числе старые проекты.
    Используйте организации, чтобы рассортировать проекты, если их много.
    Порядок там, где у каждой вещи есть своё место. Придумайте себе правила порядка заранее и соблюдайте их, чтобы не тратить время на ликвидацию беспорядка.
    Ответ написан
    10 комментариев
  • Как повысить уровень программирования?

    tiabc
    @tiabc
    Бизнес-партнер и консультант по технологиям
    Хорошие разработчики постоянно развиваются и никогда не стоят на месте. Любое развитие состоит в делании дел, в решении конкретных задач и в обратной связи, которую ты получаешь от других или в результате рефлексии.

    TL;DR: Читайте книжки, делайте дела, читайте чужой код.

    Что можно начать делать прямо сейчас, чтобы стать программистом лучше?

    1. Изучайте базу. Алгоритмы, сети, криптографию, архитектуру, ос, устройство браузеров, компиляторы и т.д. Изучение подобных вещей дает понимание какие задачи бывают в реальном мире и как "большие дядьки" решают возникающие проблемы. Это кладезь инсайтов.

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

    3. Написание кода - не самая большая часть работы сеньор-девелоперов, я бы сказал. Но когда речь заходит о самом коде, нужно понимать что ты пишешь и зачем. Есть классические книжки, которые можно найти, например, в матрице компетентности программиста, есть современные, но полезные типа The Art of Readable Code, которую я очень рекомендую. Нужно читать книжки. На собеседовании я всегда спрашиваю какие книжки читал или читает соискатель и если ответ отрицательный, то это большой минус.

    4. Участвуйте в опенсорс. Там вам всегда приходится сталкиваться с образом мысли самых разных людей и кодом, который они пишут. Это учит вас читать чужой код, находить в нем ошибки и критически и аргументированно к нему относиться, предлагая свои решения. Опенсорс-разработка, так же как и книжки, дает вам тот чужой опыт, который бы вы никогда сами не получили от людей, которые часто умнее или опытнее вас в чем-то. В опенсорсе, кстати, в отличие от бизнесовой разработки, есть шанс в удовольствие писать очень качественный код, в котором в бизнесе далеко не всегда есть необходимость.

    5. Наберитесь терпения. Это не случится за один день. Думайте над именованием, разделяйте обязанности, изучайте алгоритмы и экосистему, оптимизируйте ваше рабочее место, изучайте новые технологии, читайте статьи и в течение ближайших лет регулярных усилий вы обретете новый способ мышления и будете разрабатывать поддерживаемое и надежное ПО. Легкого пути, к сожалению, нет.
    Ответ написан
    2 комментария
  • Как подготовиться к сертификационным экзаменам по Java?

    @krog
    Developer
    Когда я готовился к OCA Java SE7 я сначала прочитал thinking in java (т.к., до этого у меня опыта программирования не было, учил язык), а потом готовился по этой книге:
    https://www.manning.com/books/oca-java-se-7-progra...
    Каждую главу сначала читал, потом читал и конспектировал. Помимо этого под конгец тренировался немного на www.quizful.net/test . На всё про всё ушло около 7ми месяцев часа по 3 - 4 в день.
    Кстати говоря, вопросы на экзамене оказались сложнее, чем в мануале, хотя в мануале было написано обратное :)
    Сейчас готовлюсь к OCP по Kathy Sierra - OCAOCP Java SE 7 Programmer I & II Study Guide. До этого читал Oracle Certified Professional Java SE 7 Programmer Exams 1Z0-804 and 1Z0-805 , но там, как мне показалось, всё слишком в общих чертах было, Kathy Sierra гораздо подробнее.
    Ответ написан
    Комментировать
  • Как прокачаться и научиться языку программирования\аналитики R?

    @volokhonsky
    Не знаю, насколько уж я монстр вот этого всего, но расскажу, как у меня что-то получилось.
    Сперва, лет пять, наверное, назад, я попробовал запустить R и что-то сделать, но у меня так и не получилось открыть файл. Года через полтора к нам на психфак СПбГУ приезжал один товарищ из какого-то американского вуза и собирался учить нас статистике, используемой в клинической психологии. Однако, большую часть занятия мы учились открывать файл в R, что очень помогло мне в дальнейшем.
    В 2012 году я уже кое-что мог делать в R, но чувствовал себя крайне неуверенно и делал всё очень, очень медленно. После того, как я уволился из СПбГУ (всё-таки вести блог "Новости СПбГУ" было слишком рискованным предприятием) у меня уже не было академической лицензии на SPSS, и я полностью перешёл на R и занялся выполнением коммерческих заказов.
    В одном из них мне надо было быстро подготовить штук пятнадцать отчётов по одинаковым геомаркетинговым исследованиям разных точек Подмосковья. И я нанял коллегу, который был в R прокачан куда больше меня. По моему заказу, он написал скрипт, который автоматически открывал все xls файлы в папке, обрабатывал их и складывал нарисованные в ggplot картинки в новые папочки.
    В своей последующей работе я ещё около полутора лет пользовался фрагментами этого кода. Наконец, в июле 2014 года я устроился работать исследователем в компанию Wargaming, рассчитывая, что регулярная, ежедневная практика позволит мне существенно укрепить мои навыки. Всё-таки, работать постоянно - это не то же самое, что на 3-4 дня в месяц включаться в проект. И не прогадал в том плане, что мне больше не надо заглядывать в справочник по функциям, чтобы решать рядовые задачи.

    Очень рекомендую в первую очередь заняться не освоением каких-то суперсложных модных методов обработки данных, а добиться полного и чёткого понимания команд "шейпинга" данных. Вот эти вот все aggregate, cast, melt, rbind.fill, apply, lapply, recode, merge... Потому что пока этого понимания нет, при работе с любыми другими методами 70-90% времени уходит на то, чтобы понять, как подготовить данные того вида, которые нужны.

    Увы, решение устроиться на работу привело меня к полной невозможности повышать свою квалификацию на курсере и т.п., потому что времени на такое просто нет в принципе. Разве что если как-то так спланировать и отпуск или новогодние каникулы на сие потратить.
    Ответ написан
    3 комментария
  • Какие книги\публикации\курсы почитать\прослушать по Архитектуре и разработке СУБД ?

    Melkij
    @Melkij
    PostgreSQL DBA
    Некоторое время назад у нас на работе семинар проходил. Я так глубоко не залезал, но помимо "Architecture of a Database System" приглашённым DBA упоминались ещё несколько книг как заслуживающие внимания:
    Gerhard Weikum, Gottfried Vossen - "Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery"
    Tom Kyte - "Effective Oracle by design"
    И ещё несколько, которые уже читал - но они про использование СУБД, а не внутреннюю кухню.
    Ответ написан
    Комментировать