تجربه های یک برنامه نویس اندروید و توصیه به افرادی که می خواهند به این عرصه وارد شوند.

[برای نمایش لینک باید عضو شوید. ] و چالش های آن برنامه نویسی اندروید و چالش های آن

مقدمه
در این پست می خواهم تجربه های خودم در این دو سال و چند ماهی که درگیر [برای نمایش لینک باید عضو شوید. ] هستم را با شما در میان بگذارم. ابتدا چند تا توصیه برای کسانی که به امید یک شبه ره صد ساله را رفتن به سمت این شغل آمده اند دارم. برنامه نویسی یکی از سخت ترین مشاغل دنیاست و روز به روز هم به جای آسانتر شدن به سمت سخت تر شدن حرکت می کند. در قدیم مشکلاتی وجود داشت اما به نظر من برنامه نویسی به طور کلی خیلی آسانتر (حداقل برای کسی که می خواست شروع کند) از الان بود. بزرگترین مشکل چند سال قبل که مشکل کوچکی هم نبوده عدم دسترسی به منابع یادگیری و حتی نبودن جایی برای پیدا کردن جواب مشکلاتی که پیش می آمد بود. یا حتی یک مشکل بزرگ دیگر که قبلا وجود داشت نبودن IDE یا محیطهای توسعه نرم افزار بود. در حال حاضر این دو مشکل کاملا حل شده اند اما دانشی که یک برنامه نویس باید داشته باشد به شدت افزایش پیدا کرده است. خب بگذارید برای اینکه شفافتر صحبت کنم با مثال از برنامه نویسی اندروید این موضوع را جلو ببرم. در گذشته برای توسعه اپلیکیشن اندروید شما کافی بود به زبان جاوا تسلط(نسبی) پیدا می کردید، سپس با پلتفرم اندروید که بسیار ساده تر از الان بود آشنایی پیدا می کردید. در گذشته از Maven به عنوان Build Tools در اندروید استفاده می شد اما اکنون از گریدل استفاده می شود که باز هم یادگیری آن سخت تر از Maven است اما به شدت در بلند مدت به نفع برنامه نویس است. در گذشته اپلیکیشن ها به ندرت انیمیشن داشتند. انواع طراحی در توسعه نرم افزار وجود نداشتند(مانند متریال دیزاین، طراحی فلت و ...). امکانات اندروید بسیار کمتر از امکانات کنونی آن بود. حالا به تمام این موارد نوشتن تست برای نرم افزار و همچنین رعایت کردن دیزاین پترن را هم اضافه کنید که حالا بسیار فراگیرتر شده اند. در گذشته RxJava نبود و کار MultiThreading در جاوا و اندروید سخت بود اما اپلیکیشنهای کمی بودند که به این مقوله نیاز داشتند. اما اکنون یادگیری این کتابخانه ها بسیار پراهمیت شده در حالیکه پروسه یادگیری آنها به شدت زمانبر است. ببینید در عمل نمی گویم برنامه نویسی سخت تر شده است، برای کسی که می خواهد شروع کند با دریایی از مطالب روبرو خواهد شد که نمی داند از کجا شروع کند و به کجا برسد. آنقدر باید دانش خود را عمیق و زیاد کنید که در ابتدا شاید بیخیال برنامه نویسی شوید. در یک کلام اگر واقعا به برنامه نویسی علاقه ندارید از همین جا این صفحه را بسته و دیگر این مطلب را ادامه ندهید و به دنبال شغلی دیگر بروید. با[برای نمایش لینک باید عضو شوید. ] نمی شود یک شبه ره صد ساله رفت. شرط موفقیت در برنامه نویسی این است که سالهای سال برای یادگیری و کسب تجربه، خودتان را وقف کارتان کرده باشید. حالا با فرض بر اینکه به [برای نمایش لینک باید عضو شوید. ] علاقه دارید ادامه می دهیم.

چیزهایی که درباره Reading آزمون MSRT نمی دانید! - BitAlone
شروع برنامه نویسی شروع برنامه نویسی

شروع [برای نمایش لینک باید عضو شوید. ]:
اگر تا به حال برنامه نویسی نکرده اید و می خواهید از اندروید شروع کنید به شدت توصیه می کنم این کار را نکنید. من این کار را انجام دادم و می دانم کار بسیار سخت و طاقت فرسایی خواهد بود. بخصوص که یادگیری جاوا در بین سایر زبانهای برنامه نویسی معروف (به غیر از سی و سی پلاس پلاس) سخت تر و زمانبرتر است. توصیه ای که به دوستانی که به اندروید علاقه دارند می کنم این است که با برنامه نویسی وب شروع کنند. HTML, CSS, JavaScript را کمی یاد بگیرید که بتوانید یک سایت استاتیک ساده را خودتان از صفر شروع کرده و به اتمام برسانید. این کار به شما دید خوبی از برنامه نویسی خواهد داد. این پروسه حداکثر دو تا سه ماه زمان خواهد برد اما مطمئن باشید این کار در بلند مدت به نفع شما خواهد بود. دلیل این حرفم چیست؟ ببینید برنامه نویسی اندروید، برنامه نویسی سمت کلاینت است. برنامه نویسی سمت کلاینت در وب یعنی همان HTML, CSS, JavaScript. در اندروید بجای HTML ما XML داریم. بجای جاوااسکریپت از جاوا استفاده می کنیم. CSS در اندروید هم یا در XML پیاده سازی می شود یا در جاوا. اما یادگیری سمت کلاینت در وب برای کسی که برنامه نویسی نکرده به شدت ساده تر از اندروید است. پس برای یادگیری کلیت کار از وب شروع کنید.

جاوا:
اگر به توصیه بالا عمل کردید این مرحله نباید زمان زیادی از شما بگیرد. با یادگیری انواع متغیرها، حلقه ها، جملات شرطی و مفاهیم شی گرایی در جاوا آشنا شوید و بلافاصله شروع به یادگیری اندروید کنید. من در این مرحله هم اشتباهات بزرگی کردم. شاید به مدت ۶ ماه فقط در حال یادگیری جاوا بودم در حالیکه به خیلی از مباحثی که در آن زمان یاد گرفتم هنوز هم نیاز پیدا نکرده ام. سعی کنید یادگیری خود را بر اساس نیاز قرار دهید. یعنی اگر در پروژه ای نیاز به مبحث خاصی بود آن مبحث را خوب یاد بگیرید. در غیر این صورت شاید هیچ وقت به آن مبحث نیاز نداشته باشید. بزرگترین مشکل بعد از یادگیری جاوا، نصب اندروید استودیو خواهد بود. خیلی از کسانی که در گروههای اندروید می بینم برای نصب اندروید استودیو زمان زیادی می گذارند و در نهایت بی خیالش می شوند. سعی کنید مرحله به مرحله پیش بروید. من برای نصب اندروید استودیو یک ماه درگیر بودم. در نهایت هم به دلیل اینکه امولاتو روی سی پی یوهای AMD کار نمی کند مجبور شدم یک ماه برای نصب لینوکس و اندروید استودیو زمان بگذارم. البته همه اینها برای کسی که تازه وارد دنیای برنامه نویسی شده بود انقدر طول کشید. آن زمان خوب جستجو نمی کردم. حتما از ابتدا مهارت خوب جستجو کردن را در خود ارتقا دهید تا از این نوع مشکلات نداشته باشید.

یادگیری عمیق ولی پروژه محور:
این هم یکی از اشتباهات و در عین حال شاید نقاط قوت من در یادگیری[برای نمایش لینک باید عضو شوید. ] بود. در یادگیری برنامه نویسی به شدت عمیق می شدم و تا به مبحثی کاملا مسلط نمی شدم از آن در پروژه هایم استفاده نمی کردم. این باعث می شد یادگیری ام بسیار عمیق اما کند باشد. به شما توصیه می کنم عمیق اما پروژه محور یاد بگیرید. در ابتدای یادگیری اندروید یک پروژه بسیار ساده برای خود در نظر بگیرید و همزمان که از روی کتاب، فیلم، سایت و... یاد می گیرید همان مباحث را در پروژه خود پیاده کنید. حتی زمانی که کتابخانه های مهم جاوا مانند Dagger یا RxJava را یاد می گیرید در پروژه های خود پیاده سازی کنید. این کار به شدت بهینه تر از کاری است که من انجام می دادم.

منابع:[برای نمایش لینک باید عضو شوید. ]
[برای نمایش لینک باید عضو شوید. ]
[برای نمایش لینک باید عضو شوید. ]