Лучшие курсы Java Core в СССР

-------------------------
Актуальная информация о курсах на сегодня (май 2013).
-------------------------

Добрый день.
Меня зовут Головач Иван. Я создал лучшие курсы Java Core на территории бывшего Союза.
Старты следующих групп — 15 декабря и 15 января.
Вы можете связаться с нашим администратором:
skype: KharkovITCourses
email: KharkovITCourses@gmail.com
phone: 063-048-76-63
site: KharkovITCourses.blogspot.com

Качество всяких начальных курсов характеризуется тремя показателями:
— качество преподавателя
— последующее трудоустройство
— качество предоставляемого материала

Качество преподавателя
Мне тяжело судить о самом себе. Могу рассказать: мне 31 год, Java Coding Architect, опыт работы как в стартапах так и в компании из Кремниевой Долины, лучший студент Украины в области прикладной математики 2002 года, лучший студент Харьковского Политеха в области прикладной математики все время обучения (1998-2003), Multithreaded/Distributed algorithms specialist, преподавал спецкурсы по многопоточным/распределенным алгоритмам на мех-мате Харьковского Национального Университета, обучал Java junior-ов в EPAM. Область научных интересов: системы типов языков программирования с точки зрения теории категорий, принципиальные соотношение между масштабируемостью хранилища и консистентностью данных. Области интересов также можно проследить по публикациям в блоге KharkovConcurrencyGroup.blogspot.com.
Примеры моих лекций (первые 10 курса Java Core) Вы можете посмотреть в свободном доступе на youtube:
— Итерация
— Рекурсия
— Динамические структуры данных
— Организация памяти в Java
— Исключения: cинтаксис
— Исключения: синтаксис/cемантика
— Исключения: cемантика
— Многопоточность: Thread, Runnable, start(), run(), join()
— Многопоточность: synchronized, wait(), notify(), notifyAll()
— Многопоточность: interrupt(), InterruptedException

Последующее трудоустройство
Мы ведем прямые переговоры с HR-департаментами большинства ведущих IT-компаний Харькова. Из известных — GlobalLogic, EPAM, DataArt, GridDynamics, TeamDev, Ciklum, Stella, Intetics, Miratech.
В данный момент происходит трудоустройство предыдущих наборов (сентябрь 2012 + октябрь 2012). Результаты смогу сообщить позже. Оценочные цифры — 80% от слушателей курсов. Высокие цифры обеспечиваются за счет организации конкуренции между компаниями за выпускников.
Курсы ориентированы на слушателей в возрасте 20-40 лет, которые стремятся получить свою первую работу в IT. Желательно, что бы у вас было техническое образование, не обязательно в сфере разработка ПО или автоматизации.
Ожидаемая минимальная зарплата после курсов — 300-400$ в месяц.

Качество предоставляемого материала
Курс состоит из 24 двухчасовых лекций в аудитории, 50 обязательных лабораторных, и 25-50 необязательных лабораторных повышенной сложности.
Курс в первую очередь ориентирован на получение практических знаний и строится вокруг анализа и написания нетривиального кода.
Ниже я привожу примеры кода, которые мы разбираем на лекции (каждая лекция — это около 10-15 примеров кода такого уровня). Код лабораторных — сложнее.

Итерация
Что выведет данная программа?

public class Application {
    public static void main(String[] args) {
        int[][] arr = {{0, 1}, {2, 3}};
        for (int i = 0; i < 2; i++) {
            for (int j = 1; j >=0; j--) {
                System.out.println(arr[j][i]);
            }
        }
    }
}

Рекурсия
Что выведет данная программа?

public class Application {
    public static void main(String[] args) {f(1);}
    public static void f(int arg) {
        if (arg < 42) {
            f(2 * arg);
        }
        System.out.println(arg);
    }
}

Динамические структуры данных
Корректно ли реализован этот метод рекурсивного создания копии односвязного списка?

public static Node copy(Node tail) {
    return tail == null ? null : new Node(tail.value, copy(tail.next));
}

Организация памяти в Java
Закончится ли память при запуске этой программы?

class Application {
    public static void main(String[] args) {
        Object[] ref = new Object[1];
        while (true) {
            ref[0] = new Object[]{ref};
            ref = (Object[]) ref[0];
        }
    }
}

Исключения: синтаксис
Будет ли компилироваться данная данная программа?

public class ExceptionTest_ThrowThrows_10B {
    public static void main(String[] args) throws Error {
        f();
    }
    private static void f() throws NullPointerException {}
}

Исключения: механика
Что выведет данная программа?

public class Application {
    public static void main(String[] args) {
        try {
            System.out.println(0);
            throw new NullPointerException();
        } catch (RuntimeException e) {
            System.out.println(1);
        } finally {
            System.out.println(2);
        }
        System.out.println(3);
    }
}

Многопоточность: Thread, Runnable, start(), run(), join()
Чем завершится выполнение это программы?

public class Application {
    public static void main(String[] args) throws InterruptedException {
        final Thread mainThread = Thread.currentThread();
        Thread runThread = new Thread(new Runnable() {
            public void run() {
                try {
                    System.out.println("Run: wait for main!");
                    mainThread.join();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
        runThread.start();

        System.out.println("Main: wait for run!");
        runThread.join();
    }
}

Многопоточность: synchronized, wait()/notify(), notifyAll()
Чем завершится выполнение это программы?

public class Application {
    public static void main(String[] args){
        synchronized (new Object()) {
            new Object().notify();
        }
    }
}

Многопоточность: synchronized, wait()/notify(), notifyAll()
Корректная ли это реализация ограниченного (на один элемент) блокирующего буфера?

public class SingleElementBuffer {
    private Integer elem = null;

    public synchronized void put(Integer newElem) throws InterruptedException {
        while (elem != null) {
            this.wait();
        }
        this.elem = newElem;
        this.notify();
    }

    public synchronized Integer get() throws InterruptedException {
        while (elem == null) {
            this.wait();
        }
        int result = this.elem;
        this.elem = null;
        this.notify();
        return result;
    }
}

Java I/O: xxx

xxxx

Java I/O: xxx

xxxx

Java I/O: xxx

xxxx

Коллекции: xxx
Корректная ли это реализация адаптера итератора к InputStream?

import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;

public class IteratorToISAdapter extends InputStream {
    private final Iterator<integer> iterator;

    public IteratorToISAdapter(Iterator<integer> iterator) {
        this.iterator = iterator;
    }

    @Override
    public int read() throws IOException {
        return (iterator.hasNext()) ? iterator.next() : -1;
    }
}

ЛАБОРАТОРНАЯ: реализуйте адаптер InputStream к итератору.

Коллекции: xxx
1) Реализуйте класс Index2D для данной разреженной булевой матрицы (какие требования к методам hashCode() и equals()).
2) Что изменится при замене HashSet на TreeSet?

import java.util.HashSet;
import java.util.Set;

public class SparseMatrix {
    usedIndexes = new HashSet<>();

    public boolean get(int rowNum, int colNum) {
        return usedIndexes.contains(new Index2D(rowNum, colNum));
    }

    public void set(int rowNum, int colNum, boolean value) {
        if (value) {
            usedIndexes.add(new Index2D(rowNum, colNum));    
        } else {
            usedIndexes.remove(new Index2D(rowNum, colNum));            
        }
    }
}

Коллекции: xxx
Что выведет данная программа в консоль (каков порядок перебора элементов в HashMap, TreeMap, LinkedHashMap)?

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;

public class MapOrderExample {
    public static void main(String[] args) {
        Map<integer, string=""> hashMap = new HashMap<integer, string="">(3);
        Map<integer, string=""> treeMap = new TreeMap<integer, string="">();
        Map<integer, string=""> linkedHashMap = new LinkedHashMap<integer, string="">();
        // 1
        hashMap.put(30, "A");
        treeMap.put(30, "A");
        linkedHashMap.put(30, "A");
        // 2
        hashMap.put(10, "B");
        treeMap.put(10, "B");
        linkedHashMap.put(10, "B");
        // 3
        hashMap.put(20, "C");
        treeMap.put(20, "C");
        linkedHashMap.put(20, "C");

        System.out.println("hashMap = " + hashMap);
        System.out.println("treeMap = " + treeMap);
        System.out.println("linkedHashMap = " + linkedHashMap);
    }
}

Java ООП: xxx

xxx

Java ООП: xxx

xxx

Java ООП: xxx

xxx
👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

«Лучшие курсы Java Core в СССР» я вже тільки через назву не пішов би)))

То ти ще історію про «ви в мене проінвестували» не чув.

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

системы типов языков программирования с точки зрения теории категорий

Есть какие-нибудь публикации (статьи, заметки в блоге) на эту тему?

Хочу поддержать автора — материал отличный и уровень лектора на высоте! Он делает хорошее дело.

Будет ли набор на 15февраля?

График немного сдвинулся.
1) одна группа стартовала 14 января (еще можно догнать)
2) вторая стартует 25 февраля

код не корректно отображается

Ожидаемая минимальная зарплата после курсов — 300-400$ в месяц.
можно и без всяких курсов больше получать на первой работе, зачем еще платить за курсы.

Можно и без курсов.
Тяжело спорить.
Но если у кого-то не получается — то я берусь уровень подтянуть.

Присутствовал на 2-х открытых лекциях, так-же друг пошел к Ване на Java Core, на данный момент прошел уже почти весь курс. Общий вывод — Ваня делает нечто уникальное и крутое с точки зрения качества и глубины передаваемых знаний. Как я увидел, эти курсы — что-то настоящее, стиль изложения комфортен и без лишнего пафоса. Рекламирую Ваню от всей души и желаю ему успехов! Я уверен, что люди должны знать, что в Харькове есть такая прекрасная возможность для обучения программированию.

P.S. Курс Java Core очень напряженный с огромным количеством информации и я настоятельно рекомендую перед посещением прочитать базовую книгу по Java (Хорстман, Шилдт, Фаин...), попробовать немножко поработать с изученным материалом и только потом идти на курсы. Тогда эффект будет максимальным. Так-же нужно свободное время (и свободный мозг) на решение домашних заданий. Они нестандартные и интересные, может быть сложно, но не скучно.

Никогда в жизне не называй дочь Леной!

А где сакцесс стори от тех 80% кто трудоустроился после лучших курсов Java Core в СССР ?

Занятые люди на ДОУ не пишут.

Катерина, мы же с Вами работали в одной команде, чем я Вам так не угодил? :)

Маша, ты меня с кем то путаешь.

reality_hacker — это Catherine Vladimirskaya? )) интересно
UPD. Туплю. Catherine Vladimirskaya поддержала коммент выше и Иван ответил ей.

О да, мне тоже :) Всё так, я просто советница боевого губернатора :)

Мне вообще-то просто коммент понравился, «Занятые люди на ДОУ не пишут», как самотроллинг, я тоже в последнее время на ДОУ подсела. Хотя ДОУ для айтишников в любом случае полезнее любых соцсетей и других лент. А Вашу работу и сотрудничество с Вами, Иван, я напротив очень уважаю и, конечно, помню, и многому научилась и рекомендую всем, сорри, если кто-то что-то не так понял :)

Жаль только, что наш проект был выпущен на фоне такого монстра как auto.yandex.ru и был безжалостно раздавлен:)

Хотя ДОУ для айтишников в любом случае полезнее любых соцсетей и других лент.
Ох ... Жаль только, что он не превращается в что-то технически ориентированное, наподобие habrahabr или stackoverflow.
Я полагаю, что из-за отсутствия кармы не происходит позитивный отбор материалов/авторов. Да и уровень хамства конечно зашкаливает.
Скажем, reality_hacker — технически подкованный товарищ, но тонны хамства и практически полное отсутствие конструктива все сводят на нет. Согласен, его критика достаточно хороша, но неприятно, когда все вокруг неправильное только ломают, а не заменяют на лучшее.
Скажем, reality_hacker — технически подкованный товарищ, но тонны хамства и практически полное отсутствие конструктива все сводят на нет.
урбан миф распространяемый моими недоброжeлателями
А вообще забавно как за 2 месяца клепают джава программистов и 80% которых потом находят работу.

Индия отдыхает.

Так как только спрос появился, его так же и начали удовлетворять. Точно так же попал в it 5 лет назад через 2х месячные курсы при компании (имея при этом школьный pascal и много желания)

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

Это замечательно, но причина такого спроса в том что некоторые перепродаватели парят клиентaм

Спрос формирует предложение, а не то что вы пишите.

Почему я не то пишу?
Со стороны клиентов спрос есть на опытных и образованных девелоперов, но удовлетворить его не могут.

Спрос на двухмесячных недоджунов порожден в результате мошенничества украинских аутсорсеров напаривающих клиентов.

Полностью с Вами согласен. Если на рынке есть мыло «Дуру» за 3 гривни, и дорогое за 20, и все находит своего покупателя, то в чем «преступление» производителя мыла из нижней ценовой категории?

Адам Смит благословляет всех производителей.

Наверное в том что в данном случае его парят как дорогое за 20 грн.

это целиком и полностью ответственность лидеров рынка, а никак не тренера на курсах

А я где то писал что это ответственность тренера?

Мир место весьма многогранное и неоднозначное.
Если у какого-то «жирного кота» из Чикаго или Лондона мир стает «значительно хуже», то у какого-то выпускника украинского ВТУЗа и у предприимчивого украинского аутсорсера мир становится значительно лучше.

Мне ближе проблемы 150.000 харьковских студентов, а не производителей всех тех электронных магазинов, казино и порно-сайтов с Запада.

Напаривающие жулики продолжают быть жуликами безотносительно того одной они со мной национальности или нет.

«Это сукин сын, но это наш сукин сын».

В этом вопросе я скорее согласен с Кенеди :)

Ок, а я наелся этих джуниоров которых продают как синьёров с другой стороны барикад.

Из того, что я вижу на харьковском рынке (со стороны продавца), таки можно купить «честных сеньоров» (довелось работать в GridDynamics, они даже из Саратова ребят вытаскивают, куча олимпиадников, Scala/Erlang и вся функциональщина в почете), но там, видимо, рейты — ой-ой, мама дорогая ...

Не передергивайте, не два, а три. Не «клепают», а обучают. Я не понимаю, что удивительного в том, что базовые основы языка и библиотек можно изучить за 24 двухчасовых лекции и 50 лабораторных?

По институтским меркам это 2 семестра занятий.

По моим представлениям о необходимой минимальной базе программиста термин «клепают» подходит ближе.

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

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

Ну давайте поспекулируем. Мое представление — это программа, которая публично выложена. Чего там, по-вашему, не хватает?

Это два семестра одного предмета, а в институте их читают несколько больше.

Так я же и преподаю один предмет.

Ну давайте поспекулируем. Мое представление — это программа, которая публично выложена. Чего там, по-вашему, не хватает?

операционные системы, алгоритмы, базы данных, сетевые протоколы, веб программирование, простая математика.

Так я же и преподаю один предмет.

Лично к тебе вопросов нету, без базара твое начинание очень позитивное. моя критика направлена в сторону аутсорсеров-перепродавцов

операционные системы, алгоритмы, базы данных, сетевые протоколы, веб программирование, простая математика.

Согласен.

моя критика направлена в сторону аутсорсеров-перепродавцов

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

Конечно, младшему командному составу (ПМ и тимлиды) не позавидуешь. Своими потом и нервами они платят за рост украинской индустрии.

В а Индии что такое? Быстрее 80% находят работу?

Очевидно после 2 меяцев курсов не находят работу.

В Индии? или у нас?
Некоторые без курсов находят, некоторые и после них не находят. Просто что Вы имеете в виду, что в Индии программирование более развито?

В Индии, хотя судя по последним статьям на ДОУ украинские компании тоже уже наелись выпускников Головача и подобных.

А Вы где предлагаете учится, в сфере IT?

На Вашому блозі в розділі “Лабораторные” присутні не всі лабораторні роботи по деяким темам. Вони з*являться з часом?

Да, появятся в ближайшее время.
Администрирование растущей базы материала становится занятием, поглощающим серьезно время.

Пока борюсь.

Добрый день.
Для всех заинтересованных в прохождении курсов сообщаю:
в субботу 22 декабря в 11.00 по адресу
пер. Театральный 11/13 (5 минут от метро Советская или метро Бекетова)
состоится бесплатная открытая лекция на тему «Реляционная алгебра и SQL»
для тех, кто рассматривает возможность учиться на курсах Java Core или Junior Java Developer.

Это вторая предварительная лекция для записавшихся на курс Java Core. Перед непосредственно курсом Java Core, стартующем 15 января, я даю дополнительный материал полезный на собеседовании — стандарты кодирования на Java, Реляционная алгебра и SQL, сетевые технологии (IP, TCP, UDP, HTTP, DNS).

Интересно, в этих курсах такое же на*балово, как в девклабе, или всё-таки, они покращены и таки чему то учат? Где можно почитать истории успеха выпускников?

P.S. Сайт на блогспоте? о_О Дайош жсп и сервлеты!11

Интересно, в этих курсах такое же на*балово, как в девклабе, или всё-таки, они покращены и таки чему то учат?

Про девклаб ничего сказать не могу. Не видел их программу, их лабораторные, не был на их занятиях. Уровень моих лекций и лабораторных можно посмотреть на youtube.com

P.S. Сайт на блогспоте? о_О Дайош жсп и сервлеты!11

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

Почему именно блогспот? Просто знаком с ним, раньше поддерживал блог KharkovConcurrencyGroup

Где можно почитать истории успеха выпускников?

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

Странный подход: каким образом кому то может навредить информация о том, что некий Вася, трудящийся на должности джуниор-формошолёпа в циклуме, попал туда после прохождения ваших курсов? Наоборот, это будет хорошей рекламой вам и вашим успехам. Возможно, я знаю не всю картину, потому написал следующий абзац.

Что значит «Я нашёл»? Вы оббивали пороги работодателей? Звонили, просили. оказывали протекцию? Или просто разослали куда надо список фамилий с пометкой, кто умный и лапочка, а кто просто дeбил, и пусть дальше сами выбирают? В чём было лично ваше участие при трудоустройстве ваших подопечных, что вы не желаете раскрывать запрошенные мной данные о них?

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

Странный подход: каким образом кому то может навредить информация о том, что некий Вася, трудящийся на должности джуниор-формошолёпа в циклуме, попал туда после прохождения ваших курсов?

Еслия укажу имя и фамилию человека, его можно будет найти в инете и предложить ему работу, что не сильно обрадует его текущего работодателя.

Что значит «Я нашёл»? Вы оббивали пороги работодателей? Звонили, просили. оказывали протекцию? Или просто разослали куда надо список фамилий с пометкой, кто умный и лапочка, а кто просто дeбил, и пусть дальше сами выбирают? В чём было лично ваше участие при трудоустройстве ваших подопечных, что вы не желаете раскрывать запрошенные мной данные о них?

Мне неприятно, что совершенно незнакомый человек разговаривает со мной в тоне допроса.

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

Меня, четно говоря, мало беспокоит что вас устроивает, а что нет.

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

3) Вы уж извините, но Вы — не совсем человек, не персона и не личность. Вы — аноним, в условиях отсутствия модерации на dou — Вы просто системный эффект, эдакое невесомое и бестелесное Ничто, всюду появляющееся и задающее беспардонные вопросы.

По цифрам: весь 2011 год я преподавал в харьковском EPAM Systems. Подготовил два выпуска.
В одном из них из 11 человек EPAM принял на работу в качестве Junior Java developer — 9 человек, двое не принятых нашли сами работу в течении 1-2 месяцев. Во втором из них из 16 человек EPAM принял на работу в качестве Junior Java developer — 12 человек, из 4 не принятых 2-3 нашли сами работу в течении 1-2 месяцев. Судьбу 1-2 не знаю.
Будучи сотрудником EPAM я не мог устраивать собеседования для не прошедших.

На сколько я знаю, 75%-80% принятых после внутренних курсов — один из самых высоких показателей в Харькове и Украине.

Кажуть блискавка не б’є двічі в одне місце.
Але близько місяця тому писав Головачу Івану щодо курсів, відповідь не отримав поки не написав на ДОУ. Потім знову виникли запитання — написав на пошту, відповіді не отримав. Ну думаю, пошту контактну і скайп вказано в цій темі інші, тому потрібно писати на них. Написав в скайп, відповіла Маргарита, поспілкувались, вона пообіцяла відіслати деталі на електронну пошту. Нічого не прийшло, і в скайпі більше не появлялась) Після цього я написав на пошту KharkovITCourses@gmail.com, відповіді немає вже третій день.

Мужик, ты заколебал уже!
Смотри лекции на youtube.com.
Звони и ДОГОВАРИВАЙСЯ ПРИЙТИ НА БЕСПЛАТНУЮ ЛЕКЦИЮ. Она, блин, каждый день, !6! раз в неделю.
переулок Театральный 11/13, над клубом «Джастер», аудитория 301.
---

приходи в эту субботу.

ТЫ В ТЕЧЕНИИ МЕСЯЦА НЕ МОЖЕШЬ О ЧЕМ-ТО ДОГОВОРИТЬСЯ, ты этим гордишься? Я уже выпустил две группы и набираю 2 новых, а ты все договориться не можешь.

Какие технические детали тебя интересует? Что, черт побери, тебе надо выслать???

Ты блин курсы выбираешь или мозги трепаешь? Вот ты говоришь, что таки дозвонился, и что? Ты не смог узнать что тебе нужно? Почему?

Спрашивай тут, ЧТО КОНКРЕТНО ТЕБЕ ИНТЕРЕСНО (кончай канючить)?

Мужик, ты заколебал уже!
Смотри лекции на youtube.com.
Звони и ДОГОВАРИВАЙСЯ ПРИЙТИ НА БЕСПЛАТНУЮ ЛЕКЦИЮ. Она, блин, каждый день, !6! раз в неделю.
переулок Театральный 11/13, над клубом «Джастер», аудитория 301.
---
приходи в эту субботу.
ТЫ В ТЕЧЕНИИ МЕСЯЦА НЕ МОЖЕШЬ О ЧЕМ-ТО ДОГОВОРИТЬСЯ, ты этим гордишься? Я уже выпустил две группы и набираю 2 новых, а ты все договориться не можешь.
Какие технические детали тебя интересует? Что, черт побери, тебе надо выслать???
Ты блин курсы выбираешь или мозги трепаешь? Вот ты говоришь, что таки дозвонился, и что? Ты не смог узнать что тебе нужно? Почему?
Спрашивай тут, ЧТО КОНКРЕТНО ТЕБЕ ИНТЕРЕСНО (кончай канючить)?
в преподавании важны терпение, самообладание и индивидуальный контакт с студентами!
Да он заколебал уже, мямля.

Есть вопрос — задавай, а то проводит какие-то свои невнятные исследования.

Товариш, пролікуйте свої нерви! Запитання були, я їх задавав по реквізитах, які ви вказували в темах форуму. Те, що ви не контролюєте ті самі засоби комунікацій, які вказали самі — це ваш непрофесіоналізм.
Ви кілька раз не виконали обіцянки і ще переходите на особисті образи. Я в скайпі прямо запитав, бік з вашої сторони. Мої запитання були повністю логічними і без «млямля». Це ви не можете дати толком нормальну відповідь, поки вас не споганять тут на форумі, мабуть переживаєте за свою репутацію, яка вже помалу випливає.

Мене не цікавлять курси в реалі, якби хоч трошки розібрались в ситуації, або почитали історію в скайпі, то б дали нормальну відповідь.

«наберіть в рота гівна, та заплюйте йому очі!»

Це ви не можете дати толком нормальну відповідь,

ну то нашо він вам здався???

я сьодні бачив скільки було на першому занняті чергової Java Core, і скільки платило за весь курс.

Нашо воно вам треба, у тої черзі стояти? Начхайте на цього препода, свою копійчину він має і буде мати, а ви маєте пошуки справедливості. :D

яка вже помалу випливає.

о да, бачив на власні очі, як з місяца в місяц випливає — людей все більшає на курсах, тому переїхали курси з меншого приміщення в більше, а сьогодні як увійшов, так згадав армію — коли після наряду вертаєшся вранці у казарму, а там хлопці за ніч «напукали».

Як так далі буде випливати, то й нинешнє приміщення Івану буде замале.

Начхайте на цього препода, свою копійчину він має і буде мати, а ви маєте пошуки справедливості. :D
Даже не в этом суть. А в том, что это действительно нужно)

Да, головачу нужно, денежка идет.

Как посещающий первый набор JJC — хороший пример как и Ивана Головача можно в инете, на форуме — достать.

В жизни — весьма гармоничная, сбалансированная личность.

Ну ты не тот человек которому можно верить

а мне верить и не нужно.

голосуют — бабками.
я проголосовал в сентябре, потому что был где-то мае на бесплатной, в офисе Сиклума на его докладе о многопоточности.

Народу все прибывает — то есть кто был лично на докладе — деньги человеку — готов платить.

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

Может вам можно, публичный человек «reality_hacker» что даже мордочки в инете не можете показать?

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

Может вам можно, публичный человек «reality_hacker» что даже мордочки в инете не можете показать?

это тебя не должно беспокоить, воспринимай как данность

Чому ви зриваєтесь і переходите на особисті образи?, я просив Маргариту повідомити мені деталі: куди оплатити, коли можна розпочати і т.д. Я вже все вирішив, я хочу заплатити і стартанути, а не випрошувати на форумі відповіді. На що мені в скайпі відповіли:

[06.12.2012 15:09:28] Павло: Тоді в моєму випадку коли можна приступити?
[06.12.2012 15:13:16] Kharkov IT Courses: дайте минутку, я опишу процедуру и вышлю вам все подробности
[06.12.2012 15:16:53] Павло: ок
Минутка затягнулась на довго, я зрозумів, що людина зайнята і попросив відіслати мені на ел. пошту.

І нічого ніхто не надіслав. Майте повагу до клієнта. Бо ваше висловлення аж ніяк не красить вас.

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

2) Можете платить наличными прямо на курсах

Контракт простой, ты мне бабки, я тебе интенсив по Java Core и трудоустройство.
В эту субботу сентябрьских 15 человек собеседуют в нашем офисе две компании.

Объективные письменные тесты, кто нормально прошел — собеседуют в офисе и делают оффер. Наперегонки. Разбирают таланты. В следующую субботу — еще два собеседования. Потом еще и еще. А потом, в январе, начинаю трудоустраивать октябрьский набор.

И эти компании не просто так прислали своих рекрутеров и техлидов. Они хантят персонал. Он им нужен.

Ты реши, нужен такой сервис — платишь, и я его предоставляю. Бабки, интенсив, 5 собеседований по Java Core.

Контракт простой, ты мне бабки, я тебе интенсив по Java Core и трудоустройство.
И че таки 100% трудоустроены? За какой период?
Выше ответил — по преподаванию в EPAM сразу брали 75%-80%. Согласен, ситуация специфическая, компания берет студентов со своих же курсов.

На счет текущей ситуации смогу ответить в районе Нового Года, сейчас выпуск двух сентябрьских групп. Каждую субботу письменные тесты в нашем офисе в две новые компании. По результатам этой субботы (15 января) после тестов 50%-70% позвали на внутренние собеседования. Я ожидаю 30% предложений о работе. Несколько таких суббот и 80% трудоустрою.

Выше ответил — по преподаванию в EPAM сразу брали 75%-80%. Согласен, ситуация специфическая, компания берет студентов со своих же курсов.

Самое главное, чтобы как-то прогнозировать ситуацию на основе этой цифры — КАК СЛУШАТЕЛИ ПОПАДАЛИ НА КУРСЫ В ЕПАМ? Неужели вот я приду и скажу: «Хочу учить Java и быть программистом» и меня тут же ЕПАМ взял бы на курсы?

Согласен, конкурс был около 5 человек на 1 место.

Но это не значит, что там прямо отбирали гениев. Идея учиться и получать за это 2000 гривен в месяц притягивает достаточно много «оптимистов», которых отсеивали.

У меня нет отбора. Но плата за курсы — сама по себе отбор. Приходят достаточно мотивированные ребята.

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

В этом смысле очень напоминает армию. Все такие разные, взятые без конкурса, но в жестком динамичном режиме обучения/муштры/учений все становятся солдатами. И из автомата стреляют, и 10 км бегают, и тимлидами (сержантами) становятся.

70%-80% процентов стажеров, которые прошли испытательный срок, — это реально, по крайней мере и у нас такие же примерно показатели при примерно тех же входных пропорциях (хотя сам процесс стажировки организован совсем не так, как это описывают люди после ЕПАМа, но мы и намного меньше чем ЕПАМ).
ПС. Учить программиста как солдата — это новый подход и с точки зрения педагогики и с точки зрения программирования. Интересны будут результаты (проценты) . Только вам придется как-то их обосновывать. А как, если рассказать «success stories» вы не можете по мотивам неразглашения личных данных?

Получается, что работодатель может оценить результаты только, просто пробуя ваших выпускников, ведь их выпуск, как я понимаю, скоро станет значительным для Харькова. И будут набирать статистику — на это нужно время. Будем надеяться, что она будет значима и заметно лучше, чем «средняя температура по палате ».

ПС. Учить программиста как солдата — это новый подход и с точки зрения педагогики и с точки зрения программирования.

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

Интересны будут результаты (проценты) . Только вам придется как-то их обосновывать. А как, если рассказать «success stories» вы не можете по мотивам неразглашения личных данных?

Проценты по EPAM я сказал в другой ветке. Результаты текущих курсов будут в районе Нового Года (я работаю только с сентября). На счет личных данных — тут как агенство по трудоустройству, оно же сообщает вам контакты всех трудоустроенных. Цифры могу назвать, контакты — нет. Инвестору, скажем, могу, а просто в инет выложить — нет.

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

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

ведь их выпуск, как я понимаю, скоро станет значительным для Харькова.

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

Будем надеяться, что она будет значима и заметно лучше, чем «средняя температура по палате ».

А что это за температура? Та, что у академии Шаг, или та, что у внутренних курсов GridDynamics? Это две большие разницы.

«Средняя температура по палате» — это результаты обучения в тех местах, где берут всех желающих, то есть это, конечно, не внутренние курсы компаний, где на входе, как вы сами сказали, 1 к 5.

Как бы, любой работодатель тестирует выпускников самостоятельно. Даже после собственных внутренних курсов.

Истинная правда. Только у работодателя на это тестирование выделены определенные ресурсы, и вы, я думаю, понимаете, что не каждый работодатель проводит полный цикл входного отбора претендентов начального уровня (тесты, офисные собеседования, английский, выдача и проверка тестовых заданий) для каждого приславшего резюме, даже если это старшекурсники профильных вузов. Приходится сначала по резюме (а они на этой стадии очень похожи) угадывать, кто более перспективен — вот тут как раз и пригодится знание того факта, что в том месте, где учился человек, «температура по палате» выше средней, а программа обучения максимально приближена к действительности.

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

Суть в том, что 3 месяца — очень большой срок. И если подходить с умом, то вполне реально дать материал, достаточный для прохождения собеседования.
Из моего опыта общения с техлидами набиравшими Trainee/Junior их главное требование — достаточно глубокое понимание основ. Разница между полями и локальными переменными, стеком и хипом, передачей по ссылке и по значению, cheched и unchecked исключениями, понятие что такое поток, общее понимание архитектуры классов Java I/O, области видимости, разница между inner и nested классами, понимание, что enum и массив — тоже ссылочные типы.

Это вполне реально при желании дать за 24 двухчасовых лекции.

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

Все это приходит достаточно быстро, как только становишься на сторону студента, а не компании.

В субботу 11.00-13.00 15 декабря состоится первая лекция курса Java Core.

Тема лекции «Стандарты кодирования (именование, разбиение на сущности, форматирования) в корпоративных Java-проектах».

Разбор будет идти по «классическим книгам»:
— Роберт Мартин «Чистый код. Создание, анализ и рефакторинг»
— Фаулер «Рефакторинг. Улучшение существующего кода»
— Макконелл «Совершенный код. Практическое руководство по разработке программного обеспечения»

— Кент Бек «Шаблоны реализации корпоративных приложений»

Свяжитесь с нами по скайпу (skype: KharkovITCourses) — выдадим электронные варианты книг.

Так же можно прийти посмотреть лекцию бесплатно. Единственная просьба — связаться с нами заранее по контактам в посте. Нам необходимо оценить размеры аудитории. Лекция проходит по адресу — пер. Театральный 11/13, 5 минут от станции метро Советская или Бекетова, 10 минут от Пушкинской или Университета.

Роберт Мартин «Чистый код. Создание, анализ и рефакторинг»

В целом неплохая книга, хотя из-за того, что разные главы написаны разными авторами — различные стили и «различная польза».

Для нас особенно полезны:

Глава 2: Содержательные имена

Основная идея: именование сущностей — важнейшая работа, это не только описание намерений автора, но и указание на способы и цели использования в дальнейшем. Рассказано о различных подходах к именованию: использовать имена из пространства задачи, использовать имена из пространства решений, ставить имена в соответствие концепциям, добавлять содержательный контекст.

Глава 3: Функции

Основная идея: выделяя блок кода в функцию, мы не просто создаем именованную функциональность, но также определяем отдельную сущность для тестирования, изменения, повторного использования. Рекомендуется использование одной операции на функцию, поддержание уровня абстракции в рамках одной функции, разделение функций на команды и запросы.

Глава 6: Форматирование

Основная идея: Рассматривайте код класса, как текст, как газетную статью к прочтению другими членами команды. Рекомендуется использование газетной метафоры: располагайте важный материал выше, располагайте вызываемые функции выше вызываемых, каждый класс — одна тема, один рассказ, одна история. Другая история — другой класс.

Фаулер «Рефакторинг. Улучшение существующего кода»

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

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

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

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

«Структурщики знают, что хорошую структуру удается создать не сразу — она должна развиваться по мере накопления опыта.»

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

«Когда фрагменты кода невелики, облегчается управление. С такими фрагментами проще работать и перемещать их.»

Макконелл «Совершенный код. Практическое руководство по разработке программного обеспечения»

Кент Бек «Шаблоны реализации корпоративных приложений»

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

«Многие люди не понимают, насколько читабельным может быть код и насколько ценна эта читабельность».

«Шаблоны реализации заполняют пробел между проектированием и программированием».

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

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

«Цель этой книги — помочь вам передать ваши замыслы в коде.»

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

«Эта книга находится где-то посередине между книгой Шаблоны проектирования (Design Patterns) и руководством по Java. В книге о шаблонах проектирования речь идет о решениях, которые принимаются по несколько раз в день во время разработки приложений, обычно относящихся к регулировке взаимодействий между объектами. Вы применяете шаблоны реализации каждые несколько секунд, когда программируете. В то время как руководства по языку хороши для описания того, что вы можете сделать на Java, в них не говорится, почему вам следует использовать определенную конструкцию кода, или о выводах, которые может сделать кто-то, читающий ваш код.»

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

«Эти три вещи — ценности, принципы и шаблоны — формируют уравновешенное выражение стиля программирования. Шаблоны описывают действие. Ценности дают мотивацию. Принципы помогают претворить побуждение в действие.»

«Однако зачастую сложность отражает следы борьбы, которую мы вели за то, чтобы заставить программу вообще заработать. Эта избыточная сложность обесценивает программное обеспечение, делая его менее стабильным, а внесение изменений — более трудоемким. В программировании полезно переоценивать проделанную работу, чтобы отделить зерна от плевел.»

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

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

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

«Другой принцип, лежащий в основе шаблонов реализации, — это передача своих замыслов описательным способом. Императивное программирование — мощный и гибкий инструмент, но чтение программы, написанной в этом стиле, требует следовать за нитью исполнения. Приходится строить умозрительную модель состояния программы, процесса и данных. Те же части программы, являющие „вещь в себе“, без последовательностей или условий, содержат более простой, описательный код.»

«Частота изменений — это приложение симметрии, хотя и временной. В приведенном примере два оригинальных поля, value и currency, симметричны. Они меняются одновременно. Однако они не симметричны относительно других полей объекта. Выражение симметричности путем помещения их в отдельный объект передает их взаимоотношение читателям и, скорее всего, предоставляет дальнейшие возможности для устранения дублирования и локализации последствий.»

А как на счет посмотреть занятия в реале?

Добрый день.
Сейчас у нас лекции каждый день вечером 19.00-21.00 с понедельника по субботу. Если Вы хотите — свяжитесь с нами по контактам указанным в топике и сможете прийти посмотреть любую из лекций.
Если совсем конкретно, то
суббота 8 дек — Java Core (I/O): работа с файловой системой
понедельник 10 дек — Java Core (OOP): overriding/overloading, шаблон Visitor, двойная диспетчеризация
вторник 11 дек — Java Junior (RDBMS): SQL первая часть

среда 12 дек — Java Core (I/0): Serialization API

четверг 13 дек — Java Core (OOP): inner/nested classes, abstarct classes, enum
пятница 14 дек — Java Junior (RDBMS): SQL вторая часть

суббота 15 дек — Java Core (Collections): Map, List, Collection, Iterable, Iterator

Мы находимся в самом центре — переулок Театральный 11/13 (район клуба «Джастер» и магазина «Горка»). 5 минут от метро Советская или 5 минут от метро Бекетова.

P.S. Единственно — свяжитесь с нами заранее, хотя бы за несколько часов — что бы мы предупредили охрану бизнес-центра и учитывали количество свободных мест.

Скажите, а ваши видео на ютубе это из каких лекций, Core или Junior ?

У меня сейчас параллельно занимается 3 группы: 2 Java Core и 1 Java Junior. На видео записываются занятия октябрьской Java Core — занятия по средам и субботам.

Непонятно, у вас с 15го декабря набор? Что это за лекция: "

15 дек — Java Core (Collections): Map, List, Collection, Iterable, Iterator
" на эту дату?
В субботу 15 декабря будет две лекции,
1) вечером в 17.00-19.00 указанная Вами — № 13 или № 14 в курсе.

2) в первой половине дня (11.00-13.00) — первая лекция декабрьской группы Java Core.

Офтоп: Хороша альтернатива слову «СССР» є СНД. А то з теми звучить як ви ще в СРСР живете.

На счет СССР — в моем представлении он живее всех живых. Я не могу подобрать другого термина для описания явления в Белоруссии, России, среднеазиатских республиках. С учетом происходящего в Украине (взять хотя бы новый УК) мы все еще там.

На счет СНГ — это несостоявшееся образование с непонятной структурой и функциями.

как обстоят дела с Java Junior курсом? Когда следующий набор?

Набор на Junior курс — с 15 января.

Предыдущие группы — не снимали на видео. так что глянуть не получится. Если есть желание — свяжитесь с нами по любому из контактов в посте и договоримся посмотреть занятия в реале. У нас вой офис на пер. Театральный 11/13, 5 минут от метро Советская или Бекетова, свободные места в аудитории есть.

добрый день. Планирую записаться в феврале к вам на курсы; Кто будет лектор java core? Возможна ли помощь в записи на собеседование, в Одесские IT компании?

Добрый день.
Лектор один — это я, Головач Иван.

В одесские — да, возможно. У нас есть отдельный человек для трудоустройства, сейчас устанавливает контакты с компаниями Киева и Днепропетровска (там есть несколько удаленных слушателей), их собеседования в конце января.

А почему ожидаемая ЗП после курсов 300-400$?

Джунам же вроде 600-800$ платят.

Диапазон зарплат джунов 300-1000. С чистым Java Core выходит лоуджун - нижняя планка зарплат.

После курсов Java Junior (Servlet/JSP, JDBC, Maven, Log4j, JUnit, Mockito) выходит середина или ближе к верхней планке - 600$-800$.

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

Если не секрет, как Вы реализуете свои научные интересы?

Было много попыток:
1) читал пару спецкурсов факультативов на мех-мате: многопоточные и распределенные алгоритмы на Java
2) завел блог kharkovconcurrencygroup.blogspot.com для коллекционирования материала, создания комьюнити.
3) пошел работать в GridDynamics - это такой осколок компании Sun в КремниевойДолине/Москве/Питере/Харькове/Саратове. Директор Виктория Лифшиц - ушла из Sun, перед покупкое его Oracle. Распределенные вычисления, NoSQL, все дела.
4) сейчас вот пишу в стол курс по распределенным алгоритмам и архитектурам. Базовые учебники:
- Distributed Computing: Fundamentals, Simulations, and Advanced Topics
- Distributed Algorithms
- Introduction to Distributed Algorithms

- Distributed Computing: Principles, Algorithms, and Systems

Это все про распределенные вычисления. Меня больше заинтересовала часть про системы типов и теорию категорий. :)

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

По моим представлениям — распределенные алгоритмы интересная и крайне перспективное направление в Computer Science. Скажем, консалтерам по распределенным системам платят нормальные деньги 5К-10К.

Главное, что я понял — труд должен оплачиваться. То, что вам нравится, чем вы занимаетесь — это приятно, но нужно обеспечивать это ресурсом.

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

о! стара бага для ДОУ.

десь через закриті/відкриті теги коментарі показуються нестандартним шрифтом... наче ж фіксили близько року тому?

Хорошая программа одобряю:)

Отвлеченный вопрос:

Почему много, вроде бы, профессиональных инженеров начали делать курсы «как устроится джуном в бодишоп»?

А що в тому поганого? Можливо їм більше не охота сидіти за компом по 8годин.

А що в тому поганого?
А кто сказал что это плохо?
Можливо їм більше не охота сидіти за компом по 8годин.
Конференции, семинары и тд. От только почему-то такого для людей со средним уровнем и выше не наблюдается, а для выпускников аграрного кучи. При том рассказывают то что можно прочитать в любой книге (5+ летней давности)
Ответ — рынок.
Найти 10 человек, которые заплатят за лекцию по исключениям, легко.

А вот найти 10 мидлов которые готовы заплатить за лекцию про тюнинг gc, PhantomReference/WeakReference/SoftReference, off-heap memory allocation — крайне трудно. Бесплатно то они придут послушать, но какой толк докладчику.

Вообще — то уже с уровня миддлов эти знания полагается самому добывать.

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

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

Это тоже добывать но я например такое добывал в инете:))) Да и несподручно все время спрашивать — на одной из моих работ щемили джунов если те все время бегали спрашивали — чисто описания стандартных джавовских вещей полагалось брать из инета, а к синьору ходить только когда конкретный код не работает. А всю теорию в инете искать — так учили джунов добывать информацию плюс приучали к самостоятельности в поиске инфы плюс берегли время синьоров.

Ну вот видите, платить за advanced лекции никто не собирается:)

все все прочитают сами в интернете. Вот и ответ. Нет покупателей.

Вы правы, базовые лекции и лекции среднего уровня для джунов будут очень популярны, а вот с продвинутыми лекциями труднее, лучше консультировать ad-hoc конкретные проекты.

У меня уже есть курс по Java Junior (с сентября):
— TDD: JUnit, Mockito
— Patterns GoF
— svn, Log4j, Maven
— Servlet/JSP

— JDBC

И думал стартовать Java Middle:
— Hibernate
— Spring
— JSF

— jQuery

Идея трамплина — платишь, занимаешься 3 месяца, увеличиваешь зарплату на 500$.

Но в том то и дело, что за этот «трамплин» готовы платить начинающие, но не более продвинутые программисты.

Хотя объем набора в январе на Junior Java увеличен вдвое, по сравнению с сентябрем.

А типы ссылок в джаве — так это вообще обычное дело, по сути базовые знания джава.

Я не думаю, что знать причины замены finalize() на PhantomReference — это базовые знания.

Тут согласен, а вообще типы ссылок и что такое к примеру WeakReference — это базовые навыки.

Ну ... как сказать, знать чем о отличается WeakReference от SoftReference — это одно. А вот знать, что «каноническое» применение Soft — это кэш, а «каконическое» применение Weak — это автоматическое удаление за aggregate root его разбросанных частей — это совсем другой уровень понимания.

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

Я кстати всегда думал что вик-референс как раз в кешах и применяется:)

Посмотрим. В данный момент выхожу на крупные компании — посмотрим, что выйдет.

Для понимание КАК использовать Weak/Soft ссылки рекомендую почитать статью Java References.
Если кратко, то
1) SoftReference — удаляется если нет нормальных ссылок и не хватает памяти. На нем хорошо строить кэши «заполоняющие» всю память. Нет необходимости реализовывать политику инвалидации — GC сам все прибъет.

2) WeakReference — удаляется если нет нормальных и Soft ссылок и GC это обнаружил. Применяется — есть логически один объект состоящий их пары частей. Одна — aggregate root (с ней все общаются), вторая ее часть. На часть есть нормальная ссылка из root и, кроме того, есть необходимость общаться с частью непосредственно. Поэтому: 1) root имеет на часть нормальную ссылку и некие репозиторий имеет на часть WeakReference. Пока root живой, через репозиторий можем напрямую брать его часть. Как только root был убран, GC автоматом удаляет и его часть из репозитория.

WeakReference — удаляется как только gc обнаружил недостижимость по нормальным + soft ссылкам. Кэш не сделаешь — gc будет его постоянно очищать.

Я не думаю, что знать отличия CMS от G1 — это базовые знания.

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

Особенность еще такая, что эти знания нужны в 10% случаев работы джава — программиста, если не меньше и нужны только на крупных высоконагруженных проектах.

Я при обсуждении программы все же разделял знания на те, которые точно потребуются в ближайшем проекте и «академические». Скажем знание алгоритмов работы уборщиков мусора — «академическое», но с ним приходит понимание какие графы объектов опасны для gc (ссылки из старого поколения в молодое, большие графы старых объектов), а какие неопасны — любой сложности графы между множеством молодых объектов. Прикладное знание — создавай любое количество объектов, но позволь им умереть быстро. Трижды подумай прежде чем внедрять кэш.

но какой толк докладчику.

саморозвиток, систематизувати власні знання, побачити слабкі місця, зробити свій внесок у розвиток ІТ-сфери, самопіар і т.д.?

Могу ответить только за себя:
1) кроме того, что человек зарабатывал программированием, в нем спокойно могла уживаться склонность к педагогике/образовательным проектам. Если уж совсем формально, то у многих после мехмата есть вторая специальность — преподаватель математики.
2) этот рынок в Украине очень бурно развивается, за последние 1-2 года множество IT-компаний создали свои курсы, рынок людей стремящихся в IT огромен. Я полагаю, что образование — самая быстрорастущая часть IT в Украине. Темпы роста 100-200% в год.
3) появляется время и необходимость вдумчиво и детально анализировать основы. Скажем сейчас мои настольные книги:
— Структура и Интерпретация Компьютерных Программ
— Начала программирования
— Идеальный код

А во времена, когда надо было срочно строить асинхронную передачу сообщений на JMS между JBoss и Spring, на это не было времени. Именно такие книги — источник хороших примеров на базовые темы — скажем рекурсию.

4) лекции, семинары — это специфическая отрасль человеческой деятельности. Когда начинаешь ей заниматься, мозги сразу начинают «выворачиваться». Пример: Scala/Erlang actor concurrency model. Если вы программист — вы стремительно ставите IDE, берете код из интернета и ... и что? Убеждаетесь что оно работает? Если же Вы преподаватель, то первое что вас интересует — какие 5 классических задач на многопоточность эталонно решаются на модели акторов, а не на модели потоков или транзакций? Обедающие философы? Ожидающий парикмахер? Вы сразу ищете отличия, разбираетесь в многобразии. Вам придется ДОКАЗЫВАТЬ слушателям, что иногда акторы лучше потоков и транзакций. Для этого в начале надо доказать себе.
---
Четкое ощущение, что Вы ближе к Computer Science, а не к индустрии разработки ПО.

Думаю, в ближайшие 2-3 года будет невероятный бум и переворот в сфере удаленного IT-образования. Coursera — пример. И темпы будут сотни процентов в год. Задача — автоматизация труда по проверке решений. Как только она будет решена — задача собрать аудиторию в 1000 человек упрется только в личные качества преподавателя, тему и набор заданий.

Потому как это выгодно и за это платят.

Тут куда кривая выведет. Если вы сами арендуете помещение, то будете отдавать около 5.000 гр в месяц за помещение недалеко от транспортной развязке. Это 60.000 гр в год. Только аренды.
Как для меня — важнее решимость добиться успеха на этом поприще.

можливо, щоб привернути увагу до курсів?
я от теж хотів би творити добро і научати людей чомусь(хоча, мабуть, рано мені ще).
але ж хіба на початкові курси по С++ підуть студенти, якщо не сказати їм, що після цього їх візбмуть у боді-шоп?

*я говорю про безкоштовні. Робити такі курси на платній основі теж особливо не бачу сенсу... хіба що символічна ціна, щоб відсіювати зальотних.

але ж хіба на початкові курси по С++ підуть студенти, якщо не сказати їм, що після цього їх візбмуть у боді-шоп?
Вопрос был в другом:
Почему “матерые” люди хотят обучать тех у кого уровень 0, а не тех кто уже имеет опыт? Если они настолько крутые, то логично бы было обучать продвинутым вещам, а не основам.
певно, не настільки круті...

більш продвинуті курси теж з"являються, але їх менше і вони піаряться у вузьких колах.

Если бы Вы указали на эти «узкие круги», был бы крайне благодарен. Я их не нашел. Рынка нет. Странно позиционировать себя на территории, где нет рынка.

випадково дізнався, що у нас в Глобалі проходять курси по Лінукс-керналу. Не гуру навчаються — але все ж і не початківці.

До того ж на конференціях нечасто, але бувають, що люди таки роблять досить серйозні доповідь... щоправда, на підготовку однієї такої «лекції» піде значно більше часу.

випадково дізнався, що у нас в Глобалі проходять курси по Лінукс-керналу. Не гуру навчаються — але все ж і не початківці.

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

Нет, это полу-открытые курсы (по крайней мере, были) — был отбор, но податься могли все желающие. Поищите, здесь на ДОУ была информация.

відкриті курси, безкоштовні та без зобов"язань переходити в Глобал. Я дізнався про них якраз від друга, котрий почав займатися, а працює зовсім в іншій конторі.

На них були співбесіди, відбір, що цілком логічно.

До того ж на конференціях нечасто, але бувають, що люди таки роблять досить серйозні доповідь... щоправда, на підготовку однієї такої «лекції» піде значно більше часу.

Я пару раз на всеукраинских докладывался. Интенсивной подготовки - 2-3 недели. Но теряется мотивация, когда понимаешь что это бесплатно. По итогу конференции ты не отправишься в Черногорию на 3 дня отдохнуть, так как ты ничего не заработал. К этой же теме относится и проведение кружка для одаренных школьников/студентов. Это просто хобби.

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

Тема #1: Уровни консистенции в распределенных кэшах (распределенные алгоритмы и архитектуры).

— примитивы рассылки сообщений (Atomic Broadcast, Totally Ordered Atomic Broadcast, Causality Ordered Atomic Broadcast), уровни консистенции (Sequential Consistency, Linearizability, Causal Consistency, PRAM Consistency), использование в распределенных фреймворках — JGroups, Zookeeper, Hazelcast.

Это какие то жутко узкоспециализированные темы, вряд ли интересны абстрактному синьёру

Отнюдь. Каждый достаточно сложный проект так или иначе включает некую реализацию разделяемой памяти (кэша). Во многих случаях она является еще и распределенной.

Пример #1:

Session из Servlet API разделяется всеми запросами от одного пользователя. Запросы идут одновременно — Servlet container их не упорядочивает (сериализует).

Пример #2:

Кэш второго уровня в Hibernate — по факту разделяемая память. Часто делают его распределенным.

И вот пример вопроса:
поток/нода #1 делает put("A", 1);
поток/нода #2, прочитав get("A")==1 делает put("B", 2);
---
может ли оказаться, что поток/нода #3 может вычитать, что get("B")==2, но get("A«)==null? Т.е. увидеть следствие (присвоение «B» не увидев причины — присвоение «A»)?
----

Конкретно, возможно ли такое для сессии в Servlet API, возможно ли такое в EHCache, необходимо ли запрещать такое поведение для корректной работы кэша второго уровня Hibernate?

Данный пример является определяющим для уровня консистентности Casual Consistency.

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

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

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

Та нет, и без них справляются.

Ведь при использовании реляционной базы (скажем MySQL на InnoDB) необходимо понимать уровни изолированности Read Uncommited, Read Commited, Repeatable Read, Serializable и феномены Dirty Read, Non-repeatable read, Phantom Read. И при этом я нахожу странным разбираться как это работает, но не знать общепринятого названия.

Помоему тоже в большинстве случаев знание перечисленных терминов бесполезно.

Вы не правы.

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

Спасибо конечно, но я в курсе. Так в скольких проектах ты учавствоввал где в базу ходили за фантомными чтениями? И какой у тебя был прирост в производительности заодно?

Мне будет намного проще вести дискуссию если Вы определитесь:
1) Вы не знаете таких терминов и оно Вам не надо

2) Вы их знаете и находите эти знания тривиальными

Мне будет намного проще вести дискуссию если Вы определитесь:
1) Вы не знаете таких терминов и оно Вам не надо

2) Вы их знаете и находите эти знания тривиальными

3. Нахожу эти знания ненужными для большинства синьёров.

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

Опять же, по моему мнению, это общая компьютерная грамотность, наравне с такими конструкциями как красно-черное дерево и семафор.

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

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

Ваш вопрос некорректно сформулирован. Фантомное чтение — это негативный феномен, который может встретится, а может и нет. Таким образом НА нем нельзя основывать бизнес-логику.
А вот на понижении уровня изоляции — можно. Конкретно в одном из последних проектов (интернет-казино) на Postgres при понижении уровня изолированности с Serializable до Read Commited пропускная способность по транзакциям выросла в 2.5 раза. И вот тут как раз пришлось пересмотреть структуру хранимых данных и изменить систему что бы И при Read Commited НЕ наблюдать Phantom Read.

Т.е. задача была изменением структуры данных добиться того, что бы фантомные чтения НЕ наблюдались при том, что база их уже допускала.

Шота мне подсказывает что вы достигли прироста производительности потому что убрали лок contentions именно с помощью изменения структуры базы(раз у вас phantom reads не встречаются), и понижение уровня изоляции было совсем необязательно, можно было оставить serializable, как и делают на 99% нормальных проектов.

Опять же, Вы выказываете незнание организации concurrency control в ядре версионников.
Уровень Serializable в сравнении с Read Commited потребляет большее количество ресурсов — памяти и единиц внутренних структур данных в пересчете на транзакцию.

Поэтому «нормальные» проекты при возможности понижают isolation level для снижения потребления ресурсов.

Опять же, Вы выказываете незнание организации concurrency control в ядре версионников.

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

Уровень Serializable в сравнении с Read Commited потребляет большее количество ресурсов — памяти и единиц внутренних структур данных в пересчете на транзакцию.

Безспорно, но действительно ли это приводит к деградации в 2.5 раза если нету lock contention, как это утверждаешь ты?

Поэтому «нормальные» проекты при возможности понижают isolation level для снижения потребления ресурсов.

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

Общие концепции нужны, ты же тут приводишь 100500 каких то частных терминов.

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

Я бы предпочел, что бы на моих проектах работали люди не только знающие, что оптимальные алгоритмы сортировки работают за n*log(n), но знали и «частности»: быстрая и слиянием работают за n*log(n), а пузырек, выборкой и вставкой — за n*n.

что оптимальные алгоритмы сортировки работают за n*log(n)

бугага, признанно оптимальный алгоритм сортировки quick sort работает за O(n^2) времени, а совсем оптимальные за O(n)(radix sort).

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

алгоритм сортировки quick sort работает за O(n^2) времени

Это наихудшее время работы. Наиболее часто алгоритмы сравниваются по среднему времени работы, а оно у quick sort — O(n * log(n)).

Наиболее часто алгоритмы сравниваются по среднему времени работы

Вызывающе спорное утверждение

Что именно вызывает Ваше негодование, сударь?

Или чем Вы еще объясните, что абсолютное большинство библиотек времени исполнения популярных языков программирования содержат в качестве стандартного алгоритма сортировки quicksort или mergesort?

Например потому что нету nlogn inplace & stable алгоритмов сортировки.

а совсем оптимальные за O(n)(radix sort).

radix sort применим исключительно к данным со специфической структурой — нечто напоминающее позиционную запись с лексикографической сортировкой. Он не применим даже к числам с плавающей точкой.

Он не применим даже к числам с плавающей точкой.

вызывающе неверное утверждение

Ок, алгоритм сортировки double в студию.

Помоему это элементарно, но какой мне профит тут это писать, не подскажешь?

Не можете найти в интернете? Или за чем заминка? Лень писать — дайте ссылку.

А ты считаешь что если что-то нельзя найти в интернете то это нельзя сделать? Ты на работе копипастом из интернета занимаешься? Но в любом случае это первая ссылка в гугле: hbfs.wordpress.com/...-point-numbers Или тебя там забанили?

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

Думаю, Вы просто не понимаете как работает radixsort, а информацию о нем взяли за 1 минуту из интернета. Он не применим даже к числам с плавающей запятой.

Та нет, применим, думаю как раз это ты сильно переоцениваешь твои способности и знания.

Он не применим даже к числам с плавающей запятой.

www.codercorner.com/...rtRevisited.htm

Согласен, я был не прав. Сгоряча порол горячку. действительно, числа с плавающей точкой в формате IEEE 754 вполне можно сортировать radixsort.

Мы оба были не правы, сударь. Если ВНИМАТЕЛЬНО проанализировать, как именно работает radix sort, то его сложность указывается как O(k * n). А показатель k — это количество разрядов, которое ... есть логарифм от максимального сортируемого числа по основанию системы исчисления.

Та же Википедия честно говорит — «However, in general k cannot be considered a constant. In particular, under the common (but sometimes implicit) assumption that all keys are distinct, then k must be at least of the order of log(n)»

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

Но суть в том, что K — не константа, черт ее дери — это функция от n. Ну ей Богу, нельзя же функцию записывать как константу.

к это не функция от n конечно же, а независимый параметр. В оценках из википедии много допущений, например для меня всегда оставалось загадкой как например посчитали nlogn как среднее для qsort.

Стойте-стойте. Что бы записать N в системе исчисления с основанием M необходимо не менее log по основанию M от N разрядов. Именно поэтому больший числа выглядят как «длинные» — 10^20 = 100.000.000.000.000.000.000. И дли на числа == логарифм от размера. Так что — функция.

Т.е. для чисел до 1000 К==3, для чисел до 1000000 К==6, для чисел до 1000000000 К==9 ...

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

Так что — функция.

От размера массива? Или от системы исчисления? Если второе то покажите что с изменением размера массива меняется система исчисления.

например для меня всегда оставалось загадкой как например посчитали nlogn как среднее для qsort.

А что в гyгле не пишут? ;) (простите не смог удержаться)

Да, сейчас посмотрел в википедии написали, раньше небыло.

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

Нас обоих не иначе как попутал бес, пали жертвой предрассудков ...

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

Я не верю в какой то список знаний которые играют решащее значение. Просто все можно нагуглить за 5 минут. Есть куча факторов которые делают синьёра синьёром, вроде опыта и уже наступленных грабель
, умение излагать мысли, планировать время и приоритеты, комуникационые способности и умение прижится в команде. Синьёр это человек который может выполнить сложный проект у уложится в бюджет.

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

Я не верю в какой то список знаний которые играют решащее значение.

Эта точка зрения имеет право на существование. Однако она не имеет никакого отношения к образованию. В случае построения образовательной программы Ваша задача как раз составить ОПРЕДЕЛЕННЫЙ список знаний и методику их передачи слушателям.

Можно подойти с другой стороны — критерием «сеньорности» считать признание Вас сеньором со стороны компании на собеседовании. В таком случае тоже вырисовывается вполне конкретных список технологий/знаний. Статистически значимым, по моим представлениям, является:
— Hibernate
— Spring
— JSF
— jQuery

Т.е. если человек в состоянии пройти собеседование по этим технологиям, то половина компаний сочтет его сеньором.

Компании сочтут синьёрами по известным причинам к квалификации отношение имеющее опосредственное. Потом такой синьор пусть и зазубривший какие то основные понятия может писать адский гавнокод. Ну и какое отношение твой список имеет к распределенным системам которые мы тут обсуждаем?

Если Вы не заметили, то я оспаривал Ваш тезис, заключающийся в том, что не существует списка технологий делающих человека сеньором на Java.

Моя практика набора персонала в ряд компаний показывает, что такой список есть.

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

Ну и возвращаясь к основному топику я абсолютно уверен что «Atomic Broadcast, Totally Ordered Atomic Broadcast, Causality Ordered Atomic Broadcast» абсолютно не являются базовыми знаниями.

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

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

Это было к вопросу о том, почему все спецы рассказывают про исключения, коллекции и циклы.

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

Та нет, если ты внимательмно прочтешь ветку, то с просто грандиозным удивлением заметишь что когда я тебе указал что это узкоспециализированные знания не интересные абстрактому синьёры ты зачем то начал возражать и ссылаться на какие то распредленные кеши.

Это было к вопросу о том, почему все спецы рассказывают про исключения, коллекции и циклы.

А здесь этот вопрос где то упоминался, что это за спецы и какого ты тут вообще это написал?

Просто все можно нагуглить за 5 минут.

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

Не думаю, что кому-либо может помочь google с вопросом — «Использую Infinispan, JBoss, RichFaces — пропадают данные сессии, что делать?».

Не думаю, что кому-либо может помочь google с вопросом — «Использую Infinispan, JBoss, RichFaces — пропадают данные сессии, что делать?».

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

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

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

При работе с JDBC уровень изолированности выставляется методом java.sql.Connection.setTransactionIsolation(int). В этот сеттер устанавливается одна из констант: Connection.TRANSACTION_READ_UNCOMMITTED, Connection.TRANSACTION_READ_COMMITTED, Connection.TRANSACTION_REPEATABLE_READ, or Connection.TRANSACTION_SERIALIZABLE.

Можно подумать я не в курсе.

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

Ну вот в доке по ehcache никаких названных тобой терминов нету, зато есть общепринятые strong, weak, eventual и т.д.

Подготовка лекций — это работа, она должна оплачиваться.

Да. И довольно сложная работа.

Если цель деньги, то понятно. Но удивляет (лично меня) что так много курсов которые заменяют базовые книги по языкам и туда ходят люди.

и ЗАПЛАТИТ

Тут небольшой конфликт (с не вашим высказывание)

я от теж хотів би творити добро і научати людей чомусь

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

P.S. Оговорка: вся что я говорю — это о ситуации и ни коим образом не угол в лично вашу сторону (судя по тому что вы ответили на комментарий из другой ветки, есть подозрение что вы считаете обратное)

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

После нескольких лет сеньорства понимаешь, что 3К - это не так уж и много. В Харькове метр в новострое - 1.5К. Когда у тебя жена с ребенком и хочется жить не в 35 метрах в панельке, а в 80 в новострое с видом на лесопарк, и нет дешевых кредитов, то идея работать бесплатно и 10 лет копить на хорошее жилье резко теряет в цвете.

В данный момент, сеньоры в Украине - не средний класс. Это неприятно, когда работаешь уже 10 лет после университета.

Под средним классом я подразумеваю:
- свое жилье в хорошем районе из расчета 30-40 метров на человека

- пара нормальных машин (япония-германия) для тебя и жены

тут на форуме было альтернативное мнение что средний класс - это человек получающий зарплату выше среднестатистической по Украине.

Вики:
Сре́дний класс — социальная группа людей, имеющая устойчивые доходы, достаточные для удовлетворения широкого круга материальных и социальных потребностей. К среднему классу, как правило, относят людей, которые имеют высокий уровень образования и квалификации, и занимают в обществе промежуточное положение: между богатой небольшой частью и значительной — низкооплачиваемой частями населения. Также, функциями среднего класса считаются привнесение инноваций и воспроизводство квалифицированных кадров, а также поддержание стабильности в обществе.

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

ну і? ви отримуєте більше ніж в середньому, маєте, думаю, вищу освіту, можете купити собі авто, можете дозволити собі міжнародні подорожі — то що ж вам заважає відповідати середньому класу за цим визначенням?

Согласен, цитата не в мою пользу:)

Но бесплатно учить все равно не буду:)

але ж хіба на початкові курси по С++ підуть студенти, якщо не сказати їм, що після цього їх візбмуть у боді-шоп?
Станьте на точку зрения студента — вы предлагаете несколько месяцев интенсивно учиться и даже не можете их потом устроить на самую низкооплачиваемую работу в IT. Напоминает три семестра матана в универе:)

Ну и для человека, который ищет первую работу после стройки/макдональдса — боди-шоп — это огромный прогресс. Я бы не отзывался так высокомерно.
Сам помню как работал на первой работе за 100$ на Delphi после строек, это был огромный прогресс.

Я бы не отзывался так высокомерно.

я і сам працюю у боді-шопі — ви неправильно сприйняли мої слова.

Иван, скажите на вашем сайте kharkovitcourses.blogspot.com написано, что вы проводите лекции онлайн, когда следующий набор и как построен процесс дистанционной работы?

Добрый день.
В данный момент ребята из Киева и Днепропетровска занимаются по следующей схеме:
— с задержкой в 1-2 дня смотрят отснятые лекции октябрьской группы.
— высылают выполненные лабораторные (так же как и группа из реала) и получают критику на них (стиль, неправильное решение, рекомендации подправить)
— трудоустройство — в данный момент ведем переговоры с несколькими IT-компаниями из Киева, Львова, Днепропетровска, Одессы. В целом, большинство компаний заинтересовано в регулярной поставке кадров (наша ориентация).
— на все технические вопросы по теме я отвечаю по скайпу

— литературу и рекомендации по ней высылаю в электронном виде

Идея с онлайн-трансляцией была признана не лучшей. Не все могут смотреть в четко определенное время. Все равно желательно пересматривать лекции.

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

На все вопросы я отвечаю по скайпу, но интерактивность конечно ниже.

На счет цены мы думаем, но пока одинаковая. Мы предлагаем сервис - 475$, 3 месяца пота и у вас работа. Для обеспечения этого, скажем, есть отдельный человек проверяющий все лабораторные. Есть отдельные человек занимающийся контактами с компаниями. В этом смысле сервис идентичного качества, что и определяет цену.

Иван, поправьте меня, если не прав. То, что будет на видео - это лекции (в понимании института), а не практика. В ютубе можно посмотреть. Там вопросов задаётся по минимуму, чтобы лектор успел вложиться в 2 часа. Нету такого, что лектор дал задание, а вы сидите и решаете, если не ясно - сразу же спрашиваете. Задания - только лабораторки, которые вы делаете дома. Если не ясно - спрашиваете по скайпу. Посмотрите хоть одну лекцию и будет понятно как проходят эти курсы (как проходят лекции / время с лектором). Я уверен, что те, кто ходит на лекции ногами потом обязательно пересматривают видео. Читал в отзывах. Так смысл туда дважды ходить в конкретно назначенное время.

P.S. не успел раньше Ивана ответить

То, что будет на видео — это лекции (в понимании института), а не практика.

Да, практика — самостоятельно дома. Для этого есть чертова уйма лабораторных (50 — обязательных, 50 — необязательных).

те, кто ходит на лекции ногами потом обязательно пересматривают видео.

Да, одна из особенностей — я то выдерживаю 2 часа лекции, слушатели — не очень:). Материал конца лекции усваивают сходу не все.

Так смысл туда дважды ходить в конкретно назначенное время.

Это лично решение, кому как удобно. Но многие все-таки стремятся к живому общению, не столько со мной, сколько с «одногруппниками».

У некоторых период между работами, чем сидеть дома, выбирают прийти на лекцию.

Уверен, что эти курсы не только лучшее в СССР, но и во всей солнечной системе!

Не исключено, что и во всей галактике! ;)

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

Спрашиваю Вас так как наслышан о Вашем високом уровне в java.

Добрый день.
1) Если jar не подвергался обфускации, то я бы рекомендовал его просто декомпилировать. В свое время использовал JAD — код, насыщенный исключениями, приходится править руками — но терпимо.

2) Если jar использует какой-то DI-framework, например Spring, то Вы можете инектировать свои зависимости, свои классы

Расскажите больше про jar.
Это j2me игра от gameloft? Приложение под Android? Отдельная библиотека? Целый проект? Какие у него зависимости от других библиотек?

Это научный софт, интерфейс на Swing, использует parallelcolt, сурсы утрачены.

Понял.
А каков характер вашей задачи?
1) все написано, все работало, но теперь «как-то не так» — немного подправить и все или

2) вам необходимо расширять проект, дописывать функциональность, сопровождать его

Спасибо, за быстрый ответ, к сожалению:
1) Код обфусцированный и jad возвращает не компилируемый, огромний (так как jar-ка большая) результат;
2) jar не использует DI.

к чему вообще приведенные куски кода?

меня они пугают, ибо кажутся бессмысленными

Тысячу извинений.
Вчера были примеры только по трем первым лекциям.

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

Весь курс состоит из 6-ти модулей.
— Структурное программирование
— Исключения
— Многопоточность
— Java I/O
— Java Collection API

— OOP

А где core java? В посте какие то алгоритмы для десятиклассников?

це кращі на території пост совка алгоритми для десятикласників!!!

Подписаться на комментарии