برنامه نویسای خوب چطوری برنامه نویس شدن؟

ایده ی نوشتن این پست برمیگرده به مواجه شدن همیشگی با این سوال : " از کجا شروع کنم؟" یا مثلا سوالاتی مثل این : " من میخوام برنامه نویسی رو شروع کنم اما نمیدونم از کجا شروع کنم؟" شما هم حتما تا به حال به این نوع سوالا برخورد کردید و یا بخشی از جوونیتون رو پای رسیدن به یک راه درست از دست دادید ( که اگه اینطوره تبریک میگم شما حالا یک کارکشته هستید )مخاطب این پست فقط برنامه نویسای مبتدی نیستن چه بسا که برخی از برنامه نویس های با سابقه ام با خوندن این پست یاد خاطراتشون بیوفتن و چیزهایی به گفته های من اضافه کنند.پس بریم سراغ مراحل و از این خط به بعد با یک مخاطب فرضی که یکی از سوالای بالا رو پرسیده رو به رو هستیم و جوابش رو میخواهیم هرچه دقیق تر بدیم.مرحله اول : تعیین هدفخب شما چرا میخوای برنامه نویس بشی ؟! اصلا چی شد که خلا برنامه نویس شدن رو توی وجودت حس کردی؟شنیده میشه این روز ها با مقالاتی که وجود داره اغلب میگن بخاطر درامد برنامه نویسی ، بخاطر پول ، نون تو این شغله داداش ! و ازین حرفا که اگه علت برنامه نویس شدنتون اینه باید عرض کنم شما در مشاغل دیگه قطعا موفق تر از برنامه نویسی خواهید بود.اما اگر دلایلی مانند علاقه ، کنجکاوی ، احساس نیاز به خلق یک ایده و ... رو دلیل برای ورود به دنیای برنامه نویسی می دونید باید بگم که خوش اومدید و می تونید به مرحله ی بعدی برید.مرحله دوم : تعیین پلتفرمدنیای برنامه نویسی یک دنیای خیلی بزرگه و مهم ترین چیز اینه که مشخص کنی برای چه پلتفرم هایی میخوای برنامه نویسی کنی؟توسعه وب، توسعه اپلیکیشن، توسعه برنامه های مخصوص ویندوز/مک/لینوکس، هوش مصنوعی، پردازش تصویر، حوزه های مهندسی، هک، بیگ دیتا و ... از جمله شاخه های دنیای برنامه نویسی به حساب میان.یادتون باشه برای انتخاب یک شاخه ی خوب باز هم پول رو ملاک قرار ندید! شما توی هر حوزه ای بهترین باشید حتی توی همین ایران هم دنبالتون میوفتن برای کار پس باز هم علاقه رو در نظر بگیرید تا از پس چالش های راه به سادگی بر بیاید.مرحله سوم : انتخاب راه درستاین مهم ترین مرحله هست ! توصیه میکنم اگه میخواید برنامه نویس خوبی باشید حتما زبان انگلیسی خودتون رو تقویت کنید.چندین ترم به کلاس زبان برید و لازم نیست که مثل بلبل انگلیسی صحبت کنید اینکه توانایی Reading خوبی داشته باشید و بتونید نیازهاتون رو در Writing برطرف کنید کافیه.سپس واقعا بهتون توصیه میکنم دور منابع ایرانی رو خط بکشید ! 99 درصد منابع ایرانی فقط برای سود مالی تشکیل شدند و هیچ اهمیتی به کیفیت آموزش نمیدن و تنها یک Doc مطالعه کردند یا یک فیلم از یوتیوب دیدند و عین همون رو پیاده سازی می کنن یا دیگه خیلی لطف کنند نمونه مثال های خود Doc رو میزنن!فرق زیادی بین یک برنامه نویس و کد نویس هست که امیدوارم در پایان این مقاله بهش پی ببرید.اما لازمه بدونید هیچ منبع ایرانی ای خوب نیست ! به سراغ Doc اصلی زبان و یا کتابخانه و یا فریمورک مورد نظرتون برید و بخونید و در Community هاش شرکت کنید و فعال باشید.مرحله چهارم : لطفا شکست بخوریدخواهش میکنم شکست بخورید. شکست باعث میشه که اعتماد به نفس کاذب شما در اوایل برنامه نویسی خرد بشه و این جا یا تلاش می کنید و ادامه میدید و اون توهمی که از خودتون داشتید رو به واقعیت تبدیل می کنید یا شما مناسب برنامه نویسی نبودید و میدان رو برای حضور دیگران خالی می کنید.مرحله پنجم : رفتار تارزان را نداشته باشیدخیلی از دوستان هستند که با یادگرفتن Base یک زبان و یا خسته شدن از آن و یا تعریف های بی جای دیگران از زبان های دیگه سریعا کوچ می کنند و به قولی ازین شاخه به اون شاخه می پرند مثل تارزان! لطفا اینطور نباشید و بدونید که یادگرفتن یک زبان برنامه نویسی تنها نحوه ی نوشتن اون زبان نیست بلکه شما باید ساختار اون زبان رو بشناسید باید مفهوم برنامه نویسی رو درک کنید و در انتها باید یک آرشیتکت در زبان مورد نظرتون باشید تا زمانش فرا برسه که بدونید چطوری زبان های دیگه رو هم امتحان کنید.مرحله ششم : گیت را شخم بزنیدبه ریپو های مختلف گیت هاب برید و کد های زیادی رو مطالعه کنید و سعی کنید تا جایی که می تونید اون ها رو تغییر بدید و با روش خودتون بنویسید حتی اگه شده یک کامنت اضافه کنید تا با روش های مختلف حل مسئله آشنا بشید.مرحله هفتم : به روز بمانیدرپوهای گیت هاب ، وبسایت medium ، همین ویرگول خودمون ، انجمن های تخصصی ، یوتیوب ، وبسایت اصلی یا همون Doc رسمی زبان شما و ... محل مناسبی هستند که شما را به روز نگه دارند.باید بدونید در برنامه نویسی هیچ روزی نیست که بیدار بشید و بگید خب دیگه از امروز هیچی لازم نیست یاد بگیرم و فقط کد میزنم ! نه این تصور اشتباهههمیشه برای یادگیری Best Practice ها و Design Pattern ها و داشتن یک Performance بهتر، باید در طول روز یک چهارم وقتتون رو به مطالعه اختصاص بدید و تاثیرش رو در کدها و پیشرفتتون ببینید.مرحله هشتم : به دیگران کمک کنیدباور کنید اگر حتی همه ی جمعیت کره زمین هم برنامه نویس بشوند قرار نیست جای شما رو تنگ کنند پس به دیگران کمک کنید و بدونید با کمک کردن به دیگران می تونید دنیای بهتری بسازید.در انتها هم لازمه بگم از حاشیه دوری کنید!هیچوقت در بحث هایی مثل این که چه زبانی بهتره چه زبانی بدتره شرکت نکنید.برای وقتتون ارزش قائل باشید و همیشه در حال یادگیری :)