Сможете ли вы превратить старую обезьяну в разработчика программного обеспечения?

Ну… я не совсем честен.

Маленькая ложь №1: мне не 50.

Мне далеко за 50, и, думаю, это делает меня старой обезьяной. Старый, но, надеюсь, достаточно мудрый, чтобы другие могли заинтересоваться моим мнением.

Маленькая ложь № 2: в прошлом веке я был разработчиком программного обеспечения

«Предыдущий век». Теперь это звучит старо. Так что я не становлюсь разработчиком программного обеспечения, но я снова становлюсь им, потому что я прекратил разработку программного обеспечения в середине 90-х и провел следующие 25 лет в области управления и консалтинга. Все еще работаю в ИТ-бизнесе, но не близко к разработке программного обеспечения.

Я увлекся компьютерами в начале 80-х, когда заканчивал среднюю школу и окончил университет со степенью бакалавра в области электротехники с опцией компьютерной инженерии (в то время компьютерная инженерия не была полноценной собственной программой). Я начал свою карьеру в качестве инженера-программиста, разрабатывая код на 16-битном компьютере с колоссальными 128 КБ ПЗУ и 64 КБ ОЗУ, что тогда считалось много (для младших читателей K означает 1000 в 128 000 байтах. Я знаю, это звучит невообразимо). когда такие буквы, как Gb и Tb, более распространены).

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

Маленькая ложь № 3: я не просто так однажды решил вернуться к разработке программного обеспечения

Это пришло ко мне со временем.

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

Так что можно сказать, что я начал становиться разработчиком программного обеспечения (снова) десять лет назад, когда мне было чуть за 50…

Будучи бывшим разработчиком программного обеспечения, я знал, что могу создать это самостоятельно. Но о боже, изменился ли ландшафт программного обеспечения за 25 лет! Интернет был в зачаточном состоянии, когда я перестал разрабатывать программное обеспечение. Я столкнулся с огромной кривой обучения… снова. Но, тем не менее, я погрузился в него и многому научился.

Совет №1: Найдите себе проект для работы

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

Когда я начинал свой проект, я слышал о HTML и PHP. Поэтому я погуглил эти сокращения и нашел W3Schools.com (кстати, они меня не спонсируют). Там я узнал о HTML и использовании PHP для его генерации на сервере, Javascript (и jQuery, затем AngularJS и, наконец, React), чтобы делать что-то локально в браузере, и CSS (и Bootstrap), чтобы сделать его красивым. Поскольку я понял, что мне понадобится какая-то база данных для хранения моих дегустационных заметок, я узнал о SQL и открыл для себя MySQL. Поскольку я хотел, чтобы мой веб-сайт был доступен в любом месте, мне нужно было иметь сервер в Интернете, и это привело меня к открытию Amazon Web Services и всего набора облачных вычислительных ресурсов. Поскольку я хотел использовать iPad, я изучил разработку для iOS (Swift, Objective-C и все наборы iOS), а затем, чтобы сделать его более переносимым на Android, я обнаружил, что можно запускать Javascript в модуле WebBrower в iOS, который привело меня к использованию Sencha Ext, а затем React Native.

Необходимость — мать изобретения, как гласит пословица. Во всем остальном Google — ваш друг.

Совет № 2: Примите участие в сообществе open-source

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

Мое веб-приложение изначально было основано на Zend Framework (ZF). Я выбрал именно его, потому что наткнулся на него первым. Я мог бы наткнуться на Symfony или Laravel, но как только вы начинаете копаться и вкладывать время в один фреймворк, становится все труднее и труднее переключиться на другой. Поскольку я интегрировал многие модули ZF с открытым исходным кодом, когда ZF стал Laminas, многие из этих модулей необходимо было перенести на Laminas, и у многих из них больше не было сопровождающих. Необходимость была матерью изобретения, поэтому я взял на себя задачу перенести некоторые из этих модулей и создал организацию LM-Commons на GitHub с несколькими другими участниками.

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

Сообщество Open Source очень помогло. Это естественно и является долгом возвращаться к этому.

Совет № 3: это больше о путешествии, чем о пункте назначения

Я не очень люблю эту поговорку.

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

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

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

Некоторые заключительные мысли

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

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