🔥 Привіт друзі!
Давайте ще раз познайомимся, особливо з тим хто недавно приєднався, або просто хто приєднався десь по "середині" життя цього каналу. Мене звати Роман, я займаюсь програмуванням вже більше 10 років, моя ціль - розвивати українське дев комьюніті і обмінюватись досвідом! Я абсолюний ентузіаст, самоучка, у мене немає цілі заробляти чи просувати щось задля заробітку. Я не вважаю себе експертом, я такий як і ви всі, все життя вчусь на помилках і ділюсь своїм досвідом. Також я працюю над своїм амбіціозним пет проєктом, interviewboom.com. Цей проект я розробляю з нуля, мені допомагало багато різних людей. MVP версія проєкта вже запустилась і працює по посиланню. Там можна пройти тести, 3 спроби на кожний з тестів, оскільки база ще не наповнилась.
👉 Нещодавно ми запустили нову фічу - проходження тестів разом, це означає що я можу з вами ділитись посиланням і всі відповідати на 1 питання, і потім переключатись на наступне друге питання і т.д. Щоб разом синхронно пройти тест і кожен може перевірити свої помилки, влаштувати колективний брейншторм!
Дайте лайк, якщо хочете сьогодні ввечері спробувати під час трансляції! 🫶
Давайте ще раз познайомимся, особливо з тим хто недавно приєднався, або просто хто приєднався десь по "середині" життя цього каналу. Мене звати Роман, я займаюсь програмуванням вже більше 10 років, моя ціль - розвивати українське дев комьюніті і обмінюватись досвідом! Я абсолюний ентузіаст, самоучка, у мене немає цілі заробляти чи просувати щось задля заробітку. Я не вважаю себе експертом, я такий як і ви всі, все життя вчусь на помилках і ділюсь своїм досвідом. Також я працюю над своїм амбіціозним пет проєктом, interviewboom.com. Цей проект я розробляю з нуля, мені допомагало багато різних людей. MVP версія проєкта вже запустилась і працює по посиланню. Там можна пройти тести, 3 спроби на кожний з тестів, оскільки база ще не наповнилась.
👉 Нещодавно ми запустили нову фічу - проходження тестів разом, це означає що я можу з вами ділитись посиланням і всі відповідати на 1 питання, і потім переключатись на наступне друге питання і т.д. Щоб разом синхронно пройти тест і кожен може перевірити свої помилки, влаштувати колективний брейншторм!
Дайте лайк, якщо хочете сьогодні ввечері спробувати під час трансляції! 🫶
❤6
Привіт, розібрати тему React Compiler? Бачу що є запит на цю тему, якщо цікаво спробую підготувати цікавий матеріал
👍12🔥3❤1
Привіт! це ж треба так завантажився що забув тут написати, всім продуктивного дня і не ложіть прод сьогодні!
👍3
Всіх вітаю з Новим Роком! 🎄
Цей рік був дуже тяжким бо починати щось робити і доводити це до кінця це різні речі, для мене найбільше досягнення це те, що проект interviewboom все ж таки довели до робочої версії. Так покищо тестів і питань дуже мало, так я працюю один на бекенді і в мене є один фронтендер, який мені допомагає. Так мені цей проект не приносить жодного доходу. Але місія створити місце для розробників де вони можуть перевірити свої знання, скіли і у майбутноьому обмінятися досвідом мене надихає продовжувати над цим працювати далі.
Задачі які були вирішені в 25 році:
- Заміна редактора коду, тепер всі питання і відповіді підтримують будь яку мову програмування і ще є можливість виводити в питаннях і відповідях картинки.
- Підключення AI асистента для аналізу тестів і відповідей і сортування їх по рівню складності. Прискорення генерації тестових питань, AI забирає на себе роботу по коригуванню помилок.
- Створення адмін панелі де зручно генерувати і редагувати тести.
- Проходження тесту без таймера, для тих хто навчається і не хоче змагатись за місце у топ юзерів по кількості правильних відповідей.
- Новий режим проходження тесту, тепер я як адмін можу зпускати тест і ми разом можемо проходити його і робити аналіз наших відповідей і помилок.
- Покращення роботи таймера теста, тепер він рахує точно і синхронно.
- Підключення авторизація і реєстрації через Google
Зростання тікток каналу, нас тепер більше 5 тисяч. і я планую генерувати ще більше цікавих навчальних роликів і розвивати дев. комьюніті України! Це все наші спільні досягнення, дякуючи вашій підтримці в мене є мотивація і натхнення зростати з вами далі! 🔥
Цей рік був дуже тяжким бо починати щось робити і доводити це до кінця це різні речі, для мене найбільше досягнення це те, що проект interviewboom все ж таки довели до робочої версії. Так покищо тестів і питань дуже мало, так я працюю один на бекенді і в мене є один фронтендер, який мені допомагає. Так мені цей проект не приносить жодного доходу. Але місія створити місце для розробників де вони можуть перевірити свої знання, скіли і у майбутноьому обмінятися досвідом мене надихає продовжувати над цим працювати далі.
Задачі які були вирішені в 25 році:
- Заміна редактора коду, тепер всі питання і відповіді підтримують будь яку мову програмування і ще є можливість виводити в питаннях і відповідях картинки.
- Підключення AI асистента для аналізу тестів і відповідей і сортування їх по рівню складності. Прискорення генерації тестових питань, AI забирає на себе роботу по коригуванню помилок.
- Створення адмін панелі де зручно генерувати і редагувати тести.
- Проходження тесту без таймера, для тих хто навчається і не хоче змагатись за місце у топ юзерів по кількості правильних відповідей.
- Новий режим проходження тесту, тепер я як адмін можу зпускати тест і ми разом можемо проходити його і робити аналіз наших відповідей і помилок.
- Покращення роботи таймера теста, тепер він рахує точно і синхронно.
- Підключення авторизація і реєстрації через Google
Зростання тікток каналу, нас тепер більше 5 тисяч. і я планую генерувати ще більше цікавих навчальних роликів і розвивати дев. комьюніті України! Це все наші спільні досягнення, дякуючи вашій підтримці в мене є мотивація і натхнення зростати з вами далі! 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤1
Коли хтось питає "Як ти вирішив стати програмістом"? В мене все банально просто, це сидіння годинами перед екраном телека і граючи в денді. Коли за вікном морози і довгі канікули, що могло бути крутіше?
Це робило життя цікавішим, яскравішим. 8-ми бітні приставки, жалюгідні китайські підробки, але цифровий світ затягував і дарував нові і незабутні емоції.
Ці часи поглинали сірі будні, початку 2000-х років. Зараз будь який смартфон це вже по дефолту потужний компьютер в кармані, тоді ця коробочка з однією платою, яка весь час глючила, давала розуміння майбутнього, яке нас всіх чекало
Це робило життя цікавішим, яскравішим. 8-ми бітні приставки, жалюгідні китайські підробки, але цифровий світ затягував і дарував нові і незабутні емоції.
Ці часи поглинали сірі будні, початку 2000-х років. Зараз будь який смартфон це вже по дефолту потужний компьютер в кармані, тоді ця коробочка з однією платою, яка весь час глючила, давала розуміння майбутнього, яке нас всіх чекало
❤6
👉 Анонс нового матеріалу по JavaScript: “Deep dive into Event Loop”
Планую зробити серію відео по Event Loop, вже зібрав матеріал, з глибоким зануренням в саму архітектуру і source code NodeJS.
Ми відповідмо на питання як JS код працює з асинхронними операціями на найнижчому рівні і на прикладі NodeJS (оскільки браузерна версія подібна). Прослідкуємо як асинхронні виклики проходять шлях від функцій в коді до проходження через кожний компонент архітектури NodeJS.
Багато хто говорить що розуміє як працює Event Loop і вважає що це посуті і є JavaScript, але Event Loop це всього лиш один з багатьох компонентів які забезпечують виконання JS коду.
Ви скажите: “Навіщо мені це знати? це ж цілком достатньо просто розуміти що джс однопоточний і не блокувати івент луп.” А вам не хотілось ніколи розуміти повну картину архітектури JavaScript backend/frontend? Щоб бачити всі тонкощі і відповідати на технічній співбесіді з повним розумінням що відбувається під копотом, замість зачитування стандартних фраз без реального усвідомлення як це працює.
Деякі ключові теми, які ми розберемо детально:
• Що таке runtime в JavaScript, і як це повязано з асинхронними викликами
• Як NodeJS обробляє асинхронний код з Event Loop під капотом, проведемо прямий звязок між компонентами архітектури, при виконанні асинхронних коллбеків.
• JS ефективний у high-load не тому, що Node/libuv “розуміють JS”, а тому що вони розділяють відповідальність і ефективно роблять всю “асинхронну” роботу для JS.
• Чому NodeJS написаний на С++ але при цьому використовує 60% JavaScript під капотом.
• Що таке Event Loop фази і як вони взаємодіють з асинхронрим кодом
• Що таке Event Loop tick і як розуміти асинхронний механізм JavaScript в тіках.
• Читаємо асинхронні приклади коду на рівні проходження повного циклу через всю архітектуру NodeJS/Frontend.
• JS Memory management: Розуміння як JavaScript працює з пам'яттю, зберігає структури даних. І як робити профілювання
Дайте лайк кому цікаво!
Планую зробити серію відео по Event Loop, вже зібрав матеріал, з глибоким зануренням в саму архітектуру і source code NodeJS.
Ми відповідмо на питання як JS код працює з асинхронними операціями на найнижчому рівні і на прикладі NodeJS (оскільки браузерна версія подібна). Прослідкуємо як асинхронні виклики проходять шлях від функцій в коді до проходження через кожний компонент архітектури NodeJS.
Багато хто говорить що розуміє як працює Event Loop і вважає що це посуті і є JavaScript, але Event Loop це всього лиш один з багатьох компонентів які забезпечують виконання JS коду.
Ви скажите: “Навіщо мені це знати? це ж цілком достатньо просто розуміти що джс однопоточний і не блокувати івент луп.” А вам не хотілось ніколи розуміти повну картину архітектури JavaScript backend/frontend? Щоб бачити всі тонкощі і відповідати на технічній співбесіді з повним розумінням що відбувається під копотом, замість зачитування стандартних фраз без реального усвідомлення як це працює.
Деякі ключові теми, які ми розберемо детально:
• Що таке runtime в JavaScript, і як це повязано з асинхронними викликами
• Як NodeJS обробляє асинхронний код з Event Loop під капотом, проведемо прямий звязок між компонентами архітектури, при виконанні асинхронних коллбеків.
• JS ефективний у high-load не тому, що Node/libuv “розуміють JS”, а тому що вони розділяють відповідальність і ефективно роблять всю “асинхронну” роботу для JS.
• Чому NodeJS написаний на С++ але при цьому використовує 60% JavaScript під капотом.
• Що таке Event Loop фази і як вони взаємодіють з асинхронрим кодом
• Що таке Event Loop tick і як розуміти асинхронний механізм JavaScript в тіках.
• Читаємо асинхронні приклади коду на рівні проходження повного циклу через всю архітектуру NodeJS/Frontend.
• JS Memory management: Розуміння як JavaScript працює з пам'яттю, зберігає структури даних. І як робити профілювання
Дайте лайк кому цікаво!
❤8👍3
Вітаю, друзі! 🙌
Пропоную пройти разом тест по JavaScript, я буду з вами відповідати на питання і робити роз'яснення по відповідям.
Зараз в мене є приорітет зробити більш якісні питання в тестах, бо є випадки коли питання некоректні або занадто переускладнені, або навпаки занадто прості. Нажаль я особисто можу покращувати і розвивати тільки напрямок JS (backend/frontend), ну і ще PHP, бази даних, Cloud providers, бо це те з чим я працював/працюю тривалий час.
Я думаю що наразі сфокусуюсь виключно на цих напрямках, і їх буду постійно покращувати і наповнювати базу.
Другий момент це підвищення ефективності самих тестів, через персоналізацію самих питань під конкретного юзера. Наприклад якщо юзер ставить собі за ціль отримати рівень senior, але не може успішно пройти ці тести, то ми будемо адаптувати тест таким чином, щоб ті скіли, де у юзера є складнощі частіше з'являлись в тесті, до тих пір, поки юзер не покаже впевнене зання цього напрямку.
Але мені треба дуже ваша підтримка 🙏, і бажаючі пройти разом зі мною тест по JavaScript, і почути ваші відгуки, і покращити ваш досвід!
Формат тестування:
- Я запланую трансляцію в телеграмі на неділю, 8 лютого, на 19:00.
- Вам потрібно приєднатись до трансляції, я поділюсь з вам посиланням на сам тест на JavaScript.
- Приєднатись до проходження теста зможе будь хто, потрібно тільки авторизвуватись на сайті.
- Прохоження тесту без обмеження по часу
- Приєднатися можна в будь який момент
- Коли всі дадуть відповідь на питання і будуть готові рухатись далі, ми переходимо на наступне тестове питання всі разом.
- У кожного юзера буде в фіналі теста свої індивідуальні результати. Які будуть доступні виключно вам.
- Після проходження теста ми разом пройдемось по кожному питанню і перевіримо де правильні відповіді, і проаналізуємо чому саме ці відповіді.
Будемо прокачувати скіли і навчатись разом!
Хто бажає прийняти участь, дайте лайк будь ласка 🙏!
Пропоную пройти разом тест по JavaScript, я буду з вами відповідати на питання і робити роз'яснення по відповідям.
Зараз в мене є приорітет зробити більш якісні питання в тестах, бо є випадки коли питання некоректні або занадто переускладнені, або навпаки занадто прості. Нажаль я особисто можу покращувати і розвивати тільки напрямок JS (backend/frontend), ну і ще PHP, бази даних, Cloud providers, бо це те з чим я працював/працюю тривалий час.
Я думаю що наразі сфокусуюсь виключно на цих напрямках, і їх буду постійно покращувати і наповнювати базу.
Другий момент це підвищення ефективності самих тестів, через персоналізацію самих питань під конкретного юзера. Наприклад якщо юзер ставить собі за ціль отримати рівень senior, але не може успішно пройти ці тести, то ми будемо адаптувати тест таким чином, щоб ті скіли, де у юзера є складнощі частіше з'являлись в тесті, до тих пір, поки юзер не покаже впевнене зання цього напрямку.
Але мені треба дуже ваша підтримка 🙏, і бажаючі пройти разом зі мною тест по JavaScript, і почути ваші відгуки, і покращити ваш досвід!
Формат тестування:
- Я запланую трансляцію в телеграмі на неділю, 8 лютого, на 19:00.
- Вам потрібно приєднатись до трансляції, я поділюсь з вам посиланням на сам тест на JavaScript.
- Приєднатись до проходження теста зможе будь хто, потрібно тільки авторизвуватись на сайті.
- Прохоження тесту без обмеження по часу
- Приєднатися можна в будь який момент
- Коли всі дадуть відповідь на питання і будуть готові рухатись далі, ми переходимо на наступне тестове питання всі разом.
- У кожного юзера буде в фіналі теста свої індивідуальні результати. Які будуть доступні виключно вам.
- Після проходження теста ми разом пройдемось по кожному питанню і перевіримо де правильні відповіді, і проаналізуємо чому саме ці відповіді.
Будемо прокачувати скіли і навчатись разом!
Хто бажає прийняти участь, дайте лайк будь ласка 🙏!
🔥3❤2
Вітаю! Сьогодні в 19:45 спробуємо пройти тест JavaScript разом, я буду шарити скрін тут на телеграм трансляції в цьому каналі, а на тікток запустю трансляцію і будемо відповідати на питання в тесті і спілкуватись разом.
Посилання на тест: https://interviewboom.com/categories/1/test/107/session-sse/88776b29-5151-40b5-9303-6892711d4661
Посилання на тест: https://interviewboom.com/categories/1/test/107/session-sse/88776b29-5151-40b5-9303-6892711d4661
🔥1
Друзі, чи варто питання в тесті перекласти на українську мову чи лишити на англійській?
Anonymous Poll
49%
Англійська
24%
Українська
27%
Без різниці
Dev community interviewboom
Вітаю! Сьогодні в 19:45 спробуємо пройти тест JavaScript разом, я буду шарити скрін тут на телеграм трансляції в цьому каналі, а на тікток запустю трансляцію і будемо відповідати на питання в тесті і спілкуватись разом. Посилання на тест: https://intervi…
Додав посилання на тест по JavaScript, питання підбирав різні! Переходьте по посиланню, поспілкуємось і трохи порішаємо головоломки! Let's go 😤
JavaScript особливості роботи з об'єктами в функціях
У нас є декілька прикладів коду. 1 і 2 приклади показують роботу з масивом, а 3 і 4 приклади з об'єктом.
У обох кейсах ми робимо оновлення для об'єкта і для масива, які передаються через аргументи в функцію
Спробуйте зрозуміти який буде результат, чи зміняться об'єкт або масив після кожного з 4 випадків?
Відповідь:
Для 1 прикладу коду зовнішній об'єкт "objectNumbers" не зміниться, не дивлячись на те що ми намагаємось його переасайнити в середині функції "update()" таким чином
Чому ж це ніяк не впливає на змінну
Для прикладу коду 2 ми замість переприсвоєння, міняємо властивість
Те саме відбувається і для прикладів 3 і 4 з масивом 'numbers'. Оскільки масиви теж передаються by reference в функції.
У нас є декілька прикладів коду. 1 і 2 приклади показують роботу з масивом, а 3 і 4 приклади з об'єктом.
У обох кейсах ми робимо оновлення для об'єкта і для масива, які передаються через аргументи в функцію
update. Спробуйте зрозуміти який буде результат, чи зміняться об'єкт або масив після кожного з 4 випадків?
Відповідь:
Для 1 прикладу коду зовнішній об'єкт "objectNumbers" не зміниться, не дивлячись на те що ми намагаємось його переасайнити в середині функції "update()" таким чином
obj = {}. Чому ж це ніяк не впливає на змінну
objectNumbers? Оскільки об'єкти в JS передаються по reference в функції (не створюється новий об'єкт, а передається на нього посилання в пам'яті). А ми переприсвоюємо об'єкт obj і тим самим втрачаємо reference на зовнішній об'єкт objectNumbers. Тепер змінна obj рівносильна тому що ми створили новий об'єкт в функції update. І зв'язок з objectNumbers втрачений.Для прикладу коду 2 ми замість переприсвоєння, міняємо властивість
numbers в об'єкті obj, але так як ми раніше вже згадували вищє об'єкти в JS передаються по reference в функції, то будь які прямі маніпуляції з аргументом obj приведуть до мутації зовнішнього об'єкта objectNumbers, бо і obj і objectNumbers посилаються на одну і ту саму адресу в пам'яті.Те саме відбувається і для прикладів 3 і 4 з масивом 'numbers'. Оскільки масиви теж передаються by reference в функції.
Dev community interviewboom
Photo
Висновок: обидва варіанти не юзабельні в продакшн коді. Потрібно завжди робити копію масива чи об'єкта в функції перед тим як робити будь які маніпуляції з ними. Це завжди робочий і 100% безпечний варіант в світі JS.
Fix:
Ті хто прочитав код уважно знайшли помилку, дякую що допомагаєте 🫡
Насправді spread оператор в JS робить shallow copy, тому правильний варіант буде зі spread оператором виглядати якось так:
Або все ж таки використати нативну функцію structuredClone()
Fix:
Ті хто прочитав код уважно знайшли помилку, дякую що допомагаєте 🫡
Насправді spread оператор в JS робить shallow copy, тому правильний варіант буде зі spread оператором виглядати якось так:
const update = (obj) => {
const newObject = {
...obj,
numbers: [
...obj.numbers,
]
};
newObject.numbers.push(12);
return {};
}
Або все ж таки використати нативну функцію structuredClone()
👏1
Недавно був свідком як розробник перейшов з свого "нагрітого" і комфортного місця на галері в маленьку продуктову компанію, яка займається розробкою онлайн ігор.
Що може мотивувати розробників перейти працювати з великої, інтернаціональної української топ аутсорс компанії в маленький продукт?
- Більша ЗП, запропонували більше ніж зараз, тоді як в аутсорсі потрібно пройти через бюрократичні і довготривалі процедури, щоб підтвердити свою цінність і отримати аппруви на всіх рівнях. І це ще далеко не факт що у вас вийде.
- Підвищення, як шанс випробувати себе і ривок вгору по кар'єрним сходинкам. Але більша відповідальність, а відповідно і необхідність швидко навчатись і призвичаїтись до нових реалій.
- Друзі або знайомі перетягнули до себе в команду, працювати з своїм близьким оточенням це звичайно більш комфортно ніж у середовищі де купа незнайомих і часто не дружніх колег, до яких треба знайти ще підхід.
- Отримати унікальний досвід роботи в продукт компаніях, це зазвичай більша динаміка, тут може бути і фінансова нестабільність оскільки менші масштаби і будь які коливання і падіння прибутковості буде набагато болісніше ніж у великих IT корпорацій, і менші дедлайни і більша відповідальність, бо немає зверху вас ніяких менеджерів, які будуть захищати вас перед замовником, і у разі незацікавленості ваших послуг можуть перекинути на інший проєкт. На продукті ви працюєте напряму з вашим бізнесом і ніяких компромісів, або тут і зараз або "гудбай". Але при цьому в разі успіху в продуктовій компанії можна як швидко впасти, так і швидко зростати як по кар'єрі так і по рівню зп. І отримати досвід як побудувати власну успішну компанію.
У будь якому випадку це ризик, в аутсорс середовищі ви завжди знаходитесь в більш стабільному і комфортному середовищі. Для тих, хто не любить "пригоди" типу овертаймів і постійні зміни вимог, то це найкращий варіант. Також аутсорс це хороший варіант коли вам потрібна стабільність особливо фінансова.
Але якщо у вас "кипить кров" і є бажання себе випробувати і вийти з зони комфорта, можливо навіть це вас приведе до дуже успішного майбутнього. Але тут все сильно залежить від вас особисто. Тому вибір за вами!
Що може мотивувати розробників перейти працювати з великої, інтернаціональної української топ аутсорс компанії в маленький продукт?
- Більша ЗП, запропонували більше ніж зараз, тоді як в аутсорсі потрібно пройти через бюрократичні і довготривалі процедури, щоб підтвердити свою цінність і отримати аппруви на всіх рівнях. І це ще далеко не факт що у вас вийде.
- Підвищення, як шанс випробувати себе і ривок вгору по кар'єрним сходинкам. Але більша відповідальність, а відповідно і необхідність швидко навчатись і призвичаїтись до нових реалій.
- Друзі або знайомі перетягнули до себе в команду, працювати з своїм близьким оточенням це звичайно більш комфортно ніж у середовищі де купа незнайомих і часто не дружніх колег, до яких треба знайти ще підхід.
- Отримати унікальний досвід роботи в продукт компаніях, це зазвичай більша динаміка, тут може бути і фінансова нестабільність оскільки менші масштаби і будь які коливання і падіння прибутковості буде набагато болісніше ніж у великих IT корпорацій, і менші дедлайни і більша відповідальність, бо немає зверху вас ніяких менеджерів, які будуть захищати вас перед замовником, і у разі незацікавленості ваших послуг можуть перекинути на інший проєкт. На продукті ви працюєте напряму з вашим бізнесом і ніяких компромісів, або тут і зараз або "гудбай". Але при цьому в разі успіху в продуктовій компанії можна як швидко впасти, так і швидко зростати як по кар'єрі так і по рівню зп. І отримати досвід як побудувати власну успішну компанію.
У будь якому випадку це ризик, в аутсорс середовищі ви завжди знаходитесь в більш стабільному і комфортному середовищі. Для тих, хто не любить "пригоди" типу овертаймів і постійні зміни вимог, то це найкращий варіант. Також аутсорс це хороший варіант коли вам потрібна стабільність особливо фінансова.
Але якщо у вас "кипить кров" і є бажання себе випробувати і вийти з зони комфорта, можливо навіть це вас приведе до дуже успішного майбутнього. Але тут все сильно залежить від вас особисто. Тому вибір за вами!
❤3