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

Сам через це пройшов свого часу, адже не маю професійної освіти програміста інженера – “самоучка”. І коли прийшлось опановувати цю цікаву професію прийшлося вчити все і одразу, і на практиці реального (звичайно нескладного) проекту.

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

Це дуже важлива риса викладача – вміти поставити себе на місце учня і зрозуміти, що у нього в голові, для того щоб правильно і дохідливо подати матеріал.

З іншої сторони – класні програмери ніколи не перестають навчатися, адже IT галузь є однією з найбільш динамічних. Якщо ти не підтримуєш свої знання і вміння у хорошій формі, не слідкуєш за новинками, тоді є всі шанси не отримати наступне підвищення, або, що ще гірше, втратити роботу або проект…

В цій статті я хотів продовжити мій список властивостей притаманних класним вчителям і учням в програмуванні, але після того як я натрапив на оцю суперову статтю від чувака під іменем Ден Кім, я зрозумів, що його список повністю перекриває мій і ще додає кілька інших рис. Та й письменник з нього значно кращий, ніж я, тому я просто вирішив перекласти дуже сильню статтю одного з працівників відомої американської фірми 37signals.com (автори бейскампу для тих хто не знає):

http://37signals.com/svn/posts/3559-my-observations-about-teaching-and-learning-programming

Надіюсь вам сподобається:

Протягом останніх 6 місяців я мав унікальну нагоду спостерігати за великою кількістю програмістів – студентів, вчителів, і експертів світового класу.
Мені було цікаво чи існюють які-небудь шаблони чи властивості, які характеризують успішних програмістів вчителів та студентів. Я поставив собі просту мету: стати кращим вчителем та кращим студентом, щоб могти допомагати іншим.
І ось що я зрозумів.

Чудові вчителі програмісти…

…вказують студентам правильний напрямок, але не дають усіх відповідей.

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

…підбадьорюють, але ніколи не критикують.

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

…агітують писати якомога менше коду.

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

…вони терплячі і пам’ятають, що таке бути початківцем.

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

Чудові студенти програмісти…

… вивчають як навчатися.

Вони не просто чекають на відповіді, але самі шукають моделі і техніки. Вони шукають і пробують зрозуміти корінь причини ламаючи і обходячи проблеми. Вони постійно використовують Гугл (Google) і Стек Оверфлов (Stack Overflow).

…менше говорять, більше слухають і спостерігають.

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

…схиляються до повільнішого руху, і є розважливими у своїх дослідженнях.

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

…тримають свій код “чистим”.

“Кучерявий” брудний код є часто результатом “кучерявого мислення”. Якщо ви маєте гарний чистий код, тоді іншим легше допомогти вам, і як результат, вони вчаться швидше і розуміють краще.

…є наполегливими.

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

…вони схильні до швидких результатів.

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

…почитають кодувати, коли всі інші варіанти вже не діють.

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

Ну і накінець, чудові програмісти…

…ніколи не зупиняються навчатися і навчати.

Надіюсь стаття вам сподобалася, надала мотивації, показала ваші слабкі і сильні сторони будь-ви вчителем, учнем чи програмістом.

А які ще риси хорошого програміста ви вважаєте є важливими? Дописуйте в коментах!

P.S. Якщо знаєте інші англомовні статті на подібну тематику і хотіли б мати доступ до неї в українському варіанті, кидайте лінки в коментах. Якщо стаття буде цікава мені – тоді я її перекладу на сторінках цього блогу.

Якщо вам сподобалося – тисніть Мені Подобається і діліться з друзями! До наступного зв’язку!