Откакто станах разработчик, виждам как други разработчици се оплакват защо големите технологични компании се фокусират толкова силно върху структурите от данни и алгоритмите по време на селективния процес, вместо да се съсредоточат върху новите рамки на пазара, или че не е необходимо да се познават задълбочено, тъй като езикът ( Java например) вече дава тези структури внедрени (списъци, карти, стекове ...).

През последните няколко дни минах през някои концепции и алгоритми, които не бях виждал дълго време, и в крайна сметка прегледах някои структури от данни, които не са много обичайни в ежедневната работа на програмист, и взех курс по Coursera от Калифорнийския университет в Сан Диего, наречен „Разширени структури от данни в Java“, обхващащ графики и свързани с това алгоритми.

Графиките не са най-обичайната структура от данни за програмист, ако не работи с нещо, свързано с карти, реклами или логистика. Но защо всеки разработчик, който няма да работи с поле, свързано с графики, трябва да отдели време да го научи или прегледа?

Въпросът е, че графиките не са толкова основни като списъци, стекове и други структури от данни, които се използват във всяко приложение, за да приложите структурата на графиката, трябва да използвате много други структури от данни и това ще бъде ключът за добро или лошо представяне.

Правенето на добро внедряване на който и да е от алгоритмите за търсене в графики е наистина предизвикателство и ще подобри уменията ви за структури от данни. През последните няколко дни промених начина, по който мисля за структурите от данни, защото подходих към проблемите по правилния начин, но не получих очакваните резултати поради структурите от данни, можех да реша проблемите, но трябваше да мисля по ориентиран към структурата на данните, за да постигна най-добра производителност, бих могъл да променя O(n²) на O(log n), като превключа само една от използваните структури от данни.

Това упражнение ме накара да се замисля за много кодове, които направих в миналото и това е моментът, в който разбираш, че израстваш като професионалист, и чувството за постижение е огромно.

Структурите на данни са една от най-важните области в компютърните науки, те са навсякъде в операционната система, която използвате, и присъстват във всяко приложение, което пишете. Ако сте разработчик и смятате, че познанията ви за DS могат да бъдат подобрени, това е много добра инвестиция на вашето време.

Изучаването на нова рамка е лесно, но разбирането на основите за подход към разнообразието от проблеми, които трябва да решаваме всеки ден по възможно най-добрия начин, е истинското предизвикателство...