<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های سجاد شاه محمدلو</title><link>https://virgool.ir/feed/@m_54256978</link><description></description><language>fa</language><pubDate>2026-11-11 16:09:57</pubDate><image><url>https://files.virgool.ir/upload/users/499871/avatar/MqnoKn.jpeg</url><title>سجاد شاه محمدلو</title><link>https://virgool.ir/@m_54256978</link></image><item><title>چطور مانند یک برنامه نویس فکر کنیم یادگیری حل  مسئل</title><link>https://virgool.ir/@m_54256978/چطور-مانند-یک-برنامه-نویس-فکر-کنیم-یادگیری-حل-مسئل-wzpt60fl23sn</link><description>اگر به برنامه نویسی علاقمند هستید ، شاید قبلا این نقل قول  را دیده اید : همه باید برنامه ریزی کردن یک کامپیوتر را یاد بگیرند ، چون به شما یاد می دهد که فکر کنید. (استیو جابز)  شما شاید شگفت زده شده اید که این چه معنایی می دهد، دقیقا ، برای فکر کردن مثله یک برنامه نویس ؟ و شما چطور انجامش می دهید ؟ ؟ اساسا ، تمام این ها در مورد یک روش موثرتر برای حل مسئله است . که در این پست ، هدف من یاد دادن این راه به شما است. که با تمام شدن این پست ، شما دقیقا خواهید فهمید چه مراحلی شما را به یک حلال مسئله بهتری تبدیل میکند.  چرا حل مسئله مهم است  ؟ حل کردن مسئله  فرا مهارت است. همه ما مسائلی داریم. بزرک و کوچک. ما چطور بعضی مواقع با آن ها مواجه میشویم ، خوب ؟ .... کاملا تصادفی  ؟ مگر این که شما یک سیستم داشته باشید ، شاید این است که شما چطور حل میکنید مسا ئل را (این همان کاریست که در  ابتدای کد نویسی خودم انجام داده ام.) :  1. تلاش برای پیدا کردن راه حل  2. اگر کار نکرد تلاش برای پیدا کردن یه راه حل دیگر 3.اگر هم کار نکرد  مرحله قبل را آنقدر تکرار کنید تا وقتی که شانس بیاورید ببینید ، بعضی مواقع شانس میاورید. اما این بدترین راه برای حل مسائل است ! و این وقت هدر دادن خیلی زیادی است. بهترین راه نیازمند الف) داشتن یک چارچوب (framework) و ب) تمرین کردن با آنتقریبا همه کارفرمایان ابتدا مهارت های حل مسئله را در اولویت قرار می دهند.مهارت های حل مسئله تقریبا مهم ترین شرطی است که کارفرمایان بیشتر از تبحر در زبان برنامه نویسی ، اشکال زدایی ، و طراحی سیستم به آن توجه می کنند.نشان دادن تفکر محاسباتی یا توانایی شکستن مسائل بزرگ ، پیچیده که با ارزش تر از مهارت های پایه فنی ضروری است برای یک شغلچارچوب داشته باشیدبرای یافتن چارچوب مناسب ، از توصیه های کتاب تیم فریس برای یادگیری ، &#34;the 4-hour chef&#34; پیروی کردم.این باعث شد که من با دو نفر واقعاً چشمگیر مصاحبه کنم: C. Jordan Ball (رتبه 1 یا 2 از بین بیش از 65000 کاربر در Coderbyte) و V. Anton Spraul(نویسنده کتاب &#34;مثل یک برنامه نویس فکر کنید: مقدمه ای بر حل خلاقانه مسئله&#34;) &#34;).من همین سوالات را از آنها پرسیدم ، و حدس بزنید چه شد؟ پاسخ های آنها کاملاً مشابه بود !به زودی ، شما نیز آنها را خواهید شناخت.یادداشت فرعی: این بدان معنا نیست که آنها همه کارها را به همان شیوه انجام داده اند. همه متفاوت هستند. شما متفاوت خواهید بود اما اگر با اصولی شروع کنید که همه ما موافق هستیم خوب است ، خیلی سریعتر کارهای زیادی خواهید داشت.&#34;بزرگترین اشتباهی که من می بینم برنامه نویسان جدید مرتکب شده اند تمرکز بر یادگیری سینتکس به جای یادگیری نحوه حل مشکلات است.&#34; -. آنتون اسپراولبنابراین ، وقتی با مشکلی جدید روبرو شدید چه کاری باید انجام دهید؟مراحل زیر است:1. درک کنیددقیقاً بدانید که چه سوالی پرسیده می شود. بیشتر مشکلات سخت سخت هستند زیرا شما آنها را درک نمی کنید (از این رو این اولین قدم است).چگونه می توان دانست وقتی مشکلی را می فهمید؟ وقتی می توانید آن را به زبان انگلیسی واضح توضیح دهید.آیا به خاطر می آورید که روی مسئله ای گیر کرده اید ، شروع به توضیح آن می کنید و بلافاصله سوراخ هایی را در منطقی که قبلاً نمی دیدید مشاهده می کنید؟اکثر برنامه نویسان این احساس را می دانند.به همین دلیل است که شما باید مشکل خود را یادداشت کنید ، نمودار را ابداع کنید ، یا در مورد آن به شخص دیگری بگویید (یا چیز دیگری ... برخی از افراد از اردک لاستیکی استفاده می کنند).&#34;اگر نمی توانید چیزی را به زبان ساده توضیح دهید ، آن را درک نمیکنید.&#34; - ریچارد فاینمن2. برنامه ریزی کنیدبدون برنامه ، در حل مسئله فرو نروید (و به نوعی امیدوارم که بتوانید راه خود را به هم بزنید). راه حل خود را برنامه ریزی کنید !اگر نتوانید مراحل را دقیق یادداشت کنید ، هیچ چیزی به شما کمک نمی کند.در برنامه نویسی ، این بدان معنی است که بلافاصله نفوذ را شروع نکنید. به مغز خود فرصت دهید تا مشکل را تجزیه و تحلیل کرده و اطلاعات را پردازش کند.برای به دست آوردن یک برنامه خوب ، به این سوال پاسخ دهید:&#34;با توجه به ورودی X ، مراحل لازم برای بازگرداندن خروجی Y چیست؟&#34;یادداشت فرعی: برنامه نویسان ابزاری عالی برای کمک به آنها در این زمینه دارند ... نظرات!3. تقسیم کنیدتوجه کنید این مهمترین مرحله از همه است.سعی نکنید یک مشکل بزرگ را حل کنید. گریه خواهید کرد.در عوض ، آن را به زیر مسئلات تقسیم کنید. حل این مشکلات فرعی بسیار آسان تر است.سپس ، هر زیر مسئله را یکی یکی حل کنید. با ساده ترین کار را شروع کنید. ساده ترین یعنی شما جواب را می دانید (یا به آن پاسخ نزدیکتر هستید).پس از آن ، ساده ترین بدان معناست که حل این زیر مسئله به حل دیگران بستگی ندارد.پس از حل هر زیر مسئله ، نقاط را بهم وصل کنید.اتصال همه &#34;راه حل های فرعی&#34;  راه حل مشکل اصلی را به شما ارائه می دهد. تبریک می گویم !این تکنیک سنگ بنای حل مسئله است. آن را به خاطر بسپارید (اگر لازم است این مرحله را دوباره بخوانید).&#34;اگر من می توانم به هر برنامه نویس ابتدایی یک مهارت حل مسئله یاد دهم ، این&#34; کاهش روش مسئله &#34;است.به عنوان مثال ، فرض کنید شما یک برنامه نویس جدید هستید و از شما خواسته می شود برنامه ای بنویسید که ده عدد را بخواند و مشخص کند که کدام شماره سومین عدد بزرگ  است. برای یک برنامه نویس کاملاً جدید ، این یک وظیفه دشوار است ، حتی اگر فقط به سینتکس پایه برنامه نویسی نیاز داشته باشد.اگر گیر کرده اید ، باید مشکل را به چیزی ساده تر کاهش دهید. به جای سومین عدد بزرگ تر ، پیدا کردن بزرگ ترین میزان در کل چیست؟ هنوز خیلی سخت است؟ در مورد یافتن بزرگترین فقط ازبین  سه عدد چطور؟ یا بزرگتر از دو؟مسئله را تا جایی کاهش دهید که بدانید چگونه آن را حل کنید و راه حل را بنویسید. سپس مسئله را کمی گسترش دهید و راه حل را مطابق با آن دوباره بنویسید و ادامه دهید تا زمانی که به محل شروع برگردید. -. آنتون اسپراول4. گیر کرده اید؟در حال حاضر ، شما احتمالاً آنجا نشسته اید و فکر می کنید &#34;هی ریچارد ... خیلی جالب است ، اما اگر گیر بیفتم و حتی نتوانم یک مسئله فرعی را حل کنم چه؟&#34;اول از همه ، یک نفس عمیق بکشید. دوم ، این عادلانه است.نگران نباش دوست من  این برای همه اتفاق می افتد!تفاوت در این است که بهترین برنامه نویسان / مشکل گشایان بیشتر از اینکه تحریک شوند در مورد اشکالات / خطاها کنجکاو هستند.در حقیقت ، در اینجا سه چیز وجود دارد که باید هنگام مواجهه با یک چیز بد امتحان کنید:• رفع اشکال: گام به گام راه حل خود را دنبال کنید و سعی کنید بفهمید که کجا اشتباه کرده اید. برنامه نویسان این را اشکال زدایی می نامند (در واقع ، این همه آنچه اشکال زدایی انجام می دهد) است.&#34;هنر اشکال زدایی این است که بفهمد چه چیزی را که واقعاً به برنامه خود گفته ای بجای کاری که فکر می کردی به آن گفتی انجام دهد.&#34; - اندرو سینگر• ارزیابی مجدد: یک قدم به عقب بروید. از منظر دیگری به مسئله نگاه کنید. آیا چیزی وجود دارد که بتوان در یک رویکرد کلی تر انتزاع کرد؟&#34;گاهی اوقات ما چنان در جزئیات یک مسئله گم می شویم که اصول کلی را که می تواند مسئله را در سطح کلی تری حل کند ، نادیده می گیریم.نکته جانبی: روش دیگر ارزیابی مجدد ، شروع دوباره است. همه چیز را پاک کنید و دوباره با چشمان تازه شروع کنید. جدی هستم شما در مورد میزان تأثیرگذاری این کار مبهوت خواهید شد.• تحقیق: آآآ ، گوگل خوب است. درست خواندید مهم نیست که چه مشکلی دارید ، کسی احتمالاً آن را حل کرده است. آن شخص / راه حل را پیدا کنید. در واقع ، حتی اگر مشکل را برطرف کردید این کار را انجام دهید! (می توانید از راه حل های دیگران چیزهای زیادی بیاموزید).Caveat: به دنبال راه حل برای مشکل بزرگ نباشید. فقط به دنبال راه حل برای مشکلات فرعی باشید. چرا؟ زیرا تا زمانی که مبارزه نکنید (حتی کمی) ، چیزی یاد نخواهید گرفت. اگر چیزی یاد نمی گیرید ، وقت خود را تلف کردید.تمرین کنیدانتظار نداشته باشید که فقط بعد از یک هفته عالی باشید. اگر می خواهید یک حل کننده مشکل خوب باشید ، بسیاری از مشکلات را حل کنید!تمرین. تمرین. تمرین. فقط زمان لازم است تا تشخیص دهید که &#34;این مشکل با &lt;insert concept here&gt; به راحتی حل می شود.&#34;چگونه تمرین کنیم؟ گزینه های خارج از wazoo وجود دارد!پازل شطرنج ، مشکلات ریاضی ، سودوکو ، برو ، انحصار ، بازی های ویدئویی ، رمزنگاری ها ، و… و… و.در حقیقت ، الگوی رایج در میان افراد موفق عادت آنها به &#34;حل مسئله کوچک&#34; است. به عنوان مثال ، پیتر تیل شطرنج بازی می کند ، و ایلان ماسک بازی های ویدیویی را انجام می دهد.&#34;بایرون ریوز گفت:&#34; اگر می خواهید ببینید رهبری تجاری در سه تا پنج سال چگونه است ، به آنچه در بازی های آنلاین اتفاق می افتد نگاه کنید. &#34;آیا این بدان معنی است که شما فقط باید بازی های ویدیویی را انجام دهید؟ اصلا.اما همه چیز در مورد بازی های ویدیویی چیست؟ درست است ،  در مورد حل مسئله!بنابراین ، آنچه شما باید انجام دهید این است که یک محل فروش برای تمرین پیدا کنید. چیزی که به شما امکان حل بسیاری از مشکلات کوچک  را می دهد (در حالت ایده آل ، چیزی که از آن لذت می برید).به عنوان مثال ، من از چالش های برنامه نویسی لذت می برم. هر روز سعی می کنم حداقل یک چالش (معمولاً در Coderbyte) را حل کنم.همانطور که گفتم ، همه مشکلات دارای الگوهای مشابه هستند.نتیجهتمامش همین است مردماکنون ، شما بهتر می دانید &#34;فکر کردن مثل یک برنامه نویس&#34; به چه معناست.شما همچنین می دانید که حل مسئله یک مهارت باورنکردنی برای پرورش (فرا مهارت) است.گویی که این کافی نبود ، توجه کنید که چگونه می دانید برای تمرین مهارتهای حل مسئله خود نیز باید چه کار کنید!بنگ خیلی باحاله درسته؟در آخر ، آرزو می کنم که با مشکلات زیادی روبرو شوید.درست خواندید حداقل اکنون می دانید که چگونه آنها را حل کنید! (همچنین ، خواهید آموخت که با هر راه حلی ، پیشرفت خواهید کرد).&#34;فقط وقتی فکر می کنید با موفقیت در یک مانع حرکت کرده اید ، یک مانع دیگر ظاهر می شود. اما این چیزی است که زندگی را جالب نگه می دارد.زندگی فرایند عبور از این موانع است - یک سری خطوط مستحکم که باید از آنها عبور کنیم.هر بار ، چیزی یاد خواهید گرفت.هر بار ، قدرت ، خرد و دیدگاه شما افزایش می یابد.هر بار ، کمی بیشتر رقابت از بین می رود. تا وقتی که فقط شما بمانید: بهترین نسخه از شما. &#34; – ryan holidayحالا ، برو برای حل برخی از مشکلات!برای شما بهترین شانس را آرزو میکنم.مترجم : سجاد شاه محمدلو                                      منبع : www.freecodecamp.org</description><category>سجاد شاه محمدلو</category><author>سجاد شاه محمدلو</author><pubDate>Thu, 24 Dec 2020 15:04:22 +0330</pubDate></item></channel></rss>