سلام دوستان
من حدود 3 سال سابقه برنامه نویسی اندروید دارم و رشته دانشگاهی و هنرستانم نرم افزار کامپیوتر هست. جدیدا دنبال این هستم که در یک شرکت خوب کار کنم که یکی از این شرکت ها گروه حصین هست. من مشکلی با تخصص های مورد نیاز برای کار در بخش برنامه نویسی اندروید این شرکت ندارم تنها مشکل من که واقعا موندم چیکار باید بکنم مهارت های عمومی ای هست که هر برنامه نویس باید داشته باشه تا بتونه وارد این شرکت بشه. یکی ازمهارت ها ‫آشنایی کافی با مباحث طراحی الگوریتم و ساختمان داده‌ها هست. من با اینکه رشته دانشگاهیم کامپیوتر بوده هیچ وقت نفهمیدم دروس ساختمان داده ها و طراحی الگوریتم در ساخت برنامه های واقعی به چه دردی می خوره(دوستان من با مفهوم الگوریتم و ایجاد الگوریتم آشنا هستم فقط این دروس دانشگاه رو نمیدونم به چه دردی می خورد)
لطفا دوستان با سابقه من رو راهنمایی کنن که یادگیری طراحی الگوریتم و ساختمان داده ها چه تاثیری در کد نویسی و کیفیت برنامه نویسی داره؟ مثلا تسلط بر ساختارهای داده ای استاندارد مثل List و Queue و Map و Stack و همچنین الگوریتم هایی مانند Sort و Search چه سودی داره؟ اگر واقعا مفیده لطفا یه منبع خوب به من معرفی کنید.

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


اکثر برنامه نویسان تعداد کمی مفاهیم اولیه برنامه نویسی (مانند متغیر، آرایه، حلقه تکرار، شرط، و همچنین الگوریتم های اولیه) را یاد می گیرند و سپس شروع به نوشتن برنامه می کنند. این موجب می شود که چنین برنامه نویسی، در زبان شی گرای #C با امکانات زیاد، کد رویه ای C بزند و سعی کند با این کد مساله خود را حل کند.


کار کردن با دانش سطحی برنامه نویسی اگر چه غیر ممکن نیست، اما چنین برنامه نویسانی نمی توانند در تولید سیستم های بزرگ یا پیچیده نقش جدی داشته باشند.