<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های اشکان ر.</title>
        <link>https://virgool.io/feed/@outofbox</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-07 08:40:09</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/24858/avatar/avatar.png?height=120&amp;width=120</url>
            <title>اشکان ر.</title>
            <link>https://virgool.io/@outofbox</link>
        </image>

                    <item>
                <title>روش برخورد با مسایل در برنامه نویسی</title>
                <link>https://virgool.io/javacup/%D8%B1%D9%88%D8%B4-%D8%A8%D8%B1%D8%AE%D9%88%D8%B1%D8%AF-%D8%A8%D8%A7-%D9%85%D8%B3%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-ty4mespoj2rv</link>
                <description> پیش از شروع: جستجوامروزه بیش از چند دهه از پدید آمدن مهارتی به نام برنامه نویسی گذشته  است. بنابراین بسیار محتمل هست که کسی همانند ما قبلا با این مشکل یا حتی  مورد مشابه آن برخورد کرده باشد و اگر به اندازه کافی خوش شانس باشیم شاید  با کمی تستجو در اینترنت بتوانیم  راه حل رو  پیدا کنیم.  سایتهای زیادی روی اینترنت هستند که منبع بزرگی از مشکلات و راه حل های  ممکن رو در اختیار ما قرار میدهند، پس مثل همیشه به بهترین دوست برنامه  نویسان دنیا یعنی گوگل مراجعه کنید. فراموش نکنین که گوگل هیچ وقت ما رو بر  اساس چیزی که جستجو می کنیم قضاوت نخواهد کرد. در صورتی که به راه حل  نرسیدید ادامه دهید.گوگل بهترین دوست ماست.نخست:  درک درست مسالهاز قدیم گفته اند اگر میخوای دشمن رو شکست بدی باید اول درست اون رو  بشناسی، با کمی تغییر میتونیم این مثال رو به برنامه نویسی هم تعمیم  بدهیم،‌ شاید اصلی ترین دشمن هر برنامه نویس مشکلات و مسایلی هستند در مسیر  تولید پروژه باید با اونها دست و پنجه نرم کنه. از پیدا کردن راه حلی برای  استفاده بهینه از منابع، بررسی های امنیتی، جلوگیری از هدر رفت منابع تا  توسعه الگوریتم هایی که تا کنون وجود نداشته اند.بنابراین تا زمانی که درک درستی به نسبت به مساله پیدا نکرده ایم نباید  درگیر پیدا کردن راه اون مساله بشیم. گام نخست درک درست مساله است ، پس  مساله رو بررسی کنین. تمامی جوانب مساله بررسی کنین، گاهی برای درک بهتر یک  مساله باید نه تنها مساله رو بررسی کنیم بلکه باید نقیض اون رو هم بررسی  کنیم. این کار رو باید آن قدر ادامه بدیم تا با مساله احساس راحتی کنیم و  درک درستی از اون به دست بیاریم.دوم: با قلم و کاغذ مساله را خلع سلاح کنیدخب این یعنی چی؟ به زبان ساده یعنی اینکه راه حلی که برای مساله به  ذهنتون میرسه رو روی کاغذ بنویسین و با داده های آزمایشی امتحانش کنین. اگر  جواب داد که هیچ اما اگر درست کار نکرد راه حل جدیدی را طراحی و امتحان  کنین. زمانی که به راه حل درست رسیدید باید با داده هایی که ممکن در راه حل  ما استثنا باشند آزمایش کنیم، در این مرحله است که راه حل ما به بلوغ  میرسد. آنقدر مساله را با راه داد ها و شرایط مختلف بررسی کنین تا به قول  معروف م لای درز آن نرود! دقت کنین تا اینجا هنوز به سراغ کیبورد و کامپیوتر نرفتیم. سوم: بهینه سازیدر این مرحله باید راه حلی که با داده های استاندارد و داده های استثنایی به درستی کار کرده است را بهینه کنیم و ببینیم که میتوانیم به روش ساده تری همان کار را انجام دهیم. همچنین می توانیم بخشهایی که تکرار می شوند را به صورت جنرال و کلی تر پیاده سازی کنیم و نهایتا،‌مهمترین بخش اینکه اگر بخشی در راه حل ما تکرار می شوند، تکرار را کمتر یا حتی حذف کنیم. چهارم: به زبان شبهه کد راه حل را بنویسیدساختار کلی برنامه را به زبان شبهه کامپیوتری که به pseudo code  بنویسید. این روش نوشتن قطعا به تولید برنامه کامپیوتری که بتواند اجرا شود  منتهی نخواهد شد. چرا که اصلا زبان برنامه نویسی نیست، اما می تواند در  شناخت کامل راه حل و اینکه قرار است  در برنامه نهایی چگونه کار کند به ما  کمک کند. برای مطالعه بیشتر در مورد شبهه کدها به این لینک مراجعه کنین. همیچنین می تونید از فلوچارت یا نمودار هم استفاده کنید.پنجم: سلام کامپیوتربرای مشتاقان کامپیوتر و کیبورد این بخش احتمالا لذت بخش ترین قسمت  است، شبهه کد خود را به زبان مورد علاقه خود (برای من جاوا) بنویسید. صبور  باشید و همه مراحلی که در راه حل خود پیش بینی کرده اید را وارد کامپیوتر  کنین.  الان دیگر با کلاسها، کتابخانه ها و متد ها سر و کار دارید. راه حل شما  ممکن است از چند خط کوتاه تا چندین و چند کلاس و کتابخانه باشد.  تا انتها  و با دقت بنویسید.ششم: آزمایشاین مرحله درواقع تکرار همان مرحله دوم است اما این بار با کامپیوتر،‌  تکه کد یا برنامه خود را با داده های واقعی آزمایش کنین، اگر کار کرد با  داد های استثنا هم تست کنین تا جایی که اطمینان حاصل کنین که همه چیز درست و  سرجای خودش است. اگر کار نکرد و مراحل قبل را به درستی انجام داده اید  مشکل در راه حل شما نیست و به احتمال زیاد در پیاده سازی راه حل در  کامپیوتر است.  بررسی کنین که دستور زبان را درست استفاده کردیده اید یا نه؟آیا منطق برنامه را درست پیاده سازی کرده اید یا نه؟ شاید دستور شرطی را با منطق اشتباه استفاده کرد اید!آیا استثنا ها را به درستی مدیریت کرده اید؟ مقادیر اولیه درست هستند یا نه؟همچنین موارد دیگری که خودتان میدانید را بررسی کنین. اما اگر در نهایت درست کار نکرد چه؟راه حل استفاده از دیباگر (debug) است. دیباگ  یکی از مهارتهای اصلی ایت که هر برنامه نویس باید کاملا به آن مسلط باشد، اگر نیستید باید مسلط بشوید و هیچ عذری پذیرفته نیست!از کجا شروع کنیم؟ بهترین جا استفاده از گوگل و مستندات محیط توسعه شما می باشد.دیباگ را تا جایی ادامه دهید تا راه حل شما به درستی کار کند. در نهایت  اگر جایی از کار درست از آب در نیامد مشکل ممکن از راه حل باشد، بنابراین  دوباره از اول شروع کنین. برای ادامه کار لازم است که در این مرحله تکه کدی  داشته باشید که به درستی کار کند.هفت: بهینه سازیهمانند قبل باید کد خود را بهینه سازی کنید. بخشهای تکرار شونده را کم کنید. اگر نسخه جدید از زبان برنامه نویسی شما موجود است و محدودیتی در پروژه برای استفاده از آن ندارید به احتمال زیاد در نسخه های جدیدتر ممکن است بتوانید روشهایی برای کوتاه و بهینه تر کردن کد خود بیابید.هشت: دیگران کاشتند و ما خوردیم، ما بکاریم تا دیگران بخورنددر صورتی که از نظر پروژه و مسایل امنیتی محدودیتی ندارید میتوانید راه  حلی را که پیدا کرده اید برای دیگران به اشتراک بگذارید تا بقیه هم از آن  استفاده کنند. اگر نمی توانید در جستجوهایی که برای خود داشته اید میتوانید  دیگران را راهنمایی کنین. شاید در آینده از اهمیت مشارکت و فعالیت در  اینترنت برای برنامه نویسان نوشتم.اکنون می توانید برای حل مشکل و مساله بعدی آماده بشوید!</description>
                <category>اشکان ر.</category>
                <author>اشکان ر.</author>
                <pubDate>Sat, 26 Jan 2019 21:02:33 +0330</pubDate>
            </item>
                    <item>
                <title>آگهی های استخدام بی نام و نشان</title>
                <link>https://virgool.io/@outofbox/%D8%A2%DA%AF%D9%87%DB%8C-%D9%87%D8%A7%DB%8C-%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A8%DB%8C-%D9%86%D8%A7%D9%85-%D9%88-%D9%86%D8%B4%D8%A7%D9%86-gujtmzimzddk</link>
                <description> شرایط استخدامی بخش خصوصی وضعیت عجیبی پیدا کرده، در توییتر و لینکداین و  جاهای دیگه شاهد آگهی های استخدامی هستیم، برنامه نویسی که باید جوان و  ساعی باشد در عین حال باید دهها ویژگی که هرکدوم تخصص جداگانه ای هستند و  نیاز به چندیدن سال تجربه دارند رو همزمان داشته باشه، یا مثلا مدیر پروژه و  یا فروش که باید دستی در شیوه های تبلیغات، گوشه چشمی به شبکه های  اجتماعی، روانشناسی مصرف کننده و آشنایی با دهها رشته جانبی هم داشته باشه.  متاسفانه روز به روز به تعداد این نوع آگهی های استخدام اضافه هم شده.در آخر هم تنها با ذکر یه آدرس ایمیل برروی دامنه های جیمیل یا یاهو  درخواست شده رزومه ارسال بشه و تمام! نه توضیحی که ما کی هستیم، رویکردمون  چیه، تاحالا چند تا پروژه موفق داشتیم… هیچی!شاید از نظر خیلی ها مشکلی وجود نداشته باشه، اما از نظر من دست کم این مشکلات وجود داره…نخست: امروزه رشته ها به شدت تخصصی شده، مثل چند صد سال پیش نیست که کسی  در ریاضیات، فیزیک و نجوم عالم باشه و درنهایت موسیقیدان هم باشه، الان  تخصص ها مویرگی شده، کسی نمی تونه در همه چیز مخصص باشه. حتی در تخصص هایی  که به ظاهر مشابه هستند مواردی پیدا میشه که هرکدومشون زمان زیادی نیاز  داره تا یاد گرفته بشن چه برسه به اینکه کسی در اونها متخصص بشه. دوم: در حالت خوشبینانه این دسته از کارفرماها از این واقعیات بی خبر  هست و دید درستی نداره، در نهایت با استخدام آدمی که دانش سطحی داره هم به  خودش و هم به اون فرد آسیب میزنند و باعث بروز مشکل در کسب و کار خودشون  میشن، اما دلیل دیگه میتونه ارزش ندادن به تخصص ها باشه و اینکه بجای  استخدام چند کارشناس برای هر رشته تنها از یک کارشناس برای همه استفاده  کنند و در هزینه ها صرفه جویی بکنن. من بعید میدونم کسی واقعا در همه موارد  تخصص داشته باشه راضی باشه از همه تخصص هاش استفاده کنه و وقت صرف جایی  بکنه و تنها حقوق یک نفر رو بگیره!سوم: کارفرما باید بدونه یادگیری برای اون فرد هزینه داشته و باید برای  بهرمند شدن از اون یادگیری هزینه مناسب رو پرداخت کنه چراکه در نهایت سود  این هزینه به مجموعه خودش بر میگیرده، نیروهای با سواد، دلسوز که خودشون رو  جزئی از مجموعه میدونن و برای رشد و پیشرفتش هرکاری میکنن، کار کردن در  چنینی جایی رو باعث افتخار خودشون می دونن.چهارم: همونطور که کارفرما نیاز داره و حق داره از مشخصات کامل جویای  کار با خبر باشه، قطعا و بدون شک فرد جویای کار هم باید در مورد کارفرما  بدونه تا بتونه تصمیم درست بگیره. هیچ وقت نباید به شرکتی که در آگهی  استخدام نه اسمی از خودش میاره نه آدرس سایتی و نه خودش رو معرفی می کنه  اعتماد کرد. معمولا سه ماه اول کار به عنوان دوران آزمایشی مطرح میشه، اما  یادمون باشه این آزمایش دو طرفه هست و فقط کارفرما نیست که کارمند رو  آزمایش میکنه، کارمند هم میتونه و حق داره کارفرما رو بسنجه و تصمیم درست  بگیره، شاید کارفرمایی بگه این حرف درست نیست، اما در نهایت باید بدونه که  این اقدام به نفع دو طرف هست و چه بسا کارفرما سود بیشتری بکنه.پنچم: احترام متقابل لازمه هر رابطه ای هست، در این آگهی هیچ احترام  متقابلی دیده نمیشه! نگرانم از اینکه نگاه غالب چنین مجموعه ای این جوری  باشه…یادمون نره استخدام لطف نیست و جویای کار مستحق لطف! کارفرما حقوق میده  در قبال بهره ای که از تخصص کارمند میبره. رابطه کارفرما و کارمند یک رابطه  دوطرفه هست. نگاه از بالا به پایینی نباید وجود داشته باشه.دوست عزیز شما که گوگل، سیسکو و اپل نیستی، خود رو معرفی کن…و در آخر تخصص های بدون ارتباط به هم نشونه بدیه، اگر شرکتی ادمین  سیستمی می خواد و درکنارش میگه باید متخصص (نه آشنا به) آفیس و اکسل، یعنی  مشکلی هست، میگه برنامه نویس می خوام اما باید متخصص ( نه آشنا به) لینوکس  باشه یعنی تو ساختار شرکت کارفرما مشکلی هست.درنهایت اگر نکته دیگه ای به نظرتون میرسه مطرح کنین و اگر کارفرما  هستید و از این روش استفاده می کنین دلایل خودتون رو مطرح کنین و باعث غنی  تر شدن بحث بشوید.</description>
                <category>اشکان ر.</category>
                <author>اشکان ر.</author>
                <pubDate>Sun, 20 Jan 2019 15:41:51 +0330</pubDate>
            </item>
            </channel>
</rss>