برنامه نویسی رو از کجا شروع کنیم؟ چقدر کلیشه ای :)

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