среда, 29 марта 2017 г.

Многопоточность

На днях столкнулся с такой проблемой:
Написал многопоточный поисковик по тексту в текстовых файлах. Вроде бы программа всё делает правильно, но вот только результат выдаёт всегда разный - находит разное количество текстовых файлов, содержащих искомый текст. Результат может колебаться от 3 до 87 файлов.
И непонятно, где искать проблему...
Спросил совета у ментора, но он возиться с моим кодом не захотел и посоветовал сделать поисковик однопоточным и посмотреть, в какой части кода может быть ошибка. Сегодня буду переделывать, искать и снова переделывать. Пока, правда, не совсем понимаю, чем мне поможет дебагинг однопоточного поисковика, когда проблема явно связана с многопоточностью: один поток рекурсивно ищет файлы и для каждого найденного файла запускает отдельный поток, который проверяет, является ли файл текстовым и одержит ли искомый текст. Если бы проблема была не в многопоточности, то поисковик вообще ни чего не находил бы. ))

Из последних новостей: с потеплением меня снова потянуло на вело-покатушки и залезть подальше в горы. К выходным сделаю ТО велосипеду и может быть пару-тройку часов покатаюсь.
Начал по возможности чаще подыматься по ступенькам. Есть у нас местная достопримечательность - фуникулёр:

 Разница в высоте между нижней и верхней остановками фуникулёра составляет примерно 70 метров. Рядом с путями фуникулёра среди деревьев проложена лестница:



Лестница состоит из 368 ступенек. По ней подымаюсь примерно 2 - 3 раза в неделю, когда возвращаюсь из центра города в офис.
В молодости я спокойно пробегал всю лестницу снизу вверх, прыгая через одну ступеньку. При этом наверху у меня даже не сбивалось дыхание. В этом году первый раз смог пешком пройти, шагая через ступеньку, только 2/3 лестницы. На четвертый раз прошёл уже всю лестницу, шагая через одну ступеньку. Но потом был мокрый как мышь и долго восстанавливал дыхание. И ноги после такого восхождения какое-то время сами подгибались. Эта лестница - настоящий адский тренажёр! Такие любят показывать в китайских фильмах про ушу. Обычно по ним заставляют новых послушников монастыря Шао-Линь носить на гору воду. ))
Рассчитываю, что к маю уже смогу забегать на эту лестницу. А в мае собираюсь подняться на гору Пидан.


До      После      GitHub       LinkedIn      HeadHunter.ru

пятница, 24 марта 2017 г.

Вхожу в рабочий режим

Отгремели мои страсти по поводу трудоустройства программистом. Поотключал я на всех сайтах отправку мне уведомлений о новых вакансиях. количество просмотров в день моего резюме на hh.ru упало до нуля... ))
Я решил, что нет смысла искать работу, зная java только наполовину. При таких знаниях и зарплаты будут платить только половину. А т.к. дядька в возрасте и успел разбаловаться хорошей жизнью, то в работе на полставки смысла для меня будет немного.
Работа, которая не приносит денег - это хобби.
Поэтому оставим беспокойство по поводу того, что "все - уже, а я - ещё нет" другим и все свои мысли сосредоточим на том, чтобы планово и основательно изучить java и завершить учебный курс.

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

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

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

Из новостей это, пожалуй, всё. А мне пора работать.


До      После      GitHub       LinkedIn      HeadHunter.ru

пятница, 17 марта 2017 г.

Успехи

В последнее время так много себя жалею, что забываю поделиться своими успехами.
Итак, за прошедший месяц я прошёл шестой модуль курса (Garbage Collection) и в настоящее время прохожу седьмой (Multithreading):

Вчера разговаривал с ментором. Он сказал, что не мог не заметить моего отчаяния по поводу того, что "все уже, а я ещё нет". )) И посоветовал мне никуда не торопиться. мол, ещё 2 - 3 месяца и я меня уже будут приглашать на собеседования. Так что прочь хандра и да, здравствует скорое исполнение мечты!
И пускай хотеть, чтобы всё случилось как можно скорее, я не могу себе запретить, но теперь меня будет греть мысль о том, что потерпеть осталось совсем чуть-чуть. Но резюме я всё равно продолжаю рассылать. ))
На счёт резюме: заметил одну интересную вещь. Если разослать на hh.ru в кучу мест отклики на вакансии, то компании, которые посмотрят моё резюме, в дальнейшем сами заходят посмотреть его снова, если я добавляю в него новые навыки. Т.е. меня теперь знают, обо мне помнят и следят за моими успехами. ))

На этом, пожалуй, на сегодня всё. Пора работать.


До      После      GitHub       LinkedIn      HeadHunter.ru

четверг, 16 марта 2017 г.

Западня

Чем больше познаю java, тем сложнее мне становится работать на моей основной работе.
Раздражает буквально всё, начиная с того, необходимо каждый день 9 часов проводить на опостылевшей работе. Мысли две: "Зачем мне все это?!!" и "Когда же, наконец, я уже начну работать программистом?"
Может быть писал об этом раньше, но с нашего курса уже трое или четверо человек нашли работу... Правда. нашли они её в Питере, Москве, Пензе и Иннополисе.
Повезло же мне жить во Владивостоке - одна полуживая вакансия висит на hh.ru аж с декабря 2016 года. Полная *опа... Прошу прощения за мой французский. Это всё от зависти к однокурсникам))

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

Сейчас пробую поступить в университет г. Иннополиса на курсы java-программистов. Не знаю, получится ли. Сдал вступительный тест и на 50-60% вопросов ответил в ходе технического интервью по телефону. Почему так мало? Потому, что не знаю SQL. Если запрос еще смогу написать с горем пополам, то в теории я полный ноль. На вопросы по java ответил правильно как минимум на 90%.
Надо это дело с SQL исправлять. Но когда?! Каждый день я провожу 9 часов на этой тупой и бессмысленной работе, которая с аппетитом, почавкивая и вытирая грязными лапками с губ жир, пожирает моё личное время.
Вечером только и успеваю, что написать код по очередному заданию с курса.
Чувствую себя в какой-то западне: не могу бросить текущую работу, пока не найду новую, и не могу найти новую, потому, что меня тормозит текущая.

Думал, что моим "счастливым билетом" на скоростной экспресс, едущий в новую жизнь, станут курсы в университете г. Иннополиса. Но у меня нет уверенности, что я туда прошёл по результатам технического интервью. Результат узнаю в течение недели...
Блин!!! Да я так не переживал даже когда сдавал ГОСы в ВУЗе и защищал свои два диплома.

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

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

До      После      GitHub       LinkedIn      HeadHunter.ru