به نام خدا.
سلام.
یه بار برای همیشه میخوام این بار رو از رو دوش خودم بردارم و بر اساس تجربه خودم به این سوال که «چطور برنامه نویسی یاد بگیرم؟» جواب بدم.
خب اول سرتیتر بخش های این مقاله:
فقط قبل شروع ۳ تا نکته:
نمیخوام مقاله رو الکی طولانی کنم. مهمترین چیز تو این مرحله اینه که شما یاد بگیرید چطور مثل یه برنامه نویس فکر کنید.
اکثر افراد بدون گذراندن این مرحله، مستقیم میرن سراغ یادگیری یه زبان مثل Python که خیلی کار اشتباهیه.
در واقع بیشتر افراد میان یه زبان برنامه نویسی رو یاد میگیرن و بعد از یکی ۲ ماه با این سوال کلافه کننده روبرو میشن که «خوب حالا که زبان فلان رو یاد گرفتم، الان چطور ایده هایی که تو ذهنم دارم رو بسازم؟» و متاسفانه چون نمیدانن چکار کنن، اکثرا برنامه نویسی رو ول می کنن و یا اینکه خیلی ناامید و سردرگم میشن.
خب دلیل چیه؟ و راه حل چیه؟
دلیل اینه که پایه قوی ندارن، یعنی اینکه یادنگرفتن مثل یه برنامه نویس فکر کنن.
راه حل هم اینه که . . . درست گفتید! اینکه بیان پایه قوی بسازن.
خب این پایه قوی رو چطور بدست بیاریم؟
راهش از دید من یه کتابه به اسم How to Design Programs ، ولی ۲ تا دوره ویدیویی تو سایت edX هستن که همین کتاب رو آموزش میدن و برای این هدف فوق العاده هستن. کاملا هم رایگان هستن:
این ۲ تا دوره رو باید به نوبت بگذرانید، اول Simple Data و بعد هم Complex Data. این دو تا دوره چنان بیس قوی برای شما میسازن که تا آخر عمر ممنونشان خواهید بود.
هرکدام از این دوره ها باید حدود ۲ یا ۳ ماه طول بکشن، پس لاکپشت باشید!
دارکوب یعنی چه؟ یعنی اینکه وقتی به سختی رسیدی جا نزن و ادامه بده. اینقد ادامه بده که به هدف برسی.
خشت دوم یعنی اینکه شما اون ۲ تا دوره رو پشت سر گذاشتین و تازه الان آماده این هستید که یه زبان برنامه نویسی مثل Python یا Java یا یکی از LISP ها یا هر زبان دیگه ای رو یاد بگیرید!
راجب این مرحله همه جا مطلب زیاده و نیاز به من نیست تقریباً.
یعنی چه؟ یعنی اینکه باز هم وقتی به سختی رسیدی جا نزن و ادامه بده. بازم اینقد ادامه بده که به هدف برسی.
حالا بعد از اینکه نزدیک حدود یک سال گذشت و یکم دستتان روان شد و مهارت کسب کردید، بعدش دیگه باید برین سراغ مباحثی مثل مباحث زیر، که خیلی خیلی مهم هستن:
خب احتمالا برای رسیدن به این مرحله یه ۲ یا ۳ سالی زحمت کشیدید.
طول میکشه ولی آخرش قشنگه!
ولی البته برنامه نویسی و کلاً علوم کامپیوتر آخر و ته نداره. شما همیشه در حال یادگیری خواهید بود.
ولی اهمیتِ داشتنِ یه پایه قوی تو اینه که باعث میشه تو پیشرفت و یادگیری چیزای جدید دچار مشکل چندانی نشید.
از این به بعدِ کار برای شما میشه اینکه یه تخصص برای خودتان انتخاب کنید و توی اون خیلی ماهر بشید. حالا اون تخصص میتانه یکی از اینا باشه:
البته شما دیگه الان یه برنامه نویس خوب هستید که میتانید تو هرکدام از اینا کار کنید، ولی بهتر اینه که آدم یه تخصص داشته باشه و تو اون خیلی ماهر باشه.
معمولا برای آدم هایی که تو یه زمینه ای واقعا متخصص باشن، همیشه کار و موقعیت های خوب و عالی وجود داره.
علاوه بر لاکپشت بودن و دارکوب بودن، یه مفهومی هم تو بدنسازی هست به اسم Progressive Overload که نه تنها تو برنامه نویسی بلکه تو همه جای زندگی معجزه می کنه!
این یعنی چه حالا؟ یعنی اینکه کم کم که رو به جلو داری میری، کم کم سخت ترش هم بکن برای خودت!
یعنی اینکه همینطور که روبه جلو حرکت میکنی، پروژه ها و تمرین هایی هم که انجام میدی سخت تر بشه همیشه. با انجام دادن کار های سخت تره که آدم پیشرفت میکنه.
بعضی مقاله های دیگه من:
یا علی.