Пам'ятка для початківців розробників

via Shutterstock .

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

Ваша мотивація

Отже, припустимо , ви хочете стати програмістом. Для початку вам необхідно відповісти собі на питання: « а навіщо? ». Якщо відповідь полягає в грошах і якому то престиж - кидайте цю затію . Чому так ? Все дуже просто! Подивіться навколо - в інтернетах лежить дуже багато безкоштовних бібліотек, готових, робітників і написаних для вас . Безкоштовні операційні системи, компілятори мов, інтерпретатори , фреймворки , готові класи , модулі і плагіни . Це колосально величезні шматки коду , мільйони безкоштовних людино-годин, це все пишуть дуже талановиті програмісти і віддають свої розробки всім навколо, просто так. Просто тому , що їм цікаво програмувати , а не тому, що вони заробляють на цьому. Така суть програмування. Так, у багатьох з нас зарплати трохи вище середньої по лікарні , але крім зарплат, у нас в очах є дикий інтерес і бажання кодіть , творити і придумувати нове. Якщо ж на першому місці для вас інтерес, тоді беріть в руки Google , будь-який, перший-ліпший мова програмування, першу-ліпшу книгу по цій мові , читайте її та імплементує приклади і задачі з цієї книги . На перші кілька місяців вам робота забезпечена. Все одно , з чого починати , - в будь-якому джерелі ви знайдете базові знання, які знадобляться потім.

Як почати і що вивчати

Знайдіть перше робоче місце. В офісі можна навчитися багато чому . На місці початківця розробника я б погоджувався працювати за їжу , аби навчили. Власне, я так і починав - на першому робочому місці отримував 200 грн за один завершений проект. Досвід, який я там отримав, безцінний. Займайтеся програмуванням завжди, коли є час на це. Чи не вганяти себе в рамки одного проекту , за який вам платять в офісі. Вивчайте нові технології, намагайтеся зробити що-небудь в opensource проектах , читайте новини своїй галузі , вивчайте фреймворки , аналогічні тим, які використовуєте на роботі. Вивчення реалізацій відомих фреймворків покаже вам існуючі best practice в архітектурі і написанні програм . Коли я вперше заліз у папку system фреймворку codeigniter , вперше познайомився з патерном Singleton і подивився , як і навіщо його використовувати (+1 до знань ), то зрозумів, у чому суть породжують шаблонів і принципу MVC (ще +2 до знань ) . Зараз, коли мене починає нудити від PHP, я лізу в исходники фреймворку beego , щоб трохи глибше зрозуміти GO . Вивчайте патерни. Патерни , в першому наближенні , - це деякі угоди між розробниками про те, як конструювати програми . Патерни можуть вам допомогти не просто елегантно вирішити ту чи іншу задачу, а й ще розкажуть вам про те, які конструкції є, в який бік потрібно думати , коли до вас приходить та чи інша задача. Ви відразу побачите кілька десятків способів розбиття сутностей, познайомитеся з поняттями , які допоможуть вирішувати більш глибокі завдання. Побачите відповіді на питання, які вас турбують . Вивчайте кодтільки що завантаженої бібліотеки, а не тільки її документацію. Код краще зможе пояснити, як та чи інша функція працює , чому приймає ті чи інші типи даних. Важливо максимально глибоко розуміти, з чим ви працюєте, до самих незначних нюансів. Не бійтеся , бібліотеки і фреймворки писали такі ж люди , і їх логіку зрозуміти можна , якщо постаратися. Читайте статті рекурсивним методом. Відкривайте першу статтю на цікаву для вас тему, читайте. Як тільки натикаєтеся на невідоме поняття або слово , тут же гуглити другу статтю , яка пояснює те невідоме слово або поняття , а першу - складайте в стек . Коли в другій статті ви знайдете щось невідоме або незрозуміле, складайте її в той же стек і шукайте пояснення в третій . Через місяць-другий , коли ви прочитаєте сотню статей, ви повернетеся по стеку в початкову і дочитаєте її з повним розумінням того, що там написано.

Робота над помилками

Крім усього , багато Джунь допускають загальні помилки , які заважають їм швидко і ефективно розвиватися. Ось кілька з них : «Чому мене змушують працювати з базою даних і розбиратися в різниці між InnoDB і MyISAM ? Я ще джун , я не повинен цього знати . Нехай мідл це вирішує ! » - це найпоширеніша помилка практично всіх джуніор . Ви ніколи не станете досвідченіші або розумніші , якщо не будете робити того, чого досі не знали і не робили. Тільки вирішуючи завдання складніше і вище вашого рівня, ви розвиваєтеся . - Що повинен знати джун ?
- Все .
- Але все знає тільки сеньйор ! І ніхто не розуміє, що майже вся різниця між сеньйором і Джун - це досвід . *** «Зараз я буду використовувати анонімні функції, замикання, ООП, патерн ' абстрактна фабрика ' і ось цей великий синій молот для того, щоб відкрити модальне вікно в браузері » - взагалі тема окремих Лулзім . Чомусь, дізнавшись про нові конструкції, джуніор намагається їх використовувати скрізь , де тільки можна, і де не можна . Підхід частково правильний , але не в продакшені . Не поспішайте юзати всі свої знання фізики для забивання цвяхів, краще ще глибше вивчіть область застосування того чи іншого знання. *** «Я вже все знаю і можу зробити все! » - так, ви могли зробити все, що завгодно і після прочитання першої книги , ось тільки працювати воно буде, м'яко кажучи , не дуже. Не квапте час . У китайському мистецтві володіння бойовим клинком є три стадії пізнання:
- Сю - означає, що треба заучувати все точно так , як показує вчитель . Потрібно багато років тренуватися , інакше не буде бази для переходу на наступний щабель.
- Ха - означає звільнитися від правил - де правив немає , там є природний хід речей. Багато пробують робити це занадто рано, оскільки переоцінюють свої можливості.
- Рі - означає піднятися над усім, що вивчалося раніше, створити більш високі і більш загальні принципи (до речі, в програмуванні теж є три стадії : junior , middle , senior ) . Коли вам здається, що ви вже досягли піку свого вміння - швидше за все , ви не праві. *** «Я програміст , тому платите мені 2000 доларів на місяць, і де взагалі моя масажистка ? », Або « А я знаю, що інші програмісти отримують більше, ніж я , в 3 рази! » - так, і повірте, по -справжньому хороший програміст оплачується і утримується . Якщо ваша робота не оплачується в повному обсязі - значить, може бути , вона ще не варто бажаного рівня . Продовжуйте вчитися, набирайтеся досвіду. Всьому свій час . *** «Я боюся це робити, я таке ніколи не робив, я щось зламаю ...» - повірте, бородаті сеньйори дуже мало коли роблять щось , що вони вже робили раніше . Програміст - це така професія , коли доводиться постійно робити що те, з чим ще не стикався. Страх накосячіть - найбільший бар'єр до успішної кар'єри . Поки ви боїтеся - нічого не буде. Намагайтеся, пробуйте , робіть .

Будьте сміливіше

В якості висновку трохи порад тим, хто вже в темі, але ще не впевнено себе почуває : - Відкривати свій код через місяць, робити фейспалм зі словами « боже, як я міг це написати ?!» - нормально. Якщо у вас так і відбувається , то ви на правильному шляху. Поки ви будете ненавидіти код , який написали минулого тижня або в минулому місяці, ви будете розвиватися. - Робити свою cms - це нормально. Головне - написавши свій велосипед, нікому його не показувати і ніде не використовувати. Сам факт того, що ви її написали - знак того, що ви чесно ввібрали інформацію і закріпили її на практиці . - Щоразу думайте : « чи правильно я роблю? », « чи можна зробити краще? », «це можна зробити краще , я знаю». - Не бійтеся ставити дурні питання . Досвідчені програмісти будуть жартувати над вами , але вони самі були колись такими ж і ставили ті ж питання . І вони це пам'ятають. - Правильний досвід = успішна кар'єра . Не зв'язуйтеся з банками, держ- і близько - держустановами . Там ви такого досвіду не знайдете. Ні -ко-ли . - Навіть не думайте вчити 1С (хай вибачать мене 1Снікі ) . Будьте сміливіше і не поспішайте переходити на стадію middle . Все прийде саме собою .

Опубліковано: 16/02/15 @ 07:31
Розділ Різне

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

Як ми запустили свій pet -проект : перший успіх
Кейс : висновок з-під фільтра Яндекса за " невидимий" спам.
24 лютого, Одеса - Lohika Odessa #TechTalks - JS MeetUp
Дайджест цікавіх Вакансій № 173
IT Євротур 22 : die kartenmacherei GmbH (Гамбург , Німеччина)