از چه منبع ای برای یادگیری برنامه نویسی استفاده کنیم کتاب ،سایت ها … ؟

source for programming

تا حالا بارها شده در این مورد از من سوال شده یا خودم از بقیه پرسیدم! این پست نظر شخصی خودمه و نمی گم این چیزی که من می گم صد در صد درسته!  راستش اولین باری که فهمیدم یادگرفتن خیلی از چیزها  (که یکی از آن ها برنامه نویسی است) از منابعی غیر از کتاب مناسب نیست سال دوم  دانشگاه بود که سر کلاس ساختمان داده نشسته بودم و استاد گفت برای این درس یادگیری زبان جاوا الزامی است و در آخر ترم امتحانی گرفته می شود که باید در آن ساختمان داده ها را با جاوا پیاده سازی کنید. منم سریع به استاد گفتم دوره ی آموزشی که روی سایت نردبان (  این سایت متاسفانه بسته شد! ) برای جاوا است خوب است ؟   و  استاد هم به من جوابی دادن که کلا فکر منو در این مورد عوض کرد :

گفت یک روز با یکی از دوستانش جایی رفته بودند و در آنجا یک کارگردان سرشناس رو دیده بودند و آن کارگردان از استاد ما پرسیده بود چه فیلم هایی دوست داری و ایشون گفته بودند فیلم های طنز . و کارگردان دوباره پرسیده بود یکی دوتاشون رو مثال بزن و ایشون هم یکی دو تا از فیلم های م. م را مثال زده بود. کارگردان هم کلی ناراحت می شه و چند تا کارگردان معروف با آثارشون که در جهان مطرح است مثال می زنه  و می گه همین چیزها رو مردم نگاه می کنند که سلیقه و دیدشون اینقدر اومده پایین و دید خودشون رو محدود کرده اند و آثار متوسط ویا حتی ضعیف رو خیلی قوی و نامبر وان می دونند!

* البته چیزی که دربالا گفتم نقل قول دقیق نبود و چیزهایی زیاد و چیزهایی کم داشت. قضیه از چیزی که در بالا گفتم جدی تر بود که روی من تاثیر گذاشت ولی چیزی که تو بالا گفتم تصویر ذهنی است که تو ذهنم باقی مانده.

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

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

در حالی که سازندگان خیلی از ویدیو های آموزشی و نویسندگان سایت ها خودشون یک درکی از چیزهایی که آن ها نوشته اند کرده اند و داده ی دست دو و یا بیشتر را در اخیار شما قرار داده اند.

نمی گوییم آن سایت ها و فیلم های آموزشی بد است ولی به نظر من آن ها وقتی مناسب اند که مفاهیم درک شده باشند و برای دیدن مثال های بیشتر یا یادگرفتن نکته ای بیشتر و یا در صورت نفهمیدن چیزی از آن ها برای یادگیری استفاده کرد، مناسب اند.

البته یکی از راه های خیلی خوب برای قوی شدن در برنامه نویسی مطالعه کد دیگران و گفت و گو در مورد یک کد است.

همین طور شدیدا توسعه می کنم تا جای ممکن از کتاب های فارسی استفاده نکنید به این دلیل ها: تعداد بسیار زیادی از این کتاب ها فقط برای کسب درآمد نوشته شده اند و نه بیشتر.  خودم چند کتاب در بازار بررسی کرده ام بیشتر آن ها هرچیزی را که نفهمیده اند ترجمه نکرده اند! خیلی از آن ها ترجمه ای ضعیف دارند در حد مترجم گوگل. بیشترشون فقط خیلی ساده گفته اند فلان دستور فلان کار را می کند و هیچ چیز بیشتری نگفته اند.مطالبشان به روز نیست مثلا کتاب های سی پلاس فارسی سی پلاس پلاسی را آموزش می دهد که در خارج اگر به کسی بگویید فکر می کنند شما از بیست سال پیش با ماشین زمان عبور کرده اید و به زمان حال آمده اید! تمرین و پروژه های مناسبی ندارند. خیلی از مفاهیم رو اشتباه توضیح داده اند! و …. (تا خود صبح می تونم دلیل بیارم ، اگر دلیل بهتری دارید در کامنت ها بگویید 🙂  )

و مهم تر از همه توی دنیای کامپیوتر ما کجای کار هستیم و چه چیزی تولید کرده ایم که می آییم در مورد آن کتاب می نویسیم ؟!!

البته تعداد اندکی کتاب فارسی تقریبا خوب هم هست که نویسنده هر چیزی رو فهمیده بیان کرده و خودش هم اینو گفته و بر خلاف خیلی از کتاب ها یک کار ناقص ارایه نداده اند ولی باز به کتاب های خارجی خوب نمی رسند.

به طور مثال در پست “کتاب آموزش سی پلاس پلاس ++C” یک سری کتاب خوب در مورد سی پلاس پلاس معرفی کرده ام.

معمولا کتاب های خوب را می توانید با سوال پرسیدن در فروم های برنامه نویسی مرتبط و سرچ در اینترنت بیابید.

 

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

۷ دیدگاه

  • آقای دلیرانی هرچند به خاطر مشغله ای که دارین ایمیلمو جواب ندادین:)
    ولی واقعا خدا خیرتون بده خیلی حرف هاتون دقیق و درسته. من دقیقا همینا رو سعی می کنم بکنم تو مغز بعضی از دوستای عجولم که دنبال این دوره های پرطمطراق و البته بی کیفیتن ولی توی گوششون نمی ره که نمی ره. تازه به نصیحت منم بنا میذارن!:)) آخرشم مشکل می خورن میان پیش خودم (ریا شد!) :/
    یکی از چیزای خوبی که ما تو ایران کم داشتیم و الانم تا حدی داریم وب سایت خوبی مثل وب سایت فعلی شماست. تشکر می کنم. البته وب سایتتون از نظر ظاهر حرفه ای داشتن ضعیفه و بیشتر شبیه یک وبلاگ می مونه ولی باز هم جای بسی تشکر داره.
    ضمنا کتاب های معرفی شده تون قطعا خیلی به من کمک کرده. ولی خواهش می کنم درباره ی کتاب های “جانبی” که باید برای برنامه نویس خوب شدن مطالعه کرد هم مطلب بنویسید. مثلا الگوریتم بلمن فورد که گذاشتید یک چیز خیلی کاربردی می تونه باشه، خب منی که آگاهی ندارم، نمی دونم شما قبلش چی خوندید که می تونید اینطوری یک مساله ی real-world رو برنامه بزنید. من کدشو می فهمم ولی نمی دونم مثلا آیا باید برم گراف بخونم؟ آیا باید برم هندسه بخونم؟ چی باید بخونم؟ ما تو ایران مشاور خوب و محفل های مشورتی خوب هم برای بحث های علمی کم داریم(از تهران خبر ندارم، شاید اونجا استثنا باشه).

    • سلام مرسی. جواب ایمیلت رو دادم. مرسی از نظر خوبت. راستش اینجا برای دل خودم و اوقات بیکاری می نویسم و همین بلاگ بودنش رو دوست دارم. متاسفانه این روزها وقت نمی کنم زیاد اینجا باشم.
      از این به بعد پست نوشتم منبع های بیشتری معرفی می کنم

  • عالی
    البته منم ترجیح میدم نظر و تجربیات خودم رو بگم شاید کمک کنه!
    اگر می خواید زبون برنامه نویسی جدیدی رو یاد بگیرید استفاده کردن از سایت های اینتراکتیو مثل codecademy.com و w3schools.com خیلی خیلی کمک می کنه. این سایت ها محیط برنامه نویسی رو برای شما فراهم می کنند و شما میرید و دستورالعمل هارو می خونید و کد میزنید. اگر با کتاب یک زبان برنامه نویسی رو یاد گرفته باشید و برای یاد گرفتن دومی برید سراغ این سایت ها حتما متوجه میشید که چقدر روند یادگیری ساده تر و لذت بخش تر هست. اگر هم زبانی که می خواید یاد بگیرید توی این سایت ها نیست و مجبورید از روی کتاب یاد بگیرید بهتون پیشنهاد می کنم کتاب حتما نوشته ی یکی از توسعه دهندگان اون زبان و ترجیحا به زبان اصلی باشه و به نظر من مهم تر از این نکته اینه که کتاب PDF و روی کامپیوترتون باشه! یاد گرفتن یک زبان برنامه نویسی از روی کتاب بعد از مدتی به شدت کسل کننده میشه. این مورد حتی در مورد کتاب های PDF روی کامپیوترم صدق میکنه ولی تاثیرش خیلی کمتره.
    موفق باشید.

  • و یک سوال دیگه. درباره زبان rust اطلاعاتی دارید؟

  • درود
    من تازه با سایتتون آشنا شدم.(از طریق سایت جادی)
    خودم چیزی از برنامه نویسی نمیدونم و در گیر و دار اینم که یاد بگیرم یا نه. این مطلبی که نوشتین واقعا یکی از نکات خیلی مهم هست، نه فقط در برنامه نویسی بلکه در کل سیستم آموزشی ما هم صدق میکنه.
    منابع قدیمی ، منابع ناکارآمد فارسی زبان و …
    ولی فک کنم این درباره منابع انگلیسی زبان طور دیگری باشه، منظورم اینه که مثلا ویدئوهای آموزشی وبسایت های خوب مثل لیندا و یا پلورال سایت و thenewboston و یا حتی آموزش های رایگان دانشگاه MIT و کلی سایت آموزشی دیگه که چه ویدئو میزارن و یا چه متن و بطور حرفه ای به این کار میپردازن رو نمیشه گفت غیرکارآمد.
    وصد البته کتاب های عالی مطمئنا نقش بسیار مهمی دارن در یادگیری و پیدا کردن دید عمقی و همه جانبه در این زمینه.
    مثلا چندوقت پیش تو یه سایت یا بلاگی انگلیسی زبان خونده بودم که نویسنده داشت میگفت که هنوز هم کتاب قدرتمند تراز آموزش های آنلاین میتونه باشه و میشه گفت که با توجه به زیاد شدن آموزش های آنلاین اگه کسی امروزه چند تا کتاب بخونه راحت میتونه بسیار بیشتر پیشرفت کنه نسبت به عده ای که فقط با آموزش های کم عمق آموزش داده میشن. (حالا اینا خودشون انگلیسی زبانن اینو میگن وای به حال ما که فارسی زبانیم و آموزشامون هم ناکارآمد. چه کتاب چه ویدئو)
    شاید بیربط باشه .ولی یه کتابی رو چندروز پیش داشتم میخوندم به اسم “کلید موفقیت خود در رشته کامپیوتر را فشار دهید”
    کتاب خیلی جالبیه درباره کسانی که میخوان برن رشته کامپیوتر تو دانشگاه(حالا هر زیر شاخه ایش) و به این میپردازه که آیا اصلا باید رفت به این رشته و آیا اصلا بدرد این رشته میخوریم یا نه و اینکه چه مشکلاتی وجود داره در این راه و …
    یه قسمتیش یه اشاره خیلی جالبی به منابع درسی در دانشگاه ها تو ایران میکنه و میگه که حتی در بهترین دانشگاه های داخل بعضا از منابع درسی در رشته کامپیوتر (کل رشته ها همینه البته) استفاده میشه که مال سال ۱۹۸۰ میلادی هست!!! و آیا علوم کامپیوتر از آن زمان تاکنون تغییری نکرده؟؟

    • فرهاد دلیرانی

      درود ،

      با نظرتون خوبتون موافقم – ولی بیشتر ویدیو های خوب خارجی هم یک رفرنس کتاب هم معرفی می کنند . خودم وقتی کتاب می خونم مرتب فکر می کنم و می بینم این به قبلی چه ربطی داشت برمی گردم نگاه می کنم و … . همین کتاب به خوبی وارد جزییات شده و فیلم ها به سختی می تونند این کار بکنند ، یک جا می خوندم نوشته بود یادگیری مغز خیلی بیشتر و متمرکز تره وقتی از روی کتاب مطالعه انجام می شود یک سری مطالب روانشناسی بود که متوجه نشدم و متاسفانه لینک مطلب هم ندارم که بهش اشاره کنم – ولی ویدیوهای آموزشی که گفتید برای آشنایی مقدماتی و آنا شدن با بحث خیلی خوب هستند و خودم هم استفاده کرده ام مثلا فیلم آموزش ریاضی ام آی تی دیدم بعد که رفتم کتاب خواندم خیلی خیلی آسان تر بود و با مفاهیم اولیه آشنا بودم و می دونستم چه چیز قراره اتفاق بیافته که خیلی باعث صرفه جویی در وقتم شد.

      در مورد قسمت دوم نظرتان هم خیلی جای بحث است که می شه تو دو بخش مورد بررسی قرار داد

      ۱- خیلی از مفاهیم پایه کامپیوتر ثابت مونده ولی
      یک ) این مفاهیم درست درس داده نمی شود. [یک علتش سطح پایین بیشتر دانشجو هاست یکی هم سطح پایین بعضی از استاد ها و مهم ترین علت هم عدم برنامه ریزی برای دانشجو]
      دو ) کاربردی از این مفاهیم یاد داده نمی شود.

      بیشتر دانشجو ها که وارد می شوند وقتی خارج می شوند هیچ فرقی ندارند (البته این مورد با توجه به دانشگاه های مختلف متفاوته) – یک تحقیقی توی یکی از دانشگاه های خوب ایران انجام داده بودند که نشان می داد ۹۰ درصد دانشجویان خروجی اون دانشگاه در رشته ی های مهندسی فاقد هر گونه مهارت هستند!

      ۲ – خیلی از چیز ها هم تغییر کرده اند

      مثل انواع زبان های برنامه نویسی الان سی پلاس پلاسی که تو دانشگاه ها درس می دهند مربوط به استاندارد ۱۹۹۸ یا شاید هم ۱۹۸۹ است ! الان دارند سی پلاس ۲۰۱۷ را استاندارد می کنند ! یعنی چیزی که درس می دهند به هیج وجه درد نمی خوره – من تو بعضی از دانشگاه دیده ام که سی پلاس روی توربو سی پلاس درس می دهند و همه با آن کار می کنند!

      ولی اون هایی که می خوان یادبگیرن چاره ای ندارند با کلی انرژی اضافه به هر طریقی شده یاد می گیرند.

نظر خود را بنویسید.

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *