DictionaryForumContacts

 coldwar_etcetera

1 2 3 4 5 6 7 8 all

link 1.05.2022 20:23 
Subject: полу-ОФФ: переход в IT-отрасль

 coldwar_etcetera

link 8.05.2022 21:23 
Коллеги, зайчишки, любимки. Пусть запоздало, но не могу не отметить, что буду искренне всем признателен, если выяснения отношений и политических позиций останутся где-то за скобками данной ветки. Спасибо за понимание. Также благодарю администрацию, хоть и не ожидал такого "оберегания", если честно.)

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

1. Программист Он же разработчик ПО (software developer, ну или просто developer, например); пишет код (есть отдельный подвид "зерокодер", которому сам код не нужен вовсе) и занимается отладкой программ (диапазон сфер максимально широкий – от разнокалиберных игр и легких сайтов до банков с кредитным скорингом, автоматизации/роботизации производства на предприятиях и военки с боевым ИИ на дронах). Как правило, разработчик владеет несколькими языками программирования – на каждом проекте используемые языки подбираются сообразно его целям и задачам, тк их кпд в решении той или иной задачи различен (напр., С++ хорош под всякий бэкэнд с математикой и высоконагруженными вычислениями; Python – один из наиболее простых в освоении с нуля; SQL – используется для работы с базами данных; итд). Пишется код в той или иной среде разработки, ее же часто называют редактором кода (напр., PyCharm для Python, какой-нибудь Brackets для HTML/CSS итд). Встречается также другое понятие среды (рабочая среда) – это та среда, в которой будет использоваться итоговый программный продукт.

Элементы программного продукта:

(1) слой хранения данных (базы данных – условно таблицы/матрицы с набором данных; есть реляционные, т.е. со связями между элементами, и нереляционные – наборы неструктурированной информации/данных); оттуда данные извлекаются для операций;

(2) бэк-энд (начинка; чистый кодинг, т.е. прописывание внутренней логики продукта);

(3) фронт-энд (мордой к юзеру; кодинг и верстка – например, html / css / js ).

Основной вопрос в работе «программиста»: как алгоритмически решить задачу? Полезны творческие мотивы (как подойти к решению); роль творческого начала в работе зависит от места работы и должности: где-то строго по алгоритмам, где-то – полет фантазии. Решаемые задачи, как правило, носят самый прикладной характер, а не абстрактный, и напрямую связаны с реальным миром. В работе широко используется уже сделанное:

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

(2) фреймворки (структура написания кода – правила, подбираемые сообразно задачам разрабатываемой программы, предполагаемой нагрузке при ее работе итд); позволяет унифицировать процесс и код.

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

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

2. Тестировщик (Quality Assurance Engineer / QA Automation Engineer):

Проверяет продукт (процесс, устройство, ПО) на ошибки (баги) и передает на исправление разработчикам, чтобы все работало как надо к итоговому релизу.

Примеры задач:

В тестировании: 1 – поиск ошибок в продукте, гипотезе (напр., продуктовой; то же A / B testing обширно используется и в аналитике данных ), оборудовании; 2 – разработка методов тестирования; 3 – написание сценариев; 4 – реализация сценариев.

При обнаружении ошибок: 1 – документирование ошибок; 2 – информирование о них.

Анализ: классификация ошибок и внесение их в базу данных.

Подвиды тестирования:

(1) ручное (т.н. monkey testing, manual): вручную проработать все возможные сценарии использования продукта пользователем ( use cases ) в соответствии с поступившим техзаданием; по итогам всех тестов (во всех браузерах, нужных средах итд) сформировать баг-репорт (где нашел ошибку, как ее воспроизвести; важно умение грамотно описывать это все) и направить в отдел разработки, чтобы исправили;

(2) автоматизированное (программирование + тестирование): сам пишет программы (скрипты) для автоматизации всех тестов. пользуется специальными средами для написания этих скриптов и инструментами (Allure -- автоматизация отчетов по авто-тестам; Selenium – автоматизация действий веб-браузера) итд.

Варианты прикладного применения и реализации: стресс-тестирование, имиджевое (ui / ux) тестирование, перформанс-тестинг (проверка производительности); бета-тестирование (игр и не только) итд.

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

3. Проджект-менеджер (Project Manager, иногда – руководитель проектов, но это могут быть и разные должности):

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

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

Стандартные подходы в управлении проектами (на каждом проекте выбор обусловлен особенностями конкретного проекта):

(1) scrum/agile = короткие итерации без планирования на год, условно — по 2 недели. Есть гибкость, нет исчерпывающего описания => доработка на ходу;

(2) waterfall = есть все алгоритмы и стандарты, весь перечень задач -- нужно все их четко раскидать;

(3) кanban = работа "с колес", т.е. пришла задача — сделали.

Это вот ближе всего к организации мелко-среднего бизнеса или руководству отделом.

4. Продакт-менеджер (Product Manager):

Организует процесс создания продукта от идеи до выхода на рынок и дальнейшего развития.

Придумывает продукт, общается с потребителем (не обязательно с заказчиком), обкатывает, продвигает, привлекает клиентов. Генерирует идеи и, в каком-то смысле, живет ими. Управляет жизненным циклом продукта (от идеи до запуска), ui/ux (user interface / user experience; первое — к дизайнерам и прочим фронтэндерам, второе — про системное удобство самого продукта, совместимость с другими решениями итд. В целом, нужно уметь смотреть на продукт глазами клиента/потребителя). Отгружает задачи проджект-менеджеру, если они разведены по разным должностям. Изучает рынок, сопоставляет с конкурентами, руководит созданием допценности, анализирует каналы продаж и продвижения, собирает и обрабатывает обратную связь, маркетинг.

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

5. Аналитик:

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

Этапы (это разные подвиды аналитиков и сопричастных):

(1) сбор инфы из баз данных (etl = extract, transfer, load = в единую базу), архитекторы (центральной базы), инженеры данных, dwh (data warehouse; управление центральной системой). Работа с большими данными, например;

(2) визуализация (отчеты), dashboard (сведение отчетов в один лист), bi (business intelligence) с инфографикой (доля распределения издержек, совмещение графиков итд). Вот, например, по dash-визуализации статья:

https://nuancesprog.ru/p/14573/

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

*(4) связка: аналитика + программирование:

(а) ИИ (искины) — имитация/воспроизведение человеческого разума в тех или иных проявлениях. ~# голосовой помощник, чатбот, синтезаторы речи (подстраивается под собеседника, "притворяется" человеком);

(б) машинное обучение — учим "машину" учиться;

(в) дата-сайенс (data science) — большие объемы данных (но не обязательно биг дата), распознавание образов, отслеживание эмоций, выявление потенциальных нарушителей (face id), анализ движения маршрутов. используется "научный" подход к обработке данных;

(г) нейросети — инструментарий для распределения вычислений для ускорения решения задач.

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

Это вот моя вотчина; конкретно — ИскИн. Здесь со временем смогу все более предметно консультировать.

ИИ/DS грубо сводится к трем областям: компьютерное зрение (computer vision, CV), обработка естественного языка (natural language processing, NLP), машинное обучение (machine learning, ML). Есть целый ряд подобластей типа text mining (извлечение знаний из текста), pose estimation (оценка положения тела в пространстве: прикладной функционал от идентификации по походке до определения намерений), unsupervised learning (машинное обучение без учителя) итд.

Примеры областей применения ИИ (наиболее очевидные и востребованные на поверхности):

- прогнозирование цен на недвижимость

- модель оттока клиентуры

- вакансии и соцсети (подбор и рекрутинг)

- кредитный скоринг (банки, кредитные организации)

- рекомендательные системы для магазинов

А вот чуть менее очевидный вариант ("предсказание" беременности у подростков):

https://www.wired.com/story/argentina-algorithms-pregnancy-prediction/

 coldwar_etcetera

link 8.05.2022 21:30 
микро-бонусы по программированию:

а) для желающих опробовать бесплатно:

https://go.redav.online/22368c4896f707f0

https://go.redav.online/bfde827dd05217a0

б) моя итоговая домашка по одному из курсов подготовительного блока. не смейтесь, но это рабочий код онлайн-казино (на самом деле, просто "рулетка"). за 1-2 недели научитесь писать такое же. местное оформление уничтожает все отступы и часть операторов, так что это вам просто на посмотреть; язык = JavaScript, после // идут комментарии.

function log(value) {console.log(value);} //упрощение функции вывода

function random(to) {return Math.round(Math.random() * to);} //рандомайзер

function result(num, col, numf, winf, inp, lot) { //формирование тела вывода после каждого броска

let col_array = ['красное', 'черное']; //цвет

let obj_array = [col_array[Math.abs(col-(!winf))], parseInt(inp)]; //можно было просто поставить input, не вводя массив, но хотелось решить более "широким" способом

let prize_array = [2, 35]; //множитель: либо 2 при num_flag = 0, либо 35 при num_flag = 1

balance = (balance-lot)+winf*(lot*(prize_array[numf]+1));

let out_array = ['! вы поставили '+lot+' кред. на '+obj_array[numf]+' - и не угадали. ваша ставка потеряна',

'! вы поставили '+lot+' кред. на '+obj_array[numf]+' - и выиграли, ставка x'+prize_array[numf]+'! ваш выигрыш: ' + lot*prize_array[numf]]; //проигрыш или выигрыш + подстановка

return (num + ', '+ col_array[col] + out_array[winf] + '. ваш баланс: ' + balance + ' кред.');}

let balance = 1000;

let bet_flag; //контроль статуса игры. 1/true - активна, 0/false - неактивна.

let num_flag; //основной контроль типа объекта. если выбрано число - 1, если выбран цвет - 0.

let col_flag; //дополнительный контроль типа объекта ставки (цисло или цвет). при желании можно обойтись и одним num_flag.

let win_flag; //контроль победы.

log('добро пожаловать в игру "рулетка"! ваш начальный баланс - 1000 кредитов.');

while (balance>0 && bet_flag!==false) // проверка баланса и статуса игры при запуске цикла

{

let bet = prompt('у вас '+balance+' кредитов. ваша ставка? (Q - выход, V - ва-банк)');

if (bet == 'Q' || bet == null) {log('приходите еще!'); bet_flag=false;} //проверка на отказ (Q или "отмена")

else if (bet == 'V') {bet=balance; log('ва-банк!'); bet_flag = true;} //ва-банк

else {bet = parseInt(bet);

if (0let number = random(36); //let number = 36; для проверки (36)

let color = random(1); //let color = 1; для проверки (черное)

if (input=='Q' || input==null) {log('приходите еще!'); bet_flag=false;} //проверка на отказ (Q или "отмена")

else {

if (input.indexOf('R') != -1 && input.indexOf('B') != -1) {log('можно выбрать только один цвет'); col_flag=false;} //если во вводе присутствуют обе буквы

else if (input == 'R' || input == 'B') {num_flag = false; col_flag = true;}

else if (0if ((col_flag==true && ((input=='R' && color == 0) || (input=='B' && color == 1))) || (num_flag==true && parseInt(input)==number)) {win_flag = true;} //условия победы

else {win_flag = false;}

if (num_flag !== undefined && win_flag !== undefined) {log(result(number,color,Number(num_flag),Number(win_flag),input,bet));} //вывод результата (при заданных флагах контроля)

bet_flag = undefined; //после каждой итерации - сброс всех флагов контроля

num_flag = undefined;

col_flag = undefined;

win_flag = undefined;

}

}

if (balance==0) {log('баланс исчерпан, и на этом игра для вас заканчивается. приходите в другой раз');}

}

 coldwar_etcetera

link 8.05.2022 21:31 
еще в нагрузку по программированию/разработке:

https://nuancesprog.ru/p/15650/

https://nuancesprog.ru/p/15659/

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

 coldwar_etcetera

link 8.05.2022 21:34 
примеры программ по направлениям на самой платформе (у них там все в кучу свалено, поэтому я структурировал):

1) программист/разработчик

пул по программированию: https://go.redav.online/24dc03b9074922b0

- общего плана: https://go.redav.online/0ff6e74c3aaf7440

- c++: https://go.redav.online/8ee65bacda02c7a0

- java: https://go.redav.online/90347be30bf41120

- front-end: https://go.redav.online/bfbe0d33a114ba90

- full-stack JS: https://go.redav.online/3b51c88e43ea1ba0

- python: https://go.redav.online/6c8d6d2ca42913f0

2) тестировщик

- ручное: https://go.redav.online/16bb5026a0cbd710

- автомат: https://go.redav.online/b9c0213e4d65c790

3-4) проджект и продакт:

пул по управлению: https://go.redav.online/1d9245f7d5f75de0

- проджект: https://go.redav.online/314023eef666d8e0

- продакт: https://go.redav.online/203a06b6d5ef4620

- проджект в строительстве: https://go.redav.online/7b6d32654cbde760

5) аналитик:

пул по аналитике: https://go.redav.online/daf216ef10a17d90

- бизнес: https://go.redav.online/6130761f5a6be1b0

- бизнес в айти: https://go.redav.online/15454c52bdeb3380

- финансовый: https://go.redav.online/fa733efb2cfbabf0

- искин: https://go.redav.online/e8d08c90c30ea3d0

- дата-сайенс в медицине: https://go.redav.online/ef0c363867631de0

ну и такие всякие:

инфосек: https://go.redav.online/956d450d473bf020

VR/AR: https://go.redav.online/0fac6e2935d6f4b0

пул по маркетингу: https://go.redav.online/23898d3a200bd310

пул по дизайну: https://go.redav.online/6564d618803dff80

пул по играм: https://go.redav.online/1ca2059e25711080

мини-пул по креативу: https://go.redav.online/7cceaa4e0c13ceb0

также по пятерке выше есть общий вариант — т.н. "Разработчик" (15 месяцев):

3 месяца базиса (по всем этим направлениям понемногу), затем выбор конкретного направления;

9 месяцев — по выбранному (любое из 5 вышеперечисленных — программист, тестировщик, проджект, продакт, аналитик);

3 месяца — отраслевая/технологическая специализация (сообразно выбору).

! ЕСЛИ РЕШИЛИ ЧТО-ТО ПОКУПАТЬ, не забывайте проверять, присутствует ли понравившийся курс на лендинге распродажи — ТАМ ДЕШЕВЛЕ (примерно -18к экономит в среднем):

https://go.redav.online/71ab3993ad2e9310

 coldwar_etcetera

link 8.05.2022 21:36 
ну и напоследок разбор по льготной ипотеке для айтишников от тинькофф (вполне возможно, что условия еще дополнительно улучшат до лета или летом, тк предпосылки имеются):

https://journal.tinkoff.ru/news/it-ipoteka/

на сегодня все.

 coldwar_etcetera

link 8.05.2022 22:04 
п.с. вот так выглядело само задание в домашке с рулеткой, просто для наглядности:

Реализовать текстовый вариант игры «Рулетка». В начале игры у пользователя на балансе есть 1000 кредитов, перед каждым «броском» шарика пользователь должен ввести объект ставки: одно из чисел в диапазоне от 0 до 36 включительно или цвет, красный или чёрный. Кроме этого, необходимо запросить у пользователя размер ставки, который не должен превышать текущее количество кредитов на балансе пользователя. После того, как пользователь сделал ставку, программа должна сгенерировать число в указанном диапазоне и вывести пользователю следующую информацию: выпавшее число, его цвет, объект и размер ставки пользователя, выигрыш пользователя, если он есть, и текущий баланс. Игра останавливается при вводе пользователем слова «quit» на этапе формирования ставки или при уменьшении баланса до нуля. Выигрыш в рулетке при угадывании цвета равен двум ставкам, при угадывании числа 35-ти ставкам.

 wise crocodile

link 9.05.2022 6:34 
А сколько примерно платят за выполнение подобного задания?

Get short URL | Pages 1 2 3 4 5 6 7 8 all