Я дипломированный бухгалтер (аналогично CPA в США), который разработал множество мобильных приложений, написал первую книгу по разработке мобильных приложений в Индии еще в 2003 году, обучил сотни инженеров-программистов в крупных многонациональных корпорациях и множество начинающих студентов в колледжах.

Большинство людей изучают компьютерное программирование в университетах. К сожалению, семейные обстоятельства вкупе с индийской системой образования не позволили мне изучить программирование в университете. На Ближнем Востоке есть старая поговорка: «Тот, у кого нет никого, имеет с собой Бог». Я думаю, что так было и со мной.

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

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

Чему меня научил Санатан Дхарм (индуизм)

Я начал изучать HTTP и REST (передача репрезентативного состояния) в 2008 году. Меня интересовало создание веб-приложений. Протоколы REST и HTTP используются веб-компаниями для создания веб-приложений и мобильных приложений. Как-то однажды я связал части Создать, Получить, Обновить и Удалить REST с индуистской троицей. Брахмы, Вишну и Махеша (Шивы). HTTP-запросы POST, GET, PUT и DELETE на 100% связаны с тем, чему учит индуистская троица!

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

Большой отраслью компьютерного программирования является объектно-ориентированное программирование (ООП). По сути, это техника разделения компьютерной программы на разные объекты. Он черпал вдохновение в природе. Любая естественная вещь, такая как растение, состоит из различных объектов, таких как листья, стебель, цветы и т. Д. Самая большая проблема в управлении объектами заключается в том, что объекты динамичны и могут выполнять разные действия в разное время. Когда объекты становятся сложными по функциональности и большими по количеству, ООП превращается в веревку на шее. Здесь взаимодействие с Богами помогает мне визуализировать и анализировать жизненный цикл объекта.

В программировании любой объект состоит из числовых данных, данных ресурсов (изображения, видео и т. Д.) И функций (фактического кода, который работает с данными и ресурсами. ). И здесь мне снова помогают 3 главные богини индуизма. Богиня Сарасвати - богиня знания, поэтому числовые данные относятся к ее сфере. Богиня Лакшми - богиня богатства, и поэтому ресурсы переходят в ее владения, а богиня Шакти - богиня энергии, и, следовательно, любой исполняемый код попадает в ее владения. Три богини помогают мне понять состав объекта. Изучение данных, ресурсов и потока функций как 3-х отдельных областей помогает мне прояснить ситуацию в моей голове.

Эти три богини даже вдохновляют меня на процедурное программирование, которое является отдельной ветвью компьютерного программирования от объектно-ориентированного программирования (ООП).

Чему меня научил джайнизм

Джайнизм - древняя религия, которая считается неотъемлемой частью индуизма наряду с Санатан Дхарм и сикхизмом. Есть 2 основных лозунга джайнизма:

Живи и давай жить другим

Меньше - больше удовлетворения

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

Еще одна вещь, которую я извлек из джайнизма, и то, что Стив Джобс извлек из дзен-буддизма, - это сила нуля. Постарайтесь максимально сократить количество функций. Посмотрите на известные приложения. Все приложения, которые были хорошо спроектированы, имеют мало функций и высокое качество реализации. У плохих приложений больше возможностей и меньше качества! Меньшее количество функций обеспечивает легкую кривую обучения и лучшую сосредоточенность как для разработчика, так и для пользователя.

«Живи и дай жить другим» также хорошо сочетается с девизом Google: Не будь злом. Любое приложение, которое без необходимости блокирует пользователя, будет осуждено пользователями в наши дни. Таким образом, приложения не должны пытаться контролировать пользователя. Они должны быть помощниками.

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

Чему меня научили христианство и ислам

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

Каждый раз, когда мне нужно посмотреть на что-то сверху, я черпаю вдохновение от Бога. Иногда, когда мне нужно что-то задокументировать или дать инструкции членам команды, я черпаю вдохновение из 10 заповедей. 10 заповедей были четкими и легко запоминающимися. Так и должно быть делегирование.

Что я узнал из других религий

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

Итак, Бог действительно учит человека разработке приложений, если этот человек хочет черпать вдохновение!

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

Мой дескриптор в твиттере: @skjsaurabh

Посетите мой блог по обучению на https://fun2dolabs.org