Як структурувати навчання на початку?

Хочу розпочати навіть не кар`єру в IT, а саме навчання. Але коли сам починаю щось вивчати, наприклад Data Science, в мене очі розбігаються від кількості чого потрібно вчити, різних курсів. матеріалів. ресурсів, книжок, того, що я маю опанувати. Я більше часу витрачаю на всіляких сторонніх сайтах, ніж дійсно щось вчу, бо просто не розумію з чого почати, скільки часу потрібно витрачати на тей чи інший матеріал, які матеріали вже застарілі, які ні тощо.

Ті, хто світчнувся в IT, розкажіть свій досвід навчання самостійно з нуля. Чи можливо зараз навичтися чомусь з нуля якщо повний нуль чи все ж таки варто купувати якісь курси? Якщо так, то які порадите? І взагалі як на початку ви структурували своє навчання і знали що за чим вчити? Дякую за відповіді.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Будь який напрямок у програмуванні зараз — це безкінечне навчання. Не так важливо, що вибрати, як важливо саме вибрати і не зупинятись до закінчення кар"єри. Якщо вдасться, то треба навчитись насолоджуватись самим процесом навчання. Це може зробити ваше життя набагато приємнішим. Ті проблеми, з якими ви вже зіштовхнулись (що вчити, чи варто взагалі (бо може ну його нафіг), як глибоко, як ефективніше витратити ресурси (час/гроші/etc)) і загальна кількість інформації яку треба швидко освоювати нікуди не зникне у цій сфері.
На початку, у вас не має іншого виходу, як аутсорстити свій план навчання комусь, хто теоретично в цьому розбирається (курси, роадмапи для професії/мови/домену, і т.д.). У вас просто немає достатньо інформації, щоб зробити вірний вибір, а коли ви починаєте її шукати, стає тільки гірше, бо її просто нереальна кількість.

Я б сказав що потрібно:
1. Відкинути перфекціонізм і не старатись опанувати/запам«ятати/зрозуміти усе відразу
2. Зрозуміти чи знайти ліміт часу який реально витрачати в день/тижень на навчання в довгостроковій перспективі, щоб не згоріти по дорозі, бо це марафон і якщо після пари місяців навчання стає важко, значить забагато або неефективно
3. Мати систему навчання — тулза для spaced repetition, система нотаток з пошуком (тегами, беклінками, на ваш смак), валідація розуміння матеріалу (пояснити уявній дитині своїми словами або варіанти)
4. Знати англійську, бо без цього шансів нуль — навчання тільки на англійскій навіть якщо ніфіга не зрозуміло, тоді вчимось з перекладачем
5. Вибрати мову програмування та освоїти її синтаксис якнайкраще. Це потягне вивчення купи суміжних речей: tools, frameworks, configuration, infrastructure, some data structures and algorithms, OOP/OOD, etc. Це вже реально дофіга
6. Якнайшвидше знайти роботу — після деяких успіхів з освоєнням мови треба готуватися до інтервью — знати відповіді на топ 100 найпопулярніших інтервью запитань у вибраній мові/домені, мати нормальне резюме (скоріш за все потрібно буде прибрехати спочатку, щоб хоч на інтервью кликали), можливо створити пет проект(ти), знайти безоплатне стажування чи варіанти з open source, ходити на усі інтервью куди покличуть, потім робити аналіз і закривати пробіли. Проходження інтервью — це окремий навик, який також вимагає підготовки та практики.
7. Вчитись на роботі, допоки стек/архітектура/домен/бізнес не буде від зубів відскакувати
8. Шукати шляхи до підвищення або через внутрішні процеси, або проходячи інтервью ззовні
9. Повторювати № 7 та № 8 паралельно освоюючи нові «круті» фреймворки, технології, мови і т.д.

Я свічнувся десь в під 30 років в 2011-2012рр. Потратив рік часу на вивчення Java без знання англійської. Вже 10+ років в професії, ніби політ нормальний. Можливо було-б простіше з гарною профільною освітою чи народитись в кращій локації, але і так можна.

наприклад Data Science,

Як на мене то це не найкращий напрямок для світчинга. Хіба що у вас за плечами відносно нещодавно завершена фіз-мат освіта.

А який найкращий напрямок для свтчинга?

Найкращий шлях — дивіться на які напрямки беруть ІТ-компанії на внутрішні курси. Потім читаєте вимоги для проходження на ці курси. І відповідно до цього обираєте напрямок.

Особисто не навчався на курсах при компаніях, але від знайомих чув, що на них дуже важко потрапити — набір відбувається не часто плюс величезна конкуренція на вступ. Тобто це гарний варіант, який треба враховувати, але розглядати його як основний — не найкраще рішення.

Так, як ІТ компанії набирають з курсів на роботу, то найкраща тактика — прийти туди підготовленим і показати себе з кращої сторони, а не просто надіятися, що навчать з 0...

Ну і обирати напрямок по принципу «На нього відкриті курси» — дуже спірна ідея. Якщо мені цікавий бекенд і я закохався в умовну Джаву (де конкуренція одна з найбільших на ринку), але одночасно мені щиро не подобається мобайл розробка, то мені треба відмовитися від Джави, якщо на курси Андроід деву набір буде раніше?
Це може стати додатковим фактором, але не більше. Складність вибору напрямку чомусь часто ігнорується.
По гарному, треба дізнатися про те, які взагалі існують напрямки розробки, проаналізувати ринок праці, конкуренцію, шанси вивчитися і знайти роботу після навчання. Не послухати умовного Немчинського, який розповідає що все у всіх однаково, а реально відкрити аналітику Доу/Джині, потім відкрити список вакансій і розбирати все до дрібниць.
Щоб людина не обрала мову за принципом «Вивчу Джаву, бо там найскладніші проекти і я буду крутим спеціалістом», ігноруючи, що у тій же Джаві знайти першу роботу зараз важко навіть за мірками загальної ситуації в айті

Складність вибору напрямку чомусь часто ігнорується

Це тому, на скільки я зрозумів, що типовому вайтішнику не доводиться обирати між різними запрошеннями на курси. Хоч би кудись взяли

курси Андроід деву набір буде раніше?

Будеш потім мати можливість на апворку фрілансити 😎. Хіба це погано

Це тому, на скільки я зрозумів, що типовому вайтішнику не доводиться обирати між різними запрошеннями на курси. Хоч би кудись взяли

Це якщо говорити про курси від компаній. Але порядок дій інакший.
Спочатку треба обрати напрямок і почати вчити (тобто піти на типові платні курси), а потім, можливо, потрапити на курси від компанії, що в цілому бажано, але опціонально. Якщо будувати своє навчання навколо курсів від компаній, то можна в принципі не вивчитися, через обмежену кількість пропозицій

Будеш потім мати можливість на апворку фрілансити 😎. Хіба це погано

Фріланс це окремий вид зайнятості, який підходить далеко не всім. Плюс я ж не кажу, що мобайл це погано. Це просто був приклад. Так само можна любити мобайл, і не вивозити Джаву/.нет/РНР тощо. Питання особистих вподобань.
Я розумію, коли радять погоджуватися на будь-яку першу роботу, щоб отримати початковий досвід, навіть якщо колектив токсичний, зарплата мінімальна і до офісу їхати дві години. Але коли радять ще перед вибором спеціальності забити на власні вподобання, це щось нове.
Народ хоче свічнутися в айті щоб змінити професії, які їм не подобаються (за грошима вже мало хто йде, бо до нормальних зарплат треба потерпіти не один рік). А заміняти одну ненависну справу іншою такою ж, ще і з значним просіданням по зп... Щось у цьому плані не так, але не розумію що саме)

Складність вибору напрямку чомусь часто ігнорується.
По гарному, треба дізнатися про те, які взагалі існують напрямки розробки, проаналізувати ринок праці,

Тобто робити все завгодно, щоб не програмувати. Як на мене, це не працює. В 95% випадків люди так і не зможуть навчитися програмувати, тому усе це буде марною тратою сил. І це головний ризик.

Навпаки, якщо ти навчишся програмувати хоч на паскалі, на який зараз вакансій трохи менше нуля, то вже можна буде таким займатися та підтягнути щось інше.

Тобто робити все завгодно, щоб не програмувати. Як на мене, це не працює. В 95% випадків люди так і не зможуть навчитися програмувати, тому усе це буде марною тратою сил

Аналіз ринку праці і розуміння того, чим взагалі займається програміст, яка зарплата, рівень конкуренції (який на різних мовах може принципово відрізнятися) і в чому різниця між основними напрямкаи розробки це зайва втрата часу? Цікава думка
Такий підхід — одна з причин (але не єдина) чому новачки і потрапляють у так звану пастку трьох місяців. Коли вибрав хайпову мову без розуміння того, що на ній роблять, а під час вивчення (особливо, коли починаються перші помітні складності), звертаєш увагу на те, що інші мови теж прикольні. І можливо цікавіші за твою. Починаються сумніви, зміна мови на середині шляху тощо
Плюс розуміти рівень конкуренції в принципі дуже важливо. Бо коли ти просто знаєш, що конкуренція є, то часто проігноруєш цю інформацію на автопілоті. Але коли бачиш її в цифрах і розумієш, що існує реальний (хоча і не 100%) ризик шукати першу роботу півроку і більше, то це може вплинути. Якщо у людини обмежений час і бюджет на навчання, то вона з більшою вірогідністю не обере Джаву чи Джаваскріпт, тому що там рівень конкуренції значно вищий, ніж у деяких інших мовах. Чи навпаки — буде вчити їх більш прискіпливо, тому що буде розуміти, наскільки це важливо

Коли вибрав хайпову мову без розуміння того, що на ній роблять, а під час вивчення (особливо, коли починаються перші помітні складності), звертаєш увагу на те, що інші мови теж прикольні. І можливо цікавіші за твою.

Якась романтизація мов програмування) Ну ок, раз вибрав хайпову мову, значить багато вакансій, багато роботи. Все класно. Попрацюй рік-два, почни заробляти кілобакси. Там далі буде видно чи справді так сильно хочеться працювати на іншій мові. На тому етапі вже не потрібне буде дороге навчання, бо все знайдете в інтернеті. А якщо ьуде потрібно, то на фоні великої ЗП, 100$ за онлайн курс не будуть проблемою

Аналіз ринку праці і розуміння того, чим взагалі займається програміст, яка зарплата, рівень конкуренції (який на різних мовах може принципово відрізнятися) і в чому різниця між основними напрямкаи розробки це зайва втрата часу? Цікава думка

Особливо я ніколи у житті таким не займався. Особисто я займаюся тим що мені цікаво.

У більшості випадків люди не опанують програмування. Рішення починати з аналізу ринку нагадує Ходжу Насреддина, який підвів ішака до корану та сказав, що півсправи зроблено, лишилося лише навчити його читати.

звертаєш увагу на те, що інші мови теж прикольні. І можливо цікавіші за твою. Починаються сумніви, зміна мови

Сумніви це наслідок того, що у тебе не виходить, тобі не цікаво, і ти просто намагаєшся втекти. Якщо щось тобі здається більш цікавим, то я не бачу жодної проблеми, багато знайомих, які стали розробниками, саме так і починали: вчили щось цікаве, а потім переключалися на щось ще більш цікаве.

Якщо у людини обмежений час і бюджет на навчання

Якщо у людини обмежений час, то щоб вона не вибрала — вона не навчиться. Бюджет на навчання взагалі не потрібен, все є безкоштовно. Мозок збудований таким чином, що нові зв’язки виникають там, де активізувалися дофамінові рецептори. Тому єдиний шлях оволодіти програмуванням це знайти щось, що тобі подобається. А от так, наказати собі, що я буду займатися цим, бо це більш практично... Ну таке.

Сумніви це наслідок того, що у тебе не виходить, тобі не цікаво, і ти просто намагаєшся втекти. Якщо щось тобі здається більш цікавим, то я не бачу жодної проблеми, багато знайомих, які стали розробниками, саме так і починали: вчили щось цікаве, а потім переключалися на щось ще більш цікаве.

По-перше я згоден з тим, що вчити треба тільки те, що цікаво. Без цікавості людина у будь-якому випадку не вивчиться, яку б мову і напрямок не обрала.
Але ти дуже спрощуєш ситуацію. Тут суть в нюансах.
Через пастку трьох місяців багато людей часто втрачають навіть не місяці, а роки на постійне вивчення основ в різних мовах чи напрямках програмування. Для програмування на рівні хоббі це ок, нічого поганого не бачу. Тим не менш, якщо вчити з метою отримати професію, то розмова інша — ресурс не нескінченний. Якщо постійно стрибати з мови на мову, то вже через півроку людина почне вигорати, просто тому що вона витратила багато часу, але в результаті знає тільки ази конкретних мов. Тобто знання максимально фрагментовані і не мають комерційної цінності. І врешті-решт людина забиває на навчання не через те, що їй не цікаве програмування, а через те, що через багато місяців навчання вона на тому ж місці, на якому була на самому початку.
Конкретно цей аспект не про ринок праці, а про те, що треба свідомо обрати мову, яку треба вчити. Не просто тому що улюблений блогер сказав вчити Пайтон, а тому що ти сам зрозумів різницю між мовами, що на них розробляють і їх основні плюси-мінуси. Без деталей, але щоб у тебе вже була сформована і більш-менш стійка думка.

Якщо у людини обмежений час, то щоб вона не вибрала — вона не навчиться.

Якщо у людини є необмежена кількість років на вивчення програмування, то я їй щиро заздрю. Але поки що таких не зустрічав. Як правило люди готові і мають можливість виділити на навчання не більше 1-2 років. Цього достатньо, але тільки за умови, що перший рік ти не будеш стрибати з мови на мову

Бюджет на навчання взагалі не потрібен, все є безкоштовно

10-20 років тому так, можна було вивчитися самостійно. Складно, але абсолютно реально. Зараз, хоч і існує набагато більше матеріалів, але через рівень конкуренції вивчитися самостійно фактично неможливо.
Аналіз ринку праці не означає обирати мову, на якій найменша конкуренція чи найбільші зп. Це про баланс між цікавістю до певних областей і часом, який студент готовий витратити на навчання і пошук першої роботи. Конкуренція для новачків серйозна у всіх мовах, але навіть якщо подивитися статистику Доу, то стає зрозуміло, що між Джавою з Джаваскріптом і РНР різниця величезна.
Казати, що треба вчити тільки те, що цікаво ігноруючи ринок праці неправильно. Так само, як і обирати мову виключно з найменшою конкуренцією, ігноруючі власні вподобання.
Це питання адекватного балансу.
Треба витратити час на вибір мови і розуміння ринку праці. Врахувати доступну кількість часу і ресурсів, і вже з цього обирати.

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

Я не бачив таку пастку. Я бачив людей, які симулювали навчання роками. Ну чесно, я пам’ятаю, коли мені було 15 років, в обчислювальному центрі якщо були вільні IBM PC, то ти програмував на Turbo C, коли були вільні Yamaha MSX, то на BASIC. Ну а так і на паскалі можна було, в принципі мова була абсолютно неважлива, бо ти розумів ідею.

Якщо постійно стрибати з мови на мову, то вже через півроку людина почне вигорати, просто тому що вона витратила багато часу, але в результаті знає тільки ази конкретних мов.

Людина вигорає, тому що вона не може навчитися. Тому вона й стрибає з мови на мову. Я взагалі зараз не бачу ніякої різниці. Як на мене тут велике непорозуміння, чому саме так.

Зараз, хоч і існує набагато більше матеріалів, але через рівень конкуренції вивчитися самостійно фактично неможливо.

Я не бачу конкуренції взагалі. Просто немає з ким конкурувати. Я бачу велику кількість людей, які вважають, що єдине щоб їм не вистачає, це практичного досвіду, тому треба якось влаштуватися на роботу. Але навичок немає ніяких. І великих перспектив я не бачу.

Тому якщо ти навчишся програмувати, то освоїти ширвжиткові мови або технології це місяць з головою. А навчитися можна хоч на паскалі. А якщо ти не навчився, то байдуже, чи ти рік в одну мову втикав, чи міняв.

Головна проблема, як на мене, полягає у тому, що зараз є все готове. Ще раз, коли до мене звертаються з порадою, та я відповідаю почати pet-проект, то... ні у кого немає жодної ідеї що написати. Бо ті, у кого свербіло написати, давно навчилися програмувати. Лишаються ті, чия реакція «а що мені написати...». Або, ще гірше, якийсь карго-культ на те що має попит. А друга проблема, що є готові фреймворки, де все реалізовано, що не дає простору вдосконалення.

Ще питали, як можна навчитися. Я казав — ось Linux, командний рядок, vim, С. Починай. Як раз безліч практики розв’язувати чому не працює. Ні, це дуже складно, мені треба полегше. Так ходили на курси, але так нічого й не вийшло.

та я відповідаю почати pet-проект, то... ні у кого немає жодної ідеї що написати.

ото є справді цікава історія

Ще питали, як можна навчитися. Я казав — ось Linux, командний рядок, vim, С. Починай. Як раз безліч практики розв’язувати чому не працює. Ні, це дуже складно, мені треба полегше.

що цікаво то є справді таки складно бо там починається зворотній бік ефекту німця данінга крюгера бо коли знаєш то стає вже важко так просто оцінити «на скільки багато реально то є»

я якось замислився і просто сів порахував чисто items які я використав щоб написати просту програмку не сі навіть на чисто пітоні тож там чисто лише список швидко перевалило за дюжину і це лише поверхова оцінка бо ж не враховує ще взаємозв’язки що з чого витікає

... як то простий приклад «файл» ага ок а що таке «файл»? а в інтернеті то «файл» чи не «файл»? а як зберегти ось цю сторінку з інтернету то ж буде файл? то у інтернеті тоже файл чи ні?

cognitive bias полягає тут у тому що хто тим постійно займається вже сприймає то є як радше очевидне і вже не бачить у ньому «складності»

так само як і окремо окремий той самий bias ще окремо коли хтось тим постійно займається що працює зі складностями як то з новими складностями і просто вже просто тренований мати з ними справу і вже не бачить уже у цім ще окремої складності

ходили на курси, але так нічого й не вийшло.

і то є реально цікавенна історія коли начати копати ))

Ой, що таке файл в Linux це тема окремої дискусії. Як на мене, перевага Сі більше у тому, що ти досить швидко можеш опанувати мову і далі копати вглибину, що дає цінний досвід.

Це можна робити й на Python, якщо забити на деякі речі. Але на практиці більшість йде вшир, а не вглиб: вивчу декоратори, магічні __new__, моднявий фреймворк, а досвіду копати вглибину немає.

Я реально розумію, що Python це складна мова. І в час мого навчання такої складності не було, ми самі створювали складність у своїх проектах та намагалися її розрулити.

що таке файл в Linux це тема окремої дискусії

вже була в рамках іншої, і навіть дехто вважав що юніксове «все є файл» це жартівна фраза

Людина вигорає, тому що вона не може навчитися.
Я не бачу конкуренції взагалі.
Тому якщо ти навчишся програмувати, то освоїти ширвжиткові мови або технології це місяць з головою. А навчитися можна хоч на паскалі.
Ще раз, коли до мене звертаються з порадою, та я відповідаю почати pet-проект, то... ні у кого немає жодної ідеї що написати.
Я казав — ось Linux, командний рядок, vim, С. Починай.

Видно, що ти розробник з досвідо ще з 90-х чи нульових і стартував у зовсім інших умовах, ніж сучасні новачки. Ти забув як це «не розуміти». Як годинами не розуміти, що таке змінна і навіщо в ній зберігати якісь дані. Що з цими даними робити. Навіщо купа можливих розширень файлів. Чому існує більше ніж 3-4 мови програмування. Що таке змінна. Чи треба зубрити термінологію, чи достатньо просто зрозуміти.
Всі вищезазначені питання і мільйон подібних здаються тобі не просто очевидними, а скоріше дурними. Але коли людина не вчить програмування зі школи, а приходить з іншої сфери (і часто ця сфера зовсім не пов’язана з комп’ютерами) їй треба зрозуміти все вищезаначене і мільйон інших, на перший погляд очевидних речей. На це йде час. Тому цей час краще інвестувати напряу в ту мову і технології, з якими ти будеш працювати.
Я розумію, що, з великою вірогідністю, ти часто проводиш інтерв’ю з новачками і, можливо, менториш когось чи є вчителем на курсах. Але це не те саме. Ти сам пройшов цей момент дуже давно і твій особистий (!) досвід навчання і пошуку першої роботи це трохи про інше.
Поради щодо початку навчання доречніше давати тим, хто пройшов цей етап не так давно — свіжі мідли чи джуни, які вже більш-менш опанувалися.
Сінйори можуть дати гарні технічні поради або поради щодо проходження співбесід (якщо самі їх проводять). І ці поради будуть дуже цінними.
Видно, що ти закоханий у програмування і, з урахуванням твого досвіду, це круто, коли людина знайшла справу, яка драйвить її стільки років. Але зараз ситуація змінилася. Зараз програмування розглядається просто як робота, в якій зп вище середньої. Сюди йдуть багато людей, які не захоплюються цим, а просто готові вчитися і працювати за гроші. Тобто це просто спосіб забезпечити себе. Не захоплення чи хоббі. Багато людей ставляться до таких новачків не дуже гарно, тому що більш круто (і, напевно, більш правильно), коли люди обирають професію за покликанням, а не виключно через гроші. Але це факт. І таким новачкам потрібно розуміння — що треба вчити, скільки це займе часу, скільки я буду отримувати на виході, наскільки затребуваним спеціалістом я буду тощо.
Твої поради базуються на тому, що новачок, який до тебе звертається, це людина, яку програмування саме драйвить. Такі є, їх багато, але все ж меншість. Більшість новачків зараз просто непогано відносяться до програмування. Їм це в цілому подобається, але далеко не на рівні захоплення. І таким людям твої поради не допоможуть. Вони просто через декілька місяців припинять навчання і підуть шукати щось інше. Хоча, при правильному підході в перші тижні, шансів стати розробниками у них було б набагато більше.
Особисто мені твоя позиція дуже цікава, нехай я з нею і не згоден. Ти дуже гарно пояснив свою думку.
Але ми все одно один одного не переконаємо. Тому що це не суперечка про об’єктивний стан речей, а просто різний погляд на одне і те саме.

Ти забув як це «не розуміти».

Скоріше за усе, такого не було. Я починав програмувати на калькуляторі МК-61. По журналам «Наука та Життя», та «Техніка — Молоді». Але калькулятора не було, тому приходилося трасувати програми на папері, також я писав свої. Як Ада Лавленс. Потім мені купили мікрокалькулятор МК-52. Я запустив свої програми, більшість запрацювало, деякі потребували відлагодження. Потім я почав вивчати BASIC по книжкам. А потім перевівся у школу, де були комп’ютери. І там вже почав відвідувати факультатив Сі. В жоден момент я не пам’ятаю, щоб був затик. Так, була передруківка книги Г. Шилдта, «С для професіоналів», там був код, який переміщав курсор через переривання 10h. Він виглядав магічно, особливо без знань асемблеру важко зрозуміти, що ж ax. Але... було досить, що він роботу виконував.

доречніше давати тим, хто пройшов цей етап не так давно — свіжі мідли чи джуни, які вже більш-менш опанувалися

Ну... замість того, щоб отримувати рівень сеніора у 20 років, давайте слухати тих, хто ним не став? Не знаю, як раз поточна система навчання виглядає вкрай неефективною, як на мене.

Багато людей ставляться до таких новачків не дуже гарно, тому що більш круто

Особливо мені байдуже, мені важливий рівень, культура.

І таким новачкам потрібно розуміння — що треба вчити, скільки це займе часу, скільки я буду отримувати на виході,

Проблема у тому, що неможливо оцінити час. І навіть гарантувати, що мета буде досягнута. Ну тобто, якщо я оберу футбол, буду грати в Барселоні, буду отримувати стільки-то. Якщо я оберу баскетбол, буду грати в NBA, то стільки то. Якщо я оберу бокс... Але... для більшості головна проблема — оволодіти. І перше питання, яке я раджу з’ясувати, чи у тебе вийде взагалі? Не факт, у більшості як раз не виходить.

Хоча, при правильному підході в перші тижні, шансів стати розробниками у них було б набагато більше.

Скоріше немає жодних, марна втрата часу. Якби це було так просто, то ніяких високих зарплат не було б — кожен міг би опанувати. Як кур’єрська доставка.

У мене був досвід роботи з джунами (перша робота для деяких). І в принципі, слабким місцем було відлагодження, хоча ми обирали кандидатів не за «знаннями» а скоріше за загальним рівнем. Тому приходилося сідати та копати вглибину разом. Треба дивитися як реалізовані внутрішні методи python — будемо дивитися. Треба спускатися до рівня Сі — будемо спускатися. Треба декомпілювати Solidity контракт — будемо це робити. Ну і в цілому, як я розумію, наступна робота в них вже була на рівні Middle+, причому досить швидко добрали усі знання вшир, типу Django і без мене: коли є база це суто техніка. Коли бази немає — це магія.

10-20 років тому так, можна було вивчитися самостійно. Складно, але абсолютно реально. Зараз, хоч і існує набагато більше матеріалів, але через рівень конкуренції вивчитися самостійно фактично неможливо.

Аха, набігають інші потенційні джуни, виривають з рук ноута і не дають вчитися)
Чомусь нагадало анекдот:

Лорд запитує слугу:
— Скажіть, Джеймсе, якому коню ви віддаєте перевагу?
— Бачите, сер, коли я їду на вороному, мені чомусь хочеться
стрибати на сірому, а коли на сірому, то думаю про вороного.
— А яким жінкам ви надаєте перевагу, Джеймсе? Блондинкам чи брюнеткам?
— Бачите, сер, коли я з брюнеткою...
— Досить, Джеймсе, я зрозумів.

Тільки тут ще складніше — людина взагалі ніколи не займалася верховою їздою, але турбується що вивчиться їздити на верблюді, а потім зрозуміє що насправді мріяв про коней.. А все — прорахувався — він вже досвідчений вершник верблюдів, отримує за це кілобакси і ніколи не перевчиться на конячок, хник-хник)
А скоріш за все цей потенційний учень тільки підійде до верблюда — той плюне в обличчя і вже ясно що ніхто нікуди не поїде)

Тому навчання треба починати з того що візуально дає швидку відповідь — чи зможеш програмувати хоч щось взагалі. У мене в дитинстві був програмований калькулятор МК-61 потім бейсик та фортран у школі — ідеально, робоче середовище настроювати не потрібно, накодив щось і бачиш результат.

Що брати зараз? Excel з VBA макросами — все крутиться у документі або HTML сторінку з JavaScript — теж відразу показує у браузері.
Що закодити? Ну наприклад — сімейний бюджет з формулами для Excel, а для браузера якусь іграшку — ’вгадай число’, ’морський бій’ e.t.c. — багато часу це не займе, а якщо справа не піде — значить це не ваше взагалі.

навчання самостійно з нуля

Якщо ви працюєте, чому є обмеження на «самостійно»? Можна ж виділити гроші на декілька консультацій з спеціалістами, які допоможуть зорієнтуватись у плані навчання

А як знайти таких спеціалістів, щоб не просто витратити гроші на вітер?

Дякую

Програмування це скіл, який вимагає (1) розуміти, як виконується програма; (2) навчитися відлагоджувати програми. І в принципі байдуже на якій мові, чи застарілі технології, ... Хоч паскаль, честно.

Матеріали часто заважають, бо на них витрачається час, який забирається у скіла.

Мені подобається аналогія, коли всі ці спеціалізації та матеріали це види спорту. А скіл це загальна фізична підготовка. Коли ти намагаєшся війти в айті, то ти як людина зі зайвою вагою, одишкою, ... Так, ти можеш вчити як робити штучне положення поза грою, гру на стандартах, ... Але коли ти вийдеш на поле та пробіжиш туди-назад, після чого бобік здох... то ці знання тобі не дуже допоможуть.

Знову ж таки, коли у тебе витривалість норм, форма норм, то хочеш футбол, хочеш баскетбол — буде набагато простіше вникати в тонкощі. А немає спортивної форми — то можна стати тренером (читай PM), але не гравцем.

Коли цікавився цим питанням, то дуже швидко натрапив на складності самостійного навчання, у яких фактично немає рішення:
1. Самостійно створити детальний план навчання неможливо. Подивившись вакансії ви зможете дізнатися основний список технологій, які треба знати, але ви не зрозумієте необхідну глибину цих знань. А з урахуванням мінімальної кількості джунівських вакансій, навіть дізнатися які технології вчити це вже завдання з зірочкою. Фактично треба буде дивитися мідлові вакансії і розбирати їх до деталей, щоб зрозуміти що саме з мідлових вимог треба знати трейні/джуну. Тільки на цей етап ви витратите декілька тижнів, або навіть місяць
2. Самостійно неможливо оцінити ваш рівень знань. Треба людина (викладач/ментор), який буде оцінювати ваші знання і підказувати, коли ту чи іншу технологію треба ще довчити, а коли вже можна переходити до наступної
3. Необхідність код-рев’ю. Аналогічно з пунктом «2» — ви не зможете зрозуміти якість коду, який написали. Ви не дізнаєтеся, чи не пропустили ви критично важливі речі. Чи правильний код-стайл. Чи передбачені у вашому коді базові сценарії використання тощо. ChatGPT може дати загальні поради, але він не настільки експертний, щоб давати такий фідбек
Від розробників з досвідом часто зустрічається порада «почни писати проект, а там зрозумієш», але це дуже значне спрощення і ігнорування того факту, що у фінального результату повинна бути хоча б мінімальна, але якість. Скориставшись такою порадою ви витратите велику кількість часу на створення проекту, але ваші знання будуть дуже фрагментовані і, скоріш за все, доволі не якісні.
Навчання навіть з курсами або ментором зараз займає ~1 рік, а часто навіть більше. І це навчання нехай і з не завжди якісним, але фідбеком і за готовим планом навчання. І навіть при такому навчанні багато людей шукають першу роботу місяцями і не завжди знаходять.
Щодо курсів, то тут ситуація доволі погана. Якісних курсів немає. Взагалі. Просто тому що вони орієнтовані на швидкість проходження курсу студентом, а не на навчання. Типова ситуація: людина з впевненими початковими знаннями програмування йшла на курси, приділяла навчанню по 3-4 години на день, але через швидкий темп програми застрягала на середині курсу, тому що вчитель все одно переходив до інших завдань, навіть коли не всі студенти виконали попереднє. Враховуйте, що це дуже впливає на емоційний стан — навчання саме по собі це навантаження. А коли ти відстаєш від програми, відчуваєш себе тупішим за решту (і не важливо, що «відмінники» групи або вже мають досвід програмування, або проходять курс по другому-третьому разу), коли не розумієш що і навіщо робиш, не отримуєш повноцінного фідбеку і порад від вчителя, а інші студенти часто замість підтримки один одного додають відчуття того, що ви дурний, при цьому всьому сплачуєш за таке навчання великі гроші — це доволі великий тиск, враховуючи, що це все відбувається місяцями.
Відгуки про курси також рідко дають розуміння, бо в 90% випадках це відгуки від співробітників компанії, зроблені з різних акаунтів.
Як висновок: вивчитися без курсів зараз нереально. З курсами — мега складно і дуже довго. Якщо ви поєднуєте навчання з повним робочим днем, то ситуація ще гірша.
Я не намагаюся налякати, це просто реалії поточного ринку праці в айті. Вам треба враховувати ці нюанси перед початком навчання, щоб корегувати свої плани і зрозуміти, чи є у вас в принципі достатня кількість сил і часу на навчання.
P.S. Англійська рівня В1 (а краще B2) — маст хев.

Дякую! Найкраща і вичерпна відповідь)

Хочу розпочати навіть не кар`єру в IT, а саме навчання

досягли бажаного — розпочали навчання? )

Загляніть сюди roadmap.sh/ai-data-scientist
Або знайдіть відповідну програму в універах і йдіть по ній
Або купіть якусь книжку по вашій темі
Або знайдіть курс на курсері/іншому ресурсі
Або найміть ментора
Або спитайте у чат жпт
Або читайте офіційну документацію того що вивчаєте (якшо така є), там зазвичай можна знайти базовий туторіал

+ Знайдіть якісь легкі задачки для практики (на тому ж leetcode)
Або подивіться на fixed price задачі на сайтах для фрілансерів (типу upwork)
Або спитайте у чат жпт
Або пошукайте теми лабораторних/курсових/дипломних робіт (в тому числі від зарубіжних універів)

+ виділіть якусь частину дня під навчання з лімітом часу на це. На початку менше, коли вкатитеся — то подовжуйте. 1-2-3-4 години з перервами, бажано коли мозок свіжий ще. Старайтесь навчатися в один і той же час дня

Я в свій час вчився по книжці для новачків + документація + практика

Я багато чого вивчив самостійно. І зі свого досвіду можу сказати, що найкращій шлях — знайти (почати) якийсь цікавий особисто вам проект і робити його.

По-перше, зацікавленість додасть мотивації.

По-друге, реальні проблеми на вирішення завжди глібші та ширші ніж більшість учбових. Якщо ви подолаєте їх — ви подолаєте і будь-які інші реальні в наступних професійних проєктах.

І найголовніше, це навчить вас самостійно вчитися, розбиратися — а це теж навичка, як треба розвивати.

Просто подивіться навколо — що ви можете зробити прям зараз для покрашення свого життя — автоматизувати, зробити якусь апку чи сайт чи бота. Знайти/обробити якісь дані щоб (тут щось самі підставте).

Далі шукаєте статті чи книжки, які допомужуть це зробити. потім покращуєте своє рішення.

На цьому шляху ви зустрінете людей, які «в темі» — і які будуть знати що ви можете і що виробите. А там до професійного працевлаштування недалеко.

Придумайте собі задачу і вирішуйте, і коли це робите, уявляйте що ваша ціль розробити курс по навчанню цьому, це вчить структурувати інформацію, робити власні записи. Всьому можна навчитися з нуля, інвестуйте 20 баксів у чатгпт, це даси більше бусту ніж якісь курси

Підписатись на коментарі