به نام خدا
من برنامه نویسی رو از حدود 9 سالگی و زبان c برای میکروکنترلر های AVR شروع کردم و تو این مدت چند زبان دیگر رو کار کردم و الان بیشتر طراحی سایت میکنم. اصولا ورود به این فضا برای خیلیا کار سختی هستش چون نمیدونن باید از کجا شروع کنن. شاید زبانی که من باهاش برنامه نویسی رو شروع کردم نامناسبترین زبان واسه این کار بوده باشه ولی نیازم تو زمان یادگیری این زبان بود و الان هم با توجه به تجربه ای که تو زبان های دیگه کسب کردم میخوام چنتا پیشنهاد واسه تازه کارا داشته باشم.
بدون شک نمیشه نسخه مشترکی رو برای همه پیچید واسه همین سعی میکنم واسه گروه های مختلف پیشنهاد متفاوتی بدم. اولین گروهی که خیلی میان سراغم واسه اینکه بپرسن این مسیرو از کجا شروع کنن بچه های دوره اول متوسطه هستن. احتمالا با کمی تحقیق چنتا زبان خیلی خوب پیدا میکنید و احتمالا زبان های پایتون، ++C بین اونا هستن. من پیشنهادم به شما واسه شروع زبان ++C هستش. چون تو این لول اکثر مسابقات با این زبان برگزار میشن. من خودم پایتون رو زودتر یادگرفتم ولی چون تو مسابقه ها از این زبان پشتیبانی نمیشد مجبور شدم ++C رو هم یاد بگیرم. درضمن به خاطر سینتکس کدها معمولا یادگیری ++C بعد از پایتون سخت تره چون پایتون آدمو تو یه سری چیزا تنبل میکنه.
یه دسته از زبان هایی که احتمالا بهتون پیشنهاد میشه زبان های طراحی سایت هستش. مثل HTML , CSS , PHP و... ( البته دوتای اول زبان برنامه نویسی نیستن ولی نمیخوایم خیلی وارد ویژگی های زبان ها بشیم) این زبان ها قطعا بازار کار بهتری دارن و یادگیریشون کمی راحت تره ولی خیلی گسترده تر هستن. ولی یادتون باشه هدف از یادگیری برنامه نویسی تو گام اول و واسه دانش آموزا باید تفکر ساختار مند و الگوریتمی باشه که این زبان ها اصلا کمکی به اون نمیکنن!
اگه بخوایم یه جمعبندی بکنیم به نظرم بهترین کار واسه بچه های دوره اول اینه که اول با زبان ++C شروع بکنن و برن سراغ الگوریتم تا سیم کشی مغزشون راه اندازی شه :) بعد میتونن برن سراغ برنامه نویسی وب. کلا تو این سن اصلا نگران این نباشید که رفتن سراغ فلان زبان ممکنه وقتمو تلف کنه. اگه یه زبانو یاد بگیرید معمولا زبان های بعدی خیلی راحت خواهند بود و خیلی بیشتر از چیزی که فکر میکنید واسه پیدا کردن علاقتون وقت دارید.
معمولا بچه های دوره دوم فقط واسه المپیاد میرن سراغ برنامه نویسی و معمولا درگیری های مربوط به کنکور نمیذاره کار دیگه ای بکنن. واسه المپیادم مجبورن برن سراغ ++C و منابع مختص خودش که نیاز به بحث نداره.
اصلی ترین گروه کسایی هستن که کنکورو پشت سر گذاشتن و تازه دانشجو شدن. واسه این گروه پیشنهاد من زبان پایتون هستش چون هم زبان بروزیه هم خیلی کاربردیه. میتونن بعدش برن سراغ django برای برنامه نویسی وب و یا برن سراغ یادگیری ماشین و شاخه های دیگه هوش مصنوعی. ولی اگه دید درآمدی دارید حتما بحث طراحی وب و اپ رو جدی دنبال کنید و دنبال تکنولوژی های بروز تو این زمینه باشید. سعی میکنم یه مطلب جدا درمورد ورود به بحث طراحی وب و اپ بنویسم چون تجربه اصلیم تو این بخش بوده.
کسایی که این مرحله رو هم رد کردن بهتره به خیلی وقتشونو با آزمون و خطا تلف نکنن و یه راست برن سر چیزی که نیاز دارن. طراحی و توسعه وب خیلی فیلد خوبیه واسه درآمد زایی ولی اگه بتونین هوش مصنوعی رو شروع کنید خیلی به نفعتون خواهد بود و اگه واقعا تخصصی کار کنید هم بازار کار خوبی داره هم زمینه های تحقیقاتی فراوونی داره که میتونید توش فعالیت کنید ولی باز بهترین زبان به نظرم پایتون هستش واسه شروع. سعی میکنم تو یه مطلب جدا چنتا منبع خوب واسه هوش مصنوعی هم معرفی کنم.
البته این زبان هایی که گفتم زبان های روتینی بود که معمولا کاربرد بیشتری دارن. بعضا با توجه نیازتون مجبورید برید سراغ زبان های دیگه مثل من که رفتم سراغ کد زنی برای AVR ولی اگه قبلش این زبانهایی که گفتمو رو بلد باشید یادگیری زبان جدید واستون اصطکاک کمتری خواهد داشت. درضمن چیزی رو هم از دست ندادید و مطمئن باشید که این زبان ها هم به دردتون میخورن.
سعی کردم یه چند خط پیشنهاد کوچیک بکنم که مثل من موقع شروع برنامه نویسی نرید سراغ یکی از سخت ترین زبان های ممکن. البته کاری که اون موقع کردم کاملا قابل دفاع بود ولی اگه قبل از اون زبان یه زبان دیگه رو یاد میگرفتم کارم خیلی آسونتر میبود. یکی از مشکلات دیگه هم منابع هستش. معمولا دانشجوها و سنین بالاتر تو این زمینه مشکلی ندارن و انتخاب منبع خوب برمیگرده به سلیقه خودشون که با کدوم یکی بیشتر حال میکنن ولی واسه بچه های دوره اول منابع مناسب خیلی کمه و من اصلا نمیشناسم و باید به خوندن منابعی که واسع سطوح بالا نوشته شده عادت بکنن :)
تلاشمو کردم که تا حد امکان کوتاه باشه امیدوارم به دردتون بخوره. شما هم تجربیاتتونو تو نظرات بگید شاید این پست یه منبع خوب از تجربیات برنامه نویسا بشه برای کسایی که میخوان این مسیرو شروع کنن.