Пользователь
0,0
рейтинг
1 августа 2012 в 10:24

Разное → Я переучиваю людей на Java-программистов recovery mode


Когда я вижу друзей, которые вкалывают в два раза больше, а зарабатывают в четыре раза меньше, каждый раз начинается разговор:
— А ты бы не хотел поработать программистом? Ты же реально умный. Может ты просто не на своем месте?

В результате я переучиваю своих друзей и знакомых на программистов. Весь процесс занимает от двух до трех месяцев. 25 уроков по 4 часа. Потом все смогли устроиться программистами.
Эта статья не о том, как надо учить, скорее просто описание процесса, который работает.

Немного о себе: десять лет программирования. Половину которого программировал на Java. Всего я переучил на программистов восемь человек. Еще троих учу прямо сейчас. Переучиваю, только если вижу, что человеку такая работа подойдет.
Об учениках: 3 парня и 8 девушек. У половины техническое образование. Также есть юрист, экономист, бухгалтер и историк. Некоторые уже где-то работали, некоторые только закончили универ. Программированием никто не занимался со школы. Частая история: закончил (а) универ, а кем и где работать — хз.

Почему программирование?

Прежде чем учить человека программированию, лучше объяснить, что это дает и зачем оно ему нужно.
1 Несложная интересная работа.

Программирование — это несложная и интересная работа. Была возможность сравнить с тем, чем в банке экономисты занимаются. Это небо и земля. В банке все гораздо скучнее. Да и соблюдать дресс-код в 30-ти градусную жару не очень приятное дело.
2 Хорошо оплачивается.
Мне просто приятно видеть, как мои друзья через 5 лет работы начали покупать себе машины или квартиры.
3 Гибкий график.
Жесткий график — это неприятно. Это вам подтвердит каждый, кто стоял в пробке в час пик, или кого штрафовали за опоздание в 5 минут. А как насчет возможности приходить на работу в 11 утра, а уходить в 5? Скажете мечта? Для большинства программистов это реальность. Справляйтесь со своей работой, и вам слова никто не скажет. Во многих конторах вы можете не приходить на работу, а работать из дома.
4 Профессиональный рост.
Почти в любой организации, чтобы получить престижную должность и хорошо зарабатывать, нужно делать карьеру. Программисту достаточно просто оставаться программистом. Вам не нужно переучиваться с программиста на администратора или бороться за должность начальника. Можно просто расти профессионально. Программисты с пятью-десятью годами опыта работы получают шикарные зарплаты.
5 Высокая международная мобильность.
Три самых высокооплачиваемых специальности на западе: юрист, хирург/врач и программист. Но наш юрист за границей будет бесполезен: другие законы, прецедентное право и т.д. Врачу нужно учить язык, заново сдавать экзамены. Программисту ничего учить не придется. Тот же язык. Те же стандарты. Часто даже заказчики те же.

Почему именно Java?

Совокупность трех следующих факторов и заставила меня переучивать людей на джавистов.
1 Java — один из самых легких языков для изучения
У меня получается научить человека за три месяца.
2 Большой спрос на рынке труда.
Можно устроиться на работу без опыта. Фирмы охотно берут на работу толковых новичков и занимаются их дальнейшим обучением.
3 Самые высокие зарплаты по отрасли.
Одни из самых высоких. Особенно актуально для начинающих программистов.

Ключевой принцип

Есть такое хорошее правило, чтобы собрать рюкзак в поход:
1 составьте список всего необходимого
2 вычеркните все, без чего можно обойтись.

Примерно представляю, чем придется заниматься java junior в первый год работы. Знания, без которых можно обойтись в первый год работы — исключаем!


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

Вот чем я советую заниматься java junior в первый год обучения:
1 Радоваться, что есть хорошая работа.
2 Изучать проект.
3 Читать умные книжки.

Формат занятий

Одновременно учу 2-3 человек. Оптимальный размер группы для меня – три человека. Три месяца. Два занятия в неделю по четыре часа. Всего 25 уроков.
Все объясняю исключительно на примерах. Наглядность наше все. Например, чтобы понять коллекции, мы написали на занятии свои ArrayList & LinkedList. Даю домашние задания для закрепления материала.

С чего лучше начать?

С паскаля. Как показывает практика и мой субъективный опыт, все в школе изучали паскаль. В зависимости от ситуации выделяю 2-4 занятия на вспоминание паскаля.
1 Переменные и ReadLn/WriteLn.
2 if, for, while, массивы.
3 Функции и процедуры.
4 Закрепление изученного.

Формат уроков

Обычно рассказываю новую тему 10-20 минут.
Сажусь за компьютер (остальные сидят рядом) и пишу работающие примеры рассказанного. Потом, всем по очереди даю задания по текущей теме. Каждый человек за такой урок успевает сделать по 3-5 небольших заданий.
Поощряю подсказывать друг другу (учит работе в команде).
Подсматривать старые примеры можно. Копипастить ничего нельзя.

Краткое содержание первого урока по Java

(может не быть первым из всех, если были предварительные уроки по паскалю)
1 Рассказываю, что такое Java, JVM, JDK, J2SE, J2EE
2 Устанавливаем JDK, IDE (мой выбор — Intellij IDEA)
3 Создание первой программы. Показываю один раз, затем народ повторяет.
4 Ввод/Вывод, работа с переменными. Провожу аналогии с паскалем — очень помогает. Гораздо легче понять материал, когда есть аналогия с тем, что знаешь.

Альтернативные методики

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

Чему учу


Только самое нужное
<b>Программирование</b>
   ООП
        Наследование: extends, implements
        Полиморфизм: overriding, overloading
        Инкапсуляция
        Интерфейсы: interface
        Абстрактые методы и классы: abstract
        Пакеты: package
    Остальное
        Области видимости переменных
        Перекрытие переменных
        Скрытие методов другими методами.
        mutable, immutable
        Клонирование, контракты.
<b>Синтаксис языка</b>
    Операторы
        if-else
        for, for each
        while, do while
        switch-case-default
        try-catch-finally, return
        throw, throws, catched & uncatched exceptions  
        synchronized
        instanceof,   (type cast)
        приоритеты операторов: + * ++ -- [] =  == != && ||
        finalize
    Модификаторы
        public, protected, package, private
        static
        final x3
    Типы данных
        Примитивные типы: boolean, char, byte, short, int, long, float, double
        Ссылочные типы: Object
        autoboxing
        hashCode, equals
        Generics
<b>Библиотеки</b>
    java.lang
        Интерфейсы-маркеры: Cloneable, Serializable, Remote
        Integer, Real, Double, Character, ...
        String, StringBuilder,StringBuffer, StringWriter
        Thread,ThreadLocal, ThreadGroup
        Throwable, Exception, Error, RuntimeException
    java.io
        Serializable
        InputStream, OutputStream
        Reader, Writer
        FileInputStream, FileOutputStream
        BufferedReader, PrintReader, Scaner
        DataInput, DataOuput,
        ObjectInput, ObjectOutput 
    java.util
         java.util.Date
         java.util.Iterator
         List
             java.util.ArrayList<E>,
             java.util.LinkedList<E>,
             java.util.Vector<E>,
             java.util.Stack<E>.
         Queue/Deque
            java.util.ArrayDeque<E>,
            java.util.LinkedList<E>.
        Set
            java.util.HashSet<E>,
            java.util.LinkedHashSet<E>,
            java.util.TreeSet<E>.
        Map<K,V>
           java.util.HashMap<K,V>,
           java.util.LinkedHashMap<K,V>,
           java.util.TreeMap<K,V>,
           java.util.WeakHashMap<K,V>.
     Многопоточность
        Thread, Runable, join, interrupt, sleep, daemon, yield, wait, notify 



Чему не учу

1 Алгоритмам, графам и т.д.
Сам призер кучи олимпиад. За 10 лет реальной работы ничего не понадобилось.
2 UI, аплеты и т.д.
Скорее всего, будущие проекты в жизни моих учеников будут связаны с Tomcat, JBoss, WebLogic
3 HTML/JavaScript
Непрофильные навыки. Рекомендую заниматься самообучением.

Работа


Я не могу научить всему, да и не стараюсь.
Моя цель в том, чтобы человек получил работу, фирма — перспективного сотрудника, и обе стороны были заинтересованы в его дальнейшем обучении.

Как устроиться на работу. Ключевые моменты.

1 Правильно составить резюме.
Представьте, какой договор может составить профессиональный юрист, а какой — обычный неподготовленный человек. В важных вещах не нужно стесняться обращаться к профессионалам. Так и тут: резюме нужно не составлять самому, а попросить знающего человека.
2 Собеседование
Я провожу несколько тестовых собеседований. И отправляю «выпускников» походить на собеседования в несколько контор — для опыта.
3 Опыт
В резюме должно быть от 3 до 6 месяцев опыта работы. Это добавляет уверенности человеку, который решил взять вас на работу.

Идти работать только в айтишные конторы.

А еще лучше в большие айтишные конторы. Только они занимаются обучением новичков. Цель первого года работы — получить как можно больше опыта, а не денег. Уже на позиции middle developer спрос превышает предложение, и зарплаты начинают резко расти.

Истории из жизни учеников

Как правильно просить повышения.
История одной моей ученицы.
— Получала я как-то зарплату в $2400. Подошел очередной срок пересмотра зарплаты. Хочу 2800, но как договориться?

Решила попросить $3000, с таким расчетом, чтобы сторговаться на 2800. Однако когда дошло до обсуждения новой суммы, выяснилось, что выше 2600 поднимать не хотят. Неужели я не стою больше? — подумала я, и записалась на собеседование в стороннюю фирму.

Через пару дней сходила на собеседование, там предложили $3000.
Прихожу на следующий день на работу, распечатала job offer, и к менеджеру на разговор. Подумал он, позвонил куда-то. Через полчаса подошел и предложил $3200.

Довольная звоню в фирму, где проходила собеседование и говорю, что не могу у вас работать, так как на текущем месте работы предложили 3200. Там предлагают 3400. Совсем выбили из колеи. Я же уже настроилась продолжать работать, а тут такие новости. Но т.к. боевой настрой еще был, опять пошла к шефу. В итоге получила $3600.

Гораздо больше шансов получить прибавку к зарплате, если оба (я и шеф) уверены, что я стою большего.

Самая быстрая карьера в истории.

История номер два. Рассказываю от первого лица.
Решил я устроиться на свою первую работу. Составил резюме на позицию java junior, приписал 4 месяца опыта в несуществующей форме и пошел на собеседование.

Взяли. Поработал три месяца. Учил java и разбирался в проекте. Но фирма не понравилась. Через три месяца уволился. Посидел дома месяц, позанимался, и пошел на собеседования снова. В этот раз я уже искал позицию java middle и, по резюме, имел год опыта работы. Поработал два месяца. Проекту с десяток лет, профессионалы справляются, но новичку на таком проекте очень скучно. Уволился.

Нашел новую работу. Теперь в моем в резюме было полтора года стажа. В этот раз проект полностью устраивал, но хотелось развиваться и другую зарплату. Должна же быть где-то фирма, которую я ищу — думал я. Поработал три месяца.

На свою последнюю работу, устроился на позицию senjor java developer. Три года работы в резюме внушали уважение. Уже три года работаю в понравившейся фирме. Именно то, что я искал. Я доволен, заказчик тоже.

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

Тонкие моменты

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

Я вплетаю желание учиться/развиваться в сам процесс обучения. Это же не чужие мне люди: вкладываю душу, даю интересные задачи. Они занимаются не потому что надо, а потому что им интересно. Как забытое с детства удовольствие, когда делаешь что-то новое, и у тебя получается.

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

Мои ученики убеждены, что программирование — это легко, интересно и креативно. И оно становиться для них таким!

О собеседованиях

Человека можно оценить только по результатам его работы, а не по резюме, куда каждый что хочет, то и пишет. Зарплата часто назначается по результатам собеседования, которое проходит до того, как человека увидели в работе. Как результат — часто возникает ошибка оценки квалификации и вклада специалиста в работу, особенно если работодатель небрежно относится к собеседованию. При справедливой оценке ЗП в $700, можно ведь год работать на $1000 в месяц, а можно и на $500. Я делаю все, чтобы эта ошибка, если она возникнет, была в сторону кандидата — моего ученика.

P.S.
Сегодня у моей первой ученицы (поле пяти лет работы программистом) первый день работы тимлидом. Горжусь ей.
25 star general Zapp Brannigan @general
карма
29,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разное

Комментарии (463)

  • +18
    По Skype проводите обучение?
    • +1
      Уже пять желающих)
      • +3
        Если бесплатно в виде вебинара я б тоже пошел)
        • +1
          Я бы и платно после тестовых уроков пошел.
          • НЛО прилетело и опубликовало эту надпись здесь
            • 0
              И меня запишите )
              • +1
                И меня! Я бы тоже не отказался от знания Java
        • –4
          Тогда 6 :)
          • –4
            7.
            • +26
              Планировал выложить на хабре несколько уроков, если будут желающие. Но судя по расчехленным минусометам — это состоится не скоро.

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

              Как можно вообще передать суть предмета, дав только одно его определение? Вы когда-нибудь видели фотографию незнакомого вам человека со спины, много это вам дало?

              Например, интерфейсы. Я рассказываю о том, чем является интерфейс. Чем он не является. Как используется. Где используется. Что общего, и в чем различия с абстрактыми классами. Показывю как они используются на практике. Датю легкие задачи по этой теме. Прошу рассказать своими словами. Поправляю. Объясняю снова. Даю большую сложную задачу на всех и задачи на дом.

              • –10
                посетителям очень неприятно сознавать что они не элита технологий а обычные инженеры (расчитать трубопровод в строящемся доме, например, тоже инженерная работа, но никакого налёта элитарного творчества тут нет).

                Отсюда и минусование.

                На западе такой попытки выделения себя нет, поэтому там и появились Линукс с Виндовс и прочими Автокадами. Кстати.
              • +12
                Извиняюсь, но выскажу подозрение почему минусуют. Судя по нескольких комментариям, топик выглядит эдакой рекламой своих курсов с целью набрать новых учеников. Хотелось бы верить что это не так, ведь ваша инициатива в некоторой степени помогает людям.
              • +2
                Ну выложине не на хабре… свет клином на одной площадке не сошелся. Кому надо — найдет.
              • +1
                По поводу уроков: я только за. Только не надо пронизывать текст баблом, и не будет минусов
              • +5
                Очень бы хотелось увидеть ваши уроки на хабре. Надеюсь, что вам это удастся, тогда все увидят, действительно ли вы хорошо и доступно излагаете материал.
            • –9
              8
    • 0
      и я хочу…
  • +2
    Добротная статья, и главное меня мотивирует сделать из друзей — программистов.
  • +49
    У меня тоже есть несколько C++-падаванов, вот только я занятия им не провожу — задаю направление и помогаю на распутьях. А ещё не учу их писать фейковый опыт в резюме.
    • +4
      Задайте направление, мастер, я на распутье. Учусь программировать примерно 7 месяцев, основной язык C++. Хорошо знаю синтаксис, на мой взгляд, конечно. Прочитал «Thinking in C++», «C++ Primer», «The C++ Programming Language», «Effective & More Effective C++», «Code complete». Легко выполняю мелкие упражнения, могу реализовать основные структуры данных и простые алгоритмы вроде сортировки пузырьком, но до «больших» проектов дело пока не доходило. Теперь стою перед выбором — то ли начать глубже изучать Computer Science, то ли уделить побольше внимание практике и наконец-то выучить UI библиотеку. А может, стоит подучить Python, мой второй язык? Мне нужен ваш совет, о Мастер.
      • +7
        Начать писать игру. Тут-то все навыки и пригодятся.
        • 0
          Спасибо. Правда, для этого тоже нужно сначала выучить какую-нибуть графическую библиотеку.
          • 0
            Для начала можно посмотреть в сторону SDL, если под linux или кросс-платформа. Только под windows — DirectX.
            • –1
              Мне нужно под Mac, но с учетом рыночных потребностей. Не хотелось бы учить библиотеку, которой пользуюсь я, да еще два с половиной человека. Что вы думаете по поводу QT?
              • 0
                QT — это именно GUI библиотека. Для написания игр её может быть и можно использовать, но лучше использовать более специализированные инструменты.

                Разработку под маки вообще лучше вести на Objective-C который родной для этой ОС. Про Qt на маках ничего сказать не могу, поскольку знакомство сильно краткое.
                • +8
                  Bullshit. Qt — отличная библиотека, в том числе не для GUI (работа с XML, сетью, БД и т.д.). Казуалку можно написать на основе QGraphicsScene или даже на Qt Quick без проблем. К тому же есть всякие биндинги к Box2D, например, если нужно.
                  • –1
                    Ну хз. Я как-то больше по консольным приложениям и библиотекам. Qt использую в связке с питоном постольку-поскольку когда надо гуёвую морду нарисовать.
                    • +5
                      Ну так если Вы с Qt почти не знакомы, то зачем так расписываться за всю либу, мол, именно GUI бла-бла? :)
                      • 0
                        в Qt3 GUIшность была прибита гвоздями. ЕМНИП только начиная с Qt4 стало возможным использовать его как фреймворк общего назначения. Поправьте если я неправ.
                        • +9
                          Со времён выхода Qt4 прошло 7 лет, пора бы уже и из анабиоза выходить)
                          • +8
                            уже? значит хладагент вовремя не слили :)
                        • +3
                          Кагбэ Qt5 на носу ;)
              • +3
                Библиотека Qt вполне вменяемо работает под Mac OS X, но доминирующее положение всё равно будут занимать Объедки-Си.
          • +1
            Не обязательно. Я ещё в школьные годы на паскале писал игрушки, начиная с псевдографики, затем — цветной ASCII, в конце концов (уже в студенческие годы) дошёл до написания своего софтварного рендерера. И только потом начал изучать OpenGL =).
      • +1
        Зависит от того, к чему душа лежит и от текущих познаний. У одного моего друга было отличное алгоритмическое (математическое?) мышление, но программирование он не шарил. Я подсадил его на С++, посоветовал книги (кстати, для начала «Thinking in C++» очень неплоха, хотя я 8 лет назад вообще начинал с «С++ за 21 день», на которую потратил около трёх месяцев :)). Он сам выбрал себе задание для оттачивания навыков. И, как ни банально, это оказались шахматы, причём сначала чисто под консоль. К тому времени синтаксис он уже знал неплохо, но мозг в сторону ООП ещё не сломал. Собственно, работая над шахматами он столкнулся с множеством как простых, так и достаточно нетривиальных для него (архитектурных в том числе) проблем. Сейчас, кстати, он в геймдеве (под мобилы, правда). Год потратил на обучение (важно то, что фактически всего он достиг самостоятельно) и уже около двух лет работает.
      • +2
        Попробуйте посмотреть в сторону написания автономного торгового (биржевого) бота.
        Из навыков прокачивает:

        1. Теорвер, матстатистика, обработка временных рядов
        2. Генетические алгоритмы и/или нейронные сети
        3. Многопоточность и многопроцессность (межпоточное и межпроцессное взаимодействие)
        4. Составление полных карт события-состояния.
        5. Базовые представления об управлении рисками и потерями в финансовой системе.
        6. Аккуратнейшая обработка ошибок всех мастей
        7. Выявление и оптимизация узких мест

        Примерные шаги:

        Открыть демо-аккаунт у брокера к торговой площадке РТС
        Скачать и установить QUIK (или любой другой торговый терминал)
        Пощелкать пальцами купи-продай, почитать мануалы

        Выбрать библиотеку для взаимодействия вашего бота и торгового терминала (или написать самому)

        Спроектировать систему на уровне кубиков:
        Модуль принятия решений (торговая стратегия)
        Модуль защиты от потерь
        Боевая часть (взаимодействие с терминалом и отслеживание состояния счета, заявок, сделок)
        Модуль расчетов параметров стратегии (ГА и НС)

        Написать базовые утилиты для работы с терминалом.

        Составить схему состояний заявок, сделок, счета, денежных средств и переходы между ними

        Вспомнить, что все это безобразие крутится в асинхронном режиме и помимо основных состояний есть переходные

        ПЕРЕПРОЕКТИРОВАТЬ ВСЕ К ЧЕРТОВОЙ БАБУШКЕ

        Написать обвязку торгового бота под произвольную стратегию

        Составить или взять известную торговую стратегию. Вписать ее в обвязку торгового бота.

        Провести тесты не тестовом счете

        Еще раз провести тесты.

        Дальнейшие действия на ваш вкус (самому торговать, продать систему, забыть все, как страшный сон)
  • +10
    Программирование похоже на вампиризм ;)
    • +1
      Еще как. Самые лучшие программистки выходя из самых красивых девушек. Это подтвердят и те, кого я учил, и те, кого я учу. Две девушки спереди — java-программистки:


      • +1
        Как сложно понять всех.
        Пишешь статью, что можно обычных людей переучить в программистов, не верят и минусуют.
        Выложил видео. Две девченки на видео — мои бывшие ученицы, и уже год как работают программистами.
        Результат — опять минусуют.
        • +2
          А зачем, чтобы все вас понимали? Главное чтобы вам нравилось то, что вы делаете. А минусуют может потому, что не признают девушек программистов :)
          • +1
            Бред какой. НЕ признаю девушек программистов? Почему интересно?)
            • 0
              Просто высказал предположение. Я признаю девушек программистов, даже знаю пару таких. Утрут нос любому мальчику программисту :)
              Обидно только, что не все верят пока, что девочка может показать себя в ИТ. И им(девочкам) приходится карабкаться вверх по карьерной лестнице, работая усерднее, каждый день доаказывая, что они что-то могут.
              • +2
                имхо тут мнения расходятся. Есть работодатели, которые заинтересованы именно в женском поле, поскольку они «более ответственны и проч».

                Да вообщем, эта тема полов уже как-то очень убого выглядит.
              • +1
                К сожалению, в большинстве случаев ситуация обратная, видимо имеет место психологический эффект.

                Просто самооценка девушки в технических вопросах обычно выглядит так: базовый_уровень_навыков + ну_я_же_девушка = оценка, что частенько позволяет переоценить себя в пару раз. Общество само к такой ситуации приводит,
                девушка сама закрутила шуруп — «ого, это круто!»,
                парень закрутил шуруп — «ну и»,
                девушка написала простейшую программу (ну, скажем калькулятор, как в винде, с кучей кнопочек) — «ого, это гениально, тебе надо работать программистом!»
                парень написал — «ну и?».

                Девушки в этом не виноваты, но без переоценки, навязываемой обществом им сложно что-то делать.
          • +6
            Может минусуют из-за отсутствия HD-качества*
        • +10
          Если бы вы честно называли вещи своими именами; убрали бы информацию про фейковый опыт, а слово «программист» заменили на «кодер», то возможно негодования было бы меньше.

          А видео здесь просто неуместно, ну пытаются танцевать — молодцы. Это их делает как программистов лучше?
          • 0
            1 Я написал все как есть. Пол интернета завалено статьями о студентах, которых не берут на работу, если нет опыта. Это одна из стратегий, на случай если человеку трудно найти работу.

            2 Для меня программисты делятся на Junior, Middle, Senjor, Guru. Кого именно из них лично вы считаете кодером? Предположу, что человека, который отказался развиваться, но в моем списке таких нет. Есть лишь люди, которые еще чего-то не знают, или уже что-то знают.

            3 Зачем девушки? Во-первых это мои ученицы.
            Во-вторых, глядя на них, можно подумать, что они очень далеки от программирования. Но они уже год как программисты. Да, пока — junior'ы. Но это пока. Научиться может любой.
            В третьих, мне приятно знать, что программисты живут не только программированием. А мозги у них есть, не сомневайтесь.
            • +12
              1. Заваливают те, кто реально считают что «программист это легко», возможно вдохновленные такими вот топиками. И они, как свойственно людям, отмазываются тем, что их не взяли из-за отсутствия опыта, а не по реальным причинам (кто же хочет себя считать, простите, глупым?)

              2. Это деление абсолютно условно (и нелепо).
              Стажер (например того же Microsoft Research) реально может зарабатывать больше чем Senior (у вас опечатка) или даже гуру какой-нибудь ООО «ЛолЧто». Всего знать невозможно, это понятно. Но есть вполне практическое деление

              Если человек не знает фундаментальных теоретических основ программирования (я могу рассказать подробнее, что именно я имею в виду), то он кодер. Он не в состоянии придумать и доказать корректность алгоритма, так как просто не владеет математическим аппаратом, однако способен собирать вроде как рабочие программы из методов фреймворка. Если при этом он немного знает про паттерны и умеет писать аккуратный код — то это Кодер (род деятельности у него такой — писать КОД). Ежели нет, сами знаете, добавляется приставка (быдло-), и «мы таких не любим».

              Если человек более-менее разбирается в Computer Science, не на уровне ученого, а на уровне потребителя — то это программист (при прочих навыках).

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

              То что я хочу донести:
              1. Программистом быть сложно. Невозможно без огромной теоретической базы, которую можно получить разве что за 5-10 лет.
              2. Кодером может быть почти любой «соображающий» человек, но нужно здраво оценивать рамки его применения. И обычно, попадая на путь кодеров, люди на нем и остаются навсегда.
              • 0
                Что Вы подразумеваете под «фундаментальные теоретические основ программирования»?
                хотя бы кейворды, по которым можно загуглить.
                • +1
                  Ну, если говорить про совсем фундамент, то пожалуй, даже без кейвордов — взять, например, книгу Н. Вирта «алгоритмы и структуры данных», и пусть не смущает, что там паскаль (или модула), она не теряет своей актуальности, и, наверное, не потеряет никогда.

                  Чуть дальше — что-то вроде этого, logic.pdmi.ras.ru/csclub/courses/
                  • 0
                    Ок. Спасибо. А что вы подразумеваете под «ДОКАЗАТЬ корректность алгоритма»?
                    • 0
                      на хабре уже были интересные заметки о доказательстве корректности, например habrahabr.ru/post/148769/

                      Но на практике таким путем мало кто пойдет, много времени отнимает. А ручное доказательство, на бумажке, с фиксацией произвольного входа для метода и набором логически верных переходов, приводящего его к верному выходу — вполне вариант. Экономит кучу времени, относительно 100% покрывающих юнит-тестов.
              • +8
                Я — тот идеальный программист, которого вы описываете.

                1 Знание алгоритмов
                8 лет (вуз+школа) занимался олимпиадным программированием, призер олимпиад ACM. Книгу Кормена «Алгоритмы: построение и анализ» знаю чуть ли не наизусть.

                2 Шикарная математика
                Факультет математики, бакалавр, красный диплом.

                3 Computer Science
                Факультет кибернетики, магистр (2 года), красный диплом.

                Знаете что из этого понадобилось за 10 лет работы программистом?

                Ничего.

                Шансы, что в за два первых года работы вы будете писать свой графический движок равны 0.
                Шансы, что за 10 лет вы напишете свой собственный фреймворк немногим больше.
                А если и будете — значит просто изобретаете велосипед.

                Представьте, что вы переписываете проект из под IBM WebSphere под JBoss. Типичная ситуация для джависта.
                Ваша эффективность зависит от:
                1 Умение понять ход мыслей программистов IBM
                2 Умение понять ход мылей разработчиков JBoss
                3 Сколько сот часов вы провели, разбираясь в коде продукта.
                • +4
                  Это похвально, но это ведь ваш выбор пойти в энтерпрайз (если я правильно понял). А там ставятся задачи, за которые можно получить деньги «здесь и сейчас», да, возможно большие деньги. Да, возможно и программистам не скупятся на вознаграждение, которое превышает средне-рыночное.

                  И на legacy всегда нужны адекватные и спокойные кодеры, это правда. Но этим все не ограничивается. Но я думаю вы прекрасно понимаете, что рано или поздно этот рынок насытится, поскольку он действительно не так сложен для освоения.

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

                  Я могу сказать, что математика за время моего опыта не понадобилась только один раз, когда мы на ASP.NET разрабатывали какой-то дурацкий портал, два месяца (из 6 лет), после чего я просто отказался от проекта.
                  • +2
                    А какими проектами вы занимаетесть, что вам так часто нужна математика?
                    • 0
                      интересно, куда с хабра исчезло резюме, хотел спросить, что же вы не почитали, но хорошо что сначала сам проверил :)

                      писал:
                      * система трансляции исходного кода (грубо говоря кросс-компилятор между различными ЯП), BluePhoenix называется — довольно много «суровых» алгоритмов, работающих со сложными структурами данных,
                      * аудиокодек — там все довольно стандартно, но пришлось немного помучить автокорреляции, и провести небольшое исследование относительно качества/производительности различных методов,
                      * софтину для «защиты пользовательских данных» — довольно много криптографии (причем несколько нетипичных методов, вроде OTP)
                      * специфическую xml-based DBMS — реляционная алгебра, очень много алгоритмов, алгоритмическая специфика xml/xslt
                      * средство для мониторинга биоинформации в реальном времени — собственно там нужно было много разных фильтров над потоком информации (например с датчика ЭЭГ), очень быстро работающих
                      * средство для частичной автоматизации нейрохирургических операций (по томографиям и датчикам построить 3д карту черепной коробки, поверхности головного мозга, и соотносить системы координат (внутреннюю и внешнюю) в реальном времени
                      * несколько программ для кластерного анализа бионформации (определить что «пациент скорее жив, чем мертв»)
                      * движок для распознавания химических структурных формул.

                      что-то по мелочам мог забыть. Ну и конечно да, портал на ASP.NET. Согласитесь, относительно списка выше, ну как-то нелепо даже звучит.

                • +2
                  Читаю-читаю и думаю фигня какая-то :) Конечно сейчас далеко не всегда берут по потребностям, а чаще всего по возможностям. В этом и беда. Давал на интервью задачу написать поиск строки в подстроке — любой алгоритм! — процент правильно (ну работающего в 90%) написанного кода крайне низок! Что теперь делать на работу не брать? Да говорят, возьми будет биндинги в xml прописывать :)

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

                  Зарплата еще один нонсенс, вон в Академии Наук вообще мало платят и что там дурные люди что ли? Или что надо учить java, чтобы много зарабатывать? К сожалению из-за финансовых карьеристов чаще всего отдуваются другие программисты. Он наговнокодил — ушел в менеджеры, а другой сидит, нормальный программист, все исправляет.

                  Вообщем топик — реклама и не панацея, надо будет человек выучит, через opensource прорвется (без мнимого опыта) и вообще по программированию столько информации в интернете, что я думаю можно программы только используя stackoverflow писать.
                • +3
                  Может вы просто неправильно выбрали место работы?)

                  Если не секрет то каких именно успехов в acm добились?
                • +1
                  «Я учился 20 лет программировать, теперь работаю дворником. И что мне потребовалось из моих знаний? Ничего!»

                  Сфера IT за последние 20 лет разрослась невероятно. Теперь столько разных работ, что можно найти подходящую для любого образовательного профиля. Вы выбрали такую, где ваши знания не пригодились. Что ж, бывает. Могли выбрать другую.
          • –3
            > слово «программист» заменили на «кодер»
            Зачем?
          • 0
            на «быдлокодер»

            и заголовок статьи «JAVA — это просто, работать не надо, думать не надо! Справится и индус!»
  • +5
    Недавно друг попросил обучить его программированию, так как на старой работе надоело, хочет чего-то нового. А тут еще ему знакомый предложил позицию в сфере программирования.
    Буду учить на питоне, так как считаю, что он один из самых простых.
    С некоторыми методами не очень согласен, однако с интересом попробую использовать парочку озвученных для обучения.
    • +1
      Я кстати не думаю, что он простой. Лично я пришел к нему через паскаль и С++. И считаю, что без того чтобы реально прочувствовать, как это реализовать список, следить за памятью и тп, браться за скриптовый язык плохо — он очень хорошо прячет основу, которая все равно догонит и даст пинка.
      Ну личное такое мнение.
      • 0
        Вы часто реализовываете свои списки или, скажем, алгоритм быстрой сортировки?
        • +6
          Я часто оцениваю сложность алгоритма (зачем зубрить, что чтение из dict колеблется от O(1) до O(n), если можно понимать, как оно внутри), слежу за потреблением памяти и изредка скатываюсь в cython.
          Скриптовые языки упорно пытаются делать вид, что это не нужно, но мы-то знаем…
          • +1
            У меня так получилось, что начал я с PHP, но он мне начал надоедать и сел я за Python, выучил все ок.

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

            • 0
              От обилия союза «но» в одном предложении мне поплохело.
              • 0
                Есть фразы-паразиты. И есть они у каждого, увы…
                • 0
                  Это вообще плохая частица, от нее надо избавляться в принципе. Она влияет на ваш разум.
                  • 0
                    Вот вы показали, буду избавляться.
                    Сам заметил не очень приятный осадок пока перечитывал свое сообщение.
        • +2
          Вы не поняли — нет конечно, я ничего не реализовываю. Я просто знаю как оно работает.
      • +1
        Если заниматься вебом — вряд ли догонит. Я работаю на питоне и много лет ненавижу c++, а вот сейчас взялся за c#, глядишь и до управления памятью дойду. Имхо, нынешняя мэинстрим разработка основ не требует, скорее умения проектировать.
        • 0
          Вот только сегодня рубишный queue догнал и дал поджопник. Патч на руби Array от funnyfalcon сильно ускорил работу.
      • +4
        Я пришел к питону через Паскаль, Делфи и ПХП и рад как слон. Всё логично, понятно и лаконично.
        • 0
          Да, для вас понятно, вы знаете что такое list и что такое dict. То есть реально понимаете что вставка в конец «списка» и удаление с его начала ударит вас его ArrayList сущностью, и использование его как fifo не очень удачная идея.
          А ваш девственный в программировании товарищ? Он поймет где тормозит и отчего? Я думаю люди сразу программирующие на скриптовых языках могут сильно удивиться. Потом будут срывающие покровы статьи писать на хабрике :)
          • –1
            Чего-чего? Какой еще «ArrayList сущностью»? docs.python.org/faq/design.html#how-are-lists-implemented
            • +1
              Той самой, что описана по вашей ссылке. ArrayList — динамический массив в Java (и сишарпе, наверное).
              • –2
                Да, но, например вставка в конец в Python работает супер быстро. Намного быстрее чем в начало.

                Вставка в конец:
                l = range(1000000)
                for i in range(10000):
                    l.append(i)
                

                $ time python test.py
                real 0m0.074s
                user 0m0.056s
                sys 0m0.020s
                


                В начало:
                l = range(1000000)
                for i in range(10000):
                    l.insert(0, i)
                

                real 0m18.534s
                user 0m18.377s
                sys 0m0.080s
                
                • 0
                  Именно потому, что вам придется весь массив сдвинуть — потому вставка в начало и работает как писец что. Во всех функциональных языках все ровно наоборот — там реальные списки, и вставка в конец требует прохода до конца собственно. В erlang например весьма не рекомендуют делать append.
                  • 0
                    А есть еще и реальные двунаправленные списки с которыми любые операции с хвостом и головой работают одинаково «супер-быстро», то есть за O(1).
                  • –1
                    Я о том что у вас в комментарии ошибка (или я что-то неправильно понял):
                    >То есть реально понимаете что вставка в конец «списка» и удаление с его начала ударит вас его ArrayList сущностью
                    Вставка в конец — не ударит…
                    • 0
                      А удаление с начала?
                      • 0
                        Ударит.
                        True && False == False, так что у вас все-же ошибка :)
                        • 0
                          Выражение «вставка в конец и удаление с начала ударит вас» = True.
          • 0
            Я знаю, что этот человек дотошный и если возникнет проблема, то он обратится ко мне или изучит её досконально. К тому же у него нет аккаунта на хабре :)
    • 0
      Скажите, как с трудойстройством у Python программистов? Выучил для себя, потому-что язык очень классный, но серьёзных проектов на нём не делал.
      • 0
        Не могу сказать точно, так как изучал его уже работая программистом на пхп. В какой-то момент я сказал начальнику, что хочу теперь писать на питоне.
      • 0
        В Москве и Питере вроде бы достаточно вакансий, но вот в Екатеринбурге с этм проблемы. Компании которые разрабатывают на питоне можно пересчитать по пальцам двух рук. А сколько из них ищут программеров может быть 1-2. Я в свое время достаточно долго искал вакансию на питоне. Посмотрите сайты с работой в вашем городе.
      • 0
        Если к городу не привязываться, то без работы не останетесь — сейчас требуются и требуются — постоянно долбят HR-ы.
      • 0
        World of Tanks с руками отрывают, готовы даже учить Питону программистов с опытом. Это Минск и Киев, насчет Питера не уверен.
        • 0
          В смысле WarGaming, которая делает WoT.
  • НЛО прилетело и опубликовало эту надпись здесь
    • +5
      По-моему, зависит от человека. Знаю много народа, которые учились пять лет — и ничего. А есть те, кто не учился или учился непрофильно (вплоть до относительно гуманитарных дисциплин), но при это весьма хорошо умеют программировать (обратите внимание, не знают, а именно умеют — тут как с плаванием).
    • +15
      Так равно же ставлю не я, а работодатель.

      Некоторые с возрастом становятся умнее и старше. Некоторые просто старше.
      Некоторые проучившись 5 лет получают знания и диплом. Некоторые только диплом.
      • НЛО прилетело и опубликовало эту надпись здесь
        • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          Человека можно оценить только по результатам его работы, а не по резюме, куда каждый что хочет, то и пишет. Зарплата часто назначается по результатам собеседования, которое проходит до того, как человека увидели в работе. Как результат — часто возникает ошибка оценки квалификации и вклада специалиста в работу, особенно если работодатель небрежно относится к собеседованию. Я делаю все, чтобы эта ошибка, если она возникнет, была в сторону кандидата — моего ученика.
          • 0
            >> Зарплата часто назначается по результатам собеседования, которое проходит до того, как человека увидели в работе.
            Неправда ваша, она обговаривается вначале. А что можно спросить вначале, либо алгоритмы, которым вы не обучаете, либо синтаксис языка.
    • +4
      5 учат не программированию в РФ ВУЗах, учат в основном искать данные и писать бумажки. Как говорил один знакомый «Дайте мне птушника с бутылкой пива в руках и за 3-4 месяца он научиться кодировать(програмировать), вопрос только как качественно».
    • +3
      Где это люди по 5 лет учатся? В ВУЗах если сложить обучение по профилю, то получится навряд ли более, чем пара месяцев в режиме 8 часового рабочего дня.
      • 0
        В техникуме.колледже, емнип, 1200 ак. часов за 4 года профильные предметы (если не относить к ним, например, теорию графов и прочую ВМ) — это около 6 месяцев в режиме 8/5. В вузе не думаю, что меньше.
    • +3
      Просто многие программисты ещё не знают, что они программисты. Достаточно рассказать им об этом, дать ман какого-нибудь языка, и дальше они уже всё сделают сами.
    • +1
      на мой взгляд не менее важно помимо квалификации быть ответственным человеком, который говорит и делает. Много талантливых специалистов не стоят того, чтобы с ними сотрудничать, поскольку на их слово и обещания положиться нельзя. Есть еще люди с низкими нравственными принципами, которым не место в коллективе. Не все упирается в знания и дипломы.
    • 0
      Я очень удивился, когда узнал, что мои сопотоковцы поступали на ПИ не совсем понимая, что такое программирование и думали, что их научат программированию. К тому же я наслышан о том, что часто после университета люди устраиваются на работу не по специальности / имеют очень фиговый скилл.

      Возможно 3 месяца нормального обучения человека с подходящими мозгами = 5 лет обучения в университете студента. Потом, в универе изучается много всякой ерунды, которая вообще не нужна. Это как минимум гуманитарные и общеобразовательные предметы (которые мешают обучению профильным предметам). Т.е. я думаю, можно сократить обучение в два раза — до 2-3 лет.

      Если выкинуть как-бы профильные, но ненужные предметы (т.е. к чему учить c++, если у работодателя вы будете писать на java, к чему учить архитектуру процессоров, если вы программируете на той же java) + учесть, что человек постоянно развивается, то умного человека вполне-таки можно за 3 месяца доучить до уровня junior'а.
      • 0
        Мне кажется что тут речь идет не о 5 годах в вузе, а о тех людях кто уже программирует 5 лет, живет этим, интересуется и прокачивается… являясь сеньором. И вот приходит такой с 3 месяцами основ языка и полутора годами в резюме и тоже сеньор.

        Хотя как говорили выше грош цена работодателю, если он не может отличить действительно хорошего спеца от дутого…
        • 0
          Ну тут уже дело в другом — просто один врет, а другой идиот. Мне кажется 3 месяца — не такой уж и фантастический срок для junior'а
          • 0
            Для джуниора возможно, при усердии и заинтересованности.
            днако я про «сеньора» из второй саксес стори. Она говорит о том, что человек получил «основы основ» джавы и «прометавшись» 8 месяцев по компаниям (во второй компании попал на проект, которому 10 лет… вряд ли он вник за 2 месяца глубоко в проект и делал что-то серьезнее фикса мелких багов) устроился сеньором в 3 контору. Может я конечно чего-то не понимаю, но сеньор должен знать не только основные конструкции языка, а знать какие-то фреймворки, библиотеки… да банально работа с БД, ОРМки, ГУИшные штуки((для веба по крайней мере) не говоря даже про хтмл и цсс… как-то минимально джаваскрипт)… паттерны проектирования, разбираться глубже в платформе, чтоб понимать, что где и как может стать узким местом и создать проблемы в производительности например… уметь проектировать масштабируемые системы и тд и тд.
            Когда человек пишет в резюме 3 года опыта, работодатель вроде как ожидает, что человек не только циклы и иф-елсы умеет писать, а работал и сталкивался с чем то большим и имеет более глубокие знания.
            • +2
              По-моему, глупо чего-то ожидать от такого абстрактного числа как «опыт работы». У каждого проекта/фирмы своя специфика и опты на одном может никак не востребован на другом. Я вот могу себе написать в резюме опыт программирования 25 лет, но пишу 2-3 года в зависимости от специфики проекта куда иду, а то и «без опыта». Думаю мало работодателей интересует, что я делал 10 лет назад на PHP3 или 20 лет назад на VC++, если пишу на вакансию Python-разработчика, на котором написал максимум пару тысяч строк.
              • 0
                Ну как же так, я не согласен. Опыт даже 20 лет назад даже на VC++ очень даже показателен и нужен. Программист с 20 годами реального опыта в других областях + немножко python и просто без опыта почти ещё не программист + немножко python — далеко не одно и то же, не?
                • 0
                  Говорят опыт на C++ плохо влияет на python-way :)
                  • 0
                    Ну тут, конечно, тоже всё верно) Но если понимаешь разницу между разными way, то всё гораздо лучше. А это тоже от разного опыта в какой-то мере зависит.
              • 0
                Я немного не то имела ввиду. Понятно что человек за 10 лет опыта может кардинально сменить вектор своей деятельности несколько раз (а может и не сменить конечно). И что опыт десятилетней давности не будет ключевым при приемене на работу, а будут смотреть на тот опыт который требуется для конкретной вакансии, а не просто на количество лет в сфере. Наверняка когда вы устраиваетесь на Python-разработчика вы опишете свои скиллы в питоне и смежных вещах, которые предположительно могут понадобится для новой работы, а то чем занимались 10 лет назад или опустите или упомянете вскользь. Но когда приходит человек и утверждает что 3 года занимался энтерпрайз системами на джаве, вряд ли его будут спрашивать по базовым конструкциям языка. Спросят скорее с какими технологиями работал, что знает… если он за 3 года дальше базовых конструкций не ушел, то грош цена такому разработчику наверное.

                Когда человек с 8 месяцами реального опыта после 3-х месячных курсов пишет 3 года опыта в резюме (2 саксес стори)… на 3 работах он вероятно слышал о каких то технологиях. (NHibernate, Spring и тд) и возможно даже поработал с ними, но маловероятно что он хорошо в них разбирается. Особенно учитывая что за эти 8 месяцев это как минимум 3 разных проект возможно с абсолютно разными используемыми технологиями. Интересно, что он будет рассказывать на собеседовании и нужен ли кому-то такой спец(хотя судя по второй саксес стори нужен). Хотя конечно это возможно самородок семи пядей во лбу, который денно и ночно сидит, глубоко и основательно капает и дотошно разбирается с технологиями на проекте =)
                • +2
                  Скажем так. Судя по всему, требования в вакансии просто были завышены. Если бы требовался действительно сеньёр, то 8-мимесячный опыт (вместо 3х лет) быстро бы вскрылся.
                  • +1
                    Да возможно, но тогда весь смысл саксес стори теряется… и если так, то он все тот же джуниор, который делает джуниорские таски, но называет себя сеньором, а это уже не саксес стори))
                    • 0
                      Только вот следующий работодатель может об этом и не догадываться. А это уже совсем не саксесс стори.
              • +1
                К тому же имея много лет опыта, пускай и с разными языками и технологиями, некоторые вещи становятся интуитивно понятными, новые технологии изучать несколько проще, потому что ты примерно представляешь как оно устроено, где у подобных вещей могут быть тонкие места, как примерно работают те или иные структуры, а свои догадки подтвердить или опровергнуть через интернет. По крайней мере вы будете знать что гуглить =)
            • +1
              Полностью согласен с вами. История про Сениора убила наповал.
              Скачущий джуниор с кучей гонора. Мне кажется что он просто не способен заставить себя вникнуть. И сдастся при первых сложностях. Опять убежит туда где проще.

              Senior — это лет 7-8 опыта. Глубокое понимание архитектуры, обязательное глубинное интуитивное понимание лучших практик, предвидение всех возможных проблем.
              А тут щенок заучивший синтаксис и уже столько гонора… Нет слов.
              • 0
                На хабре довольно часто пишут, что хороший джуниор становится сеньором за год-два. Я всегда поражаюсь тому какой я тупой, раз до сих пор не претендую :(
  • +2
    Как я заметил, для junior-кандидата важен возраст и образование. Почему, в принципе понятно. Но в моем случае это почти ставит в тупик. Мое хобби — Perl, Java и еще парочку ЯП лет уже как 5-7, возраст 27 лет, основная работа — системный администратор, программером никогда не работал. Решил попробовать сменить свою сферу деятельности, так на собеседования даже не зовут ;) Мол нет образования и слишком староват для джуниора ;)
    • +1
      Ну не знаю. А вы точно последовательно искали работу? Мы в свое время брали одно тестера, моего ровесника (те же 27 лет, любопытный и систематичный парень, очень адекватно впоследствии показал себя в нужных нам областях).
    • +4
      На junior-а по PHP меня взяли, когда мне было 34 года. С тех пор прошло 3 года, работаю в той же организации, мной довольны, я тоже доволен. Всякое бывает.
    • +7
      Хватит ныть, пишите код.

      Вам нужен аккаунт на гитхабе и пару вмерженных пуллреквестов, после этого будут приглашать.
    • 0
      начал работать РНР-джуниором в 31. Проработал уже больше года, полёт нормальный. Ваш возраст не может быть главной проблемой
    • 0
      Наглее напрашивайтесь и доказывайте, что того стоите. Я в 27 из другой сферы тестером тире джуниором пошел, сейчас (через пару) работаю в другой конторе полноценным прогером, «мной довольны, я тоже доволен» (с). И это, судя по ощущениям и амбициям, только начало. Хотя, конечно, ровесникам — уже техдирам — по-хорошему завидую.
    • 0
      Чтоб сильно на образование внимание обращали не замечал (правда не пишу туда, где оно в требованиях явно указано), а вот возраст, да, особенно мои 37. Правда, бывают казусы, что вместо junior предлагают senior после собеседования, узнав что фактический опыт программирования (не путать с опытом работы программистом) 20+ лет.
  • +17
    Уверен, сия статья звучит даже обидно для людей, много лет положивших на изучение сферы. Например, меня :-)

    С другой стороны, я прекрасно вижу, куда можно пристроить таких людей: корпоративный документооборот. Никаких вам алгоритмов и сложных структур данных, никаких хитростей. Просто книжечка по TDD, учебник по Джаве и хорошая память на паттерны использования стандартных фреймворков. И платят замечательно. Но я б сдох от скуки:)
    • +1
      И как часто джуниоры решают задачи оптимизации системы?
      ИМХО, джуниор должен:
      1 Изучать проект
      2 Много читать
      3 Много спрашивать и перенимать опыт коллег.
  • 0
    А вам зачем это? Просто по дружбе делаете или к себе в компанию людей приглашаете?
    • +7
      Дык курсы наверное платные
    • +4
      По дружбе. Когда я вижу друзей, которые вкалывают в два раза больше, а зарабатывают в четыре раза меньше, каждый раз начинается разговор:
      — А ты бы не хотел поработать программистом? Ты же реально умный. Может ты просто не на своем месте?
  • +20
    Выглядит как авантюра.
    И «саксес-сториес» такие же.
  • +53
    Слишком много позитива. Реальность другая, да вы и сами об этом знаете.
    Общий стиль и подача напомнила продажника обучающих курсов.
    Почем свой-то продаете?
    • +3
      вы крадете чужие мысли)
    • 0
      Скорее даже не курсов, а «тренингов» :)
    • +3
      Мне нравиться смотреть на мир позитивно. Я делаю только то, что приносит мне истинное удовольствие. Обучение друзей — одно из них. Платные уроки — нет.

      Статья писалась с целью узнать, будут ли статьи с подобными уроками востребованы и стоит ли их писать.
      • НЛО прилетело и опубликовало эту надпись здесь
  • +3
    картинки добротные :)
    • +3
      сообщество ru_comicstrip в ЖЖ или wumocomicstrip.com если предпочитаете оригиналы
  • +3
    «Понравилась» торговля по зарплате. С такими талантами нужно работать в продажах (и там это будет к месту), а не инженером.
    • 0
      Так из продаж она и пришла (почти). Вы там видели такие зарплаты? Я таких зарплат нигде не видел. Даже в IT не так уж часто. Умничка, одним словом.
  • +36
    Когда я прочёл, что работа «несложная» — я насторожился.
    Когда в списке даваемых навыков не обнаружил отладки, подрзрение переросло в уверенность — с программистами, увы, полученные в результате клепальщики кода не имеют ничего общего.
    И в итоге компания, нанявшая «молодых, перспективных сотрудников» попадёт в ситуацию, подобную описанной в oldmann.livejournal.com/225657.html

    С другой стороны, создавать отечественную конкуренцию вездесущим индусам — дело, всё-таки, полезное. Государственной, можно сказать, важности.

    • 0
      Важный вопрос — адекватно ли оценивают обученные люди свой уровень. Если да — то все хорошо, по необходимости (или просто по желанию) изучат и алгоритмы, и структуры данных и вообще включатся в нормальный процесс. А вот если они считают, что они крутые прогеры, изучив основы Java — то это печально и приведет к печальным последствиям для них самих и людей, их нанявших.
      • +3
        Если вы отвечали на мой комментарий, а не на пост в целом, то я писал несколько о другом.

        Мой богатый опыт общения с начинающими программистами говорит о том, что они попросту не подозревают о существовании такого понятия, как отладка.
        И в случае, если их программа не работает, варианта они видят два — либо поискать новый, совсем другой код, либо спросить у кого-нибудь — в чём проблема с имеющимся.

        В то время как мой богатый опыт программирования говорит о том, что умение отлаживать код — это один из самых важных навыков программиста, без которого создать и поддерживать что-то осмысленное попросту невозможно.
        • 0
          Я и на то, и на то отвечал, в принципе.
          Позицию Вашу разделяю полностью, но это тоже могут привить уже на работе — все-таки у джуниора должен быть некий официальный наставник, который будет ему что-то объяснять (иначе какой смысл в таком джуниоре — только как раз индусов и клепать).
          Отсюда я и сделал вывод, что, если человек изначально понимает, что он джуниор и знает только совсем «базовую базу» — основы синтаксиса и какие-то особенностей языка, то остальное выучить можно уже в процесс работы. И, кстати, мне кажется, гораздо эффективнее, чем на учебных заданиях, просто ввиду реальности задач.
        • +1
          так, давайте определимся что подразумеваете под словом «отладка»

          если умение пользоваться дебагером, то по моему это отнють не обязательный навык,
          вначале и я так думал: как же так, в vs__ для с++ есть такой хороший отладчик, как же люди могут кодить для linux без такого необходимого инструмента

          потом осилил умение в нужном месте добавить вывод лога, в итоге log + небольшая медитация над кодом с прокручиванием его в уме заменяет дебагер в 100% случаев.

          хоть профессионально занимаюсь java и тут на отладчики грех жаловаться, но как-то не испытываю необходимости в них, по скорости поиска проблем в работе опережаю тех кто сидит и жмет в дебагере «next», а для некоторых задач отладка неприменима в принципе (пример: небольшой игровой сервер на котором висит пару сотен человек онлайн, tcp соединения в котором гоняются данные, ошибка проявляется случайным образом, представить как я сделаю брекпоинт не зафейлив сессию я что-то не могу)

          p.s. страшно признаться, но так и не научился работать с дебагером для tomcat, jboss. только log, только hardcore
          • 0
            Только вот грамотно, в нужных местах и на нужных уровнях писать логи — это отдельное умение. Точно так же приходящее с опытом. :)
          • +2
            В упомянутом контексте c++. Лог не может заменять дебаггер в 100% случаев, даже когда вы имеете контроль над кодовой базой. Когда же вы по каким-то причинам не имеете контроля над кодовой базой, или не имеете возможность получать отдачу от изменения кода, без дебаггера и/или средств динамической инструментации (и умения этим пользоваться) не обойтись.

            Может быть для Java умение пользоваться отладчиком и не актуально. Но я как-то в этом сомневаюсь
            • 0
              реальные контексты с которыми сталкивался лично:

              контекст1: написание файловой системы с поддержкой дедупликации для linux (такой небольшой just for fun), работа в виде модуля, при большом желании я понимаю что можно зарулить remote debuggin с помощью qemu + gdb

              контекст2: проблемы с выводом графики и звука на андроид девайсе, когда пытаешься спортировать на свой девайс свежую версию, изменения в ядре + сишных либах, удаленный дебаг вообще недоступен, так как все эти действия проходят еще до инициализации интерфесов сторонних типо usb

              Я не отрицаю, что умение пользоваться дебагером полезное умение, в некоторых случаях он действительно полезен, хороший пример анализ core dump после краха программы, но говорить: «не умеешь использовать дебагер, то не умеешь работать» — неправильно
              • +1
                Ну. Не умеешь пользоваться дебаггером — не проанализируешь кору упавшего/повисшего у кастомера сервиса. Подумаешь — добавим логов, подждем пока еще раз грохнется ))

                Впрочем, действительно. Без многого можно обойтись.

                В детстве я все трейсил с printk/printf. Иногда лампочкой. Иногда потом диффал трейсы диффом. Задачи действительно можно решать, да.
                • 0
                  походу мы все-таки поняли друг друга =)

                  я против: «у нас что-то не работает, ставим точки остановки и начинаем клацать next пока не вывалиться ошибка», после этого повторяем еще сто раз, сама проблема в мозгу смазывается попытками уследить где и что меняется, большинство людей которые работают в дебагере именно так и поступают.

                  полностью согласен с методом: «падает вот тут, добавим несколько контрольных точек, уже между ними делаем next и смотря в код пытаемся понять что не так», но вот только этот метод в большинстве случаев покрывается добавлением в нужных местах вывода логов + по логу можно быстрее оценить как развивалась ситуация в динамике, а время освободившееся потратить на обдумывание проблемы.

                  core dump эта классика, если работаешь с системами которые не поверх каких vm, то must have, к тому же частенько анализ дампа требует знаний asm, так как собранный без дебаг инфы бинарь так просто не посмотришь =) а это уже соооовсем другой уровень навыков, а не junior после курсов

        • –2
          Я имея сравнительно небольшой опыт позволю с вами не согласится. Отладка это зло, которое помогает достаточно быстро получать желаемый результат, а именно подгонять желаемое к действительному. На самом деле, если бы мы программы писали на листочке бумаги, а потом результаты старательно переносили в компьютер, думаю качество программ бы значительно выросло. Может в PHP не так?
          • 0
            Значительно бы выросло потребление бумаги. Качество — скорее только ухудшится.
          • 0
            Ахахах, интересная точка зрения :)
            И если абстрагироваться от ужасной формулировки, то что-то в этом есть :)

            Но, на самом деле, такие «минусы» — ничто по сравнению с пользой от отладки, которая в принципе делает возможной написание и поддержку сложных программ. «Из головы», увы, всё предусмотреть невозможно.
    • 0
      В описанной истории налицо просчет менеджмента.
      А каким должен быть java junior по вашему мнению?
    • +6
      Вот вот, особенно впечатлила последняя история про Senior developer:
      На свою последнюю работу, устроился на позицию senjor java developer. Три года работы в резюме внушали уважение.

      Первая мысль после прочтения была: Боже пусть мне не приведется никогда работать с кодом написанным Senior Developer обученным за 25 уроков и имеющим «три» года опыта.
  • +24
    Пока не открыл спойлер «Только самое нужное», меня не покидало ощущение, что вы учите не столько программированию сколько способам выдать себя за программиста. Чем-то навевало методологию школ пикапа. Целеполагание, работа над самооценкой, обильные сакцесстори, призванные снять барьер «врать плохо», ненавязчиво переведя вранье в ранг нормы, а само, собсна программирование, за спойлером. :D
  • +8
    Это у меня проблемы с арифметикой при подсчёте стажа в последней success story или у автора?
    • +15
      Там не в арифметике дело, а в том насколько хватит наглости)
  • +19
    Почему этот текст так похож на стандартные рекламные тексты mlm-щиков? Кстати какие страна/город имеются ввиду?
  • +3
    Самообучался программированию на PHP и Ruby примерно по похожей методике. За два месяца почти с нуля довёл уровень до приемлемого junior-а, взяли на работу.

    Отправлял резюме, получал тестовое задание, выполнял. Первые несколько завалил по срокам, потом начал успевать, потом 4-5 собеседований и всё.
  • +5
    По похожей схеме я так научил 8 человек (сфера — веб).
    Только из них половина этого даже не помнит, половина из оставшихся думает что они сами.
    И только 2 из 8 понимают сколько времени я на них потратил.

    Не знаю как у вас, но у меня явно не получилось. Программисты получились очень заточены под то, что я рассказывал. Шаг влево/вправо — ничего не получается или сильно тупят.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Не отрицаю. Сам так думаю.
        Нет у них той интуиции и «победоголизма»…
  • +46
    Читали, ржали всем отделом.
    • –2
      А скольких людей обучили вы? Давайте обменяемся опытом, сравним методики. Если у вас получится лучше, я внедрю ваши методики и сниму перед вами шляпу.
      • +5
        Любой Senior/Team lead часть своего рабочего времени фактически занимается обучением членов своей комманды и я Вам могу совершенно точно сказать что даже за год вырасти с Middle Java до Senior Java могут единицы. И это год полноценной работы по 8 часов. Я допускаю что за 25 уроков до человека можно донести основные принципы построения программ, но не больше.
      • 0
        Спросите у ваших обучаемых чем HashMap отличается TreeMap. Какой лучше использовать, когда. Только пусть они сами ответят, напишут на листочке. Просто интересно…

        Без понимания каких-то основ, они никогда не улучшат существующий код. Хотя согласен скопипастить и добавить новый они точно смогут.
  • +30
    А вы сами бы их наняли?
    • 0
      На java junior? Без сомнений. Если человек хочет и любит учиться — ему всегда будет место в это жизни.
      • +2
        А к себе в комманду взяли бы? Если бы Вы были у них Team lead и отвечали за качество конечно кода?
  • +22
    >>В итоге получила $3600.

    Хороши у вас в Зимбабве запрплаты, ой хороши…
    • +1
      Это же не отсталая Москва, а Зимбабве, всемирная кузница программистов. Естественно заплата $3600 — это немного.
      • +1
        Ясное дело что немного, это же только начало. Ведь зимбабвийские программисты должны мочь «через 5 лет работы… покупать себе машины или квартиры».
    • 0
      Ну я бы не сказал, что так уж хороши, вики, например, сообщает, что в Зимбабве банка пива 4 июля 2008 года в 17:00 по местному времени стоила 100 млрд зимбабвийских долларов, уже через час она стала стоить 150 млрд.
    • –1
      цыфра кажется сказочной… хотя если Москва… В Киеве, сложно на такую устроиться
      • 0
        В Киеве, сложно на такую устроиться. Не все конторы дают. Зарплаты киевские.
        • 0
          Я работаю в Днепропетровске, и эти цифры повергли меня в шок :)
          Я стал думать, что чего-то я недополучаю.
          • 0
            dou.ua/lenta/articles/developers-salaries-may-june-2012/
            Там внизу страницы есть калькулятор на основе статистики зарплат.
            Выберите Kiev, Senior Developer, Java.
            По личному опыту скажу, что примерно так все и есть.
            • 0
              Прекрасный калькулятор. Ставлю 6-7 лет опыта и c++. И выходит что software engineer получает больше чем эти ваши senior software engineer. Более того, есть даже некто с завышенной самооценкой, что на этой вилке опыта продолжает считать себя junior.
              • 0
                Ну так по анкетам вообще оценивать бессмысленно, нужно оценивать по открытым вакансиям (и понимая, что люди, которые уже работают, получают несколько меньше — так как задача открытых вакансий их «переманить»). В анкете я могу написать, что хочу пару лямов за месяц, и знаете, вот, ничего не потеряю, ведь и так уже работаю. Ровно тот же принцип, что и с сайтами знакомств, где, ежели представительниц прекрасного пола в несколько раз меньше, чем мужчин, они начинают нереально «наглеть», и завышать самооценку и требования до заведомо бессмысленных пределов, чтобы как-то отсеять «поток». А «поток» для неплохого резюме, и цифры, немного ниже рыночной — просто катастрофа: могут в день по несколько раз звонить с предложением придти на собеседование. Особо раздражает, когда скажешь что тебе это не интересно, а через неделю снова перезванивают.
  • +24
    Один человек никогда не верил в Программирование. Однажды он тяжело заболел. У него не было глаз, ушей, ногтей, левой ноги и была дырка между плечами. Тогда он отучился у меня Три месяца. Два занятия в неделю по четыре часа. Всего 25 уроков, и в ту же минуту излечился.
    • +6
      … АО «МММ».
      • 0
        Скорее ООО «Овес»
  • +2
    Несмотря на свой не особо богатый опыт я уже достаточно давно задумываюсь о том, что многие мои знакомые могли бы реализовать себя в той же сфере, в которой работаю я. Веб программирование. Уровень может быть самый разный, начиная от самого самого минимума и до каких угодно высот.
    Задумываюсь я об этом по нескольким причинам.
    1. Выучить минимум который будет приносить деньги — может каждый из них.
    2. Минимум позволит им получать сопоставимые с нынешней зарплатой или даже большие деньги.
    3. Есть перспективы роста.

    Но к моему сожалению никто этого не хочет. Деньги, график могут привлекать, но нежелание двигать жопой оказывается куда более сильным фактором. Увы.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Я с горечью обнаруживаю, что таких большинство. Или мне просто так везет. Сидит себе человек в конторе, денег мало, работа паршивая, он обо всем этом говорит и… ничего не делает. Вообще. Не ищет нового, не пытается в свободное время что-то изучить или ознакомиться. Я не могу понять почему. То ли из-за лени, то ли из-за страха, то ли из-за отсутствия веры в себя. Но таких, к моему сожалению, очень и очень много. :(
        • 0
          Некоторые предпринимают, но очень редко. Получив один отказ надолго оставляют попытки, пока в следующий раз что-нибудь не пнёт. Логика такая (по себе сужу) — знаю слишком мало, нужно ещё годик почитать, поучить и т. п.
  • +13
    у нас таких «специалистов», особенно из последней истории, просекают моментально, а с враньем в резюме потом вообще годами не отмыться и работу не найти.

    несколько лет, после армии проработал в фирме своего отца, причем работал а не зарплату получал, но вырос из того чем занималась фирма, захотелось более серьезных дел. На интервью на следующем месте изо всех сил старался не сказать что работал в отцовской фирме, потому что это бы отрезало 3 года опыта. Но HR это все равно просекли, и даже сейчас, 6 лет и 3 очень известные международные фирмы спустя, на интервью меня спрашивают именно про ту работу, явно чтоб увидеть совру я, буду юлить или нет. Откуда каждая девочка-HRщица знает об этом я без понятия, но факт имеет место быть.

    вообще статья из серии «как я всех наеобманул, и какой я крутой».
    • +5
      > Откуда каждая девочка-HRщица знает об этом я без понятия, но факт имеет место быть.

      Так может просто не стоит об этом всем рассказывать на популярных ит-ресурсах, если не хотите, что бы все знали? :)
      • 0
        наоборот, все прозрачно, и скрывать мне нечего. а рассказываю я об этом на публичном ресурсе, в первый раз (да еще и ресурс не целевой страны поиска, так шта...)

        я все веду к тому что вранье в резюме может аукнуться, причем очень крепко. серьезные фирмы такие вещи проверяют, а если они этого не делают, то весь HR надо поувольнять. Если нет опыта то есть более честные способы его добавить — расписать поподробнее проекты во время учебы например, поучаствовать в каком нибудь опенсорсном проекте, пробиться на стаж или в родной альма матер что нибудь сделать.
        • 0
          Может у них своя закрытая социальная сеть, где на каждого кандидата есть досье? :)
          • +1
            весь этот IT — одна маленькая деревня. на определенном этапе становится вообще очень сложно начинать искать новую работу, потому что скорее всего на работе настоящей об этих поисках узнают очень быстро.
  • +49
    Так вот кто ко мне на собеседования ходит. Я то думаю, откуда они берутся?
    • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Как я вас понимаю.
  • +15
    не верю (с)
    • –1
      Накакого негатива. Спасибо. Самый лучший коментарий.

  • +25
    Так и тянет подхватить:

    «Я обучаю пилотов самолетов.

    За три-четыре месяца.

    Даю только основное. Обучение провожу на Microsoft Flight Simulator.

    Полеты ночью, в плохую погоду? Это все не нужно. „

    И т.д.

    Дилетантизм это прикольно, но все-таки не прокатывает…

    • +3
      Flight Simulator — это вуз. Вроде и при деле, но 5 лет прошло и никакого опыта.
      Я же сажаю в старый кукурузник, но сто часов вы уменя налетаете, даже если у самолета отвалятся крылья.
    • 0
      А вы не видели тот ролик, где задрот MSFS под надзором инструктора пилотровал настоящий самолет?
  • +24
    То есть устроиться без вранья в резюме вы бы не смогли?
    • 0
      Я смог. Свою первую работу я искал четыре месяца. У моих учеников нет столько времени. Им нужно снимать квартиру. У некоторых семьи.

      Половина айтишных вакансий имеют вид: 22 года, В/О и 10 лет опыта работы. Людей без опыта работы просто не пригласят на собеседование, если на одну вакансию наберется 10 претендентов с опытом.

      Требования к опыту сейчас как и к В/О: чтобы было. Никто его не проверяет, ничто он не значит, никому он на самом деле не нужен.
      • 0
        Вообще-то 10 лет опыта дают понимание паттернов, знание множества библиотек и фреймворков, понимание даже смысла которых (спринга, например, или, тем паче, аспектов), новичку не светит. Это вещи, на которые и правда уходит большое количество времени. И именно поэтому в требованиях стоят те самые годы опыта.
        • 0
          Да не фига они не дают, если эти 10 лет заниматься одним и тем же или скакать по верхам «множества библиотек и фреймворков».
  • 0
    Какая замечательная статья, а главное очень мотивирующая! Сам месяц назад решил изучить язык программирования, для смены проф. деятельности (это в идеале), выбрал для себя Java. Но через неделю разленился, думаю тут уже нужен реально учитель и само собой желание. Думаю начну опять изучать потихоньку, и буду параллельно курсы искать какие-нибудь. Может заодно и книжку посоветуете для новичка что бы лучше было. Опыта ноль, сам только изучал html\css.
  • +1
    Всё замечательно, если бы не вранье про опыт работы.
    • +1
      Считайте это тактической военной хитростью. А если бы вас спросили: — Какие у вас недостатки? Вы бы тоже начали выкладывать все что думаете? И получили бы работу, да?

      Если кандидат «находчив и смел», вполне возможно, что он заслуживает шанса на работу. Разве нет?
      • +1
        Если кандидат подходит по уровню, то мне например все равно какой у него опыт работы. Взял в проект junior-a без опыта и я только через пол года узнал, что он недавно понял, что имя класса с названием файла должно совпадать. Хотя при этом этот junior написал свой Layaut(er) на Swing, прикрутил сканер к нашему приложению, разработал свои компоненты, аннотации… и за год стал очень уверенным мидлом.
  • +8
    Ах, это же автор эпического «10 мифов современного образования». Всё понятно тогда. Очень хотелось бы пообщаться с одним из «экономист/бухгалтер/историк», из которого вы за 25 уроков вырастили типа Java-программиста.
    • –1
      Он самый. Имено написание этой статьи и вынудило написать статью про 10 мифов. Как так получается, что мои ученики после 3 месяцев обучения работу найти могут, а выпускники университета — нет?
      • +3
        Выпускники университета тоже могут, если прикинуться так и сяк, наврут в резюме и прочее и прочее, о чём Вы сейчас написали. Другое дело, какие они на деле специалисты и как скоро это запалят и с треском выкинут. Я лично таких повидал, так что не нужно мне тут рассказывать :)
      • +2
        Кто что-то знает и из себя представляет может и после университета. Большинство моих однопоточников работают со 2-3 курса, взяли же их как то без «вымышленного» опыта в резюме и ВО. Хотя вы может конечно не о тех вузах говорите =)
  • +4
    История про то как надо просить повышения очень опасна и нереалистичная. Работодатели имеют обыкновение созваниваться и обоюдно посылать на * * * таких хитрожопых работников. Мне случаи, по крайней мере, известны. Про то, что приходить в 11 и уходить в 5 — это просто сказки какие то. За посещением все следят, а есть еще и те, кто штрафуют и программистов тоже. Таких знаю две конторы. По чем нынче 25 уроков Явы?
    • 0
      Про повышении ЗП согласен, сразу на в лес таких отправляют. Подводят обе компании, то пойду то не пойду, дайте больше. Оба работодателя послали бы
    • 0
      Работаю джава-программером, уже три года как обязателен — один день в офисе, остальное по желанию.
      • 0
        Как называется ваша компания, если не секрет?
        • 0
          УРАН ИБРАЭ РАН
    • НЛО прилетело и опубликовало эту надпись здесь
      • +1
        могут себе позволить вести действительно крутые спецы

        Я думаю действительно крутые спецы не будут дергаться из-за двухсот долларов на таких суммах. Чай не школьники.
        • НЛО прилетело и опубликовало эту надпись здесь
          • +1
            Полагаю деньги в данном случае как основной приоритет это не очень хорошо. И специалиста это характеризует не лучшим образом. Если для него интерес к проекту, сложности с переездом и адаптацией в новом коллективе, возможные проблемы и так далее, в общем все что связано с текущей работой и все что связано с переездами стоит меньше той самой разницы (еще и на такой сумме), то это говорит о том, что человек, наверное, местами жаден, а еще он с тем же успехом уйдет из компании в которую его переманивают, когда ему предложат на 200$ в другом месте. Для компании, боюсь, это не лучшая характеристика. Постоянство дорогого стоит.
            Если речь идет о том, что там проект интереснее — другое дело. А если вопрос только в этой разнице, то как-то не слишком это хорошо.
            • +2
              Вообще, многие работодатели на это упирают: мол, дорогого стоит лояльность, люди, которые работают чисто за деньги — они плохие… Чушь!

              Все честно и просто в мире. Будет зарплата хорошая — не будут уходить, будут даже ЖЕЛАТЬ устроится. Те же банки, где много скучнейшей работы, и где прекрасно платят… Или всякие консультанты по SAP.
              • +1
                Лояльность сотрудников не покупается деньгами. И да, она дорогого стоит. Работодатель, который платит много денег, но при этом полный мудак — он же плохой, да? Так а почему тогда наемный работник, который работает только за деньги и при этом ему абсолютно плевать и на проект и на все остальное и которого интересует только зарплата — хороший?
                Двойные стандарты, ИМХО.
                На мой взгляд дело как раз в лояльности очень многое зарыто и многие этим пренебрегают. Как работодатели так и их наемные работники. И очень зря.

                Будет зарплата хорошая — не будут уходить

                3000 вроде как хорошая зарплата. 3200 конечно лучше (почти на 7 процентов лучше!), но ведь и 3000 — хорошая.
                Те же банки, где много скучнейшей работы, и где прекрасно платят…

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

                У меня вот такое место, что мне даже если в полтора раза больше денег предложат — я не побегу туда.
              • +2
                Случай из практики. Америка супермаркет жара 40 градусов, помойка, прогнившие овощи и просроченный майонез. Дают задание убрать — все люди делают такой вид, что какого фига мы будем это делать. Выходит босс, говорит- я вам заплачу в два раза больше за это. Все люди делают спокойный вид и идут убирать это «дер....»

                Когда зарплата разнится от 5-30 процентов- люди еще думают, как что итд. Если уже выше- то люди готовы делать и им это даже морально нравится.
                • +1
                  Не новость, так все и обстоит. В разумных рамках почти все имеет вполне конкретную цену.

                  Просто если мне предлагают неинтересную работу, то я обычно отвечаю: «это обойдется вам настолько дорого, что проще найти кого-либо другого». В итоге получается, что и на зп не жалуюсь, и работа интересная.
      • 0
        я вот не понимаю такого подхода, может в корпоративном секторе это нормально, но мне такой подход не нравится.
        Если мне отказали повышать зарплату — значит либо меня недооценивают, либо я себя переоцениваю. В любом случая именно с этого момента я буду начинать искать новую работу.
        Дальнейшие способы «перекупки» с поднятием ЗП я бы игнорировал — я же приходил уже с просьбой. В любом случае я не персики на базаре и такое поведение расцениваю как неуважение.

        Но это личное дело каждого и знаю несколько человек, которые считают это нормальным. Надеюсь не прийдется работать в корпоративном секторе.
    • 0
      Это не история о том как надо просить повышение. Это история о том, что и так бывает. Это две большие разницы.
      Но, ИМХО, про такие случаи надо знать: в жизни всегда есть место риску.
  • +2
    Сказка какая-то
    • 0
      Хочу показать людям, что есть и альтернативные пути. Кто-то вбил себе в голову, что деньги достаются тяжелым трудом, и вкалывает за копейки. Кто-то уверен, что ему нужно знать теорию графов, иметь В/О и пять лет писать свои проекты, чтобы пойти работать джуниором.

      Чем больше альтернатив — тем лучше.
  • +4
    Выучить Java не проблема. Со Spring'ом, Hibernate'ом и прочей тяжелой требухой разобраться проблематично. До сих пор в них хорошо не разбираюсь. Да еще и к тому же over 9000 веб фреймворков, в которых ковыряться нужно по мере надобности. Но этот, так сказать, особенности платформы. Еще всякие Ant'ы, Maven'ы, в которых по ходу дела придется разобраться. Ну и Weblogic на закуску или еще что по-хлеще, если это Web и организация по-солиднее.

    P.S. подскажите, где это платят по 3600 баксов девелоперам в месяц ибо, в стране где я работаю 2000 получают разве что только топ сениор девелоперы.
    • 0
      *простите, я забыл добавить, что 2000 это в евро, что составляет примерно 2400-2500 баксов на данный момент
      • 0
        у нас хороший джава девелопер может просить в районе 5к евро, а народ знающий более низкие уровни и RT/embedded и до 10к спокойно дорастает
        • +2
          у вас — это где?
          • +1
            Походу товарищ не с этой страны, и уж точно не из соседних :)
            • НЛО прилетело и опубликовало эту надпись здесь
            • 0
              ага, немного из другой, причем не в одной поработал.

              хотя насколько я знаю, в Москве зарплаты уже вполне достигают стандартных по всей остальной планете
  • +4
    Почему в метках и\или списках хабов вы не указали Я пиарюсь? Это было бы вполне здраво и логично, учитывая, что кроме мотивационных моментов (описание вполне очевидных вещей) по сути был только пиар и описание лишь Краткого содержания первого урока по Java явное тому подтверждение.

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

    Хотя, если у вас задача именно набрать падаванов, то последний абзац… в общем понятно
    • +1
      Мне очень понравились результаты полученные моими учениками. Я собирался сделать серию обучающих статей на хабре. Целью поста было поделиться опытом и полученными результатами, а заодно узнать есть ли потребность в таких статьях.
      • 0
        С огромным удовольствием прочитаю!

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

        По поводу обмана скажу так: «Everybody Lies»

        Главное не отчаиваться, а затея правильная и хорошая, если было желание научить, а не нажиться на чужом легковерии.
  • +5
    java.io.factories.Factory<Ape>.createOutputStream().add(new Ape[10]);
  • +8
    Ужас! И как теперь жить руководителям маленьких IT-контор? Открыли глаза на источник этих… ПРОГРАММИСТОВ!

    И так утомили «соискатели» приходящие типа с «опытом работы» в БОЛЬШИХ конторах, где они 3 года перекладывали кирпичики с одного места на другое…
    Даешь такому возможность самому заняться новым проектом, что-то придумать — и всё! Тупик! Главное вовремя уволить, чтобы не попасть на совсем большие деньги.
    А ведь приходят и ещё «стопицот» денег просят, мол а ТАМ мне платили чуть меньше, а к ВАМ иду, т.к. стало скучно… но блин, ПОЧЕМУ я должен платить эти мегаденьги за просиживание стула и ожидание падения следующего кирпичика?

    :)
    • 0
      Пришло в голову… Может даже немного не в тему.

      А вы понимаете разницу между опытом работы в крупной компании и небольшой? В маленьких конторах программист часто размывается, превращаясь в мастера на все руки, но очень поверхностного.

      В крупных же — при определенной щепетильности — имеется возможность развиваться в интересном тебе направлении.
      • +1
        Прекрасно понимаю. Так что же им не сидится тогда в больших компаниях, а они приходят к нам с пояснениями что там было скучно?

        Не так давно приходил соискатель. Работает в большой компании, уже 3 года. Получает там столько же денег, сколько у нас стояло в вакансии. Хочет на 10 тыс.р. больше. Решили пообщаться… на простейшие вопросы по C# ответить — не может. Причем вопросы именно по языку, ни о каких алгоритмах даже речи не шло… После собеседования сам признался что да, ничего он получается не знает, но… будет искать другую контору, где ему за эти «знания» дадут ожидаемую сумму.

        Получается, что он так наразвивался в своём направлении, что всё — мозг уже отключился совсем? :)

        В небольшой компании как раз множество различный задач позволяют развить голову, если она есть.
        Я уже не говорю про финансовую сторону… которая может получиться значительно выше, будь ты толковый, разносторонний программер, не ждущий когда тебе всё разжуёт тимлид, клиент или ещё кто-то… читай «мамочка».
        • +1
          Большие компании они такие большие. Ясное дело, что там много лишнего и отчасти избалованного народу.

          Но некоторые классы задач при меньших масштабах встретить в принципе невозможно. Небольшие фирмы гораздо реже занимаются вещами, эм, «на грани», все чаще речь идет о мейнстриме.

          Да и без конца настраивать софт на серверах, разбираться в установке/сносе всяких левых БД — дело полезное только в очень умеренных количествах.
    • 0
      Если руководитель маленькой IT-конторы не в состоянии адекватно оценить соискателя (а ведь он точно знает — кто ему нужен, для какой работы и с какими скилами), то, увы, ему уже никак не быть…
      • 0
        Речь немного не о том. А про соискателей, приходящих из больших IT-контор, с навыками, как описано в статье выше, и с финансовыми ожиданиями как у президента небольшого холдинга.

        А уж отсев по результатам собеседования и тестового задания — без проблем.
        Часто жалко потраченного времени на подобных «гениев».

        Кстати, личное наблюдение: пришедшие из больших контор соискатели, которые даже более менее хорошо прошли собеседование, в большинстве своём не выполняют простейшее тестовое задание. Причем не от того что не могут… они просто не хотят этого делать. Откуда-то берется у них такое ощущение, что должны брать их и так, а делать какие-то задания, тратить на это время, пытаться что-то доказать работодателю… нет, это удел… не их. Других. Зачем что-то доказывать, если и так возьмут не в эту, так в другую организацию, без всяких мучений?
        • 0
          Занятно то, что «большие конторы» тоже сталкиваются с аналогичной проблемой. Как правильно было замечено в статье (да и не только) начиная с уровня middle спрос превышает предложение. Грамотные спецы — так и вовсе на перечёт, и не редко знают друг друга по нику/имени, а то и вовсе в лицо. А так — всё от человека-соискателя зависит. Рыпнулся с насиженного места — теперь ищи работу, где за «ничего не делать» будут платить больше. Ну или учись работать. Тут уж не знаю, что проще… Это добавляет много головной боли тому, кто собеседует но… А что делать? Да, а времени — увы, жалко…
    • 0
      Вот вам другая сторона: все программисты когда-то были непрограммистами. Да-да.
      И за спиной каждого из них стоит человек, который привил любовь к программированию. Желание расти и быть программистом. Помогал учиться и объяснял. Кто-то вырос без всего этого, и если я вижу, что такая работа подходит человеку, то готов помочь. Разве вы не сделали бы такого для своего друга?
      • +1
        Я наверное старомоден… и считаю что хороший, увлеченный этим, программист получается не просто так, а вырастает, т.е. сначала это хобби, увлечение, впитывает новую информацию как губка… далее переходит уже в работу. А так получается — не знал ничего про это программирование, и вдруг бац! Прослушал краткий курс и всё, готов программер…

        Роботы это, а не программисты :(
        • 0
          определенно предрасположенность должна быть к программированию, иначе это будет сизифов труд
    • +1
      Может как-то не так вакансии составляете? По C# встречались такие, что формально по ним смог бы работать после пары дней повторения синтаксиса, повторял, приходил на собеседование и успешно его заваливал. Например в требованиях на C# junior в вебе стоит что-то вроде C#, HTTP, HTML/CSS/JS. Синтаксис C# повторяю, прихожу, спрашивают по C# — отвечаю, спрашивают про HTTP — отвечаю (на одном таком собеседовании похоже удивил собеседующего на вопрос про кэшировании рассказав о etag и if-modified-since, он похоже только о expire знал), а потом говорят «напиши hello world для веба под MVC» — я спрашиваю «CGI или сервер, слушающий 80 порт писать?», а на меня смотрят как на идиота и говорят про ASP .NET MVC или как там его, о котором ни слова не было в вакансии, равно как и о любом другом фреймворке — я ещё удивился когда вакансию читал — для PHP часто 2-3 фреймворка указывают, а тут ни одного, я и не готовился.

      • 0
        Обычно стараемся описывать подробно вакансии. Четко что необходимо, а что — желательно знать.
        И если человек ищется под конкретный проект, то кратко проект описывается уже в вакансии, и указано с использованием каких технологий его предполагается реализовывать.

        Вспомнил ещё одного уникального соискателя :) Придя на вакансию по C# он сказал что планирует изучить две вещи: ассемблер и массаж, т.к. когда-то поставил себе такие цели. Занавес :)
  • +21
    Ребят, вот смех смехом, а если задуматься по-серьезному, давайте оценим масштаб трагедии)
    Если применить простую математику, то становится ясно, что эти 25 уроков умещаются в академический семестр. Если человеку требуется писать всякого рода GUI, то математика и даже здравое представление о том, как работает компьютер не нужно => да, скорее всего такой человек сможет найти простенькую работу и работать, клепая юзер-интерфейсы.
    Я не зря привела пример с академическими часами, ибо работаю в вузе и тут куча таких студентов, которые прослушали «25 уроков» и считают, что они состоявшиеся программисты на C/C++, Java и т.д. Самомнения у этих людей достаточно, иногда даже оно срабатывает при приеме на работу.
    Но вот как только дело доходит до настоящего проекта, вот тут и вылезает все наружу. Такими «падованами», которые забивали на матан, теорию алгоритмов и прочие «ненужные» предметы, пишутся системы и допускаются такие ошибки, от которых волосы на голове шевелятся. И что самое паршивое, все что они «накодили» приходится убирать старшим прогерам, когда они с матом начинают лезть в код и разбираться, почему не работает.
    От сюда вывод Java — это инструмент, в каком-то смысле философия, но знания конструкций Java еще никого программистом не сделало. Поверьте мне, имею много примеров перед глазами.
    Автор очень грамотно написал статью, закрыв все узкие места фразами «Переучиваю, только если вижу, что человеку такая работа подойдет», «Java — один из самых легких языков для изучения» вот тут, простите, ржал конем, и т.д.
    Я лично считаю, что написанное — просто пиар.
    Свое скромное Фи к этой статье хочу закончить цитатой: «Если просто учить чему-нибудь человека, он никогда ничему не научится», –Бернард Шоу.
    • –1
      как студент хочу полностью согласиться. на самом деле зачастую даже курса прослушанного и сданного на отлично не хватает. а насчет важности некоторых предметов глубоко задумываешься, когда попадаешь на какую-то проблему ирл. сейчас перечитываю парочку вещей который были в программе, потому что с некоторыми вещами сам думал что они не особенно пригодятся. нужен хорошее представление того что и как происходит на всю область и действительно глубокое в твоей специализации.
    • 0
      У нас в компании за каждого приведенного java-программиста дают бонус от 1000 до 4000 долларов. Знакомые джависты быстро заканчиваются :) Поэтому некоторые бросают рекомендовать знакомых, некоторые вот начинают переделывать непрограммистов в программисты. Мне кажется, что суть статьи заключается как раз в привлечении новых желающих, т.к. желающие среди знакомых закончились…
      P.S.
      Я сам привел в компанию трех человек, которые успешно работаю java-девелоперами. В принципе, согласен со всеми плюсами профессии… Но на хабре такую завлекалочку публиковать я бы не стал…
      • 0
        Впрочем, чего это я… Пусть лучше джавистов становится больше…
    • +1
      Вы удивительно мудры для 20 лет! Не могу добавить ни строчки.
    • +1
      Чтобы сделал я, если бы узнал, что где-то учебный процесс поставлен лучше чем у меня? Изучил и внедрил!
      Что делаете вы? Критикуете. Гениально!

      Я учу людей. Добровольно. Бесплатно. Вкладываю душу. Получил результаты, о которых в вузе и мечтать не мог.
      Все мои ученики набираются опыта и растут как специалисты. Одна ученица дорасла уже до тимлида. Это ли не показатель?

      Вы меня критикуете, потому что, вы за это время не смогли бы обучить человека? А я смог! Так кто из нас плохой учитель?! Это ваши студенты «слушают» уроки, а мои — отрабатывают на 200%!

      ИМХО, университет только и умеет, что учить учиться.
      • 0
        Зато даже плохие студенты хороших вузов слышали про многие полезные вещи. Да, университет не научит быть хорошим программистом, но даст некоторые знания, которые позволят в какой-то момент стать лучшим. И программист без математики — не программист а тупо (быдло-) кодер.

        Ну серьезно, мы докатились до того, что на собеседованиях частенько «сложный» вопрос, на котором заваливаются «новички» — какая сложность доступа к элементу хеш-таблицы. На что могут ответить (и были такие «кадры») — «даа это не очень сложно!». И уж какая там теорема о рекуррентных соотношениях для анализа сложности рекурсивной функции, вызубрили, что Merge Sort работает за O(nlogn), а кстати что такое О?

        Как конечные автоматы помогут произвести поиск подстроки в строке? Да ну бросьте, есть же str.find().

        Что такое реляционная алгебра? Да зачем это, если есть SELECT FROM (и тупо вызубриваем ряд полезных случаев).

        А скачанный с codeproject метод Ньютона почему-то плохо работает, и дни отладки ничего не дают. Зачем нам знать критерии сходимости метода?

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

          Кодер — это не так плохо, это вполне уважаемый и достойный род занятий. Он ничем не хуже, чем программист. Бухгалтер — тоже не хуже, чем программист.

          Быдлокодер, скрипт-кидди — это плохо, но кодер != быдлокодер. Как плохой бухгалтер, надеюсь, разница заметна.

          Но, программист — это совсем другое. Программист — это тот, кто владеет и математическим (алгоритмическим) аппаратом, и навыками кодирования примерно в равной и хорошей степени.

          Впрочем, для большинства далеких от этого, любой «оператор ПЭВМ» уже программист.
          • +4
            > Но, программист — это совсем другое. Программист — это тот, кто владеет и математическим (алгоритмическим) аппаратом, и навыками кодирования примерно в равной и хорошей степени.

            Лет 30 назад — возможно. Сейчас же… Далеко не во всех прикладных и системных областях требуются знания математического (алгоритмического) аппаратов. Знание фреймворков, особенностей операционок, собственно языков, их библиотек, умение грамотно (не на одну сотню килострок) развернуть решение сугубо прикладной задачи… Да ещё всё это запроектировать с учётом разного рода требований… Это не значит, что мат. программирование мертво (ни в коем случае), это значит, что это — одна из ниш. И ещё. Если программист имеет хорошую мат. и алгоритмическую базу, знает CS — это ещё не значит, что он сможет написать красивый код, реализующий придуманный им элегантный алгоритм.

            Более того, многие современные программисты могут легко (в голове) развернуть какую-нибудь замороченную систему с применением ООД, расчертить связи, коллаборации, сиквенсы и т. п., но при этом впадут в ступор от предложения реализовать алгоритм FFT. Это просто разные области.
          • 0
            Нет профессии «кодер», есть «техник-программист», есть «программист», есть «инженер-программист». Первые две — это уровень техникума/колледжа. Вторая — вуза. Причём количество часов именно по программированию во второй как бы не больше чем в третьей (при сравнимых сроках обучения «птушника» и бакалавра меньше времени «общеобразовательным» и «общеинженерным» дисциплинам)
          • +1
            Программист — это тот, кто владеет и математическим (алгоритмическим) аппаратом.

            А шаблоны проектирования как же? Которые надо не заучивать, а понимать.

            я бы разделил программистов на 2 части:
            1) пишет драйверы, компиляторы, которым нужно отработать как можно быстрее

            2) разрабатывает User Interface программы.

            Кто-то не доделал дурацкий проект на ASP, владея математическим аппаратом, а другие доделали Gmail и Google Maps.
            В Gmail и Google Maps, может, и мало математики, но это не значит, что тут лёгко, отнюдь не легко!
      • 0
        На самом деле учить сложно. Сам вроде как понимаешь как все должно работать, а вот когда начинаешь придумывать какие примеры показать, какие задания дать, как вообще подавать материал… вот тут становится сложно. Зато когда обучаешь студентов, то одновременно и сам учишься. Java как и английский наверное можно учить вечно, каждый раз что-то новое узнаешь.
      • +2
        >Что делаете вы? Критикуете.
        Я просто описала последствия такой узконаправленной подготовки.
        Если вы еще раз посмотрите мой пост, я даже согласилась, что подготовленные так люди могут найти работу.
        Назвала статью пиарской, да, назвала, потому что никаких действительно реальных фактов не приведено. Написано в лучших традициях «мы можем все и это просто». Да и рассказы про головокружительный успех вашей ученицы, какое-то космическое количество талантливых друзей и вранье в резюме, все это какое-то, кхм… сказочное.

        >Все мои ученики набираются опыта и растут как специалисты. Одна ученица дорасла уже до тимлида. Это ли не показатель?
        Показатель, искренне вас поздравляю, покажите своего тимлида, пожалуйста. Компания должна быть достаточно крупной, чтобы нанимать тимлидов, да еще за такие суммы.
        Покажите свою шикарную программу обучения, нет, мне правда очень интересно, с удовольствием позанимаюсь и тоже устроюсь Java junior. А если превру в резюме, и на более высокую должность.
        Я серьезно, столь талантливый курс просто обязан быть опубликованным здесь.

        > ИМХО, университет только и умеет, что учить учиться.
        Я не знаю где и как вы учились, но даже я в своем откровенно средненьком универчике смогла получить профессию и работать по ней. Ограничилась ли я только вузовской программой? Конечно, нет.

        >Чтобы сделал я, если бы узнал, что где-то учебный процесс поставлен лучше чем у меня?
        >Вы меня критикуете, потому что, вы за это время не смогли бы обучить человека?
        Я работаю уже с обученными. Вместе мы пишем, переписываем и отлаживаем код. Зачастую junior даже не знает как работает стек программы и что он вообще есть. А какая там красота программы, если стек вызова тяжелый и неповоротливый, из-за него все тормозит и жрет немерено памяти? Представляю, какого монстра можно породить на Java, не зная таких простых основ.
        Еще раз повторюсь, знание языка еще никого программистом не сделало.
        • 0
          Ограничилась ли я только вузовской программой? Конечно, нет.

          А разве тогда справедливо говорить «я в своем откровенно средненьком универчике смогла получить профессию и работать по ней.»? Может в универе вы поучили корочку, а профессию сами?
        • 0
          > Я работаю уже с обученными. Вместе мы пишем, переписываем
          > и отлаживаем код. Зачастую junior даже не знает как работает
          > стек программы и что он вообще есть. А какая там
          > красота программы, если стек вызова тяжелый и неповоротливый,
          > из-за него все тормозит и жрет немерено памяти? Представляю,
          > какого монстра можно породить на Java, не зная таких простых основ.

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

          то для бизнеса — отличный источник прибыли — соблазн пойти и нанять ещё пару десятков индусских обезъянок
    • +1
      1992й год рождения?
      «Работаю» в вузе?

      Действительно стоит оценить масштаб трагедии
  • +5
    >Моя цель в том, чтобы человек получил работу, фирма — перспективного сотрудника, и обе стороны были заинтересованы в его дальнейшем обучении.

    >Решил я устроиться на свою первую работу. Составил резюме на позицию java junior, приписал 4 месяца опыта в несуществующей форме и пошел на собеседование.

    >Взяли. Поработал три месяца. Учил java и разбирался в проекте. Но фирма не понравилась. Через три месяца уволился. Посидел дома месяц, позанимался, и пошел на собеседования снова. В этот раз я уже искал позицию java middle и, по резюме, имел год опыта работы. Поработал два месяца. Проекту с десяток лет, профессионалы справляются, но новичку на таком проекте очень скучно. Уволился.

    В чем перспективность сотрудников? В том, что вы их учите врать и что программирование — это гламурно?

    Бред. Программирование — не перекладывание стопок документов. И гибкий график — до того момента, когда куча таких-же погромистов начнет заваливать сроки. Тогда график выгибается в другую сторону, и говнокодеры будут сидеть до ночи. Что, уволитесь? Припишите пару лет, и в другую фирму? А если проверят?

    • –3
      Перспективность?
      Люди ищут место где им будет интересно работать. А практика — это основной источник опыта. Отсутствие которого вы так сильно вменяете им в вину.

      Программирование — это интересно. Если я смогу им показать это, значит прожил свой день не зря.
  • –3
    Имхо нормальный пост.
    Конечно, я сомневаюсь, что реально толкового программиста можно «Вырастить» за 25 уроков(Одновременно учу 2-3 человек. Три месяца. Два занятия в неделю по четыре часа. Всего 25 уроков.). Хотя это еще зависит от того, какие лабораторные дают. Нам на первом курсе (2-ой семестр) одна из 8-ми лаб была следующего содержания:
    «Написать программу, которая в файл записывает все используемые функции в программе на С. Пример формата записи в файл: srtlen() print() etc.». А у параллельной группы в это же время лабы были такие: " Посчитать сумму элементов по главной диагонали матрицы". Все зависит от обучающего при условии, что обучаемый заинтересован

    • 0
      И сколько студенту даётся времени на написание парсера Си? Неделя? :)

      Вот и учатся решать задачи лишь бы как.
  • +2
    Не хотел бы я оказаться на собеседовании после 25 уроков с приписанным полугодовым опытом работы.
  • +3
    А людей с тяжелым прошлым (PHP-кодеров) вы переучиваете? :)
    • +3
      я бы вам посоветовал самому переучиться. Если я с админа без всяких курсов стал РНР-джуниором, то уж с РНР на Джаву вам точно по силам перейти.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        «Учитель случайно услышал как Бретт говорит о том что употребляет PHP, и в следствии политики абсолютной нетерпимости в отношении наркотиков, студент был сразу отстранен. Без всяких вопросов.»
        habrahabr.ru/post/57000/
  • +6
    Что-то мне уже не хочется называть себя программистом, учитывая кого нынче принято таковыми называть. Пора придумать новое название.
    • +5
      Инженерами вроде стали называть.
      • +2
        Вот, да, инженер — это оно. «Программист» все больше скатывается в «кодер».
      • 0
        Лет 30+ назад…
    • 0
      Сейчас более употребимым становится «Разработчик»
  • 0
    господа, я очень рад, что люди сами хотят учиться.
    Однако там где я щас работаю есть проблемы — люди не хотят учиться.
    Состав причем этой же конторы.
    • 0
      Люди хотят учиться, если очень хорошо понимают зачем им это надо. С этого я обычно и начинаю: рассказываю что можно получить в итоге. Лучший вариант — это пригласить на встречу кого-то из своих прошлых учеников: отлично мотивирует.

      Если люди не хотят учиться, они и не будут. Поэтому у меня всегда интересные задачи. Я всегда убеждаюсь, что прошлый материал понят, прежде чем перейти к новому. Кивание головой на вопрос «понятно?» меня совершенно не устраивает.

      Хороший учитель часто отличается от посредственного именно тем, что рядом с ним хочеться учиться. Он может заражать энтузиазмом своих учеников. Мой школьный учитель программирования был таким.
      • 0
        Я люблю учиться и не понимая зачем мне это нужно. Вернее даже если нужно, то я это и учебой е называю :)
  • 0
    Не совсем в тему: посоветуйте хорошую, современную литературу по Java, пожалуйста. Сам искал, может быть и плохо, но постоянно попадаются книги 5и и более летней давности.
    • 0
      Философия Java. 4-е идзание Брюс Эккель
      • +1
        только не кастрированную локализованую переводе.
  • +1
    Статья заинтересовала. Не профессионал в этой области, критично оценить не могу. Тоже возникают мысли о смене профессии на программирование. В 25 еще не поздно?
    Опыта мало, в виде хобби, для себя. Написал на python док для Linux (сейчас известен как DockBarX), избавил (частично) телефон LG P500 от надоедливого шипения (c/c++), и так, по мелочи.
    Чего почитать по java для самостоятельного изучения с 0? Программированию под Android?

    А можно подробности про тех, у кого теперь все хорошо?
    Где работают, чего за проекты.
    • +1
      Если Вы действительно хотите заняться кодингом и Вам скажут, что поздно, Вас это остановит?
      Читать:

      Ява — Шилдт.
    • 0
      Перешел на Java далеко за 30, правда за плечами были 10 лет Delphi/C++/PHP.
      MUST READ — конечно Эккель.
      Самые большие деньги и самый большой спрос — на Java Enterprise.
      • 0
        Ява вообще очень «энтерпрайзный» язык помом.
        • 0
          Имелось в виду сравнение с другими направлениями: Java ME, Android, GUI front-end.
    • +1
      Простите, а каким образом Вы убрали шипение на телефоне?
      • +5
        Не полностью, только во время разговора. Но полностью тоже возможно, просто уже мне надоело ковыряться.
        Коротко: Звук проходит через усилитель. Он и дает шипение. Уровень громкости меняется программно. а можно аппаратно, через особый секас с усилителям через шину I2С.
        Для этого используется:
        — модифицированная библиотека libaudio
        — пересобранное ядро
        — самописный (частично) модуль ядра
        — немного костылей на bash
        Если интересно, то могу описать подробнее. Я вообще хотел статью на хабру написать, но оно не готово на 100% (убирается только для разговора и не совсем сразу, но это исправимо, просто требуется настойчивость).
        • +3
          Было бы очень интересно почитать, поэтому прошу Вас найти в себе силы и написать статью :)
          • 0
            Я бы и сам с удовольствием написал статью, но не хочется выкладывать полу-рабочее решение.
            Довести до ума сейчас не хватает свободного времени. Было бы здорово, если бы кто-то помог, желательно более сведущий в этом вопросе чем я. Моих знаний не хватает, чтобы разобраться в этом сразу, хотя я не исключаю, что при наличии времени сам дойду до конца.
            Тут нужно иметь опыт программирования всяких контроллеров (в данном случае это усилитель), знать внутренности андроида и ядра linux. Чего мне и не хватает.
            Если есть желание, могу описать что и как работает и какие есть загвоздки, которые мешают сделать стопроцентно работающее решение.
            Если еще кто-то заинтересовался — буду рад побеседовать.
    • +3
      Вы написали DocBarX и до сих пор сомневаетесь, стоит ли заниматься программированием? По-моему первая картинка в посте — это как раз о Вас.
  • +3
    Напомнило Тима Ферриса с его 4-х часовой рабочей неделей. Такой стиль лайфхакинга, когда он уже граничит с надувательством.

    Присоединяюсь к уже высказанному: когда про такое читаешь обидно немного за профессию становится
  • 0
    А вы этих людей рекомендуете в свою компанию? Бонусы Вам за это дают?
  • +1
    Я пытался научить двух человек писать на C/Objective-C/Cocoa. Времени потратил около года и до сих пор считаю что для коммерческих проектов они не готовы. Хотя оба с техническим образованием, очень близким к IT (радиоэлектроника). И оба в качестве самообразования и хобби занимались уже лет 5-7 программированием.
    Они учавствуют в OpenSource и в качестве домашних заданий допиливают разные «фичи» в продукты под моим просмотром и корректировкой.
    Конечно то что они пишут вполне работает, но я бы это не назвал достойным кодом.

    Может я что-то не так делаю?
    • 0
      Что есть достойный код? :)
      • 0
        у каждого свои критерии для оценки кода. Для меня — это читаемость, правильное и уместное применение технологий и шаблонов программирования, отсутствие ошибок, код должен пройти через Instruments и статический анализатор, без утечек и тормозов. Должны быть обработчики и правильная реакция на исключения и ошибки данных. Должны быть уместные и понятные комментарии.
        Это если вкраце.
    • 0
      Если бы я учил людей Objective-C/Cocoa у меня это тоже заняло бы год — полтора.
      • +1
        по вашему Java лечше чем Objective-C? мне кажется особой разницы нет. Я неплохо знаю Java и считаю, что не легче он совсем, а в некоторых случаях и сложнее: много завязано на кучу разных фреймворков и шаблонов, которые нужно отдельно копать.
        В Cocoa используются несколько простых шаблонов программирования, которые прслеживаются абсолютно везде.
    • 0
      Вы их не тому учите. Бывшие электронщики обычно эффективно занимаются проблемами близким к железу — дрова, геймдев и прочее. Множество топовых западных игровых разработчиков — EE а не CS.
      Это далеко от колупания форм в Xcode и прочей мутотени.

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

      Скукотища
  • +1
    Я что-то не понял. Опыт из резюме вообще не проверяют чтоль?
    • –3
      Нет. Зато он неслабо влияет на зарплату.

      Сделайте две копии своего резюме. В одном напишите, что работали всего один год, в другом — что пять лет в Google. При одинаковых собеседованиях вам предложат зарплаты с разницей в 2-3 раза.
      • +3
        Только вам придется на собеседованиях говорить, что в гугле вы мыли пол в лучшем случае.

        «Чем именно вы занимались на предыдущем месте работы» — совершенно адекватный вопрос, без которого почти ни одно собеседование не проходит, если человек не в состоянии (с чувством собственного достоинства) про это рассказать, то как-то очень некрасиво выглядит (можно делать выводы).
        • –1
          Если вы не в состоянии соответствовать заявленной квалификации — не пишите. Если соответствуйте, но по факту опыта у вас меньше — пишите.

          Резюме не показатель! Показатель только ваши реальные дела, ну в крайнем случае знания показанные на собеседовании.
          • +1
            С этим я не спорю, однако вопрос «чем именно вы занимались на предыдущем месте работы» — он никуда не уходит. Или у вас есть стратегия, как на него отвечать?
      • +1
        одинаковых? а как насчет «дайте контакты вашего начальника и кого нибудь из коллег в google»? или будете еще и заготавливать пароли, явки, конспиративные квартиры и 38 утюгов на подоконнике? проверяется все моментально, через тот же linkedin (я уже молчу о более серьезных проверках на уровне кадровых агентств)
        • –1
          Сталкивался с таким, только когда заполнял анкету на визу в США. И то, потом эту графу отменили.

          ИМХО, никому до этого дела нет.
          • +1
            за 15 лет работы, не было ни единого раза чтоб у меня не попросили контакты с предыдущих 2-3 мест. зачастую просили за последние 10 лет.

            понятно что я давно не джуниор, но у нас и джуниоров не берут просто так. Сейчас как раз взяли кучку студентов, так вот недокодеры с 25 уроками за плечами ни за что бы не прошли профессиональных экзаменов. А если бы соврали в резюме, то работу бы уже не смогли найти вообще.
            • 0
              Я согласен с Вашей точкой зрения, у нас примерно так же, и мне это кажется правильным.
              Единственное, что мне непонятно — почему «работу бы уже не смогли найти вообще»?
              • 0
                потому что джуниорам работу искать и так тяжело, а с волчьим билетом с ними вообще никто не захочет дело иметь.
                • +1
                  Да, я как раз про него и хот