برنامه نویسی و چالش ها - قسمت اول

توی پست قبل گفتم که می خوام توی پست بعد که این پست باشه بیشتر در مورد برنامه نویسی و چالش هاش صحبت کنم، یه نگاه کلی بهش داشته باشم و بعدش یکسری موارد رو برای کسانی که تازه می خوان برنامه نویسی رو شروع کنن بگم و بعدش هم بگم چرا ورود به برنامه نویسی توی چند سال اخیر اینقدر زیاد شده. اول از همه بگم که من 6 ساله برنامه نویس ام و مطالبی که می نویسم و تجربیاتی که میگم برای یک برنامه نویس 6 ساله است و ممکنه بعضا از دید اساتید این حوزه اشتباه باشه که اگر ببینم چنین موردی رو پست رو آپدیت می کنم. مورد بعد هم اینکه توی این پست مباحث مربوط به تازه وارد هارو بررسی می کنم و توی پست بعد بقیه مطالب رو بررسی میکنم.خب اول کار می خوام از اولین قدم ها شروع کنم و برای کسانی که تازه می خوان وارد این حوزه بشن صحبت کنم. همین ابتدای کار بهتون خوش آمد میگم و امیدوارم مسیر جذابی رو داشته باشید و خوشحالم که این جامعه اینقدر بزرگ و بزرگ تر میشه. به صورت کلی توی این قسمت یکسری سوال مطرح می کنم و بهشون جواب میدم. اگر سوال دیگه ای مد نظرتون هست که من ننوشتم یا بهش اشاره ای نکردم، توی کامنت ها مطرحش کنید.سوال اول: چه کسانی می تونن برنامه نویس بشن؟ به صورت کلی هر کسی که توانایی حل مسعله رو داره و می تونه از روش هایی که بلده به صورت مستقیم یا ترکیبی برای حل مساعل مختلف استفاده کنه و همچنین ابزار و وسایل پایه برنامه نویسی رو داره می تونه برنامه نویسی رو شروع کنه. سوال دوم: چه ابزار و وسایلی برای برنامه نویسی لازمه؟شما برای شروع یادگیری برنامه نویسی به ابزار خاصی نیاز ندارید. یک لپتاپ و یا PC (personal computer - رایانه شخصی یا همون کامپیوتر مرسوم خودمون) نیاز دارید تا بتونید برنامه نویسی رو شروع کنید. نیاز هم نیست برای شروع یک سیستم خیلی خفن و حرفه ای تهیه کنید. میتونم بگم حداقلش چیزی شبیه به اینه:یک سیستم با حداقل رم 4 و سی پی یو Celeron یا Pentium و هارد 256.سیستم عاملی که میشه روش نصب کرد ویندوزهای 10 و قبلش هست. اما جلوتر یکسری نکته درباره سیستم عامل بهتون میگم. از نظر قیمت هم توی بازار بین 5-10 تومن هست و حتی ممکنه دست دومش کمتر از 5 تومن هم باشه. بازم تاکید میکنم، برای شروع نیاز نیست سیستم خیییلی حرفه ای داشته باشید. چون شما عملا کار خاص و سنگینی انجام نمی دید. همونطور که تو لیست من اصلا حرفی از کارت گرافیک نزدم و حتی کارت گرافیک آنبوردم جواب کار شمارو میده.سوال سوم: پیش نیازهای یادگیری چیه؟به عنوان پیش نیاز شما باید درک خیلی مبتدیانه ای از کامپیوتر داشته باشید و اطلاعاتی از مفاهیمی مثل اینکه سیستم عامل چیه، رم چیه، CPU چیه و چيکار میکنه و ... داشته باشید. در واقع یک دید کلی نیازمند شروع هست. همچنین باید بتونید در سطح یک کاربر خیلی ساده با یکی از سیستم عامل های مرسوم (ویندوز یا لینوکس یا مک و ...) کار کنید.سوال چهارم: برای شروع برنامه نویسی، از چه زبانی شروع کنم؟می تونم بگم این یکی از مهم ترین سوالای کسانی هست که میخوان برنامه نویسی رو شروع کنن و همیشه وقتی این رو سرچ میکنن گوگل یه لیستی از زبان هارو پرت می کنه سمتشون و خب طبیعتا میون اینهمه خوشگل کیو انتخاب کنم سخته و بیخیال میشن?. برای انتخاب زبانی که میخواین باهاش برنامه نویسی رو شروع کنین باید به چند تا نکته دقت کنید و حواستون باشه بهشون. درغیر این صورت ممکنه طی مدت کوتاهی کلا برنامه نویسی رو ببوسین بذارین کنار:1 - اول راجع به انواع زبان های برنامه نویسی (که دو نوع کامپایلری و مفسری دارن) تحقیق کنید.2 - سینتکس (نوع نگارش کد) زبان رو بررسی کنید. برای شروع سمت زبانی نرید که پردازش و فهمش برای انسان سخت باشه یا از قواعد خیلی خاصی پیروی کنه.3 - جامعه آماری زیادی داشته باشه. یعنی افراد زیادی در سرتاسر دنیا با اون زبان کد بزنن. اینطوری اگر یک زمانی مشکلی پیدا کردید، با یه سرچ ساده مشکلتون برطرف میشه. ولی اگه جامعه آماری زبان کم باشه، طبیعتا راه حل های کمتری برای مشکلات شما توی اون زبان وجود داره.برای مواردی که گفتم بخوام مثال بزنم، زبان های مثل پایتون، جاوا اسکریپت، پی اچ پی، روبی و... هستن که تقریبا ویژگی های بالارو پوشش میدن و ابزار ها و برنامه های خفن زیادی با هرکدوم نوشته شده.سوال پنجم: چه نکته هایی برای پیشرفت سریع تر وجود داره؟برنامه نویسی راز خاصی نداره که بگم این کارو کنید اون کارو کنید برنامه نویس خفن تری هستید. تو فیلما نشون میدن که برنامه نویسا ها شبا بیدارن و خواب ندارن، 24 ساعت روزو قهوه میخورن، با کسی حرف نمی زنن و ... که خب گفتم، اینا تو فیلماست( البته اکثر برنامه نویس ها کلا قهوه میخورن، ولی نه به اون مقیاس). به صورت کلی برای پیشرفت سریع تر من خودم از این نکته ها استفاده می کنم و تا الانم راضی بودم:1 - کد بزنید، مشکل پیدا کنید، سرچ کنید: توی پست قبل گفتم که پدرم همیشه وقتی به مشکل میخوردم و ازش میخواستم مشکلمو حل کنه میگفت خودت سرچ کن پیدا کن، من بگم به دردت نمیخوره. این یکی از اصلی ترین نکته ها برای پیشرفت سریع تره. شما باید به عنوان یک برنامه نویس بتونید راجع به هر موضوعی سرچ کنید. از گوگل گرفته تا ویدیو یوتیوب دیدن و کتاب خوندن و ... . فرقی نمی کنه. شما باید بتونید سرچ کنید و به اصطلاح دست به سرچتون خوب باشه. برنامه نویسی که نتونه تحقیق کنه عملا به درد نمیخوره.2 - صبر داشته باشید: به عنوان یک برنامه نویس که تازه این کار رو شروع می کنه، طبیعیه که اوایل اشتباه زیاد داشته باشید و یا بعضی مفاهیم رو متوجه نشید. اگر یک پکیج ویدیو آموزشی تهیه کردید و 50 قسمت آموزش میده و شما تو قسمت اول به مشکل خوردید، سریعا یادگیری رو متوقف نکنید و سرچ کنید. صبور بودن مهمترین سلاح یک برنامه نویسه و اگه اینجا بهش عادت کنید، تو خیلی جاهای دیگه زندگی واقعیتون به کارتون میاد.3 - برای شروع حساس نباشید: گفتم صبر داشته باشید، ولی این مورد رو نه. می تونم بگم یکی دیگه از مهمترین نکاتی که خیلیا برنامه نویسی رو شروع نمی کنن اینه که خیلی حساس میشن. مثلا مورد داشتیم طرف میخواسته پایتون رو استارت بزنه و در حد مقدماتی یادش بگیره، 1 سال براش دنبال پکیج و منبع آموزشی به اصطلاح خوب گشته. درحالی که پایتون مقدماتی رو نهایتا 3 ماهه میشه مسلط شد. نمیگم بی گدار به آب بزنید و برید یه پکیج چرت و پرت بخرید. ولی اونقدر هم نیاز به وقت تلف کردن نیست. وقتی گوگل می کنید پکیج آموزش برنامه نویسی فلان زبان، معمولا سایت هایی که گوگل توی صفحه اول بهتون نشون میده، همگی در سطح خوبی زبان رو به شما یاد میدن. نسبت به قیمت هم حساس نباشید. یک پکیج رایگان می تونه از پکیج پولی بهتر باشه. ولی خب اینم به این معنی نیست که همیشه از دوره های رایگان استفاده کنید. برای یادگیری باید هزینه کنید.امیدوارم این پست مفید بوده باشه و ازش لذت برده باشید. اگر نظری دارید یا سوالی دارید که من فراموش کردم مطرحش کنم، خوشحال میشم مطرحش کنید و منم تا جایی که بتونم جواب میدم. توی قسمت بعد هم که گفتم موارد دیگه این سری پست رو بررسی میکنم. پس تا پست بعد: شاد باشید ??