Thursday, 9 August 2012

Навчання

Досить давно намагюсь заохотити знайомих до вивчення програмування та відповідно реального “покращення життя” ну або хоча б фінансового стану.
cc100-cc200-367636-o
І вже так сталось, що люди по своїй природі різні і в кожного свої не лише фізичні але й психологічні можливості до навчання. Одні за мету ставлять дочитати, інші зрозуміти, а в результаті досить часто як перші так і другі не отримують того що хотчуть. Виникає логічне питання як читати ефективніше? Що зробити для того щоб інформація яку ти прочитав запамяталась краще?
З власного досвіду можу сказати що якщо ти щось читаєш і при цьому все зрозуміло то це ще не означає що ти це запамятаєш, зможеш використати чи просто згадаєш коли це буде необхідно. Навіть найпростіші речі іноді забуваються, і випадку псевдо “розуміння” все задється настільки простим що ми не загострюємо на цьому уваги, відповідно ніяких додаткових прикладів чи пояснень. Все що залишається в нашій голові наступного ж дня може зникнути а через місяць навіть сам факт того що ми читали буде дуже сумнівним.
Вчись розмуно.
Асоціації. Дуже добре після кожного отриманого скілза прокачати його асоціаціями, тобто попробуй знайти 3 варіанти застосування отриманого навику і потролити себе самого плюсами і мінусами. Задай собі декілька простих питань:
  • Що це і для чого?
  • Які плюси/мінуси?
  • Як використати і коли краще не використовувати?
Особливо добре це працює коли говорити з собою в голос, негативним фактором в даному випадку є реакція оточуючих. Тут ми й переходимо до наступного методу малювання/записування.
Записуючи/малюючи ми не лише задіюємо зорову память та вдосконалюємо навики UML ми також можемо загострити асоціативну память відповідно до зображення, побачити недоліки коду в плані організації, додатково покращити навики писання коду без решарпера. Цим методом насправді досить часто зневажають початківці, але його дуже часто використовують досвідчені програмісти і якраз над цим треба в першу чергу задуматись.
Повторення. Так чи інакше все запамятати досить важко, тому час від часу бажано повторювати деякі нюанси. Наприклад читаючи книгу можна виділяти важливі репліки чи слова і на наступний день зробити невеличку перевірку знань, це освіжить память і допоможе вчасно довчити те що не запамяталось.
Дослідження. Як тільки ви почали працювати в новій тімці/компанії, ви хочете показати, що можете робити все що від вас вимагають, а чого незнаєте можете швидко вивчити і відповідно зробити як треба. Але тут є один підводний камінь, в такому випадку ви мало часу приділяєте глубокому аналізу коду, іноді ви фіксаєте дефект просто дописуючи костиль і навіть не задумуєтесь над наслідками та можливими побічними дефектами. Особисто для себе впровадив правило ”30 хвилин” яке зараз активно юзаю. За цим правилом приділяю дослідення незрозумілого або просто ознайомленню з кодом, зазвичай цього часу достатньо для того щоб розібратись в певному методі чи невеликому класі. Також цього часу біль ніж достатноь для зарисовки організації коду, основних інтерфейсів і тд. Це не лише дозволить написати фікс там де треба, але й позбавить дурних помилок а також дасть вам краще розуміння коду і відповідно кожен наступний фікс/імпрувмент буде вас рухати в напрямку розуміння архітектури проекту. Це також дозволить досить глубоко проаналізувати її та запропонувати кращі варіанти або як варіант задати питання по тому що вам не зрозуміло.
Зараз логічно задати собі тіж питання про які я писав вище, отож
Що це і для чого це?  - Перш за все це те до чого я йшов досить довго і що реально допомогло мені бути там де я є зараз. Ці прості деталі на які необхідно звертати увагу окуплять себе дуже скоро, вони не лише дають краще розуміння того що ви прочитали, але й підготують вас до поглиблених співбесід. вам не буде страшно написати приклад на аркуші паперу, намалювати невеличку схему, чи просто словами навести декілька прикладів, що погодьтесь найваще для початківців.
Які плюси/мінуси? – Основний плюс це якість навчання, вона зростає і розвиває в вас хороші навики які обовязково пригодяться в житті при аналізі складних ситуацій ітд. Мінуси як на мене не на стільки суттєві.
Як використати і коли краще не використовувати? – Використовувати так як лікар приписав.