مدیرعامل انویدیا اخیراً گفته به بچهها برنامه نویسی یاد ندهید چون هوش مصنوعی همه کارهای سخت را برایشان انجام خواهد داد! با اینکه نمیتوان این واقعیت را انکار کرد که هوش مصنوعی میتواند بهترین همکار و همراه یک برنامهنویس باشد، اما همچنان یادگیری برنامه نویسی برای همه افراد ضروری است و ربطی به این ندارد که تا چه حد از هوش مصنوعی در کارهای کدنویسی خود استفاده خواهند کرد.
اگر میخواهید با دلایل ما برای چنین ادعایی آشنا شوید، در ادامه این مقاله از دیجی رو حتماً با ما همراه باشید.
صبحتهای جنجالی مدیرعامل انویدیا درباره هوش مصنوعی و برنامه نویسی
جنسن هوانگ، مدیرعامل انویدیا در اجلاس دولت جهانی (World Government Summit) در دبی اظهار داشت که به اعتقاد او دیگر نیازی به آموزش برنامه نویسی به افراد نیست، زیرا در آیندهای نزدیک تمامی فرآیند برنامه نویسی توسط هوش مصنوعی انجام خواهد شد:
وظیفه ما این است که فناوری محاسبات را به گونهای ایجاد کنیم که هیچکس مجبور به برنامه نویسی نباشد و زبان برنامه نویسی، همان زبان انسان باشد. اکنون همه در دنیا یک برنامهنویس هستند و این معجزه هوش مصنوعی است.
در حالی که هوش مصنوعی میتواند بلوکهایی از کد را به راحتی و در سریعترین زمان ممکن تولید کند، اما هنوز در این مورد بحث وجود دارد که آیا افراد برای ساخت برنامه، نیازی به یادگیری اصول برنامه نویسی دارند یا نه.
هوش مصنوعی در برنامه نویسی چقدر خوب است؟
قبل از اینکه بخواهیم حرفهای جنسن را نقد کنیم، باید به دلیلی که باعث شد او این حرف را بزند نگاهی بیندازیم.
مدلهای هوش مصنوعی موجود در اینترنت میتوانند به شما در برنامه نویسی کمک کنند. مدلهای عمومی مانند ChatGPT نیز میتوانند این کار را انجام دهند، اما برنامه نویسها میتوانید از مدل ویژهای مانند CodeGPT که به طور ویژه برای پاسخگویی به سوالات برنامه نویسی ساخته شده، استفاده کنند.
به طور کلی، این مدلهای هوش مصنوعی در تبدیل دستورات متنی به کد بسیار خوب عمل میکنند. همانطور که جنسن نیز اشاره کرده، نقطه قوت اصلی این مدلها این است که برای تولید کد با هوش مصنوعی، نیازی به دانش برنامه نویسی ندارید. فقط کافیست به زبان خود بگویید چه میخواهید تا کدها پیش رویتان قرار بگیرند و بتوانید آنها را کپی-پیست کنید و (در حالت ایدهآل) کد بدون خطایی خواهید داشت که کار مورد نظر شما را انجام میدهد.
چرا انویدیا در مورد عدم آموزش برنامه نویسی به کودکان اشتباه میکند؟
هوانگ حرف درستی زده و گفتههای او بر شواهد واقعی استوار هستند. با این حال، دلایل متعددی وجود دارد که ما را مجاب میکند همچنان آموزش برنامه نویسی را ادامه دهیم.
۱. کدهای تولید شده توسط هوش مصنوعی همچنان برای بررسی خطاهای موجود نیاز به دانش افراد دارند
کدهای تولید شده توسط هوش مصنوعی اغلب میتوانند بدون خطا اجرا شوند، اما بیعیب و نقص هم نیستند. یادگیری اصول برنامه نویسی به شما دانش لازم برای اصلاح و ارتقای کدی را که هوش مصنوعی تولید کرده، میدهد.
به عنوان مثال، CodeGPT میتواند کد بنویسد، اما باید مراقب باشید زیرا همیشه بهترین خروجی را به شما نمیدهد. آنچه به دست میآورید ممکن است دارای خطاها و اشتباهاتی باشد و از بهترین راهکارها پیروی نکند. هر بار که از CodeGPT یا هر ابزار هوش مصنوعی دیگری برای نوشتن کد استفاده میکنید، ابتدا باید تلاش کنید تا بفهمید که کد چه کاری انجام میدهد. فقط کپی و پیست کردن اصلاً ایده خوبی نیست.
این موضوع فقط به احتمال وجود خطا مربوط نمیشود؛ بلکه خوانایی کد برای انسان و اطمینان از رعایت اصول اولیه برنامه نویسی که هر برنامه نویسی باید آنها را بداند نیز بسیار مهم هستند. اگر کورکورانه کد تولید شده توسط هوش مصنوعی را به پروژه خود اضافه کنید، ممکن است باعث ایجاد انبوهی از کدهای غیرقابل درک یا بدتر از آن، آسیبپذیریهایی در نرم افزار، وبسایت یا موارد دیگر شوید که اصلاح آن در آینده بسیار سخت است.
2. برنامه نویسهای با تجربه میتوانند در حل مشکلات بهتر از هوش مصنوعی عمل کنند
برنامه نویسها در نهایت آخرین کسانی هستند که میتوانند مشکلهای موجود در یک نرم افزار را حل کنند. آنها چه برای خودشان و چه برای مشتری، باید بهترین راه را برای تبدیل یک مفهوم به واقعیت با استفاده از کد پیدا کنند.
با کسب تجربه در ساخت برنامهها، برنامه نویسان میتوانند بهتر تصور کنند که چگونه پروژهای از یک طرح روی کاغذ به یک برنامه کاربردی تبدیل میشود. چتباتهای هوش مصنوعی از چنین سطح آموزشی برخوردار نیستند که بتوانند از پروژههای قبلی یاد بگیرند و آموختههای خود را برای انجام بهتر کارها در آینده به کار بگیرند.
3. برنامه نویسها بهتر میتوانند کد را با نیازهای مشتریان تطبیق دهند
اگر برای شخص دیگری برنامه میسازید، به احتمال زیاد آنها بازخوردی در مورد نتیجه کار شما خواهند داشت. این یک بخش طبیعی از برنامه نویسی است و نظرات رفت و برگشتی بین برنامه نویس و مشتری، این اطمینان را میدهد که در نهایت چیزی که مشتری دریافت میکند کاملاً مطابق با نیازهای او است.
اگر یک فرد خودش برنامه را کدنویسی کرده باشد و به همه بخشهای آن احاطه داشته باشد، میتواند هرگونه بازخوردی را روی آن پیادهسازی کند و نسخه دوم از برنامه را به مشتری تحویل دهد و این روند را تا زمانی که مشتری راضی شود، ادامه دهد. با این حال، اگر کسی بخواهد صرفاً به کدهای تولید شده توسط هوش مصنوعی اتکا کند، بهترین کاری که میتواند انجام دهد این است که از هوش مصنوعی بخواهد تا تغییراتی ایجاد کند و امیدوار باشد که هوش مصنوعی خواسته او را به درستی درک و اعمال کند (و باز هم امکان خطا، ایجاد آسیبپذیری و غیره وجود دارد).
4. برنامه نویسها میتوانند با سرعت بیشتری با فناوریهای نو و در حال تغییر سازگار شوند
مدلهای هوش مصنوعی دانش خود را از دادههایی به دست میآورند که از پیش موجود هستند. این ویژگی باعث میشود تا آنها در بازآفرینی بخشهایی از اطلاعات موجود در اینترنت بسیار خوب عمل کنند، اما درک آخرین فناوریهای روز دنیا و روندهای جدید چندان برایشان آسان نیست.
این در حالی است که برنامه نویسها میتوانند همیشه خود را با آخرین پیشرفتها در زبان برنامه نویسی مورد نظر خود بهروز نگه دارند و آنها را در کدهایشان پیادهسازی کنند. آنها همچنین درک میکنند که کدام زبانها برای کدام کارها بهترین عملکرد را دارند و میتوانند در صورت از رده خارج شدن یک زبان، زبان مورد استفاده خود را تغییر دهند.
5. برنامه نویسها میتوانند سریعتر از هوش مصنوعی به درخواستهای پچ فوری پاسخ دهند
در نهایت، اگر مشکلی در کد پیش بیاید، کسی با دانش برنامه نویسی برای رفع آن مورد نیاز است. در خصوص یک حفره امنیتی روز صفر، زمان حرف اول را میزند و مشکل باید به سرعت شناسایی و برطرف شود (حفره امنیتی روز صفر یک نقص یا ضعف امنیتی در نرم افزار است که پیش از انتشار عمومی آن، توسط هکرها کشف میشود و به محض در دسترس قرار گرفتن میتواند خطرآفرین باشد).
این مهم نیست که کد توسط انسان نوشته شده باشد یا هوش مصنوعی؛ هر دو مستعد اشتباه هستند. با این حال، کسی که کد را به درستی درک میکند، زمان کمتری برای یافتن و درک مشکل نیاز خواهد داشت. کسی که نمیداند کد چگونه کار میکند، حتی نمیداند از هوش مصنوعی چه چیزی بخواهد!
نمیتوان گفت سخن جنسن هوانگ کاملاً اشتباه است. هوش مصنوعی به افرادی که هرگز برنامه نویسی نکردهاند، این فرصت را مهیا کرده تا کد تولید کرده و از آن استفاده کنند. با این حال، اگر کسی بخواهد چیزی برای خود یا شخص دیگری بسازد، حتماً به دانش اولیه برنامه نویسی نیاز خواهد داشت تا اطمینان حاصل کند که همه چیز به طور روان و کارآمد اجرا میشود.