Сообщество - Лига программистов
Добавить пост

Лига программистов

1 484 поста 11 350 подписчиков

Популярные теги в сообществе:

Типы данных

Тип данных - это набор значений и операций, которые можно проводить над этими значениями.

Концепция типа данных:

  1. Тип данных определяет, какие значения может принимать переменная или выражение.

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

  3. Каждая операция или функция требует аргументов определенного типа.

Простейшие типы данных

Простейшие типы данных - это базовые типы, которые определяются через перечисление значений.

Например, если у нас есть новый тип NAME, мы можем определить его значения как Value1, Value2, и так далее. Это выглядит примерно так: TYPE NAME = (Value1, Value2, ..., ValueN). Это значит, что переменная этого типа может принимать любое из этих значений.

Простейшие и составные стандартные типы данных

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

Целые числа (integer): Это числа без десятичных знаков. Диапазон этих чисел зависит от количества бит, выделенных под их хранение. Если используется n бит, то диапазон будет от −2^(n−1) до 2^(n−1)−1. Операции над данными этого типа точны и следуют арифметическим правилам. Если результат выходит за допустимые пределы, происходит переполнение и вычисления останавливаются.

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

Логический тип (boolean): Имеет только два значения - True (истина) и False (ложь). Используется для логических операций.

Символьный тип (char): Представляет собой одиночные символы. Стандарт ASCII был принят для кодировки этих символов, но сейчас часто используются utf-8, utf-16, utf-64.

Ограниченные типы данных: Это типы данных с определенным диапазоном значений. Например, TYPE T = [MIN, MAX].

Массивы: Это структура данных, которая содержит элементы одного типа. Каждый элемент можно получить по его индексу. Например, TYPE T = ARRAY[N] OF REAL.

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

Множества (SET): Это тип данных, который может содержать уникальные элементы определенного типа. Например, TYPE T = SET OF T0.

Последовательности (sequence): Это тип данных, который содержит упорядоченный набор элементов.

Строки (string): Это последовательности символов. Например, Type T = String(T0).

Показать полностью

Какой дизайн лучше?

Когда то я писал что-то вроде web-crm для кастингового агентства. Минимальный набор функционала. По сути просто покажи заявки/отсортируй их.

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

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

Какой дизайн лучше? IT, Программирование, React, CRM

Старая версия сайта

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

Какой дизайн лучше? IT, Программирование, React, CRM

Новая версия в процессе разработки. Скрыл детали, чтобы не замазывать

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

Основная идея такова:
Показать только самую важную информацию а всё остальное засунуть в саму карточку и показывать при клике.


p.s если у вас есть идеи, что можно добавить\улучшить как по дизайну, так и по функционалу - буду очень рад почитать

Показать полностью 1

Нужды IT-сферы

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

1С программист vs 1С разработчик

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

Нейросеть для тестирования

Как-то печально.

Войти в IT с нарисованным опытом

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

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

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

С моим образованием работу можно было найти, однако душа к этому совсем не лежала. Так что, увы, занимался я последующие лет 6-7 главным образом низкооплачиваемым физическим трудом, что приводило в полное уныние. Мне хотелось своё жильё и семью, но я понимал, что в таком положении я их просто не вытяну по финансам
Да, можно было упереться и получить рабочую специальность, набить стаж и устроиться относительно денежно, однако я знал свои сильные и слабые стороны: ну не рождён я стоять за станком! Пролетарием я буду в лучшем случае средненьким. Не будет мне счастья на этом пути.

Году эдак в 2018 я услышал о том, что если самостоятельно научиться программировать, то даже без корочек вполне можно устроиться на хорошую и денежную работу. Так я начал изучать Python и SQL.
Учился я с огромными перерывами и нерегулярно, как накатывали приступы мотивации. Это очень неэффективно, однако к 2021 году я мог написать калькулятор, "Сапёра" и тому подобную ерунду. Язык я понимал очень неглубоко, как и архитектурные паттерны, но на это моих знаний хватало.

Одна моя хорошая подруга работает в сфере IT (не программист), сказала, что в их фирме берут всех подряд и я мог бы попробовать. Осенью 21-го я собрал небогатое портфолио и выслал резюме на вакансию стажёра.
Первым неприятным сюрпризом оказалось то, что для работы в белорусском IT почти везде хотят разговорный английский, чего у меня не было и в помине. Да, я мог со словарём читать технические тексты, хорошо понимал обучающие ролики индусов, но этого было совершенно недостаточно.
Вторым сюрпризом стало тестовое задание. Когда я показал его в IT-шном чате в Тг, меня спросили: "Они там ничего не напутали, это точно задание на стажёра, а не на мидла?". От меня требовалось написать RESTful CRUD приложение на Django, используя солидный список библиотек и технологий, о которых я даже не слышал на тот момент.

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

Мой перебравшийся в Россию младший брат на тот момент изучал Java на одном из относительно известных курсов по программированию. Название курсов называть не буду, дабы не сочли за рекламу; просто упомяну, что там учат, как грамотно приписать пару-тройку лет коммерческого опыта и изобразить из себя бывалого программиста. Многие наверное поймут, о ком я говорю.
Сперва прошёл те курсы друг брата, стал подтягивать и моего братишку. Брат советовал перестать душить питона и тоже пойти в Java. Мол и дорожка протоптана, и получают Java-разработчики в среднем больше.

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

До ноября я жил на свою скромные накопления и небольшие халтурки, продолжая самостоятельное обучение. Дальше я приехал в Россию к брату, пошёл учиться на онлайн-курсы программирования, расходы на моё содержание (в т.ч. оплату курсов) взял на себя младший брат. Название курсов не скажу, дабы не сочли рекламой. Самое важное в них то, что там учили врать про коммерческий опыт и проходить собеседования. Теоретическая и практическая подготовка в принципе неплохая, но практические проекты могли бы быть и посерьёзнее. Ближе к концу курса несколько студентов объединяют в команду и они делают какой-нибудь проект - в нашем случае это был бэк для приложения банка. На проект выделили месяц и мы не успели в полной мере его закончить, но нас выпнули готовиться к собесам. Курсы эти рассчитаны на обучение с нуля, так что со своим бэкграундом я их закончил довольно быстро, справился месяцев за 6-7 (мог бы уложиться на месяц-другой раньше, не будь я ленивой задницей).

Нам рекомендовали рисовать от 3 лет опыта. Что логично, т.к. в большинстве вакансий требовалось не менее 3, укажешь 2 года и 11 месяцев - количество приглашений на собеседования будет существенно меньше. HRы, что с них взять...
Я нарисовал опыт в IT отделе одного белорусского сетевого магазина. Я рассудил так: если спросят про запись в трудовой, то просто скажу, что трудовая книжка осталась где-то в Беларуси и найти её проблематично. Ну а если спросят контакты кого-то из моих руководителей, то просто дам Тг кого-нибудь из моих знакомых. У многих это прокатывало :) Забегая вперёд скажу, что никто трудовую не спросил, как и рекомендаций с прошлого места работы.
Белорусский IT-сегмент я не рассматривал из-за его крохотных размеров, который после СВО стал ещё меньше. К тому же везде нужен разговорный английский, который так у меня и не появился. Ну а братья-россияне отгрохали свой рынок, где английский нужен постольку-поскольку, за что им огромное уважение.

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

Проходил я по два-три собеседования в неделю. До начала СВО, говорят, можно было за день назначить по два собеседования в день на неделю вперёд, рекрутёры писали сами. Однако теперь стало существенно хуже: чтобы получить одно предложение приходилось делать десятки откликов.
Я рассматривал только вакансии с полной удалёнкой и доходом от 220к в месяц на руки. В идеале надеялся на возможность работать из-за рубежа, но был готов остаться в России, ибо в большинстве случаев по Java-backend работодатель хочет, чтобы работник находился в РФ. Наверное из-за соображений безопасности. Если разработчик что-то напакостит, то попробуй его достать откуда-нибудь из Грузии или Польши.

В дальнейших своих приключениях считать и описывать буду только технические собеседования со специалистами, разговоры с HRюшами не являются чем-то особо сложным и интересным.
Первое моё собеседование прошло, как бы помягче сказать... Да я в жизни так не обсирался! Второе и третье прошло примерно в том же ключе. Стресс был такой, что подмывало сказать: "Ребята, я не настоящий сварщик, маску на стройке нашёл. Давайте мы закончим и я пойду?", однако меня держало понимание, что мне нужен опыт, даже такой.
Порою меня спрашивали вещи, касающиеся производственного процесса, которые я вообще не понимал, в этих случаях просто с серьёзным видом отвечал что-нибудь наобум.
Третье уже было сносным. Четвёртое неплохим, но я допустил грубую ошибку и скорее всего из-за неё меня уже не взяли. После пятого я получил оффер.

Собеседовал меня тимлид. Сразу мы потрепались на общие темы, вроде сфер деятельности кампании, организации работы, моего опыта. Технический собес договорились провести в другой день и получился он лишь с третьего раза: сперва я из-за паники ("ААААА, Я НИЧЕГО НЕ ЗНАЮ!!!") сказался больным и попросил перенести на пару дней, потом тимлид из-за занятости пропустил созвон. Он в целом человек занятой, техническое собеседование по итогу проводил в аэропорту, прислонившись к колонне, как потом сам сказал.
Вопросы были на удивление несложными. Посыпался разве что на многопоточке, но лид ответил: "Ну и ладно, оно нам не сильно важно".
Оффер мне прислали через 20 минут после собеседования. 220к, полная удалёнка с возможностью работать откуда угодно, как я и мечтал.
Недавно разговорились, вспомнили мой найм:
-У меня сложилось впечатление, что у тебя совсем не было времени перебирать большое количество кандидатов и ты в меня вцепился, как в первого более-менее подходящего.
-Ой, там выбирать-то и не приходилось. До тебя там такое дно было, а ты показал уровень крепкого мидла - надо было брать.
Итого я получил работу чуть больше чем за три недели поисков.

Какая же меня накрыла эйфория после оффера... Мне так била энергия в голову, что после того как похвастался друзьям-знакомым, пошёл бегать. Лишь кросс в 5 км помог как-то унять бушующие чувства. Вернулся домой, поел, отдохнул... И перед сном ещё примерно столько же навернул, ибо просто не сиделось на месте. За год до того я зарабатывал менее 20к в пересчёте на российские, а тут в 11 раз больше. Я столько шёл к этому, даже не верилось, что добрался до цели.

Понятно, что приём на испытательный срок был не финишем, а лишь началом ещё одного пути. Я боялся трёх вариантов развития событий:
1)меня спалят и с позором выгонят;
2)работа окажется для меня слишком сложной;
3)я выгорю и буду заниматься ненавистным делом чисто ради денег.
Так что первые рабочие дни я встречал в мандраже. Старался держать глаза открытыми и впитывать информацию по организации работы в команде, благо что ещё братишка подсказывал, какие вопросы надо задавать.
На практике же задачи оказались проще, чем я думал. Решающим фактором были софт-скилы, которые оказались у меня на высоком уровне (это явилось приятной новостью, т.к. всегда думал, что они у меня наоборот, низкие).
Алгоритм решения задач оказался таким:
1)внимательно изучи задание;
2)если не понял задание, то достань лида/автора задания/другого сведущего человека вопросами до тех пор, пока не поймёшь его полностью;
3)изучи код, найди проблемное место;
4)если вообще понятия не имеешь, где искать проблему, то сперва найти человека, который это понятие имеет. Достань этого человека вопросами до появления понимания;
5)если в процессе выполнения задания столкнулся с трудностями, которые не можешь решить сам, то обращайся к старшим товарищам. Описываешь в подробностях, что сделал, что не смог сделать, в каком методе/на какой строчке происходят трудности. Обращаться с запросом не "Я ничего не понимаю, помоги", а "Я не понимаю это место, я перепробовал такие варианты, исключил вот такие причины. Предполагаю, что проблема может быть вот в этом, помоги";
6)???
7)PROFIT!!!

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

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

Оказалось, что с выбором профессии я угадал, мне нравится и я справляюсь. После целых лет временных работ и случайных подработок очень классно ощущать себя востребованным специалистом.
Да, я порою устаю на задачах типа "*имя*, я не знаю, как это сделать. И никто не знает. Но я в тебя верю!", жопа от непонимания происходящего может гореть очень сильно. Выручают Гугл и ChatGPT. Да, GPT много врёт и достать из него верный ответ бывает трудно, но он оказался весомым подспорьем.
Работаю обычно часа по 3-4 в день, больше просто бесполезно. Я слышал, что некоторые сидят за кодом по 14 часов, но не представляю, как это возможно. Могу в случае крайней нужды писать код/активно думать часов 5-6, но на третий день я стану полностью бесполезен.
Тут как-то мелькали вырезки выступлений каких-то акул российского IT-бизнеса с конференции, где они сетовали на охреневших программистов, которые хотят пить кофе, стонать о выгорании, но не хотят работать больше 4 часов в сутки. У меня вопрос к таким начальникам: "А вы сами сколько сможете писать код в таком темпе? Сколь скоро потребуются услуги психиатров и антидепрессанты?". Пусть в жопу идут.
Я в течение рабочего дня могу готовить, выйти на пробежку, смотреть в окно и т.п., что будет выглядеть как безделье. Однако в этот момент происходит отдых и мыслительная деятельность. Часто я лежу на кровати, смотрю вверх, а мозг сам собой проецирует на потолок блоки кода, подсвечивая потенциально проблемные места и подсказывая решения.

Что я хочу сказать людям, которые хотят пройти по моему пути:
1)не так уж страшен чёрт, как нам его малюют. Я неоднократно слышал, что в IT попадают лишь особо прошареные чуваки с особыми мозгами, всех остальных ожидают провал и выгорание. Однако это оказалось не так, по крайней мере для меня, а я не отличаюсь некими выдающимися дарованиями;
2)это не так просто, как говорят многие школы программирования. Соискателей на вакансии джунов/стажёров как собак нерезаных, а самих вакансий мало. Это не значит, что обязательно надо врать про опыт, как сделал я - прекрасно понимаю, что не все люди отличаются достаточной наглостью, хитростью и уверенностью в своих силах, чтобы срезать углы. Большинство "вкатунов" из себя ничего не представляет, так что старайтесь, учитесь, пишите пет-проекты. Да, среди сотен анкет до вашей скорее всего доберутся нескоро, однако после множества попыток вас рано или поздно заметят. Наберитесь терпения;
3)нужна мотивация, много мотивации. Даже не знаю, что тут добавить. Моё недавнее положение стало для меня невыносимо, так что её у меня было предостаточно. Если сомневаетесь в своих силах и способностях, то начните хоть с курсов на Степике, попробуйте написать какие-то свои проекты. Если не получится даже это, то о чём говорить?
4)очень желательно заручиться поддержкой семьи, близких, ну или хоть иметь какие-то сбережения. Трудно учиться, если 9 часов в день тратишь на работу и дорогу (в лучшем случае), а на код остаётся час-полтора вечером. В таком случае либо мотивация должна зашкаливать, либо... Либо готовьтесь к очень долгому и малоэффективному пути;
5)вливайтесь в сообщество разработчиков. Русскоязычное коммьюнити не столь токсично, как принято думать. Например когда я изучал Python, то у меня возникла проблема со средой разработки, которую я никак не мог решить сам, о чём я сказал в одном чате. Незнакомый человек почти полчаса копался удалённо в моём компе, при этом у меня не было микрофона, чтобы общаться с ним голосом - я просто писал ему свои вопросы и догадки текстом в командной строке и в коде. Если появятся друзья-программисты, то дело всяко лучше пойдёт, особенно если учитесь сами, а не на каких-то курсах.
6)если ищете работу в Java-backend, то изучите коллекции в совершенстве. Как устроены, в каких случаях используются, чем отличаются ArrayList и LinkedList, что общего у Set и Map, как разрешаются коллизии, какова сложность основных операций в каждой коллекции и т.д. и т.п.. На собеседовании могут не спросить про многопоточку, сборщик мусора, жизненный цикл бина, но коллекции спросят всегда.

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

Показать полностью

Конкурс для мемоделов: с вас мем — с нас приз

Конкурс мемов объявляется открытым!

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

Кто сделал и отправил мемас на конкурс — молодец! Результаты конкурса мы объявим уже 3 мая, поделимся лучшими шутками по мнению жюри и ссылкой на стикерпак в телеграме. Полные правила конкурса.

А пока предлагаем посмотреть видео, из которых мы сделали шаблоны для мемов. В главной роли Валентин Выгодный и «Пакет» от Х5 — сервис для выгодных покупок в «Пятёрочке» и «Перекрёстке».

Реклама ООО «Корпоративный центр ИКС 5», ИНН: 7728632689

CodeRun и ошибки

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

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

Прошло пару недель и кол-во тестов, которые я не мог пройти, неуклонно росло. И ладно бы это были сложные тесты, но нет - они были довольно простые. К примеру найти общие числа у двух строк - "1 2 6 4 5 7" и "10 2 3 4 8". Это начало настораживать. И я начал дебагать.

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

По результату дебага я пришел к очень странному выводу - часть тестов яндекса не имеют корректного ввода, а именно либо не передает финальные данные (как в наше примере вторую строку), либо не передает признак переноса строки \n

Что бы точно подтвердить данную проблему пришлось переписывать код на мой основной язык (пишу на нем 7 лет). Как итог я сейчас чуть ли не каждый день регистрирую письма с выявленными ошибками и вместо приятного времяпрепровождения получаю головную боль и тактически стал тестировщиком их платформы.

Вот так выглядит моя почта с 5 по 8 марта

CodeRun и ошибки Яндекс, Тестирование

Я не смог найти офф акк яндекса на пикабу, но я уверен, что пара-тройка разработчиков от туда на пикабу найдется.
Господа, сделайте нормальный таск, что бы кто-то у вас перепроверил передаваемые данные. Это уже просто не серьезно. А то учитывая все вышеописанное я уже сомневаюсь, что при прохождении Fast Track проблема была во мне.

Показать полностью 1
Отличная работа, все прочитано!