Что я понял о языках программирования

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

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

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

Perl: у каждого языка есть характер

Девиз Perl: «Существует больше одного способа сделать что-либо», и практика соответствует. Сравните с девизом Python: «Должен быть один, и желательно только один, очевидный способ сделать что-то». Perl и Python похожи в каких-то деталях, оба ЯП считаются легкими для изучения скриптовыми языками; но при использовании разница определенно чувствуется. У Perl сложный противоречивый характер.

SQL: достаточно нескольких операторов

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

PHP: вообще не нужен

Много лет назад я руководил тестированием сервисной шины предприятия. Она записывала свои логи в базу данных, поэтому мы использовали SQL для поиска записей в логах. Команда сквозного тестирования не владела SQL, поэтому тестировщик-автоматизатор на проекте создал простой PHP-фронтенд для базы данных с логами.

Однажды, уже после того, как этот человек ушел (потому что они сдали свой фреймворк), E2E-команда QA была в легкой панике. Новый сервис был доступен в сервисной шине, но недоступен из PHP-фронтенда. Никто не знал, что делать.

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

VBA для Excel: документация важна

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

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

Java: многословный язык с открытым капотом

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

Python: дизайн языка имеет значение

Я большой поклонник списков и словарей в Python. Мне их очень не хватает, когда я работаю на другом языке и приходится использовать вместо них filter или map. Создатель Python Гвидо ван Россум даже как-то предлагал убрать filter() и map() из Python 3. Этого не произошло, но само предложение является отличным свидетельством того, каким видит Python лично он.

JavaScript: дело не только в дизайне

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

Bash: просто полезен

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

Мне понравилось работать с Bash, но я не уверен, что научился чему-то новому. И хотя я больше не использую Linux на работе, я все еще использую этот скрипт на своем личном ноутбуке. Так что, похоже, то, чему я учился меньше всего, мне пригодилось больше всего.

Clojure: необычный

Clojure — самый странный в этом списке. Это функциональный язык, и это «современный Lisp». Поэтому я решил изучать Clojure. Например, там, где в Python 1 + 2 и sum([1, 2, 3]), в Clojure имеем: (+ 1 2) и (+ 1 2 3). В Clojure всё необычно.

TypeScript: он транспилируется

Никогда особо не задумывался о соотношении времени проектирования и времени выполнения кода, пока не столкнулся с TypeScript. Возможно, потому, что TypeScript не компилируется и не интерпретируется. Он транспилируется в JavaScript. То есть вы пишете на TypeScript — со всеми его возможностями и преимуществами, но когда код запускается, это тот же JavaScript.

Lua: тестируемость

Вдохновившись пазлами «Черный ящик» от workroomprds, я создал несколько собственных головоломок для Playdate. Одна из проблем заключалась в том, как сделать линтинг и юнит-тесты.

К счастью, кто-то уже начал добавлять в Luacheck поддержку SDK для Playdate. Для юнит-тестирования кто-то из команды Playdate опубликовал инструкции по LuaUnit. Но даже после этого мне пришлось проверять, что мой код тестабельный, держа его отдельно от Playdate SDK. И единственным способом запустить юнит-тесты был Playdate Simulator.

Rust: чудесный компилятор

До появления Rust сообщения об ошибках от компиляторов, интерпретаторов и т. д. всегда меня расстраивали. Иногда они были понятные, иногда нет, иногда частично понятные, но по опыту вы знали, в чем, скорее всего, проблема.

Компилятор Rust всегда стремится к лучшему, и ему это удается:

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

Источник


Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас