راهنمای یادگیری خودآموز برنامهنویسی
۲۴ مهر ۱۳۹۹
میخواهید برنامهنویسی یاد بگیرید؟ بسیاری از افراد باتجربه به شما توصیه خواهند کرد که در کلاسهای آموزشی شرکت کنید زیرا آنها از مزیتهایی مثل برنامه درسی ساختار یافته و مربیان باتجربه برخوردار هستند، همچنین با حضور داشتن در جمع افرادی که همراه با شما میخواهند مسیر یادگیری را شروع کنند شبکهسازی مناسبی رخ میدهد اما متاسفانه همه نمیتوانند از پس هزینههای این دورههای آموزشی بربیایید یا شاید زمان کافی برای شرکت در آن را نداشته باشند. خوشبختانه شما محدود نیستید و میتوانید از گزینه جایگزین یعنی یادگیری خودآموز، مسیر یادگیری را آغاز کنید.
اما برای موفقیت در مسیر یادگیری خودآموز برنامهنویسی و رشد سریع از یک توسعهدهنده مبتدی به توسعهدهنده ارشد، باید برخی ویژگیهای مفید کلاسهای آموزشی را در مسیر خود استفاده کنید.
چگونه شروع کنید؟
پنج مرحله وجود دارد که در یادگیری خودآموز میبایست آنها را طی کنید:
- انتخاب یک حرفه
- جمعآوری منابع یادگیری مورد نیاز
- شروع یادگیری
- پیادهسازی و ساخت ایدهها
- شبکهسازی
بیایید مراحل را با جزئیات بیشتری مرور کنیم.
۱) انتخاب یک حرفه
اگر میخواهید موفق شوید، خودتان را به یادگیری حرفه خاصی محدود کنید. یکی از موارد بسیار مهم برای شروع یادگیری خودآموز، انتخاب یک حرفه است و اطمینان ایجاد کنید که چیزی بیشتر از آن به خود تحمیل نمیکنید. این نوع یادگیری، شما را محدود میکند اما فرصتی پیدا میکنید تا بر روی یک مبحث خاص متمرکز شده و سریعتر یادگیری را شروع کنید.
حرفههای موجود در توسعه نرمافزار بسیار متنوع هستند و زمینههای مختلفی وجود دارد. شما میتوانید با دریافت یک طرح کلی از آنچه برنامهنویسی و توسعه نرمافزار را شامل میشود، مسیر را شروع کنید.
بعد از پیدا کردن یک دید کلی از برنامهنویسی و توسعه نرمافزار باید یک زمینه که واقعا شما را هیجان زده میکند، انتخاب کنید. همچنین پاسخ به سوالهای زیر در انتخاب حرفهای خاص به شما کمک میکند.
- امیدوارید با یادگیری برنامهنویسی به چه چیزی دست پیدا کنید؟ آیا میخواهید یک فریلنسر شده و کسب درآمد خود را آغاز کنید؟ یک شغل خوب پیدا کرده یا ایده خود را بسازید؟
- دوست دارید برای چه پلتفرمهایی برنامهنویسی کنید؟ وب (فرانتاند و بکاند)، موبایل (اندروید و iOS)، دسکتاپ، embedded، تجزیه و تحلیل دادهها و …
البته این بدان معنا نیست که بعدا نتوانید زمینههای دیگر را امتحان یا آزمایش کنید، اما باید با یکی از آنها مسیرتان را شروع کنید.
۲) جمعآوری منابع یادگیری مورد نیاز
شما با پیداکردن یک حرفه متناسب با علایق خود، مرحله اول را با موفقیت پشت سر گذاشتهاید. اما در مرحله دوم میبایست لیستی از موضوعها و فناوریهایی که برای یادگیری حرفه مورد نظر خود نیاز است را پیدا کرده و آنها را یادداشت کنید.
هنگام تصمیمگیری برای استفاده از منابع مختلف یادگیری، آنهایی را انتخاب کنید که برای فرایند آموزش، برنامهریزی دقیق داشته و همراه با آموزش، تمرینهای مناسبی در اختیار شما قرار دهند. نکتههای زیر در یافتن منابع آموزشی بهتر به شما کمک میکنند:
- از چه زبانها و فناوریهایی در این حرفه استفاده میشود؟ لیستی از حداقل مواردی که باید برای رسیدن به هدفی که در مرحله قبل انتخاب کردهاید، تهیه کنید. در اینجا تاکید بر حداقل است، فقط به این دلیل که قبل از برداشتن اولین قدم به سوی هدف، نباید منتظر یادگیری همه چیز باشید. در غیر این صورت، میبایست زمان زیادی را منتظر بمانید.
- به چه ابزارهایی نیاز دارید؟ ابزارهای مورد نیازتان را بشناسید و چگونگی استفاده از آنها را یاد بگیرید.
- در بیشتر زمینهها نیاز است که یک ابزار یا زبان را قبل از دیگری یاد بگیرید و فراموش نکنید که همیشه با اصول اولیه مسیرتان را شروع کنید.
اگر سوالهایی دارید که مربوط به حرفهی خاصی میشود، میتوانید از شبکههای اجتماعی مانند Twitter یا Facebook کمک بگیرید و سوالهایتان را از افرادی که در آن زمینه خاص فعالیت میکنند، بپرسید. به سادگی با ارسال یک پیام میتوانید از کمکهای بیدریغ آنها بهره ببرید. نتیجه این کار شما را شگفت زده خواهد کرد زیرا در جامعه فناوری افراد زیادی مایل هستند تا به شما کمک کنند.
۳) شروع یادگیری
اگر شما به دنبال دو خرگوش بدویید، هیچ کدام را نمیگیرد. این مرحله توضیح خاصی نیاز ندارد، شما متوجه شدهاید که برای دستیابی به هدف خود میبایست چه چیزهایی را یاد بگیرید و همچنین منابع مورد نیاز خود را پیدا کردهاید. اکنون وقت آن است که بهطور متوالی آموزشهای مورد نیاز را یاد بگیرید. توجه داشته باشید که این کار را بهصورت همزمان انجام ندهید.
مقاومت
اولین کاری که باید انجام دهید، اختصاص یک زمان خاص برای یادگیری است. در طول برنامه روزانه خود زمان مشخصی را تعیین کرده و آن زمان را به یادگیری بپردازید. هر روز دو ساعت یادگیری مداوم بسیار بهتر از ۱۵ ساعت یادگیری در یک روز از کل ماه است. یکی از موارد مهم در یادگیری، قوام است. اگر میخواهید با یادگیری برنامهنویسی یک شغل پیدا کنید، پس فکر کنید که یادگیری هم بخشی از شغل شماست و جدی باشید.
برای خود هدفی تعیین کنید
همچنین برای یادگیری موثر میبایست اهداف هفتگی تعیین کرده و خود را نسبت به آنها مسئول بدانید. مطالعات نشان داده درصد موفقیت افرادی که آگانه اهداف خود را تعیین میکنند، بیشتر است و با نوشتن آن هدفها میتوانید این درصد را افزایش دهید. میخواهید در پایان ماه چه چیزی را یاد گرفته باشید یا قادر به انجام چه کاری باشید؟ چگونه میتوانید یادگیری ساختار یافتهای ایجاد کنید که بتوانید به آن دست پیدا کنید. تمام این موارد را بنویسید.
متمرکز بمانید
فراموش نکنید که باید بر روی برنامه و منابع یادگیری خود، متمرکز باشید. در حوزهی فناوری همیشه موارد جدیدی برای یادگرفتن بهوجود میآیند، به همین دلیل میبایست تمرکز زیادی داشته باشید، از برنامه خود دست نکشید و بیش از حد به خودتان فشار وارد نکنید. شما اگر یک آموزش را کاملا یاد بگیرید بهتر از چندین آموزش ناقص است.
۴) پیادهسازی و ساخت ایدهها
پشتکار در انجام تمرینها میتواند باعث ایجاد تفاوت میان شما و افراد با استعداد شود.
به عنوان یک توسعهدهنده مبتدی بسیار آسان است که در محیط آموزشی بمانید و یا در همان مرحله گیر کنید. بسیاری افراد در محیط آموزشی گیر میکنند و برای مدت طولانی یک توسعهدهنده مبتدی میمانند. این جایی است که شما بعد از هر آموزش، آموزش دیگری را شروع میکنید و هیچگونه تمرینی برای خود قرار نمیدهید.
ساخت یک پروژه به مرحله یادگیری ابزارهای مورد نیاز آن، ختم نمیشود. شما باید مرتبا به یادگیری و ساخت پروژه ادامه دهید زیرا هرگز آموزشها به پایان نمیرسند. به همین دلیل است که تاکید کردیم که برای انتخاب منابع آموزشی، آنهایی را انتخاب کنید که پروژه محور هستند. حتما برنامهنویسی کنید و صرفا به دیدن آموزشها اکتفا نکنید. اینگونه کم کم درگیر ساختن چیزی میشوید.
یکی از راههای تمرین، این است که در انتهای برنامهنویسی هر ماژول، به ویژگیهایی فکر کنید که میتوانید اضافه کنید. فقط سعی کنید با دانش جدیدی که کسب کردهاید، چیزی بسازید.
لازم نیست خیلی فانتزی باشد. مهمترین نکته این است که حین برنامهنویسی، با خطاها روبرو شوید، بدین ترتیب برای رفع آنها در Google جستجو میکنید و با نحوه دیباگینگ آشنا میشوید، درنهایت درک بیشتری از آنچه که یاد گرفتهاید، پیدا میکنید. با انجام تمرینها، دانش خود را مستحکمتر میکنید و به یاد داشته باشید که یک پروژه تکمیل شده بهتر از چندین آموزش تماشا شده است.
۵) شبکهسازی
شبکهسازی به این معناست که در جمع، آموزش ببینید و در مباحث تیمی فعالیت داشته باشید.
در انجمنهای برنامهنویسی و دیدارها شرکت کنید
انجمنهای برنامهنویسی شما را به چالش میکشند و همزمان به شما الهام میبخشند. شما با افرادی آشنا میشوید که در زمینه خودتان فعالیت میکنند و از مشکلهای یکسانی که برای آنها و شما رخ داده آگاهی پیدا میکنید و به این ترتیب فرصت همکاری و ایجاد دوستی مادامالعمر برای شما بهوجود خواهد آمد.
خودتان را به دیگران معرفی کنید
به یاد داشته باشید که فرصتها به افرادی داده میشود که واجد شرایط باشند و هم دیگران آنها را بشناسند. درمورد خود و آنچه که در حال انجام آن هستید با دیگران صحبت کنید. این باعث میشود تا بیشتر در معرض دید قرار بگیرید و بتوانید فرصتهای بیشتری کسب کنید. برای این کار میتوانید یک حساب GitHub درست کرده و کدهای خود را به آن push و در حساب Twitter خود درمورد آنچه که یاد میگیرید صحبت کنید.
سوال بپرسید
پرسیدن سوالهای جذاب یکی دیگر از راههای معرفی خود به افراد دیگر است. پرسیدن شرم آور نیست. اگر در مسئله خاصی با مشکل روبرو شدهاید، از شبکههای اجتماعی و ارتباطات فیزیکیتان استفاده کنید. به دیگران پیام یا ایمیل بفرستید و اگر جوابی دریافت نکردید به این دلیل بوده که نتوانستهاید درخواست خود را به خوبی بیان کنید.
نکته: بهتر است بهجای سلام و احوالپرسی، سوالهای خود را از قبل آماده کرده و برای آنها بفرستید.
شما باید لیستی از سوالها و چالشهایی که با آنها روبرو هستید را تهیه کنید، مثلا یک نمونه پیام مناسب که میتوانید از آن استفاده کنید:
سلام، من (نام شما) هستم و امیدوارم حال شما خوب باشد. مدتی است که محتوای تولید شده توسط شما را دنبال میکنم و متوجه شدم در زمینه (زمینه مدنظرتان) فعالیت میکنید. من میخواستم (نوع چالشی که با آن روبرو هستید) را درک کنم و به همین دلیل سعی کردم (درج روشهایی که برای حل چالش خود استفاده کردهاید)، آیا شما میتوانید در (آنچه که لازم دارید) کمک کنید؟ متشکرم.
جمعبندی پایانی
امیدوارم این مقاله توانسته باشد در مسیر یادگیری خودآموز به شما کمک کند. فراموش نکنید که برنامهنویسی دشوار است و یادگیری خودآموز میتواند دشوارتر باشد. قطعا روزهای سختی پیش روی خود خواهید داشت اما در بلند مدت، ثبات و پشتکار شما قطعا نتیجه خواهد داد.
منبع: https://www.freecodecamp.org/news/the-self-taught-developers-guide-to-coding