می دانیم که :
دانش برنامه نویسی با کد نویسی فرق اساسی دارد. دانش برنامه نویسی نیازمند زیرساخت فکری علمی است که بنیاد آن در گروه (الف) علم ریاضی پایه (ب) آشنایی با زبان های برنامه نویسی (ج) ساختمان داده ها و سرانجام (د) طراحی الگوریتم است.
در واقع کسانی که کد نویسی می دانند، الگوریتم ها را تبدیل به یک برنامه ی قابل اجرا در کامپیوتر می کنند. اما الگوریتم نویسی و طراحی الگوریتم ها یک فن مهندسی و بسیار تخصصی است. ما به تکنیک و روش حل یک مسئله، الگوریتم حل مسئله می گوییم. در طراحی یک الگوریتم به کارایی، زمان اجرا و حافظۀ مورد مصرف توجه می کنیم. بدین ترتیب فراگیری روشهای حل مسائل و طراحی الگوریتم ها، به درک موضوع و آشنایی با دانش طراحی الگوریتم کمک می کند.