شنبه, 02 شهریور 1398 ساعت 15:42

پیش نیازهای شروع برنامه نویسی چیه؟

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

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

 هدف گذاری و انگیزه یادگیری

این مورد، اولین و مهم ترین پیش نیاز برای شروع هر کاریه؛ همچنین برای شروع یادگیری برنامه نویسی. برای یادگیری برنامه نویسی و برنامه نویس شدن به یه سیستم خفن با چند تا مانیتور بزرگ یا به یه اتاق یا زیرزمین تاریک پر از سیم های به هم پیچیده، شب ها تا صبح بیدار موندن  و ... که تو فیلم ها، پروفایل ها، صفحه های شاخ های مجازی و ... دیدی احتیاج نداری. اگه هم فکر میکنی با شروع یادگیری برنامه نویسی قراره ماشین عروس گل بزنی یا بشینی جلوی آیینه و با ناز و عشوه آرایش کنی و... kiss بهتره سمتش نیای، چون قراره وارد دنیایی بشی که همیشه باهات ملایم برخورد نمی کنه. خیلی وقتا در برنامه نویسی به مسائل یا مشکلات پیچیده ای برخورد می کنی که گاهی لازمه ساعت ها و روزها برای حلشون زمان بگذاری و این شرایطیه که گاهی تحمل یا دوست داشتنش نیاز به عشق داره! عشق به چی؟ به هدف! باید صبر و حوصله داشته باشی، وقت بگذاری و تلاش کنی! پس اگه فکر میکنی قراره خاله بازی کنی، بهتره سراغش نیای (شرمنده یکم تند و جدی برخورد کردم ولی خب لازم بود laughing)

آشنایی با زبان انگلیسی

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

آشنایی با الگوریتم

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

پیش نیازهای شروع برنامه نویسی

ریاضیات

احتمالا الان که اسم ریاضیات رو آوردم، کاملا از یادگیری برنامه نویسی منصرف شدین laughing شما احتیاج به ریاضیات دارین ولی نمی خوام بگم که برین سراغ یادگیری مثلثات یا دیفرانسیل و انتگرال! بیشتر چیزی که شما نیاز دارین جبر بولی، چهار عمل اصلی مثل جمع و ضرب و ... به علاوه ی کمی تا حدودی هم احتمالات و ریاضیات گسسته است. البته این دانش ریاضیات اغلب توی مبحث هایی مثل هوش مصنوعی و امثالش کاربرد داره و مثلا اگه شما میخواین طراحی وب انجام بدین، زیاد باهاشون سر و کار ندارین!

سرعت تایپ

احتمالا کسانی رو دیدن که هنگام تایپ کردن با کامپیوتر، چند دقیقه دنبال حرف مورد نظر خودشون روی کیبورد میگردن و بعد با سلام و صلوات دکمه ی بیچاره رو یه جوری فشار میدن که صداش در بیاد و بعد از 5 دقیقه که یه کلمه تایپ می کنن، قند تو دلشون آب میشه innocent حالا فکرشو بکنین با این وضع بخواین کدنویسی کنین! پس بهتره به مرور زمان سرعت تایپ کردن خودتون رو زیاد کنین و تایپ ده انگشتی روهم یاد بگیرین.

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

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

آشنایی با اینترنت

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

تلاش کنین و ناامید نشین

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

متوقف نشین و هر روز تمرین کنین

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

آخرین ویرایش در سه شنبه, 26 بهمن 1400 ساعت 16:18

3 نظرها

  • پیوند نظر مرتضی کریمی (باگنامه) پنج شنبه, 18 خرداد 1402 ساعت 23:40 ارسال شده توسط مرتضی کریمی (باگنامه)

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

  • پیوند نظر یاس پنج شنبه, 18 خرداد 1402 ساعت 18:54 ارسال شده توسط یاس

    سلام و سپاس
    آشنایی با الکترونیک و سخت افزار کامپیوتر یا اصطلاحأ همون معماری کامپیوتر بعلاوۀ علم دیجیتال چقدر ضروری هست؟
    خیلی ممنون

  • پیوند نظر پویا دوشنبه, 08 آذر 1400 ساعت 15:58 ارسال شده توسط پویا

    مختصر و مفید ... مرسی

نظر دادن

پر کردن بخش های ستاره دار (*) ضروری است! لطفا هنگام ارسال نظرات خود، عفت کلام را نیز رعایت فرمایید 😀