اگر تاکنون سری به لیست برترین و پردرآمدترین شغل های دنیا زده باشید، قطعا اسم برنامه نویسی را به عنوان یکی از پول سازترین شغل های دنیا در این لیست مشاهده کرده اید. هر چند بیشتر گزارش ها و تحقیقاتی که در این حوزه انجام شده مربوط به آمریکا و کشورهای اروپایی می باشد، اما می توان با کمی تغییر آنها را به کشور خودمان هم بسط داد.

 

در ایران هنوز یک تحقیق معتبر از میزان درآمد برنامه نویسان و جایگاهی که در آن قرار دارند صورت نگرفته است، اما با انجام تحقیقات محلی و بررسی شرایط کشور متوجه می شویم که برنامه نویسی در ایران هم می تواند بسیار پولساز باشد، به شرطی که در این کار حرفه ای شوید.

البته برنامه نویس های بزرگ معمولا با علاقه قلبی به تکنولوژی و کامپیوتر در مسیر برنامه نویسی قدم می گذارند و معمولا پول معیار خیلی مهمی برای شروع کار نیست. برنامه نویسان زیادی هستند که عاشقانه کار خود را دوست دارند و این عشق باعث شده که بسیاری از مواقع حتی به طور رایگان کار کنند. اگر نگاهی به گیت هاب بیندازید متوجه خواهید شد که چه تعداد از پروژه ها در این سایت به طور رایگان در اختیار مردم قرار می گیرند

.

 

 

 این توضیحات شاید به کارتان بیاید:

پایتون (Python) : یک زبان برنامه نویسی است که در عین سادگی, می تواند برای افراد حرفه ای بسیار کارآمد باشد. بسیاری از وب برنامه کاربردی و حتی برخی بازی های رایانه ای با این زبان نوشته شده اند.

 

جاوا : در برنامه های زیادی به کار گرفته شده است. از بازی و برنامه کاربردی وب گرفته تا نرم افزار مورد استفاده در دستگاه های خودپرداز.

زبان HTML : هرچند HTML جزء زبان های برنامه نویسی به شمار نمی رود و یک زبان نشانه گذاری ابر متن است, ولی یک نقطه شروع مشترک برای تمام برنامه نویسان وب به شمار می رود و پیش از کار با هر زبان تحت وبی, آشنایی با آن ضروری است.

 

زبان C : از قدیمی ترین زبان های برنامه نویسی است که هم چنان قدرت و صلابت خود را حفظ کرده است. C پایه زبان های مدرن تری همچون ++C است.

 

قدم اول : اصول ضروری Java برای برنامه‌ نویسی اندروید را یاد بگیرید

 

در قدم اول باید بدانیم زبان اصلی برنامه‌ نویسی اندروید زبان Java (جاوا) است.

 

پس برای شروع باید مفاهیم شی‌ء‌ گرای این زبان را یاد بگیرید و بدانید چطور از آن‌ها استفاده کنید: کلاس‌ها، رابط‌ها (Interfaces)، وراثت (Inheritance)، بسته‌ها (Packages) و مواردی از این دست جزو ضروریاتی هستند که باید حتماً آن‌ها را فرا بگیرید. علاوه بر این، باید یاد بگیرید که چطور از رایج‌ترین API های Java استفاده کنید؛ نحوه بهره‌گیری از Android Studio و کیت توسعه نرم‌ افزاری برنامه نویسی اندروید را نیز به خوبی بیاموزید.

 

کدوم بهتره؟ برنامه نویسی دسکتاپ، وب و یا موبایل؟

خب حالا وقت تصمیم گیری هست. بهتره با توجه به علاقتون همین حالا تصمیم بگیرید توی کدوم حوزه برنامه نویسی میخواهید کار کنید. اگر از من بپرسید کدوم حوزه برنامه نویسی رو انتخاب کنم؟ بدون هیچ چون و چرا برنامه نویسی موبایل رو پیشنهاد میدم. شاید اگه چند سال پیش کسی از من این سوال رو میپرسید من برنامه نویسی وب رو پیشنهاد میدادم. چرا برنامه نویسی موبایل؟ واضح هست علتش ظهور گوشی های هوشمند و دنیای آینده که بصورت موبایل خواهد بود. تعداد زیاد مشتریانی که حتی برای فروش یک اپلیکیشن ساده با آنها مواجه هستید میتونه درآمد خوبی برای شما داشته باشد. ما در مقاله «بررسی درآمد برنامه نویسان ایرانی اندروید» با آوردن مثال های واقعی، میزان درآمد برنامه نویسان اندروید رو بررسی کردیم. پیشنهاد میکنیم اگه میخواهید وارد حوزه برنامه نویسی موبایل بشید حتما این مقاله رو مطالعه کنید.

 

یکبار دیگر میگم تصمیم با خود شماست و بهتره با توجه به علاقت حوزه کاری خودت رو مشخص کنی. بعد از این، باید سراغ یادگیری یک زبان برنامه نویسی بریم. ما در قسمت بعدی به شما بهترین زبان های برنامه نویسی رو برای شروع معرفی میکنیم.

 مزایا و معایب کلاس های آموزشی حضوری و خود آموز

مزایا کلاس حضوری

حضور و برنامه مشخص برای یادگیری

مشخص بودن روند آموزش

رفع اشکال توسط استاد

مجبور به تمرین و به چالش کشیده شدن

به وجود آمدن انگیزه و رقابت

معایب کلاس حضوری

صرف زیاد زمان برای حضور

مشخص نبودن سطح کلاس

طولانی شدن آموزش

عدم تمرکز بر روی مباحث

هزینه بسیار زیاد

مزایا کلاس مجازی و خود آموز

آزاد بودن در زمان آموزش

یادگیری مباحث با توجه به احتیاجات

پیدا کردن بهترین روش آموزش

پیاده سازی آنی کد

هزینه بسیار پایین

معایب کلاس مجازی و خود آموز

نبود برنامه ی مشخص

نبود ارزشیابی توسط استاد

زمان بر بودن رفع اشکال

نبود رقابت و انگیزه

مشخص نبودن زمان برای آموزش

 

میدوارم توانسته باشم با بررسی معایب و مزایایی که در بالا به شما دوستان گفتم به انتخاب شما کمک کنم, البته فراموش نکنید که تمامی این موارد از دید من است و شاید برای خیلی از دوستان کاملا متفاوت باشد!

 

زمان لازم برای یادگیری برنامه نویسی

مدت زمان یادگیری یک زبان برنامه نویسی به موارد خیلی زیادی بستگی داره اما معمولا بین 4 ماه تا 1 سال متغیره. مسلما مدت زمانی که اینجا بهت میگیم کاملا نسبیه و ممکنه از آدمی به آدم دیگه متفاوت باشه. بنابراین نباید این زمان تعیین شده رو از این مقاله به صورت وحی گونه به خاطر بسپاری و اگر زمان خودت یکی دو ماه اینور و اونور شد مغرور یا دلزده بشی. مهم‌ترین عواملی که مدت یادگیری یه زبان برنامه نویسی رو تعیین می‌کنه اینجا بهت میگیم. براساس این عوامل می‌تونی مدت یادگیریت رو تقریبا به مدت مورد نظرت نزدیک کنی اما فقط با تلاش و تلاش و تلاش!

 

برنامه نویسی Fuchsia خیلی زود جای اندروید را می‌گیرد، مگر نه؟

اگر اخبار مرتبط به گوگل را دنبال می‌کنید، حتما نام فیوشا (Fuchsia) را شنیده‌اید.

فیوشا سیستم‌عامل جدیدی است که گوگل درحال توسعه‌ی آن است و می‌تواند در آینده جایگزین اندروید شود، اما هنوز کسی مطمئن نیست.

اما حتی اگر این موضوع درست باشد، چند سالی طول می‌کشد تا این اتفاق بیفتد.

حتی آن موقع نیز، اپلیکیشن‌های اندروید روی فیوشا اجرا خواهند شد (خبرهایی این موضوع را تأیید کرده‌اند)، چون رها کردن میلیون‌ها اپلیکیشن اندرویدی برای گوگل بسیار پرهزینه است و گوگل نمی‌تواند تمامی برنامه‌نویسان اندروید را رها کند.

 

در حال حاضر، خیلی نگران این فریمورک‌های جدید نباشید.

برنامه نویسی نیتیو اندروید به این زودی‌ها از رده خارج نخواهد شد و وقتی در آن تجربه کسب کردید، یادگیری زبان یا فریمورکی دیگر بسیار ساده‌تر می‌شود.

این طور نیست که بعد از یادگیری، فقط به این دلیل که به اشتباه زبان یا پلفترمی نادرست را انتخاب کرده‌اید، دوباره مجبور شوید از صفر شروع کنید.

با فهم منطق برنامه، ساختمان‌داده‌ها و الگوهای طراحی کدهای خود و دیگران، دارید مهارت مهندسی نرم‌افزار را در خود می‌سازید که از یادگیری زبان یا فریمورک فراتر می‌رود.

چیزی را انتخاب کنید و تا زمانی که مبتدی هستید، رهایش نکنید( طراحی سایت )

 

 

خُب، می‌خواهم برنامه نویسی نیتیو اندروید را یاد بگیرم! باید با جاوا شروع کنم یا کاتلین (Kotlin)؟

حالا که مسیر برنامه نویسی نیتیو را انتخاب کرده‌ایم (حداقل این‌طور فرض می‌کنیم، چون هنوز دارید این مقاله را می‌خوانید)، باید بین این دو زبان یکی را انتخاب کنیم، چون اپلیکیشن‌های نیتیو اندروید فقط به زبان جاوا نوشته نمی‌شوند.

 

احتمالاً شنیده‌اید که گوگل کاتلین را در سال 2017 و در کنفرانس Goole I/O به عنوان زبان رسمی first-class برنامه نویسی نیتیو اندروید معرفی کرد.

کاتلین یک زبان برنامه نویسی مدرن است که مزایای بسیار بیشتری نسبت به جاوا دارد. مثلاً سینتکس دقیق‌تری دارد، null-safe ااست (یعنی خطاهای کمتری رخ می‌دهد) و ویژگی‌های بسیاری دارد که کدنویسی را ساده‌تر می‌کند. در این مرحله، می‌توانید بدون یادگیری جاوا، واقعاً اپلیکیشن نیتیو اندروید بسازید.

پس آیا به عنوان یک مبتدی، باید از جاوا بگذرید و مستقیم به سراغ کاتلین بروید؟ یا باید اول جاوای معروف را یاد بگیرید؟

یا شاید باید یادگیری هر دو را همزمان با هم شروع کنید؟

 

در مسابقات برنامه‌نویسی شرکت کنید 

وقتی الگوریتم‌ها را یاد گرفتید باید شروع به حل مسائل کنید. وبسایت‌هایی مانند : Codeforces، Topcoder، hacherrank، geeksforgeeks  و… برای این کار وجود دارند. هرچه برای مسائل بیشتری برنامه بنویسید بهتر است. در عین حال سعی کنید مسائل را به ترتیب آسان به سخت، یا براساس تعداد جواب‌های ثبت شده زیاد به کم حل کنید. 

 

پس از برنامه‌نویسی برای حدود ۱۰۰ مسئله با سختی متفاوت، از مهارت برنامه‌نویسی خود کمی اعتماد به نفس کسب کرده‌اید. پس از خو گرفتن با حل سوالات و کدنویسی پاسخ‌ها، می‌توانید در رقابت‌های مختلف برنامه‌نویسی آنلاین شرکت کنید. این کار مهارت‌های شما را تقویت می‌کند.

 

یک پروژه بسازید

حال که مهارت‌های حل مسئله و کدنویسی‌تان را تقویت کرده‌اید، وقت ساخت چند اپلیکیشن پرکاربرد است. می‌توانید یکی از فریمورک‌های توسعه وب محبوب (مانند جانگو، فلسک، روبی آن ریلز و…) را به کار بگیرید و یک پروژه بسازید؛ که به شما حس یک برنامه‌نویس واقعی بودن را نشان می‌دهد. 

 

وقتی چند پروژه توسعه وب را انجام دادید هم شاید دلتان بخواهد اندروید و ios را هم امتحان کنید. خودتان را محدود نکنید. 

 

 

رفتن به پلتفرم های دیگر

اگر شما برنامه نویسی موبایل در یک پلتفرم خاص را یاد گرفتید ممکن است بعد از مدتی بخواهید پلتفرم دیگری را نیز یاد بگیرید .

 

اما در هنگام سوئیچ کردن بین پلتفرمهای مختلف موبایل باید در نظر داشته باشید که هر پلتفرم سلیقه های خاص خود را دارد و همچنین آن پلتفرم ویژگی های خاص خود را دارد که برای از دست ندادن کاربران اپلیکیشن باید آنها را در نظر داشته باشید .

 

خیلی از دوستان درباره ی این سوال میکنند که آیا یک نفر میتواند در یک زمان هم برنامه نویسی اندروید را انجام دهد و هم برنامه نویسی iOS را ؟ پاسخ این سوال بله است ولی به شرطی که جنبه های مثبت و منفی هر پلتفرم ، ویژگی های منحصر به فرد و استفاده کنندگان آن پلتفرم و سلیقه های انها در نظر گرفته شود .