Юристи йдуть до успіху. Частина 1. Як я став .NET розробником без профільної освіти і як це краще робити зараз

Усім привіт . Ось тут, у надрах форуму, знаходиться мій топік трирічної давності , в якому я запитував, з якою боку краще заплигувати в IT людям без профільної освіти . Поради виявилися не марними - я таки застрибнув , і як мені здається, застрибнув вдало. : )

Минуло більше 3.5 років, і зараз я задоволений .NET разработчик в харківському Ciklum із зарплатою вище среднесеньорской . Думаю , прийшов час віддати певний борг ДОУ і поділитися своїм досвідом . Сподіваюся, що він виявиться кому - небудь корисним . Принаймні, якби я знав три роки тому те, що знаю зараз, це заощадило б купу часу і нервів. На початку я коротко опишу все, що сталося зі мною за цей час , нижче наведу добірку матеріалів для самонавчання і кілька порад загального характеру про старт кар'єри.

Як я потрапив в ІТ

Буквально через кілька днів після створення першої теми на DOU , ще в часи ICQ і свежескачанних експлойтів , я спілкувався зі своїми іншому - тоді ще мануальним тестувальником в Nix Solutions . Ми говорили про роботу, і він згадав , що у них по офісу пустили внутрішню розсилку про пошук Junior QA фахівців для компанії. Про те, що таке QA, я чув уперше і навіть не знав, чим відрізняється мануальное тестування від автоматизованого . Але в вакансії були потрібні лише знання будь-якої мови програмування на рівні лабораторних робіт , базовий англійський і бажання вчитися. А за цими параметрами я підходив на 100%. Тому через кілька годин вже скинув одному заповнену анкету з резюме . На наступний день мене запросили на співбесіду. Після закінчення ВНЗ я вже близько півроку жив удома , в славному місті Ровеньки Луганської області. Тому , упакувавши в сумку свій діловий костюм, відправився назад до Харкова проводити співбесіду . Я сильно хвилювався, але було дуже цікаво і дружелюбно . Приблизно через півгодини після інтерв'ю мені відповіли, що все Оk , і запросили на посаду Junior AutoQA . Сказати, що я був радий, - значить нічого не сказати ) . У Nix Solutions я пропрацював один рік , і це було дуже комфортне місце роботи. Велика частина співробітників нікс - це або студенти , або люди , нещодавно закінчили ВУЗ, тому атмосфера там панує відповідна. Постійні туси , корпоративи і свята - невід'ємна частина робочого процесу. Майже з самого початку я розглядав посаду Auto QA як тимчасову, перед тим як прокачатися і перейти в розробку, так що відразу став посилено вчити C #. Спочатку по книзі Михайла Фленово , потім по Троелсену , пізніше перейшов на Шилда і ще докупив величезний талмуд по ASP.NET. Приблизно через 10 місяців роботи я став з'ясовувати перспективи переходу в розробку, однак виявилося , що якщо я зміню напрямок , то моя , вже трохи підросла , зп знову впаде до початкового рівня. І тут через свою вроджену жадібності я зробив велику дурницю , вирішивши з переходом в розробку трохи почекати. Наступний шанс представився тільки через довгих півтора року, і вже в іншій компанії. Але, як би там не було, ще через два місяці мене запросили на співбесіду в EPAM , після якого я отримав x2 оффер на позицію Middle Auto QAі , недовго думаючи, його прийняв. На перший погляд EPAM здається дико забюрократизованою конторою , однак після невеликого періоду акліматизації розумієш, що все не так вже й страшно: технічний рівень фахівців тут значно вища, ніж в Nix Solutions , і створені відмінні умови для того, щоб добре прокачатися . Такою можливістю можна було не скористатися , і за 9 місяців роботи паралельно з накопиченням безпосередньо робочого досвіду, я додатково подужав :
- Head FirstO'Reilly ,
- Мова програмування С- Керниган Б., Рітчі Д.,
- Пройшов усі туторіали по ASP.NET MVC і entity Framewrokна asp.net ,
- ASP.NET для професіоналівСтівена Сандерсона . Потім пройшов співбесіду на розробника всередині EPAM і став чекати відповідної вакансії . Сезон виявився не дуже рибний , і очікування відповідного .NET проекту розтяглося ще приблизно на півроку. За цей час мені дали можливість попрацювати над цікавим внутрішнім проектом на asp.net , плюс я прочитав Ріхтера , підмовив основи теорії баз даних по Кроенке і навіть почав вчити С ++ . Зрештою , я вже було зажурився від очікування , але питання вирішилося , і я таки перейшов в інший проект в ролі розробника. З приводу відмінностей розробки від автоматизації тестування напишу далі , скажу тільки, що ще приблизно через рік розробки в EPAM мене покликали на співбесіду в Ciklum , і пройшовши кілька етапів інтерв'ю, я опинився на тому місці, на якому я зараз.

Вибір напрямку

Вибір напрямку , в якому ви будете розвиватися, - це дуже важливий момент , тому правильне рішення зараз зможе заощадити вам багато часу і грошей в подальшому. Тут я більш детально розгляну напрямки .NET Auto QA і .NET Development , тому що вони мені найбільш знайомі . Але перед цим окремо згадаю популярний напрям Manual QA , яке пред'являє найменші вимоги до починаючому фахівцеві , однак і бажаючих потрапити в мануальні тестировщики дуже багато. Тому низький поріг входження компенсується значною конкуренцією . На мій погляд , у сформованій ситуації краще витратити додаткові 3-6 місяців на вивчення автоматизації або розробки , спочатку забезпечивши собі більш швидкий кар'єрний ріст , більш висока стеля зарплат і більш цікаву роботу, ніж ті ж кілька місяців шукати роботу як Manual QA . Тепер, якщо говорити про вибір між Auto QA і Development, то з точки зору заробляння грошей і швидкості розвитку кар'єри, на сьогоднішній день Auto QA - це найбільш підходящий варіант . Розрив у зарплатах між автоматизацією .NET розробкою мінімальний, при тому, що технічні вимоги значно відрізняються. До того ж, на Auto QA зараз дуже великий попит . Головний же мінус автоматизації полягає в тому, що , насправді це досить сумна робота :) Перший час , коли на проекті вводиться автоматизоване тестування і розробляється новий фреймворк , це досить цікаво. Але , після того як фреймворк написаний, акцент зміщується у бік розширення тестового покриття, і іскра божественного натхнення назавжди залишає це місце. Робота перетворюється просто в монотонне написання однотипних тестів, а життя заволікає сірим туманом безвиході. Девелопмент , звичайно, теж не гонки на рефрежератор , але безумовно більш цікава і різноманітна штука.

Програми для самоосвіти

Тепер з приводу самоосвіти . Я склав дві програми для самонавчання за напрямками .NET AutoQA і .NET Development за матеріалами , які мені здалися найбільш ефективними. Нижче наведено два зразкових списку питань для підготовки до співбесіди . Програма для самонавчання AutoQA Перша частина : 1 .Герберт Шилдт ' Повне керівництво по C # 4.0 ' - найпростіша книга по C # з тих, з якими я стикався. Читати до 23 глави і пропустити главу про многопоточность . 2 .HTML і CSS - просто зрозуміти, що це таке і навіщо воно потрібне . Туторіали тут або тут . 3 .Статті по Selenium WebDriver в інтернеті . Розібратися з патернами PageObject і PageFactory . Після того як ви це пройшли, спробуйте написати невеликий додаток з використанням селеніума і цих патернів. Наприклад , додаток для автоматизації перевірки нових повідомлень в VK та перевірки онлайн статусу друзів. Логін/пароль для входу в VK й ім'я одного додаток повинен брати з текстового файлу . 4 .Кренке Д. "Теорія і практика побудови баз даних - розібратися з основами баз даних, Джоін , підзапитами і нормальними формами. Всю книгу від кірки до кірки читати не потрібно . 5 .Савін Р. - Тестування Дот Ком - читається дуже легко за 1-2 вечора по діагоналі і дає необхідний мінімум матчастини з тестування . Друга частина(після того як ви подужали попередні матеріали і знайшли роботу ) :
1 .Паттерни Head First O'Reilly
2 .CLR via C # . Програмування на платформі Microsoft .NET Framework 4.5 мовою C # Орієнтовний список базових питань для співбесіди : С # і ООП
- Три принципу ООП. Навести приклади кожного
- Посилальні типи і типи значень в C #
- Приведення типів в C #
- Boxing Unboxing
- Generics
- Відмінність інтерфейсу від абстрактного класу QA :
- Форма приймає значення від 1 до 40 , які тести потрібно провести в першу чергу?
- Опис бага
- Життєвий цикл бага
- Описати шлях до елементу за допомогою XPath
- Розповісти про патерни PageObject і PageFactory SQL :
- Вибірка даних з однієї таблиці за умовою
- Вибірка з двох таблиць з Джоін Алгоритмічні завдання:
- Знайти самий великий чи маленький елемент масиву
- Будь алгоритм сортування масиву
- Підрахунок кількості входження підрядка в тексті Програма для самонавчання .NET Developer : Перша частина : Все теж саме , що і AutoQA , тільки замість селеніума туторіали по ASP.NET MVC і Entity Framework на сайті asp.net - дуже класні, проходити їх - одне задоволення. 1 . Дві частини підручника з javascript Іллі Кантора ( learn.javascript.ru )
2 . Патерни Head First O'Reilly Друга частина(після того як ви подужали попередні матеріали і знайшли роботу ) :
1 . CLR via C # .Програмування на платформі Microsoft .NET Framework 4.5 мовою C #
2 .NET патерни наdofactory.com
3 . EDXIntroduction to Computer Science - основні поняття про складність алгоритмів і структурах даних. Домашні завдання можна не робити . Орієнтовний список базових питань для співбесіди : С # і ООП :
- Три принципу ООП. Навести приклади кожного
- Посилальні типи і типи значень в C #
- Приведення типів в C #
- Boxing Unboxing
- Generics
- Відмінність інтерфейсу від абстрактного класу ?
- Чим List відрізняється від Array
- Що таке збірка? З яких частин вона складається ?
- Лямбда -вирази
- Принципи роботи Garbage collector ASP.NET MVC і патерни :
- Паттерни MVC
- Паттерни Стратегія
- Паттерни Спостерігач
- патерн Фабрика
- Паттерни Repository і Unit of work SQL :
- Вибірка даних з однієї таблиці за умовою
- Вибірка з двох таблиць з Джоін
- Вибірка за допомогою GROUP BY
- Нормальні форми Алгоритмічні завдання:
- Знайти самий великий чи маленький елемент масиву
- Будь алгоритм сортування масиву
- Підрахунок кількості входження підрядка в тексті Різне :
- HTTP протокол , відмінності POST запиту від GET запиту
- Що таке DOM -модель
- Відмінності JavaScript від C #
- XML і JSON формати Підхід до самонавчання досить простий . Ви берете перший зазначений у програмі джерело і читаєте його , повторюючи всі приклади коду в IDE. Якщо щось незрозуміло, гуглити . Не зупиняйтеся занадто довго на моментах , в яких не можете розібратися. Запитуйте на форумах або просто пропускайте і проходите матеріал далі . Осиливши одне джерело , переходьте до наступного. На мій погляд, навчання програмуванню - це швидше питання часу і бажання, ніж наявності таланту . На самому початку навчання буде йти дуже повільно і зі скрипом. Особливо якщо його доведеться поєднувати з основною роботою . Але якщо просто систематично приділяти час освіти, це принесе свої плоди. Чим більше часу ви зможете приділяти навчанню , тим швидше будете рухатися. Після проходження першої частини програми вже варто пробувати шукати роботу. Навіть якщо не вийде відразу, то як мінімум на підготовчі курси всередині якої- небудь компанії з цими знаннями вас візьмуть 100%. Хоча я все ж вважаю , що перш ніж йти на курси , потрібно зробити все можливе, щоб роботу знайти . 3-6 місяців навчання - чималий термін , а реальний робочий досвід буде набагато корисніше. Зараз багато курси, ніяк не пов'язані з конкретними ІТ- компаніями , обіцяють дати базовий рівень підготовки. Про їх корисності мені судити складно, так як сам я подібні курси не відвідував і ставлюся до них трохи скептично . Можливо, вони зроблять процес навчання легше і веселіше , але в будь-якому випадку все, що вони пропонують, можна осилити самостійно. Тому я думаю , що якщо навіть йти куди -небудь на підготовчі курси , то тільки на pre - production в якусь компанію . Тому що після закінчення пре- продакшена вам , швидше за все , запропонують роботу, а зовнішні курси просто дадуть свідчення про їх успішне закінчення , яке саме по собі не особливо корисна штука . Друга частина програми- це те, що варто вивчити в першу чергу, після того як ви опинилися на робочому місці. Окремо варто звернути увагу на англійську мову, знання якого необхідні хоча б на рівні читання документації і простий листування. В принципі в школі його в тій чи іншій мірі вивчав кожен, але , про всяк випадок , освіжити знання можна на lingualeo.com . Після того як знайдете першу роботу , всю технічну літературу краще намагатися читати англійською . Словниковий запас розширюється читанням текстів і книг. Навик розуміння англійської мови на слух - переглядом on - line курсів , лекцій та виступів. За серіалами вчити складніше, тому що там мова більш художній. Продовження .

Опубліковано: 09/12/14 @ 07:40
Розділ Різне

Рекомендуємо:

Юристи йдуть до успіху. Частина 2. Поради з особистого досвіду про старт IT- кар'єри
Бесіда з Олександром Баєва , доцентом ХНУ ім. Каразіна
#ITeaTalks : Андрій Клен ( Petcube ) про життя в Сан- Франциско, роботу на « умовного» дядька і про те, що повинно залишитися у Вегасі
Чи не тікай ??, включайся : країні потрібні мізки
18 грудня, Київ - Груднева зустріч Ukrainian Azure Community