آموزش کد نویسی با ChatGPT

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

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

ChatGPT در چه نوع کدنویسی‌هایی عملکرد خوبی دارد؟

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

راهنمای استفاده از ChatGPT برای نوشتن کد

اگر از ChatGPT بخواهید یک برنامه کامل را از ابتدا تا انتها نوشته و به شما تحویل دهد، موفق نخواهد شد. در نتیجه‌ اگر در مورد کدنویسی چیزی نمی‌دانید و از ChatGPT بخواهید چیزی برایتان بسازد، احتمالا به نتیحه دلخواه نمی‌رسید. جایی که ChatGPT به خوبی موفق می‌شود، در کمک به کسانی است که پیش‌تر مهارت برنامه‌نویسی دارند تا روتین‌های خاصی را بسازند و وظایف مشخصی را انجام دهند. نباید از آن بخواهید که یک اپلیکیشن که روی نوار منو اجرا شود را بسازد. اما اگر از ChatGPT بخواهید که یک روتین برای قرار دادن منو روی نوار منو بنویسد و آن را در پروژه‌تان بچسبانید، این ابزار بسیار خوب عمل خواهد کرد.
همچنین به خاطر داشته باشید که با وجود اینکه به نظر می‌رسد ChatGPT دانش تخصصی فراوانی دارد (و اغلب اوقات دارد)، از خرد لازم برخوردار نیست. بنابراین، این ابزار ممکن است بتواند کد بنویسد، اما قادر به نوشتن کدی که دارای ظرافت‌های خاص یا پیچیده‌ای باشد که نیازمند تجربه عمیق برای درک آن‌ها است، نخواهد بود. ChatGPT را برای نمایش تکنیک‌ها، نوشتن الگوریتم‌های کوچک و تولید زیرروتین‌ها استفاده کنید. حتی می‌توانید از ChatGPT کمک بگیرید تا یک پروژه بزرگ‌تر را به قسمت‌های کوچک‌تر تقسیم کنید و سپس از آن بخواهید به شما در برنامه‌نویسی این بخش‌ها کمک کند.

چگونه از ChatGPT برای نوشتن کد استفاده کنیم

۱

درخواست خود را محدود و دقیق کنید

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

۲

استفاده از ChatGPT برای کشف کتابخانه‌ها و منابع

با ادامه مثال بالا، یکی از روش‌های قدیمی استخراج داده‌ها از صفحه وب، یافتن متن بین تگ‌های پاراگراف HTML بود. اما با ظهور ابزارهای هوش مصنوعی، استفاده از یک کتابخانه AI برای انجام استخراج و خلاصه‌سازی هوشمندانه منطقی‌تر است. یکی از زمینه‌هایی که ChatGPT در آن برجسته است (و همچنین زمینه‌ای که می‌توانید به راحتی آن را بررسی کنید تا از رفتار مقتدرانه اما اشتباه آن اجتناب کنید)، یافتن کتابخانه‌ها و منابع است.

OpenAI (سازنده ChatGPT) دسترسی به API موتورهای GPT-3 و GPT-4 را می‌فروشد که دقیقاً همان کاری را انجام می‌دهد که ما می‌خواهیم. اما در این مثال، بیایید فرض کنیم که ما نمی‌خواهیم هزینه‌ای پرداخت کنیم. پس بیایید به بررسی تعامل با ChatGPT بپردازیم تا دریابیم چگونه می‌توان از چنین ابزاری به صورت رایگان در پروژه‌ای که با PHP اجرا می‌شود، استفاده کرد.

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

این اولین پرسش من است: “ده کتابخانه متن‌باز هوش مصنوعی (و زبان‌هایی که با آن‌ها کار می‌کنند) که بتوانم از آن‌ها برای تولید خلاصه‌ای از محتوای اصلی هر صفحه وب، ضمن نادیده گرفتن هرگونه تبلیغ یا مواد تعبیه شده، استفاده کنم را معرفی کن.”

این پرسش دقیقاً آنچه را که می‌خواهیم به ما می‌دهد، از جمله اشاره‌ای به پیشنهادهای OpenAI. یقیناً OpenAI در اینجا عملکرد خوبی خواهد داشت، اما برای این پروژه فرضی، نمی‌خواهیم بودجه‌ای برای هزینه‌های API در نظر بگیریم. پس، سوال را محدودتر می‌کنیم:

“آیا هیچکدام از این‌ها رایگان هستند؟”

ChatGPT در پاسخش کمی محتاط بود و در جواب گفت: «بله، همه ده کتابخانه AI منبع باز هستند و استفاده از آن‌ها رایگان است. با این حال، برخی از آن‌ها ممکن است محدودیت‌های استفاده داشته باشند یا نیاز به پرداخت برای دسترسی به ویژگی‌ها یا منابع اضافی داشته باشند.»

بر اساس این، پرسش خود را روشن‌تر کردم: “کدامیک از این کتابخانه‌ها محدودیت استفاده ندارند و نیازی به پرداخت اضافی یا لایسنس ندارند؟”

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

“از بین این هشت کتابخانه، آیا می‌توانم از هر کدام با PHP استفاده کنم؟”

پاسخ سه کتابخانه را برگرداند، اما من مطمئن نبودم که هر کدام دقیقاً چه کاری انجام می‌دهند. پس، سوال دیگری پرسیدم:
“تفاوت بین Sumy، Gensim و NLTK چیست؟”
هنوز مطمئن نبودم، بنابراین به گفتگو ادامه دادم و سپس پرسیدم:
“اگر بخواهم خلاصه‌ای از مقالات خبری وب‌سایت‌ها ایجاد کنم، کدام کتابخانه بهتر عمل می‌کند؟”

پاسخی که دریافت کردم واضح و امیدوارکننده بود: «Sumy به طور خاص برای خلاصه‌سازی متن طراحی شده است و وظیفه‌اش ایجاد خلاصه‌ای است که مهم‌ترین اطلاعات را از یک متن جمع‌آوری کند.» حالا وقت آن رسیده بود که ببینم استفاده از Sumy با PHP چه مراحلی دارد.

آخرین سوال خود را برای این بخش از پروژه پرسیدم: “آیا می‌توانید توضیح دهید چگونه از Sumy در PHP استفاده کنیم؟”

سعی کنید با سوالات بازی کنید و دستورالعمل‌های مختلف را در نمونه ChatGPT خود وارد کنید. توجه داشته باشید که در مرحله اول، تصمیم گرفتم کدام ماژول برنامه را برای کمک دریافت کنم. سپس، در این مرحله، با ChatGPT گفتگو کردم تا تصمیم بگیرم کدام کتابخانه را استفاده کنم و چگونه آن را در پروژه‌ام یکپارچه سازم. شاید این طور به نظر نرسد، اما خوب احتمالا این روش برنامه‌نویسی مدرن است! برنامه‌نویسی صرفاً نوشتن خطوط کد بر روی صفحه نیست. برنامه‌نویسی، درک این است که چگونه تمام منابع و سیستم‌های مختلف را با هم تلفیق کنیم و چگونه با تمام اجزای مختلف راه‌حل خود ارتباط برقرار کنیم. در اینجا، ChatGPT به من در انجام این تحلیل تلفیقی کمک کرد.

راستی، کنجکاو بودم ببینم آیا هوش مصنوعی Gemini از Google (که پیشتر به نام Bard شناخته می‌شد) می‌تواند به همین شکل کمک کند یا خیر. Gemini به طور واقعی نمی‌تواند کد بنویسد، اما راهنمایی های بهتری در مورد برنامه‌ریزی برنامه‌نویسی نسبت به پاسخ‌های ChatGPT ارائه داد. پس چه خوب که از ابزارهای مختلف برای رسیدن به پاسخ‌هایی که می‌خواهید استفاده کنید. مرحله بعدی، کدنویسی است.

1

از ChatGPT بخواهید نمونه کد بنویسد

بیایید واضح و شفاف باشیم: ChatGPT تنها می‌تواند در نوشتن کدهای بسیار کوچکی مانند مرتب‌ساز یا تصادفی‌ساز موفق عمل کند و قادر به نوشتن کد نهایی در برنامه های پیچیده تر نخواهد بود. ابتدا، شما باید پیکربندی برنامه را مشخص کنید. ChatGPT در تغییر کدهایی که پیش‌تر نوشته شده‌اند، فاجعه است، به این معنی که اصلاً این کار را انجام نمی‌دهد. پس، برای به دست آوردن کد جدید، شما باید از ChatGPT بخواهید که چیزی تازه تولید کند. طبق تجربه کار با ChatGPT، حتی اگر دو درخواست شما تقریباً مشابه باشد، ChatGPT ممکن است پاسخ‌هایی به شدت ضد و نقیض ارائه دهد.
پس، خلاصه ماجرا این است: ChatGPT نمی‌تواند کد شما را پیکربندی کند، یا حتی آن را تنظیم کند. این محدودیت به این معناست که باید کار را خودتان انجام دهید. همانطور که می‌دانیم، اولین پیش‌نویس یک قطعه کد، به ندرت کد نهایی است. بنابراین، حتی اگر انتظار داشته باشید که ChatGPT کد نهایی تولید کند، در واقع این تنها نقطه شروعی است که شما باید آن را به اتمام برسانید، آن را در پروژه بزرگتر خود ادغام کنید، آزمایش کنید، تصفیه کنید، اشکال‌زدایی کنید و … اما این به این معنا نیست که کد نمونه بی‌ارزش است!

سوالات متداول

آیا ChatGPT جایگزین برنامه‌نویسان شده است؟

نه، یا دست‌کم هنوز نه! برنامه‌های ChatGPT در سطح یک دانشجوی برنامه‌نویسی با استعداد در سال اول تحصیلی عمل می‌کنند، اما کمی تنبل هستند! این ابزار ممکن است نیاز به برنامه‌نویسان سطح مقدماتی را کاهش دهد، اما در سطح دانش و توانایی فعلی خود، زندگی را برای برنامه‌نویسان سطح مقدماتی (و حتی برنامه‌نویسان با تجربه‌تر) آسان‌تر می‌کند تا کد بنویسند و اطلاعات لازمشان را جستجو کنند، این قطعاً صرفه‌جویی در زمان است، اما تعداد کمی از پروژه‌های برنامه‌نویسی وجود دارد که ChatGPT بتواند به تنهایی انجام دهد، دست‌کم اکنون. در سال ۲۰۳۰ چطور؟ چه کسی می‌داند! همانطور که در بالا دیدید، من چگونه از یک گفتگوی تعاملی برای دقیق‌تر کردن پاسخ‌هایی که می‌خواستم استفاده کردم. وقتی با ChatGPT کار می‌کنید، انتظار نداشته باشید که یک سوال به تنهایی تمام کارهایتان را برایتان انجام دهد. از ChatGPT به عنوان یک یار و منبع کمکی استفاده کنید و آن اطلاعات بسیار مفیدی به شما خواهد داد. البته، حتماً این اطلاعات را آزمایش کنید.

آیا کد تولید شده توسط ChatGPT کاملاً بدون خطا است؟

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

اگر از ChatGPT برای نوشتن کد استفاده کنم، مالکیت آن با کیست؟

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

آیا ChatGPT می‌تواند در تحلیل داده‌ها و وظایف تصویرسازی کمک کند؟

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

ChatGPT چگونه با تفاوت‌ لهجه‌ها و پیاده‌سازی‌های مختلف یک زبان برنامه‌نویسی خاص کنار می‌آید؟

ما اطلاعات دقیقی در مورد این موضوع از سوی OpenAI در دست نداریم، اما درک ما از نحوه آموزش ChatGPT می‌تواند تا حدودی به روشن شدن این سؤال کمک کند. به خاطر داشته باشید که لهجه‌ها و پیاده‌سازی‌های زبان‌های برنامه‌نویسی (و نکات ریز مربوط به آن‌ها) خیلی سریع‌تر از خود زبان تغییر می‌کنند. این واقعیت، دنبال کردن تغییرات برای ChatGPT (و بسیاری از حرفه‌ای‌های برنامه‌نویسی) را دشوار می‌سازد. بنابراین اساس دو پیش فرض داریم، اول آن که هرچه تغییر لهجه در گذشته نزدیکتری رخ داده باشد، احتمال کمتری وجود دارد که ChatGPT از آن آگاه باشد و دوم آن که هرچه یک زبان به طور کلی محبوب‌تر باشد، احتمالاً داده‌های آموزشی بیشتری از آن یاد گرفته است و بنابراین دقیق‌تر خواهد بود.

نظر شما چیست؟

شما چی فکر می‌کنید؟

نقطه
Logo