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

Прочтите Self-Aware Artisan: Product Development, чтобы узнать о рекомендуемых технологиях и инструментах для масштабируемой разработки программного обеспечения.

🏆 Ваш прогресс 🌏 🏄‍♂️

По окончании чтения: проверьте ⬇️ нижнюю часть страницы - вы найдете следующие части этой серии, которые охватывают широкий круг связанных тем!

📣 Скоро!

Я постоянно занимаюсь рефакторингом этой серии.

Подпишитесь, чтобы получить одностраничный манифест: Масштабируемая разработка программного обеспечения, доведенная до истины в последней инстанции; с точки зрения мастера программного обеспечения.

Авторский опыт

Скульптор данных, архитектор систем и продуктов.

Основал стартапы в области образования и спорта и руководил командами до десяти человек.

Работал системным архитектором, фронтенд-разработчиком и бэкэнд-разработчиком в продуктовой компании, цифровом агентстве и удаленным фрилансером.

Для получения дополнительной информации посетите мой Личный сайт.

"Почему?"

Когда я был ребенком, я постоянно спрашивал родителей: «Почему?» обо всем. Когда меня спросили то же самое - я ответил: «Зато!» (По-хорватски «вот почему»).

В молодые годы я не знал, как выразить себя; кроме того, что я делал то, что было у меня на уме, и отвечал «Зато». Теперь, когда я вырос, я могу объяснять вещи относительно лучше.

Все это эссе представляет собой серию ответов на вопрос «Почему?», Которые я собирал на протяжении всей своей жизни. Со временем глубина затронутых «почему» увеличивается, поэтому ответы становятся лучше, универсальнее и правдивее. Но это не значит, что мое оригинальное «Зато!» («Вот почему») не было правдой, это было - это было лучшее, что я мог дать в то время.

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

Сформируйте свое мнение. Знайте, что пишу, исходя из своего опыта и размышлений.

Давайте опираться на опыт и интуицию друг друга.

Люди понимают мир

Люди:

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

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

По мере того, как инструменты, языки исчезают, и в игру вступают новые ... По мере появления многопрофильных языков (TypeScript - для Frontend и Backend разработки) ... По мере развития ваших жизненных интересов и целей…

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

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

Человеку, внимательному в своих действиях, требуется больше времени, чтобы настроить свою систему обработки и воздействия на Мир и увидеть ощутимые эффекты. Мы здесь не на 2–5 лет, а на несколько десятилетий (или столетий), и у нас есть достаточно времени, чтобы делать все правильно.

Кем бы вы хотели быть? Парень или девушка, которые идут по жизни, срезая углы и никогда не довольствуются собой, потому что никогда ни на что не давили? Или тот, который идет со свирепой волей и решимостью разгадывать секреты жизни во всем, независимо от того, насколько оно велико или мало?

Чувствуя, когда учишься

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

Тип ввода, от наименьшего к наибольшему вовлечению органов чувств:

  1. чтение текстовой документации,
  2. прослушивание аудио-уроков,
  3. просмотр видеоуроков,
  4. ведение журнала, наряду с ранее упомянутыми элементами,
  5. практический опыт: построение по мере обучения наряду с ранее упомянутыми элементами.

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

Документируйте по мере обучения

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

Если вы не можете объяснить что-то простым языком, значит, вы не понимаете этого должным образом.

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

Написание дневника не вызывает такого стресса, например как написание книги, но служит:

  • вы должны резюмировать то, что вы узнали,
  • другие учатся на ваших выводах.

Стройте по мере обучения

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

Построение во время обучения будет проверять и демонстрировать ваше понимание или его отсутствие, что позволит вам продвигаться еще дальше.

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

Алгоритмы - шахматы для энтузиастов технологий

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

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

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

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

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

Есть много онлайн-сайтов, на которых вы можете попрактиковаться. Спой, HackerRank

При реализации алгоритма вы демонстрируете: логическое мышление, декомпозицию проблемы на более мелкие единицы и построение решения из более мелких единиц для формирования рабочего пакета; имея в виду дополнительные ограничения, такие как память или скорость.

Это масштабируемый и разумный способ проверки способности человека решать проблемы.

Алгоритмы и структуры данных идут рука об руку

У вас может быть отличный рецепт, но если у вас нет инструментов - вам не повезло. (Или вы можете получить рецепт для создания инструментов. :))

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

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

Все эти «Расширенные структуры данных» являются расширениями простых структур (числа, строки, массивы и т. Д.), Но с добавленной или удаленной функцией.

Система образования

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

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

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

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

Различия между школами и учителями

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

Замечательный учитель:

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

Колледж

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

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

Пока вы там:

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

Не тратьте время на вещи или людей, которые вам не интересны.

Колледж и технологическая индустрия

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

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

Уметь играть в постоянно меняющемся мире

Разработка программного обеспечения развивается, как и все остальное. Поля, на которых раньше жили тысячи разработчиков, остались в пыли; в то время как другие модернизируются, чтобы сформировать более крупные и всеобъемлющие поля.

Веб-разработка, а также разработка настольных приложений, мобильная разработка… У всех этих областей есть свой жизненный цикл.

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

Новый язык или инструмент как другой взгляд на мир

Вы хотите уметь говорить на приличном количестве языков.

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

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

Знайте, в чем вы хороши

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

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

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

Любая работа или усилие можно было выполнять с уважением и «kak se spada» (с хорватского «как должно быть сделано»). Мир состоит из множества уровней во многих направлениях, и выбор того, какой стек или конфигурация подходит вам, - это то, что вы будете пересчитывать в течение всей своей жизни.

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

Барабаны, гитары, фортепиано - разные удары для разных людей

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

Экспериментируйте со всем, что имеет для вас смысл.

Удивите себя и других прикосновением, которое вы добавляете в микс всего, что вы когда-либо видели.

Выбор языка программирования

Строительные блоки языка программирования

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

Масштабируемый язык программирования

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

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

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

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

Язык программирования должен позволять вам выражать свои мысли наиболее простым способом, а также иметь возможность легко расширять и изменять эти мысли.

Считаете это полезным?

👏 Хлопайте, чтобы больше людей увидели историю.

❤️ Поддержите своих друзей и коллег на работе - поделитесь с ними этим эссе!

🚀 Используйте это как корпоративный или личный манифест! Fork and Adapt на GitHub!

🏆 Ваш прогресс 🌏 🏄‍♂️

1. Вступление

2. Ты - человек

3. Ваше здоровье

4. Все вопросы - ✺ Вы здесь.

5. Глубокая работа - 👈 Далее!

6. Присоединение к компании-разработчику программного обеспечения

7. Создание компании-разработчика программного обеспечения

8. Коллективное мастерство

9. Мастерство продукта

10. Code Artisanship

11. Завершение