Що я маю знати щоб програмувати?

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

Коли я думаю про доньку, то я не знаю напевне, яка лексика їй більше згодиться у житті, бо не знаю, про що будуть найбільше говорити майбутні покоління і у якій сфері вона працюватиме. Абсолютно все завчасно не вивчиш, тому крок за кроком розказую про те, що бачу тут і зараз.

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

  • Уміння задавати правильні питання, щоб знайти рішення до поставленої задачі. Дуже рідко рішення на кожну задачу від початку сидить у голові, тому програмісти дуже багато гуглять. Особливо на https://stackoverflow.com/ . Але знайти правильне формулювання теж треба вміти і це займає час, не дивуйтеся, ящо одразу відповіді не буде, час від часу я спершу вводжу ключові слова, щоб скопіювати потім чиєсь питання і вже по ньому шукати відповідь. Багато програмістів у пошуках відповіді запитують у колег/менторів і чимало дивляться на чужий код у проекті, щоб зрозуміти, як прийнято його писати “саме тут”. Мене надзвичайно радує, що ви часто ідете своїм шляхом до вирішення задач і хочете знайти помилку у цьому рішенні, а не підставити чуже і лише потім подивитися різницю. Це і є ключове уміння у професії!

  • Здатність розбиратися у нових тулзах (програмах) і проектах і уміння вчитися загалом. Slack, zoom, Visual Studio, Retrium - чудові приклади тулзів, які можуть згодитися.

  • Уміння дебажити і шукати помилки в уже написаному кимось коді. Дуже рідко вам доведеться одразу писати проект з 0, а отже буде багато багато чужого коду, який треба зрозуміти і тому дуже корисно читати код одна одної

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

  • Знання git (для більшості проектів): w3schools туторіал

  • Базові розуміння, що таке база данних і як з нею працювати. мої улюблеті туторіали теж з w3schools

Далі з кожним проектом і кожним написаним рядком буде рости впевненість у тому, що ви вже знаєте (як з новою мовою, якою можете сказати все більше) і буде рости розуміння, скільки ж усього довкола, що ви ще не пробувати програмувати (і можливо ніколи не будете) і все більш спокійне ставлення до того, що ви чогось не знаєте. Бо перш за все вас найматимуть не за те, що вже у вас у голові, а за потенціал розібратися з усіма технологіями, які використовує компанія і уміння підлаштуватися під проект, проявляючи вашу креативність у вирішенні поставлених задач. Хай щастить у цьому!

3 Likes