• ,

20+ лет спустя или Я все-таки стал им!

20+ лет спустя или Я все-таки стал им!

Приветствую, уважаемые коллеги! Здесь, на javarush, периодически попадаются вопросы типа «мне уже 30 (35, 40 и т. д.) — смогу ли я стать java-разработчиком?». В свое время «success stories» с этого уважаемого сайта мне очень помогли развеять собственные сомнения и укрепить уверенность в правильности выбора. И сейчас я, наконец, решился рассказать вам историю «бородатого эникея», который «20+ лет спустя» и довольно-таки необычным путем, но все же реализовал свою детскую мечту. Осторожно, под катом много букв!

Первая попытка
Мне «далеко за 40», скорее, скажем так, ближе к 50. Программировать пытался еще в старших классах школы — на программируемом калькуляторе, на первых персональных компьютерах и даже, иногда, на «больших» машинах, типа ЕС-1045 (она же «ЕС — темный лес»). Почему «пытался»? -Потому что по сегодняшним меркам, когда пятиклассники уже вовсю пишут игры на Паскале и программируют роботов, мои «успехи» могли бы вызвать только улыбку. Но сам я был уверен, что являюсь крутым программистом, поэтому, когда пришло время выбирать специальность при поступлении в институт, сомнений не было никаких — только программирование!

Говорят, что в институт поступают, чтобы на 5 лет продлить детство, это про меня. Учили в целом неплохо — но только чему угодно, кроме программирования. Вероятно, считалось, что программист должен быть в первую очередь математиком. Основными предметами были матанализ, физика, численные методы, даже теормех и сопромат. Программирование тоже было — но какое-то совсем примитивное. Вроде, был Бейсик, Турбо Паскаль, немного C, какие-то базы данных. Совсем не изучали проектирование, методологии разработки, тестирование, документирование. Про ООП никто и словом не обмолвился, хотя уже вышли первые версии компиляторов C++. 5 лет пролетели незаметно, диплом (какая-то простая база данных, написанная под DOS на C), и — свободен!

Пытался писать какие-то программы на C для различных предприятий, у которых тогда еще были деньги. Но скоро стало ясно, что реальный проект — это совсем не студенческий диплом, а гораздо сложнее. Чем больше росла программа, тем больше возникало проблем, программа начинала «расползаться», становиться «глючной». Мой энтузиазм, поначалу огромный, таял прямо на глазах. Дело дошло до того, что я не мог заставить себя сесть за компьютер! Здесь, на javarush, мне неоднократно приходилось читать про то, как сложно перейти от решения «учебных» задач к реальному программированию. Вот и я столкнулся с той же проблемой — и не знал, куда двигаться дальше.

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

На самом деле, новая работа оказалась очень интересной! Мне открылся целый новый мир — Windows, Microsoft Office, сети, мини-АТС… Фирма росла, появлялись филиалы, выделенные сервера, электронная почта, постоянное подключение к Интернет. Не было только программирования: «наевшись» своими попытками, я понимал, что написать на C (который я хоть как-то знал), да еще и под Windows с его страшным WinAPI, хотя бы простейшую складскую программу, в свободное время — нереально.

Как-то в какой-то бухгалтерской газете я прочитал про только что вышедшую платформу 1С-Предприятие 7 и убедил директора купить ее «на попробовать». Это было оно! Я быстро соорудил (иначе и не назовешь этот процесс) какие-то программы для менеджеров — и они сразу пошли в дело. Это, знаете ли, очень хорошо мотивирует, когда сразу видишь пользу от своей работы. Через год вся фирма уже плотно «сидела на игле» 1С, я снова стал считать себя крутым программистом и в душе, наконец, воцарился покой.

Ненадолго. На встрече с одногруппниками товарищ по институту, уехавший работать «за бугор», рассказал мне, что он пишет какие-то Java Server Pages, что сейчас передний край — это веб-технологии, а 1С — вчерашний день. Я решил, что поскольку являюсь крутым программистом, без проблем по-быстрому разберусь — и тоже внедрю эти самые веб-технологии у себя в фирме.

В магазине нашлась книга, упоминавшая про JSP: Брюс Эккель «Философия Java», посвященная 2-й версии Java. Я начал ее читать — и застрял. Классы, полиморфизм, потоки, коллекции, многозадачность, сервлеты, EJB, JDBC — это все о чем? И зачем? И как это, вообще, можно использовать при написании программы, ведущей складской учет? Как с помощью этого сделать таблицы, формы и отчеты? Где тут вообще база данных и как с ней работать? Думаю, похожие ощущения испытывали многие, кто начинал изучать Java.

Вероятно, уважаемые коллеги, вы поняли — в тот раз Java-разработчиком я не стал. Но кое-что полезное извлечь удалось, например, оказалось, что и в Windows Server есть свои веб-технологии, и я стал разбираться с IIS, ASP, ADO и SQL Server. Но чем дальше я погружался в тему и от модификации примеров пытался перейти к разработке чего-то полезного, тем сильнее возникало ощущение «дежа вю». Становилось понятно, что сделать-то в принципе можно, но трудоемкость реализации даже простейшей таблицы с возможностью редактирования и валидации введенных данных будет настолько большой, что никто не согласится ждать так долго. Вдобавок выяснилось, что база данных в 1С устроена, скажем так, довольно своеобразно, и если извлечь из нее что-то полезное не средствами самой 1С еще можно, то вот добавлять и редактировать не так-то просто. И конечно сказалась разница в опыте — с 1С к тому времени я работал уже несколько лет, изучил ее вдоль и поперек, в ней все получалось сразу и легко, да и возможностей ее для нужд фирмы было достаточно.

Продолжение следует.

2 комментария

Kingpin
Очень интересно, ушел читать вторую часть)
Mobila
Про универ прочел, аж всплакнул, все как у меня, одна математика и ничего общего с реальным программированием…
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.