• Какой язык программирования изучить в целях саморазвития?

    @SilentFl
    Я рекомендую Go - статический, и ООП, и CSP. А для саморазвития лучше выходить из своей зоны комфорта и брать "совсем не ООП" - Forth, Haskell, Erlang, Prolog, Perl, Ruby.
    1) Forth - стековый язык, начинаешь изворачиваться с ограничениями, прокачка оптимизаций
    2) Haskell/Prolog - функциональные языки, "все совсем не так", начинаешь программировать рассматривая программу комплексно, как единое целое
    3) Erlang - даже если про него просто почитать, то понимаешь что такое настоящий инженерный подход к разработке _больших_ программных комплексов, а после осознания мощи акторов - смеешься над threads других языков
    4) Perl/Ruby ну и Python сюда же - очень рекомендую посмотреть на их методы работы с коллекциями, они позволяют компактно, в пару строчек, выразить то, что для того же С/С++ заняло бы пару-тройку десятков строк
    5) ну и Assembler, конечно же, после него начинаешь понимать архитектуру компа и других программ, и методы повышения производительности своего кода
    Как-то так, имхо.
    Ответ написан
    Комментировать
  • Каков правильный путь изучения SQL?

    По любому начинаем с Мартина Грайбера "Понимание SQL" - идеальная книга для начального изучения.
    Ответ написан
    Комментировать
  • Каков правильный путь изучения SQL?

    @iamnothing
    Есть хорошая книга:
    Алан Бьюли - Изучаем SQL, издательство Символ-Плюс, 2007 год.
    Там делается упор больше на MySQL, но это пока и не важно. Главное, что хорошо пишет про SQL.
    Ответ написан
    Комментировать
  • Почему компании скрывают, сколько платят своим сотрудникам?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Все пишут о том что зарплату не надо писать когда она ниже рынка.
    Это понятно и очевидно.
    Но на практике зарплату не стоит писать и когда она выше рынка, и вот почему:

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

    2. Озвученная заранее верхняя планка зарплаты может отпугнуть спецов которые хотят больше чем указано (хотя в реальности во многих компаниях есть возможность получить оффер выше того что написано в вакансии)

    3. Озвученная зарплата выше рынка может отпугнуть не уверенных в себе, сомневающихся "там наверное все очень сложно" итд. Для меня это странно - но такие люди действительно есть и их немало.
    Ответ написан
    2 комментария
  • Чем отличается разработчик C++ под Linux от разработчика под Windows?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    Если вы не использовали WinApi, COM, Directx/directshow и прочие windows библиотеки и фреймворки, то просто привыкайте к новой IDE (например qtcreator).
    Ответ написан
    Комментировать
  • Чем отличается разработчик C++ под Linux от разработчика под Windows?

    icelaba
    @icelaba
    Знаю и умею всё
    Просто начните программировать под Linux :-) Если вы привыкли к оболочкам типа MS Visual Studio то у вас первое время проблемы будут не с языком :-) а с поиском адекватной замены или смены привычек.
    В свое время я под Windows 99% кода писал на far+colorer поэтому переход на linux а затем на mac я почти и не заметил.
    И да жизнь на c++ (в версиях до c++0x) без boost я тоже не представляю.
    Ответ написан
    1 комментарий
  • Чем отличается разработчик C++ под Linux от разработчика под Windows?

    EvgenijDv
    @EvgenijDv
    C/C++ programmer
    используйте Qt и boost и множество задач будут абсолютно одинаково решаться на любой из этих платформ :-)
    Ответ написан
    Комментировать
  • Каков план личностного развития C++ программиста с нуля?

    Если человек мне на собеседовании скажет, что с C++ он перешел на C#/Java, и теперь все его головные боли иссякли, я никогда не найму его на должность выше обычного девелопера. Это в лучшем случае середняк, который никогда не будет писать изящных архитектурных решений, без особой тяги к знаниями и без капельки фанатизма.

    Есть такая шутка:
    есть два типа людей: те, кто уже выучил C++, и те, кто его никогда не выучат.

    Фишка языка ровно там, где начинаются проблемы у новичков — в многообразии. Обычно нет ответа на "что лучше использовать". В каждом конкретном случае хорошо использовать ряд определенных решений, нет некоторого табу.

    Крайне не советую начинать изучение языка со Страуструпа — уснете. По моему опыту, новичкам крайне полезно читать книгу Стивена Прата "Язык программирования C++. Лекции и упражнения". Во-первых, это именно книга по C++, а не древний учебник по C с классами. Во-вторых, там уделено внимание стандарту C++11, фишки которого отлично приходят на замену древнему C++ (о которых еще пишут в учебниках, да).

    STL — обязательна для изучения. Без нее C++ — обычный C с классами.

    Изучению также подлежат такие библиотеки, как boost (сначала, что в ней вообще есть, а потом — как написать определенные случаи), poco, ACE. Крайне рекомендую обратить внимание на Qt — это клад в мире C++.
    Если интересна 3d-графика, можно посмотреть свободный графический движок Ogre3d.

    Потом, хорошим C++-программистам хорошо бы знать структуры данных. Пожалуй, на этот вопрос лучше всего ответит Роберт Седжвик в своих книгах, либо соответствующих курсах на Coursera. Это важно, т.к. C++ обычно используется как язык для решения ресурсоемких задач, а не построения "табличной" бизнес-логики.

    И на финал — один из самых сложных современных языков для изучения.
    Ответ написан
    4 комментария
  • Каков план личностного развития PHP программиста с нуля?

    konst20
    @konst20
    Программист, преподаватель, немного электронщик
    Есть опыт помощи таким начинающим.
    реальный срок до запуска джуниора - полгода, никого не слушайте.

    Важные моменты
    веб-программирование на базе PHP - это стек технологий: PHP/SQL/CSS/HTML/JS + Linux хотя бы азы + знание важных инструментариев (FTP, Git/SVN, работа с БД)
    чистый PHP плюс даже все перечисленное выше - не особо нужно и не интересно. Нужно знание конкретных платформ: фреймворков и/или CMS. (Почитайте вакансии на Хантиме по запросу PHP, обратите на это внимание). Навскидку самые востребованные (спорно конечно): Yii фреймворк, CMS Битрикс и Wordpress.

    Как начать?
    Смело на амбразуру!
    1) Установите у себя рабочую среду LAMP/WAMP - Apache, PHP, MySQL. Для этого возьмите пакет Denwer или OpenServer, что больше понравится. Сделайте Hello World просто как HTML, потом на PHP, потом алертом на JS. Порадуйтесь.
    Установите все редакторы кода. Кто там вам будет рекомендовать блокнот или notepad++ - не слушайте. Варианты: если машина мощная (4+ Гб памяти и пр.), берите редактор phpStorm (для php/html/css/js). Если не очень мощная - берите komodo edit. Для работы с БД инструмент встроен в Denwer/OpenServer, это phpMyAdmin
    2) Идеально, если вы договоритесь сделать кому-нибудь сайт. Бесплатно или за небольшую плату. Если нет - сами себе поставьте задачу: сайт про котиков/про детей etc. Красивый сайт, с галереей, с эффектами, с материалами
    Возьмите CMS Wordpress и попытайтесь сделать сайт у себя на компьтере. Настоящий сайт, во всей красе, как вы хотите. Правьте его, смотрите код, экспериментируйте. Сообщество огромное, вы найдете ответы на все свои вопросы
    Потратьте чуть денег, купите себе домен и хостинг, залейте сайт на хостинг.
    Порадуйтесь. Похвастайтесь.
    3) Ищите в сети тестовые задачи и решайте их, изучайте материалы собеседований, вопросы - их много.
    4) Зарегистрируйтесь на odesk.com под каким-то фейковым email, пройдите тесты по PHP, CSS, HTML, jQuery, Wordpress, а во время прохождения делайте скриншоты вопросов. Потом изучайте эти вопросы, ищите ответы, далеко не обязательно на все. Тесты вы, конечно, не пройдете, но вам нужны только вопросы.
    5) Постоянно следите за вакансиями "PHP-программист", "веб-программист" на Хантиме, на hh.ru и подобных ресурсах.

    И да, как только напишете первую строку кода - начните читать про Git. Как будете готовы - сразу внедрите у себя Git, вы будете очарованы его возможностями.

    Вот как раз на полгода.
    После этого у вас появится масса информации, и дальше вы сами сориентируетесь.
    Ответ написан
    11 комментариев
  • Подкиньте пару хороших книг по Qt (С++)

    EXL
    @EXL
    Энтузиаст
    1. Бланшет, Саммерфилд - Qt4 Программирование GUI на С++. 2ed. - 2008
    2. Шлее Макс - Профессиональное программирование на C++. +CD. Qt 4.8. (В подлиннике) - 2012
    3. Марк Саммерфилд - Qt Профессиональное программирование (High tech) - 2011
    4. Андрей Боровский - Qt4.7+. Практическое программирование на C++ - 2012
    5. Юрий Земсков - Qt4 на примерах

    Первая книга от создателей Qt, в первых главах рассмотрено создание приложения для работы с таблицами (этакий мини Excel). Так что в прямом смысле за день можно разобраться во всех тонкостях создания подобных приложений.
    Вторая книга от известного в Qt-сообществе программиста, очень подробный и толстый справочник по виджетам, их описание и примеры использования. Имеется несколько глав по JavaScript/QML/QtQuick. Однозначный Must Have.
    Третья книга от одного из программистов, разрабатывающих Qt. В ней рассказано о профессиональной разработке приложений. В чем-то является продолжением первой книги.
    Четвертая книга от отечественного программиста, рассмотрены в основном принципы разработки сложных приложений. Отдельный разделы посвящены программированию трехмерной и интерактивной графики, баз данных, многопоточных приложений и созданию собственных виджетов.
    Пятая книга на мой взгляд уже устарела. Её вполне заменяет Макс Шлее.

    Это все книги по Qt 4.X.X на русском языке, известные мне (не считая редакций). Если кто-то знает ещё, пожалуйста отпишитесь.

    По Qt 5 книг пока нету. Макс Шлее сказал, что начнет работу над новой книгой с выхода версии Qt 5.2. По поводу книг для Qt 5 см. ответ ниже. Но не стоит забывать, что у Qt документация одна из самых лучших и вполне способна заменить книгу. Поэтому настоятельно рекомендую пользоваться Qt Assistant при возникновении затруднений.

    По C++ рекомендую конечно классику:
    Прата С. - Язык программирования С++. Лекции и упражнения - 2011
    Ответ написан
    1 комментарий
  • Сколько времени в среднем проходит для освоения программирования с нуля и возможностью заработка?

    После откола от хабра, тостер превратился в сборник вопросов и разряда "Хай, пасаны! Вы тут прогеры все крутые? Какую мне книжку почитать минут на 15, что бы завтра мульёны зарабатывать?"
    Ответом должно быть: Карл Маркс "Капитал", Дэн Ариели "Предсказуемая иррациональность", Стив Бланк "Четыре шага к озарению" и ещё тысячи книг по экономике. Не ту область выбираете.
    Ответ написан
    4 комментария
  • oDesk — как подняться до 15-20 долларов в час

    @joneleth
    Перестаньте ныть, засучите рукава и возьмитесь за работу. За первый свой месяц фриланса я заработал 5 долларов. За 2й — двести. За 3й — тысячу.
    Ответ написан
    1 комментарий
  • Как переключаться между окнами (задачами) в Mac OS X?

    @gok
    Для начала в Mac приложение и окно приложения — вещи разные и малозависимые между собой.
    В Win если я открыл документ doc — word запускается. Закрыл — word закрывается. В Mac при закрытии документа word выгрузит из памяти все лишнее, но продолжит быть запущенным (чтобы в следующий раз открыть документ моментально), пока ты ему не сделаешь command+q или word->quit word. Организация Mac OS позволяет сделать так, чтобы у тебя было много запущенных программ, и ты этого абсолютно не замечал
    Если это понтять-многие вопросы пропадут.

    Почему нельзя переключиться на окно по command-Tab, если я его свернул [-] или закрыл [x]?

    Можно. Ты переключишься на само приложение, у которого свернуто или закрыто окно. Было бы хуже сесли бы ОС сама решала вместо тебя когда разорвачивать тебе окна.

    Чем занимается кнопка [+] в заголовке окна? Зачем она это делает? У айтюнс, например, она уменьшает приложение до размеров 3×4 см.

    Кнопка + изначально создавалась как такая, которая подстраивает окно под контент, а не растягивает его на весь экран (как привыкли в win) т.е. так, чтобы, например, окно было как раз размером с веб-страницу, или картинку. Но сейчас эта логика иногда нарушается отдельными приложениями.
    В MacOS вообще нет привычки держать окна развернутыми на весь экран, как в win, т.к. меню приложения и так всегда сверху, независимо от размера и расположения окна. И это вправду удобней после привыкания.

    Почему есть кнопка «свернуть окно», а есть команда «command-h», которая делает примерно то же, но не то?

    Это абсолютно разные вещи. «command-h (hide)» моментально прячет все окна текущего приложения. И ты видишь что находится под ними. Свернуть окно- соврачивает все окна по очереди.

    Можно ли как-то заставить кнопку [-] делать то же, что и «command-h», а кнопку [x] то же, что и «command-q»?
    Зачем? command+q это выход из приложения (кстати универсальный шорткат, разотает везде в отличие от win, в которой куча вариаций на тему). Закрыть окно документа — это command+w (о слова window). В случае многотабового окна документом является таб, а не все окно.

    Почем при разворачивании окна на весь экран я на самом деле получаю окно на отдельном рабочем столе, со всеми вытекающими особенностями? И зачем мне при этом смотреть трехсекундное кино со спецэффектами «растяни окно»?
    Потому что это особый полноэкранный режим. Это не то же, что Развернуть окно в Win. Просто убей у себя привычку держать все окна развернутыми — это после windows у всех так.

    Есть косяки с переключением между приложениями при частом использовании command+Tab с приложениями с несколькими окнами. Это сложно описать коротко. Что-то вроде того, когда переключаешься межу приложениями, а тебе вместо основного окна подсовывается окно с настройками шрифтов.
    Есть такие косяки, эо баги разработчиков с неправильными руками. Таким грешит Word

    Например, невозможно переключиться на скайп, если до этого я закрыл кнопкой [x] окно сообщений. А в списке, доступном по command-tab, скайп честно висит.
    Показатель того что ты находишься в скайпе-строка меню. В ней ппервым пунктом всегда находится название активного приложения. У приложения могут быть закрыты или сернуты все окна, тогда операционке нечего тебе показать из окон, но меню она тебе покажет.
    Ответ написан
    5 комментариев
  • Корректен ли вопрос о текущем доходе на собеседовании?

    Sterhel
    @Sterhel
    В принципе то суть вопроса ясна — «купить подешевле», грубо говоря. Но вот если человек не говорит свой текущий уровень дохода, значит ли это что ему будет предложена так сказать его «реальная цена» или как то по другому будет строиться диалог? Кто поделится собственным опытом?

    Вы правильно поняли суть вопроса.

    В конце 2011-го я был на собеседовании в одной крупной российской компании. Сначала было предварительное собеседование с HR`ом, потом, так как его всё более чем устроило, мне предложили в тот же день скататься непосредственно к главному.

    Там меня ещё минут 20 гоняли по общим вопросам, немного проверили знания, а вот об ожидаемой зарплате диалог был такой:

    — Скажите, а сколько вы планируете получать у нас на этой должности?
    — *называю сумму, оговоренную на первом собеседовании*
    — Ага, а если бы вам предложили, скажем, *эта сумма -3000 рублей*?
    — Мы, вроде как, на первом собеседовании договорились на первую сумму.
    — А *сумма -2000р"? При этом вы будете работать не где-нибудь, а у нас, в *название компании*.
    — Нет, спасибо, мы оговорили сумму.
    — Как знаете, мы вам позвоним, если что.

    ЗЫ Не то чтобы я был таким жадным засранцем и удавился бы из-за 2к, просто жутко не понравилось само явление подобных торгов за заработную плату. Вечером они позвонили и сказали, что берут меня (на первую ЗП), но тут уже я передумал.

    Кстати, о больших компаниях — в Яндексе, СУПе и mail.ru мне называли примерную зарплату в ходе первого собеседования, еще не закончив проверять мои навыки.
    Ответ написан
    1 комментарий