مازیار امیری کاربر فرادرس از تجربه یادگیری برنامه نویسی اندروید با آموزش های فرادرس می گوید


«چگونه برنامهنویسی اندروید را شروع کنیم؟» این پرسشی اساسی است که مازیار امیری، کاربر «فرادرس» تجربه یادگیری خود را بر محور آن استوار کرده است. ماجراهایی که مازیار امیری برای یادگیری دروس دانشگاهیاش پشت سر گذاشته، آمیخته با ترس از یاد نگرفتن صحیح زبانهای برنامهنویسی و دروسی است که در دانشگاه به او آموزش داده میشده.
با همه این احوال، آن نگرانیها سبب نشده تا از تلاش کردن برای یادگیری دست بردارد. بلکه به انگیزهای برای آموختنِ هر چه بیشتر زبانهای مختلف برنامهنویسی تبدیل شده است. او در متن تجربه یادگیریاش به خوبی جزئیات رخدادها و احساسات خود را در مواجهه با آنها توصیف کرده است.
در میانه مسیر تحصیلیاش یک اتفاق، منجر به جاماندنِ او از کلاسهای درسی به نام «مباحث ویژه» شده است. نقطه عطف ماجرا همینجاست. جایی که مازیار امیری در گیر ودار حدف شدن یکی از دروسش، هنگاهی که درباره برنامهنویسی اندروید چیزی نمیدانسته، تحویل پروژهای را میپذیرد که باور نداشته بتواند آن را به سرانجام برساند.
او تجربیات خود از تلاش برای رسیدن به مقصد را برای دنبالکنندگان خود در اینستاگرام به اشتراک گذاشته و همچنین در جشنواره تجربه یادگیری هم شرکت کرده است. آنچه در ادامه میخوانید بخشی از فراز و نشیب راهی است که یک دانشجوی علاقهمند به رشته کامپیوتر با گرایش نرمافزار از سر گذرانده است:
مازیار امیری، کاربر «فرادرس» قبل از هرچیز، مرز میان علاقهمندی و رشتهای که به ناچار آن را برگزیده بود، مشخص کرده. او تجربه یادگیری خود را اینگونه آغاز کرده:
ماجرا از اینجا شروع شد که من در مقطع هنرستان رشته درسی برق را انتخاب کردم. اما هیچ علاقهای به این رشته نداشتم. همین هم باعث میشد تا مطالب درسی مهم و کاربردی را متوجه نشوم.
این تازه آغاز ماجراست. چون زمانی که کازیار امیری از عدم علاقه خود به اطرافیان گلایه میکرده، اغلب او را ناامیدتر میکردهاند. او از رشته کامپیوتر به عنوان رشته مورد علاقهاش نام میبرده و پند و اندرز سایرین او را از تغییر رشته میترسانده است. نمونه جملاتی که در گوش او زمزمه شده اینها بودهاند:
رشته کامپیوتر سختتر از این حرفهاست. محال است بتوانی کامپیوتر یاد بگیری. بعد از آن، فکر کارش را کردهای؟ میدانی برای کسانی که رشته کامپیوتر خواندهاند، شغل نیست؟
بعد از دو سال تحصیل در هنرستان و تلاشهای نافرجام مازیار امیری در این مدت برای تغییر رشته از برق به کامپیوتر، او در دانشگاه پذیرفته میشود. اولین نکتهای که در آن لحظات با خود مرور کرده، این بوده که به هیچ وجه نمیتواند تحصیل در رشته برق را تحمل کند. همین قطعیت، مسیر تحصیل او را تغییر میدهد.
ورود مازیار امیری به دانشگاه با رشته کامپیوتر گرایش نرمافزار آغاز میشود. رضایتی که او از انتخاب این رشته در وجود خود حس کرده چیزی شبیه به تولد دوباره است. تشبیهی که مازیار امیری برای آن لحظه به کار برده، درست همین اصطلاح را در خود جای داده، تولدی دوباره.
او در متن تجربه یادگیریاش از دوران خوش تحصیل در دانشگاه گفته. مثلا نوشته: ترمهای اول دانشگاه به من خیلی خوش گذشت چون به دلیل علاقهام مطالب درسی را به راحتی متوجه میشدم. او از این یاد کرده که پدرش در مقطع دبستان به او کار کردن با «اکسل» را آموزش داده بود.
همین موضوع باعث میشود که مازیار امیری بیخبر از برگزاری یک امتحان در دانشگاه، سربلند از آن بیرون بیاید و نمره خوبی کسب کند. بعدتر اضافه کرده: اگر مفهومی در کودکی به انسان آموزش داده شود، آن را خیلی بهتر از زمانی که بزرگسال است یاد میگیرد. با این حال، او فراموش نکرده که در همین وضعیت یک استرس شدید همراهش بوده، ترس از اینکه برخی مطالب دانشگاهی را درست یاد نگیرد.
مثلا یادگیری برنامهنویسی به زبان «جاوا» یا «سیشارپ» که به ترمهای بالاتر موکول شده بوده، این ترس را در مازیار امیری شدیدتر میکرده. او به یاد میآورد که در ترم اول, درسی با نام سیستم عامل داشتهاند. این درس طبق گفته مازیار امیری برای ترم اولیها حکم برنامهنویسی را داشته و اغلب دانشجویان از آن وحشت داشتهاند.
اما او این درس را پاس کرده و توانسته درس برنامهسازی پیشرفته یا برنامهنویسی به زبان ++C را بردارد. برنامهسازی پیشرفته برایش قدری سخت به نظر آمده، با این حال آن را پاس کرده و در ترم بعد برنامهنویسی به زبان «سیشارپ» را آموخته است. اما حسی از درون به مازیار امیری تلنگر میزده است:
یک نفر باید باشد که همه چیز را به صورت عمقی به تو یاد بدهد تا بتوانی بر این مباحث مسلط شوی و به یک برنامهنویس موفق تبدیل شوی.
او با خود اندیشیده که بهتر است به صورت مجازی هم آموزش ببیند. به گفته خودش در ترم چهارم، سنگینترین درس برنامهنویسی را پاس کرده درحالیکه تعداد زیادی از دانشجویان از آن درس نمره قبولی نگرفتند. اما این موفقیت باز هم نتوانسته آن صدای درونی را که به یادگیری بیشتر فرا میخوانده، در او خاموش کند.
مازیار امیری نوشته: با خودم فکر میکردم هنوز هم آنطور که لازم است برنامهنویسی را یاد نگرفتهام. این اتفاقات و افکار با شیوع بیماری کووید19 همزمان شده بود. تعطیلی کلاسهای حضوری باعث شده بود که دانشجویان وقت بیشتری در اختیار داشته باشند. با آنلاین شدنِ آموزشهای دانشگاه، فکری به ذهن مازیار امیری میرسد.
اینکه برای یادگیریِ بهتر از فرصتی که در اختیار دارد، بیشتر استفاده کند و برنامهنویسی را به صورت مجازی هم آموزش ببیند. بعد از مدتی جستجو در «گوگل» برای یافتن آموزش برنامهنویسی به زبانهای مختلف، او با آموزش برنامهنویسی «سیشارپ» برخورد میکند. یافتن آموزشی که به صورت رایگان در اختیار کاربران قرار گرفته، احساس شادی در او ایجاد میکند.
مازیار امیری آن آموزش رایگان را دانلود میکند و با دقت زیاد مشغول دیدنِ میشود. او در اینجای متن نوشته:
بعد از هر جلسه آموزش «سیشارپ»، ویدئو را میبستم و مطالبِ تدریس شده را مو به مو تمرین میکردم. این کار را برای این انجام میدادم که تا حد ممکن مسایل را بدون تقلب کردن یاد بگیرم. روزهای اول فکر میکردم هیچوقت برنامهنویسی را یاد نمیگیرم چون سعی میکردم مطالب را حفظ کنم.
صحبت استادانِ مازیار امیری از خاطر او نرفته. او در این مورد نوشته است:
اساتید برنامهنویسی درست میگفتند. اگر شما بخواهید برنامهنویسی را حفظ کنید با سختترین درس ممکن مواجه خواهید شد. از آنجا که کدها و دستورات در برنامهنویسی، مخصوصا در برنامهنویسی زبانهای سطح پایین خیلی زیاد است حافظه انسان نمیتواند آنها را به سرعت به خاطر بسپرد. از طرفی مغز انسان هم تا وقتی کاربرد مطلبی را نداند، آن را در حافظهاش ذخیره نمیکند.
با وجود تلاش بیوقفه مازیار امیری برای یادگیری بیشتر، همواره حسی غریب او را از یاد نگرفتنِ صحیح ناامید میکرده. این در حالی بوده که او تجربیات خوبی در زمینه یادگیری برخی زبانهای برنامهنویسی داشته است. پیشرفت در برنامهنویسی به زبان «سیشارپ» یکی از همین موارد بوده است.

همچنان که ملغمهای از حس ناامیدی و پشتکار برای یادگیری را در دوره کاردانی همراه خود داشته، به آینده نزدیک هم میاندیشیده. رشته کامپیوتر گرایش نرمافزار را میتوان تا مقطع کارشناسی ادامه داد. فکری که ذهن مازیار امیری را در دوره کاردانیِ این رشته درگیر میکرده، ورود به مقطع کارشناسی در همین رشته بوده است. در نهایت هم دوره کاردانی را با معدل بالا به اتمام میرساند و با ثبتنام در دوره کارشناسی قدم بعدی خود را برمیدارد.
توصیفی که از دوره کارشناسی در متن تجربه یادگیری او آمده، «جدی» بودن این مقطع است. مازیار امیری نوشته: جدیتر بودن مقطع کارشناسی باعث تشدید استرسها در من شد. در ترم اول دوره کارشناسی، برنامهنویسی به زبان «جاوا» را با نمره 15 گذراندم درحالیکه از خودم انتظار نمره 20 داشتم. او اضافه میکند: حتی اگر 20 هم میگرفتم از خودم راضی نبودم چون همه چیز را حفظ کرده بودم و هر لحظه ممکن بود همه چیز را فراموش کنم.
او تصمیم میگیرد در ترم بعد درس «مباحث ویژه» را بردارد. در همان برهه، دانشگاهِ محل تحصیلِ مازیار امیری تصمیم میگیرد برای اولین بار برای درس «مباحث ویژه»، «برنامهنویسی اندروید» را آموزش بدهد. مازیار امیری با خود گفته امکان ندارد این درس را پاس کنم. چون برنامهنویسی اندروید بسیار پرحاشیه است. از طرفی دانلود «اندروید استودیو» هم دردسر زیادی دارد.
از سوی دیگر سیستم موردنیاز برای درس «اندروید استودیو» سیستم بالایی است. علاوه بر اینکه این نرمافزار اصلا بهینه نیست و منابع سیستم را بسیار درگیر میکند. در همان ترم و در گیر و دار این افکار، برای مازیار امیری مشکلی پیش میآید و نمیتواند در کلاس درس آنلاین حاضر شود. در پایان ترم او تلاش میکند به صورت آنلاین در برخی از کلاسهای این درس شرکت کند.
استاد در یکی از جلسات به او یادآوری میکند که درس او به دلیل غیبتهای زیادی که داشته، حذف شده و نمیتواند در امتحان پایان ترم شرکت کند. او برای استاد خود توضیح میدهد که درگیر مشکلاتی بوده و به همین علت نتوانسته در کلاسها حضور پیدا کند. در عوض درخواست میکند استاد از او پروژهای بپذیرد.
استادِ مازیار امیری بعد از شنیدن اتفاقاتی که مازیار امیری از سر گذرانده با درخواست او موافقت میکند. اما برای دانشجوی خود یک شرط میگذارد. میگوید: شرط آن است که بعد از تحویل پروژه، مواردی را از تو سوال میکنم که از داخل همان پروژه تحویل داده شده یافتهام. تو باید به سوالات مربوط به پروژهات پاسخ بدهی. با موافقت دانشجو و استاد، قرار بر تحویل پروژه نهایی میشود.
در اینجا مازیار امیری از مشکلاتی که بر سر راه او ایجاد شدهاند میگوید. مهمترین مشکل این بوده که با ضعفی که در برنامهنویسی داشته و همینطور سیستمی با سرعت بسیار پایین، چه میتوان کرد؟ مازیار امیری در همین زمان، متوجه تخفیفهای سایت «فرادرس» میشود. او آموزش برنامهنویسی اندروید با تدریس محمد مهدی علیزاده را در همان دوره تخفیف تهیه میکند.
مازیار امیری نوشته قبل از این خرید، تعریف «فرادرس» را زیاد شنیده بودم و نسبت به آن حس بسیار خوبی داشتم. سپس توضیح داده که با خرید این آموزش و دیدنِ آن ظرف دو هفته به این درس مسلط شده است. در توصیف آموزش اینطور نوشته:
آموزشش طوری بود که آقای علیزاده نه آنقدر شاخ و برگ میداد که حوصله مخاطب سر برود و نه آنقدر خلاصه میگفت که مطالب موردنیاز حذف شود. همه چیز در متعادلترین حالت ممکن بود و طی آموزش، تنها مطالب مهم و کاربردی ذکر میشد.
او لینک آموزش را برای مخاطبان خود زیر متن قرار داده است.
آموزش برنامهنویسی اندروید- مقدماتی توسط محمد مهدی علیزاده، مدرس دورههای برنامهنویسی به زبانهای مختلف و مدیریت کسب و کار در 19 درس آموزش داده شده. آنطور که سرفصلهای آموزشی نشان میدهند این آموزش طی این 19 درس به تنظیمات اولیه برنامه اندروید استودیو، آشنایی با چینش عناصر در اندروید و TextView، آشنایی با رنگها و ابزار Button، آشنایی با چرخه حیات اکتیویتی در اندروید میپردازد.
منوها در اندروید، آشنایی با EditText در اندروید، آشنایی با چینشهای مختلف عناصر در اندروید، طراحی یک فرم برای ورود اطلاعات، آشنایی با Intent، آشنایی با GridLayout و ImageViewدر اندروید، پروژه ساخت بازی Connect3 در اندروید، صوت و تصویر در اندروید، دیالوگ در اندروید، لیستها در اندروید، لیست اختصاصی، آشنایی کامل با Toast و پروژه شخصیسازی Toast در اندروید، ابزار RadioButton، آشنایی با RatingBar در اندروید و آشنایی با Spinner ساده و طراحی Spinner اختصاصی در اندورید باقی آموزش را تشکیل میدهند.
آنطور که عنوان شده پیشنیاز این آموزش، آموزش برنامهنویسی «جاوا» Java است که دوره آموزشی آن در وبسایت «فرادرس» نیز موجود است. این آموزش توسط دکتر مصطفی کلامی هریس، دکتری تخصصی مهندسی برق- کنترل در «فرادرس» آموزش داده شده و پیشنیاز آن هم مجموعه آموزشهای اصول و مبانی برنامهنویسی است که به صورت رایگان در اختیار مخاطبان قرار دارد.
مازیار امیری در این قسمت از متن تجربه یادگیری خود از رخدادهای ناخوشایندی که در مسیرش قرار گرفته، گلهای نکرده. بلکه اظهار خوشحالی کرده که چنین اتفاقاتی را از سر گذرانده است. او در توضیح برای مخاطبان نوشته:
اگر این اتفاقات برای من نمیافتاد هیچگاه با این آموزش خوب و روان آشنا نمیشدم. سپس چند آموزش تاثیرگذار را به مخاطبان معرفی کرده است. در ادامه نوشته که آموزش رایگان برنامهنویسی «سیشارپ» از سایتهای آموزشی دیگر چنگی به دل نمیزد به طوری که نمیتوانستم بر مطالب مهم و ضروری برنامهنویسی مسلط شوم.
او که گهگاه به وبسایت «فرادرس» سر میزده، در متن تجربه یادگیری خود نوشته:
سایت «فرادرس» مرا امیدوار کرد. من در این سایت با اصول و مبانی برنامهنویسی آشنا شدم که جزو آموزشهای رایگان «فرادرس» بود. یعنی بدون پرداخت هیچ مبلغی در دسترس قرار میگرفت. فقط نیاز بود ثبتنام کنید.
اشاره او به دوره آموزشی اصول و مبانی برنامهنویسی است که توسط دکتر مصطفی کلامی هریس، دکتری تخصصی مهندسی برق-کنترل آموزش داده شده. مدرس در این دوره به مباحث مشترکی که غالبا در چند جلسه ابتدایی هر زبان برنامهنویسی مطرح میشود، میپردازد. آشنایی با مفاهیم اساسی برنامهنویسی و ساختار یک زبان برنامهنویسی از اهدافی است که این آموزش دنبال میکند.
همچنین در نظر دارد تا مخاطب بداند مولفههای یک برنامه و زبان برنامهنویسی چه چیزهایی هستند. مدرس در ابتدای آموزش اشاره میکند اگر مایل به یادگیری هر زبان برنامهنویسی باشید، این فیلم به شما کمک میکند با مفاهیم هر زبان برنامهنویسی ارتباط برقرار کنید. او تاکید میکند اگر در برنامهنویسی مبتدی هستید، این فیلم آموزشی را ببینید.
این آموزش به عنوان دریچه ورود به هر زبان برنامهنویسی تهیه شده است. چرا برنامهنویسی و چرا برنامه؟ مدرس توضیح میدهد کامپیوترها اجتماعی از سختافزار و نرمافزار هستند. مثل جسم و روح. اگر سختلفزار و نرمافزار در کنار هم باشند، ما یک کامپیوتر خواهیم داشت. او سپس درباره خصوصیات کامپیوتر صحبت میکند و از دقت، سرعت، عدم فراموشی و تکرار توسط کامپیوترها میگوید، دلایلی که باعث شده انسان از کامپیوتر استفاده کند.
دکتر کلامی هریس اضافه میکند: از طرفی کامپیوتر نمیتواند خلاق باشد این چیزی است که نیاز به هوش انسانی دارد. هرچند تحقیقاتی تلاش میکنند هوش انسانی را شبیهسازی کنند اما این کار طول میکشد. مدرس با توضیح درباره این مطلب از سیستم عامل و برنامههای کاربردی نرمافزار میگوید و اینکه گاهی نیاز داریم برنامههای کاربردی را خودمان پیادهسازی کنیم.
به گفته مدرس، بخشی از برنامههای کاربردی را از بیرون تهیه میکنیم. اما این امکان هم وجود دارد که برنامههایی بنویسیم تا توسط کامپیوتر اجرا شود. پس از توضیح درباره گستردگی تعریف کامپیوتر، مدرس درباره فرایند تولید و تعریف برنامهنویسی میگوید. طبق این تعریف، برنامهنویسی عبارت است از اینکه ایده ذهنی و نیازمان را به روشی به کامپیوتر منتقل کنیم و کامپیوتر آن را برای ما اجرا کند.
این دانش، کامپیوتر را کارآمدتر میکند. برای انجام برنامهنویسی باید بتوانیم با کامپیوتر صحبت کنیم. اما کامپیوتر هیچ زبانی غیر از زبان خودشان را متوجه نمیشوند. به این زبان، زبانِ ماشین گفته میشود. زبان ماشین کاملا وابسته به سختافزار است. ما به عنوان انسان باید زبان ماشین را یاد بگیریم و بدانیم زبانِ ماشین این کامپیوتر چیست و با کامپیوترهای دیگر چه تفاوتی دارد.
طی این آموزش، ضمن مرور تاریخچه کامپیوتر، درباره زبان «اسمبلی»، «بیسیک»، بان «C»، زبان برنامهنویسی «++C»، زبان «Objective C»، زبان «سیشارپ» که از مدرنترین زبانهای برنامهنویسی است، صحبت میشود. همچنین زبان جاوا و جاوا اسکریپت به عنوان خویشاوند نزدیک زبان برنامهنویسی جاوا معرفی میشود.
مدرس میگوید: از زبانهای برنامهنویسی که در حوزه وب استفاده میشود میتوانیم به PHP اشاره کنیم که پراستفادهترین زبان برنامهنویسی در حوزه پیادهسازی برنامههای تحت وب است. همانطور که ++C پراستفادهترین زبان برنامهنویسی در پیادهسازی انواع نرمافزارها بود. جاوا هم زبانی است که برنامههایش در بیشترین تعداد Device در حال اجرا هستند.
به گفته مدرس این دوره آموزشی بسیاری از تلویزیونها، ماشینهای رختشویی و دستگاههای خودپرداز و کارتخوان از جاوا استفاده میکنند. با اختراع سیستمعامل اندورید که پراستفادهترین سیستمعامل برای موبایلهاست، جاوا نقش بینظیری در حوزه برنامهنویسی دارد. برخی زبانهای برنامهنویسی حالت Scientific دارند مانند «پایتون» که قابلیتهای مختلف دارد.
علاوه بر این زبان برنامهنویسی متلب و R را داریم که آموزش آنها روی وبسایت «فرادرس» موجود است. سه زبان برنامهنویسی اخیر بیشتر حالت Scientific دارند. البته به این معنا نیست که با جاوا نمیتوان برنامه علمی و تکنیکال نوشت. اما پایتون و متلب و R بیشتر در این زمینه کارایی دارند.
مدرس ضمن اشاره به مطلب اخیر اضافه میکند: اگر شخصی زبان برنامهنویسی C را یاد بگیرد، راحتتر میتواند سایر زبانهای برنامهنویسی را بیاموزد. زبانهای برنامهنویسی سطح بالا محدود به آنچه در این آموزش گفته شده، نمیشود. با جستجو در فضای مجازی میتوان تعداد بیشتری از این زبانهای برنامهنویسی را یافت.
اما نوع کار کردن و فلسفه وجودی این زبانها چیست؟ این سوالی است که مدرس مطرح کرده و به آن پاسخ میگوید. ایده و نیاز ما با برنامهنویسی تبدیل به کد منبع تبدیل میشود. طی فرایند ترجمه به یک ترجمهکننده فرستاده میشود و تبدیل به یک برنامه قابل اجرا یا زبان ماشین میشود. فرایندی که طی تبدیل ایده انسان به کد منبع انجام میشود برنامهنویسی نام گرفته است. بیشتر چیزی که ما به عنوان انسان با آن درگیر هستیم در همین بخش است. آنچه کامپیوتر با آن درگیر است بخش دیگری است که در این آموزش به آن اشاره شده است.
فرایند ترجمه برنامهها به دو صورت ترجمه آفلاین و آنلاین انجام میشود. مدرس در مورد این دو صورت ترجمه توضیحات لازم را ارائه کرده است. او در بخش دیگری از آموزش تاکید میکند که هر روز زبانهای برنامهنویسی جدیدتر در حال ابداع هستند و اضافه شدن قابلیتها به زبانهای برنامهنویسی به صورت سریع در حال اتفاق افتادن است. بنابراین ما شاهد رشد در عرصه زبانهای برنامهنویسی هستیم.
توصیه مدرس این دوره آموزشی این است که از بین تمام زبانها زبان برنامهنویسی C را یاد بگیرید. یادگیری این زبان باعث میشود پیشزمینه خوبی درباره برنامهنویسی داشته باشید. البته جاوا اسکریپت هم به عنوان زبانی منعطف برای شروع به برنامهنویسی معرفی میشود. این زبان پیچیدگیهای زبانهای C و ++C را ندارد.
در پایان، مدرس یادآور میشود آموزشهای مرتبط در ادامه به این میپردازند که برنامهها به چه مولفههایی نیاز دارند و زبانهای برنامهنویسی چطور به این نیازها پاسخ دادهاند. این موضوع بحثهای بعدی است.
مازیار امیری نیز در بخش پایانی متن تجربه یادگیریاش علاوه بر اینکه لینک آموزش اصول و مبانی برنامهنویسی را برای مخاطبان گذاشته، توصیهای برای دنبالکنندگان اینستاگرامی خود دارد. مازیار امیری نوشته: با وجود آنکه امکان دانلود کردن آموزشها در سایت «فرادرس» وجود دارد، اما تلاش کنید آموزش را به صورت آنلاین ببینید. چون ویدئوپلیر آموزشها قابلیتهای زیادی در اختیار شما قرار میدهد.
یکی از این قابلیتها این است که شما میتوانید ثانیهای مشخص از ویدئو را بوکمارک کرده و برای همان لحظه یک یادداشت بنویسید. به این ترتیب نکتهبرداری برای شما آسان میشود و سرعت پیشرفت شما هم تا دهها برابر افزایش مییابد. مازیار امیری بعد از دیدن آموزش مجازی به این نتیجه رسیده که مطالب آموزشی «فرادرس» به زبان ساده و روان آموزش داده شدهاند و از شاخ و برگ دادن به آموزشها خودداری شده است.