Америчка

#290 Abstract classes, Interfaces, Casting, Polymorphism

Posted in IT by Yakov Fain on April 3, 2011

Это не совсем подкаст, а просто запись половины одного из моих online уроков по программированию на Java.
Занимаемся по этому учебнику.
Слайды к этому материалу лежат здесь.

Качаем или слушаем

70 Responses

Subscribe to comments with RSS.

  1. ג 'ון פולק said, on April 3, 2011 at 10:39 am

    Удивляюсь очень вашей способности вести лекцию 2,5 часа. Заметно, что Вы занимаетесь любимым делом, прекрасно, но труда вкладываете феноменально много! Это американский подход к выполнению своей работы или личные качества?

    P.S. Экранчик видеокамеры находится в правом верхнем углу.

    • budam said, on April 3, 2011 at 11:19 am

      Спасибо. Да, это дело я люблю🙂

      Труда вкладываю много, потому, что верю в принцип “Утром стулья, вечером деньги” а не наоборот.

  2. maxum said, on April 3, 2011 at 10:51 am

    Спасибо! Хоть я и не Java-программист (С++), но все понял! Приятно было услшать, вас Яков, в профессиональном поле. Начинаю завидовать вашим ученикам ^_^

  3. Иван said, on April 3, 2011 at 11:51 am

    Да, круто!
    Надеюсь будет повтор этих курсов и я все таки смогу на них попасть.

  4. Gene_IT said, on April 3, 2011 at 12:09 pm

    Спасибо! Хотя я тоже не Джавист, но с удовольствием послушаю!

  5. Gene_IT said, on April 3, 2011 at 12:42 pm

    Конечно, для вебпрограммиста кастинг объектов (в отличие от кастинга скалярных типов) – штука непривычная, но, наверное, логичная для Джавы, если учесть, что под объект нужно создавать переменную конкретного типа.

    То есть, если у меня смешанный массив, то я вынужден использовать временную переменную currentEmployee, чтобы получить доступ ко всему функционалу объекта. Но, поскольку instanceof уже проверил тип, то это как бы extra-work🙂

  6. Basil said, on April 3, 2011 at 12:46 pm

    Спасибо Яков! You are actually quite cool!
    Ребята, мне повезло, я записался на этот курс и дважды в неделю получаю Java with fun. В реале, с видео & his desktop picture, это еще круче! Отписался здесь для того, чтобы все остальные поверили, что это все на самом деле. Этот курс идет реально и Яков реально ТАКОЙ преподаватель. Не упустите возможность, когда Яков Файн еще объявит какой-либо курс. Запишитесь – знания с удовольствием гарантированы. Яков знает досконально то, о чем говорит и старается, чтобы Вы это тоже поняли. И я, который занимался до этого только 1С и С++ (немного), уже пишу код на java. После 4-х занятий… И что самое удивительное, этот код РАБОТАЕТ!

    • budam said, on April 3, 2011 at 1:26 pm

      Василий,
      За такой косеет ты освобождаешься от одного домашнего задания:)
      Спасибо.

  7. Yuriy said, on April 3, 2011 at 2:20 pm

    Я также прохожу этот курс у Якова.
    Одно из отличительных качеств Якова – умение понятно и наглядно объяснить то, что раньше казалось “rocket science”.
    Почти каждый раз после урока я задаюсь вопросом, как же я раньше сам этого не понимал, не мог этому научиться. Но это ложное чувство – ведь причина не в том, что это просто, а в том, что это объяснено профессионалом.

  8. Nikolay Burlov said, on April 4, 2011 at 3:04 am

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

  9. radist6 said, on April 4, 2011 at 3:06 am

    Спасибо Яков! Очень надеюсь будет повтор этих курсов!

  10. Nicholas Bayborodin said, on April 4, 2011 at 4:30 am

    Я тоже являюсь слушателем тренинга по Java, который преподает Яков. Имея небольшой опыт преподавания IT дисциплин, знаю, насколько это тяжелый труд. И, на каждом занятии удивляюсь самоотдаче Якова. Да, нам действительно повезло. Завидуйте🙂

    • budam said, on April 4, 2011 at 4:47 am

      Спасибо,но меня удивило слово самоотдача в этом контексте. А к каким преподавателям вы привыкли? Они что отбывают наказание в классе и, зевая, смотрят на часы?

      • ジョンポラック said, on April 4, 2011 at 11:57 pm

        Больше одной пары (90 минут) никто не выдерживает. Слабаки…

        Хотя у нас был один препод, он раньше служил в театре, а у нас вел курс литературы. Он входил в какое-то состояние, вставал, как Маяковский и декларировал стихи, махая руками. Ча-са-ми… У нас уже перерыв закончился, другая пара начинается, а этот все орет, как адвокат на процессе. И фамилия у него была Черепков…

        Вообщем мы просто перестали на него ходить, он наставил нам в отместку зачетов и назвал всех “Сволочи!”. После нас вышел на пенсию, а зря! Такого клоуна страна потеряла.

        Кстати, на счет лекций: Один препод другому говорит: Во студенты пошли тупые! Я им раз рассказал – не поняли, еще раз – опять не поняли, в третий… Я уже сам понял, они – опять нет. Ну тупые!”

  11. bayborodin said, on April 4, 2011 at 4:57 am

    Когда я посещал курсы по платформе .NET в УЦ Софтлайн – так и было, девочка “преподаватель” читала по книжке и недвусмысленно поглядывала на часы.

    Из своего опыта скажу – меня хватило преподавать только на год – потому что выкладывался на все 100%. Через год выдохся🙂 Для себя решил – больше в преподавание ни ногой.

  12. instance said, on April 4, 2011 at 9:05 am

    Вы так классно все объясняете! Все по полочкам разложили, не нудно, доступно, с примерами. И голос у вас приятный))

    • budam said, on April 4, 2011 at 9:39 am

      Зараз заспiваю🙂

      • Иван said, on April 4, 2011 at 11:43 am

        Змог би проводити заняття українською?

  13. Arbuz said, on April 4, 2011 at 9:17 am

    Душевно. И это главное🙂

  14. VadicLn said, on April 4, 2011 at 10:10 am

    Книжка http://www.amazon.com/Java-Programming-24-Hour-Trainer-Yakov/dp/0470889640 отличная. Народ кто беспокоится по поводу доставки, я из глубинки Украины, книжка дошла за 2 недели. Стоимость книги сопоставима с нашими ценами, несмотря даже на доставку. Книжка 28$ + 8$(доставка) = 36$, в гривнах это округлим 290 грн. Сама книга сделано на 5 ку, бумага шрифт и т.д., по качеству книжки из наших магазинов и рядом не стоят, хотя главное конешно контент.

    • VadicLn said, on April 4, 2011 at 10:21 am

      P.S. Для того чтобы купить книгу на Амазоне, сделал “Миттеву” карточку Приватбанка, оформляется в любом отделение Приватбанка за 10 минут, выдается на руки сразу. На следующий день с помощью их интернет-сервиса Приват24 сделал виртуальную карточку “Visa Internet” в долларах, перебросил деньги на счет Visa Internet по курсу Привата, все теперь можно регистрироваться на Амазоне и указывать номер карточки Visa Internet.

      • Iaroslav said, on April 5, 2011 at 8:48 am

        Кстати, описан самый простой способ приобщения к интернет-шоппингу. Самый сложный путь пройден. Теперь осталось подключить карту к пейпалу и вперед!

        Основной сдерживающий фактор – долларовая карта VISA. Как видно, ее очень легко и дешево сделать в любом отделении банка.

      • Volodymyr Leskiv said, on April 9, 2011 at 9:48 am

        Спасибо за инструкции. Сделал тоже самое — книга уже в пути🙂

        • Volodymyr Leskiv said, on May 20, 2011 at 3:45 pm

          Дошла за месяц. Качественное издание, хорошо написано, легко читается. Спасибо Будам!

  15. Starling89 said, on April 4, 2011 at 10:13 am

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

  16. Natallia said, on April 4, 2011 at 3:12 pm

    вот спасибо! теперь я знаю, для чего abstract class нужен!

  17. Василий said, on April 4, 2011 at 5:15 pm

    Будам, привет. Что думаешь про эти твиты создателя Ruby on Rails?

    dhh: Hiring programmers is hard work even w/ OSS contributions. I can’t imagine evaluating people without seeing their actual code.

    dhh: (If you can find a non-OSS way of showing me code, that’ll work too, of course — but no code, no hire).
    Сам просишь показать какой-нибудь код, когда берешь на работу?

    • budam said, on April 5, 2011 at 5:07 am

      Я не прошу код показывать. Программист – это но только код. Я разговариваю. Проколы бывают, но редко.

  18. konoplev said, on April 5, 2011 at 6:20 am

    Здравствуйте, Будам.
    Сразу предупреждаю, что я унылый и скучный человек, потому что мне книжка GoF очень понравилась и я её считаю крайне интересной и позновательной. В отличии от Head First (может потому что комиксы терпеть не могу🙂 ).
    Послушал подкаст с удовольствием, хотя Java знаю. Интересно было как Вы про неё рассказываете. Присоединюсь к пердыдущим комментаторам, рассказываете действительно доступно.
    Заинтересовало Ваше мнение по поводу protected variables. Я всегда исходил из того, что публичные методы описывают интерфейс для пользователей класса (для внешних классов), а protected методы – описывают интерфейс для его наследников. По этой логике делать member класса, изменение которого изменяет состояние этого класса, protected’ом почти так же плохо как и public’ом. Класс в этом случае так же теряет контроль над своим внутренним состоянием, которое любой класс наследник может изменить и перевести класс в неправильный стейт. По этой логике protected variables действительно не нужны и вредны. Но иногда класс хранит например константные мемберы (скажем путь до файла), которые внешним классам не нужны, а классам наследникам необходимы. Если бы не было возможности объявлять такие поля как protected, то пришлось бы писать protected методы, которые ни чего бы не делали, кроме как возвращали бы эти поля… Вобщем я не вижу ни чего плохого в том, чтобы объявить мемберы класса, от которых состояние этого класса не зависит, как protected. Лишний метод писать не надо🙂
    Вы в подкасте упоминали Kindle. Я как раз в раздумьях не купить ли его. Купить хочу маленький с 6 дюймовым экраном (большой не удобно с собой носить). В России их пощупать негде… Собственно хотел спросить Вас или слушателей, имеющих опыт использования 6-ти дюймового киндла, хорошо ли с него читать техническую литературу. Удобно ли например листинги кода читать?

    • budam said, on April 5, 2011 at 7:19 am

      В технические споры здесь всупать не стану, но о protected variables в Java я писал 5 лет назад вот здесь: http://yakovfain.javadevelopersjournal.com/who_needs_protected_variables.htm

      A o protected variables во Flex framework 3 года назад вот здесь:
      http://flexblog.faratasystems.com/2007/10/25/these-annoying-protected-variables-in-flex-framework

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

      • konoplev said, on April 5, 2011 at 8:42 am

        Ok. Пасибо за ссылочки – понял Вашу позицию.
        Я пока не близорукий, но очень много времени провожу в дороге (к сожалению не на пляж как правило🙂 ) и настоящие книги не хватает терпения ждать. В Россию они могут идти очень долго. Да и носить с собой их часто не очень удобно. Вот и хотел узнать может кто читал с 6-ти дюймового техническую литературу.
        Фоту посмотрел. Широкий у Будама круг интересов🙂 По поводу html5, мне понравился сайт http://www.html5rocks.com/ Узнал о нём на конференции Гугла, часть которой была html5 посвящена. Кстати забавно было то, что все слайды у гугловцев были в html.🙂

  19. Yuri said, on April 5, 2011 at 7:19 am

    Привет, Будам!

    Ты можешь оценить, если принять тренинг в живую в одном помещении за 100% эффективности, сколько будет тренинг в таком качестве? Или, если нельзя по линейной шкале оценить, какие наиболее слабые стороны у такого удаленного (но он-лайн!) обучения?

    • budam said, on April 5, 2011 at 7:23 am

      Когда я читаю в классе, меня еще можно потрогать и угостить пивом. Остальное так-же как в онлайн. В проценты переведи сам.

      • George said, on April 5, 2011 at 2:50 pm

        Т.е. будущее за виртуальным пространством? Здорово. Или без пива эффекта достичь не удастся?🙂

        • Gene_IT said, on April 5, 2011 at 3:36 pm

          Так курсы целых два месяца идут, тут оффлайн бы и не получилось, если только не жить в Нью-Йорке🙂

          • Yuri said, on April 6, 2011 at 5:43 am

            Да вообще плюсов много. Мир меняется, но есть колоссальное сопротивление:

            http://slon.ru/articles/568974/

            Т.е. гибкий рабочий график имеет тоже позитивное воздействие, что и сдельная оплата труда – чрезвычайно сложная во внедрении вещь (по оценкам топов).

  20. Alex Kononov said, on April 5, 2011 at 9:31 am

    Спасибо, интересно было послушать.
    Хоть моя основная работа сейчас и не связана с Java (а связана с Delphi, причем я в США -) ), купил вашу книгу на амазоне чтобы “не складывать все яйца в одну корзину” – параллельно изучаю WPF/Java
    А вторую половину урока, связанную с интерфейсами, можете выложить? =)

    • budam said, on April 5, 2011 at 9:58 am

      Если вы купили книжку, там на DVD записаны мои видео скринкасты ко всем урокам.

      А уроки в этом курсе я не записываю. Там у меня “живой звук” и люди за это заплатили. Нужно это уважать.

      • Alex Kononov said, on April 5, 2011 at 10:55 am

        Книгу купил, просто не знал про диск – еще не приехала с амазона.
        Спасибо за уточнение.

  21. Corwin said, on April 6, 2011 at 5:20 am

    Отличная подача материала, все было понятно на слух, даже без листингов примеров перед глазами. Моих базовых понятний о программировании хватило чтобы понимать о чем идет речь.

  22. Yuri Sts said, on April 8, 2011 at 4:00 pm

    Яков, так получилось, что я прочитал вначале твою книгу “Enterprise Development with Flex”, ну а уже через год узнал, что есть такое место, где можно даже послушать. Читать все же больше нравится.

    P.S. В лекции ошибка🙂 Ты сказал, что абстрактный класс – тот класс, который имеет хотя бы один абстрактный метод. It is not true🙂

    • budam said, on April 8, 2011 at 5:12 pm

      Theoretically you can declare a class abstract and don’t declare any abstract methods there. But IMO, it’s not a good design pattern. Just stating that “I didn’t finish the class so do something in there to instantiate it” is not very helpful. But enforcing developers to implement certain abstract methods with strictly defined signatures is a practical solution.

      • Yuri Sts said, on April 9, 2011 at 4:24 am

        Thx! One hugest it-company in Belarus asks the question on interview. Why is it a bad practice to declare constants in interface, they say it is better to do in class? My opinion is the following. In interface you shouldn’t provide “public static final”, if you do that it is some kind of redundance, if you don’t do that (provide “public static final”) than it is not obvious for developer. Are there any patterns about that? Could you please speak you mind about the question?

        • budam said, on April 9, 2011 at 6:47 am

          Some people argue that if you’ll create interfaces with constants only, this makes the program less readable. You see TOTAL_PRICE in the code of a classA, but it’s not immediately clear where it has been defined.I don’t buy this argument (besides you can write MyInterface.TOTAL_PRICE), but this is one of these “dangerous” questions that you should answer the way interviewers expect you to answer. A job interview is not the place for arguing.

  23. Евгений Н said, on April 22, 2011 at 11:47 am

    Подкаст понравился, еще слушаю. Заметил маленький технический нюанс, цитата (14:55 от начала записи):

    “Итак, абстрактный класс. Класс называется абстрактным, если в нем есть ХОТЯ БЫ ОДИН метод, который не был имплментирован”

    – Идеологически, так сказать, суть тут передана верна. Однако с точки зрения дотошных тестов на реальном тестировании при собеседовании – фраза ошибочна.

    С точки “понимаемости” объяснения – опять же Вы пишите верно.

    В чем тут дело? Дело в том, что НЕ обязателен в таком классе метод, помеченный атрибутом abstract.

    Если Вы хотите сказать, что “а, эти тесты, да там, почти всегда, кто их только составляет”, то могу сказать что и при устных тестированиях бывают еще большие “дикости”. Например реальный случай в очень крупной российской компании – со мной сидят 3 человека, задают вопросы, 2-ое из этих 3-их – вполне адекватные люди, а вот 3-ий – любитель раскопать самую суть. У меня спрашивают одно, потом другое, потом этот 3-ий человек задает вопрос – “Что такое интерфейс? Дайте ОПРЕДЕЛЕНИЕ”. – Ну, я начинаю объяснять, какими СВОЙСТВАМИ обладает интерфейс (собеседование по Java, т.е. нужно объяснить только “объектно-ориентированную” составляющую вопроса, с примесью архитектурного – что, например, интерфейсами можно СНАБДИТЬ разные подсистемы приложения, затипизировав ими “внешние” “грани” каждой подсистемы, интерфейсами так же можно затипизировать “Слой служб (Service Layer)”, обеспечивая какой-то API, но вначале, как упомянул выше – дать более простую информацию, в духе чем интерфейс отличается от абстрактного класса, сведя свое изложение к некоторому набору свойств, которые присущи такому понятию, как интерфейс, чем он характеризуется, как применяется, чем описывается). Лично Вас бы удовлетворил такой ответ? Он более, чем развернутый, если отвечающему, в процессе ответа, удастся еще ЧЕТКО выделять все “ПЕРВОЕ. – Интерфейс- бла-бла-бла-бла… ВТОРОЕ. – Интерфейс – бла-бла-бла … ТРЕТЬЕ. – А можно… ЧЕТВЕРТОЕ – Так же – бла-бла-бла” – то, придавая некоторую структурность такому своему ответу – можно облегчить понимание и для самых дотошных экзаменаторов-не-совсем-доучек – чтобы они не упустили какой-то свой “хитрый” пункт, который они где-то вычитали и который они по моему изложению пытаются определить – скажу я про него, или не скажу. Т.е., итого, теоретически таким ответов “можно всем носы утереть”, кто сомневается в Священной Силе нашего знания.😉

    Что же происходит на самом деле? Оба “адекватных” слушателя в процессе моего изложения – кивают головой после каждого пункта, но эта идиллия прерывается через 20 сек. гневным вопросом 3-его – “ТАК КАКОЕ ОПРЕДЕЛЕНИЕ ИНТЕРФЕЙСА???” Ну и этот 3-ий человек – там что-то вроде Team Lead, спец по нескольким языкам программирования и почти с сединой в волосе (т.е. имеет там “приоритетное” значение и от него не отмахнуться шуточкой или еще чем). По инерции оба адекватных еще 3-4 секунды все спокойно слушают (под впечатлением от моей “успокаивающей” речи) и тут в них проникает смысл этого “перебива” меня со стороны 3-его и они начинают понимать, что “тут добром не кончится”. Потому что я, как бы, демонстрирую вполне нормальные знания, и такой наезд на меня (точной формулировкой) – при моем незнании оной, точной – может заставить меня как-то ответить на конфликт (ну и добрая беседа наполнится напряжением, хотя и до размахивания стульями дело в первые минуты не дойдет). Они нас “расстаскивают”, пока во мне гневная реакция (которой нужно секунд 10, на химический процесс) еще не отработала.

    Вот и говори потом, что только “письменные” тесты бывают не совсем “такие”.🙂

    У меня есть вопрос, не касательно моей подтемы выше – планируете ли Вы провести тренинг по многопоточности в Java? Вопросы на эту тему практически 100% будут на игровом направлении JEE. Возможно я довольно хорошо понимаю эту тему (осталось что-то еще проработать, наверное осенью закончу, дело в том, что разбираю эту тему не только в Java), но все равно бы с любопытством послушал.

  24. budam said, on April 22, 2011 at 12:05 pm

    1. Ньюанс с определением abstract уже обсужден выше по английски
    2. Я бы не придирался из-за неточного определения. Но если-бы увидел, что во время собеседования ты начинаешь лконфликтовать со мной, на работу не взял-бы.
    3. Я объясняю многопоточность в класссе для студентов. Но подкаст об этом записывать не буду.

  25. Евгений Н said, on April 22, 2011 at 12:14 pm

    “2. Я бы не придирался из-за неточного определения. Но если-бы увидел, что во время собеседования ты начинаешь конфликтовать со мной, на работу не взял-бы.”

    С моей стороны никаких предпосылок не было, разве что просто упоминание, что кто-то со мной (возможно не только со мной) захотел поконфликтовать. Со своей стороны нивелирую этот момент в адрес соискателей – есть случаи, когда из-за конфликтующего руководства уходят (на другую фирму) целые команды Java-программистов (как в Москве, так и в Минске).

    • budam said, on April 22, 2011 at 1:41 pm

      Играть надо по правилам. Ты пришел просить у меня работу – веди себя прилично. Даже если ты знаешь где-то больше меня, попридержи рассказ об этом до того, как тебя возьмут на работу. Не достаточно быть технически грамотным, надо быть еще и умным.

      • Евгений Н said, on April 22, 2011 at 3:00 pm

        Да, все это так. Однако тут мы сводим все к упрощению “черное или белое”, ведь часть уважения закладывается уже на собеседовании.

        По умолчанию обе стороны вежливы и тактичны (а если в вакансии явно пишут “хороший коллектив”, не путать с “молодой, интересный” коллектив), то вероятность этого выше 90%.

        Но сейчас эта подтема – про немного другое, что происходят такие ситуации, которые где-то похожи на отдельные элементы “стресс-интервью”.

        А такая ситуация, умышленно созданная – должна перехватываться и обрабатываться должным образом (кажется управление конфликтами входит в программы MBA, и, я пока не изучал этот момент именно в книгах по MBA, но там навряд ли написано “стоять с понурой головой, подставляя другую щеку”).🙂

        Извините, если что сказал не так, или не к месту, и в мыслях не было, прошу меня простить за все возможные мои грехи.🙂

        Вы, по сути то, конечно, правы, и такой образ – “тихий скромный специалист, жующий траву”😉 – весьма “характерен” для IT-области и для работодателя. Только вот… исходя из Вашей же фразы – “скелеты в шкафу” будут падать потом, например через 3 месяца “тихий, скромный” потребует увеличить копеечный оклад, на который его изначально с большим энтузиазмом взял работодатель. Мне жаловались руководители, реальные истории.

        И говорить каждому новому кандидату — А ты не такой, не обманешь? – значит показать, что часто обманывали. И провокация – на обман, как я тут написал про конфликт – и меня “саассоциировали” с конфликтом. ;(

        Не буду отнимать Ваше время, эта дискуссия “без конца, без края”.🙂

  26. budam said, on April 23, 2011 at 9:27 am

    А вот еще записал пособие на эту тему: http://bit.ly/fznHpE

  27. Евгений Н said, on April 24, 2011 at 6:59 am

    Попалось на глаза информация о падающих скелетах в шкафу, не спору ради, просто забавно:

    “А вообще, что было и чего не было – с высоты нашего времени можно разглядеть только пробравшись сквозь мифы, окружавшие его имя.

    Попробуем?

    Мифы эти возникли как-то исподволь, по-доброму, чем по злому умыслу, и незаметно укоренились, подменив истину. Вот первый из них – мальчик, сын поморского рыбака из бедной деревеньки, движимый некой неведомой силой – вдруг все бросает и пешком идет в Москву учиться. – Все так, и не так. Во-первых – совсем не мальчик, а 19-ти летний взрослый парень, видный жених, широкоплечий силач. Во-вторых – сын совсем не бедного крестьянина, а весьма обеспеченного рыбопромышленника и купца. В-третих – наконец в Москву пришел вовсе не неуч, а юноша, уже прикоснувшийся к науке своего времени, решивший идти в Москву точно зная, что лишь там он сможет утолить жажду знаний.

    …выделялся необыкновенно смелым, если не сказать – дерзским поведением. В декабре 1739 г. учитель Ломоносова в германии, во Фрейберге, горный советник Гертруд – рапортовал в россискую академию о дерзости своего ученика. — Поручил я Ломоносову работу, какую обыкновенно и сам я исполняю, но он мне дважды наотрез ответил “Не хочу!”, далее он страшно шумел, колотил изо всех сил и в стену кричал, в окна ругался… И все сошло”

    (с) из современного (не отягощенного пролетарским мировоззрением и правкой) документального фильма о Ломоносове.
    😉

  28. Romul said, on May 13, 2011 at 1:41 pm

    Немножко похвастаюсь.
    Моя персональная история успеха с курсом Будама.

    Предисловие: я занимаюсь во второй группе Джава ( вторая – на пару недель позже начались занятия, чем в первой ).

    Дальше письмо к Будаму свое процитирую:

    Вкратце: благодаря вашему тренингу получил работу разработчика на
    Java. Спасибо.

    ( Позднейший комментарий: на данный момент уже пару недель отработал на новом месте – полет нормальный)

    Более развернуто:

    В этот вторник, вооружившись вашей установкой “пойди и получи свой
    отказ”, вывесил свое усеченное ( оставил только опыт за последние 4
    года ) резюме
    на одном популярном местном специализированном портале. Задача была
    простая – “пощупать рынок”. Посмотреть на реакцию работодателей,
    поговорить по телефону, если повезет, то и на одно-другое
    собеседование сходить, но с чисто познавательной целью, т.к. “не
    каплет” надо мной.
    В общем, повторюсь, “пойти и получить свой отказ”.

    За первый день получил 3 звонка, 2 из которых закончились приглашением
    на интервью. Очень вовремя пришелся ваш спич в конце вторничного
    тренинга на тему “вы уже не джуниоры”.

    Вот, вооружившись “напутсвиями Будама”
    ( а именно:
    – уже не джуниор, просто перехожу с одной технологии, которую знаю
    хорошо практически, на другую, которую хорошо изучил
    – кто первый назовет сумму зарплаты, тот и проиграл
    – нужно дать богу шанс – хотя бы купить лотерейный билет
    ) пошел проходить первое интервью.
    Прохождение затянулось на 2 дня. Первый день – интервью с HR-ом (
    очень мило побеседовали, от дважды заданного прямого вопроса об
    ожидаемой сумме зарплаты – уклонился) + тестирование “выберите
    правильный вариант”, “какую строчку нужно дописать”, “что будет на
    экране”,”напишите SQL запрос” и т.п.
    Второй день – собственно, техническое интервью с лидом и пиэмом по
    очереди, частично на английском. В конце собеседования еще раз
    уклонился от требования “назвать сумму”.

    В пятницу получил оффер – сумма оказалась на 50% выше той, которую я
    бы назвал ( если бы ее из меня таки смогли вытащить ), и раза в 2 выше
    той суммы, за которую я бы согласился некоторое время поработать для
    получения строчки в резюме и реального опыта.

    В общем, Будам плохого не посоветует🙂
    а с меня – бутылка ( не помню чего – нужно будет переслушать подкасты
    на предмет определения любимой Будамом марки коньяка ). Привезу в
    Минск, на тренинг по флексу🙂

    Еще раз спасибо, Яков, за тренинг. И отдельное спасибо – за подкасты.

    • Саша said, on May 16, 2011 at 3:13 am

      Поздравляю с успешным трудоустройством! Ты прав – Будам плохого не посоветует🙂 Если не секрет – как долго и на каком языке программировал раньше (до последнего трудоустройства)?

      • Romul said, on May 17, 2011 at 9:35 am

        Тут вопрос сложный – на чем работал … Мне хорошо за 30, т.е. было несколько легче надувать щеки и бить себя в грудь кулаком🙂

        Продавал я себя, как senior php developer-a, переходящего на новую технологию.

        Кстати, на собеседовании был задан вопрос – почему Джава. Ответил в том духе, что на последнем проекте уперся в предел масштабируемости LAMP (что чистая правда – таки сложно ворочать 12 млн деталей в реалтайме) + денег больше ( да-да, так и сказал, не постеснялся🙂 )

        • Саша said, on May 17, 2011 at 1:45 pm

          Да, я понимаю – мне тоже уже ближе к 40🙂 Но возраст – это скорее минус, чем плюс (во всяком случае при поиске работы в Украине). Я тоже сейчас сижу на PHP (в фрилансе для PHP-программиста больше заказов). Тоже думаю над тем, чтобы поменять платформу – хочется стабильности🙂 Сдерживает лишь громоздкость JavaEE – по словам людей, которые её используют, нужно минимум пол-года, чтобы “въехать”. Если не трудно, ответь ещё на несколько вопросов: сколько у тебя времени ушло на подготовку? Кроме курсов Будама что-нибудь использовал? Что, кроме Java SE, потребовалось знать для трудоустройства в твоём случае (я имею ввиду фреймворки и т.п.)?

          • Romul said, on May 18, 2011 at 10:27 am

            > Но возраст – это скорее минус, чем плюс

            Статистика у меня, мягко говоря, куцая – вывесил резюме, за полдня получил 3 звонка, из них 2 приглашения на интервью, одно интервью закончилось предложением работы, на втором – отказался сам. Вот и весь опыт.

            Кстати, в комманде несколько человек – старше меня, и нет людей сильно младше. Т.е. не все так плохо🙂

            Попасть на джуниорскую позицию – наверное да, на(в) Украине, если тебе за 30, сложно. Но зачем идти на джуниора, если есть опыт в смежных областях?

            > сколько у тебя времени ушло на подготовку?

            В августе прошлого года, прочитав обзор проекта нового украинского Налогового кодекса, я понял, что есть большая вероятность того, что, как говорил Жванецкий, “когда, наконец, стал специалистом в своем деле, может исчезнуть дело”. То бишь украинский рынок ( в широком смысле, не только IT ) скорее всего ощутимо просядет.
            Вот тогда и решил, что а) источник дохода должен быть отвязан от украинской экономики б) все средства производства должны быть “в голове”. Дальше – небольшое исследование рынка, беседы с несколькью действующими джавистами – и вперед.

            Более-менее активно ( по нескольку часов в день, 7 дней в неделю ) занимался с середины октября. Т.е. таки да, полгода времени.

            Кроме курсов – несколько книг ( по джаве, паттернам проектирования, подготовке к интеровью ), набивал руку на простеньких задачках.

            >Что, кроме Java SE, потребовалось знать для трудоустройства в твоём случае (я имею ввиду фреймворки и т.п.)?

            В моем случае ( как оказалось ) фирма использует собственные фреймворки и инструментарий, так что нужны были общие знания Web-технологий + некоторое понимание JavaEE + паттерны + SQL

            • Саша said, on May 18, 2011 at 2:38 pm

              Спасибо за подробные ответы

    • Ivan said, on May 16, 2011 at 4:00 am

      Поздравляю. На какой технологии до этого “сидели” ?

    • kipеs said, on May 16, 2011 at 4:40 am

      Здорово! Поздравляю!

      • Romul said, on May 17, 2011 at 9:38 am

        Спасибо

  29. Olexiy said, on July 22, 2011 at 5:23 pm

    Очень понравился выпуск. Яков, низкий тебе поклон. Твои подкасты очень мотивируют и направляют в правильную сторону мысли.

  30. Tomas said, on December 16, 2012 at 5:52 pm

    Yakov, послушал аудио фидбэк http://myflex.org/yf/java/Java_febr_2012_group_feedback.mp3
    скажите Вы пришлушаетесь к пожеланиям в будущем тренинге?
    Если да то к каким именно?

    • Yakov Fain said, on December 16, 2012 at 6:12 pm

      Слушаю. Но прислушиваюсь только к тем, которые реально воплотить в групповом тренинге. Вот, например, добавлю визуальных диаграмм в слайдах для январской группы.
      Но когда один говорит, что много было чистого языка Java, а другой, что много было Java EE – я такие коменты вежливо слушаю, но ничего не меняю. Если бы это были индивидуальные занятия, то я бы сделал курс, который точно настроен на то, что нужно конкретному человеку. Но частные уроки я не даю уже около двадцати лет.

  31. Tomas said, on December 16, 2012 at 6:30 pm

    Yakov а как насчет не большого перерыва между ДЗ и обратной связи по e-mail? Просто уже приходилось учиться на одном курсе (не по Java) и там тоже было много ДЗ но все сразу не успевал сделать приходилось очень тяжко в итоге по середине курса многие отстали и забросили учебу т.к. на новых уроках объяснилась уже другая тема и если ты не конца понял предыдущие смысла слушать новую нет.

    А также очень интересует сколько человек будет в группе и как часто Вы участвуете в дискусиях на форуме и еще сколько (примерно) домашних работ к каждой теме и какая у них сложность для новичка по Java?

    И можете ли выложить хотя бы один пример ДЗ к любому уроку (только не по Java EE)?

    • Yakov Fain said, on December 16, 2012 at 6:53 pm

      Все слайды курса выложены здесь: http://code.google.com/p/practicaljava/w/list.
      Там и ДЗ есть старые.
      В январскую группу уже записалось человек 18, может еще несколько запишется.
      В новой группе перерыв между занятиями неделя, а раньше ны занимались два раза в неделю.

      • Tomas said, on December 16, 2012 at 7:02 pm

        Спасибо за ответы.

  32. Tim said, on January 18, 2013 at 6:04 am

    Здравствуйте, Yakov
    Подскажите могу ли я оплатить курс 25 числа? Просто загружен по работе а после работы банк уже закрыт.

    • Yakov Fain said, on January 18, 2013 at 9:14 am

      Да

  33. Виктор said, on January 22, 2013 at 3:47 am

    Здравствуйте! Когда будет следующий курс (на этот Sunday, January 27, 2013 at 7:00 AM – Sunday, May 5, 2013 at 10:00 AM (EST) не успеваю)?


Оставь комментарий

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: