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

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

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

Коротко обо мне и о тебе

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

Я универсал.

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

Я работал редактором и оператором стедикама в студии, занимался проекционным мэппингом, компьютерной графикой, устанавливал Windows на компьютеры обычных людей, делал флеш-игры, веб-страницы, 3D-программы, приложения для Facebook, мобильные приложения, инструменты для видеоконференций. , интерпретатор Brainfuck, я предоставлял серверы, я развернул их на работающих системах. Я уже использовал широкий спектр языков от Fortran до JS, от Java до C#, от C++ до Ruby. Я как-то подсчитал, на скольких языках я написал более 3-х рабочих функций, которые не просто практиковались. Было больше двадцати.

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

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

Если я столкнусь с совершенно новым языком, произойдет следующее. Я читал документацию, пробовал что-то в ней, классифицировал язык: есть ли у меня классы, есть ли у меня функции, могу ли я передавать функции, могу ли я использовать объекты или структуры, каков синтаксис, каков он на вкус и т. д. Через 20-30 минут я могу использовать язык на таком уровне, что могу выразить на нем свои намерения. Я выучил этот язык? Нет Владею ли я этим языком? Нет. Могу ли я реализовать в нем свои потребности? Да. В этом суть. Кстати, через пять-десять лет этот язык устареет и его никто не будет использовать. Зачем мне его осваивать? Если он будет долгоживущим и важным, я буду использовать его так часто, что освою его непреднамеренно.

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

Вы просто используете доступные блоки.

(Фото: https://commons.wikimedia.org/wiki/User:Aadesig)