Как да подобриш уменията си по структури данни и алгоритми
Харш Гоел е основател на InterviewCamp и е добре запознат с проблемите, с които много програмисти се сблъскват по време на интервюта за работа. Структурите данни, алгоритмите и и правилното им приложение са изключително важни знания за абсолютно всеки в сферата и по тази причина Гоел е предложил няколко съвета, които да ти помогнат да подобриш тези умения. По случай предстоящия ни безплатен курс Data Structures Fundamentals (with C#) ще ти ги споделя:
Дълбочина vs. Широчина
Без съмнение имаш колега или приятел, който се хвали с броя задачи, които е решил и това е и една от основите му цели – да реши колкото се може повече. Това може да се нарече „развитие в широчина“ и колкото и да е полезно да се упражняваш много, този подход крие някои опасности.
Фокусирай се върху по-малко
Звучи добре, нали? Защо да решиш 500 задачи, като може да решиш само 100? Но ключът тук е да се задълбочиш в решението им. Когато анализираш задачата в дълбочина, ще се научиш да пишеш код по-бързо, по-изчистено, да използваш правилен синтаксис, да приложиш познат код в различна ситуация и да познаваш структурите данни, които използваш. Избери си 100 задачи и ги "разглоби и сглоби" няколко пъти. Сам ще усетиш напредъка.
Научи всеки вид структури данни
Звучи доста интуитивно, но не всеки го прави. Научи как работят структурите данни (на който и език да пишеш) и разбери къде да ги имплементираш. В много случаи софтуерните инженери преработват мъничко някои структури, за да ги приспособят към проекта си, но за тази цел трябва да ги познават перфектно.
Повторение след време
Случвало ли ти се е да решиш някоя задача, но след седмица да нямаш никаква представа как точно си го направил? Ключово е да не се мъчиш да помниш решенията наизуст, а да ги упражняваш, за да можеш да го решиш отново и отново. Така не помниш нещо по калъп, а разчиташ на уменията си да разпознаваш отделни компоненти и да вникваш в същността на проблема. Един съвет за постигане на това е да решиш задачата след три дни, след седмица и след месец.
Фокусирай се върху техники
Навлезеш ли в дълбочина в задачите, ще започнеш да забелязваш някои модели, които се повтарят отново и отново. Запомни тези модели и ги упражнявай с идеята, че ще ги срещаш често в практиката си.
Обратно към широчината
След като си навлязъл на дълбоко в задачите и използваш структурите данни по-интуитивно, е време да се върнеш към бройката. Така ще се сблъскаш с нови проблеми, които няма да ти се струват толкова невъзможни, тъй като вече имаш базови познания, на които можеш твърдо да разчиташ.
Пиши на хартия
Това не е задължително, но помага. Ето някои ползи от решаването на задачи на хартия:
- Принуден си да планираш кода си, преди да пишеш. Не можете просто да се върнеш и да въведеш отново.
- Ще започнеш да привикваш с правилния синтаксис на езика и използването на структурите данните.
- Може да вземеш хартия и химикал навсякъде със себе си.
- Това е реалистична симулация на интервю с бяла дъска.
Надявам се тези няколко съвета да се окажат наистина полезни при изучаването на структури данни, а и в цялостното ти развитие като програмист. Не пропускай да се запишеш за безплатния курс Data Structures Fundamentals (with C#), в който ще се запознаеш с линейни и дървовидни структури, имплементацията им и операциите с тях. Курсът започва на 29 юни, запиши се сега!