Подготовка к стажировке: об изучении JavaScript, SQL, HTML\CSS, UML



Добрый день, уважаемые джаварашевцы и джаварашатессы!

Имея целью мировое господство изучение языка Java, признал необходимость прохождения стажировки. Изучение вопроса показало, что прохождения курса JavaRush совершенно недостаточно для исполнения тествового задания и прохождения стажировки. Кроме Java Core требуется хотя бы поверхностно знать еще дюжину технологий. Знатоки рекомендуют осваивать эти технологии параллельно с курсом JavaRush.

Итак, имея целью мировое господство изучение языка Java пришлось взяться за изучение этих самых дополнительных технологий. Не всех сразу разумеется. А тех, которые попроще, к которым я уже готов. Если конкретнее, то пока взялся за JavaScript и SQL. На очереди XHTML\CSS\HTML5 и UML. Ниже хочу поделиться перечнем материалов, подобранных для обучения по заявленным темам.

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

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

SQL

Первоначальное изучение темы: Head First «Изучаем SQL», Мартин Грубер «Понимание SQL».

Углубленное изучение темы: Поль Дюбуа «MySQL. Сборник рецептов».

Решение задач по теме: Сайт sql-ex.ru

XHTML\CSS\HTML5
Первоначальное изучение темы: Head First «Изучаем XHTML\CSS», Head First «Изучаем HTML 5»,

Углубленное изучение темы: конкретные книги пока не определены. Нужно подобрать фундаментальные труды по HTML 5 и CSS 3. Так как пока эту тему не изучал, то не знаю актуален XHTML сверх базового курса или нет.

Есть хорошая книга «CSS. Каскадные таблицы стилей. Подробное руководство» автора Эрика А. Мейера. Но она на русском для версий 2 и 2.1 существует. Не знаю на сколько это актуально при наличии CSS3.

Решение задач по теме: www.itmathrepetitor.ru/zadachi-po-html-i-css/

JavaScript

Первоначальное изучение темы: Head First «Изучаем JavaScript», Head First «Изучаем JQuery». Опционально, по нерассмотренным темам ресурс learn.javascript.ru/

Углубленное изучение темы: Дэвид Флэнаган «JavaScript. Подробное руководство (6-е издание)»

Решение задач по теме: gist.github.com/codedokode/ce30e7a036f18f416ae0#%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%BA%D0%B8-%D0%BD%D0%B0-js

vk.com/zadachi_javascript_jquery

www.itmathrepetitor.ru/zadachi-po-javascript-iz-knigi-vyrazitelnyjj-javascript/

UML

Первоначальное изучение темы: Фаулер М. «UML. Основы»

Углубленное изучение темы: Джим Арлоу и Айла Нейштадт «UML 2 и унифицированный процесс. Практический объектно-ориентированный анализ и проектирование», 2е издание, Дж. Рамбо, М. Блаха — UML 2.O. Объектно-ориентированное моделирование и разработка

Решение задач по теме: Задачи есть в книге Рамбо и Блаха. В остальном наверное, придется придумывать задачи самому. Например, пытаться проектировать приложения. Взять банальный Блокнот и попытаться написать схему его работы в разрезе ООП.

Опытом в изучении других необходимых для стажировки технологий (Spring, Spring MVC, Hibernate, ООП, JDBC, Servers + Servlets +JSP, ORM, Web-frameworks, Web-services (SOAP, REST), Maven, Tomcat) буду делиться по мере приобретения этого самого опыта.

Любящие путешествия в сети интернет могут проследовать по этой ссылке в поисках всех упомянутых в этой статье книг. И если у вас спросят пароль, не надо говорить Der Parol, скажите javarushvorever.

Удачи в изучение Java и всех, всех, всех!

С уважением,
Зеленая лягушка
(14 уровень).
  • ,

Использование UML в разработке и сопровождении java-программ

UML (Unified Modeling Language) — унифицированный язык моделирования.
Узнал об UML из замечательного повествования на форуме от alex8894
Обзор CASE-средств для построения диаграмм UML.
В книге «UML for Java Programmers» Robert Cecil Martin, насколько понял, используются стандарты UML 1, т. к. ныне действующий UML вступил в действие уже после её опубликования. Однако, полагаю, основные принципы построения подобных блок-схем остались без существенных изменений.
Учебный пример из лекции:

/*
 * © Volodya Mozhenkov 2015
 * GPL version 3.0
 * Almost University http://www.almost-university.com/
 * VladimirMozhenkov@yahoo.com
 *
 */
// файл Main.java
public class Main
{
    private static void printRes(MyResult r)
    {
        if(r.hasResult())
        {
            System.out.print("Результат исполнения: ");
            System.out.println(r.getResult());
        }
        else
        {
            System.out.println("Результат отсутствует");
        }
    }
    public static void main(String[] args)
    {
        MyCalculator c1 = new MyCalculator('/');
        MyResult r = c1.calculate(4, 2);
        printRes®;
        r = c1.calculate(40, 13);
        printRes®;
        r = c1.calculate(1, 0);
        printRes®;

        c1 = new MyCalculator('^');
        r = c1.calculate(2, 25);
        printRes®;
    }
}

// файл MyCalculator.java
public class MyCalculator
{
    private class ResultClass implements MyResult
    {
        boolean valid;
        int result = 0;
        public ResultClass()
        {
            valid = false;
        }
        public ResultClass(int result)
        {
            this.result = result;
            valid = true;
        }
        public int getResult()
        {
            return result;
        }
        public boolean hasResult()
        {
            return valid;
        }
    }
    private char operation;

    public MyCalculator(char operation)
    {
        this.operation = operation;
    }

    public MyResult calculate(int a, int b)
    {
        MyResult res;

        switch(operation)
        {
            case '*':
                res = new ResultClass(a*b);
                break;
            case '/':
                if(b!=0)
                {
                    res = new ResultClass(a/b);
                }
                else
                {
                    res = new ResultClass();
                }
                break;
            case '+':
                res = new ResultClass(a+b);
                break;
            case '-':
                res = new ResultClass(a-b);
                break;
            default:
                res = new ResultClass();
                break;
        }
        return res;
    }
}

// файл MyResult.java
public interface MyResult
{
    public int getResult();
    public boolean hasResult();
}

И, используя одну из бесплатных версий программ, довольно быстро нарисовал такую блок-схему этой программы на смартфоне (естественно с шибками, так как только начал интересоваться UML):
Image Hosted by PiXS.ru
Интересно было бы посмотреть и сравнить с тем, какую UML- схему/диагамму этой же программы построит Intellij IDEA.