سلام به همگی
راستش من هم میخوام نظرم رو بگم چون این مطلبی که عرض میکنم صرفا نظر نیست بلکه تجربه ی تلخ از تلف کردن زمان به خاطر عدم یادگیری به شکل صحیح هست.
اولین بحث رو با طرح یک سوال شروع میکنم
چرا پروژه محور یاد نگیریم و چرا این روش برای آموزش اشتباه است.
علی
قصد یادگیری زبان برنامه نویسی x را دارد یک کتاب میخرد از فصل اول که متغییر ها است گذر می کند به فصل های پایانی میرسد در مورد چند نخی مطالعه میکند و یاد میگیرد چگونه در برنامه نخ تولید کند در فصل مربوط به رمز نگاری با توابع رمزنگاری اشنا می شود تمام مثال های کتاب را حل می کند او حالا با کلی واژه بدرد نخور که شاید ۱۰۰ سال هم از آنها استفاده نکند آشنا شده و هنوز دلش لک زده برای نوشتن همان ماشین حسابی که از بچگی آرزویش را داشت.
میلاد
قصد یادگیری زبان برنامه نویسی x را دارد او کلی منابع در اختیار دارد و هر زمان به هر بخشی که نیاز داشته باشد به منابع خود رجوع می کند و از انها استفاده میکند و کارش راه می افتد.
بر حسب اتفاق این دو مسیر ورود به بازار کارشان به یک شکل است هر دو به شرکت های خصوصی می روند.
از علی می پرسند Multithreading چیست ؟ از انجا که در مطالعه بیاد دارد Multithreading همان چند نخی است شروع به توضیح دادن می کند.....
از میلاد می پرسند Multithreading چیست؟ این واژه برایش اشنا نیست او در پروژه هایش به این چنین موردی برخورد نکرده بود پس نیازی به یادگیریش را هم نداشت او نمیداد.
علی سال ها بعد مدیر پروژه میشود میلاد هم
در پروژه ای نیاز به کد کردن داده ها است قرار است در مسیر داده ها کد شده منتقل شوند.
علی به یاد دارد که زبان x کتابخانه ی قوی برای رمزنگاری دو مرحله ای و یک طرفه و.... را دارد به سراغ آنها می رود و بر حسب نیاز خود یکی را انتخاب می کند.
میلاد نیاز برای حل مشکل رمزنگاری مردد است چون نتایج گوگل متفاوت است برخی ها در انجمن ها پیشنهاد یک الگوریتم ساده را داده اند که خود باید پیاده سازی کند و برخی ها کتابخانه ای را معرفی کرده اند اما در کتابخانه ی معرفی شده هر کدام نیز روشی را گفته اند. او نمیداند بالاخره کدام بهتر است ؟ اصلا تفاوتشان در چیست؟ او بالاخره تصمیم می گیرد خودش بنویسد میلاد هم پروژه اش تمام شد.
تفاوت را احساس کنید
من یه زمانی به سبک "هر چی لازم دارم یا میگیرم" کار میکردم بعدها متوجه شدم زبان برنامه نویسی من کلی امکانات دارد که من اصلا با آنها آشنا نبودم و عجیب اینکه در اینترنت هم کسی اشاره نکرده بود یا من پیدا نکردم.
سعی کنید سرفصل های یک زبان رو کامل پیش برید بعد با داشتن معلومات قوی از یک زبان به راحتی می تونید الگوریتم های بهینه در برنامه طراحی کنید و برای پیاده سازی اگر قواعد زبان رو فراموش کرده باشید میتونید با مراجعه به منابع به راحتی استفاده کنید.
مورد مهم تر اینکه هیچ کتابی کامل نیست
من برای اینکه تمام مباحث زبان ++C استاندارد رو کامل و با مفهوم یاد بگیرم از بیش از ۱۰ کتاب و چند منبع رسمی و اصلی استفاده کردم
...
در پناه خدا