8088

8088

Веду Python комьюнити https://t.me/KodduuPython
Пикабушник
15К рейтинг 44 подписчика 7 подписок 136 постов 24 в горячем
59

Какой язык программирования выбрать?

Какой язык программирования выбрать? IT, Истории из жизни, Юмор, Программирование, IT юмор, Программист, Языки программирования

Старый пост, но все еще верный :)

Какой язык программирования лучше? C, C++, Python, Java?

Если пишешь операционную систему, то выбирай C

Если пишешь сложное приложение, где важна производительность, то выбирай C++

Если скорость выхода на рынок критична, то выбирай Python

Если начальник говорит "Делай на Java или ты уволен", выбирай Java и ищу новую работу :-)

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

Почему Pikabu никогда не вернет минусы!

Бизнес Пикабу - это продавать глаза тех кто читает посты.

Тоже самое как например youtube. Раньше, у youtube были dislik'и, их удалили и никогда не вернули.

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

Значит Пикабу нужны контент-мейкеры или авторы, прям как на youtube.

Дык кто важнее - хомяки которые крутят ленту и хотят минусить? Или авторы?

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

Для примера, тот же ЦИАН больше зависит от тех кто выставляет квартиры (агенты), а не от тех кто скроллит.

Всем Добра и много плюсов!

Три типа АйТишников

Значит проработал я в ИТ 25+ лет уже, и последние 5 лет на удаленке. И грубо говоря видел 3 типа ИТшников:

  1. Настоящий ИТшник. Чел с раннего возраста программировал. Потом получил профильное образование (что-то около Computer Science). Бывает начинал получать профильное, но недополучил.

  2. Образованный ИТшник. Чел получил профильное образование, но оказалось не его. Тем не менее таких тоже много в ИТ. Может PMом, может тестировщиком, может даже разрабом работать. В последнем случае обычно доставляет много проблем первому типу, но в некоторых структурах это не мешает ему расти по карьерной лестнице.

  3. Случайный ИТшник. Чел пол жизни занимался другими делами, возможно даже получил гуманитарной образование (OMG). Потом толи по знакомству, толи на растрельуню должность, толи совсем случайно - попал все таки в ИТ. В крупных конторах так бывает - берут по 100 человек сразу, и некогда по всех разбираться.

Справедливости ради скажу, что 3 тип, иногда может стать первым, видать просто у человека был талант к ИТ, но просто пошел другим путем.

Я знаю несколько человек второго типа, которые такой код пишут, что лучше бы не писали, НО они успешно двигаются по карьерной лестнице, потому что успех определяется не только hard skills, но и soft skills.

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

Как стать первым типом я описал тут. Всем Добра!

0

Как я планирую стать долларовым триаллиардером?

Значит палю секрет на миллиард.

Буду покупать доллары,

сначала по чуть-чуть,

потом побольше,

потом хоп,

и еще побольше,

и еще,

и еще -еще...

И так постепенно,

стану сначала миллионером,

потом миллиардером,

и догоню Безоса :)

Не благодарите за совет. Не в деньгах ведь счастье, а в их количестве :-) Всем Добра!

1
Вопрос из ленты «Эксперты»

Что подарить сыну на 13 лет?

Думал iPhone - сильно пафосно, пусть с Android ходит...

FPV дрон, чтобы от компа оторвать? Будет съемки делать - монтировать видео он любит...

Комп проапгрейдить? Уже было в прошлом году, хотя он еще хочет мощнее, чтобы не лагало совсем нигде...

Что еще?...

Я в свои 13 лет, по моему ничего не получил, но тогда времена были другие 90-е, тогда картошечки пожарил с лучком и рад :-)

19

Как стать АйТишником в 2025 году (пошаговый план)

Всем привет, я АйТишник уже 5 лет на удаленке, 25 лет в ИТ. Ко мне на собеседования приходит очень много джунов (новичков), и последние годы много без опыта в ИТ. К сожалению, 90% приходится отказывать; некоторые просят рассказать, что им улучшить. В этой статье решил написать план на год — как за год попасть в ИТ. Всех, кто пройдет этот план, я готов лично рекомендовать по своим каналам (вот он я в linkedin со своей сетью контактов). Вам, кстати, тоже надо прямо сейчас завести профайл в LinkedIn (нужен ВПН), пусть даже пока пустой; дальше я расскажу, как его наполнять. Для добавления ко мне в контакты просто отправьте ссылку на эту статью.

Дальше будет много букв, хотя я постараюсь дать самый минимум.

Сначала общий roadmap; напротив каждой цели — сложность (от 1 до 5 звездочек):

  1. Понять какие специальности бывают в ИТ *

  2. Понять какие навыки (скиллы) нужно любой специальности ИТ (самая база) **

  3. Начать качать базовые скиллы ***

  4. Понять что тебе лучше подходит ***

  5. Выбрать направление, и качать хард скиллы (твердые навыки) в течении 1 года ****

  6. Готовить и рассылать резюме + сопроводительное письмо ***

  7. Пройти 10-20 собеседований ****

Понять какие специальности бывают в ИТ

Очень кратко в ИТ есть:

  • Продакты (Product Managers или Product Owners). Они придумывают фичи (функционал), который нужен бизнесу.

  • Дизайнеры. Они рисуют интерфейсы будущих приложений.

  • Разработчики (Developers). Они пишут код приложений и серверов.

  • Тестировщики (QA). Они проверяют, что все (приложения, сервера) работает согласно требованиям.

  • Аналитики данных (Data Science).

  • DevOps. Они создают и поддерживают инфраструктуру, на которой работают сервисы, серверы и приложения.

Всем этим управляет либо CTO, либо VP of Engineering, либо Директор Департамента или Блока ИТ.

Больше всего вакансий для разработчиков. На втором месте — тестировщики (QA). Дальше идут дизайнеры, аналитики данных, DevOps и продакты.

Я очень рекомендую сконцентрировать свои усилия на той области, где больше всего вакансий, то есть на разработке.

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

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

Data Science тоже редкий зверь, и денег обычно платят меньше, чем в среднем в разработке. Я бы это рассматривал только как дополнительный важный навык для продакта. Product Manager должен уметь анализировать данные, чтобы понимать, какие фичи внедрять (Data Driven Development).

Короче говоря, переходим к плану A — стать разработчиком. Еще один плюс этого плана в том, что если вдруг вас сразу не возьмут на разработчика, то могут с руками оторвать, например, в тестирование (внутри тестирования тоже есть своя разработка — автоматизация тестирования). А дорожка из тестирования в разработку уже протоптана.

Какие бывают разработчики?

Бывают FrontEnd, бывают BackEnd, а бывают самые редкие FullStack.

FrontEnd делают приложения и интерфейсы сайтов (UI — User Interface). То есть весь визуал, который вы кликаете и тапаете.

BackEnd делают сервера и сервисы, к которым обращаются приложения и Front сайтов. Сюда же отнесем базы данных; они обычно еще на один уровень ниже, под сервисами BackEnd. И бывают отдельные крутые разработчики по БД. Бывают даже системы, где по сути нет UI, но требуется дикая производительность для расчетов. Там используются тяжелые, дорогие решения и всякие TeraData, Oracle и т.д. Рынок таких вакансий не велик, платят тут хорошо. Но чтобы сюда прорваться, скорее всего, сначала нужно стать разработчиком или аналитиком данных, а потом сместиться в большие БД. На коленке поработать с такими решениями будет сложно. Ограничения — это лицензии на софт и где вы возьмете такие большие данные? И где их хостить? Короче говоря, это длинный путь.

FullStack могут делать и то, и другое. Такие чаще встречаются на стеке Web-технологий, то есть в разработке сайтов. Значительно реже — в разработке приложений.

Причина проста: BackEnd — это набор серверов с сервисами, которые в 90% случаев работают сегодня на Web-технологиях (дают API для Front), то есть BackEnd Developer хорошо знает, как устроен Web, и до FrontEnd сайтов ему рукой подать; хотя там уже используются надстройки над Web в виде всяких крутых фреймворков (ReactJS например). Есть, конечно, BackEnd, который вообще никак с Web-технологиями не связан; например, высокоскоростные сервисы на C/C++, но таких меньше, чем Web-сервисов.

GameDev (разработка игр) стоит немного в стороне со своими Unity, Unreal Engine и т.д. Но это хороший способ познать базу, которая даст возможность двигаться дальше. Тут все языки — Cи подобные (аналоги языка Cи).

Мобильные приложения делятся на два больших мира — iOS и Android. Обычно это разные разработчики; у каждого целая вселенная, поэтому им не до BackEnd. Но знание базы Web-технологий очень сильно тут помогает, так как в мобильной разработке переиспользуются многие форматы и правила из Web.

Важно - у истоков всей современной разработки стоит Web. Ну может кроме Баз Данных, хотя форматы для данных там часто используется те же.

Короче, если вы нифига не понимаете в ИТ, то начинайте с FullStack Web-разработки. Вы сможете освоить:

  • Front и BackEnd программирование,

  • Си-подобный язык программирования (после легко учить другие языки),

  • Rest API как вариант самого популярного способа общения между Front и Back,

  • Понятие фреймворка и библиотеки,

  • Асинхронное программирование (когда для продолжения программы нужно ждать результат от других источников),

  • Все самые популярные форматы для передачи данных (JSON, XML),

  • Работу с базами данных (SQL, NoSQL).

Если хотите, чтобы и само Web давалось легче, очень советую потратить время на язык C/C++. Я включу это как необязательный пункт в начале плана.

Какие навыки (скиллы) нужно любой специальности ИТ?

Если только вы не хотите стать 1C-разработчиком, то первый навык — это английский язык. Хотя бы чтение и умение задавать вопросы.

Второй навык — это логическое (и, как более высокий уровень, алгоритмическое) мышление. Это блокер для 50% желающих войти в ИТ. Алгоритм — это последовательность команд, приводящих к заданной цели.

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

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

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

Проще говоря, если вы не ищете причинно-следственные связи, то вам будет тяжело в ИТ. ИТшник уверен, что все можно разложить по полочкам и построить в стройный алгоритм.

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

Короче говоря, английский и логическое мышление — это must have (обязательно).

План по musthave скиллам:

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

  2. Переключите все интерфейсы на английский язык на весь 2025 год.

  3. Гуглите и разговаривайте с чатГПТ на английском в течении 2025 года.

  4. Читайте reddit и stackoverflow на английском.

  5. Уcтановите discord, читайте каналы по Gaming, Education, Science. Позволит Вам качать английский и привыкнуть к около ИТшным мессенджерам и темам.

  6. Посмотрите лекции Макарова, про Сократический диалог и Науку о логической аргументации. Логика наше все!

  7. Пройдите курс по BF. Это позволит Вам потренировать логику, и понять как компьютер работает на базовом уровне.

Понять что тебе лучше подходит

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

Если вы мегакоммуникатор и хороший организатор (ведете списки дел, можете делегировать), тогда вам в продакты.

Во всех остальных случаях — в разработчики или в тестировщики.

Качать хард скиллы в течении года

Будем говорить здесь о самой массовой теме — хард скиллах разработчика.

  1. Написать ~5000 строк кода (3 месяца) на C/C++ или Си подобных языках. Все комитить на github, заодно изучив git. В крайнем случае можно на Python.

  2. Написать ~10 000 строк кода (5 месяцев) на node.js (BackEnd) + html/css/js (FrontEnd)

  3. Написать ~5 000 строк кода (4 месяца) на любом FrontEnd js framework (reactjs, и т.д.) + node.js (BackEnd)

В пункте 1 можно начать с GameDev, но только если вас прямо увлекают игры; иначе вы там застрянете и устанете. Рекомендую Unity + C#. Либо Roblox + Lua. Авторов Lua, конечно, надо "расстрелять", но все-таки он Си-подобный. Зато в Roblox вы изучите асинхронщину, и может быть, даже напишете успешную игру для школоты.

Либо, если совсем лень и тяжело идет C/C++/C#/Lua, на крайний случай — Python. Плюс Python в том, что он сейчас очень популярен, и по этому магическому слову вас будут искать HR (отделы кадров). По Python и не только подключайтесь к Python комьюнити, где каждый день постится кусок кода на разные темы. Берите этот кусок кода, отлаживайте, запускайте и расширяйте пример. Вы можете один пример увеличить с ~30 строк кода до 100-200. Затем комитьте этот код на GitHub. Это будет формировать ваш профайл. Очень важно, чтобы у вас были коммиты каждый день; так вы пройдете фильтры HR и Intro-интервью. И набьете руку на разных библиотеках и темах. Затем можете портировать (переводить) код на другие языки, например, на C/C++ или JavaScript. Вы поймете, чем все-таки Python со своими структурами данных и библиотеками хорош.

Для пункта 2 лучше брать более крупные задачи и делать какую-то мини-систему целиком. Например, сайт-калькулятор, который считает все на BackEnd. Или сайт, который валидирует почтовые адреса через внешний API. Вот список внешних API который можно использовать. Можно много идей получить из тех данных, которые дают сами API. Проект нужно закомитить на GitHub, или, точнее, в процессе делать комиты. Если там будет один комит и один MR, то с вами никто разговаривать в ИТ не будет. Множественные комиты в течение месяцев показывают, что это реально вы работали, а не просто кто-то дал вам готовый проект и показал, какие кнопочки нажимать.

Если выбрали GameDev в пункте 1, то рекомендую поучаствовать в old games remakes. Это большие проекты, которые выложены на GitHub и ставят своей целью сделать ремейк старой известной игры. Если в течение года вы покажете свои постоянные комиты, заревьювленые и заапрувленые другими участниками проекта, вас точно позовут на собеседование и будут долго расспрашивать про этот проект. Тут можно найти список таких проектов.

Для п.3 вы уже должны осознано выбрать Front фремйворк. Это может быть игра на Phaser.js. Либо портал с графиками на Grafana. Либо просто красивый интерфейс на ReactJS. Тут важно выбрать самому; потом, на собеседовании, если вы обоснуете свой выбор с деталями любого фреймворка, это даст вам +100 баллов над любым джуном.

Для GameDev можно пойти на Unity assets (или аналоги для Unreal и прочих), набрать там фришных (бесплатных) ассетов (это может быть целый уровень игры), и доделать игру дальше. Например сделать следующий уровень, или добавить какие-то ништяки или других врагов в игру.

Готовить и рассылать резюме + сопроводительное письмо

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

По п.1 (~5000 строк кода):

Изучал Python. Написал X строк кода. Изучил библиотеки [список]. Написал код по темам [список]. + ссылки на github, где будут ваши еженедельные комиты с указанными темами и библиотеками.

Темы каждый день можно брать из Python комьюнити. Темы можно брать даже если вы не на Python, их будете писать.

По п.2 (~10 000 строк кода):

Написал валидатор почтовых адресов US на JavaScript. Backend: node.js + MongoDB + Google API. FrontEnd: JS/HTML/CSS.

Переписал валидатор на TypeScript.

+ ссылки на github с вашими комитами подтверждающимии вышеописанную историю.

За "переписал" вам +100 баллов в карму будет. Это повысит ваши шансы даже на стадии отбора резюме. И на техническом собеседовании вы сможете поговорить не о рандомных вопросах собеседующего, а о вашем коде, где вы как рыба в воде.

По п.3:

Написал игру-клон Mario (один уровень) на Phaser.js + Node.js + MongoDB.

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

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

Пройти 10-20 собеседований

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

Обычно бывают следующие этапы собеседований в ИТ:

  1. HR - что вы за человек?

  2. Hiring Manager interview (с нанимающим менеджером) - что вы за человек? И что у нас за компания?

  3. Техничеcкое интервью - ваши hard skills.

  4. Финальное интервью с Hiring Manager/его боссом или HR. Цель сделать вам оффер.

Если кратко, то все. С Наступшим 2025. Успехов в обучении. Пишите. Подключайтесь к Python комьюнити. Всем Добра!

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

7:00 утра 7 января

7 января проснулся в 7:00.

Решил разобраться с движком Phaser.js и PyGame.

Нашел хороший туториал, поставил npm. Позапускал игры локально на 8080. Установил node.js. Сделал автоперенос с dist в public, после сборки игры. Запустил на node.js.

Поменял чуть игры. Добавил жизни герою вот тут.

Поиграл в игры в examples.

Потом запустил PyGame по этому описанию.

Сам сайт pygame лежит. Собрал локальную игру, где шарик отбивать.

7:00 утра 7 января Программирование, Ретро-игры, Удаленная работа, IT, Программист, Разработка, Дневник, Истории из жизни, Жизненно, Жизнь, Карьера, Telegram (ссылка), Опыт, Фриланс, Успех, Отдел кадров, Поиск работы, Личный опыт, Собеседование, 90-е

PyGame лежит

Зачем я все это делал? :) Я ведь уже 15 лет формально не пишу код на своей удаленке? Если бы еще до 9 января покопался - написал бы свою мини игру. Потратил бы пару месяцев, стал бы гуру в PyGame и Phaser.js. Разработка игр манит, 50 идей лежат, ждут своего часа. Но кончено я бы делал большинство игр не в PyGame, и не в Phaser.js. Unity скорее всего, там тоже пару проектов лежит начатых, включая мобильную на Android.

Любой, кто потратит 2-3 месяца на реальную разработку, например, игр на любом движке, станет как минимум Junior разработчиком. Тем более это очень интересно — игры разрабатывать. А потом, еще полгода практики, и тебя уже берут в корпорацию на сто тыщ. Писать, конечно, придется более скучный код, хотя задачи там бывают очень сложные — а значит, интересные.

Обожаю писать код, но руководить людьми получается лучше. Короче ладно, вернусь к своим делам - руководить ИТ и вести свое ламповое комьюнити по Python.

Еще DOOM очень люблю, в свое время (90е) тянули коаксиальный кабель между соседними многоэтажками, только для того, чтобы рубится по выделенке в DOOM. Были Arcnet на 2Mbit, пробивали на 300 метров по хорошему кабелю. Настраивали Unix роутеры, на каждом доме на 192.168.X.Y.

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

Самому приходится по 50-100 человек перебирать, чтобы нанять подходящего, и по soft, и по hard skills. 80% отпадают по hard skills, не могут написать простой код на 20 строчек.

Всех с Рождеством, наступившым 2025, и Всем Добра!

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