‫۱۰ سال و ۷ ماه قبل، جمعه ۱۶ اسفند ۱۳۹۲، ساعت ۱۰:۱۵
با این مقایسه دلیل استفاده از HashTable چیه ؟
مزایای HashTable  چیه که به طور مثال کدجنراتور EF6 بصورت پیش فرض داره ازش استفاده میکند ؟
ممنون میشم توضیح مختصری این این باره بدید
‫۱۰ سال و ۷ ماه قبل، پنجشنبه ۱۵ اسفند ۱۳۹۲، ساعت ۱۳:۵۱
گذشته از بحث مدرک محوری که متاسفانه کشور رو به جهت نامناسبی کشونده و باعث خیلی بی عدالتی‌ها و عقب ماندگی‌ها و ... در کشور شده (به خصوص در سیستم هایی که مستقیم یا غیر مستقیم دولتی هستند!)، ماهیت دانشگاه بسیار مهم است.
در دانشگاه چیزهایی مثل نحوه یادگیری، کارگروهی، بالا بردن انگیزه، حس رقابت، حس پیشرفت، اعتماد به نفس و خیلی چیزهای دیگه به طور عادی یا اجباری یاد داده می‌شود که کسی که دانشگاه نرفته قطعا این موارد رو هم تجربه نخواهد کرد بنابراین دیدگاه یک شخص تحصیل کرده از زمین تا آسمان با نمونه دانشگاه نرفته آن تفاوت دارد. (صد البته رتبه دانشگاه نیز در یادگیری و میزان این تجربیات تاثیر فراوان دارد یعنی نمیشه دو تا فارغ التحصیل دانشگاه رو که مثلا یکی در صنعتی اصفهان درس خونده رو با دانشگاه غیر انتفاعی فلان شهرستان(!) مقایسه کرد که از لحاظ وسعت اندازه یک مدرسه هم نیست و هر دو هم کارشناس تربیت می‌کنند.)
اما برای بچه‌های نرم‌افزار به نظرم قضیه حتی مهم‌تر از مابقی رشته‌ها هم هست. یعنی عقیده دارم دانشگاه رفتن برای کسایی که دوست دارند تو حوزه نرم‌افزار کارآفرین، کارشناس، یا هرچیزه دیگه ای بشن خیلی مهمه. چرا؟
(برای مثال) تو دانشگاه اسمبلی به شما یاد می‌دهند به همراه ریزپردازنده و معماری کامپیوتر که با ترکیب نظریه زبان‌ها و کامپایلر دانشجو می‌فهمه از زمانی که یک خط در کامپیوتر به عنوان برنامه در هر زبانی نوشته می‌شه این یک خط چطور توسط کامپایلر از لحاظ نحو، دستور بررسی می‌شه و چطور کد معادل سطح پایین ایجاد می‌شه و کد رو پردازنده چطوری با کمک چه ثبات‌هایی و چه دستوراتی در سطح ماشین اجرا می‌کنه.
یا درسی مثل طراحی الگوریتم‌هاست که انواع و اقسام الگوریتم‌های مختلف که تا الان ارائه شدند بررسی می‌کنه و از لحاظ سرعت و زمان (Order) مورد تحلیل قرار می‌ده که مثلا الگوریتم Quick Sort در چه زمانی یک لیست رو مرتب می‌کنه و Bubble Sort در چه زمانی و یا اینکه ضرب یک ماتریس n*n در حالت تک پردازنده و یا بصورت موازی چطور انجام می‌شه و چقدر زمان نیاز داره؟
یا شبیه سازی پنجره ویندوز در مد گرافیک در زبان C چه کتابخانه‌ها و سخت‌افزارهایی رو درگیر می‌کنه و یا منظور از نرمال سازی در سطح 3NF در مفاهیم پایگاه داده رابطه‌ای چی هست و چطور میشه به اون رو در واقعیت رسید. (که خیلی از مدعیان کار با MS SQL SERVER یا ... هستند که حتی اصول و مفاهیم ساده پایگاه داده رو هم نمی‌دونند.)
اینها چیزهایی هستند که کسانی که دانشگاه نرفتن و صرفا با یادگیری یک زبان برنامه نویسی وارد این حوزه شدند و حتی مدعی هم هستند(!)، نمی‌دانند.
ممکنه فکر کنید خوب دونستن اینها چه فایده‌ای داره؟
زمانی که سرباز بودم از مافوقم پرسیدم با وجود این‌همه سلاح اتوماتیک و سبک و کوچک و جدید چرا ما باید از کلاشینکف صد سال پیش روسی استفاده کنیم؟ جواب این بود که با یادگیری کامل این سلاح می‌تونید تقریبا با همه سلاح‌های موجود کار کنید و کلیات ماجرای همه این سلاح‌ها از همین کلاشینکف و ژ-۳ ارث بری‌می‌کند(!) و یادگیری بقیه با دونستن اطلاعات پایه تنها یادگیری بخش جدیدی که به این سلاح‌ها اضافه شده وگرنه پایه همان است.
شبیه همین جواب را زمانی شنیدم که از استادم پرسیدم یادگیری ساختار پردازنده 80X86 زمانی که الان پردازنده با ساختار چند هسته‌ای توسط اینتل تولید می‌شه چه فایده‌ای داره؟
بنابراین کسی که واقعا این مسائل پایه‌ای رو خوب یاد گرفته باشه توانایی فوق‌العاده‌ای در درک مسائل جدید در آینده خواهد داشت و قطعا محصول بسیار باکیفیت‌تر و بهینه‌تری تولید خواهد کرد و ذهن بسیار خلاق‌تری خواهد داشت و اگر شرایط اجتماعی برایش فراهم باشد موجب افتخار یک کشور نیز خواهد شد.
نکته آخر:
اگر فیلم  The Social Network  رو دیده باشید حتما اون بخشی رو که مارک زاکربرگ وارد کلاس دانشگاه هاروارد میشه و با بی‌حوصلگی تمام سرکلاس به مطالب استاد گوش می‌ده و می‌خواد کلاس رو ترک کنه که استاد ازش یک سوال درسی می‌پرسه (برای مسخره کردنش!) و مارک ایستاده و روی پله‌ها جواب استاد رو میده که هیج ، کمی جلوتر از فکر استاد پیش میره و جواب می‌ده که کلاس هنوز به اون بخش نرسیده و همه مات و مبهوت مونده‌اند...
بله، درسته خیلی از بزرگان این رشته دانشگاه نرفته‌اند و یا ترک تحصیل کرده‌اند ولی علت این بوده که درس‌های ارائه شده در دانشگاه اون‌ها رو سیراب نمی‌کرده و اونها نیاز به چیزی فرای درس‌های ساده دانشگاه داشتند که در دانشگاه هیچ وقت به اون نمی‌رسیدند.
این افراد رو نمیشه با کسانی که در دانشگاه برای پاس کردن فلان درس به هر دری می‌زنند تا به مدرک برسن یا ذهنشون توانایی حل یک معادله ساده درجه ۲ رو نداره که بخوان براش برنامه بنویسن، یکی کرد.
بنابراین امثال جابز و گیتس نوابغ بشری بودند و هستند که تونستند در جامعه‌ای که زمینه براشون مهیا بوده بدون نیاز به دانشگاه موفق بشن و شهرت جهانی پیدا کنند.
موفق باشید.
‫۱۰ سال و ۷ ماه قبل، چهارشنبه ۱۴ اسفند ۱۳۹۲، ساعت ۱۴:۵۶
من هم عقیده دارم سر فصل‌های دروس در دانشگاه ههای ما  اصلا مناسب نیست ...  ضمن اینکه همون اصول و حتی سرفصل‌های نا مناسب هم بطور کامل و درست درس داده نمیشه .... و همون درس ناقص هم ( اکثریت دانشجویان  ) ناقص میخونن ... 
به این سناریو اضافه کنید سیستم مدیریت آموزش ضعیف و امکانات آموزشی محدود ( بخصوص برای رشته‌های مهندسی مثل نرم افزار ) و کمبود نیروی مدرس باسواد و توانمند 
 من در مورد اکثر دانشگاهها این رو میگم نه در مورد چند تا دانشگاه مطرح (که البته اونها هم در حد اسمشون نیستند. )
اعتقاد هم ندارم همه چیز رو باید تو دانشگاه یاد گرفت  ... ولی وقت ، استعداد و پول دانشجویان رو هم تا این حد نباید هدر داد ... 
یک مطلب مهمی وجود دارد و این است که ما آموزش و علم را نباید محدود به دانشگاه ببینیم و در برنامه ریزی‌های کلان که کشور‌ها انجام میدن همیشه دو نوع آموزش مطرح هستش یک آموزش رسمی و یک آموزش عمومی و غیر رسمی و در حال حاضر روند حرکتی  به این صورت است که حجم آموزش عمومی رو به افزایش و حجم آموزش رسمی در حال کاهش می‌باشد که به عنوان نمونه می‌شه همین سایت رو شامل قسمت عمومی مثال زد.
‫۱۰ سال و ۷ ماه قبل، چهارشنبه ۱۴ اسفند ۱۳۹۲، ساعت ۱۳:۰۲
به نظر من شاید دانشگاه خصوصا در ایران چیزی که به درد بازار کار بخوره رو یاد نمیده ولی اصولی که در دانشگاه یاد می‌گیرید حتما در آینده در یادگیری تکنولوژی‌های جدید کمک می‌کنه.
‫۱۰ سال و ۷ ماه قبل، چهارشنبه ۱۴ اسفند ۱۳۹۲، ساعت ۱۲:۵۵
به نظر من دانشگاه کلا خوبه، انسان‌های خوبی رو می‌تونه پیدا کنه ، اساتید خوب هست پیدا میشه و سوای از بالا بردن علم و دانش در دانشگاه ،دانشجو می‌تونه تجربه‌های دیگه ای که در زندگی کمکش کنه بدست بیاره ولی برای دانشجوهای نرم افزار و IT  وکلیه رشته‌های در این حوزه که می‌خوان برنامه نویس بمونن تا لیسانس براشون کفایت می‌کنه چون سرفصل‌های درسی دانشگاه‌ها برای رشته نرم افزار خیلی ضعیفه و مناسب بازار کار نیست
استنباط اینکه این افراد با ترک تحصیل و یا نداشتن تحصیلات دانشگاهی به چنین موفقیت هایی دست پیدا کرده اند، تفکری غلط است.
اگر زندگی نامه هر کدام از این افراد را بخوانید می‌فهمید که چه نوابغی بوده اند، به عنوان مثال پل آلن در سن 17 سالگی برای شرکت‌ها اسمبلر و کامپایلر می‌نوشته است، در حالی که 99 درصد فارغ التحصیلان کشور ما این توانایی‌ها را ندارند.
جدا از دانش تکنیکال، این افراد در زمینه روابط اجتماعی و تفکرات اقتصادی و کار آفرینی پیشتاز بوده اند، صرف اینکه فلان شخص موفق دانشگاه نرفته پس من هم نروم فکری اشتباه است.  
‫۱۰ سال و ۷ ماه قبل، چهارشنبه ۱۴ اسفند ۱۳۹۲، ساعت ۰۴:۲۷
بنظرم گزینه اول واقعا نسبت به بقیه مهم‌تر هست. ما در روند معمول خیلی چیزها رو به دلایل عدم علاقه و زمان دنبال نمیکنیم و طبیعتا با ندونستن اونها در مواقع نیاز، نمی‌فهمیم که چه چیزی رو از دست دادیم و شاید هیچ وقت هم بعدا نفهمیم. گاهی اوقات دانستن یک مساله‌ی تئوریک حتی در حد خیلی کلی، کمک بسیاری به تصمیم گیری درست میکنه.
مشابه اون رو در عالم برنامه نویسی زیاد داریم. دوست برنامه نویسی داشتم که یک پروژه نسبتا حجیم با تیم چند نفره رو داشتن جلو می‌بردن و هیشکدوم حتی خبر از وجود سیستم asp.net membership برای احراز هویت و امنیت نداشتند! تصور کنید که چه حجم کد و البته پر از باگ رو می‌خواستند خودشون انجام بدن ...