Java и вино 🍷
668 subscribers
21 photos
18 links
Про Java и мой путь в IT

Связь: @sbv239
Download Telegram
Новичковый road-map по Java 😎

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

— Мне 35 лет, женат, есть дочь, давно не курю, пью вино 🍷

Ответил? Давайте дальше

— До этого я занимался интернет-маркетингом с уклоном в SEO (это когда ты делаешь так, чтобы интернет-сайты находились в поиске высоко по нужным запросам, шел целевой трафик и, главное, что-то происходило/покупалось) в одной очень большой компании.

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

Сейчас, находясь в не таком, скажем, уверенном финансовом положении как пол года назад, я настолько лучше себя чувствую эмоционально, что мне кажется, заняться программированием нужно было только лишь для того, чтобы заставить себя уволиться. А там, глядишь, и остальное приложится 😎
👏12👍4
Коллеги, сочувствующие если кто-то имеет представление, опыт, или опыт знакомых, поделитесь, пожалуйста:

https://kata.academy/java/postpayment

Много красивых слов, кругом жир, масло и win-win, но я по своей природе всегда скептически отношусь к подобным вещам. Стоит вписаться, может, как думаете?

Или мне уже такое не нужно совершенно?
Книги. Спросили — отвечаю

У меня их на данный момент три, но есть планы по расширению парка.

1. Изучаем Java (Head First) | Сьерра Кэти, Бэйтс Берт

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

Книга-вход. Лично мне она не подошла: материал подан в игровой форме, объяснение рассчитано на гуманитариев, как мне кажется.

2. Java. Руководство для начинающих | Герберт Шилдт

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

Сейчас жалею, что купил Head First, а не сразу Полное руководство от того же автора.

3. Чистый код. Создание анализ и рефакторинг | Мартин Роберт К.

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

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

Могу ошибаться, конечно, но мне так кажется.

В планах:

4. Java. Эффективное программирование | Блох Джошуа

Книгу я не читал, но отзывы слышал самые лестные. Для ознакомления прочел 10 страниц в нелегальной pdf-версии книги. Понравилось, хочу.

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

--

Традиционно предлагаю в комментариях делиться своими рекомендациями.
👍9🔥1
Сколько часов в день заниматься

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

Я для себя выделил несколько моментов, которыми хочу поделиться

1. Непрерывность

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

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

2. Регулярность

Для меня это 5-6 дней в неделю. Можно реже, но тогда и желаемого можно не достичь. Так и останется программирование на уровне хобби.

3. Отдых

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

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

Меняем программирование на «научиться играть на скрипке» и все те же правила будут работать и там 😀
👍12
Как относитесь к тестовым заданиям?

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

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

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

Мне сложно ответить за senior и middle специалистов, но полагаю, и на этом уровне можно придумать какие-то проверочные вещи.
👍8
Всем интересно, какие задачки бывают на собеседованиях и перед ними

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

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

Сложную показывать пока не буду…
👍14
Ребят, а у вас какой язык основной? (можно отвечать даже тем, кто еще не выбрал, но уже склоняется...). На всякий случай сделаю мультивыбор.
Anonymous Poll
70%
Java
21%
Python
7%
JavaScript
7%
Kotlin
1%
R
3%
PHP
1%
Go
1%
Swift
2%
C
4%
C#
Простой (простой?) вопрос

Что напечатает программа? 10 секунд смотрим и отвечаем. Правильный ответ напишу в комментарии к этому сообщению

#практическиеВопросы
👍5
Мне очень нравится эта задачка, поэтому я хочу с вами ей поделиться

public class Test{
public static void main(String[] args){
Integer num1 = 100;
Integer num2 = 100;
if(num1==num2){
System.out.println("true");
}
else{
System.out.println("false");
}
}
}

Собственно, true или false?

Здесь многие, знакомые с понятием "объект" и "ссылка", скажут, что программа напечатает false (ведь объекты разные). Но это не так. Правильный ответ true и вот почему:

Здесь происходит autoboxing примитива и вызов метода Integer.valueOf(100)

Если теперь мы зайдем в реализацию этого метода, то увидим такой код:

public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}

Если значение находится в диапазоне от -128 до high (по умолчанию 127), то создание нового объекта не происходит, а просто берется из кэша.

Подробное объяснение и хорошая статья по теме

#практическиеВопросы
👍13🎉2
Немного залип в последнее время в видео-интервью на канале

https://www.youtube.com/channel/UCRxBK1uUONfrU7roM36zuTQ

Не то чтобы смотрю их круглыми сутками, но примерно 1 в два дня посматриваю. И вот у меня появилась идея, а чего бы не поучаствовать? Есть две опции: бесплатно с неясными перспективами по времени и за деньги в ближайшие дней 10.

Выбрал второе, так как если уж делать, то сейчас, пока тепленький 😊 В общем, если пройду на платное и попаду в телевизор, не судите. Боязнь сцены и комплекс самозванца у меня с детства, увы.
👍6
Сегодня «провалил» тестовое собеседование, которое состояло из 30 вопросов

Примерно 20 вопросов взял, 10 с ошибками. Успешным считалось 22 правильных ответа

Если честно, то не понравилось от слова «совсем».

Во-первых, потому что мало времени: 1 вопрос = 1 минута это мало, особенно когда нужно решить задачу на построение SQL-запроса и выбрать 1 из очень похожих 4-х ответов.

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

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

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

https://docs.google.com/document/d/1zmV27b2zZUTHPVArIT-byZzy_HbvtVst18RHVw9r5J0/edit#
👍13🔥3
К вопросу о том, где и кто я сейчас

Завтра делаю тестовое задание для одной компании. По итогу отпишусь и расскажу 💪
👍12🔥3
И снова про тестовые…

Написала девушка на LinkedIn

— Здравствуйте, ищите работу Java разработчиком? Их есть у меня
— Да, здравствуйте. Я смотрю у Вас в вакансии 3-6 лет опыта и позиция Senior

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

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

— У меня нет опыта 3-6 лет, резюме выложено на странице и вообще я бы Junior’ом хотел бы попробовать.
— Нет проблем, можно и Junior, но тогда надо сделать тестовое задание

Опа! — подумал я. Не послали и уже хорошо.

— Давайте задание!
— Высылаю

Если кому-то интересно, то задача была следующая:

Есть файл CSV c данными в определенном формате, есть файл JSON с данными в том же формате. Нужно написать консольное приложение с использованием Spring и Maven (обязательно), которое бы конвертировало данные и выводило их в единый JSON-формат. Необходимо проводить обработку и вывод данных с использованием многопоточности.

Вот собственно и ответ на вопрос куда я пропал.

1 день работы + 1 день на переосмысление и рефакторинг. Задачу сделал, в GitHub выгрузил, жду ответа 😀
👍164
А давайте я поделюсь планами на ближайшую неделю

— LeetCode

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

— Тестирование

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

— Функциональное программирование

Нужно совершить над собой усилие и закончить этот курс (тем более что осталось там не более 20%)

— Базы данных

Тоже висит курс по SQL незаконченный (на пару часов времени) — не люблю такие незакрытые гештальты.

— Если удастся при этом попасть на какое-то собеседование буду рад

Но сегодня никакого программирования. Отдых! Сегодня…

…сегодня я позанимаюсь английским 🙈
👍10
Ситуация на рынке

Я активно пользуюсь двумя источниками: LinkedIn и HH. И вот какое у меня складывается ощущение спустя пару месяцев активного мониторинга и попыток «прижаться» хоть куда-то.

Сейчас всем нужны разработчики уровня middle и senior — за них идет борьба, потому что их мало. Если кому-то нужен Junior то требования к нему применяются такие, что становится немного не ясно, зачем компании с такими джунами миддлы и сеньоры.

Я в некотором недоумении если честно и смущении. Но! я бы не хотел, чтобы вы подумали, что я жалуюсь. Отнюдь. У меня есть цель и я к ней иду, просто путь чуть более холмистый оказался 😀
👍21
Работать ли бесплатно (даже не за еду) новичку?

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

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

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

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

Второй вариант немного отодвинет (на пару месяцев) меня от реальной цели, но приведет к ней с большей гарантией (как мне кажется), поэтому мое мнение — да! Я готов поработать бесплатно какое-то время.

А вы что думаете?
👍2
Простите, но я скоро стану парсер-мастером

Прилетело очередное тестовое задание после непродолжительного собеседования.

Необходимо написать программу, импортирующую данные из xml-файла в БД, с учетом следующих ограничений:

— использовать чистую java (без spring)
— для импорта использовать JDBC
— игнорировать дубли. Они могут быть в исходном xml или уже присутствовать в БД. Реализация не должна пропускать дублирующие данные

Тестовые данные я формирую тут: https://www.mockaroo.com/

Для реализации я выбрал PostgreSQL и HikariCP (для работы с пулом соединений)

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

Like it 😀
👍17🔥6🎉1
Не успеваю тестовые задания выполнять. Прилетает новая порция "работы" уже по другому направлению 🙈
👍14