All Projects → Max-Starling → Notes

Max-Starling / Notes

Licence: other
My notes are about everything related to programming.

Projects that are alternatives of or similar to Notes

Laravel Api Templates
Laravel API starter kit collection using different structures.
Stars: ✭ 149 (+43.27%)
Mutual labels:  design-patterns, architectural-patterns
Getx pattern
Design pattern designed to standardize your projects with GetX on Flutter.
Stars: ✭ 225 (+116.35%)
Mutual labels:  design-patterns, architectural-patterns
Programming Principles
Categorized overview of programming principles & design patterns
Stars: ✭ 1,735 (+1568.27%)
Mutual labels:  design-patterns, architectural-patterns
Super Simple Architecture
🧩 Super Simple Architecture in Swift
Stars: ✭ 44 (-57.69%)
Mutual labels:  design-patterns, architectural-patterns
Design Patterns And Principles
A collection of a number of design patterns and principles written in Kotlin
Stars: ✭ 56 (-46.15%)
Mutual labels:  computer-science, design-patterns
notes
My personal tutorials and notes.
Stars: ✭ 34 (-67.31%)
Mutual labels:  computer-science, design-patterns
Domain Driven Hexagon
Guide on Domain-Driven Design, software architecture, design patterns, best practices etc.
Stars: ✭ 4,417 (+4147.12%)
Mutual labels:  design-patterns, architectural-patterns
awesome-software-architecture
A curated list of awesome articles, videos, and other resources to learn and practice software architecture, patterns, and principles.
Stars: ✭ 1,594 (+1432.69%)
Mutual labels:  design-patterns, architectural-patterns
Design Patterns For Humans
An ultra-simplified explanation to design patterns
Stars: ✭ 32,376 (+31030.77%)
Mutual labels:  computer-science, design-patterns
Awesome Scalability
The Patterns of Scalable, Reliable, and Performant Large-Scale Systems
Stars: ✭ 36,688 (+35176.92%)
Mutual labels:  computer-science, design-patterns
Design Patterns In Swift
📖 Design Patterns implemented in Swift 5.0
Stars: ✭ 13,146 (+12540.38%)
Mutual labels:  computer-science, design-patterns
data sciences campaign
【数据科学家系列课程】
Stars: ✭ 91 (-12.5%)
Mutual labels:  design-patterns, architectural-patterns
morton-nd
A header-only compile-time Morton encoding / decoding library for N dimensions.
Stars: ✭ 78 (-25%)
Mutual labels:  encoding
leetspeek
Open and collaborative content from leet hackers!
Stars: ✭ 11 (-89.42%)
Mutual labels:  computer-science
gonvert
Golang character encoding converter with an automatic code-estimation.
Stars: ✭ 24 (-76.92%)
Mutual labels:  encoding
CS
Computer Science Notes
Stars: ✭ 33 (-68.27%)
Mutual labels:  computer-science
gof design patterns
GoF Design Patterns implemented in modern C++.
Stars: ✭ 21 (-79.81%)
Mutual labels:  design-patterns
JS-design-pattern
根据曾探所著《JavaScript设计模式与开发实践》整理的学习笔记
Stars: ✭ 31 (-70.19%)
Mutual labels:  design-patterns
HKU-Thesis-Template
HKU Thesis Template
Stars: ✭ 36 (-65.38%)
Mutual labels:  computer-science
DataStructure-DesignPattern
java集合源码、设计模式、常用算法、Mysql原理
Stars: ✭ 22 (-78.85%)
Mutual labels:  design-patterns

Заметки программиста

Мои конспекты обо всём, что связано с информационными технологиями (англ. information technology, IT), программированием и смежными ему областями.

Оглавление

Почему я решил всё это написать

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

Человеческая память - это самое ненадёжное хранилище информации.

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

Самая лучшая память находится на кончике карандаша

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

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

Итак, изначальная цель данного проекта - это сохранение моих мыслей, сравнений, умозаключений в моменты наивысшего подъёма в какой-либо областикаком-либо домене), когда и основательнее всего подошёл к разбору материалов. Это позволяет в любой момент времени (через неделю, месяц или даже через 5 лет) практически мгновенно найти решение проблемы, которую я уже решал, или ответ на вопрос, на который мне уже доводилось отвечать (себе или кому-либо ещё). Ускоряет этот процесс ещё и то, что материал однороден (ведь всё написано одни человеком и на одном языке) и имеет структуру, оптимальную для повторения.

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

Как подготовиться к собеседованию по этим заметкам

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

Стоит также отметить, что некоторые вещи покоряются лишь с опытом, с практикой, спустя некоторое время (например, абстракция, паттерны проектирования, принципы по типу SOLID, архитектуры приложений). И это не беда, если у вас сразу что-то постигнуть не получается. Возможно, время ещё не пришло. Главное - не стоит сдаваться и отчаиваться. Просто идите вперёд так, как можете и умеете сейчас! А я постараюсь облегчить этот путь так, как только смогу.

Общая теория

Дискретная математика

«Дискретная математика занимается изучением дискретных (конечных) математических структур - таких структур, количество элементов которых конечно, а значит эти элементы можно пересчитать, перечислить. Из-за ограниченности ресурсов компьютера на нём можно реализовывать (рассматривать) только дискретные структуры. Именно эти структуры легли в основу компьютера, стали фундаментом при его создании».

Информация и данные

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

Типы данных

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

Структуры данных и алгоритмы

Модели данных и базы данных

Программирование

Характеристики языков программирования

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

Тестирование

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

Архитектурные стили и архитектурные паттерны

Паттерны проектирования и принципы проектирования

Технологии, библиотеки, фреймворки и языки программирования

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].