Початок мого IT-шляху. Як вивчити JavaScript і не вистрілити собі в голову?!
Якби я почав цей блог 4-5 років тому, я б зміг описати вам увесь біль у найдрібніших подробицях. Зараз же, я можу тільки поверхово розповісти про всі муки, з якими мені, і я думаю, багатьом з вас доведеться зіткнутися, або вже зіткнулися. У будь-якому випадку це буде, так би мовити, з огляду назад у туманність того складного для звивин, часу.
Якщо ти з тих людей, кому легко даються всі логічні переплетіння, спливання, замикання, колбеки і звичайно ж рекурсія, то можеш спокійно переходити до наступних постів, щоб ненароком не розляпати тут токсичні виділення 😀
Я пам’ятаю той самий кухонний стіл, не дуже м’який куточок, ніч, три ручки і новий записник, на першій сторінці якого, красувався охайно виведений напис JavaScript червоною ручкою. У той момент я ще був сповнений ентузіазму і до кінця не усвідомлював з чим мені доведеться зіткнутися і наскільки моїй голові, яка звикла рахувати підходи та повторення, доведеться не солодко 🤕
У мене є одна звичка, можливо, вона мені допомогла, а можливо, тільки затримувала мій розвиток. Я завжди, все починаю спочатку. Кожен новий навчальний курс, який я знаходив, я починав спочатку навіть якщо я вже чітко розумів, що таке змінні, масиви та функції, я ніколи не перемотував, щоб упевнитись, що я засвоїв інформацію і нічого не пропустив важливого.
З чого я починав
В інтернетах цих ваших рекомендують learn.javascript.ru для старту, мовляв структуровано все і дохідливо описано. Я знаю багато людей, кому допоміг цей ресурс дуже. Але я виявився не одним із них. Безумовно, я почав саме тут, але паралельно намагався знаходити відео ресурси. Можливо тому, що я більше візуал і мені простіше сприймати інформацію, коли бачу чужий редактор коду і всякі схемки. Але як би там не було я почав з основ JavaScript, я намагався все вбирати як губка і робити записи в свій новий JS-записник. Змінні, типи даних, базові оператори. На перетворенні типів я почав плавитись, хто в курсі той зрозуміє. Далі логічні оператори почали наштовхувати на думки про суїцид. Ти сидиш читаєш і просто відчуваєш як твій сірий друг збирає всі свої манатки, вимикає світло, зачиняє двері, махає маленькою звивистою ручкою, розвертається до тебе спиною і йдучи, каже: «Іди-но ти в дупу Антон…» У такі моменти мені хотілося обійняти коліна, їсти морозиво і плакати тихенько на підлозі в коридорі. У багатьох цей стан приходить раніше, у деяких пізніше. Хтось думав про «суїцид» на умовних розгалуженнях або циклах, а хтось на функціях чи об’єктах. Але я знаю точно, практично кожен стикається з думкою: «ТА НУ НАХЕР {{ ВАШЕ_ІМ’Я }}!”.
До речі, ще я постійно боровся з тим, що микався між різними мовами або ліз кудись глибоко, не усвідомлюючи, або не хотів усвідомлювати, що рано ще, що краще відкласти це і вбивати в свою вперту голову основи. Куди я тільки не ліз, погодьтеся людина, яка не вміє до ладу малювати, не береться розмальовувати Сикстинську капелу. Або людині, яка не навчилася тримати гітару не слід створювати музичний гурт, точно не зараз. Хоча, я думаю, є і такі… 🤦 Що стосується мене, то я до пуття не вивчивши той же CSS вже читав про препроцесори SASS/LESS/STYLUS, або не знаючи JS переходиш на JQuery або що гірше, якусь бібліотеку типу React. js або фреймворк Angular. Десь у глибині душі і свідомості я розумів, що це лише спроби уникнути складностей, спроби скинути з себе відповідальність і знайти простіший шлях. Зараз безумовно, розумієш, що всі шляхи клієнтської веб-розробки ведуть до чистого, або, як зараз популярно казати, ванільного (Vanilla) JavaScript. Хто б що не казав, чистий JavaScript – фундамент. І якщо ти, мій дорогий читачу на старті свого шляху, то вчи ванілу і не парься! 😉
Мотивація від Tony
Я хочу спробувати вберегти тебе, друже, від помилки. Я гарантую, що твій мозок закипить швидше за чайник на плиті. Ти будеш тужитися сильніше, ніж будь-коли в «кімнаті засідань». Більше того ти десятки разів запитуватимеш себе Може ну його нафіг? Може повернутись у свою зону комфорту на завод, у тренажерний зал чи в задушливий офіс? Чи, може, я буду хороший фотограф? Щодо останнього можливо і так, але на перші два питання тверде НІ! І я поясню чому:
- По-перше, в IT завжди є робота і НЕ ТРЕБА вилизувати чиюсь волохату сраку і підставляти свою, тільки тому що тобі потрібна робота, у тебе п’ять дітей та 8 кредитів. Як говорилося в якомусь ролику: «Шли всіх нахер, ти прекрасна!». Якщо ти нормальна людина з нормальними Hard/Soft-skills, ти завжди будеш з роботою, повір!
- По-друге, ставлення до тебе як до людини, не беремо всякі галери, у яких людина — витратний матеріал, видавили всю енергію і викинули. У більшості компаній до тебе ставляться з повагою навіть якщо ти Junior Developer. Ти користуєшся тими ж плюшками, що і «старші», у тебе такий самий договір як і у Senior Developer, різниця, як правило, тільки у вартості твого часу.
- По-третє, умови роботи. ІТ-компанії це зовсім інший світ. Це західний рух, всі компанії намагаються конкурувати не лише продуктом, а й умовами праці, тому що за допомогою цього можна захантити крутішого спеціаліста у свій штат. Не рідко компанії оплачують абонементи в тренажерку, масажі, мед-страхування, PlayStation, а ще в деяких навіть свої кухарі, які готують вам сніданки і обіди прямо в офісі, і це далеко не все! Які ще компанії такими можуть похвалитися, як не IT? Більше того, навіть якщо ви працюєте в офісі і у вас є відділ розробки, як правило, у них кращі умови і це не тільки мова про зарплати.
- По-четверте, оплата праці. Наприклад, у США та в ряді розвинених європейських країн немає такого перепаду в заробітних платах різних сфер, але В Україні, у мене на батьківщині, ця різниця суттєва! Наприклад, зарплата в декілька тисяч доларів нікого в IT не дивує. Багато хто навіть скаже: «Щось замало!» і вони будуть мати рацію, тому що є багато людей яких наймають на 5, 8 і навіть 12 тис $ на місяць. Я твердо впевнений, що можна заробляти такі гроші і в інших сферах, головне любити те, що ти робиш!
Продовжувати список можна до нескінченності, наприклад remoute work (віддалена робота), яка дозволяє працювати з будь-якого куточку нашої дивовижної голубої кульки – планети, головне щоб вам було зручно виходити на зв’язок у той час, коли працює ваш замовник. Relocate (Переїзд в інші країни), багато хто хотів би виїхати за кордон, у пошуках себе або кращого життя для своїх дітей, отримати ВНЖ, а потім і громадянство. А можливо для отримання нового, безцінного досвіду роботи закордоном у серйозній компанії, або для вдосконалення знання іноземних мов тощо.
Але є одне “але”!
Не йди в IT тільки через гроші, повір, 80% з вас не дійдуть. А решта 20% змінять діяльність через якийсь час. Ти маєш щиро полюбити цю справу. Ти маєш полюбити працювати з комп’ютером, редактором коду, з кодом зрештою. Ніякі гроші не утримають тебе на ненавистній роботі, а весь цей термін тебе супроводжуватимуть стреси, проблеми зі здоров’ям через сидячу роботу та інші наслідки. Я переконаний, що у будь-якій сфері можна заробляти не менше, а то й більше. Звичайно якщо ти не працюєш в АТБ два через два і при цьому ніхера не робиш, крім як шпану ганяєш по залі, а у вихідні п’єш дешеве пійло перед телевізором і пишаєшся своїм кітелем з гучним словом – «охорона». При такому розкладі хрін що зміниться у твоєму житті, будь певний.
Якщо тобі подобається фотографія – фотографуй, готувати їжу – йди на кухаря. Якщо тобі подобається поратися зі своєю «ластівкою», з руками по лікоть у мазуті, то, чорт забирай, займися цим. Позич гроші, візьми кредит, збери врешті-решт і займися своєю улюбленою справою. Формула проста: ДОСТАТОК = ЛЮБОВ + ЯКІСТЬ. Наведу приклад, моя дружина працює контент-менеджером, і вона не любить свою роботу! І я щиро не розумію, чому вона там сидить, адже у неї є бажання і їй подобається знімати відео та робити фото, а це не багато не мало 50% нашої формули, це ЛЮБОВ/БАЖАННЯ/ІНТЕРЕС. А ЯКІСТЬ на 90% складається з досвіду та набитих рук. А досвіду не буде, якщо ти витрачаєш 90% свого часу на галіму роботу… З цього круговороту є вихід – система пріоритетів та забитий болт. Роби те, що любиш і буде тобі щастя!
Я сподіваюся, у мене хоч на крупинку вдалося донести тобі свою ідею, а тепер повернемося до JavaScript. Ось тобі список ресурсів, які мені дуже допомогли на етапі становлення розробником:
- Владилен Мінін – людина, якій від природи дано навчати людей. Один із найдохідливіших оповідачів рунету. Я досі не рідко заходжу дивитися його відео, але вже по Angular, Node.js, NestJs і т.д.
- Дмитро Лаврик – не дуже багато відео по JS, але ті, що є розжовані просто чудово. Якби Діма зняв цілий цикл JavaScript, я думаю на цьому ресурсі можна було б і зупиниться, але на жаль.
- WebDev з нуля – канал Олексія Лущенка, мого земляка. Живі ролики, де він так само як і всі припускається помилок, але виправляє і пояснює їх. Щоправда зустрічаються багато токсичних дегенератів у коментарях, але канал досить добрий. Більше того, коли я вже працював у третій компанії, я купував курс у нього з JS з перевірками ДЗ і він дійсно працює. Щоправда, мені здається, що з тією кількістю студентів, які проходять ці курси зараз, якість може і погіршиться.
- learn.javascript.ru – куди ж без нього? Можливо для вас він буде кориснішим!
- Codewars – ресурс типу гри. Вибираєте мову програмування, проходите тест, реєструєтеся та виконуєте завдання, за які отримуєте рівні. На дууууже початковому рівні знань не рекомендую, потерпіть.
- CourseHunter – посилання на всі безкоштовні (російськомовні) курси JS. CourseHunter — піратський ресурс, який купує курси з різних джерел і викладає у себе або безкоштовно, або за невелику платну підписку ($5.5/міс). Якщо ви починаєте, як і я без грошей, то не забудьте через рік — два купити платний курс автора, який вам допоміг, на знак подяки та очищення карми 😉
- Udemy – теж чудовий ресурс, у дні знижок можна відхопити круті курси за $9 – $16. Дуже рекомендую купувати курси (якщо є така можливість), оскільки: по-перше, платний курс завжди бажаніший до проходження; по-друге, автори — добрі люди, вони дають тобі можливість змінити життя за невелику плату, яка мотивує їх робити нові курси. Більше того, теоретично вони плодять собі конкурентів, хоча на практиці це не так і я поясню свою думку в одному з наступних постів.
- JSExpert – на ютюбі не так вже й багато інформації, але ви завжди можете погуглити, у Жені – саме так звати автора, є дуже круті три курси по JavaScript – Beginner, Middle & Advanced.
- StackOverflow – 95% помилок приведуть вас на цей ресурс. За мою кар’єру, дуже мало проблем, я не зміг вирішити за допомогою StackOverflow. Будь-яка проблема вирішується досить швидко, правда я рекомендую всі запити писати англійською!
- І звичайно ж Google у допомогу. Варто відзначити, що російськомовне ком’юніті хоч і велике, але формулюйте запити пошуку англійською, так у вас буде більше шансів знайти релевантну відповідь. Та й взагалі вчіть англійську, вона вам ой як допоможе у майбутньому!
Мій список вийшов не дуже великим, насправді ресурсів у рази більше, але це те, що я зміг згадати через стільки років. У будь-якому разі, якщо щось згадається ще, я обов’язково допишу. А тобі, мій дорогий читачу, я бажаю сил і терпіння на втілення задуманого! А тепер пропоную перейти до моїх пошуків першої роботи та хитрощів, які мені довелося зробити.
Best of luck!