Говорят, любовь проявляется во многих формах и цветах, в самых неожиданных местах и ​​в самые непредвиденные моменты. Для меня и для программирования это действительно оправдало эти ожидания. Хотя эта статья не предназначена для того, чтобы утомлять вас своей автобиографией, я хочу немного взглянуть на вещи в перспективе.

Краткая биография

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

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

Сообщество программистов потрясающее!

Прежде чем привыкнуть к этой области, я подумал и склонен думать, что люди верят, что кодирование является и должно быть жестким, а кодер - это скучный человек, проводящий 12 часов в день и 6 часов ночи взаперти в своей комнате и что-то пишет. вроде псевдоматематики, которую никто не понимает. Однако я очень ошибаюсь. Как я собираюсь указать, быть кодировщиком, особенно кодировщиком JavaScript, означает быть частью глобального сообщества, а не какого-либо сообщества. Это самое взрослое сообщество, с которым я когда-либо сталкивался. А кодирование жесткое? Тупой? Нет. По крайней мере, я считаю, что этого не должно быть. Путь, который привел меня к программированию, показал мне, что мир программирования не так уж и недоступен и отличается в том смысле, что даже если он может показаться недоступным для людей без технического образования, на самом деле он очень доступен и нетехнический люди могут добавить большую ценность экосистеме кодирования.

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

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

Мои инструменты для заточки

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

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

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

Я стараюсь сделать свой код максимально простым и эффективным. Если вам необходимо создать простое приложение, которое выполняет простую задачу, нет смысла разрабатывать чрезвычайно сложную архитектуру. На более низком уровне, как новичок, изучающий JavaScript и программирование в целом, я часто обнаруживаю, что пытаюсь использовать недавно изученную технологию в своем коде, даже если я мог бы использовать простой цикл for или if… else, или библиотеку, когда я мог использовать простой JavaScript. Хотя сейчас это может быть полезно для меня для запоминания того, что я узнал, я считаю, что это бесполезный беспорядок, и я бы избавился от него в следующей столовой.

Будьте внимательны и любезны

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

Каждый момент, когда вы кодируете, особенный

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

Итог

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