به نظرت چطور برنامه نویس بشم؟
اول از همه باید بگم که خیلی راه های متعددی هست و ممکنه از هر برنامه نویسی بپرسین یک راه و روش که به نظرش درسته رو بهتون پیشنهاد بده، منم از این قاعده پیروی میکنم و میخوام نظر خودم رو راجع به نحوه شروع برنامه نویسی بهتون بگم.
همین اول کار بگم که زمان یادگیری بستگی به پشتکار، اشتیاق و خب مواردی که پایین بهشون اشاره کردم داره، ولی برای گرفتن اولین کارتون حدودا ۳ ماه متمرکز وقت لازم دارین که صرفا آموزش ببینین و ۳ ماه هم برای تجربه کسب کردن.
بعدش میوفتین روی سرازیری و در حین اینکه کار میکنین یاد میگیرین و برنامه نویس بهتری میشین.
۱. یک پلتفرم رو برای شروع انتخاب کن
شما باید اول ببنین که دوست دارین برای چه پلتفرمی برنامه بنویسین، وب سایت، موبایل یا دسکتاپ
این مبحث کاملا شخصیه و خب هر کسی انتخاب میکنه برنامش رو برای چه پلتفرمی توسعه بده; نظر هر کسی در این رابطه متفاوته، پیشنهاد من اینه، برنامه نویسی تحت وب رو انتخاب کنین چون به نظرم آینده اپلیکیشن های موبایل و دسکتاپ به سمت وب میره و خب در آینده راحت تر میتونین استخدام شین یا پروژه بگیرین.
۲. بک اند یا فرانت اند؟
برنامه نویس بک اند کسیه که بیشتر با خود عملیات ها در برنامه درگیره مثل ذخیره و پردازش دیتا ها و خلاصه هر چیزی که اون پشت اتفاق میوفته و شمای کاربر نهایی معمولا نمیبینی.
در مقابل برنامه نویس فرانت اند رو داریم که چیزی که کاربر میبینه رو میسازه، مثلا یک صفحه وب سایت که میبینید که میتونه شامل دکمه ها و منو ها و متن های مختلف باشه، این ها همگی مربوط به بخش فرانته همینطور این مثال برای اپلیکیشن های موبایل و دسکتاپ برقراره.
ارتباطشون هم برای مثال به این صورته که مثلا وقتی شما روی یک دکمه در سایت (لایه فرانت اند) کلیک میکنین که اطلاعات یک فرم رو ارسال بکنه، این اطلاعات به سرور (لایه بک اند) ارسال میشه تا روی اون اطلاعات پردازش بکنه و اطلاعات رو ذخیره بکنه و در نهایت به سایت (فرانت) بگه که بر فرض اطلاعات ذخیره شد یا ارور داد.
اینکه شما میخواین کدوم یکی از این سمت ها رو انتخاب کنین، باز هم به خودتون بستگی داره. ولی پیشنهادم اینه که دو تا مسیر رو با هم جلو نبرین چون هر کدوم پیچیدگی های خاص خودش رو داره، اگر از نمای سایت و اپلیکیشن لذت میبرین و فکر میکنین که سلیقه خوبی دارین و میتونین طرح های زیبایی خلق کنین سمت فرانت براتون لذت بخش خواهد بود، ولی اگه مثل من از غر زدن بقیه خوشتون نمیاد و ترجیه میدین با اطلاعات و پردازش های اصلی درگیر باشین پیشنهادم بک انده.
۳. یک زبان رو برای شروع انتخاب کن
بعد اینکه پلتفرم رو انتخاب کردی و تصمیم گرفتی که میخوای بک اند باشی یا فرانت اند وقتشه تحقیق و پرس جو رو شروع کنی تا ببینی بهترین زبان برای تو چیه.
خیلی مهم نیست که اولین زبانی که انتخاب کردی چیه، چون اکثر زبان ها تعاریف مشابهی دارن، ممکنه اسم اون تعاریف دقیقا یکی نباشه ولی از قاعده کلی پیروی میکنن. پس دیر یا زود شما میرین سراغ زبان های بعدی و اصلا نگرانش نباشین.
اگه براتون محبوبیت یه زبان مهمه میتونین به این لینک سر بزنین و پر استفاده ترین ها رو ببینین.
زبون ها هر کدوم برای رفع یک نیازی ساخته شدن و خب هر کدوم برتری هایی نسبت به بقیه دارن. شما با توجه به سمتی که میخواین کد بزنین و پلتفرمی که میخواین کار کنین میتونین زبانتون رو انتخاب کنین.
الان در سمت بک اند (سرور) زبون هایی مثل Python, Go, PHP بازار کار خوبی دارن.
در سمت فرانت اند وب سایت هم که JavaScript تنها در میدان قلدری میکنه.
اپلیکیشن های اندروید و IOS معمولا با یک زبان خاص مثل Java, Kotlin, Objective-C, Swift, React Native نوشته میشن، برنامه نویسان این حوزه از ابتدا هم با طراحی فرانت اپلیکیشن و هم بک اند اپلیکیشن آشنا میشن که بتونن هم یک سری اطلاعات رو پردازش بکنن و هم به کاربر نمایش بدن.
برای دسکتاپ هم به همین صورته و معمولا هر دو رو آموزش میبینن و اون رو با زبون هایی مثل C#, Python, Java پیاده سازی میکنن.
من برای شروع بهتون پایتون رو پیشنهاد میکنم، چون نسبتا ساده تره و خب برای اکثر چیز ها نیاز نیست خودتون دست به کد بشن و لایبرری های خیلی خوبی داره و همچنین منابع خوب فارسی و انگلیسی براش پیدا میشه.
همچنین با یادگیری پایتون هم میتونین اپلیکیشن های تحت وب بنویسین و هم میتونین تحت دسکتاپ کار کنین و حتی وارد شاخه های دیتا و هوش مصنوعی بشین.
۴. منبع آموزشیت رو کشف کن
این موضوع کاملا با توجه به نوع شخصیت فرد متفاوته، خیلی ها فقط دوست دارن داکیومنت اصلی اون زبان برنامه نویسی رو بخونن، خیلیا دوست دارن دوره های یوتیوب و امثال اون رو ببینن، خیلی ها دوست دارن آموزشگاه ثبت نام کنن و خیلی ها هم با کتاب راحتن.
شما باید اول کشف کنین که چه چیزی رو میپسندین و با چه چیزی راحتین، قرار نیست یه دوره تو یه هفته تموم بشه و باید حداقل دو سه ماه یاد بگیرین پس چیزی که حوصلتون رو سر میبره و به نظرتون مسخره میاد رو بهتره شروع نکنین و برین سراغ یه راه دیگه.
من در حال حاظر برای یاد گرفتن یه زبان و تکنولوژی جدید، یه سر میزنم به ویدیو ها و داکیومنت های فارسی که کلیات قضیه رو متوجه بشم که قراره چه مزیت هایی برام داشته باشه و بعد میرم سراغ ویدیو های خارجی توی یوتیوب و در نهایت حین کار با اون تکنولوژی داکیومنت هاش رو میخونم برای اینکه عمیق تر بشم.
ولی زمانی که میخواستم شروع کنم اصلا با این مدل جلو نرفتم و خب دوره های مجازی خریدم با یه قیمت خیلی معقول و پایین ( اصلا نیاز نیست به دوره های چند میلیونی متخصص فلان و بیسار پول بدین )
راستی دوره های ویدیویی خیلی سطوح مختلف دارن، یکی مثل جادی دوره مبتدیش هم برای شروع کسی که صفره خوب نیست و بهتره با استادایی که ساده تر شروع میکنن اول یه دوره بگذرونه و بعد دوره جادی رو ببینه، پس هر جا احساس کردین که حرفای اون استاد براتون خیلی عجیب و سخته ناامید نشید و منبعتون رو عوض کنین (البته من جادی رو خیلی دوس دارم و پایتون مقدماتی و پیشرفته رو از خودش یاد گرفتم و اگه یه مقدار برنامه نویسی بلدین پیشنهاد میکنم دورش رو از مکتب خونه ببینین )
خلاصه ممکنه شما با داکیومنت خوندن راحت باشین یا هر چیز دیگه ای ولی خب برای رضای خدام شده فکر نکنین از هنرستان و دانشگاه برنامه نویسی یاد میگیرین :) خودتون باید شروع کنین استادای داشنگاه خودشون شب قبل میخونن میان، چندین مورد دیدم و شنیدم که میگم !
[آپدیت] جادی هم این ویدیو رو منتشر کرد که میتونه این بخش رو کامل تر براتون توضیح بده
۵. از مسیر لذت ببر
اگه منو بشناسین میدونین که آدمی نیستم که وقتی بهم فشار میاد باهاش اوکی باشم و سعی میکنم همیشه از زندگی لذت ببرم و وقتم رو الکی هدر ندم; پس در نتیجه برنامه نویسی رو هم مثل هر چیز دیگه ای خیلی فان جلو بردم و به خودم فشار نیاوردم، شما یک شبه برنامه نویس خوبی نمیشین، پس عجله نکنین، وقتی یه چیزی یاد گرفتین غرور برتون نداره و ادعا نکنین و همیشه در حال یاد گرفتن باشین، اینجوری مسیر یادگیری براتون زیبا تر میشه و خب از زندگی لذت میبرین.
۶. زبان انگلیسیت رو قوی کن
مقالات و داکیونت های فارسی خیلی خیلی عقبن و معمولا محتوای خوب کم تولید میشه، اوضاع روی ویدیو ها کمی بهتره و دوره های خیلی خوبی پیدا میکنین که تا سطح متوسط شما رو جلو میبرن. ولی خب در نهایت شما سطحتون بالاتر میره و برنامه هایی که مینویسین هم پیچیده تر میشن و نیاز پیدا میکنه که شما تکنولوژی ها رو عمیق تر بلد باشین که معمولا محتوای خوب فارسی براش پیدا نمیکنین.
مخصوصا اگر زبانی که میخواین یاد بگیرین تو ایران نسبتا تازه ترند شده باشه مثل Go یا Rust و …
پس لازمه از همین ابتدا زبان انگلیسیتون رو قوی کنین، مشکلاتتتون رو انگلیسی سرچ کنین و داکیومنت های انگلیسی رو مطالعه کنین.
میدونم اولش چقدر سخته، یه راه میگم بهتون که زندگی زیبا میشه، افزونه Google Translate برای کروم و فایرفاکس موجوده، کافیه نصب کنین و تنظیمش کنین که وقتی یه کلمه رو سلکت میکنین بهتون ترجمش رو نشون بده. اینجوری شما سعی میکنین جمله هارو خودتون بخونین و اون کلماتی رو که بلد نیستین گوگل بهتون میگه، در طولانی مدت زبانتون واقعا قوی میشه.
۷. کارآموزی کن
مطمئنا اگه پارتی نداشته باشین به برنامه نویسی که سابقه کاری نداره به این راحتیا کار نمیدن و خب احتمالش خیلی پایینه، پس در نتیجه هر وقت یک زبان رو تموم کردی اول سعی کن تا یکی دو تا پروژه برای خودت تعریف بکنی و سعی کنی تا اون رو جلو ببری و بعد از اون بری سراغ شرکت هایی که کارآموز قبول میکنن.
اکثر آگهی های کارآموزی در سایت های کاریابی مثل جابینجا فقط برای بیگاریه و قصد ندارن چیزی یاد بدن و فقط میگن که سه ماه بیا و اگه خوشمون اومد استخدام میکنیم و تو اون مدت همه کار هاشون رو میندازن گردنت.
تو در این مرحله فقط باید دنبال شرکت هایی باشی که حداقل دو بار اسمشون رو شنیدی و میدونی کارشون درسته، میتونی هم از طریق جابینجا براشون رزومه بفرستی و هم توی لینکداین افرادی رو پیدا کنی که تو اون شرکتان و ازشون بخوای که هماهنگ بکنن با شرکت که کارآموز میپذیرن یا نه، یا اگه دوست برنامه نویس دارین که چه بهتر; اینجوری همون شخص خیلی بهتون کمک میکنه و جلوتون میبره.
در کل کارآموزی هم میشه اولین سابقه کاریتون که میتونین در استخدام بعدی بهش استناد کنین و هم یاد میگیرین که پروژه های واقعی چه شکلین.
یادتون باشه بیشتر از دو سه ماه کارآموزی نرین چون وقت هدر دادنه، بعدش یا همونجا استخدام شین یا دنبال شرکت جدید باشین.
یک سری شرکت ها برای کارآموزی حقوق خیلی کمی میدن، یک سری فقط در حد رفت و آمد پرداخت میکنن و بقیه عموما چیزی پرداخت نمیکنن، ولی اصلا سمت اونایی که یه چیزی میگیرن تا بیای کارآموزی نرو!!! اینا ******** عالمن !!!
۸. برو برای استخدام
الان تو دوره عالی برای برنامه نویسا هستیم و استقبال خوبی میشه و چه در ایران و چه در سراسر جهان شدیدا به نیروی متخصص نیاز دارن پس برای این مرحله نگرانی نداشته باش.
شاید اول کار رزومت رو برای ۵۰ تا شرکت بفرستی ۱۰ تا مصاحبه بری تا آخر یکیشون بهت اوکی بده ولی خب مهم نیست چون اولین شرکته، بعد از اینکه اونجا خوب مهارت کسب کردی و چالش های مختلف رو حل کردی اون موقست که میتونی پله پله شرکت های بهتر کار کنی یا از یه جا به بعد اونقدر کانکشن های خوبی میسازی با آدم ها که میتونی پروژه ای کار کنی
نگران کار اول نباش، از پسش بر میای
۹. همیشه یاد بگیر
شغل ما مثل خیلی از شغل های دیگه نیست که یکبار یاد بگیری و هر دو سه سال مجبور باشی یه سری نکات جدید یاد بگیری و همون برات کافی باشه. تکنولوژی و ابزار های اون دارن با سرعت فضایی جلو میرن و هر سال چند تا تکنولوژی باحال میاد که نیاز شرکتا رو برطرف میکنه و به شدت به نیروی اون نیاز پیدا میکنن، پس اگه میخوای پیشرفت کنی و درجا نزنی باید هر هفته مشغول یادگیری باشی.
عالی👌🏿