15 February 2008

Як вчитись?

Просто міркування, далі можна не читати.

Я декілька разів інтерв'ював хлопців на позиції молодших розробників. Складається враження що люди зараз тільки читають. До того ж читають тільки дві книги Троелсона та Ріхтера. Інакше кажучи майже всі знають як працює GC, але плутають використання try..catch!

Книги це класно! Але вони в жодному випадку не замінять практики.

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

Ще одним великим додатком до практичних знань можуть бути усілякі Best practice. Кожен має сам обирати де йому брати цю інформацію, зі свого боку можу дати такий список(в порядку зростання важливості):

  1. Аналіз коду FxCop, NDepend, CodeItRight. Аналіз того що кажуть ці тулзи дає дуже велику кількість додаткової інформації. Про більшість проблем більшість розробників-початківців навіть не підозрює. (CodeItRight вміє сам виправляти - ніколи не користуйтесь цим! Краще виправити все руками, а потім ніколи цього не робити);
  2. Усілякі бібліотеки, наприклад Guidance Explorer, або просто пошук;
  3. Reference Implementations, Source Code, це мабуть найбільше джерело початкових знань, але потрібно розуміти що шукати: 
    1. Приклад з Source Code. Ідею ServiceLocator-а я спочатку отримав із коду SharpDevelop, потім знайшов її в .Net Framewrok, а вже потім мені підказали що це ServiceLocator;
    2. Reference Implementations. В Інтернеті можна знайти велику кільсть реалізацій, які мають за мету саме показати як щось використовується. Наприклад усі Software Factory від Microsoft (Web Service Software Factory, Web Client Software Factory, та інші) мають приклади таких реалізацій.
  4. Паттерни. GOF та інші. Мабуть одразу виникне питання чому я Паттерни відкинув на останню ланку. Як на мене, для початківців, це най неефективніший шлях вивчення. Вони дуже ефективні для рішення проблем. Але початківці нічого не пишуть, у них немає проблем! Коли вже починаються проблеми, то саме це і є той час коли потрібно почитати дивитись на паттерни.

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

Зрозуміло що все це дуже суб'єктивно. Також потрібно розуміти що ані Ріхтер, ані Троелсон, ані Microsoft, ані я, ані будь хто не надають гарантій що все що вони кажуть це правда. Тобто до кожної інформації потрібно ставитись дуже вибірково, потрібно розуміти що не існує якоїсь срібної кулі, і якщо все було б чудово ми б жили в іншому світі ;).

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

Помічено як: ,
 

Коментарі

# demon_xxi said:

Михаил, отличная заметка!

Давно такой не хватало, это наверное самый частозадавемый вопрос. С чего начинать и т.п....

15 February 08 at 5:36 PM
# Mike Chaliy's Blog said:

“Вміти розробляти під SharePoint за 80 годин” - щось схоже буле моїм таском перед новим проектом. Зараз

17 August 08 at 9:09 AM
Анонімні коментарі деактивовані. Увійдіть або Зареєструйтесь щоб мати доступ до ресурсів Спільноти.

About Mike Chaliy

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