یادگیری برنامه نویسی اندروید و پیش نیاز های آن
معمولا افراد زیادی ایده هایی دارند که میخواهند آنها را در قالب نرم افزارهای اندرویدی پیاده سازی کنند. همچنین برخی دیگر از افراد علاقه مند به برنامه نویسی و توسعه اپلیکیشنهای اندروید هستند. اما هیچکدام از آنها نمیدانند که باید از کجا باید شروع کنند.
معمولا این سوال برای این افراد پیش میآید که برای ساخت یک نرم افزار اندرویدی چه پیش نیازهایی را باید داشته باشند و مدت زمان یادگیری زبانهای برنامه نویسی اندروید چقدر خواهد بود. در این مقاله به معرفی پیش نیازهای یادگیری برنامه نویسی اندروید و تمام آنچه برای شروع نیاز خواهید داشت میپردازیم. پس اگر این موضوع برایتان جذاب است به خواندن این مقاله ادامه دهید.
پیش نیازهای برنامه نویسی اندروید
پیش نیاز برنامه نویسی اندروید به دو دسته پیش نیازهای فنی و غیرفنی تقسیم میشوند. در مورد پیش نیازهای غیرفنی در مقاله ای جداگانه به صورت خیلی کاملتر تحت عنوان پیش نیازهای یادگیری برنامه نویسی توضیح داده شد. از جمله مهمترین پیش نیازهای غیرفنی برای ورود به دنیای برنامه نویسی میتوان به داشتن انگیزه و هدف گذاری مناسب، آشنایی با زبان انگلیسی، آشنایی با مفاهیم الگوریتم و ریاضیات، تایپ کردن، آشنایی با کامپیوتر و اینترنت اشاره کرد.
ممکن است بعضی از پیش نیازهای غیرفنی یا عمومی مانند داشتن انگیزه و زمان کافی را به صورت پیش فرض داشته باشید. البته این موارد مانند پیش نیازهای فنی نیاز به تقویت و پرورش دارند. زیرا در بعضی مواقع اهمیت آنها نسبت به پیش نیازهای فنی به مراتب بیشتر است.
پیش نیازهای فنی برای یادگیری برنامه نویسی اندروید، شامل دو مورد اصلی میشوند. ابتدا شما باید با زبان هایی مانند جاوا، کاتلین و... به خوبی آشنا شوید. پس از انتخاب زبان برنامه نویسی مورد نظر باید مفاهیم شی گرایی را آموزش ببینید. بنابراین اگر بخواهیم به صورت کلی پیش نیازهای اساسی ( فنی و غیرفنی ) برای یادگیری برنامه نویسی اندروید را جمع بندی کنیم، به صورت زیر مطرح میشوند:
- داشتن وقت و انگیزه کافی
- آشنایی با زبان انگلیسی، الگوریتم و ریاضیات
- آشنایی مقدماتی به منظور کار با کامپیوتر و اینترنت
- آشنایی با یک زبان برنامه نویسی به منظور توسعه اپلیکیشنهای اندروید
- فراگیری مفاهیم مربوط به کدنویسی شی گرا
شاید با خودتان تصور کنید که باید پیش نیازهای زیادی را برای توسعه یک نرم افزار اندرویدی آموزش ببینید! اما در حقیقت بسیاری از پیش نیازهایی که به آنها اشاره شد، میتوانید به تدریج و در طول یادگیری زبان برنامه نویسی مورد نظرتان به صورت موازی آموزش ببینید، مانند آشنایی با زبان انگلیسی، مفاهیم کامپیوتر و... . بنابراین اگر اراده کنید با تلاش و تمرین میتوانید بدون نگرانی به یادگیری برنامه نویسی اندروید بپردازید.
ابزارهای پیش نیاز برای یادگیری برنامه نویسی؟
یکی از متداولترین سوالات کاربران برای شروع توسعه اپلیکیشنهای موبایل بعد از شناخت پیش نیاز برنامه نویسی اندروید ، در مورد حداقل سیستم مورد نیاز برای برنامه نویسی اندروید است. همچنین دانشجویان زیادی با مراجعه به ما میپرسند که آیا برای برنامه نویسی نیاز به یک سیستم قدرتمند داریم؟ جواب این سوال خیر است! معمولا کاربران زمانی که نرم افزارهای مختلف را میببیند تصور میکنند که این نرم افزارها توسط ابر کامپیوترها و سیستم هایی بسیار پیشرفته ساخته شده اند. پیشرفته بودن یک نرم افزار دلیلی بر ساخته شدن آن با یک سیستم پیشرفته نیست، بلکه نشان دهنده این است که توسط برنامه نویس یا توسعه دهندگان خوش ذوق و توانا ایجاد شده است.
بنابراین برای شروع برنامه نویسی موبایل تنها به یک کامپیوتر خانگی و یا لپ تاپ میان رده نیاز خواهید داشت. البته اگر از سیستمهای پیشرفتهتر استفاده کنید، میتوانید فرآیند توسعه اپلیکیشنها را سریعتر کنید. زیرا زمانی که حجم کدهای نوشته شده بالا میرود، اگر سیستم شما ضعیف باشد امکان دارد برای پردازش و بررسی کدها کند شود. بنابراین به کسانی که قصد دارند به برنامه نویسی موبایل بپردازند توصیه میشود سیستمی با حداقل 3 گیگابایت رم تهیه کنند. پس اگر میتوانید، سیستمی برای برنامه نویسی موبایل انتخاب کنید که از حداقل سیستم معرفی شده در پایین قویتر باشد.
2 GB RAM minimum, 8 GB RAM recommended
2 GB of available disk space minimum
4 GB Recommended (500 MB for IDE + 1.5 GB for Android SDK and emulator system image)
1280 x 800 minimum screen resolution
Java Development Kit (JDK) 8
معرفی زبانهای برنامه نویسی اندروید
همانطور که میدانید انتخاب زبان برنامه نویسی یکی از دغدغههای افرادی است که قصد دارند برنامه نویسی را شروع کنند. این موضوع همیشه یکی از بحث برانگیزترین و داغترین موضوعات در حوزه برنامه نویسی است. پاسخ به این سوال قطعا کار ساده ای نیست و باید از ابعاد مختلفی مورد بررسی قرار گیرد. زیرا زبانهای برنامه نویسی زیادی از جمله جاوا، کاتلین، جاواسکریپت و .... میتوانند با هدف برنامه نویسی سیستم عامل اندروید انتخاب شوند.
اما زبان هایی که توسط گوگل به عنوان زبان رسمی این پلتفرم معرفی شده اند، جاوا و کاتلین هستند. زبانهای دیگر به صورت پیش فرض توسط اندروید پشتیبانی نمیشوند. برای استفاده از اینگونه زبانها ابزارهایی به منظور تبدیل کدها به خروجی قابل نصب در اندروید توسعه داده شده است. به صورت کلی رایجترین زبانهای برنامه نویسی که قادر به توسعه اپلیکیشنهای اندرویدی هستند عبارتند از:
- زبان برنامه نویسی جاوا
- زبان برنامه نویسی کاتلین
- زبان برنامه نویسی جاوا اسکریپت
- زبان برنامه نویسی سی شارپ
- زبان برنامه نویسی پایتون
- زبان برنامه نویسی بیسیک
- زبان برنامه نویسی دارت
انتخاب و یادگیری زبان برنامه نویسی
شاید با معرفی زبانهای برنامه نویسی در بخش قبل، برای انتخاب زبان مورد نظرتان مقداری سردرگم شده باشید. همانطور که اشاره شد، انتخاب زبان برنامه نویسی برای کسانی که قصد ورود به دنیای برنامه نویسی دارند، میتواند امری دشوار باشد. زبانهای برنامه نویسی صرفا ابزارهایی هستند که برای پیاده سازی ایدههای برنامه نویسان به کار میروند. بنابراین اگر هدف و قصدمان از برنامه نویسی را بدانیم، آنقدرها هم که تصور میکنید، انتخاب زبان امری پیچیده نیست.
شاید انتخاب زبانهای برنامه نویسی غیر رسمی برای افرادی که به سایر زبانهای برنامه نویسی تسلط دارند، امری منطقی باشد. زیرا میخواهند با زبانی که میدانند وارد دنیای برنامه نویسی موبایل شوند. مثلا کسانی که برنامه نویس سی شارپ هستند میتوانند از تکنولوژی زامارین استفاده کنند. زیرا دیگر نیاز به صرف زمان برای یادگیری زبانی جدید نخواهند داشت و در کمترین زمان میتوانند اپلیکیشنهای اندرویدی را توسعه دهند.
اما برای کسانی که تصمیم دارند به یک متخصص اندروید تبدیل شوند و فقط به توسعه نرم افزارهای اندروید بپردازند، بهترین انتخاب زبان جاوا یا کاتلین خواهد بود. زیرا قطعا در فرآیند توسعه نرم افزارهای اندرویدی با مشکلات و سوالات زیادی رو به رو خواهید شد. معمولا جواب اینگونه چالشها را در اسناد کتابخانه ها، مثالهای گوگل، سایتهای پرسش و پاسخ مانند Stackoverflow و... پیدا خواهید کرد. اما به دلیل اینکه زبان جاوا به عنوان زبان رسمی اندروید قدمت بیشتری در توسعه این سیستم عامل داشته است، اکثر این منابع از زبان جاوا استفاده میکنند. زبان جاوا نسبت به سایر زبان ها پیچیدگیهای خودش را دارد ولی اگر به صورت اصولی آن را یاد بگیرید، در حوزه توسعه اندروید موفق خواهید شد.
شناخت اصول برنامه نویسی شی گرا
همانطور که در بخش قبل گفته شد، اگر تصمیم دارید به صورت حرفه ای و تخصصی اپلیکیشنهای اندروید را توسعه دهید بهترین گزینه برای انتخاب شما، زبان برنامه نویسی جاوا است. از آنجایی که زبان برنامه نویسی جاوا ذاتا یک زبان شی گرا است، شناخت مفاهیم شی گرایی به پیش نیازهای یادگیری اندروید اضافه میشود. البته کدنویسی به روش شی گرایی در سایر زبانها هم استفاده میشود اما در جاوا استفاده از این قوانین یک الزام است.
شی گرایی در برنامه نویسی میتواند مشکلات زیادی را برای شما حل کند و باعث سادهتر شدن فرآیند کدنویسی شود. از آنجایی که مفاهیم شی گرایی به شدت به دنیای واقعی نزدیک است، درک آن برای برنامه نویس آسان خواهد بود. در شی گرایی برخلاف روشهای کدنویسی دیگر مانند رویه ای به جای دست و پنجه نرم کردن با تعداد زیادی متغیر و توابع، مستقیما با اشیا (Objects) کار میکنید (در ادامه به صورت مفصل به مفاهیم شی گرایی میپردازیم ولی اگر برای یادگیری و بکارگیری شی گرایی عجله دارید میتوانید از آموزش مجازی مبانی و مفاهیم شی گرایی سون لرن استفاده کنید).
با کدنویسی به روش شی گرا علاوه بر اینکه مدیریت و نگهداری کدهای شما راحتتر میشود، میزان و زمان کدنویسی هم به مقدار زیادی کاهش خواهد یافت. مزیت دیگری که کدنویسی شی گرا در اختیار شما قرار میدهد این است که شما به راحتی میتوانید از کدهایی که نوشته اید در پروژههای دیگر استفاده کنید و این قابلیت میتواند به شدت میزان کدنویسی شما را کاهش دهد.
زمان یادگیری برنامه نویسی اندروید
همانطور که دیدید انتخاب زبان برنامه نویسی برای توسعه اپلیکیشنهای اندرویدی بستگی به اهداف شما دارد. پس از انتخاب زبان برنامه نویسی، تنها چیزی که به آن نیاز خواهید داشت یک کامپیوتر یا لپ تاپ معمولی است که بتواند نرم افزارهایی مانند Android Studio را اجرا کند. سپس تنها چیزی که میان شما و تبدیل شدن به یک برنامه نویس حرفه ای قرار دارد، گرفتن یک تصمیم مطمئن و صرف 6 ماه زمان برای یادگیری زبان مورد نظرتان است.
افرادی که میخواهند وارد این حیطهی جذاب شوند، همیشه این سوال در ذهنشان وجود دارد که در چه مدت زمانی میتوانند به یک برنامه نویس اندروید تبدیل شوند. در ادامه این مقاله میخواهیم دربارهی زمان لازم برای یادگیری برنامه نویسی اندروید صحبت کنیم و یک مسیر ۶ ماهه برای تبدیل شدن به یک برنامه نویس اندروید را به شما معرفی کنیم.پس در ادامه این مطلب همراه ما باشید.
مدت زمان یادگیری برنامه نویسی اندروید چقدر است؟
اگر بخواهیم به این سوال پاسخ دهیم میتوانیم بگوییم که زمان خاصی برای حرفه ای شدن در تخصصی مثل برنامه نویسی وجود ندارد. نمیتوان گفت که مثلا شما الان اگر برنامه نویسی را شروع کنید، دقیقا در x ماه و y روز و z ساعت دیگر به یک برنامه نویس حرفه ای تبدیل میشوید! زیرا سرعت حرفه ای شدن در هرکاری کاملا به شما و شرایط شما بستگی دارد. شما میتوانید در ۳ ماه در یک زبان برنامه نویسی حرفه ای شوید و یا میتوانید همین کار را در ۳ سال انجام دهید. سرعت طی کردن این مسیر کاملا دست شماست!
ممکن است شخصی زمان آزاد زیادی داشته باشد و بتواند روزانه ۸ ساعت مفید برای یادگیری و تمرین برنامه نویسی وقت بگذارد. از آن طرف شخص دیگری باشد که دانشجو یا شاغل است و روزانه ۴ ساعت میتواند یادگیری و تمرین مفید داشته باشد. طبیعی است که نفر اول، زودتر به هدفی که دارد میرسد و زودتر میتواند مسیر تبدیل شدن به یک برنامه نویس حرفه ای را طی کند. اما در بخش بعدی این مطلب برای شما یک برنامهی پیشنهادی ۶ ماهه طراحی کرده ایم که با استفاده از آن بتوانید تنها با صرف زمان ۲-۳ ساعت به صورت روزانه به یک سطح خیلی خوب در برنامه نویسی اندروید برسید.
اگر بخواهیم به این سوال پاسخ دهیم میتوانیم بگوییم که زمان خاصی برای حرفه ای شدن در تخصصی مثل برنامه نویسی وجود ندارد. نمیتوان گفت که مثلا شما الان اگر برنامه نویسی را شروع کنید، دقیقا در x ماه و y روز و z ساعت دیگر به یک برنامه نویس حرفه ای تبدیل میشوید! زیرا سرعت حرفه ای شدن در هرکاری کاملا به شما و شرایط شما بستگی دارد. شما میتوانید در ۳ ماه در یک زبان برنامه نویسی حرفه ای شوید و یا میتوانید همین کار را در ۳ سال انجام دهید. سرعت طی کردن این مسیر کاملا دست شماست!
ممکن است شخصی زمان آزاد زیادی داشته باشد و بتواند روزانه ۸ ساعت مفید برای یادگیری و تمرین برنامه نویسی وقت بگذارد. از آن طرف شخص دیگری باشد که دانشجو یا شاغل است و روزانه ۴ ساعت میتواند یادگیری و تمرین مفید داشته باشد. طبیعی است که نفر اول، زودتر به هدفی که دارد میرسد و زودتر میتواند مسیر تبدیل شدن به یک برنامه نویس حرفه ای را طی کند. اما در بخش بعدی این مطلب برای شما یک برنامهی پیشنهادی ۶ ماهه طراحی کرده ایم که با استفاده از آن بتوانید تنها با صرف زمان ۲-۳ ساعت به صورت روزانه به یک سطح خیلی خوب در برنامه نویسی اندروید برسید.
اگر به شما بگوییم که بعد از ۶ ماه میتوانید به درآمد چند صد میلیون تومانی برسید، یک دروغ شیرین و جذاب گفتهایم، اما حقیقت این است که واقعیت را باید پذیرفت، هرچند تلخ باشد! در صورت اجرای این برنامهی ۶ ماهه، شما به برنامه نویس اندرویدی که ماهیانه ۲۰ میلیون تومان حقوق میگیرد تبدیل نخواهید شد، اما به دانش بسیار خوبی در این زمینه دست پیدا میکنید.
مسیری که در زیر معرفی شده است، با این پیشفرض نوشته شده است که شما هیچ پیش زمینه ای در برنامه نویسی ندارید. اگر حس میکنید که مثلا برنامهی ماه اول برای شما خیلی آسان است، میتوانید از برنامه آن سریعتر عبور کنید و تمرینهای ماههای دیگر را شروع کنید. در زیر برنامهی ۶ ماههی پیشنهادی سون لرن برای تبدیل شدن به یک برنامه نویس اندروید را باهم مرور میکنیم:
ماه اول: یادگیری مقدمات برنامه نویسی : متغیرها، توابع و…
اولین پیش نیاز برنامه نویسی اندروید ، مقدمات و پایههای کلی برنامه نویسی است. مفاهیمی در برنامه نویسی وجود دارد که پایه و اساس تمام زبانهای برنامه نویسی هستند. برای مثال اصلا مهم نیست که شما با چه زبانی می خواهید برنامه نویسی کنید، شما در هر صورت با مفاهیم زیر در تمام زبانهای برنامه نویسی مواجه خواهید شد. این مفاهیم عبارتند از :
- متغیرها (Variables)
- آرایهها (Arrays)
- توابع (Functions)
- کلاسها و شیها (Class & Object)
- شرطها (Conditions)
- حلقهها (Loops)
- و ...
شما در ماه اول باید مفاهیم مربوط به پیش نیاز برنامه نویسی اندروید را به خوبی درک کنید. اول از همه دربارهی تاریخچه برنامه نویسی کمی جستجو کنید تا یاد بگیرید که برنامه نویسی چیست، نرم افزارها چطور نوشته میشوند، برنامه نویسی چه زمینه هایی دارد، کدها چطور اجرا میشوند و... . پس از اینکه با این مقدمات آشنا شدید، کافی است به دنبال یادگیری مفاهیم بالا باشید.
ممکن است در حین مطالعهی این مفاهیم کمی سردرگم شوید و دقیقا متوجه کاربرد آنها نشوید، اما اصلا نگران نباشید! هدف از این مطالعات تنها آشنایی شما با مفاهیم پایه ای و پیش نیاز برنامه نویسی اندروید میباشد. زیرا در ادامه بصورت کامل یاد خواهید گرفت که کاربرد هرکدام از این مفاهیم در نرم افزارهای واقعی چیست و چطور باید آنها را بکار گیرید.
ماه دوم: یادگیری برنامه نویسی جاوا به صورت مقدماتی
بعد از سپری کردن ماه اول، ذهن شما کاملا با مفاهیم برنامه نویسی آشنا شده است. در دومین ماه از برنامه آموزشی خود قصد داریم تا یک قدم مهم برای یادگیری برنامه نویسی اندروید برداریم. همانطور که میدانید یکی از روشهای برنامه نویسی برای سیستم عامل اندروید، استفاده از زبان برنامه نویسی Java است. اگر میخواهید دربارهی سایر روشهای برنامه نویسی اندروید بدانید، مطالعه مقالهی برنامه نویسی اندروید چیست را از دست ندهید.
اما برای اینکه برنامه نویسی اندروید با زبان جاوا را به خوبی یاد بگیرید، قبل از آن نیاز است که زبان جاوا را یاد بگیرید. زیرا برنامه نویسی با جاوا و برنامه نویسی اندروید با جاوا کمی باهم تفاوت هستند. در حقیقت برنامه نویسی با زبان جاوا پیش نیاز برنامه نویسی اندروید با این زبان محسوب میشود. پس یادگیری جاوا را جدی بگیرید و سعی کنید تمام تمرکزتان را بر روی یادگیری آن جممع کنید. در این ماه اصلا قرار نیست که برنامه ای برای اندروید بنویسید، بلکه کافی است که تا حد خوبی برنامه نویسی با جاوا را یاد بگیرید و بصورت کلی با محیط و ساز و کار جاوا آشنا شوید.
برای اینکار باید به دنبال یک منبع آموزشی برای زبان جاوا باشید که بتوانید ماه دوم را با خیال راحت به یادگیری جاوا اختصاص دهید. در همین راستا مطالعهی مقالهی بهترین روش یادگیری برنامه نویسی اندروید نیز میتواند بسیار مفید باشد.
ماه سوم تا پنجم: شروع کار با محیط اندروید و پیاده سازی جاوا برای اندروید
بعد از اینکه با برنامه نویسی جاوا آشنا شدید، حالا زمان آن رسیده که از جاوا برای برنامه نویسی اندروید استفاده کنید. همانطور که احتمالا میدانید از زبان جاوا میتوان برای مقاصد زیادی استفاده کرد و نوشتن اپلیکیشنهای اندرویدی تنها یکی از مقاصد آن است. برای اینکه شما بتوانید اپلیکیشنهای اندرویدی را توسعه دهید، نیاز به نرم افزارهای توسعه برنامه نویسی یا IDEها دارید.
نرم افزاری که امروزه برای برنامه نویسی اندروید بسیار عالی است و توصیه میشود، Android Studio نام دارد. برای اطلاعات بیشتر مطالعهی مقالهی پیش نیازهای برنامه نویسی اندروید میتواند بسیار مفید باشد. از ماه سوم تا پنجم شما باید مقدمات برنامه نویسی اندروید با جاوا را یاد بگیرید و بدانید که چطور میتوانید با استفاده از زبان جاوا در اندروید استودیو، برنامههای سادهی اندرویدی را ایجاد کنید. برای اینکار باید یک منبع آموزشی خوب داشته باشید که شما را در این راستا همراهی کند. یادتان نرود که مهمترین چیز در بحث یادگیری یک تخصص، انتخاب یک منبع آموزشی خوب است.
ماه ششم: تعریف یک پروژه برای تمرین تمام نکاتی که یاد گرفتیم
بعد از اینکه برنامه نویسی جاوا برای اندروید را یاد گرفتید و به ساخت برنامههای ساده اندرویدی مسلط شدید، زمان آن فرا رسیده که مباحثی که یاد گرفتهاید را کمی کاربردیتر و حرفه ایتر دنبال کنید. در فرآیند یادگیری برنامه نویسی هیچ چیز مثل ساخت پروژههای تمرینی و کاربردی به شما کمک نمیکند! شما میتوانید هفتهها زمان بگذارید و به کاربرد یک مفهوم برنامه نویسی فکر کنید یا از طرفی دیگر میتوانید همان مفهوم را بصورت عملی در یک پروژه استفاده کنید و دقیقا متوجه شوید که آن مفهوم در دنیای واقعی چه کارهایی برای شما انجام میدهد.
هنگامی که شما مباحث مقدماتی و متوسط برنامه نویسی اندروید را یاد گرفتید، از آن زمان به بعد کار شما فقط باید انجام پروژههای تمرینی و تستی باشد. همیشه باید برای خودتان پروژههای مختلفی را تعیین کنید و انجام دهید. نکتهی مهمی که در خصوص پروژهها تستی وجود دارد این است که هر پروژه ای که تعریف میکنید باید دارای یک چالش بزرگ برای شما باشد. برای مثال ممکن است که شما تا کنون با پایگاه داده در برنامه نویسی اندروید کار نکرده باشید، پس باید پروژه ای تعریف کنید که پایگاه داده داشته باشد.
همچنین ممکن است که شما به مبحث مدیریت فایلها در اندروید مسلط نباشید، پس باید پروژه ای تعریف کنید که از این قابلیت استفاده کند تا بتوانید در حین انجام آن پروژه، به مبحثی که در آن تسلط نداشتید، اشراف پیدا کنید. در واقع هر پروژه باید برای شما مجموعه ای از علامت سوالها و مسئله هایی باشد که به دنبال حل آن باشید. اینکار شما را مجبور به یادگیری و رو به رو شدن با چالشهای جدید میکند. بعد پیاده سازی چندین پروژه مختلف به مهمترین نکات برنامه نویسی اندروید مسلط هستید و میتوانید برنامههای زیادی را بنویسید.
با ادامه این روند و به مرور زمان قطعا به یک برنامه نویس حرفه ای تبدیل خواهید شد. در مسیر تبدیل شدن به یک برنامه نویس حرفهای، هیچ چیزی مهمتر از تجربه نیست. آن چیزی که یک برنامه نویس عادی را از یک برنامه نویس حرفه ای متمایز میکند، تجربه و دانش تخصصی است که شما این دو فاکتور را در طول زمان کسب خواهید کرد.