Я сам є програмістом, а також маю деякий досвід навчання програмуванню інших людей. Тобто я знаю як це – вивчати дисципліну програмування, особливо ті складнощі, що виникають на самих початках, коли треба дуже багато нового матеріалу осягнути і застосовувати потім на практиці.
Сам через це пройшов свого часу, адже не маю професійної освіти програміста інженера – “самоучка”. І коли прийшлось опановувати цю цікаву професію прийшлося вчити все і одразу, і на практиці реального (звичайно нескладного) проекту.
Навчаючи інших людей програмуванню я завжди стараюся поставити себе на їхнє місце, і власний досвід тих днів коли я сам починав кодити дуже допомагає мені у цьому.
Це дуже важлива риса викладача – вміти поставити себе на місце учня і зрозуміти, що у нього в голові, для того щоб правильно і дохідливо подати матеріал.
З іншої сторони – класні програмери ніколи не перестають навчатися, адже IT галузь є однією з найбільш динамічних. Якщо ти не підтримуєш свої знання і вміння у хорошій формі, не слідкуєш за новинками, тоді є всі шанси не отримати наступне підвищення, або, що ще гірше, втратити роботу або проект…
В цій статті я хотів продовжити мій список властивостей притаманних класним вчителям і учням в програмуванні, але після того як я натрапив на оцю суперову статтю від чувака під іменем Ден Кім, я зрозумів, що його список повністю перекриває мій і ще додає кілька інших рис. Та й письменник з нього значно кращий, ніж я, тому я просто вирішив перекласти дуже сильню статтю одного з працівників відомої американської фірми 37signals.com (автори бейскампу для тих хто не знає):
http://37signals.com/svn/posts/3559-my-observations-about-teaching-and-learning-programming
Надіюсь вам сподобається:
Протягом останніх 6 місяців я мав унікальну нагоду спостерігати за великою кількістю програмістів – студентів, вчителів, і експертів світового класу.
Мені було цікаво чи існюють які-небудь шаблони чи властивості, які характеризують успішних програмістів вчителів та студентів. Я поставив собі просту мету: стати кращим вчителем та кращим студентом, щоб могти допомагати іншим.
І ось що я зрозумів.
Чудові вчителі програмісти…
…вказують студентам правильний напрямок, але не дають усіх відповідей.
Вони навчають студентів бути зацікавленими та незалежними – самим шукати відповіді на власні питання. Вони дають можливість студентам понабивати гулі і попереписувати код кілька разів. Вони дають студентам можливість самим знаходити цінні моделі, техніки для вирішення проблем і справжню насолоду створення власного робочого результату.
…підбадьорюють, але ніколи не критикують.
Вони хвалять, коли студент пише чудовий код, і надають пропозиції щодо переписування поганого коду. Вони надають підказки і пропонують напрямок, але ніколи не критиються хід думок.
…агітують писати якомога менше коду.
Вони спрямовують студентів якомога далі від складних і якомога ближче до простих і елегантних рішень. Чим менше рядочків коду – тим краще.
…вони терплячі і пам’ятають, що таке бути початківцем.
Вони пам’ятають, що кожен з них самих був дійсно поганим програмістом в певний час на початках, і потребував допомоги (включаючи їх – вчителів).
Чудові студенти програмісти…
… вивчають як навчатися.
Вони не просто чекають на відповіді, але самі шукають моделі і техніки. Вони шукають і пробують зрозуміти корінь причини ламаючи і обходячи проблеми. Вони постійно використовують Гугл (Google) і Стек Оверфлов (Stack Overflow).
…менше говорять, більше слухають і спостерігають.
Вони розуміють, що можуть навчитися цілу купу речей просто спостерігаючи як їхній вчитель вирішує проблеми, спілкується і навчає інших. Вони просто дивляться і вивчають.
…схиляються до повільнішого руху, і є розважливими у своїх дослідженнях.
Вони виділяють достатньо часу, щоб обдумати проблему, вибрати розумне рішення і стисло пояснити проблему, з якою стикнулися. Вони стають все кращими і кращими у виділенні неквапливого часу для обдумування проблеми перед її вирішенням.
…тримають свій код “чистим”.
“Кучерявий” брудний код є часто результатом “кучерявого мислення”. Якщо ви маєте гарний чистий код, тоді іншим легше допомогти вам, і як результат, вони вчаться швидше і розуміють краще.
…є наполегливими.
Вони є абсолютно непохитні у своїй вірі, що можуть вирішити будь-яку проблему (і за звичай так і є!). Години чи дні можуть давати малий або не давати жодного прогресу, тож наполегливість і завзятість є критичними у їх мисленні.
…вони схильні до швидких результатів.
Вони встановлюють собі реальні цілі в порівняно короткі проміжки часу. Вони розуміють, що початковий імпульс є критичним у їхній роботі, тому що він надає відчуття реалізації і енергію, щоб йти швидко вперед.
…почитають кодувати, коли всі інші варіанти вже не діють.
Є багато етапів і місць, де можна заштопоритись – синтаксис, концепції, бібліотеки, інструменти, книжки, туторіали – список безкінечний. Вони розуміють, що чим швидше почнуть писати реальний код, тим швидше буде що правити і покращувати, а відтак прийти до кінцевого результату.
Ну і накінець, чудові програмісти…
…ніколи не зупиняються навчатися і навчати.
Надіюсь стаття вам сподобалася, надала мотивації, показала ваші слабкі і сильні сторони будь-ви вчителем, учнем чи програмістом.
А які ще риси хорошого програміста ви вважаєте є важливими? Дописуйте в коментах!
P.S. Якщо знаєте інші англомовні статті на подібну тематику і хотіли б мати доступ до неї в українському варіанті, кидайте лінки в коментах. Якщо стаття буде цікава мені – тоді я її перекладу на сторінках цього блогу.
Якщо вам сподобалося – тисніть Мені Подобається і діліться з друзями! До наступного зв’язку!
…почитають кодувати – помилка, Віталію, – починають )
Дякую за статтю.
“…вказують студентав правильний напрямок, але не дають усіх відповідей.” – маленька помилка в тексті