• Совет начинающему программисту. Как следует подходить к приобритению навыка OOP?

    @sozforex
    Программист, Python
    Начальный (но не элементарный) курс по программированию, в котором дается плавный переход от функционального программирования к ООП, объяснена польза ООП, зачем ООП было придумано и как им пользоваться:
    www-inst.eecs.berkeley.edu/~cs61a/fa14
    Я получил много ценных знаний при прохождении этого курса, хотя и проработал до этого программистом 2 года.
    Курс идет вместе с адаптированной под питон книгой SICP (Structure and Interpretation of Computer Programs) со встроенными интерактивными вкусностями.
    2 chapter этой книги посвящен ООП и основам, на которых он строится. Рекомендую не перепрыгивать через начало курса/книги.
    Ответ написан
    1 комментарий
  • Java junior developer кратчайший путь с нуля до реальной работы?

    @adsky13
    Программист, исследователь методом тыка
    Как говорил мне один великий программист из США(уехавший туда из бывшего СССР), что хватит изучать языки, читать книги, начинай делать проект, ставишь цель и стремишься.
    Керниган Ритчи: Хочешь научиться программировать?! начни программировать

    P.S. Если хочешь могу помочь в развитии, пиши в личку, сброшу аську
    Ответ написан
    14 комментариев
  • Какое перспективное направление в программировании для фриланса и иммиграции?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Написал большой рассказ, но случайно нажал комбинацию каких то клавиш и у меня закрылась страница, поэтому напишу очень коротко, т.к. нехочу снова тратить 20 минут на эссе.

    -Желание + интерес

    -Несколько лет программирования, знаю c++/java/python к последнему пришел год назад, к java и c++ больше не вернусь

    -Любимый язык python - скорость разработки очень важна, пишу на нем всего год

    -$2k в неделю, odesk, могу себе позволить жить в любой стране, но деньги не важны, я это понимаю только сейчас, когда ко мне пришел успех, главное в -первом и последнем пунктах

    -Уменее объяснить заказчику почему на питоне я сделаю в 3-5 раз быстрее чем на том же php/java = забираем контракты у java/c#/php программистов = нет дифицита заказов на питон

    -Желание и интерес, успех придет сам, под интересом я для себя выделяю интерес сферы разработки: web crawling/parsing/search и любимый язык питон, удачи вам найти себя! (web crawling вот вам перспективная ниша, которая будет только со временем расти, появилось много соц сетей и других сайтов, и всем заказчикам нужны с них данные, особенно стартапам)
    Ответ написан
    18 комментариев
  • Какое перспективное направление в программировании для фриланса и иммиграции?

    afanasiy_nikitin
    @afanasiy_nikitin
    путешественник туда-сюда
    Во-первых, хотел бы порекомендовать книгу Чеда Фаулера "The Passionate Programmer: Creating a Remarkable Career in Software Development" (на русском: "Программист-фанатик", Питер, февраль 2015). Несмотря на свое название, она не столько о программировании, сколько о личностном росте, саморазвитии и прагматичном стремлении к совершенству, читать рекомендуется всем и каждому.
    Во-вторых, есть масса аналитических исследований в области IT, в последне время их особенно много из-за "кризиса", например ...о стагнации, образовании и востребованных профессиях.

    Если думаете об эмиграции (а выезд заграницу на ПМЖ это именно эмиграция), то тут есть 2 нюанса.
    Первый заключается в самой сложности переезда в другую страну с другими законами, налогами, климатом, языком, культурой, и тд, а тёплых мест хватает и в России (об этом миллион статей на том же Хабре).
    Второй - переезжать в другие страны имеет смысл в том случае, если вы собираетесь работать на окладе в офисе, например в крупной европейской/азиатской компании на высокой должности на территории работодателя. Фрилансеру же реальная польза от пеерезда весьма сомнительная (опять же, налоги в России - одни из самых низких).

    По поводу трендов и языков могу сказать следующее: если вы собираетесь жить и работать со стратегическим расчетом на карьерный рост, развитие и прибыльную должность в отдаленном будущем, то стоит задуматься о сложных, но актуальных технологиях, нацеленных в первую очередь на крупный бизнес (биржи, банковский сектор, системы аналитики и прогнозирования, ИИ, инетрнет вещей, etc.).

    Сейчас мир программирования равивается в двух основных полярных направлениях: низкоуровневое - ПЛИС и самодостаточные микроконтроллеры ("умная железка в каждую вещь"), и, противоположное ему - высокоуровневое проектирование и ФП. В первом случае много физики, во втором - матана, дискрета, теории категорий и всего такого.
    Лично мне ближе второй вариант, поэтому я для себя выбрал технологии, основанные на Java (почему именно Java - пояснил ниже в комментарии): Scala, Lift, ФП, функционально-ориентированное проектирование, мета-программирование, DSL, вот это всё.

    По поводу "готовых решений" лично я наблюдаю обратный процесс: люди стараются отказываться от универсальных готовых решений в пользу гибких, компактных и заточенных под конкретную бизнес-логику (опять же DSL и DDD).
    Но начать всё же рекомендую с Фаулера. Затем Р. Мартин "Clean coder" (на русском "Идеальный программист. Как стать профессионалом разработки ПО"), само собой МакКонелл, Крэг Ларман, и прочие бестселлеры.
    Да, и не забудьте книгу Грега МакКоена "Эссенциализм...", очень полезная вещь в наше время. Личностный рост и саморазвитие сейчас не менее важно (а иногда и важнее) просто "программирования".
    Ответ написан
    8 комментариев
  • Java junior developer кратчайший путь с нуля до реальной работы?

    Judixel
    @Judixel
    Front-end Engineer
    Рекомендую книгу Обьектно-ориентированное мышление, лишним не будет, т.к. Вы новичок в программировании, и надо понимать как проектируются и продумываются до написания кодa, и кстати все примеры там написанны на java. Отличная книга выходного дня!)
    Ответ написан
    Комментировать
  • Как прeодолеть зону комфорта, стать фрилансером не обанкротившись?

    aratj
    @aratj
    программер.
    Про зону комфорта у меня обратное, например вне в офисах никогда не было комфортно, так что я ушел в фрилансеры и на удаленку (тут просто повезло, заказчики которым сделал проект, предложили поучаствовать в нескольких проектах, но на постоянной основе).

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

    Единственный плюс фриланса для меня , это проекты небольшие, они не успевают надоесть , что в крупных конторах через пару лет у меня просто начинали опускаться руки и подташнивать от долго создаваемого проекта. )
    Ну и конечно, встречались маленькие проекты, которые были действительно сложные и интересные,
    еще фриланс можно рассматривать как прокачка скиллов, я например если взялся уже довожу до конца, не буду бросать. Отступать некуда, приходится в короткие сроки гуглть, штудировать документацию, искать решения.
    Ответ написан
    Комментировать
  • Java junior developer кратчайший путь с нуля до реальной работы?

    timych
    @timych
    Не разменивайтесь на много ресурсов. Одной хорошей книги достаточно на данном этапе. Самое главное, без чего вас многие не захотят брать на работу - свой проект. КАЖДЫЙ работодатель будет у вас спрашивать, что вы написали для себя, для души. (По крайней мере у меня так было) Придумайте себе задачу. Начинайте писать. Работадатель хочет увидеть реальный код и то, что вы не теоретик. И очень немаловажно этим показать что программирование для вас больше чем просто работа. Удачи!
    Ответ написан
    3 комментария
  • Какое перспективное направление в программировании для фриланса и иммиграции?

    На мой взгляд, дело не в технологиях, а в вашей компетенции. Все ругают PHP, хотя единственный его минус - низкий порог входа (да и то, минус ли). Эксперта по этому языку и через 5-10 лет с ногами оторвут.

    Судите сами. Вы - работодатель. У вас сотни кандидатов из родной страны, отличных, подходящих на вашу вакансию, допустим, middle разработчика. Будете вы брать аналогичного кандидата из других, далеких стран? Возможно, если получится платить таким раза в два меньше (и то, актуально для особо жадных). А на деле - нет.

    Другое дело - гуру. Специалисты, чьи имена на слуху, которые являются авторитетами не в своем городе или, тем паче, фирме, а в целой области, в целом направлении технологий. Таких людей немного, но они, пожалуй, единственные вольны выбирать страну проживания. Остальные могут уповать на удачу и связи. Не более.

    Решайте сами.
    Ответ написан
    4 комментария
  • Java junior developer кратчайший путь с нуля до реальной работы?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ну java это хорошо. Ладно не PHP, и пролетариат с вами. Воркфлоу следующий - начинайте искать прямо сейчас. В нормальных компаниях реабилитация около полугода, так что как раз по два раза в каждую можете успеть. А во время первого интервью получите некоторый опыт. Не бойтесь заданий - их элементарно накопипастить прямо с документаций. Даже если просят какую-ту НЁХ - всё равно можно отыскать откуда копипастить. Главное научиться делать ровно три вещи: анализировать задачу, разбивать на подзадачи, применять пункт 1-2 на полученные подзадачи. Ну а база рекурсии - задача элементарна и решается в две строчки.

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

    Ну а на практике. Готовьтесь работать за бесценок. Серьёзно, может быть оффер - 5-10к в месяц. Надо привыкать и морально готовиться. Зато могут толком ничего и не спросить. А бывают просто предложения года, если не жизни - пол штуки - штука в час на старте с контрактной работой - с одной стороны это не много (тот же odesk уделывает этот параметр даже до старта), однако могут даже предложить офис, да и налоги знаете ли, уплачены. Но соглашаться не стоит - договор подряда обычно туфта, платят через раз, да и задачи из разряда - что хочешь, то и делай, только попробуй потом заставить заплатить.

    Впрочем, есть ещё компании года. Те самые гуглы, яндексы и фейсбуки, да и пара сотен стартапов. Стартапы берут едва ли не всех. А результат виден очень быстро - только прямые руки иметь надо (и уметь копипастить). Из минусов - очень слабый старт - нередко вообще дому у нанимателя (студент-стайл), про деньги лучше даже не говорить... Зато если получиться - будете обеспечены, а то и вовсе - сможете не работать всю жизнь. Но один два раза в год. Оказаться в кругу таких ребят - большая пребольшая удача. А у яндекса есть школа. Записывайтесь! Обучат по нормальной программе:
    1) базовый синтаксис
    2) немного про ООП
    3) базы данных (реляционные и не очень)
    4) чуть про паттерны
    5) тестирования
    и другое, но что главное, очень релевантное при апеллировании на работу.

    2897-1360586427.jpg
    Ах, снова здесь полотна развожу. Извиняюсь и удачи на собеседованиях!

    UPD.
    Ссылка на школу яндекса затерялась среди тегов. Исправил.
    Ответ написан
    5 комментариев
  • Как прeодолеть зону комфорта, стать фрилансером не обанкротившись?

    dimakovalenko
    @dimakovalenko
    Я уже скоро полтора года как на фрилансе. Советую:
    • Подкопи деньжат, с пол тычка твой фриланс не заведется. Первое время денег не будет, будешь проедать накопленное.
    • Денег скопил? Не затягивай. Решил уходить - уходи.
    • Можно планировать что-то наперед, вот только жизнь этими планами все равно подотрется. Поэтому планируй, конечно, но смотри по ситуации и не расстраивайся если все получается "не так"
    • Получай кайф от свободы! Ты сам себе начальник, одинокий войен фриланса, самурай без хозяина. Живешь как хочешь, сам отвечаешь за себя, если что не по тебе - меняешь! Когда еще такая лафа в жизни будет?

    Удачи :)
    Ответ написан
    1 комментарий
  • Совет начинающему программисту. Как следует подходить к приобритению навыка OOP?

    @thepry
    Ruby on rails, 1С разработчик
    https://www.coursera.org/course/interactivepython1

    Хочу сказать, что это просто великолепный курс. На протяжении многих лет, программирование казалось мне слишком сложным и не понятным. Но несколько лет назад я наткнулся именно этот курс, делая всякие понги и блэкджеки и все завертелось.

    Отличный выбор курса!
    Ответ написан
    1 комментарий
  • Как прeодолеть зону комфорта, стать фрилансером не обанкротившись?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Я думаю на ресурсе полно действующих фрилансеров желающих получать >3К евро работая в сильной команде над интересными проектами. Иметь оплачиваемый отпуск, пенсионный стаж, мед. страховку, кофе печеньки и уборщицу в комфортабельном офисе, участие в профильных конференциях, хорошую запись в резюме и при этом время на семью. Рискну предположить, что это смахивает на мечту любого(ну почти любого) российского фрилансера. Есть еще хозяева дворовых веб студий, клепающих как семечки мусорные landing page и конвейерные your very own and truly original web site из пяти шаблонов. Для последней категории мечта неосуществима ввиду слабого профессионального уровня. Работу, которая у вас есть(если не лукавите) я бы стал менять только на лучшую или на собственный instagram, telegram, moneygram etc. Фриланс в вашем случае на мой взгляд просто шаг назад. Работа на дядю (даже паскудного) не такая уж трагедия.
    Ответ написан
    2 комментария
  • Совет начинающему программисту. Как следует подходить к приобритению навыка OOP?

    @Vladisus
    Я бы посоветовал, Python3 Object Oriented Programming (Dusty Phillips), хорошая книга. Ну и конечно практика, питайтесь все задачи решать с помощью ООП...
    Еще идете на codewars и там находите задачи на ООП, на python их мало и они легкие, поэтому смотрите условие с задач по другим языкам и решаете на python
    Ответ написан
    5 комментариев
  • Как перейти с Windows на Linux для работы с C++?

    День добрый.

    Я думаю что задача не совсем правильно поставлена. Нужно определиться с целью. Целью является изучение С, или переход на линукс?
    Я так понимаю что вы сейчас всё ещё на winOS. Предлагаю самый безболезненный подход к переходу. Установите виртуальную машину, на ней создайте с десяток разделов, и поставте туда популярные варианты Линукс. В паритете можно графику Gnome и KDE. Разница среди систем будет в репозитарии (что-то вроде Андроид маркета, но где в основном всё бесплатно). Попробуйте установить любимый видеопроигрыватель, походите по вэб страницам, выполните просто привычную вам работу но в новой ОС. И посмотрите с которой вам будет удобнее, менее геморнее и где будет больше документации.
    Точно так же выбирайте и IDE, зачастую в репозитарии есть таких штук 3-5 рекомендуемых. Установите их, погоняйте их, соберите в конце концов "Привет Мир". Так вы столкнётесь с первыми зависимостями и камнями. И там где будет проще решать - ту систему и ИДЕ и выбирайте.

    Для азов программирования на С, обычного Vim и make хватит. Большие проекты тяжелее уже писать со всеми зависимостями.

    Меня настораживает другое. Если вы хотите изучать С#, соответсвенно будете ориентироваться на платформы Windows и .NET. То есть вам всё равно нужно будет по них собирать и тестировать. А значит иметь виндоус где то на виртуальной машине. Отладка будет сложнее, когда малейшую сборку, нужно будет таскать с раздела на раздел.
    Ответ написан
    1 комментарий
  • Как понять заголовочные файлы?

    @Mercury13
    Программист на «си с крестами» и не только
    #include — как ни странно.

    Вы так и не поняли такой вещи, как «единица компиляции». Дело в том, что в Си c-файлы компилируются независимо друг от друга (в единую программу всё собирает линкер). А чтобы сказать «оно есть, только в другой единице компиляции», используют прототипы и extern’ы.

    А если вы хотите просто внести код в ту же единицу компиляции, просто пишите его в хедере, да и всё. Только в большинстве компиляторов это исключает предкомпилированные хедеры — а ТАКИЕ хедеры вам предкомпилировать, скорее всего, и не нужно.

    <брюзга mode on>
    Не создают кода (а значит, в традиционной системе с кучей единиц компиляции находится именно в хедерах)
    • extern и прототипы
    • inline
    • не до конца специфицированные шаблоны
    • static-поля в классе (но потом это static-поле придётся повторить в какой-нибудь одной единице компиляции)
    • может, ещё что-то, только я забыл…
    <брюзга mode off>
    Ответ написан
    1 комментарий
  • Как перейти с Windows на Linux для работы с C++?

    @Eddy_Em
    Быстро не получится.
    Сначала почитать пару-тройку книжек про то, как вообще в линуксе работать. Еще неплохо бы Advanced Bash Scripting почитать. Получается, минимум полгода уйдет на литературу.
    Далее обкладываемся гентушными хэндбуками, гуголом и т.п. и ставим генту.
    Помаленьку настраиваем и через год-два уже на мастдайку вообще не потянет! Главное — понять суть UNIX-way, тогда станет ясно, что мастдайка — это даже не гнилая операционная система, а некачественная прошивка для игровых приставок!
    Ответ написан
    1 комментарий
  • Как перейти с Windows на Linux для работы с C++?

    GavriKos
    @GavriKos
    1) GUI под линукс можно делать, например, на Qt. Соответственно IDE - QtCreator. Еще вариант - wxWidgets.
    2) Возможные IDE - QtCreator, Code::Blocks, Eclipse, CLion. Ну на самом деле их больше, но эти - более friendly при переходе с винды.
    3) Забудьте о Unity и C# под линуксом. По крайней мере пока что. Сейчас c# - в полном смысле работает только на винде. IDE для c# - VisualStudio :-)
    4) По производительности настроеный линукс лучше ненастроенного виндовс. Это 100%. Но первое время вы потеряете в удобстве. Я лично так и не смог перейти с VisualStudio на линуксовые IDE и не нашел для себя удобного аналога TotalCommander. Плюс сразу забывайте о фотошопе, если вам это важно. Есть конечно gimp, но он полностью не заменит фотошоп.
    5) Игры под линуксом можно разрабатывать скорее только на всяких SDL и прочих низкоуровневых openGL движках. Никаких Unity, Marmalade и прочего. Разрабатывать под web - можно спокойно под линуксом. Standalone-приложения - тоже, на Qt.

    Вроде постарался по максимуму ответить :-)
    Ответ написан
    4 комментария
  • Что нужно знать, чтобы понять - бинарные деревья, графы, синтаксический анализ?

    ManWithBear
    @ManWithBear
    Swift Adept, Prague
    Ничего. Просто берете и разбираетесь.
    Кнут и Кормен основные авторы.
    Ответ написан
    Комментировать
  • Есть ли адекватная книга по Java? Что нужно учить для разработки под Andriod, а что сразу отсечь как лишнее?

    thestump
    @thestump
    программист PHP
    Вместо Шилдта я порекомендую Шилтда! В крайнем случае, если Шилдт вообще ни в какую я порекомендую книгу Шилдта. Могу еще Лукяненко порекомендовать потому что программирование изучать по диагонали всись и вкось не получится. Программирование это довольно муторная, довольно скучная профессия в которой надо быть внимательным и читать строчку, за строчкой, страницу за страницей, главу за главой, внимательно вникая в суть написанного, перечитывая непонятные места и разбирая из с помощью гугла.
    А у Лукьяненко вполне приличная современная фантастика! Можно весело и не скучно провести досуг.

    Поэтому либо Шилдт либо Лукьяненко.

    П.С. Шилдт это одна из самых легких книг которые читаются на одном дыхании.
    Ответ написан
    Комментировать
  • Есть ли адекватная книга по Java? Что нужно учить для разработки под Andriod, а что сразу отсечь как лишнее?

    @Alexey_Kutepov
    Разработчик программного обеспечения
    Книга Шилдта по Java это в первую очередь справочник. Там можно найти ответы на все вопросы, которые дают на собеседовании, и примеров там полно.
    Из легко вкуриваемых книг советую Head First Java (есть на русском)
    Ответ написан
    4 комментария