JavaRush /Java блог /Random UA /З домогосподарки до програмістів

З домогосподарки до програмістів

Стаття з групи Random UA
Добрий день друзі! Я дуже радий, що перша моя публікація зацікавила вас. Це друга частина моєї історії. Першу можна знайти за посиланням .
З домогосподарки у програмісти - 1
Оскільки я працюю Web-програмістом, всі рекомендації будуть пов'язані з цим напрямком. Сподіваюся, ця стаття дасть вам їжу для розуму та заряд мотивації!

Скільки я навчався

Зрозумівши, що час — це обмежений ресурс, я не став шукати нову роботу у сфері продажу, а вирішив стати найкрутішою хатньою робітницею, яка цілий день вчить програмування та готує дружині їжу. Я натрапив на книжку "Пітон для дітей" і вирішив, що якщо діти можуть, то чим я гірший? Зрозуміло, я не додумався зайти на hh.ru і подивитися, а чи потрібний комусь програміст Python у моєму місті. Як з'ясувалося, ні. Але це я дізнався після трьох місяців зубріння. А пізніше я дізнався, що цю мову категорично не можна вивчати першою, т.к. він має динамічну типізацію і всередині приховано багато основ, які потрібно знати обов'язково! Якщо раптом хтось вирішить вивчати Python, рекомендую youtube канал ItPropaganda . Тут все викладено дуже вдумливо та докладно. Лекторові треба було бути викладачем! На hh.ru я помітив, що потрібно багато верстальників, і я перейшов на Web. Не має значення, з якого боку застрибнути, але я хочу на цей поїзд, подумав я! Це зайняло наступні три місяці. Саме тоді я зрозумів, що практика — це найкорисніше навчання. Нова інформація вилітала швидше за кулю. Тому після кожного нового ролика чи книги я намагався все це повторити і щось записати. Найкращими вчителями у верстці для мене були: Від неї було найбільше користі. Практика нереальна. Точно не пам'ятаю, але безкоштовний інтерактивний курс проходив близько двох тижнів. А потім купив платний, але тільки заради Flex верстки.
  • Foxford | WEB-програмування для школярів 8-11.
Тут як із «Пітоном»: якщо діти розуміють, то і я зрозумію. Знайшов на просторах Інтернету.

Як улаштувався на роботу.

Минуло півроку домашнього навчання, і я вирішив, що настав час. Відправив резюме до кількох компаній на посаду молодшого інженера-програміста і чекав на відповідь. За кілька днів мені відповіли, і я дуже хвилювався. Я здав тест (він був швидше психологічний) і заповнив стандартний бланк, в якому вказав досвід у різних IT-напрямках (рівень технічної англійської, знання мов, уміння працювати з git, linux тощо), у графі бажана заробітна плата я вказав 5 000 карбованців. Мені було все одно, скільки я отримуватиму, я готовий був платити їм сам, аби мене взяли на роботу. Виявляється, дана компанія практикувала набір студентів, вирощувала їх під себе і залишала на постійній основі. На співбесіді мені запам'яталася фраза "до 35 років ти маєш брати, вбирати, а потім віддавати". Мене взяли з випробувальним терміном на один місяць із зарплатою в 15000 рублів. Цей місяць був найкращим у моєму житті, я досяг бажаної мети і дізнався, що стану татом. Першого дня на роботі я дізнався, що мені потрібно самому збирати свій комп'ютер, операційна система буде linux (ви знаєте де кнопка super в linux?), а моїм першим проектом буде створення мікросервісу на мові java , який працюватиме за протоколом Radius . Сказати, що я був у шоці від усього, це нічого не сказати. Я закидався гліцином швидше, ніж Усейн Болт біг стометрівку (жартую, звичайно).

Через які складнощі пройшов

  • Аглійська

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

    Взяв за правило слухати англійську, поки йду вулицею, а саме «Англійська по плейлистам» :
    Це тонни годин практики, і вам більше не потрібно шукати якісь інші джерела для навчання. Я за рік переглянув близько 400 уроків.

  • Фреймворки

    Якщо у вас немає великого досвіду в програмуванні, фреймворки ( hibernate, spring ) - це камінь, про який можна розбитися і зневіритися. Це нові рівні абстракції, патерни проектування, біни, singleton, фабрики настільки незрозумілі, що навіть не розумієш, з чого почати. Я пам'ятаю, як сильно сміявся, що фреймворк "Spring" настільки складний, що для нього придумали свій фреймворк "Spring Boot"

    Я постараюся задати вам вектор:

    1. Якщо ви не знаєте Java, не дивіться наступні пункти, основи це все! Я перевіряв^ марно лізти в нетрі, навчайтеся на JavaRush.
    2. Ази Java веб-розробки. Для цього підійде курс дуже талановитого хлопця, якому зараз 22-23 роки. Він настільки класний, що я знайшов його в контакті, і навіть хотів з'їздити в Казань і пройти в нього курси. посилання , так само посилання на github всіх проектів
    3. Що потрібно для роботи з БД, чудово розповідає цей товариш
    4. Ну і зі свіжого – канал let's code . Якість, подача, актуальністьвсе на висоті! Розповідає про Spring Boot .
  • Не рекомендую javabegin . Коли треба було швидко вивчити Spring, здуру купив його курс. Пояснення погане. Мені здалося, що він не знає, про що говорить, просто знайшов англійську tutorial і запабов відеокурс.

  • Linux (операційна система); Git (система обліку версій).

    Для мене робота в командному рядку здавалася чимось надприродним. Виявилося, що у світі програмування веб-інтерфейси не в пошані: true-програмісти повинні все робити через термінал. Linux - це безкоштовна операційна система з відкритим вихідним кодом, і переважна кількість програмістів працює на ній (MacBook має ті ж команди). Git це система контролю версій вашої програми, стандарт всіх програмістів.

    Тут я можу порекомендувати для вивчення git ось такий інтерактивний сайт .
    Розширення на Google ChromeOctotree – це щось типу total commander для GitHub .
    Ну і поставити собі Linux : він правда класний, я викинув Windows на смітник!

Резюме:

Програмування - це величезний світ, який дарує цікаве життя. Так, спочатку важко, та складно, але це тільки спочатку. Я вперто йшов уперед, і ось уже рік працюю full stack програмістом, подвоївши свою зарплату, вивчивши такі мови, як Java, Python, Kotlin, Typescript, JavaScript; такі фреймворки як Spring та React. Переписав старе самописне сховище великого проекту на Redux, створив мікросервіс Spring Boot. Наразі веду проект на Spring4, який ще й на XML. А якщо я зміг, зможете і ви. Головне — бачити величезну мету попереду та йти до неї, не боячись невідомості, а старання обов'язково окупляться. Ну і якщо комусь цікаво, пишіть, продовжуватиму свою історію. Теми можуть бути такими:
  1. Паттерни проектування (реальні приклади, коли може стати у нагоді той чи інший патерн).
  2. Види аутентифікації, авторизації.
  3. OAUTH2.0 на Spring Boot.
  4. Відгук про topjava (Spring5)
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ