پیش نیاز برنامه نویسی
قبل از شروع به یادگیری برنامه نویسی باید یک سری تواناییها را در خود پرورش داده و با پیش نیازهای آموزش برنامه نویسی آشنا شوید. یادگیری این تواناییها قبل از شروع کار علاوه بر این که پیشنیاز برنامه نویسی محسوب میشود، کمک میکند تا به زبان برنامه نویسی مورد نظر خود زودتر مسلط شده و راحتتر به جواب سوالاتتان برسید. در ادامه این پیشنیازها را به شما معرفی میکنیم.
هدف گذاری و انگیزه یادگیری برنامه نویسی
اولین و مهمترین پیش نیاز برای شروع برنامه نویسی، داشتن هدف است! قبل از شروع برنامه نویسی باید بتوانید به این سوال جواب دهید: “چگونه برنامه نویسی را شروع کنیم؟” اگر بتوانید به این سوال به صورت روشن جواب دهید، یعنی میتوانید به سراغ گامهای بعدی بروید. جواب دادن به این سوال از آن جهت مهم است که میتواند آغازگر قدم گذاشتن شما به یک دنیای بزرگ و بی انتها باشد. خیلی وقتها در برنامه نویسی به مسائل یا مشکلات پیچیدهای برخورد میکنید که گاهی لازم است ساعتها و روزها برای حل آنها زمان بگذارید و این شرایطی است که گاهی تحمل یا دوست داشتن آن نیاز به عشق دارد! عشق به چه چیزی؟ به هدف!
آشنایی با زبان انگلیسی
زبان انگلیسی زبان اول علم در دنیاست، به این معنا که برای پیشرفت و تحقیق در اکثر حرفهها و تخصصها شما احتیاج به درصدهای متفاوتی از آشنایی با این زبان دارید. متاسفانه منابع فارسی برای برنامه نویسی معمولا محدود هستند و اگر برای پیدا کردن جواب یک سوال به فارسی جستجو کنید، این احتمال زیاد است که ناامید و دست از پا درازتر و عصبانی مرورگر خود را ببندید!
معمولا برنامه نویسهای دنیا تجربیات خود را در بلاگهای خود و یا در قسمت مقالات سایتهای معتبر به زبان انگلیسی با دنیا به اشتراک میگذارند. همینطور برنامه نویسان زبانهای مختلف، سوالات و مشکلات خود را برای پاسخگویی توسط برنامه نویسهای دیگر دنیا در انجمنهای معتبر و معروفی مثل stackoverflow به اشتراک میگذارند.
برنامه نویسان دیگر به این سوالات جواب میدهند و در صورت ارائه راهنماییهای مفید از سایر کاربران امتیاز دریافت میکنند. این امتیازات به عنوان رزومه در پروفایل آنها ضبط میشوند. پس برای یک برنامه نویس مهم است که در این انجمنها فعال باشد.
با دانستن زبان انگلیسی شما حتی میتوانید با سایر برنامه نویسان دنیا به طور شخصی مکاتبه داشته باشید و از تجربیات آنها استفاده کنید. همینطور میتوانید از طریق سایتهای فریلنسری بین المللی با دریافت پروژه، درآمد دلاری داشته باشید.
البته لفظ آشنایی با زبان انگلیسی به هیچ وجه به این معنی نیست که لازم است به زبان انگلیسی مسلط باشید و به قول معروف مثل بلبل انگلیسی صحبت کنید! تنها کافیست بتوانید متنهای تخصصی کامپیوتر و برنامه نویسی را بخوانید و درک کنید. معمولا این متنها تعداد زیادی واژگان مشترک و تکراری دارند، بنابراین اگر شروع به خوندن این متنها کرده و جسارت داشته باشید، میتوانید در مدت کمی به درک و خواندن آنها مسلط شوید.
آشنایی با الگوریتم
یکی از اصلیترین پیش نیازهای آموزش برنامه نویسی، آشنایی با الگوریتم است. الگوریتم، یک روش ساخت یافته و مرحله به مرحله حل مسئله، یک زبان بینابینی بین زبان انسانی و زبان برنامه نویسی میباشد. افرادی که با دانش الگوریتم و فلوچارت آشنا هستند میدانند که چطور یک مسئله بزرگ را به بخشهای کوچک و بعد به مراحل قدم به قدم قابل فهم برای کامپیوتر تقسیم کنند. این یعنی وقتی شما با یک مسئله مواجه میشوید، میتوانید دقیقا در ذهن خود تصور کنید که مسئله چطور توسط کامپیوتر حل میشود و تقریبا همیشه میدانید باید از کجا شروع کنید. همینطور میدانید صرف نظر از نوع زبان برنامه نویسی، چگونه شیوهای که برای حل مسئله در ذهنتان دارید را به کامپیوتر منتقل کنید.
الگوریتم چیست؟
برای اینکه کامپیوتر بتواند کاری را انجام دهد، باید یک نرم افزار کامپیوتری برای آن بنویسید. برای اینکه یک برنامه کامپیوتری بنویسید باید به صورت مرحله به مرحله و دقیق به کامپیوتر بگویید که دقیقا میخواهید چه کاری انجام دهید. سپس این وظیفه کامپیوتر است که تمام کاری که میخواهید را به صورت مرحله به مرحله انجام دهد.
حالا تنها مسئله اینجاست که این دستورات دقیق و مرحله به مرحله چگونه به دست میآیند و اصلا کامپیوتر چگونه باید این کارها را انجام دهد؟ اینجا جاییست که پای الگوریتم به میان میآید! مثلا در الگوریتم جمع دو عدد ما نیاز داریم به صورت زیر عمل کنیم:
- عدد a را بگیر
- عدد b را بگیر
- a+b را در c بریز
- c را نمایش بده
حالا فقط کافیست که این دستورات مرحله به مرحله که در واقع یک جور شبه کد یا سودوکد محسوب میشوند، به زبان برنامه نویسی مورد نظر ما ترجمه شوند.
همه اینها یعنی اینکه زبان برنامه نویسی و پلتفرمی که انتخاب میکنید، هرچه که باشد مهم نیست بلکه شیوه حل مسئله مهم است. پس قطعا بهتر است قبل از رفتن به سراغ یادگیری زبان برنامه نویسی برای راحتتر کردن کار خود و کوتاهتر کردن مدت یادگیری، با الگوریتم و حتی فلوچارت آشنا شوید.
ریاضیات
برای تصمیم گیری درست در برنامه نویسی و نوشتن شرطها و حلقهها با منطق درست، شما احتیاج به دانستن علم ریاضی دارید اما نمیتوانیم بگوییم که احتیاج به مفاهیم پیچیده ریاضی مثل انتگرال یا دیفرانسیل دارید. معمولا تنها مبحثی از ریاضیات که در برنامه نویسی به آن احتیاج دارید منطق بولی و کمی احتمالات است.
بدون دانستن علم منطق، درک شرطهای تو در تو در برنامه نویسی و نوشتن یک روند منطقی برای الگوریتم برنامه کمی مشکل و زمانگیر میشود.
تایپ
حتما کسانی را دیدهاید که هنگام تایپ کردن کامپیوتر انگشت نشانه خود را به سمت کیبرد میگیرند و تقریبا هر سی ثانیه یک کلید را فشار میدهند. حالا فرض کنید با این وضعیت ملال آور برنامه هم بنویسند! بنابراین بهتر است قبل از شروع جدی به کدنویسی، حتما سعی کنید مهارتهای تایپ خود را قوی کنید و چه بهتر که یاد بگیرید از هر دو دست خود برای کد نویسی کمک بگیرید.
البته اگر این مهارت را در خودتان نمیبینید احتیاجی نیست ذهنتان را درگیر این موضوع کنید چون معمولا به مرور زمان مهارت تایپ شما با کد زدنهای زیاد قویتر میشود.
آشنایی با کامپیوتر
برای برنامه نویسی احتیاج به حداقل آشنایی با کامپیوتر دارید. شاید احتیاجی به گفتن این پیش نیاز نباشد، اما به هر حال کار از محکم کاری عیب نمیکند! باید بتوانید پوشههای جدید بسازید یا حذفشان کنید. همچنین بتوانید ویرایشگر کامپیوتر خود را باز کنید و یا نرم افزارهای مختلف را نصب یا حذف کنید.
آشنایی با اینترنت
گفتیم که برای رسیدن به جواب سوالات خود احتیاج دارید به انجمنهای برنامه نویسی مثل stackoverflow یا سایتهای مقالات برنامه نویسی مراجعه کنید. پس همانطور که مشخص است احتیاج دارید بتوانید از اینترنت استفاده کنید. مسلما این احتیاج، اگر انتخاب شما برنامه نویسی وب باشد، قویتر هم میشود! یعنی برای برنامه نویسی وب احتیاج دارید پای خود را فراتر از آشنایی بگذارید و با مفاهیم مقدماتی وب و شبکه هم تا حدودی آشنا شوید.
برای یادگیری برنامه نویسی به چه چیز هایی احتیاج داریم؟
شما قبل از شروع یادگیری برنامه نویسی به یک سری ابزار و وسایل کار احتیاج دارید. اما نگران نباشید چون همه این ابزارها به راحتی قابل تهیه هستند و یا حتی به طور پیشفرض آنها را دارید. در ادامه لیست چیزهایی را که برای شروع کار لازم دارید و دلیل مهم بودن آنها را معرفی میکنیم.
- کامپیوتر و سیستم عامل: مسلما برای نوشتن برنامههای کامپیوتری، کامپایل و اجرای آنها به کامپیوتر احتیاج دارید و کامپیوتر بدون سیستم عامل چیزی جز یک جسد نیست!
- اینترنت: ممکن است انتخاب شما برای برنامه نویسی، زبانهای تحت وب نباشد اما همیشه ممکن است به مشکلاتی برخورد کنید و احتیاج به کمک داشته باشید. باید بتوانید از طریق اینترنت برای پیدا کردن مشکل خود جستجو کنید و یا آن را در انجمنهایی مثل سایت stackoverflow بپرسید.
- مرورگر یا browser: برای جستجو در اینترنت یا خوندن مقالات مرتبط به یک مرورگر مثل کروم یا فایرفاکس احتیاج دارید. اگر قصد ورود به حوزه برنامه نویسی وب را داشته باشید باید بتوانید برنامههای خود را روی مرورگر اجرا و تست کنید.
- ویرایشگر متن یا text editor: برای اینکه بتوانید کدهای ساده را در کامپیوتر بنویسید، داشتن یک ویرایشگر متن تقریبا کافی به نظر میرسد. معمولا سیستمهای عامل به طور پیشفرض یک ویرایشگر متن در خود دارند. مثلا ویندوز دارای ویرایشگر متن notepad، لینوکس Vim و مکینتاش textEdit است.
- کامپایلر: نرم افزار شما باید بعد از نوشته شدن از زبان سطح بالای نزدیک به زبان انسان به زبان ماشین ترجمه شود و این کار را کامپایلرها انجام میدهند. اگر برای برنامه نویسی از یک IDE استفاده میکنید، آن IDE معمولا دارای یک کامپایلر نیز میباشد ولی اگر برای برنامه نویسی از یک ویرایشگر متن استفاده کنید، مجبور هستید از یک کامپیایلر به صورت جداگانه استفاده کنید.
- IDE: بعد از پیچیدهتر شدن زبانهای برنامه نویسی، کم کم IDEها پا به میدان برنامه نویسی گذاشتند. IDE مخفف عبارت Integrated Development Environment به معنی محیط یکپارچه توسعه (نرم افزار) است. IDEهای پیشرفته از خیلی جهات کار برنامه نویسی را راحتتر میکنند. آنها میتوانند دارای راهنمای کد، ابزارهای تست و دیباگ کد و حتی کامپایلر باشند. مثلا برای برنامه نویسی به زبان جاوا میتوانید از IDE نت بینز، برای برنامه نویسی اندروید از اندروید استودیو و برای برنامه نویسی به زبان PHP از PHPStorm استفاده کنید.