<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مصطفی حسینی</title>
        <link>https://virgool.io/feed/@mostafa-hossein</link>
        <description>یک برنامه نویس ساده.    https://mostafa-hosseini.me</description>
        <language>fa</language>
        <pubDate>2026-06-07 06:33:07</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/4122/avatar/OQiQlI.png?height=120&amp;width=120</url>
            <title>مصطفی حسینی</title>
            <link>https://virgool.io/@mostafa-hossein</link>
        </image>

                    <item>
                <title>چرا به ایران برگشتم؟</title>
                <link>https://virgool.io/applymag/%DA%86%D8%B1%D8%A7-%D8%A8%D9%87-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-%D8%A8%D8%B1%DA%AF%D8%B4%D8%AA%D9%85-t3v6l3dilui0</link>
                <description>چرا به ایران برگشتم یکی از مطالب درج شده در وبلاگ alhosseini.org هست که به نظرم بد نبود که اینجا به اشتراک بذارم تا شما هم بخونید و اگر دوست داشتید نظرتون یا تجربه خودتون رو در این رابطه بگید ( در آخر این مطلب توی وبلاگ alhosseini.org خیلی کامل خیلی ها نظر و تجربشون در این رابطه رو گفتن که پیشنهاد می کنم که اگر دوست داشتید حتما قسمت نظرات رو هم بخونید )خیلی وقت است که این متن را نوشته ام. یکسال قبل که همین زمان ها به ایران برگشتم، ولی منتشرش نکرده بودم. تا امشب که با یکی از دوستان آنور آب صحبت کردم، می پرسید ایران چطور است؟ برگردم یا نه؟ او برعکس بسیاری از دوستانی که در دانشگاه های متوسط آمریکایی تحصیل می کنند در دانشگاهی درس می خواند که آرزوی سایر بچه های ایرانی است که آنجا پذیرش داشته باشند. این بهانه ای شد که دوباره سراغ این متن بروم و منتشرش کنم. بعد از این هم متنی راجع به اینکه چرا بچه هایی که برای تحصیل به آمریکا می روند ماندگار می شوند منتشر خواهم کرد. بحث دوستان و نظرات متفاوتشان حتما به بچه هایی که در حال تصمیم گیری هستند کمک خواهد کرد. (در وبلاگ به دلایل نامعلوم نشد که منتشر بشه. ولی سعی می کنم اونجا هم بذارم)دلایل برای برگشتن البته زیاد است ولی فراغ و مجال گفتنشان کم. اولین دلیل برگشت، تصمیمم برای زندگی در ایران در دوران کهنسالی بود. یعنی در بلندمدت می خواهم ایران باشم و در ایران زندگی کنم. این مستلزم زندگی کوتاه مدت در ایران است. توضیحش این که اگر چند سال، 4-5 سال، از زندگی اتان در خارج بگذرد، به آنجا عادت می کنید، چه آن که در ابتدا به نظرات خوب یا بد، زشت یا زیبا، دلفریب یا بی جاذبه جلوه کند. انسان عادت می کند و این عادت کردن زندگی را برایش ممکن. بنابراین بعد از 4-5 سال برگشت برایش سخت می شود. چون به آن جامعه به آن شرایط به آن فرهنگ به آن طرز رانندگی به آن اب و هوا به آن محیط عادت می کند، حتی خو می گیرد. از سوی دیگر روابط انسانی حول و حوش مکان شکل می گیرند، حتی در عصر اینترنت. وقتی در آمریکا هستید، روابطتان هم لاجرم در آمریکا خواهد بود. دوستانتان هم. روابط کاری و شغلی اتان هم. همه چیز و همه چیز. کندن از اینها هم سخت است. خصوصا برای کسانی که یک بار مهاجرت کرده اند و طعم رفتن و کندن را چشیده اند. جمله معروفی هست که می گوید » کسی که یک بار حماقت مهاجرت را مرتکب شده باشد، بار دیگر این حماقت را نمی کند». از دیگر سو من و امثال من که برای درس یا کار به آمریکا یا مکان های دیگر می رویم، در حدود 24 الی 30 می رویم. بعد از لیسانس یا فوق لیسانس. اما وقتی درس دکتری امان تمام می شود، بالای 30 هستیم. سن و اقتضائات آن هم علیه برگشت به کشور کار میکند. باید این را هم به جد در نظر داشت. بطور خلاصه بگویم که یک حد آستانه ای (threshold) وجود دارد. که از آن به بعد ماندن راحتتر و برگشتن سخت می شود. با مشاهدات اندک من این حد آستانه حدود 4 سال است. کسانی که 4 سال در آمریکا می مانند برگشتن واقعا برایشان خیلی سخت می شود. و هرچه از این بیشتر زمان بگذرد، برگشتن سخت تر و سخت تر. همه چیز علیه برگشتن عمل می کنند؛ سن، کار، روابط انسانی، کاهش قدرت ریسک پذیری، تحلیل رفتن توان ذهنی و جسمی و خلاصه همه چیز و همه چیز علیه برگشت به کشور خودت است.دلیل دوم برای برگشتن، خانواده بود. بودن با خانواده، دیدنشان. در آغوش کشیدنشان. اینها چیزهایی نیست که از طریق اوو و جی میل ممکن باشد. این چیزی نیست که بتوانی با گوشت و پوستت حس کنی وقتی دوری. و زندگی مگر چند روز است؟ ما که نصف راه را رفته ایم. نصفش مانده که آن هم لذت بخش ترین لحظاتش با مادر و پدر بودن است. این را نباید کوچک گرفت. در دنیا اقوام معدودی این را شوخی می گیرند! و مهاجرت می کنند! باید خیلی مراقب بود. رفتن، نبودن است. ماندن لزوما بودن نیست ولی از نبودن بهتر است. رفتن تجربه نکردن پیر شدن پدر و مادر است. رفتن جدا شدن از ریشه هاست. ممکن است این شعار به نظر بیاید. اما حتی اگر شعار هم باشد شعاری است که واقعیت عینی را در خود دارد. البته وقتی نزدیک هستی ضرورت این امر را شاید درک نکنی. ولی وقتی دور می شوی، قلبت فشرده می شود. نبضت تند و تند می زند و تنت از ندیدن عزیزانت بیمار می شود حتی اگر این را نفهمی و ندانی. این همان ریشه ای است که باعث شده است بسیاری نروند. یا اگر می روند برگردند. بعضی می گویند با این وضع خراب ایران چرا برگشتی. اگر جنگ بشود چه؟ جواب من واضح است. اگر جنگ بشود قطعا و یقینا من می خواهم در کنار مادر و پدرم باشم تا در آن سوی دنیا. این زندگی که خانواده ات را رها کنی و آسوده در آنسوی دنیا لم بدهی برای من واقعی نیست.دلیل سوم برای برگشتن هم نا امید شدن از آکادمی بود. آخر و منتهای دانشگاه هیچ است. در بهترین دانشگاه های دنیا، عده ای درس می دهند و عده ای درس می خوانند. و این حلقه هر روز بزرگ و بزرگ تر می شود. این عده برای خود قواعد و شرایط خاص ایجاد کرده اند تا بتوانند پول در بیاورند. شرایط چاپ مقاله در مجله فلان! ولی تهش به ندرت خدمت به بشریت یا افزایش شعور و آگاهی است. من نه حوصله و نه سکون و سکوت و بی حاصلی شرکت در مسابقه بی مزه چاپ بیشتر و بیشتر مقاله را ندارم. بچه های دکتری در آمریکا 6-7 سال درس می خوانند. کار می کنند برای دانشگاه. عمده کارشان هم برگه تصحیح کردن و کلاس حل تمرین رفتن است. آخرش هم باید برای یک لقمه نان با یکسری بجنگند و وارد این مسابقه بی معنی شوند. این چیزی نیست که من ترجیحش بدهم. اما متاسفانه آنچه از آکادمی در ایران تبلیغ می شود بسیار غیرواقعی است. گویی همه در حال کار علمی هستند و هر روز دارند روی مرزهای علم قدم می زنند و چای می نوشند! و دستاوردهای تازه دارند! و ما اینجا افتاده ایم برای خودمان! زندگی هایشان هم پر از شادی است. پر از لذت آزادی است. ولی این واقعیت ندارد. دانشجوی دکتری حداقل 6-7 سال بدبختی می کشد با پول ناچیز دانشگاه. باید با سختی تمام زندگی کند و درس بخواند و کار کند، بعدش هم که وارد بازار کار شد، هیچ تضمینی وجود ندارد.دلیل چهارم برای برگشتن هم دیدن غرب، مشکلاتش و معضلاتش بود. دیدن این که آسمان همه جا یکرنگ است. دیدن این که مشکلات همه جا هستند. فهمیدن این که تفاوت ایران با آمریکا در میزان اصطکاک زندگی است و نه چیز دیگر. به این معنا که در غرب اصطکاک کمتر است و اینجا بیشتر. اینجا در صف بیشتر می ایستی و آنجا کمتر. اینجا بیشتر در هنگام رانندگی اعصابت خورد می شود و آنجا کمتر. اینجا بیشتر هوا آلوده است و آنجا کمتر. اینجا بیشتر با دیگران برخورد داری و مشکل پیدا می کنی و آنجا کمتر. ولی همه این مشکلات آنجا هم هست فقط میزانش متفاوت است. از سوی دیگر آن زندگی بی مزه و بی بوی غرب مورد نظر و علاقه من نیست. من همین زندگی که اصطکاکش بیشتر است و دردسرش را به آن ترجیح می دهم. ولی درک این باعث می شود زندگی در ایران بسیار زیباتر به نظر بیاید.دلیل دیگر هم این است که موقعیت هایی که من و بسیاری شبیه به من در ایران دارند با آنجا قابل مقایسه نیستند. آنجا به لحاظ رقابت شدید و شاید ضعف ما، باید حداقل 10-15 سال کار می کردم تا بتوانم پوزیشن هایی که همین الان در ایران دارم را بگیرم. و خب همیشه فکر می کنی که چرا باید چندین و چند سال را اینطور سپری کنی و بعد برگردی. از سوی دیگر مایی که در دانشگاه در آنجا تحصیل می کنیم، برای دانشگاه تربیت می شویم نه برای بیزنس. در نتیجه آینده کاری امان آینده ای دانشگاهی خواهد بود. مفهوم این آینده با مفهوم آینده یک دانشگاهی در ایران متفاوت است. وقتی در آمریکا دانشگاهی هستی یعنی چیز دیگری نمی توانی باشی، مگر این که خیلی خاص باشی، اما در ایران دانشگاهی ها غالبا کارهای دیگر هم می کنند. من به شخصه به سکون و سکوت و بی مزگی دنیای آکادمیک علاقه چندانی ندارم. و این را آنجا فهمیدم. که البته خیلی فهم بزرگی بود. بنابراین اگر می خواستم آینده ام در دانشگاه رقم نخورد عاقلانه ترین راه برگشتن بود.یک دلیل دیگر هم این است که بچه ات که آمریکا به دنیا بیاید، آمریکایی می شود. رد خور هم ندارد تا آنجایی که من دیدم. یعنی بعد از 5 سال شاید دیگر جوابت را به فارسی ندهد. و این واقعا خیلی از زیبایی ها و لذت های زبانی زندگی را از آدم می گیرد. یادم نمی رود غمی که دکتر بشیریه داشت که بچه هایش دیگر در خانه به فارسی صحبت نمی کردند و هرچه تلاش کرده بود نتوانسته بود این را جا بیندازد.در کل ریزه کاری های زیادی هستند. فی الحال اینها مهمتر بودند. وقتی در ایرانی خیلی از اینها را شاید درک نکنی و این جوی که درست شده که حتما باید بریم «خارج» درس بخونیم همه را گرفته است. و خودمان هم در درست کردن این جو قطعا نقش داشته ایم. ولی وظیفه اخلاقی همه دوستانی که آنجا و اینجا هستند این است که همانطور که اخبار مثبت را راجع به خودشان منتشر می کنند، معایب و مشکلات را هم بگویند تا خدای نکرده بچه هایی که می خواهند تصمیم به رفتن از ایران بگیرند در تصمیم خود دچار تورش نشوند. من به هرکس که درباره رفتن می پرسد می گویم برای کوتاه مدت برو، مثلا یک دوره مستر، در یک دانشگاه خوب برو، اگر دوست داشتی آنجا را آنوقت دکتری بخوان. به نظرم این بهترین حالت است. هم تجربه آنجا را می کنید و هم با اطلاعات بیشتر راجع به ادامه تحصیل یا برگشت تصمیم می گیرید. https://alhosseini.org/2014/05/02/%DA%86%D8%B1%D8%A7-%D8%A8%D9%87-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-%D8%A8%D8%B1%DA%AF%D8%B4%D8%AA%D9%85%D8%9F/ </description>
                <category>مصطفی حسینی</category>
                <author>مصطفی حسینی</author>
                <pubDate>Wed, 19 Sep 2018 12:57:27 +0430</pubDate>
            </item>
                    <item>
                <title>برنامه نویسی که کارهای تکراری روزمره خود را بوسیله اسکریپت اجرا می کند</title>
                <link>https://virgool.io/@mostafa-hossein/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%A9%D9%87-%DA%A9%D8%A7%D8%B1%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C-%D8%B1%D9%88%D8%B2%D9%85%D8%B1%D9%87-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%D8%A8%D9%88%D8%B3%DB%8C%D9%84%D9%87-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-%D8%A7%D8%AC%D8%B1%D8%A7-%D9%85%DB%8C-%DA%A9%D9%86%D8%AF-r5scoznsbyk4</link>
                <description>یکی از فواید یاد گرفتن برنامه‌نویسی، انجام برخی کارهای روزانه و تکراری به صورت اتوماتیک و با استفاده از اسکریپت است. به تازگی تعدادی اسکریپت در وبسایت گیت‌هاب منتشر شده‌اند که گفته می‌شود متعلق به برنامه‌نویسی هستند که بسیاری از کارهای روزمره‌ و ساده‌ی خود را به کمک اسکریپت‌ها انجام می‌داده است.به تازگی یک پروژه‌ی جدید در وبسایت GitHub منتشر شده که نکات جالبی را در بر داشته است. این پروژه توسط فردی با نام کاربری Narkoz منتشر شده و او اعلام کرده که این فایل‌ها مربوط به برنامه‌نویس دیگری است که به تازگی شرکت آنها را ترک کرده است.Narkoz درباره‌ی این فایل‌ها می‌گوید: &quot;ما برنامه‌نویسی داشتیم که به تازگی شرکت ما را ترک کرده است. او از آن دسته افراد بود که برای هر کاری که بیش از ۹۰ ثانیه از زمانش را اشغال می‌کرد، اسکریپتی برای اتوماتیک کردن آن می‌نوشت.&quot;پس از آن که این فرد شرکت مورد نظر را ترک می‌کند، همکاران او که به فایل‌های ساخته شده دسترسی داشتند، با بررسی انواع برنامه‌های نوشته شده توسط او، به اسکریپت‌های اتوماتیک سازی جالبی دست یافتند. او انواع کارها مانند تماس با همسر، مدیر و حتی درست کردن قهوه را هم بصورت اتوماتیک انجام می‌داده است.او اسکریپتی نوشته بوده تا در زمان‌هایی که تا بعد از ساعت ۹ شب در محل کار و کامپیوتر شرکت مشغول به کار است، پیامی با مضمون &quot;تا دیر وقت کار می‌کنم&quot; برای همسرش ارسال کند. این اسکریپت در ادامه‌ی این پیام از لیستی از پیش آماده نیز پیامی را اضافه می‌کرده است. اسکریپت بعدی مربوط به خدمات پشتیبانی برای یک مشتری خاص بوده که برنامه‌نویس داستان علاقه‌ای به او نداشته است. این اسکریپت صندوق پیام برنامه‌نویس را چک می‌کرده و اگر ایمیلی از طرف فرد مورد نظر حاوی کلماتی مانند &quot;اشکال&quot;، &quot;ایراد&quot; یا &quot;با عرض معذرت&quot; دریافت شده بود، دیتابیس سرویس او را به آخرین وضعیت بکاپ بازگردانی می‌کرده و ایمیلی با مضمون حل شدن مشکل برای مشتری ارسال می‌کرده است.اسکریپت بعدی مربوط به زمانی است که برنامه‌نویس به محل کار نمی‌رفته است و از داخل خانه وارد حساب کاربری شرکتی خود می‌شده است. در این زمان پیامی با مضمون این که در خانه کار خواهد کرد برای مدیر او ارسال می‌شده است. اما جالب‌ترین اسکریپت اتوماتیک‌ ساز این برنامه‌نویس، مربوط به آماده کردن قهوه است. با اجرا شدن این اسکریپت، نرم‌افزار به مدت ۱۷ ثانیه صبر می‌کند و پس از آن ماشین قهوه‌ساز را هک کرده و سفارش یک قهوه می‌دهد. ماشین نیز پس از آماده کردن قهوه ۲۴ ثانیه صبر می‌کند و سپس قهوه را داخل ظرف می‌ریزد. مجموع این زمان‌ها با زمانی که طول می‌کشیده تا او از دفترش تا ماشین قهوه‌ساز برود برابر بوده است!مصطفی حسینی</description>
                <category>مصطفی حسینی</category>
                <author>مصطفی حسینی</author>
                <pubDate>Thu, 21 Jun 2018 01:52:25 +0430</pubDate>
            </item>
                    <item>
                <title>چگونه یک زبان برنامه نویسی یا یک فریم ورک جدید یاد بگیریم</title>
                <link>https://virgool.io/javacup/%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA%A9-%D8%B2%D8%A8%D8%A7%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DB%8C%D8%A7-%DB%8C%DA%A9-%D9%81%D8%B1%DB%8C%D9%85-%D9%88%D8%B1%DA%A9-%D8%AC%D8%AF%DB%8C%D8%AF-%DB%8C%D8%A7%D8%AF-%D8%A8%DA%AF%DB%8C%D8%B1%DB%8C%D9%85-stn3uaj6dzl6</link>
                <description>هر روز زبان ‌های برنامه نویسی جدیدی به بازار عرضه می‌شوند مثل Dart، Go، Kotlin، Elixir و غیره. یاد گرفتن همه این زبان ها کاری دشواری است اما در این مقاله چند نکته ارائه می شود که به شما در طی روند یادگیری کمک خواهد کرد. مراحلی وجود دارد که می‌ خواهید با گذراندن آنها فرآیند یادگیری خود را تسریع کرده و تسلط خود بر زبان برنامه نویسی یا فریم ورکی که در حال یادگیری آن هستید افزایش دهید.ابتدا بر زبان برنامه نویسی مسلط شوید سپس شروع به یادگیری فریم ورک ها کنیدبرخی از افراد تمایل دارند فریم ورک‌ هایی مثل Ruby را یاد بگیرند اما بدون اینکه دانشی در مورد زبان آن که در اینجا Ruby است کسب کرده باشند. این مشکل بزرگی ایجاد خواهد کرد مخصوصا وقتی که صحبت از Rails به میان باشد که با Ruby نقش یک DSL (زبان مخصوص دامین) را ایفا می‌کنند.چالش های کد نویسی را حل کنیدوب سایت های فراوانی مثل LeetCode، HackerRank و ProjectEuler وجود دارند که به شما کمک می‌کنند تا به تسلط خوبی در زبان های برنامه نویسی برسید. در این وب سایت ها اطلاعات بیشتری در مورد نحوه نگارش کد (Syntax)، کتابخانه ها و منطق کدنویسی به دست خواهید آورد. این بهترین روش برای آماده سازی خود برای یک مصاحبه کاری هم محسوب می‌ شود.هر چقدر می توانید از وب سایت های Stackoverflow و Code Review استفاده کنیدوقتی شروع به حل کردن چالش های کدنویسی می کنید، با مشکلات متعددی رو به رو خواهید شد. برای حل این مشکلات می توانید از وب سایت stackoverflow استفاده کنید که البته نیازی به معرفی هم ندارد. جامعه برنامه نویسان Code Review هم مانند شبکه stackoverflow است. نکته اصلی در مورد code review این است که کارشناسان و متخصصان زبان برنامه نویسی که با آن کار می کنید یا در حال یادگیری آن هستید کدهای شما را بازبینی می کنند. نگاهی به بخش beginners section آن انداخته و به این جامعه فوق العاده از برنامه نویسان ملحق شوید.کدهای زیادی را مطالعه کنیدوب سایت github یک مکان فوق‌ العاده برای یادگیری است. در این وب سایت کدهای سازنده زبانی که در حال یادگیری آن هستید را خواهید دید. اگر اعتماد به نفس مشارکت در پروژه ها را داشته باشید به یادگیری بهتر شما کمک خواهد کرد.یک ابزار Linting نصب کنیدابزار linting در واقع ابزارهای تحلیل کد هستند که باگ‌ ها، کدهای غیر رایج، خطاهای مربوط به استایل و غیره را مشخص می کند. وقتی این ابزار خطاها را مشخص می کند و مجبور می شوید آنها را رفع کنید در واقع فرآینده یادگیری شما آغاز شده است. برای زبان Ruby می توانید از RuboCop به عنوان یک خطایاب (linter) استفاده کنید.کدهای رایج استفاده کنیدوقتی من در حال یادگیری زبان پایتون (Pythin) بودم، دانش C# خود را به پایتون منتقل کردم. این یک روش فوق‌ العاده برای یادگیری یک زبان برنامه نویسی جدید است اما برای تسلط بر آن زبان کافی نیست چون نمی توانید روش کدنویسی رایج در آن زبان را یاد بگیرید. برای بیشتر مشخص شدن این قضیه، به کد پایتون زیر نگاه کنید:و با روش کدنویسی رایج پایتون مقایسه کنید:برای یادگیری نحوه کدنویسی رایج در هر زبان باید کدهای زیادی که توسط افراد حرفه ای نوشته شده اند را مطالعه کنیدیک برنامه بسازیداین یک روش عالی و سرگرم کننده است. هدف اصلی یادگیری یک زبان برنامه نویسی هم ساختن یک برنامه است. وقتی من داشتم زبان Ruby را یاد می گرفتم از فریم ورک rails برای ساختن یک وبلاگ، یک اپلیکیشن todo، شبیه ساز ویکی پدیا و یک وب سایت به نام rotton tomatoes ساختم. ساختن برنامه باعث بهبود یافتن و تکامل تمام جنبه های یادگیری شما خواهد شد.تسلیم نشویدیادگیری و شکست دادن مراحل سخت آن کاری طاقت فرسا است. باید زمان بگذارید و تمرکز کنید تا یادگیری خود را کامل کنید. تسلیم نشوید چون شاید از آن چیزی که فکر می کنید به یادگیری کامل نزدیک تر باشید. اگر در جایی از مراحل یادگیری خود گیر کرده اید از کسی کمک بگیرید. منابع زیادی برای یادگیری وجود دارد.نکته مهم: اگر حتی مسلط شدید باز هم مطالعه کنیدمن برنامه نویسی را می شناسم که هنوز هم بعد از بیست سال به مطالعه C# می پردازد و هنوز هم هر روز نکته جدیدی در مورد C# و .NET کشف می کند. این فرد آنتونیو مانیرو است که موثرترین عضو جامعه stackoverflow در پرتغال می باشد. حقیقت این است که ما هیچ وقت همه چیز را در مورد یک زبان یاد نمیگیریم و به همین دلیل است که هر روز بیشتر و بیشتر به یادگیری و مطالعه می پردازیم. شما می توانید در یک زبان یا فریم ورک به دانش خوبی برسید و به عنوان یک مرجع شناخته شوید اما همیشه چیزهای بیشتری برای یادگیری وجود خواهد داشت.</description>
                <category>مصطفی حسینی</category>
                <author>مصطفی حسینی</author>
                <pubDate>Sat, 03 Mar 2018 22:51:58 +0330</pubDate>
            </item>
                    <item>
                <title>۱۰ نکته برای برنامه نویس ها</title>
                <link>https://virgool.io/@mostafa-hossein/%DB%B1%DB%B0-%D9%86%DA%A9%D8%AA%D9%87-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D9%87%D8%A7-cr99qwrmz59w</link>
                <description>مانند تمام مشاغل دیگر که نکات و روش ‌هایی برای داشتن یک آینده شخصی بهتر وجود دارد، در این مقاله برخی نکات ارائه می‌شود که برای یک برنامه ‌نویس مهم است۱. اختصاصی کار کنیدوقتی به شما می‌گویم که تخصص داشتن در یک کار ایده خوبی است، منظورم این نیست که فقط باید یک چیز را یاد بگیرید، نه این اصلا خوب نیست. منظور من این است که کمپانی ها بیشتر به دنبال افرادی هستند که یک کار را به خوبی و ماهرانه می‌دانند و حقوق بیشتری به این افراد پرداخت می‌کنند. بنابراین بهتر است دانش خود را در یک تکنولوژی خاص که بقیه دانش کمی در مورد آن دارد بالا ببرید.۲. تمرین کردناین کلید موفقیت است. منظورم این است که کتاب خواندن، تماشای دوره‌ های آموزشی آنلاین و غیره خیلی ایده ‌های خوبی هستند اما مهم تر از همه، تمرین کردن است. اگر فقط به مطالعه کتاب بسنده کنید، مانند این است که کاری عملی انجام داده و هرگز آن را به معلم خود ارائه ندهید.۳. پروژه شخصیاین نکته هم مانند نکته قبلی است اما می خواهم به این مورد به صورت جداگانه بپردازم چون این نکته برای من بسیار اهمیت دارد. پروژه شخصی روشی برای تمرین دادن مهارت‌های خود در کاری جالب و سرگرم کننده است. اگر مایل باشید می توانید مجموعه ای از اپلیکیشن هایی که دوست دارید مانند شبکه اجتماعی، وبلاگ یا دیگر چیزها را انجام دهید.۴. نوشته های افراد بزرگ را بخوانیدمی توانید وبلاگ ها را مطالعه کنید. اگر جاوا اسکریپت دوست دارید توصیه می کنم نگاهی به وبلاگ ponyfoo که نوشته های نیکولاس بیواکوآ یا اریک الیوت است بیاندازید یا وبلاگ دیگر افراد متخصص را برای تکنولوژی مورد علاقه خود مطالعه کنید. توییتر هم محل مناسبی برای مطالعه سریع اطلاعات و یادگیری است. یک گزینه فوق‌العاده برای مطالعه و یادگیری وب سایت github است که می توانید در آن کدهای زیادی را مشاهده و مطالعه کرده و به یک برنامه نویس با تجربه تبدیل شوند.۵. قبل از نوشتن کد، تحلیل کنیدما برنامه نویس ها اغلب دچار خطای کدنویسی عجولانه می شویم. بهتر است قبل از نوشتن حتی یک خط کد، ابتدا مساله را انالیز و تحلیل کنیم. بهتر است ابتدا کدهای خود را روی یک برگ کاغذ بنویسید چون در این صورت بیشتر به آن فکر می کنید.۶. کد خود را بازسازی کنید (‌Refactor)شدیدا توصیه می شود که کدهای خود را بازسازی کند: این تکنیک برای ساختاربندی مجدد کد منبع یعنی تغییر ساختار درونی بدون تغییر در رفتار خارجی کدها به کار می‌ رود. به دلیل این که ما برنامه نویس ها ۸۰ درصد وقت خود را صرف خواندن کد و ۲۰ درصد آن را صرف نوشتن کد می کنیم، اگر کدهای خوب و ساختار یافته‌ای داشته باشیم صرفه جویی زیادی در وقت ما خواهد شد. یکی دیگر از مواردی که غلب وجود دارد این است که ما با افراد دیگری هم کار می کنیم و واضح است که باید کدهایی خوانا و مرتب بنویسیم.۷. با افراد مختلف ملاقات کنیدملاقات با افراد جدید ایده بسیار خوبی است چون ارتباطات مفیدی ایجاد شده و می‌ توانند به ما در مشاغل یا پروژه های آینده کمک کنند. همچنین صحبت با برنامه نویسان دیگر، شرکت در جلسات، حضور در همایش ها، سخرانی‌ها و غیره، روش های بسیار خوبی برای یادگیری هستند۸. دانش خود را به اشتراک بگذاریدوقتی دانش خود را با دیگران به اشتراک می گذارید چیزهایی زیادی هم از دیگران یاد می گیرید و ایده فوق العاده‌ای برای شما است زیرا با این روش هم به خود هم به دیگران کمک می کنید. می توانید برای خودتان وبلاگ، کانال آموزشی در یوتیوب و آپارات ، دوره آموزشی در Udemy ایجاد کرده یا از Medium و ویرگول استفاده کنید.۹. زندگی عادی داشته باشیدلازم نیست ۲۴ ساعت شبانه روز خود را جلوی کامپیوترتان بگذرانید، باید به خودتان برسید، به پیاده روی بروید، فیلم های سینمایی مورد علاقه خود را ببینید، ساز بنوازید یا خود را به کارهای دیگری مشغول کنید چون این کارها به ذهن شما کمک می کند. اطلاعات بسیار زیادی در دنیا وجود دارد سعی نکنید همه آنها را یاد بگیرید چون در این صورت احتمالا باید ۳۵۳۴ بار زندگی کنید تا بتوانید همه آنها را بیاموزید. از اینترنت و افراد دیگر استفاده کرده و کمک بگیرید.۱۰. لذت ببریدبرنامه نویسی به درد هر کسی نمیخورد منظورم این است که هر کسی می تواند برنامه نویسی کند؟ بله اما هر کسی می تواند به عنوان برنامه نویس حرفه ای مشغول به کار شود؟ خیر. شما باید اشتیاق داشته و واقعا بخواهید که یاد بگیرید و مطالعه کنید. دنیای فناوری هر روز رشد می کند بنابراین اگر از یادگیری متنفر باشید از قافله عقب می مانید. بنابراین باید از کاری که انجام می دهید لذت ببرید. برنامه نویسی را برای پول نخواهید چون کسل کننده خواهد شد.</description>
                <category>مصطفی حسینی</category>
                <author>مصطفی حسینی</author>
                <pubDate>Fri, 16 Feb 2018 18:55:28 +0330</pubDate>
            </item>
                    <item>
                <title>عادت های بد برنامه نویسی خود را متوقف کنید</title>
                <link>https://virgool.io/@mostafa-hossein/%D8%B9%D8%A7%D8%AF%D8%AA-%D9%87%D8%A7%DB%8C-%D8%A8%D8%AF-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%D9%85%D8%AA%D9%88%D9%82%D9%81-%DA%A9%D9%86%DB%8C%D8%AF-cjsm1ug1qoue</link>
                <description>مدیرم سال ‌های قبل گفت: «گند زدی راوی. هر روز داری بیشتر از قبل مشکل درست می کنی».من غافلگیر شده بودم. شاید کلمه «شوکه شدن» بهترین لغت برای توصیف احساسات من در آن لحظه باشد. من با صدایی که به سختی لحن کنایه آمیزم را پنها می کرد گفتم: «بسیار خوب جیم، مطمئن نیستم چرا این طور فکر می کنی. من برنامه نویس بزرگی هستم و دارایی ارزشمندی برای تیمم محسوب می شوم. مشتری رسما گوش به فرمان من بوده و در مقوله دانش من بسیار جلوتر از هم ردیفانم هستم».هر لحظه داشتم بیشتر عصبانی می شدم. جیم همانطور که داشت مستقیم توی چشمهایم نگاه می کرد گفت: «این طرز فکر مشکل تو هست راوی و اگر هر چه زودتر فکری به حال آن نکنی، هرگز به قله‌ی کمال و عالی شدن نخواهی رسید.»زبانم قفل شده بود، عصبانی و گیج بودم و در عین حال شاهد گستاخی و پر رویی در طرز بیان او بودم.در حالی که جلوی خودم را گرفته بودم که از اتاق بیرون نزنم، به او اجازه دادم دلایلش را بگویدکدهای من بهترین هستندحق با فردریش نیچه بود که گفت: «هربار که پیشرفت میکنم سگی به نام غرور به دنبالم می‌ آید».افرادی که همه تیم ها به آن‌ها نیاز دارند افرادی فروتن، مشتاق و باهوش هستند: فروتن یعنی غرور و منیت کمی داشته و بیشتر از خودش، روی هم تیمی هایش تمرکز کند. مشتاق یعنی دارای وجدان کاری بالا بوده، در انجام و تکمیل کارها مصمم باشد و هر طور بتواند همکاری کند. باهوش نه به معنای هوش فکری بلکه به معنای هوش درونی و فردی.از کدهای دیگران انتقاد نکنید، کدهای شما هم می تواند در معرض انتقاد قرار بگیرد. به جای آن سعی کنید نگرشی واقعی و حرفه‌ای داشته باشید اما قضاوت نکنید. فروتن باشید و سعی کنید از هر کسی که اطرافتان هست چیزی یاد بگیرید.همیشه به یاد داشته باشید که غرور و خودپسندی مانع کار شما است. اگر با این باور که بهترین هستید شروع به کار کنید، مرگ خلاقیت شما فرا می‌رسد. یادگیری شما آن روزی متوقف می‌شود که باور کنید دیگر هیچ چیز بیشتری برای یادگیری وجود ندارد.می توانم این را در یک لحظه درست کنمآنجلا داک من یک بار گفت: «هیچ راه میانبری برای عالی شدن وجود ندارد».به خودتان یک لطفی بکنید. به خود اجازه دهید تا بیشترین استفاده را از زندگیتان ببرید. اگر تمام وقت خود را صرف ساییدن گوشه و کنار با یک مسواک هستید، به نوعی راه را اشتباه می‌روید. میانبر رفتن به معنی زود رسیدن به هدف نهایی نیست.میانبر رفتن بسیار وسوسه انگیز است و همه آن را انجام داده‌اند. در واقع موقعیت هایی وجود دارد که استفاده از میانبر لازم و ضروری است اما در مجموع، میتوان آن‌ها خطرناک هستند، بسیار خطرناک و باید از آنها فاصله گرفت. یک میانبر اشتباه ممکن است چند ساعت وقت شما را بگیرد اما موجب ماه ها ناراحتی و از دست رفتن شهرت و خوشنامی شما شود.نصیحت من را جدی بگیرید. من به سخت ترین روش یاد گرفتم که از میانبر رفتن و مفت زندگی کردن در واقع خیلی هم مفت نیست و بهای سنگینی دارد.من همه چیز به یادم می ماند و نیازی به مستندسازی ندارمدیک براندون در این باره گفته است: «مستندسازی مانند رابطه جنسی است؛ وقتی خوب باشد خیلی خیلی خوب است و وقتی بد باشد از هیچی بهتر است»مستندسازی را می‌توان روغن کرچک برنامه نویسی دانست. مدیران فکر می کنند که این کار برای برنامه نویسان خوب و مفید است اما برنامه نویسان از آن متنفر هستند. اما با وجود این، برنامه نویسان حرفه ای و عالی، این کار را به بخش جدانشدنی از برنامه روزانه خود تبدیل کرده اند.آنها می دانند که مانند هر فرآیند شغلی دیگری، تیم های توسعه نرم افزار دائما در حال تغییرات هستند. برنامه‌نویسان ممکن است شغل خود را عوض کنند، از یک بخش به بخش دیگر منتقل شده و یا بازنشسته شوند. در بدترین سناریو، بیماری، جراحت یا مرگ می‌تواند اعضایی را از تیم بگیرد که هرگز فکرش را هم نمی‌کنید. کدها هم پیر می‌شوند. اگر برنامه نویسان به مدت یک سال یا بیشتر به سراغ کدهای خود نروند این امکان وجود دارد که به راحتی عملکرد کدها را فراموش کنند.در هر یک از این سناریوها، دسترسی به مستندات طراحی، مشخصات API، صفحات آموزشی و کامنت های مربوط به هر کد می‌تواند تفاوت های میان محصول عرضه شده و محصول منقضی شده را به حداقل برساند.همین نگرش باعث می‌شود که این برنامه نویسان دارایی های ارزشمندی برای تیم خود محسوب شوند. شما با عمدا مستند نکردن کارهای خود به فردی غیر قابل جایگزینی تبدیل نمی شوید. تمام آنچه که به دست می‌آورید این است که به باری روی دوش تیم خود تبدیل می‌شوید.تقصیر من نبودبروس لی در این مورد می گوید: «اشتباهات همیشه قابل بخشش هستند در صورتی که فرد شهامت پذیرفتن آن را داشته باشد».شاید جمله بالا قابل درک نباشد اما یکی از مهم‌ترین ویژگی‌های یک برنامه نویس واقعا عالی است. ما همیشه توجیهی برای کارهای خود داریم. شبیه این است که بگوییم تحت شرایط نرمال ما هرگز اشتباه نمی کنیم که حقیقتا باور این ادعا بسیار سخت است.برنامه نویسان بد مشتریان را به خاطر استفاده نادرست از محصول سرزنش می کنند. یک برنامه نویس بد نمی تواند مالکیت و مسئولیت کامل یک محصول و باگ های آن را بر عهده بگیرد. وقتی باگ توسط فرد دیگری ایجاد شده باشد آنها همیشه در تلاش هستند تا مطمئن شوند که همه می دانند چه کسی مسئول ایجاد باگ بوده است. چه نیازی به ایجاد این بلبشو و هدر دادن وقت بقیه در این فرآیند است؟داشتن یک نگرش سالم که در آن بتوانید شبیه این جمله را بگویید: «بله متاسفم. حالا باید کاری برای رفع این مشکل انجام بدهیم. اشتباه از من بود» به شما کمک می‌کند شهرت خوبی برای خود ایجاد کرده و توسط همکاران خود فرد بهتری محسوب شوید. هر چقدر زودتر اشتباهات خود را قبول کنید، زمان بیشتری برای یادگیری و اصلاح اشتباه در اختیار خواهید داشت. به همین سادگی.آنچه از نظر شما تمام شده است هنوز ناتمام استریک لمونز در این باره به نکته درستی اشاره می‌کند و می‌گوید: «از کاربر نخواهید اطلاعاتی ارائه دهد که سیستم از قبل می داند».اگر برنامه نویسی مانند رابطه جنسی بود، الان تعداد زیادی کامپیوترهای ناراضی وجود داشت. شما نمی‌توانید همینطوری وارد سیستم شده، کارهایی را نصفه و نیمه انجام داده و بعد پی کارتان بروید. یکی از مفاهیمی که فهمیده‌ام با آن دست و پنجه نرم می کنید مفهوم «تکمیل» است.به یاد داشته باشید که تکمیل یعنی: منطبق با نیازها و شرایط کاربر تست و توسط کاربر تایید شده است. تکمیل بودن از نظر شما شرط کافی برای تکمیل واقعی پروژه نیست.یک برنامه نویس خوب مشتاق است تا چیزهای جدید یاد بگیرد. آنها تلاش می کنند بفهمند چگونه همه تکه های یک معماری در کنار هم کار کرده و اینکه در چه وضعیتی قرار دارند. آنها در مورد طرح و ایده های مربوط به ویژگی های مختلف سوال می کنند تا به دنبال راه حلی باشند. آنها درک می کنند که چه چیزی باعث ایجاد یک تجربه کاربری خوب می شود.از سوی دیگر یک برنامه نویس بد فقط به تکنولوژی مورد علاقه خود میچسبد. آنها فکر میکنند که یک متد یا فرآیند برای آنها ایده‌آل بوده و اینکه تجربه کاربری و موقعیت کاربر نباید روی تصمیم گیری ها تاثیری بگذارد. آنها متعلقات غیرضروری را برای راحتی و طبق تمایلات خود وارد پروژه می‌کنند.یک برنامه نویس بد درست به همین شکل رفتار میکنند و به گاوی در فروشگاه ظروف چینی شباهت دارد. تنها باعث از بین رفتن زمان، تلاش‌ها و خوشنامی تیم می‌شود.پروژه های موفق آن پروژه هایی هستند که چشم بسته توسط کاربران نهایی پذیرفته شده و بخشی از DNA کاری آنها می شوند.جمع بندیبسیار خوب، کلمه ای که بتواند تمام موارد گفته شده در این مقاله را جمع بندی کند چیست؟ پاسخ این است: نگرش.داشتن یک نگرش عالی بر داشتن سال ها تجربه کاری ارجحیت دارد و بر آن علبه می‌کند. اینکه فقط کار کنید کافی نیست، باید در محل کار دارای نگرش درست بوده و به جای داشتن مهارت درست، نگرش درست از اهمیت بسیار بالاتری برخوردار است. اگر کاری را بر عهده می‌گیرید که دوست دارید به عنوان شغل خود آن را انجام دهید، باید گفت که عاشق کارتان خواهید شد و انجام آن هرگز برایتان یکنواخت نخواهد بود. کارمند بودن بسیار مهم است و باید پیام درستی را در محل کار خود منتشر کنید.زیگ زیگلار در یک جمله موارد گفته شده را جمع بندی می‌کند:«این نگرش شماست که بلندی جاه و مقام شما را تعیین می کند نه شایستگی تان».</description>
                <category>مصطفی حسینی</category>
                <author>مصطفی حسینی</author>
                <pubDate>Fri, 09 Feb 2018 16:18:44 +0330</pubDate>
            </item>
                    <item>
                <title>آداب برنامه‌نویسی که نباید نادیده گرفت</title>
                <link>https://virgool.io/coderlife/%D8%A2%D8%AF%D8%A7%D8%A8-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%A9%D9%87-%D9%86%D8%A8%D8%A7%DB%8C%D8%AF-%D9%86%D8%A7%D8%AF%DB%8C%D8%AF%D9%87-%DA%AF%D8%B1%D9%81%D8%AA-tejg6ri3anr4</link>
                <description>تا به حال به این فکر کرده‌اید که منظور ما از آداب چیست، این آداب چرا ایجاد شده و چرا وجود آن‌ها در زندگی روزمره ما لازم است؟بسیارخوب، من می‌خواهم یک سخنرانی کوتاه در این باره داشته باشم لطفا ۳۰ ثانیه تحمل کرده و بعد از آن مستقیم به موضوع خواهیم پرداخت.جان جانسون: ابتدا مساله را حل کرده سپس کد را بنویسید.آداب«دستورالعمل مرسوم از رفتار مودبانه در جامعه یا در میان اعضای یک حرفه یا گروه خاص»موجودات بشری در واقع حیوانات اجتماعی هستند و این وظیفه اصلی ما است که نسبت به سایر افراد محتاطانه برخورد کرده و آن ها را با رفتار غیرمنطقی و بی‌ادبانه خود نرنجانیم بنابراین حتی اگر هیچ‌ کس شما را وادار به حفظ و اجرای یک دستورالعمل نکرد، این وظیفه شما به عنوان یک انسان خوب است که رفتار مودبانه خود را حفظ کنید یعنی اگر واقعا می‌خواهید در آرامش در این جامعه زندگی کنید باید این مورد را رعایت کنید.بسیار خوب، چرا من دارم در مورد آداب صحبت می‌کنم؟بله شاید به نظرتان عجیب باشد (اگر تازه کار هستید) اما ما کدنویس‌ها هم در هنگام کدنویسی برخی از آداب را رعایت می‌کنیم. اگر می‌خواهید یک برنامه‌نویس/ کدنویس خوب باشید، هرگز نباید این آداب را نادیده بگیرید.بیایید نگاهی بر برخی از آداب محبوب برنامه نویسی بیاندازیم که کمک می‌کنند کد شما خواناتر و ساختار یافته تر شده (قطعا ظاهر بهتری از قبل خواهند داشت) و باعث بالاتر رفتن احترام شما در میان جامعه برنامه نویسان شود.فاصله گذاری مناسبمن برنامه نویسان مبتدی زیادی دیده‌ام که هنگام کدنویسی بدون توجه به رعایت فاصله ‌ها و افزودن فضای خالی به ابتدای خط، فقط شروع به کدنویسی می‌کنند. معمولا کدهای آن‌ها چیزی شبیه به این است:این فقط ۱۴ خط کد است بنابراین خیلی اهمیت ندارد. اما حالا فرض کنید زمانی گذشته است و به آن‌ها پروژه‌ای محول می‌شود. آن پروژه ممکن است شامل ۲۰۰۰ خط کد باشد. فقط تصور کنید با این وضع، کدها چقدر نامنظم و آشفته خواهند بود. من که حتی از فکر کردن به آن هم وحشتزده می‌شوم.بنابراین به نظر من اولین و مهم ‌ترین چیزی که اساتید باید پس از برنامه‌ی Hello, World! آموزش دهند نحوه‌ی نوشتن یک کد تمیز است. کد تمیز و منظم شبیه یک شعر است که به خوبی نوشته شده و هر برنامه ‌نویسی می‌تواند آن را به آسانی خوانده و بفهمد.چقدر این کد زیباست اینطور نیست؟بله، بنابراین بیایید یک تصمیمی بگیریم، «ما کدنویسان همیشه فاصله‌ گذاری مناسب را رعایت خواهیم کرد.» در حال حاضر دادن ۲ یا ۴ فاصله در هر خط، فاصله ‌گذاری مناسب محسوب می‌شود. علاوه بر این، دلایل بسیار دیگری برای نوشتن کد‌های دارای فاصله‌ گذاری مناسب وجود دارد. فاصله گذاری مناسب باعث می‌شود کدهای شما به راحتی خوانده، فهمید، اصلاح و نگهداری شود.ساختارهای دایرکتوری درختیهر زمان پروژه ای را بر عهده گرفتید، یک اصل بنیادین را در ذهن داشته باشید. اینکه قرار نیست تمام کدها را در یک فایل بنویسید. شما باید از فایل ‌های مختلف برای اهداف مختلف استفاده کنید. بهترین کار این است که یک ساختار دایرکتوری درختی، درست همانطور که در نمودار زیر آمده است درست کنید:ایجاد یک ساختار دایرکتوری خوب باعث می‌شود کدها بسیار کارامدتر باشند. وقتی در حال انجام یک پروژه بزرگ هستید، حفظ یک ساختار خوب و مناسب باعث صرفه ‌جویی در وقت در زمان جستجو برای فایل های مورد نیاز می‌شود.استفاده از کامنتبه نظر من، این یکی از مهم‌ ترین آداب کدنویسی است. خیلی از اوقات پیش می‌آید که افراد مشغول کدنویسی بوده و آن را با عجله به پایان می‌رسانند و وقتی پس از مدتی (مثلا یک ماه) دوباره به کدها مراجعه می کنند اصلا سر در نمی‌آورند هدف از نوشتن آن کد چه بوده است.بهترین کار این است که برای هر تابع یا ماژولی که می‌نویسید یک کامنت بگذارید. این کار در حوزه دیباگ کردن کد‌ها در هنگام ایجاد خطا بسیار مفید و کارامد است. اگر برای هر کد ویژه‌ای که می‌نویسید یک کامنت ایجاد کنید، این کار کمک می‌کند بفهمید در هنگام وجود باگ، مشکل کار از کجاست.عادت کامنت‌‌ گذاری را در خود ایجاد کنید چون آن‌ها به هر کسی (منجمله خودتان در آینده) کمک می‌کند کدها را نگهداری، بازسازی و توسعه دهید.کدهای خود را مستند کنیدوقتی یک برنامه‌نویس هستید، هرگز فراموش نکنید که مستندات کافی و مناسب برای کدهای خود ایجاد کنید. هدف از مستندسازی کدها قابل استفاده بودن آن برای هرکسی است که می‌خواهد از کد منبع شما استفاده کند اما نمی‌خواهد آن را بخواند.بیایید مثالی را در نظر بگیریم. فرض کنید شما یک برنامه نویس بک اند (سمت سرور) هستید و به تازگی یک API ایجاد کرده‌اید و یک برنامه‌نویس فرانت اند (سمت کاربر) می‌خواهند از آن برای اهداف مشخصی استفاده کند. حالا اگر شما مستندات مناسب و کافی برای کد خود ایجاد نکرده باشید، او مجبور است تمام کد شما را بخواند که کاری بی‌فایده و وقت‌ گیر است. برای جلو‌گیری از این کار، وظیفه اخلاقی برنامه‌نویس API این است که مستندات مناسب را برای اجرای کد خود ایجاد کن. برای مثال اسکرین شات زیر را ملاحظه کنید که از کتابخانه mongoosejs گرفته شده است و دارای مستندات فوق ‌العاده‌ای است.همه جا از foobar استفاده نکنیداگر شما یک برنامه نویس کاملا مبتدی باشید احتمالا از اینکه کلمه foobar چیست هیچ اطلاعی نداشته باشید. عباراتی مانند foobar، foo، bar و baz در واقع جایگزین ‌های رایجی است که وقتی نمی‌توانید نام مناسبی برای یک متغیر یا فایل انتخاب کنید، مورد استفاده قرار می‌گیرند. این عبارات می‌توانند برای نشان دادن هر بخش از یک سیستم یا ایده‌ی پیچیده شامل داده‌ ها، متغیرها، توابع و فرامین مورد استفاده قرار بگیرند.استفاده از این نام ‌های تصادفی بسیار اقدام نامناسبی است. هر زمان کدی می‌نویسید همیشه به یاد داشته باشید که نام متغیرها و توابع شما باید به وضوح نشان‌ دهنده کاربرد مربوطه آن‌ها باشد. استفاده از این نام‌ های تصادفی باعث ایجاد مشکلات بسیار بزرگی در فاز تست و باگ ‌یابی خواهد شد. هیچ کس نمی خواهد وقت خود را برای فهمیدن اینکه foo برای چه هدفی و bar برای چه منظوری به کار رفته است هدر دهد.انتخاب نام های با معنی برای فایل هاهیچ وقت بر روی فایل های خود نام‌ های تصادفی نگذارید. نام فایل های شما درست مانند نام متغیرها باید نشان دهنده هدف ایجاد آنها باشد.در واقع قواعد متعددی برای نام‌ گذاری فایل ها وجود دارد که استفاده از آنها توصیه شده و شما هم باید از آنها استفاده کنید. اما حتی اگر دقیقا از این قوانین پیروی نمی‌‌کنید حداقل نام فایل‌ های خود را به گونه‌ای انتخاب کنید که برای خودتان قابل فهم باشند. هیچ وقت نام فایل های خود را به صورت xyz.md یا adc.txt انتخاب نکنید.قواعد نام گذاری فایل ها (FNC) می‌تواند از طریق ساده سازی پیدا کردن  فایل‌ های حاوی اطلاعات مورد نیاز شما از طریق عنوان فایل و گروه بندی فایل هایی که حاوی اطلاعات مشابه هستند، به شما در سازمان یافته تر بودن کمک کند. یک FNC خوب می‌تواند به دیگران هم در درک کار شما و راهیابی در میان آن کمک کند.نوع حروف خود را انتخاب کنیددنبال کردن یک تایپوگرافی مشخص برای نام‌ گذاری متغیرها همیشه کار بسیار خوبی است. نوع حروف (کوچک یا بزرگ) خود را انتخاب کرده و همیشه فایل ها را با همان نوع نام گذاری کنید تا واضح تر و خواناتر باشند. برای مثال من همیشه از ترکیب حروف کوچک و بزرگ استفاده می‌کنم.نگاهی به انواع محبوب استفاده از حروف بیاندازید:۱. نوشتن با حروف بزرگ: اولین حرف از کلمه با حروف بزرگ نوشته شده و بقیه حروف به صورت کوچک نوشته می‌شود.۲. حروف پاسکال: لغات بدون فاصله نوشته می‌شوند و اولین حرف از هر کلمه به صورت بزرگ نوشته می‌شود. روش پاسکال را گاهی UpperCamelCase هم می‌گویند.۳. ترکیب حروف کوچک و بزرگ: نوع دیگری از روش پاسکال است که در آن حرف اول کلمه با حروف کوچک نوشته می‌شود مثل iPhone۴. روش ماری (snake_case): نشانه گذاری حذف شده و فاصله ها با یک آندرلاین جایگزین می‌شوند. می‌توان از حروف کوچک یا بزرگ استفاده کرد اما از هر کدام که استفاده شود باید همیشه از همان استفاده کرد.«اینکه می‌توانید برنامه بنویسید شما را به یک برنامه نویس خوب تبدیل نمی‌کند. نوشتن کدی که حتی یک شخص غیر حرفه‌ای هم بتواند آن را درک کند همان چیزی است که از شما یک برنامه نویس خوب می سازد».کدهای خود را تکرار نکنیداگر در حین ایجاد یک پروژه یا یک نرم افزار مجبور شوید چندین بار کدهای خود را کپی و پیست کنید در این صورت اصلا برنامه نویس خوبی نیستید. تکرار چندین باره‌ی خطوط مشابه کد یکی از بدترین کارهایی است که در کدنویسی انجام می‌شود.می‌توان با استفاده گسترده از توابع باعث جلوگیری از تکرار کدها شد. هر کجا متوجه شدید که دارید خطوط مشابهی از کد را تکرار می‌کنید، آن را به یک تابع تبدیل کنید. عدم تکرار کدها مزایای بسیاری دارد و کدهای شما تمیز و مرتب مانده و شانس وجود باگ به حداقل می‌رسد.عدم تکرار کدها باعث حفظ تناسب می‌شودشما حتی می‌توانید هدف اصلی برنامه را به چند تابع کوچک تر تقسیم کرده و هر یک از آنها را به صورت جداگانه انجام دهید. این کار به شما کمک می‌کند تا برنامه‌های بزرگ را مدیریت کنید.نظرتان در مورد انتخاب قواعد کدنویسی رایج چیست؟قواعد کدنویسی مجموعه ای از دستورالعمل ها برای یک زبان برنامه نویسی مشخص است که سبک برنامه نویسی، تمرین ها و متدهایی را برای هریک از جنبه های برنامه نوشته شده با آن زبان توصیه می‌کند. یک قاعده کدنویسی برای پروژه های خود انتخاب کرده و به آن متعهد باشید.خوش بگذرانیدحالا به مهم‌ترین بخش برنامه نویسی می‌رسیم. هر برنامه‌ای که می‌نویسید، هر نرم‌افزاری که توسعه می‌دهید، همیشه خوش بگذرانید. کدنویسی فوق‌العاده است، این کار را به عادت روزانه خود تبدیل کنید تا ببینید چقدر سرگرم کننده است. اگر در زمان کدنویسی به شما خوش نگذرد انعکاس آن در کدهایتان مشخص خواهد بود.مصطفی حسینی</description>
                <category>مصطفی حسینی</category>
                <author>مصطفی حسینی</author>
                <pubDate>Thu, 08 Feb 2018 11:56:01 +0330</pubDate>
            </item>
            </channel>
</rss>