Share Next Entry
[sticky post]Можно ли стать программистом в сорок лет, после тридцати, после сорока?
benjamindudko
НАЧАЛО
Пост номер 1.

Если вы нашли мою статью, значит, видимо, это вопрос для вас актуальный, и мои старания не потрачены впустую. Начнем с того, что «сорок лет» выглядит как какой-то очередной психологический возрастной рубеж. «Тридцать лет» – тоже. Можно поставить вопрос так: Можно ли научиться программировать после тридцати. Но тем, кому почти сорок (это и я тоже) или уже за сорок будут чувствовать, что опыт, описанный ниже, не для них, но это не так, как мне кажется.
Чем мой опыт более всего интересен, так это тем, что:

1. Мне сейчас (на момент написания статьи, конечно) 37 лет;
2. Я еще пока не выучился программированию;
3. Я уже начал учить программирование;
4. Я буду выкладывать свой опыт обучения в процессе этого обучения, тем самым обеспечивая читателя наиболее достоверной информацией.

Очень жаль, что такая мысль (начать вести журнал по опыту обучения программированию в почти сорок) мне не пришла ранее, еще до окончания курса «Java базовый» (еще и двух недель не прошло). Но это не страшно. У меня впереди обучение курсу «Java продвинутый» (Java EE). Вот после этого должно начаться самое интересное: мне нужно будет устроиться куда-нибудь на работу, совсем без опыта – это ужасно!

Еще немного предыстории. В свои 37 я решил, что я могу это сделать (стать программистом), хотя лет этак десяток назад, я думал, что начинать программировать уже поздновато. Что же мне воодушевило? Во-первых, один знакомый моего знакомого (он программист) как-то сказал этому моему знакомому, что сейчас одни из самых высокооплачиваемых программистов – это разработчики «Ява» (Правильно считается «Джава», хотя неформально многие говорят «Ява»). Я подумал: «Может я смогу…, почему бы и нет…». Это было где-то в ноябре 2012-го. Незадолго до этого, 1 ноября, я поздравлял с Днем рождения своего друга, который тоже работает программистом, уже давно. После всех пожеланий, как обычно, как и в случаях, когда он звонит меня поздравить, мы снова сошлись на том, что мы давненько не встречались, не выпивали, не общались и т.д. и т.п. Спустя неделю-две, после своих вышеуказанных мыслей я решил, что нужно напомнить своему другу о нашей очередной идее о встрече, и осуществить эту идею в конце то концов, что позволит мне, в числе прочего, получить бесплатную квалифицированную консультацию по моему новому плану (научиться программировать «на старости лет»). Сказано – сделано!

Мы таки встретились за 0.5 виски и 0.5 водки у меня дома. Надо сказать, что я сильно почувствовал, что давненько не общались – некогда было закусывать, все время хотелось говорить, говорить, говорить без остановки (без похмелья не обошлось). Самое главное, что я хотел услышать и услышал это то, что он твердо и искренне сказал, что он абсолютно уверен в том, что у меня все получится. Он добавил, что мне особенно было приятно, что он всегда считал меня толковым и т.п. За это я ему очень благодарен.
Несомненно, стоит отметить, что программирование не совсем так просто «свалилось» на меня. Моя квалификация по основному образованию – «математик-программист». Однако (!), квалификацию (диплом) я получил аж в теперь уже далеком 1997 г. Учили мы там Ассемблер, Паскаль и Си. Ну, вы представляете программирование в универе – лабораторные работы по ЧМО (неформальная аббревиатура для «Численные методы») и др. С тех пор я не программировал. Да, в памяти оставались некоторые фрагменты моего любимого на тот момент языка Си, такие как: циклы for и while, массивы, Конструкторы (только то, что они такие существуют), Деструкторы (тоже самое) и что-то еще. Сильно маловато для того, чтобы сказать, что я хоть немного знаю программирование. Да, “Hello world!” я бы написал минут за …дцать, погуглив немного. То есть можно сказать – начинаю с нуля!

Звоню я на курсы по Java и спрашиваю:
– Мне уже почти сорок, я хочу к вам на курсы… Это нормально?
– Да нормально, – говорят, – у нас приходят и похуже (Слово «похуже» меня, надо сказать рассмешило, а должно было расстроить?).
– Что от меня требуется кроме оплаты и т.п.?
– Вы знаете языки программирования?
– Немного помню Си, учил в универе на ФПМИ (факультет прикладной математики и информатики).
– Ну, и хорошо, приходите.
– ОК. – конечно, им же деньги нужны, зачем отказываться от клиента...

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

Стартовали курсы в начале декабря, 3 раза в неделю, по три астрономических (надо полагать – 4 академических) часа. Из-за новогодних праздников закончили мы относительно недавно – где-то в середине января 2013-го (на момент написания статьи - не более 2-х недель).
Теперь непосредственно на счет курсов.

Да, немного отвлекусь. Так как я решил очень серьезно подойти к вопросу, я нашел на торрентах кое-какую литературу и начал ее изучать, так сказать, чтобы не «ударить лицом в грязь», я же все-таки не совсем специалист по Си, тем более C++, а Java – язык очень объектно-ориентированный. Слово «очень» в данном случае уместно. Я прочел на английском (эта книга есть вроде и на русском, просто хотел укрепить свои знания английского языка) “Java for dummies”. Не рекомендую эту книгу ни на каком языке. Не то, чтобы совсем бесполезно, но если не все время свободное, то можно найти и получше, например, “Философия Java” (“Thinking in Java”), есть еще и другие, в том числе и очень даже хорошие. Нужно просто, прежде чем начинать читать, поискать отзывы других читателей на форумах.

Так вот, пришел на курсы я после прочтения «Ява для чайников» и где-то 25-30% от «Философия Java». Группа состояла из 8 или 9 человек, точно не помню. Вроде 1 компа не хватало (всего 8), и кто-то, как обещал, приходил со своим ноутбуком, кажется так. Это предварительное прочтение, а также мое огромное желание научиться программировать на Java принесло определенные плоды: практически на каждом занятии (одно мне пришлось пропустить – ездили в Вильнюс за жрачкой) я был первым, кто выполнял задания, которые давала преподаватель – хорошенькая такая, я почти влюбился, очень мне она понравилась. Приходил домой, затем, на следующий день (я уже не работал, бизнес свернул – это отдельная история – позже расскажу) у меня было очень много свободного времени – почти целый день, я выполнял те задания, которые нужно было делать дома. Причем я старался их делать так, чтобы использовать знания, которых мы с группой еще не достигли, но я уже изучил по книге.

Я жадно впитывал все знания, которыми делилась с нами очаровательная преподаватель. Да, похоже, и женщины могут быть хорошими программистами или, как минимум – преподавателями по программированию. Задавал вопросы, когда что-то было не совсем ясно, чувствовал себя на высоте, когда слышал, какие вопросы задают другие члены группы. Я же прочел уже почти полкниги к тому времени! Я знал гораздо больше остальных! Не буду говорить за всех, но, как ни крути, все равно знания гораздо легче впитываются на курсах, чем при самостоятельном изучении. Конечно, все равно придется до многого доходить самостоятельно, на курсах всему не научат, но базовые знания лучше получать на курсах, мне так кажется.

Так вот, на последнем занятии те, кто написал финальный проект, мог его защитить, чтобы получить Сертификат об успешном окончании курса Java -базовый. Проект состоял из библиотеки javax.swing (фреймы, панели, меню и т.п.) и работой с базами данных mySQL. Я все выходные, вместо того, чтобы расслабляться за водочкой или вискарёчком, как все нормальные люди, сидел строчил проект. Изучал, то, что не изучилил на занятиях, чтобы улучшить проект. В итоге я пришел на последнее занятие с полностью рабочим проектом. Как я позже убедился, мой проект был гораздо более функциональным, чем любой другой из группы, так мне показалось. Как я узнал в этот день, я был единственным «студентом», кто завершил написание проекта к последнему занятию. Если бы наша очаровательная преподавательница не спросила меня, можно ли давать сертификат еще одному члену нашей курсовой команды, и я не ответил, что можно дать авансом, то я был бы единственным, кто получил данный сертификат на последнем занятии. Уверен, что все остальные, или почти все, либо уже получили, либо вот-вот получат долгожданную бумажку, которая по сути ничего не дает, пока.

Как я узнал, наши знания, базовые знания по языку Java, – это пока ничто, точнее – почти ничто. Работодателям мы пока не сильно интересны, не более, чем выпускники ВУЗов, которые тоже не могут похвастаться специфическими знаниями и опытом.

Теперь вот что! В ближайшую субботу, 3 февраля, я еду на первое занятие по Java-продвинутый, то бишь – Java EE. После окончания, я надеюсь, не пройдет и нескольких месяцев, как я буду работать разработчиком Java в одной из IT компаний Минска, – очень на это надеюсь! Возможно, мне снова придется трудновато – буду стажером среди «сосунков» (в хорошем смысле), только что закончивших ВУЗ.

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

Пожелайте мне удачи!

Да, самое главное – следите за новостями. Буду стараться писать после каждого занятия.


02 февраля 2013 г.

Итак – первое занятие…. Вернулся я домой с поездки около 2:30 утра. В пятницу (вчера, 1 февраля) решили сгонять в Вильнюс, чтобы страховка (зеленая карта) зря не пропадала. Приехали вчера примерно в 12:00 на переход Каменный Лог, очередь была небольшая – машин 20-30, простояли в очереди примерно 4 часа. Приехали в Вильнюс, купили продуктов, решили возвращаться через Котловку. Приехали на границу, впереди 4 машины – красота! Провели на границе 3 часа 40 минут! Приехал домой уставшим, болела голова, выпил аспирин, лег спать почти в 3 утра. А завтра занятие в 9:00, вот блин! Решил, так как занятие первое – нужно посетить при любом раскладе. Сказано – сделано. С утра чуть проснулся, приехал на занятие за 2 минуты до начала, остальные члены группы уже собрались возле заветного кабинета.

Ждем преподавателя, начинаем общаться друг с другом, столпившись возле кабинета. Преподавателя все нет и нет. Прошло минут 20, преподавателя все нет и нет. Среди нас начинают веять дух возмущений. Один из нас зашел в один из соседних кабинетов, спросил у какого-то другого преподавателя, знает ли он, как можно связаться с администрацией. В здании никого из администрации нет – у них сегодня, в субботу, равно как и воскресенье, выходной. Данный преподаватель, сказал, что у него нет личного номера мобильника ни одного работника, отвечающего за курсы. Подождали мы в общей сложности минут 40-45 и разошлись по домам, предварительно обменявшись контактными данными, договорившись связаться и решить, стоит ли завтра, в воскресенье, снова приезжать.

В общем, первое занятие не состоялось! Самое обидное было не выспаться. Если бы не возвращение с поездки в полтретьего утра  – хрен с ним, а так обидно.


03 февраля 2013 г.

Ну вот, наконец, состоялось первое занятие курса Java-продвинутый (Java EE).

Преподаватель – мужчина лет на 5 (это как минимум) моложе меня. Да, на счет того, что вчерашнее занятие не состоялось: у преподавателя были какие-то семейные вопросы, и так как у нас не было его контактных данных (теперь есть), у него – наших, поэтому мы были в неведении. Вчера же пришла SMS от администрации курсов, что завтра, 03 февраля, занятие состоится согласно расписанию.

Тема занятия была целиком и полностью (не считая знакомства и пару слов каждый о себе) посвящена тому, с чем Java разработчик сталкивается, как правило, лишь косвенно – HTML, CSS и пару слов про JavaScript. Так как «косвенно», то больше занятий на эту тему не предвидится. Ничего непонятного на занятии не прозвучало, для себя я нового почти ничего не открыл (за пару дней до занятия я прочел в общих чертах про это). Похоже, что и среди остальных студентов не было тех, кому что-то непонятно.

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

9 февраля 2013 г.

Вот и прошло занятие № 2. Мы узнали, что такое “Tomcat” и как его интегрировать в “Eclipse” (настроить сервер Tomcat 1.7 в IDE). Конечно, мы узнали много больше, но остальное, если начать описывать, будет скучновато. Также я узнал, что следующее занятие, которое проходит в том же самом кабинете, сразу за нашим, проводит преподаватель, которая нас научила “Java SE” буквально месяц назад.

Вчера, стараясь опередить события, я пытался установить “Glassfish” и интегрировать его “Eclipse”. После многочасовых стараний (я таки его внедрил, но сервер отказывался запускаться в рамках данного IDE, все время выдавал ошибки) я плюнул на это и решил все-таки дождаться занятия, на котором было сказано, что “Glassfish” не сильно популярен, поэтому, вероятно, и возникают некоторые сложности по внедрению его в “Eclipse”, о которых я предварительно прочитал на многих форумах, как русскоязычных, так и англоязычных. Ну, Tomcat так Tomcat!

Также мы создали пустой проект, на чем пришлось закончить – наше время истекло. Завтра продолжим, должно стать интереснее – будем уже писать что-то более-менее конкретное. Без практики такие вещи быстро забываются.

Что нехорошее было на данном занятии, так это то, что не на всех компьютерах все было удачно установлено, поэтому было потрачено, «на глаз», минут сорок, что немало, на хождение преподавателя от одного компа к другому, помогая настроить среду разработки. Мои вчерашние старания (путешествия по всем возможным менюшкам и кнопкам Eclipse для Java EE) позволили мне сегодня на занятии сделать все настройки в считанные минуты. Да, и традиционный перерыв в середине занятия, похоже, по указанным выше причинам, был благополучно пропущен.

Так как время (три часа) прошло как-то быстро, значит скучно не было!


10 февраля 2013 г.

Закончилось третье занятие. Более-менее подробно изучали сервлеты (servlet). Хотя первый сервлет “Hello World” я написал еще вчера (какое-то очень приятное чувство возникло, когда севрлет удачно запустился – намного приятнее, чем когда раньше запускался “Hello World” из метода main() в Java SE), частично прочитав предоставленный материал, все равно было интересно, звучали вещи, которые в книгах не всегда встречаются. Посоветовали прочитать еще о JSP – понятия пока не имею, что это такое. По-любому 1-я буква значит “Java” – тут к гадалке не ходи, как говорится. Ну, на сегодня программирования хватит, нужно иногда отдыхать, иначе может быстро надоесть.


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


16 февраля 2013 г.

Завершилось очередное занятие. Занимались изучением JSP (Java Server Pages) – очень полезная штуковина. Я предварительно ознакомился с информацией, которую нам предоставили на прошлом занятии. Однако, как обычно, на занятии узнаешь некоторые вещи, которые далеко не везде можно прочитать (включая информацию о том, что популярно, а что – не очень, что стоит делать, а чего лучше избегать и т.д.). Еще раз убеждаюсь, что слушать проще и приятнее, чем читать. Читать все равно придется много, всё нигде не расскажут, это нереально. Также немного затронули JavaBeans. Ничего сложного в данных темах нет. Как и везде, нужно как можно раньше начинать использовать полученные знания, чтобы они лучше закрепились. Единственная проблема – пару дней назад я немного приболел, как и многие вокруг. В таком состоянии гораздо больше желания полежать на диване, чем посидеть за компьютером, изучая что-то новое; нет желания напрягаться. Так как все, что нужно было бы сделать к завтра, у меня уже сделано, то можно и сделать себе полвыходного, до завтраутрошнего занятия.
Про перерывы болше, не пишу, похоже, из больше и не предвидется. Ну, и хрен с ними!

Да, заметил еще одну интересную особенность. Толи это касается программистов, толи преподавателей по программированию (или преподавателей IT сферы). А именно: после изложения каких-то своих мыслей, идей или просто какой-то информации, все сказанное обычно завершается такой фразой: «Ну, вот как-то так» или «Ну, как-то так» или просто «Как-то так». Причем эта фраза возникает не только в устной речи, но даже и в письменной бывает. Вот уж точно язык определяет мышление, причем не только разговорный, но и язык(и) программирования.


17 февраля 2013 г.

Завершилось очередное занятие. Несмотря на пребывание не совсем в форме из-за простуды, было интересно. Что мы делали: еще говорили о JSP и сервлетах, а также о пользовательских тегах. Написали свой тег для вывода “Hello World”, но не успели сделать тоже самое с разными атрибутами. У меня все никак не пройдет смешанное чувство и некоторые сомнения на счет того, что я четко и ясно понимаю всю логику взаимодействия JSP, сервлетов, JavaBeans и пользовательских тегов (хотя с тегами, как раз, все ясно). На первый взгляд, вроде  все ясно, но когда начинаешь писать какое-то свое простейшее приложение (конечно сложнее, чем “Hello World”), то начинаешь немного буксовать. Чувствуется нехватка информации в скачанных уроках (да, там есть еще литература, в основном на английском, это я пока не беру в расчет). Прихожу к выводу, что нужно найти какую-то подходящую литературу по данным темам, чтобы вникнуть немного глубже. Было бы правильнее и проще, если бы мы на занятии разобрали какой-либо более сложный (но не очень громоздкий) пример, который бы включал в себя и сервлеты, и JSP, и JavaBeans, тогда бы картина вырисовывалась бы гораздо проще и быстрее. В любом случае прочтение литературы (хорошей) по теме никогда не повредит.
Далее на занятиях планируется разбираться с “JSTL”, на сколько я понимаю, – библиотекой готовых тегов, которая практически полностью избавит от необходимости писать свои.

Сейчас найду хорошую литературу по указанным темам, почитаю, что успею до субботы. Думаю, времени до следующего занятия (23 февраля 2013 г., придется воздержаться от отмечания праздника, максимум – чуть-чуть шампанского) должно хватить, чтобы получить четкое понимание взаимодействия указанных технологий. Может сгодится эта: “Basham B., Sierra K., Bates B . - Head First Servlets and JSP (2nd Edition) (A Brain-Friendly Guide)”? Или кто подскажет на русском, или на английском, но лучше? Я смотрю все, что есть (на русском), в основном десятилетней давности. Неужели с тех пор не сильно все изменилось?


19 февраля 2013 г.

Вчера прочитал первые четыре главы книги “Basham B., Sierra K., Bates B . - Head First Servlets and JSP (2nd Edition) (A Brain-Friendly Guide)”. Подробнее: http://benjamindudko.livejournal.com/1002.html


23 февраля 2013 г. Всех с Праздником!

Несмотря на праздник, сегодня занятие прошло в нормальном режиме, как туперь уже всегда всегда, без перерыва. Очень полезное занятие, долгожданное для меня (я уже собирался спрашивать преподавателя, когда нас просветят в этом направлении). Нам была предложена на обозрение схема динамического web приложения, основанная на шаблоне MVC (Model-View-Controller). Разбор шаблона был организован весьма наглядно, с использованием примеров – переход от некрасивой «скриплетной» формы JSP (с Java кодом внутри страницы, что для web дизайнера неприемлемо) к разбиванию приложения на логически связанные части. Да, я заранее прочел в книге про такой подход к проектированию, но, надо сказать, что во время занятия стало очевидно, что книга совсем отдаленно рассказывает о таких вещах, о которых нужно иметь гораздо более четкое представление. Теперь стало понятно, – нет, надо еще потренироваться со своими примерами и домашними заданиями, – как теперь нужно подходить к разработке web приложения, чтобы оно было свободно от «говнокода».

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

Много нельзя (завтра с утра снова учимся), но какой-то алкоголь сегодня в кровь должен поступить...


24 февраля 2013 г.

Сегодняшнее занятие, как и предполагалось, было полностью посвящено знакомству с SQL. Надо сказать, если бы я пропустил занятие, то ничего бы не потерял. Намного больше того, о чем сегодня говорилось, мы изучили в рамках Java SE (базовый), на предыдущем курсе. Для того, кто мало знаком с базами данных, занятие, безусловно, было полезно. Из SQL запросов далее, чем «создать базу» (CREATE DATABASE/SCHEMA), «удалить базу» (DROP) и тоже самое с таблицами, плюс вывести данные таблиц(ы) (SELECT), мы и не продвинулись. Да, нам конечно дали еще материала скачать и, что стоит отметить – сегодня был перерыв в середине занятие, что совсем необычно. Думаю в течение недели, до субботы – следующего занятия, сделать еще 1-2 домашних заданий по JSP-Servlets-JavaBeans, используя MVC шаблон, чтобы все это лучше закрепилось. В любом случае, чтобы научиться программировать, необходимо (не достаточно) программировать. Выполнение домашних заданий – не самый плохой вариант; подозреваю, что и не самый лучший.


2 марта 2013 г.

Хорошо сегодня позанимались, даже про перерыв не забыли. По моей инициативе (я направлял исходный код, работающий, одного из домашних заданий с набором вопросов) мы на некоторое время вернулись от баз данных к JSP с сервлетами и бинами, MVC шаблону; я получил ответы на волнующие меня вопросы, расписывать которые здесь не буду, чтобы не выходить далеко за рамки основного предназначения данной статьи.

Остальное время было посвящено базам данных, тому, как делать код более универсальным (например, чтобы не пришлось весь его переделывать при переносе приложения с одной СУБД на другую) и некоторые другие важные и не очень подробности.

Хочу еще поставить плюс преподавателю за то, что он умело подогревает интерес к теме занятия, очень доходчиво объясняет (для меня, по крайней мере). Да, конечно частенько хочется задавать вопросы (я так и поступаю) для уточнения каких-либо деталей. Вопросы не остаются без ответа. Но еще раз повторюсь: самый лучший способ усвоения материала – использовать его на практике, то есть – программировать, программировать и программировать.


3 марта 2013 г. (написано 4 марта 2013 г.)

За занятие прошли сразу несколько тем – две с половиной. Закончили с соединениями с базами данных (разбирали способ соединения через “Connection Pool”, который с этого момента рекомендовано использовать всегда), прошли “Filters” и “Listeners”. Две последние темы оказались очень простыми. Не могу сказать, что “Connection Pool” – это сложно. Однако чувствую, что нужно срочно запрограммировать соединение, используя этот способ. Но это не сегодня, сегодня у жены День рождения, а вчера у нас был День свадьбы (12лет), нужно это пережить. Возможно, на следующих выходных занятий не будет, станет известно к четвергу.


9 марта 2013 г.

Сегодня, как и ожидалось, занятий не было. Завтра тоже не будет. Накануне нас предупредили об этом SMS рассылкой.
Отметили с женой 8 марта, выпили на пару не более 400 гр. 8-летнего “Black Velvet”. Толи из-за того, что я давно не выпивал, толи из-за того, что нарушил одно из правил – не начинать пить на сытый желудок, но ночью стало как-то хреновато – голова разболелась. Спасла горячая ванна и шипучий аспирин. Мой вам совет: 1-я рюмка всегда должна быть на пустой желудок – это, конечно, не гарантия отсутствия похмелья, но все же – фактор в пользу лучшего состояния утром.

Хоть занятия и отменили, но я, конечно, не сижу, сложа руки: читаю, программирую. Получается хорошо, хотя и не без некоторых тормозов; когда изучаешь что-то новое, не бывает, чтобы все шло очень гладко. “Connection Pool” запрограммировал: добавил данные из браузера в базу данных, получил их обратно – все работает – это приятно!

Сейчас вот размышляю над следующим. Мне дали совет, что стоит написать какой-то домашний проект, который послужит хорошим козырем при приеме на работу. Чтобы не «изобретать колесо», стоит писать проект, используя новые технологии, в качестве которых в данном случае выступают различные фреймворки такие, как Struts, Hibernate, Spring и многие другие. Их на самом деле десятки (прочитал на одном из сайтов). В нашу программу включено изучение Struts 2. Видимо это будет 1 или максимум 2 занятия, что совсем не много. Не раз слышал о Struts не очень хорошие отзывы. Вот и думаю, что начинать изучать – не хочу тратить время впустую. Не то, чтобы время совсем будет потрачено впустую (если ошибиться с выбором технологии), но все же не так эффективно, как могло бы быть.


16 марта 2013 г.

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

Несмотря на жестковатые природные условия (ураган «Хавер» посетил Беларусь), занятие состоялось при полном составе. Для того чтобы добраться до места назначения, я выбрал метро, о чем абсолютно не пожалел, хотя еще вчера (ураган пришел вчера, но не с утра) до обеда я умудрился съездить пройти техосмотр, предварительно поменяв перегоревшую лампочку прямо во дворе (пальцам рук пришлось не сладко).

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

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

Вторая тема – средства сборки проектов. Есть такие, как Ant и Maven (видимо, есть и другие, менее популярные). Хотя и они, в общем, в большей степени предназначены для проектов, над которыми работает не один человек, но с этими вещами, на сколько я понял, можно тренироваться (не без пользы для работы над проектом), создавая свои, единоличные, проекты. Завтра еще планируется уделить минут 10-15 Ant, потом – новая тема.

Чувак за соседним компьютером сказал, что повесил свое резюме на одном популярном белорусском портале, честно указав, что опыта Java разработки не имеет. Говорит, что уже были звонки – приглашали на собеседования, добавляя, что нужны люди. Так что, похоже, спрос на java разработчиков присутствует на нашем рынке. То есть вполне можно составить резюме и рассчитывать, что позвонят и пригласят. Единственный вопрос – возраст. Да, я уже слышал совет, что не то что необязательно, а вообще ничего хорошего в том, чтобы указывать свой возраст в шапке (или в самом начале) резюме нет. Можно, вроде как, и вообще нигде не писать. Однако если я укажу годы обучения в универе (1992-1997), то оно все само собой т так всплывет. Может и не писать вовсе эти годи, хватит и самого факта успешного окончания главного ВУЗа страны. Хрен его знает. Надо будет еще просмотреть соответствующие форумы и тематические сайты – там может подскажут, как лучше.


17 марта 2013 г.

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

Вчера планировали, что сегодня выделим теме Ant еще минут 10-15. Эти минуты плавно переросли в полтора часа, то есть ползанятия. Остальное время было уделено новой теме – логгирование. Для тех, кто не знает, в двух словах, – это о том, что при работе и отладке приложения какая-либо полезная информация (в том числе источники и описание исключительных ситуаций) должна куда-то (консоль, файл, база данных) записываться, чтобы легче было исправлять ошибки, без которых написать можно лишь что-то типа “Hello World” и т.п.

На перекуре между половинами занятий, – да, теперь каждое занятие не обходится без перерыва, что неплохо, – я намекнул преподавателю, что неплохо было бы разобрать какой-либо пример проекта, но не такого простенького, который мы уже разбирали, и не такого простенького, который мы планируем разобрать скоро, но что-то более громоздкое. Если писать весь код, то на разбор такого рода примера могут уйти месяцы. Однако есть выход: можно использовать так называемый метод псевдокодирования, то есть писать не сам код, а краткое описание того, что, например, мы должны дать на вход и получить на выходе (можно на уровне метода, класса и даже пакета; обычно псевдокод пишется в виде комментария). В этом случае, думаю, можно вполне уложиться в 1 час, при условии, конечно, что преподаватель подготовится. Мне и, думаю, не только мне, было бы интересно прочувствовать, понять, как выглядит схема настоящего проекта. С одной стороны, нас это может и не волновать, при создании больших проектов обычно один человек четко представляет структуру приложения. Но если я все-таки буду создавать домашний проект, который я буду потом использовать в качестве козыря при собеседовании при приеме на работу, то хотелось бы принести «красивые» исходники. Поэтому конечно вопрос полезности затрат времени на это все сводится к наличию необходимости создания домашнего проекта, в основном.

Во время сегодняшнего занятия случайно перевел взгляд в сторону чувака, который вчера спал – сегодня он снова спал, ну или сидел с закрытыми глазами. Я, было, подумал: может это он испытывает на себе способ усвоения материала во время сна. Скорее – новая бурная ночь. Следующее занятие состоится 23 марта 2013 г. Спасибо, что читаете! Надеюсь, что не сильно скучно.


23 марта 2013 г.

Приветствую вас, дорогие будущие коллеги! Да, думаю, нужно смотреть на будущее с оптимизмом. Хотя, глубоко уверовав в свой будущий успех, гораздо тяжелее получать серпом по одному месту; надеюсь, это не про нас с вами!

Если верить словам преподавателя, то у нас, с учетом переносов и бонусов, осталось ровно 5 занятий. Также было озвучено, что нам все-таки необходимо подготовить какой-то итоговый проект. Судя по описанию того, что необходимо должен собой представлять такой проект, я понимаю, что могу просто, потратив 1 день, доработать одно из домашних заданий (там, где есть сервлеты, JSP и база данных), и этого будет более чем достаточно. Однако, не все так просто.

Дело в том, что было еще одно небольшое отступление от теории и практики, – это я уже слышал раньше, но как-то подзабыл. Дело в том, что по окончании курса преподаватель должен дать рекомендации не более чем трем счастливчикам, удачно окончившим сей курс. Учитывая некоторые обстоятельства (см. название данной статьи), уверен, что такая рекомендация станет для меня хорошим катализатором успешности поиска работы. Я бы, безусловно, дал себе такую рекомендацию, представляя, что я буду собой представлять в будущем в качестве программиста. Не потому, что мне она очень нужна (это тоже важно), а именно потому, что считаю, что я ее заслуживаю. Вполне возможно, что преподаватель уже решил, что я подхожу на роль одного из счастливчиков, но может он так и не решил.

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

В общем, вижу два следующих варианта действий. Оба варианта подразумевают написание хорошего финального проекта. Это я еще, возвращаясь назад, к тому, что доработать домашнее задание – это не вариант. Придется отложить чтение книжек и заняться делом, то есть программировать. Уверен, что за пару недель можно создать вполне себе неплохой проектик, который будет выделяться на фоне остальных своей функциональностью (если не найдется 3+ скрытых гения). Мне повезло: преподаватель, как и я не большой любитель дизайна и верстки web-страниц, поэтому, надеюсь, он будет обращать внимание в первую очередь на функционал и красоту кода. Таким образом, касаясь домашнего проекта, прикладываемого к резюме, придется с ним, либо повременить, либо создать потом на базе данного финального. Вариант номер 1: создать финальный проект и ждать, что рекомендация будет вознаграждением за него. Вариант номер 2: дать знать преподавателю, что его рекомендация для меня очень важна по причине известных обстоятельств (см. Заголовок). Если будет трудно определиться с вариантом, – пока не знаю, как стоит поступать, – буду играть в орлянку.

Ну и пару слов о теме занятия. Скажу сразу: люблю такие занятия, считаю их очень продуктивными. Что мы делали, так это разбирали пример проекта, написанного, используя MVC-шаблон и используя разделение бизнес-логики на слои. Да, мы это уже однажды делали, но тогда мы не использовали соединение с базой данных, да еще и с использованием Connection pool. Не скажу, что я люблю читать чужой код, но это совсем другой случай. Снова мы «двигались» от плохого варианта проекта к хорошему (от № 1 до № 5). С одной стороны, можно возразить – нафига изучать плохие варианты. Думаю, это сделано для того, чтобы четко представлять себе картину хорошего варианта. Не только потому, что нам показывают код, который писать не стоит. Еще мы постепенно двигаемся в сторону проекта, содержащего гораздо более разветвленную структуру каталогов (пакеты, классы и т.п.), с легкостью понимая, что для чего нужно. Возможно, сразу увидев много пакетов и классов, было бы сложнее с ними разобраться. Ну, то есть, темы как таковой не было, но ценность занятия налицо.

Завтра планируем начать разбираться с широко известным в java кругах Фреймворком Struts. Возможно, об этом смогу написать лишь послезавтра.


24 марта 2013 г. (написано 25 марта 2013 г.)

Вчера было все по плану – изучали Struts. Одного занятия для таких вещей конечно маловато, придется самим дальше разбираться. Сейчас уже самое время браться за итоговый проект. Нужно успеть закончить к последнему занятию. Хочется сделать качественно, но, чувствую, знаний для этого не совсем достаточно, а времени уже немного. Придется напрячься. Сегодня пишу мало - совершенно времени нет. Когда будет время, все компенсирую.

Продолжение в отдельных постах. Они пронумерованы для удобства.


А в чем проблема?
Джеймсу Гослингу, который работал над Java, на момент официального выпуска JDK было 40 лет.

Вы же не шахтером работали до 37-ми лет :-)
Удачи!

Не совсем тоже самое...

Разница все-таки есть. Думаю, Гослинг был программистом и до Java. Я же по окончании универа (1997 г.) программированием вообще не занимался. Был связан с разного рода бизнесом, в основном - оптовая торговля.
Спасибо, что не видите проблемы и за пожелание удачи!

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

Спасибо, в любом случае удача не помешает!

А почему именно Java EE выбрано дальнейшим продолжением, а не, например, Android? Или это что-то вроде 2 части одного и того же курса?

Да, над Android я тоже думал. Выбор получился в большей степени интуитивный.

Удачи вам!
Я сам поставил себе такую цель, я правда на 10 лет младше но все равно начитавшись про возраст в программировании начал расстраиваться. И тут наткнулся на вашу публикацию и у меня это вдохновило :) Я не один такой.
Спасибо.

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

Есть куда более совершённая IDE - intelidge idea, eclipse гораздо менее функциональная в своем базовом варианте. Вообще от компании JetBrains много полезных продуктов для разработчиков, я AppCode например использую. IDE у них точно самые лучшие.

Да, возможно. Я начал использовать Eclipse сразу, несмотря на то, что преподаватель Java SE объясняла, как делать то или иное в NetBeans. У меня никаких сложностей не возниклало. Сейчас новый преподаватель рекомендует Eclipse, поэтому я решил так и продолжать. Читал на форумах о нем в основном только хорошие отзывы, его любят больше, чем NetBeans. Когда стану профессионалом, возможно решу перейти на другую IDE, а может и нет.

Я тоже иду такой дорогой. Мне 34. Только как оказывается там нас никто не ждет. И потом тыкают в нас как протухший апельсин. Говорят что возраст на мозги влияет. Начинать надо с работы за еду. т.д. Но думаю прорвемся.

Да, трудности придется преодолевать. Обязательно прорвемся!

Сам начал двигаться по этой дороге. Вопрос: сколько времени в среднем удается посвятить обучению в день/неделю?

Edited at 2013-02-17 06:56 pm (UTC)

Re: Удачи и успехов!

Довольно много времени - почти каждый день по полдня примерно. Сейчас, правда, приболел, производительность упала в разы в последние дни.
Удачи!

Желаю успехов.

Спасибо!

Интересно, жду продолжения. Тоже 33, летом хочу поступить на вторую вышку, прикладная математика и информатика или программная инженерия.

С Днем Рождения жену

Да, С Днем Рождения жену! Здоровья и удачи, остальное будет.

Re: С Днем Рождения жену

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

Отличный опыт. Для меня сейчас очень актуально, так как тоже недавно начал изучать Java и Android в свои без чего-то 30 лет. До этого сколько раз не пытался изучать программирование, не шло, а сейчас захватывает.
Успехов Вам!

Главное, что захватывает. Уверен, что сильное желание - это основной движущий фактор в этом деле.
Успехов!

Молодец - учиться никогда не поздно!

Желаю удачи в Ваших начинаниях! Джава - это не какая-то там теория относительности - её можно осилить любому!

Артём

P.S. Захотелось добавить после перекура. Учиться - не просто "не поздно"... Выбирая путь программиста нужно быть готовым учиться всю оставшуюся трудовую жизнь. Технологии, проекты, задачи на проектах меняются очень часто... Мне 30. Из них более 9 лет я работаю программистом в коммерческом девелопменте (почему подчеркнул последнее - просто некоторые в 20 лет пишут, что у них 10 лет опыта). Столько всего переменилось за эти годы - невозможно передать. Поэтому начинать учиться надо и привыкать учиться тоже надо!

Edited at 2013-03-11 04:36 pm (UTC)

Re: Молодец - учиться никогда не поздно!

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

Спасибо за пожелания!

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

Edited at 2013-03-11 06:35 pm (UTC)

На счет объединения - все просто: когда статья будет закончена, то тому, кто ее найдет впервые, будет гораздо приятнее читать все целиком, чем собирать все по кусочкам. Согласен, что тем, кто уже читал, удобнее отслеживать развитие событий по новым постам. Но всем, как говориться, угодить невозможно.
Да, процесс трудоустройства - это будет самое интересное.
Спасибо за пожелания!

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

А что за тесты?
Было бы интересно посмотреть, что они из себя представляют.

пожалуйста. но я искал вакансии не по java
http://artsofte.ru/vacancies/dotnet-junior

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

Edited at 2013-03-17 06:34 pm (UTC)

Все получится

Желаю удачи и буду следить за успехами. Мне 30, НО я девушка :) в декрете (пока 1 ребенок) и тоже изучаю Java, хочу выйти из декрета программистом :)

Re: Все получится

Спасибо!
Вам желаю удачи!
Пусть ребенок растет счастливым и здоровым!

Спасибо за Ваш журнал. Специально зарегистрировался, чтобы написать здесь. Мне 36, сейчас также переучиваюсь на java. Двигаюсь примерно как и Вы - учусь на курсах, занимаюсь дома. С интересом слежу за Вашей историей и желаю успеха в поиске первой работы. Кстати Вы не рассматривали в качестве нее компании типа "EPAM", "Exygen" и т.д? Это чисто пограммерские конторы занимаются офшорным программированием. У них достаточно часто идет набор java junior -ов.

Edited at 2013-05-09 09:58 am (UTC)

Exygen не рассматривал, но можно и рассмотреть. Думаю, рассматривать нужно все IT компании. В EPAM отправил резюме недавно, они предложили пройти у них бесплатный тренинг, после которого можно попасть к ним на работу. Я был бы может и не против, но в ближайшее время Java тренингов у них не просматривается, а переучиваться на что-то другое из-за вероятности работать в одной компании, после тренига, думаю, не стоит.
Так что EPAM, похоже, отпадает, но Exygen рассмотрим.

Вам тоже желаю удачи в аналогичном начинании!

Здравствуйте! Мне сейчас 39 лет, есть 10 летний опыт программирования на Delphi, но узкий, работаю в гос учреждении (низкие требования к качеству программ, низкая зарплата)через год у меня заканчивается контракт и будет выбор дальше работать на прежнем месте(можно долго работать, никто меня не выгоняет) или уйти. Но по статистике HeadHunter(hh.ru) программистов Delphi меньше требуется чем Java, C# или даже 1С. Так вот я тоже решил научится программировать на Java, только пока самостоятельно. Однако встетив своего бывшего сослуживца который на 5 лет старше меня выяснил, что программист 1С получает не меньше чем все остальные и вероятность найти работу у него выше почти вдвое. Программирование в 1С я лично считаю чистым зарабатыванием денег и просто необходимостью, у меня ведь семья и дети. Java всетаки буду изучать и это будет моим хобби(буду программки под Android писать), кстати C# сделали из Java, уже поэтому стратегически правильно изучать Java. Желаю удачи. У меня самое интересное начнется через год (летом 2014г), если не забуду напишу про свой опыт.

(Deleted comment)
хочу дать один очень хороший совет не поздно если вы решили как наши деды перед немцами не зассали!поэтому не теряйте своё время на слезы а занимайтесь делом по возможностям будет как будет ни больше ни меньше!!!не поздно если вы раком не болеете и вам осталось жить 2 месяца и тогда не поздно заниматься что вам нравиться вам будут говорить что вы старый потому что завистливых людей очень много и приятно что они программисты или еще кто-то востребованные а вы там например шахтер вы ни чем не хуже других поэтому надо верить и не бояться как наши деды перед немцом не отступили только в перед)))

прошу прощенья за небольшой мат!

Добрый день! Как у Вас дела? нашли работу?

Да! Читайте отдельные посты!

Вы не думали, что слишком много уделяете внимания своей персоне? То есть, если вы начнете работать, вместо того, чтобы вести livejournal, то у вас будет гораздо лучше результат в работе?
На самом деле ссылку на ваш livejournal я скинул 2 своим хорошим знакомым, она поучительна с точки зрения целеустремленности. Но У вас ведь важно не только это, а и время/опыт, а его забирают социальные фишки : )

Да нет, не думал. Сейчас как раз я практически все время уделяю работе. Все никак не могу собраться и написать новый пост, а уже, как бы, пора, много времени прошло с последнего.
Я создал тему в большей степени для себя самого - чтобы себя как бы подстегнуть, придать сил, исключить вариант передумывания (становиться программистом) и т.п. И это, думаю, сыграло свою роль. Я же знал, что меня многие читают, желают в успеха, подразумевая в ближайшем будущем повторить в какой-то мере этот путь. Я уже как бы и не мог никого подвести.
Вот теперь работаю программистом, хотя пока лишь Junior, что есть нормально при моем скромном опыте.

Вы пошли на курсы,предварительно изучив языки программирования в институте (пусть примерно и давно). Но человеку несвязанному с этим вообще, за что лучше взяться перед поступлением на курсы Java базовый и штудированием литературы по Java? Сможете порекоммендовать?

Тут всё гораздо сложнее будет. Если нет математического аппарата и памяти, подготовленной к усвоению и обработке огромных объёмов информации, туго придётся. На общей эрудиции, однозначно, не проскочить. Вам сначала Си нужно пройти, понять как циклы и условия работают. Я, когда-то думал, что, удастся всё самостоятельно выучить. Даже пару статей про это написал, которые Вениамин видел:-). Изучал PHP. Но не вышло - далеко не продвинулся. Хотя целый год пытался. Сейчас вот уже тоже 5-й месяц на курсах, там же, где и автор этого журнала был - сначала в Белхарде, а потом в их новой ИТ-академии. И не сказать, что Java легко идёт. И возраст (44) уже не тот. И мозги не те, не математические. Си, прадва, усвоил твёрдо. Естественно, только в рамках курса. Но логики и математики, да и памяти тоже как не хватало, так и не хватает. И ребята, у кого с этим получше, быстро обходят. Задачи сложные. Может, допустим, потребоваться реализовать какую-то сложную формулу в виде алгоритма, да ещё циклического, да ещё подготовить коллекцию - контейнер для будущих данных и т.д. и т.п. Сложное это дело и довольно скучное, если так уж говорить. Я уже даже начинаю думать, что не моё. Но слишком далеко уже зашел. Отступать как-то стыдно.

Edited at 2013-12-19 06:35 am (UTC)

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

Все люди разные. Некоторые в 25 лет не могут сделать того, что другие могут сделать после сорока.
Сможете или нет, думаю, на этот вопрос сможете ответить вы сами лучше других.

?

Log in