چرا یک برنامه نویس نیاز دارد ساختمان داده ها و طراحی الگوریتم ها بیاموزد؟
ساختمان داده ها و الگوریتم ها تقریبا در تمامی بخش های یک کامپیوتر به کار می رود، برخی بخش ها به صورت ساده تر و کمتر و برخی بخش ها به صورت جدی تر و پیچیده تر. برنامه نویس زمانی که توسعه یک محصول حرفه ای تر را شروع می کند، اگر بخواهد بدون توجه به منطق ساختمان داده و الگوریتم، برنامه خود را توسعه دهد، دیری نمی گذرد که با مشکلاتی از جمله پیچیدگی بیش از اندازه برنامه، مصرف زیاد منابع سیستم و عدم انعطاف پذیری آن رو به رو می شود و این موارد مهمترین دلایلی هستند که یک برنامه نویس باید از این دو مفهوم در پروژه های نرم افزاری خود استفاده کند و به آن ها مسلط شود.
زبان برنامه نویسی اسکالا (به انگلیسی: scala) یک زبان برنامه نویسی شی گرا و تابعی است و هدف از ایجاد آن، ساده سازی توسعه برنامه های مقیاس پذیر با روش های چابک و سریع و کاهش مشکلات این نوع نرم افزارها و سیستم ها می باشد. عبارت انگلیسی scala در حقیقت از ترکیب تو واژه «scalable» و «language» تشکیل شده است که هدفش رساندن مفهوم مقیاس پذیری در این زبان است. این زبان در سال 2003 توسط پروفسور مارتین اودرسکی ساخته شد.