Чеклист Джависта
Создал чеклист на портале 365done для тех, кто начинает учить Джаву. Его можно распечатать и отмечать выполненные пункты. Схожий чеклист я рисовал себе каждый день на листе А4, когда был в начале пути.
30 страниц — читать Шилдта или книгу, которую вы начали
10 задач — решать задачи на ту тему, которую сегодня изучили
Вопросы с собеседований — находить ответы, разбирать их и записывать в отдельную тетрадку
Отжимания и бег — не забывать про спорт, сидячий образ жизни дело опасное
Скачать чеклист в pdf
https://my.365done.ru/checklists/854d8959-97a5-4bc2-9047-48a1e9d1fdc2-5ba3db75f08b45002ebfe52d.pdf
Создал чеклист на портале 365done для тех, кто начинает учить Джаву. Его можно распечатать и отмечать выполненные пункты. Схожий чеклист я рисовал себе каждый день на листе А4, когда был в начале пути.
30 страниц — читать Шилдта или книгу, которую вы начали
10 задач — решать задачи на ту тему, которую сегодня изучили
Вопросы с собеседований — находить ответы, разбирать их и записывать в отдельную тетрадку
Отжимания и бег — не забывать про спорт, сидячий образ жизни дело опасное
Скачать чеклист в pdf
https://my.365done.ru/checklists/854d8959-97a5-4bc2-9047-48a1e9d1fdc2-5ba3db75f08b45002ebfe52d.pdf
Что посмотреть на выходных — 7
Плейлист лучших докладов с JPoint 2018
https://www.youtube.com/playlist?list=PLVe-2wcL84b9CC4_PMCxQrDYywz7J0beo
Документальный фильм о Стиве Возняке
https://youtu.be/8LSkOT9nupo
Презентация полёта на Луну от SpaceX
https://youtu.be/w_wHCJmP4Yo
#чтопосмотреть
Плейлист лучших докладов с JPoint 2018
https://www.youtube.com/playlist?list=PLVe-2wcL84b9CC4_PMCxQrDYywz7J0beo
Документальный фильм о Стиве Возняке
https://youtu.be/8LSkOT9nupo
Презентация полёта на Луну от SpaceX
https://youtu.be/w_wHCJmP4Yo
#чтопосмотреть
Подготовка к собеседованию
Подготовьте ответы на вопросы ниже. Так вам не нужно будет придумывать их во время интервью. Плюс это поможет отбросить неинтересные компании.
Вопросы:
— какие задачи выполняли на прошлой работе
— опишите, как выполняли одну из них
— почему меняете работу
— что не нравилось на прошлом месте
— что нравилось
— на какую зп рассчитываете
— на что обращаете внимание, при выборе компании
Подготовьте ответы на вопросы ниже. Так вам не нужно будет придумывать их во время интервью. Плюс это поможет отбросить неинтересные компании.
Вопросы:
— какие задачи выполняли на прошлой работе
— опишите, как выполняли одну из них
— почему меняете работу
— что не нравилось на прошлом месте
— что нравилось
— на какую зп рассчитываете
— на что обращаете внимание, при выборе компании
Проблемы современного софта
На Хабре вышел перевод статьи «Моё разочарование в софте». Суть в том, что с каждым релизом приложения раздуваются в размерах, больше нагружают систему и медленнее работают. Многое зависит от личной ответственности разработчика. Ведь идеальный программист должен разрабатывать эффективные простые продукты и гордиться своей работой.
Статья набрала 2 тысячи комментариев за неделю
https://habr.com/post/423889/
На Хабре вышел перевод статьи «Моё разочарование в софте». Суть в том, что с каждым релизом приложения раздуваются в размерах, больше нагружают систему и медленнее работают. Многое зависит от личной ответственности разработчика. Ведь идеальный программист должен разрабатывать эффективные простые продукты и гордиться своей работой.
Статья набрала 2 тысячи комментариев за неделю
https://habr.com/post/423889/
Java Dev в VK
Создал канал в ВК: https://vk.com/backend_dev. Теперь буду писать и туда. Пишите комментарии, ставьте лайки, дизлайки, рассказывайте друзьям. И я на связи: @zybkin
Создал канал в ВК: https://vk.com/backend_dev. Теперь буду писать и туда. Пишите комментарии, ставьте лайки, дизлайки, рассказывайте друзьям. И я на связи: @zybkin
String в Java 11
В Java 11 классе String появились новые методы:
Убирает пробелы по краям. В отличие от trim() убирает все невидимые символы: пробелы, табуляцию и прочее
Убирают невидимые символы слева и справа соответственно
Проверяет состоит ли строка из невидимых символов
Преобразует все строчки в строке в соответствующий Stream
Копирует содержимое строки нужное количество раз и возвращает результат в одной строке
В Java 11 классе String появились новые методы:
public String strip()
Убирает пробелы по краям. В отличие от trim() убирает все невидимые символы: пробелы, табуляцию и прочее
public String stripLeading()
public String stripTrailing()
Убирают невидимые символы слева и справа соответственно
public boolean isBlank()
Проверяет состоит ли строка из невидимых символов
public Stream<String> lines()
Преобразует все строчки в строке в соответствующий Stream
public String repeat(int count)
Копирует содержимое строки нужное количество раз и возвращает результат в одной строке
Идентификаторы
— используются для именования классов, методов, переменных
— состоят из любой последовательности букв верхнего и нижнего регистра, цифр, знака нижнего подчеркивания или знака доллара
— не должны начинаться с числа
— case-sensitive или чувствительны к регистру
Примеры:
— используются для именования классов, методов, переменных
— состоят из любой последовательности букв верхнего и нижнего регистра, цифр, знака нижнего подчеркивания или знака доллара
— не должны начинаться с числа
— case-sensitive или чувствительны к регистру
Примеры:
AvgTemp
count
a4
$test
isOk
Кстати, скоро запускаю марафон для желающих изучить основы Джавы.
Так что ставьте IntelliJ IDE, JDK, начинайте осваивать Git и скачивайте Шилдта https://yangx.top/java_developer/49
Так что ставьте IntelliJ IDE, JDK, начинайте осваивать Git и скачивайте Шилдта https://yangx.top/java_developer/49
Test Last Development
Чтобы избежать ошибок при новых доработках разработчики пишут модульные тесты. Они позволяют изолированно проверить работу публичных методов классов.
TLD – подход, когда тесты пишутся в последнюю очередь - после написания кода, сборки и проверки приложения на работоспособность. То есть разработчик сначала проверяет вручную, что приложение работает как надо и не ломает существующие тесты. А потом пишет модульные тесты, которые защищают код от поломки из-за будущих доработок.
Минусы TLD. Если время на разработку ограничено, то модульные тесты могут быть и не написаны. Разработчик проверил, что приложение работает и запушил. Таким образом не развивается дисциплина написания тестов. Плюс когда тесты пишутся в конце, дизайн кода может стать таким, что код будет неудобно покрывать модульными тестами. А это приводит к рефакторингу и дополнительным затратам времени.
Чтобы избежать ошибок при новых доработках разработчики пишут модульные тесты. Они позволяют изолированно проверить работу публичных методов классов.
TLD – подход, когда тесты пишутся в последнюю очередь - после написания кода, сборки и проверки приложения на работоспособность. То есть разработчик сначала проверяет вручную, что приложение работает как надо и не ломает существующие тесты. А потом пишет модульные тесты, которые защищают код от поломки из-за будущих доработок.
Минусы TLD. Если время на разработку ограничено, то модульные тесты могут быть и не написаны. Разработчик проверил, что приложение работает и запушил. Таким образом не развивается дисциплина написания тестов. Плюс когда тесты пишутся в конце, дизайн кода может стать таким, что код будет неудобно покрывать модульными тестами. А это приводит к рефакторингу и дополнительным затратам времени.
Literals
Литералы — это константные значения конкретного типа
Литералы — это константные значения конкретного типа
100
— целочисленный литерал98.3
— литерал с плавающей точкой'X'
— символьный литерал"This is String"
— строковый литералTest Driven Development
TDD – подход разработки ПО, который основывается на повторении коротких циклов. Изначально пишется тест, который покрывает желаемое изменение, далее пишется сам код, который позволяет пройти данный тест, и в конце проводится рефакторинг нового кода к соответствующим стандартам.
Коротко, TDD-процесс состоит из элементов, которые повторяются в цикле: написание теста, написание кода и рефакторинг.
Такой подход заставляет писать код мысля иначе. Мы знаем постановку задачи. Заранее придумали общий верхнеуровневый алгоритм решения задачи и выделили список требований к функционалу. Но над алгоритмами низкого уровня пока ещё не думали. Итак, наши требования группируются по некоторым признакам. Эти группы являются будущими компонентами программы.
Мы берём первую группу требований и проектируем интерфейс. Берём требование, пишем тест, в тесте определяем несуществующий метод несуществующего класса. Далее с помощью среды разработки устраняем очевидные проблемы, создаём интерфейс, метод и реализующий его класс. Запускаем тест. Тест падает, поскольку вызываемый метод не делает пока ничего. Если тест прошёл, значит он написан неверно. Дорабатываем тест пока он не будет падать при запуске. Такой тест называется красным.
Далее наша задача написать минимум кода, чтобы красный тест стал зелёным. Пишем код, проверяем тест и запускаем остальные тесты. Если он зелёный, то переходим к следующей стадии – рефакторингу и редизайну кода. Потом снова запускаем тесты. Упало – исправляем. Далее переходим к следующему требованию – снова красный тест, минимум кода чтобы он стал зелёным, рефакторинг, проверка. И так далее.
TDD – подход разработки ПО, который основывается на повторении коротких циклов. Изначально пишется тест, который покрывает желаемое изменение, далее пишется сам код, который позволяет пройти данный тест, и в конце проводится рефакторинг нового кода к соответствующим стандартам.
Коротко, TDD-процесс состоит из элементов, которые повторяются в цикле: написание теста, написание кода и рефакторинг.
Такой подход заставляет писать код мысля иначе. Мы знаем постановку задачи. Заранее придумали общий верхнеуровневый алгоритм решения задачи и выделили список требований к функционалу. Но над алгоритмами низкого уровня пока ещё не думали. Итак, наши требования группируются по некоторым признакам. Эти группы являются будущими компонентами программы.
Мы берём первую группу требований и проектируем интерфейс. Берём требование, пишем тест, в тесте определяем несуществующий метод несуществующего класса. Далее с помощью среды разработки устраняем очевидные проблемы, создаём интерфейс, метод и реализующий его класс. Запускаем тест. Тест падает, поскольку вызываемый метод не делает пока ничего. Если тест прошёл, значит он написан неверно. Дорабатываем тест пока он не будет падать при запуске. Такой тест называется красным.
Далее наша задача написать минимум кода, чтобы красный тест стал зелёным. Пишем код, проверяем тест и запускаем остальные тесты. Если он зелёный, то переходим к следующей стадии – рефакторингу и редизайну кода. Потом снова запускаем тесты. Упало – исправляем. Далее переходим к следующему требованию – снова красный тест, минимум кода чтобы он стал зелёным, рефакторинг, проверка. И так далее.
Думай как программист
Системное подход решения задач - это крутейший навык в любой области. Есть проблемы, которые часто повторяются. Системный подход помогает найти такое решение, которое избавляет от этих проблем. На Хабре по этой теме вышел перевод статьи "Уроки по решению задач" https://habr.com/post/422543/.
Что нужно делать, когда сталкиваешься с новой задачей:
1. Докапывайтесь до сути задачи
Бывает, долго сидишь над задачей и не знаешь, как её решить. Только начинаешь рассказывать её коллеге - решение тут же приходит само. Поэтому важно описать задачу, нарисовать схему или объяснить кому-то простым языком.
2. Планируйте решение
Нет ничего лучше расписанного плана решения на бумажке. Когда будете делать план, задайте себе вопросы типа: "если взять X, то какие шаги нужно сделать, чтобы получить Y".
3. Декомпозируйте
Декомпозиция - это разделение одной большой задачи на несколько маленьких простых задач. Легче решить 5 задачек и объединить их, чем обдумывать одну огромную. Бывает, к такой задаче даже страшно притронуться.
4. Дебажьте, если застряли
Проверяйте каждый шаг, чтобы найти ошибку. Если это не помогает, то вернитесь на шаг назад и попробуйте другое решение. Ещё хороший вариант - найти решение схожей задачи, разобрать его и заюзать в своих целях.
Системное подход решения задач - это крутейший навык в любой области. Есть проблемы, которые часто повторяются. Системный подход помогает найти такое решение, которое избавляет от этих проблем. На Хабре по этой теме вышел перевод статьи "Уроки по решению задач" https://habr.com/post/422543/.
Что нужно делать, когда сталкиваешься с новой задачей:
1. Докапывайтесь до сути задачи
Бывает, долго сидишь над задачей и не знаешь, как её решить. Только начинаешь рассказывать её коллеге - решение тут же приходит само. Поэтому важно описать задачу, нарисовать схему или объяснить кому-то простым языком.
2. Планируйте решение
Нет ничего лучше расписанного плана решения на бумажке. Когда будете делать план, задайте себе вопросы типа: "если взять X, то какие шаги нужно сделать, чтобы получить Y".
3. Декомпозируйте
Декомпозиция - это разделение одной большой задачи на несколько маленьких простых задач. Легче решить 5 задачек и объединить их, чем обдумывать одну огромную. Бывает, к такой задаче даже страшно притронуться.
4. Дебажьте, если застряли
Проверяйте каждый шаг, чтобы найти ошибку. Если это не помогает, то вернитесь на шаг назад и попробуйте другое решение. Ещё хороший вариант - найти решение схожей задачи, разобрать его и заюзать в своих целях.
Что посмотреть на выходных — 8
Круто, когда интервью русских разработчиков набирают десятки тысяч просмотров. А еще круче, когда эти интервью берёт девушка. Короч наслаждайтесь:
Интервью с разработчиком из YouTube
https://youtu.be/AtzHvKYWRM8
Как живут программисты в США
https://youtu.be/8J91m5oGFDI
Интервью с основателем школы QA в кремниевой долине
https://youtu.be/oSDo1VMtcDI
Следить за новыми видосами можно здесь @progblogtv
#чтопосмотреть
Круто, когда интервью русских разработчиков набирают десятки тысяч просмотров. А еще круче, когда эти интервью берёт девушка. Короч наслаждайтесь:
Интервью с разработчиком из YouTube
https://youtu.be/AtzHvKYWRM8
Как живут программисты в США
https://youtu.be/8J91m5oGFDI
Интервью с основателем школы QA в кремниевой долине
https://youtu.be/oSDo1VMtcDI
Следить за новыми видосами можно здесь @progblogtv
#чтопосмотреть
Онлайн-компилятор
Когда очень хочется проверить решение задачки, а компа с IDE под рукой нет
https://ideone.com/
https://www.jdoodle.com/
Когда очень хочется проверить решение задачки, а компа с IDE под рукой нет
https://ideone.com/
https://www.jdoodle.com/