۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

نحوه یادگیری زبان برنامه نویسی با استفاده از هوش مصنوعی

از دستیاران هوش مصنوعی می توانید چیزهای زیادی در مورد برنامه نویسی بیاموزید. از این نکات و تکنیک ها برای بهبود تجربه خود استفاده کنید.

از دستیاران هوش مصنوعی می توانید چیزهای زیادی در مورد برنامه نویسی بیاموزید. از این نکات و تکنیک ها برای بهبود تجربه خود استفاده کنید.

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

اخیراً، من تلاش کرده‌ام زبان Rust را بیاموزم، زبانی بی‌خطر که با در نظر گرفتن عملکرد، قابلیت اطمینان و بهره‌وری ساخته شده است. در انجام این کار، چند تکنیک برای استفاده از دستیارهای کدنویسی هوش مصنوعی یاد گرفتم که می‌خواهم برای بهبود تجربه یادگیری شما با شما به اشتراک بگذارم.

در پایان این پست، باید چند مهارت جدید مبتنی بر هوش مصنوعی داشته باشید که می‌توانید در طول سفر یادگیری خود به کار ببرید و به سمت اهداف خود تسریع کنید. در محدوده این مقاله، وقتی می‌گویم هوش مصنوعی، منظور دستیارهای کدنویسی مبتنی بر AI مبتنی بر مدل‌های زبان بزرگ، مانند Amazon Q Developer (سابق CodeWhisperer)، GitHub Copilot، و دستیار هوش مصنوعی JetBrains. می‌توانید تمام نکات زیر را برای ابزار انتخابی خود اعمال کنید.

به دانش پارامتریک مشکوک باشید

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

این برای ما به عنوان کاربران چه معنایی دارد؟ در حالی که این سیستم ها می توانند مفید باشند، محدودیت هایی در زمان و منابع مورد نیاز برای جمع آوری داده ها و آموزش مدل دارند. برای مثال، OpenAI مدل ChatGPT 4 Turbo را آموزش داده است. a> در مورد اطلاعات تا دسامبر ۲۰۲۳، و محتوای مجموعه داده ناشناخته است. از دیدگاه کاربر، در مورد اینکه آیا دانش “کامل” در هر مدل خاصی وجود دارد یا خیر و چرا گاهی اوقات ممکن است ما از پاسخ های آن غرق شویم، تردید وجود دارد.

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

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

به طور خلاصه، برای درک اینکه چه زمانی هوش مصنوعی اشتباه می کند، به “هوش واقعی” نیاز است.

کد را بخوانید و توضیح را درخواست کنید

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

اصول مدیریت هزینه Kubernetes

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

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

لطفاً کد زیر را توضیح دهید

“ زنگ زدگی

// کد زنگ به اینجا می رود

“`

همچنین، مفاهیم مهم زبان را از توضیحات در یک لیست گلوله‌ای فهرست کنید تا بتوانم تحقیقات بیشتری انجام دهم.

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

دستیار هوش مصنوعی JetBrains به شما امکان می دهد الگوهای سریع را برای استفاده مجدد ذخیره کنید، که در هنگام پرش بین پروژه های مختلف بسیار مفید است.

نظرات درون خطی پرمخاطب را درخواست کنید

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

یادگیری زنگ زدگی با استفاده از ai 01

با دستیار هوش مصنوعی JetBrains، می‌توانید نمای Diff از تغییرات را در یک نمای کنار هم یا یکپارچه دریافت کنید. نمای به شما امکان می دهد تغییرات را به سرعت بررسی کنید و قبول یا رد آنها را انتخاب کنید.

بازی با گزینه های مختلف

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

در اینجا درخواستی است که من برای کشف ویژگی‌هایی در زبان Rust استفاده کرده‌ام که به من امکان می‌دهد پیگیری و تحقیقات بیشتری انجام دهم.

با توجه به API زیر، سه پیاده سازی مختلف را به من نشان دهید

“ زنگ زدگی

fn add(x: i32، y:i3) -> i:32  {

    // پیاده‌سازی به اینجا می‌رود

}

“`

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

برخی ابزارها، مانند Amazon Q Developer، گزینه‌هایی را به صورت درون خطی ارائه می‌دهند و به شما امکان می‌دهند بدون خروج از متن ویرایشگر خود، نمونه‌ها را طی کنید. با فشار دادن کلیدهای جهت‌نمای راست و چپ، می‌توانید بین گزینه‌ها حرکت کنید تا زمانی که یکی را که دوست دارید پیدا کنید.

یادگیری زنگ زدگی با استفاده از ai 02

زمینه بیشتر همیشه بهتر است

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

ServiceNow، StarCoder LLM رایگان Hugging Face در Copilot، CodeWhisperer قرار می گیرد.

تجربه مدرن جستجوی اینترنتی به ما آموزش داده است که سؤالات کلیدی کلیدی را در کادرهای متنی بپرسیم. پرس و جوهای سبک جستجو یک اشتباه رایج است که من می بینم بسیاری از تازه واردان به هوش مصنوعی مرتکب می شوند و می تواند آنها را با نتایج غافلگیر کند. فکر کردن به جلسات چت هوش مصنوعی به عنوان “جستجو” عادت بدی است که هنگام استفاده از دستیارهای هوش مصنوعی به کار می رود، زیرا سازندگان LLM آنها را برای پیش بینی آنچه ممکن است بخواهید ساخته اند.

بهترین راه برای به دست آوردن پیش بینی های بهتر این است که تا حد امکان طولانی و صریح باشد.

رویکردی که به خوبی کار می‌کند، درخواست مبتنی بر مثال است. هر چه بتوانید مثال های بیشتری ارائه دهید، نتایج بهتری خواهید داشت. در اینجا یک درخواست الگو وجود دارد که می تواند به شما در کشف ایده های جدید در سفر یادگیری خود کمک کند.

با توجه به سه مثال زیر، اجرای چگونه خواهد بود؟

مثال ۱:

“`

“`

مثال ۲:

“`

“`

مثال ۳:

“`

“`

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

برای ادامه مکالمه و افزایش زمینه جلسه چت، برنامه نویس آمازون Q مجموعه ای از سؤالات طبیعی را به شما ارائه می دهد تا شما را در فرآیند یادگیری درگیر نگه دارد.

یادگیری زنگ زدگی با استفاده از ai 03

به تکمیل کد نگاه کنید

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

// TODO: یک عبارت مطابق برای پردازش انواع مختلف پیام ایجاد کنید

در شکل زیر می بینیم که GitHub Copilot برای تکمیل بیانیه من پیشنهاد می دهد. در نگاه اول خوب به نظر می رسد، اما برای هضم گزینه و اینکه آیا قصدم را برآورده می کند باید مکث کنم. قبل از فشار دادن Tab، که بسیار وسوسه انگیز است، باید متوقف شوم. چرا؟

یادگیری زنگ زدگی با استفاده از ai 04

دلیل این است که بررسی کنم آیا کد چیزی است که می توانم با مجموعه مهارت فعلی خود بخوانم و پردازش کنم. اگر اینطور باشد، پس من در حال پیشرفت هستم. اگر اینطور نیست، پس باید زمان بگذارم تا بفهمم شکاف های دانش من کجاست. شما هرگز نباید کدی را که به طور کامل درک نمی کنید در پایگاه کد خود بپذیرید.

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

خطاها را توضیح دهید و راه حل پیدا کنید

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

مشکل دقیقاً در اینجا در Rust Backtrace من چیست؟ پاسخ به فایل و خط و توضیح خطا را کاهش دهید و راه حل پیشنهاد کنید.

نحوه کار با نمایندگان Action، Func و Predicate در سی شارپ

“`

“`

در اینجا مثالی از استفاده از این فرمان برای درک آنچه در بک ردیابی Rust من رخ داده است آورده شده است.

یادگیری زنگ زدگی با استفاده از ai 05

ایده ها را به اشتراک بگذارید

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

پلتفرم‌های رسانه‌های اجتماعی مکانی عالی برای اشتراک‌گذاری اسکرین‌شات‌ها، نمونه‌های کد، و ایده‌ها و دریافت بازخورد ارزشمندی هستند که می‌توانید در جلسات چت آینده هوش مصنوعی بگنجانید.

چت را خلاصه کنید

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

با توجه به آنچه در مورد آن گپ زده ایم، همه سؤالات و خلاصه تک جمله ای از هر پاسخ را فهرست کنید.

پاسخ یک راهنمای مرجع سریع عالی برای جلسه آموزشی بعدی شما است. همچنین یک پست وبلاگ عالی ایجاد می کند که در آن می توانید ایده ها و تجربیات یادگیری خود را با دیگران به اشتراک بگذارید.

با هوش مصنوعی سریعتر بیاموزید

امیدوارم با استفاده از ابزارهای هوش مصنوعی برای یادگیری سریعتر و مؤثرتر، این نکات برای شما مفید بوده باشد. این ابزارها در مورد توانایی شما و کمک به شما در دستیابی به اهدافی هستند که برای خود تعیین کرده اید. من آنها را در شکل‌دهی افکار جدید و کشف افکاری که نمی‌دانستم وجود دارند، مفید یافتم.

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

خالد ابوحکمه یک توسعه دهنده نرم افزار است با ۱۶ سال سابقه کدنویسی، متخصص در فناوری های مایکروسافت دات نت. او در طول زندگی حرفه‌ای خود عناوین مختلف توسعه‌دهنده نرم‌افزار، از توسعه‌دهنده جوان تا مدیر توسعه نرم‌افزار را داشته است. در حال حاضر، او به عنوان یک مدافع توسعه دهنده برای JetBrains، با تمرکز بر اکوسیستم دات نت کار می کند.

انجمن فناوری جدید مکانی را برای رهبران فناوری – از جمله فروشندگان و سایر مشارکت‌کنندگان خارجی – فراهم می‌کند تا فناوری سازمانی نوظهور را در عمق و وسعت بی‌سابقه بررسی و بحث کنند. انتخاب ذهنی است، بر اساس انتخاب ما از فناوری هایی که معتقدیم مهم هستند و برای خوانندگان InfoWorld بیشترین علاقه را دارند. InfoWorld وثیقه بازاریابی را برای انتشار نمی پذیرد و حق ویرایش تمام محتوای ارائه شده را برای خود محفوظ می دارد. همه پرس و جوها را به doug_dineley@foundryco.com.