آیا درست است که می گویند همه باید کد نویسی یاد بگیرند؟

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