10 помилок, яких варто уникати програмістам-самоучкам

Привіт. Мене звати Сергій. Сьогодні пропоную поговорити про навчання, а саме про самоосвіту і помилки, яких припускаються новачки в IT.

Я закінчив український виш і отримав ступінь магістра з прикладної математики. Так вийшло, що ще студентом мені довелося підпрацьовувати, викладаючи інформатику і пізніше програмування. Мені запропонували залишитися працювати викладачем в університеті, але я обрав професію програміста. Пізніше, вже працюючи програмістом, мене запросили провести курси в одній українській IT-академії. Тож я розробив і провів декілька курсів з JS та фронтенду у кількох комп’ютерних школах та академіях (моя сторінка викладача у Hillel).

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

Помилки новачків

Сьогодні ми бачимо значне зростання попиту на IT-спеціалістів. Відповідно збільшується кількість людей, які хочуть увійти в цю сферу. У мережі все більше оголошень про різноманітні курси, які за кілька місяців обіцяють зробити з вас суперспеціаліста з великою зарплатою в доларах. Дехто вирішує навчатися самостійно, адже в інтернеті є багато інформації та безкоштовних онлайн-курсів і підручників. Які можуть трапитися перешкоди на шляху до самостійного опанування?

Ось список помилок, яких припускаються люди, які вирішили навчатися програмування:

  1. Йти у професію, коли не впевнений, чи подобається програмування.
  2. Не знайти собі ментора.
  3. Робити великі перерви у навчанні.
  4. Вчитися довго.
  5. Вчитися лише українською/російською мовою.
  6. Працювати без відпочинку.
  7. Незручне робоче місце.
  8. Покидати навчання, коли здається, що не виходить.
  9. Не програмувати.
  10. Вчити декілька різних мов програмування та фреймворків одночасно.

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

1. Йти у професію, коли не впевнений, чи подобається програмування

Це можна здатися жартом, але, на мою думку, це важливе питання. Я вважаю, що програмуванню може навчитися кожен, але вчитися доведеться багато і довго (програмісти це роблять фактично щодня, life learning in action), тому у декого просто бракує наснаги, під час навчання приходять думки «а чи правильну професію я обрав». Щоб досягти успіху у будь-якій справі, треба полюбити цю справу. І з програмуванням це правило працює найкраще. Якщо людина не любить програмування та комп’ютери, то не зможе займатися цим щодня по 8, 10 і більше годин. Тож перше, що потрібно для себе вирішити, — чи підходить програмування саме для вас. Звичайно, не спробувавши, важко це зрозуміти, тому тут раджу взяти безкоштовний або недорогий онлайн-курс з будь-якої мови програмування і пройти його. Опісля оцінити ваш прогрес і чи отримували ви задоволення від роботи за комп’ютером.

2. Не знайти собі ментора

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

Де ж знайти цього ментора?! Це може бути ваш друг чи знайомий, що вже має значний досвід роботи в IT. Також якщо ви потрапите на курси від IT-компанії, нерідко в них надають наставника. В Україні менторство наразі лише набуває популярності, переважно у самих IT-компаніях. Зазвичай люди раді допомогти іншим розвиватися в професії. Для досвідчених спеціалістів менторство — це можливість прокачати свої софтскіли та поділитися знаннями.

3. Робити великі перерви у навчанні

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

Ще один приклад стався у мене на роботі. Ми почали проходити курс з підготовки до сертифікації з AWS, і один колега поділився своїм досвідом. Він сказав, що перший раз розтягнув проходження курсу на пів року і помітив, що забуває те, що вивчав спочатку. Зробивши перерву, за місяць пройшов увесь курс і успішно склав сертифікацію. Маю зізнатися, що я практично повторив його помилку, тож мені доведеться починати курс спочатку, як знайду час. Пам’ятаймо: взявся за діло, роби швидко й сміло :)

4. Довго вчитися

А як довго потрібно вчитися? Хоч я і сказав, що програмісти це роблять постійно, але помилкою буде вчитися довго і не починати працювати. Вчитися — це, звичайно, добре, головне вчасно зупинитися. Можна все життя проходити різні курси, робити практичні роботи й так і не почати працювати. Важливо вчасно зрозуміти, що готові, й шукати свою першу роботу. Коли влаштовуєшся у компанію джуніором, іноді кажуть, що справжнє навчання лише починається. Насправді воно продовжується, але вже на іншому рівні. Звісно, багато людей мріє якнайшвидше отримати свою першу роботу і вже навчатися на практиці. Але є ті, хто боїться це робити. Вони вважають, що ще недостатньо обізнані (синдром самозванця притаманний як джуніорам, так і сеньйорам, тож тут просто треба реально оцінювати свої знання, а найкраще порадитися зі своїм ментором).

5. Вчитися лише українською або російською мовою

А якою мовою ви навчаєтеся? На жаль, переважно ми вчимося лише українською або російською мовою. Але всім відомо, що англійська є основною мовою в IT (актуальна інформація доступна зазвичай англійською, також більшість українських компаній працюють з іноземними замовниками, тому комунікація з клієнтами та їхніми командами відбувається також англійською). Тому що раніше ми почнемо використовувати матеріали іноземною мовою, то простіше буде потім. На жаль, в Україні з англійською мовою, хоч вона і стає все більш популярною, її вивчають у школі та виші, досі є проблеми. Про це я розповідав в інтерв’ю для DOU.

6. Працювати без відпочинку

Коли я казав про помилку робити великі перерви в навчанні, це зовсім не означає, що не потрібно робити перерви взагалі. Робота за комп’ютером виснажує, тож це треба робити правильно — потрібен розпорядок. Мені сподобалась лекція Marty Lobdell — Study Less Study Smart на цю тему. Робити перерви під час роботи допомагає поширена практика Pomodoro.

7. Незручне робоче місце

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

8. Покидати навчання, коли здається, що не виходить

Тут хтось може зауважити, що я сам казав на початку, що якщо це не ваше, то треба це зрозуміти якнайшвидше. Але тут я маю на увазі трохи інше. «Не виходить» і «не подобається» — це різні речі. Якщо вам подобається програмування, але часто щось не вдається і здається складним, то треба перебороти свої сумніви та пробувати знову й знову. Є відомий вислів Вінстона Черчилля: «Успіх — це здатність крокувати від однієї невдачі до іншої, не втрачаючи ентузіазму». Успіх часто приходить через наполегливу працю. Якщо ви кілька разів пофіксили код, а він не працює, згадайте Едісона, якого ми знаємо сьогодні як одного з найкращих винахідників усіх часів. Томас Едісон зробив 10 000 невдалих спроб перед тим, як винайшов лампочку. Деякі з нас готові здатися вже після першої невдачі. Але успішними стають ті, хто не здається. Думаю, ви знаєте і такий його вислів: «Я ніколи не помилявся. Я знайшов 10 000 способів, які не діють». Тож якщо ви знайшли декілька способів, що не подіяли, пробуйте ще і скоро ви знайдете той, що діє.

9. Не програмувати

Ще одна помилка, яка може здатися жартом, не програмувати. Але це не жарт. Доволі багато людей просто дивляться відеокурси чи слухають подкасти й чекають на свою першу роботу програмістом. Але в програмуванні так не працює. Можна скільки завгодно читати, дивитися відео, але вчимося ми лише тоді, коли програмуємо. І особливо коли працюємо над власним проєктом. Тож в IT поширеним є вислів «навчатися програмування можна лише програмуючи». Це означає, що якщо ми щось вивчили теоретично, то обов’язково це потрібно закріпити на практиці. Важливо робити різноманітні проєкти, навіть якщо поки що за них не платять. В мережі є чимало ідей для особистих проєктів. Наприклад, розробіть свою (простішу) версію твіттеру або простеньку гру на JS.

10. Вчити декілька різних мов програмування та фреймворків одночасно

Іноді здається, що якщо вивчити багато всього різного, то можна стати крутим спеціалістом і знати все. Але мов програмування, фреймворків та інструментів настільки багато, що опанувати все неможливо. Тож це помилковий шлях. Щоб почати свою кар’єру програмістом, достатньо добре знати одну мову програмування та один фреймворк. Класичними зв’язками на сьогодні я б назвав JS + Node + React (як варіант Vue), Python + Django, C# + .NET Core + React, PHP + Symfony чи Zend + React тощо. Пізніше, коли станете професіоналом в одній мові та фреймворку, можна буде вчити щось додаткове. Вузька спеціалізація допоможе вам стати спеціалістом набагато швидше.


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

👍НравитсяПонравилось12
В избранноеВ избранном6
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
10 помилок, яких варто уникати програмістам-самоучкам

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

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

5. Вчитися лише українською або російською мовою

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

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

4. Довго вчитися

Довго — це скільки? Без згадки часу рада не має сенсу

Згоден, але конкретний час тут практично не можливо зазначити. Наприклад мене часто студенти питають «чи готовий/готова я вже починати подаватися на вакансії». Дехто каже впевнено «я не готовий, хочу пройти ще такі-то курси, щоб вже бути дійсно хорошим спеціалістом», це я також підтримую але нагадую що «найкраще ворог хорошого»)

2. Не знайти собі ментора

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

Ментор це людина до якої можна звернутися за порадою. На мою думку, коли у людини є ментор, це не робить з самоучки не самоучку) Наприклад я багато років знаю таку платформу FCC(FreeCodeCamp), раніше там навіть чат був де всі могли просити допомогу з вирішенням завдань, ставити різні питання, і там були ментори що допомагали (відповідали на питання). Так оті всі люди вони всі вважали і вважають себе самоучками, хоч вони і менторів питають, і онлайн курсі різні проходять (наприклад юдемі і т.п.)

В принципі поради цікаві, але я б не сказав, що їх можна застосовувати в 100% випадків

1. Йти у професію, коли не впевнений, чи подобається програмування

Я не згоден з цим твердженням. По-перше, людина не завжди знає, яка мова або платформа йому підійде. Він може почати з С ++, потім вивчати Java, і тільки на Python зупинитися. А на вашу пораду він повинен одразу кинути програмування, тому що йому не подобалося писати на C++.
По-друге, нехай людині і не сподобається програмування, але він краще дізнається ІТ зсередини, і він може вибрати альтернативний напрям — бази даних, DevOps або навіть QA.

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

А як ви думаєте, люди які працюють касирами, продавцями на базарi, вони отримують задоволення від своєї роботи?
На жаль, але в Україні є люди, які не отримують задоволення від жодної роботи або є роботи, які не можуть принести задоволення..
Але цi люди, як і всі, мають право спробувати щастя в ІТ

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

Хороший набор советов, толково.
Только по п1 есть замечание — ментор должен быть толковым.
Если плохой ментор, то лучше бы его вообще не было у человека. тут надо с осторожностью подходить к вопросу

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

Не знайти собі ментора.

Не вижу особого профита от него.
И менторские советы это чисто его опыт, не обязательно правильные:)

Незручне робоче місце.

Эх, помню как половину Рихтера прочитал в селе с LG L fino:)
Было бы желание, люди на работе охранником курсики смотрят.

У мене в школі інформатика була з одним підручником «Інформатика», і якось став програмістом) Але це ж не означає що не може бути краще :)

А я вчився програмувати на крихітному екрані чорно-білого телевізора, який мені виділили для Спектрума, на такому i.ebayimg.com/...​AAOSwt~1cMdk-/s-l1600.jpg

Было бы желание, люди на работе охранником курсики смотрят.

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

Не сказав би, що відсутність ментора це аж прямо помилка. Це дуже індивідуально. Для когось присутність ментора критична, а хтось більше схильний до самоосвіти. Більше того, часто поганий ментор це гірше, ніж його відсутність. Це вже не кажучи про те, що «самоучка» та «ментор» це трошки взаємовиключні параграфи :-)

Менторинг зараз активно розвивається в різних сферах, в тому числі і в IT. Звичайно можна вчитися і без ментора, але буде повільніше і не так ефективно. Що до «самоучки» — ми ж не про аскетів з вами)

Скажу так, що це чистої води суб’єктивізм. Менторинг дуже корисний при впровадженні новачка до конкретного проекту. Всі ті конфигурації, оточення, процеси — може бути трудно швидко самому зрозуміти. Але

Наступною поширеною помилкою є спроби навчатися самостійно.

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

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

То виключно особиста думка. А далі вже буде суперечка на тему чия думка краще. Але все-ж таки, висловлюючи свої думки, краще виключати імперативи.

Абсолютно з вами згоден

Привет, Сергей, были ли у вас мысли применить полученный опыт в области написания статей?

Привіт. Соррі, але думаю я не зовсім зрозумів ваше питання. Можете прояснити будь ласка?

Треба вчити все, а коли станеш сіньйором не полінуватися й повикидати зайве з резюме :)

У мене десь так само було)) З роками випилював технології з резюме один за одним) На сьогодні мабуть можна залишити JS, React, Node)))

10 (вiдсоткiв) помилок, яких варто уникати програмістам-самоучкам

Думаю, можна було б назвати ще багато пунктів, але кажуть, що не помиляються лише ті, що нічого не роблять. Тож якщо ви почали вчитися, припускатися помилок — це нормально. Головне на них вчитися. А які ви можете назвати помилки чи поради для новачків в IT?
Щоб почати свою кар’єру програмістом, достатньо добре знати одну мову програмування та один фреймворк. Класичними зв’язками на сьогодні я б назвав JS + Node + React (як варіант Vue), Python + Django, C# + .NET Core + React, PHP + Symfony чи Zend + React тощо.

из этого списка у меня тока шарп и то не основной.

Список приблизний, але в ньому найбільш популярні технології на ринку сьогодні (це за моїми спостереженнями). Наприклад працюючи в N-iX я помітив просто вривний ріст запиту на C# розробників, можливо тому що стає все більше замовлень від клієнтів з США.

Вчив декілька різних мов програмування і фреймворків... і став девопсом.

Поради так собі. Багато з них навіть не стосуються фаху, а всезагальні.

Дякую за коментар. В статті я зазначив що раджу не вчити все одразу, але пізніше можна вчити щось додаткове. Все одразу зазвичай вчать коли не знають на чому зупитинися. Наприклад я з універа запам’ятав слова мого друга «мій вчитель пішов в програмісти, каже щоб вчив джаву, бо вона рулить». Тоді у нас голова йшла обертом, не знали що вчити (PHP, С#, Delphi, etc) Пізніше я так само зробив) Вивчив джаву і з викладача у ВНЗ пішов в програмісти.

А як на початках знати, на чому зупинитися? Ну, поки сам не розберешся.

Я порушив аж чотири ваших правила і радше рекомендував би їх порушувати:

1. Вчив довго (почав з Java для Android 2016-го, почав працювати в комерційній розробці 2020).
2. Жодних менторів, учив сам по матеріалах з WWW. Дуже допомагало вільне ПЗ (слава РМС!).
3. Робив величезні перерви. Та що казати — закидав зовсім, бо набридало. І, гадаю, правильно робив, що не через силу, що не доводив себе до нудоти. Проте рано чи пізно повертався з інтересу й фану — і це для мене особисто було важливою ознакою, що то близько до мого.
4. Тимчасом перескакував між технологіями і мовами як тільки хотів, хапав по верхах, а коли багнулось — занурювався, навіть подавався на інтернатуру.

Все це разом дало змогу з’ясувати собі важливі речі, не тільки те, що подобається програмування, а і яке саме програмування подобається (це не ФЕ, до речі, хоч React я деякий час учив).

І шо, продовжую в тому ж дусі. Політ нормальний! :)

Щодо решти порад, як казав, мені вони видаються дотичними не лише до нашого фаху. Знати англійську в 2к21, любити себе, зокрема дбати про свій комфорт і відпочинок, проте бути стоїчним — це все загальні правила для повноцінного життя в сучасному світі.

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

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

Закінчу свій коментар класичними чеснотами програміста:

1. Лінощі.
2. Нетерплячість.
3. Пиха.

threevirtues.com

Мені такі орієнтири більше до смаку. :)

Погодьтеся, що ці чесноти люди також розуміють по різному) Якось на мою фразу «програмісти ледачі люди» одна дівчина сказала «Не можна так на людей казати»)

JS + Node + React (як варіант Vue), Python + Django, C# + .NET Core + React, PHP + Symfony чи Zend + React

однобокий список — все точене на Web

Напевно через малий поріг входження

Рынок диктует

Саме так, зазначив найпопулярніші технології на сьогодні за моїми спостереженнями, плюс вони думаю ще багато років будуть в тренді. От наприклад РоР мені здається потроху загинається, хоча зараз і бувають гарні вакансії, але сьогодні починати з Рубі і РоР я б не радив (розумію що то вже «холіварна» тема))

який саме ринок, привокзальний?

Згоден з вами, скоріш за все через «професійну деформацію»)), практично весь час працюю саме фронт розробником. І курси коли веду то по JS і фронту, тому в основному думаю про роблеми моїх студентів.

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