<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های صادق علوی زاده</title>
        <link>https://virgool.io/feed/@salavizadeh</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-04-15 04:46:00</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1012/avatar/5hI6i0.png?height=120&amp;width=120</url>
            <title>صادق علوی زاده</title>
            <link>https://virgool.io/@salavizadeh</link>
        </image>

                    <item>
                <title>چرا منتورینگ در مسیر رشد کاری الزامیست؟</title>
                <link>https://virgool.io/@salavizadeh/%DA%86%D8%B1%D8%A7-%D9%85%D9%86%D8%AA%D9%88%D8%B1%DB%8C%D9%86%DA%AF-%D8%AF%D8%B1-%D9%85%D8%B3%DB%8C%D8%B1-%D8%B1%D8%B4%D8%AF-%DA%A9%D8%A7%D8%B1%DB%8C-%D8%A7%D9%84%D8%B2%D8%A7%D9%85%DB%8C%D8%B3%D8%AA-tucsdaw9pj8p</link>
                <description>یکی از چالشهای امروز تیمهای توسعه و شرکتها و استارتاپهای حوزه نرم‌افزار کمبود نیروی کار ماهر هست. از قدیم هم این اصل بوده که نیروی خوب را یا باید بسازی یا بدزدی! چرا که اگر شرکتها و تیمها ارزش نیروهای خوب خود را بدانند قطعا شرایطی را فراهم میکنند که آنها در تیم بمانند! پس دیگر تیمها و شرکتها اگر نیروی خوب بخواهند راهی ندارند جز ساختن و یا دزدیدن!حال ما به راه دوم کاری نداریم! ولی برای ساختن نیرو یکی از روشهای ثابت شده گرفتن افراد علاقه‌مند و پرورش آنها در درون تیم هست. چرا که آموزشِ تنها، معمولا بدلیل اینکه نیرو در محیط واقعی قرار نمیگیرد معمولا خروجی مورد نظر را ندارد. البته که آموزش هم نیاز هست و نمی‌توان کاملا آنرا کنار گذاشت.در اینجا میرسیم به موضوع اصلی بحث که همان منتورینگ هست. اصلا قصد تعریف این واژه را در اینجا ندارم و بیشتر قصدم اثبات لزوم آن برای هر فردی هست که در تیم مشغول به کار است. بنا به تجربه، این موضوع را (متاسفانه از سمت حتی مدیران و برنامه ریزان) که اگر نیروی تازه کار وارد تیم شود باعث میشود وقت نیروهای قبلی -برای آموزش و پرورش نیروی جدید- گرفته شود را زیاد شنیده‌ام. که این حتی بصورت مقاومت در داخل تیم هم دیده میشود که وقتی نیرویی تازه کار به تیم وارد میشود افراد گلایه دارند که اگر بخواهند برای نیروی جدید وقت بگذارند از راندمان کاری و بهره‌وری که مورد انتظار هست دور خواهند شد! اما اینجا بنا به تجربه چندین ساله که در امر آموزش - بصورت آموزشگاه داری و هم حوزه تیم‌سازی - داشته‌ام به شدت با این موضوع مخالم و در واقع این مورد را بیشتر بهانه‌ای از طرف افراد میدانم که یا افراد دهنده‌ای (Giver) نیستند و یا اینکه ممکن است تحت ثاثیر شرایط نامطلوب پروژه‌ها در شرکت و سازمان (همان فورس بودن و فشارهای بیش از حد) این برخورد را با این موضوع دارند. اما روی صحبتم با شماست که می‌خواهید در تیم رشد پیدا کنید و مهارتهای جدید بدست بیاورید. حتما و بدون هیچ شکی همیشه از منتورینگ و آموزش نیروهای جدید در تیم استقبال کنید!دلایل اینکه منتورینگ الزامیست:در هرم یادگیری بالاترین سطح یادگیری وقتی حاصل میشود که شما موضوع را به دیگری آموزش دهید. پس با اینکار می توانید دانسته های خود را بیشتر و عمیق‌تر کنید.با منتورینگ می‌توانید یکی از مهمترین مهارتهای کار تیمی که همان مهارت ارتباطی هست را در خود پرورش دهید. چرا که هر فرد به نوعی منحصر بفرد هست و شما در مواجه با افراد مختلف و برای انتقال مفاهیمی به آنها ناگزیر خواهید بود روشها و متدهای ارتباطی مختلف را بکار بگیرید.شاید در ابتدا از کار اصلی و وظیفه خود باز بمانید ولی پس از مدتی افرادی در تیم خواهید داشت که شناخت خوبی از سطح کاری آنها دارید و می توانید با خیال راحت وظایف را به آنها بسپارید و با توجه به آن شناخت تقسیم کار بهتری داشته باشید، که این مهم باعث رشد سرعت انجام کارها و پیشرفت پروژه خواهد شد.شما در حین آموزش به فرد دیگر به نوعی بخشی از کارهایی که خود انجام میدهید را منتقل میکنید به آن فرد ، با در نظر داشتن این نکته که برای پیشرفت به مدارج بالاتر در سازمان باید افرادی باشند که بتوانند کار فعلی شما را بخوبی انجام دهند، در واقع دارید زیربنای پیشرفت شغلی خود را میسازید. (در سازمان و شرکت فعلی یا حتی در جایی دیگر!)افراد معمولا همیشه نسبت به کسانی که از آنها چیزی یاد میگیرند یک حس دِین دارند و اینکار در واقع می تواند برای شما یک منزلت اجتماعی هم ایجاد کند، همینطور می تواند موقعیت شما را در سازمان به عنوان فرد تاثیرگذار بهبود ببخشد و حتی می تواند برای شما شهرت هم به ارمغان بیاورد. این بند آخر رو دوست نداشتم اضافه کنم چون خودم اصلا علاقه‌ای به این دستاوردها ندارم ولی خوب واقعیتی هست که وجود دارد!چند نکته مهم: (که برای همه زندگی مهم هست نه فقط در کار!)شخصیت آدمها بصورت کلی به دو نوع دهنده (GIVER)‌ و گیرنده (TAKER) تقسیم می‌گردد. که البته بسیاری هم در طیف بین این دو هستند. شما باید سعی کنید به سمت شخصیت دهنده حرکت کنید تا بتوانید منتور بهتری باشید.نکته بعدی اینکه باید حواسمان به این موضوع هم باشد که نباید همیشه و تنها دهنده باشیم! بلکه برای پیشرفت نیاز داریم که گاهی با افراد دهنده دیگر هم ارتباط داشته باشیم و به نوعی گیرنده هم باشیم تا بتوانیم پیشرفت کنیم، پس لازم نیست خودتان را قربانی کنید! باید یک توازنی بین منفعت رساندن به دیگران و به دنبال مطلوبها و منافع خودتان بودن، برقرار کنید.اما اگر طرف مقابل ما شخصیتی تنها گیرنده داشت تکلیف چیست؟ معمولا در مواجهه با این افراد باید سعی کنیم ۱) از آنها بخواهیم در مقابل چیزی که میدهیم آنها هم چیزی به ما بدهند! ۲) یا اینکه از آنها بخواهیم چیزهایی که از ما دریافت میدارند را به دیگران هم بدهند. و ببینید اگر اینکار را انجام میدهند شما هم ادامه دهید به منفعت رساندن به آنها.برای شناخت افراد فقط گیرنده این نکات رو به یاد داشته باشید: ۱) آنها معمولا از ضمیر «من»، «برای من»، «تیم من» یا «کار من» و ... زیاد استفاده میکنند ۲) این نوع افراد در واقع افرادی هستند که بیشتر های و هوی دارند و اگر کاری هم در تیم انجام شود سعی میکنند خودشان آنرا جار بزنند و به شکلی به نفع خودشان مصادره کنند و همینطور برعکس وقتی مشکلی پیش می‌آید سعی در انداختن توپ در زمین بقیه میکنند.در انتها این نکته را هم اضافه کنم که همیشه یکی از بهترین لذتهای دنیوی که همه بزرگان آنرا توصیه میکنند، رایگان بخشی هست. که البته شاید از موضوع این بحث کمی دور باشد ولی خیلی دوست دارم که  این مطلب این رو هم اضافه کنم که تا حد امکان در زندگی رایگان بخشی داشته باشید و از لذت آن بهره مند شوید.پیشنهاد میکنم کتاب «دیگر دوستی موثر» از آقای پیتر سِنگر رو حتما مطالعه کنید. اینجا هم بیشتر در این باب بخوانید.</description>
                <category>صادق علوی زاده</category>
                <author>صادق علوی زاده</author>
                <pubDate>Tue, 04 Jan 2022 12:50:29 +0330</pubDate>
            </item>
                    <item>
                <title>نمیدونم، ولی پیداش میکنم!</title>
                <link>https://virgool.io/podblog/%D9%86%D9%85%DB%8C%D8%AF%D9%88%D9%86%D9%85-%D9%88%D9%84%DB%8C-%D9%BE%DB%8C%D8%AF%D8%A7%D8%B4-%D9%85%DB%8C%DA%A9%D9%86%D9%85-z6yqknlkefko</link>
                <description>مسولیت‌پذیری، چیزی که این روزها خیلی کمیاب هم شده. مخصوصا در بین نیروهای کار چندتا ویدئو دیده و متوهم از دو تا ebook خونده! فرقی نمیکند شما تنها یک دولوپر در یک تیم هستی یا راهبر فنی یا هر پوزیشن دیگری. این خیلی مهم هست که بعنوان کسی که وظیفه ای بر عهده دارد، برای حرفه‌ای شدن باید بتوانی در همون حد (و بلکه بیشتر!) مسوولیت بپذیری. فرض کن یک پروژه رو تحویل دادی و موقع اجرا به یک خطایی می خورد، در اینجا می‌توان گفت «نمیدونم مشکل چیه» ولی حتما باید بعدش هم بگی که «اما می گردم و پیداش میکنم» در واقع اینکه یک موضوعی رو ندونی و یا اینکه تا حالا باهاش برخورد نداشته باشی خیلی عیب بزرگی نیست، ولی اینکه بعد از اینکه گفتی «نمیدونم» نگی که «میرم و پیداش میکنم» خیلی نکته منفی خواهد بود!در راه پیشرفت و ترقی در یک سازمان یا شرکت و یا حتی بعنوان یک فرد متخصص، اولین و مهمترین خصیصه مسوولیت پذیری هست، حتی شاید مهمتر از تخصص و تجربه!تفاوت بین یک برنامه‌نویس معمولی و یک برنامه‌نویس خوب همین قابل اتکا بودن فرد هست که کارفرما بداند اگر مشکلی هم رخ داد حتما فرد نسبت به آن پاسخگوست. من در این سالهای کاری، زیاد دیدم افرادی را که وقتی مشکلی پیش آمده است تنها گفته اند که «خوب باگ وجود دارد» یا اینکه «روی سیستم من درست کار میکرده!». بله این درست هست و زیاد هم پیش می‌آید ولی همانطور که بالاتر هم گفتم باید حتما بعدش هم دنبال موضوع باشیم و در برطرف کردن آن مشکل، خودمان را مسوول بدانیم.من به شخصه چندین بار با این مشکل برخورد کردم که کارفرما خیلی حاضر به پرداخت هزینه انجام کار در بهترین حالت نیست و یا اینکه آن چیزی که مدنظر ما هست را پرداخت نمیکند، ولی اگر در صورت بروز مشکل ما به بهترین وجه ممکن پاسخگو باشیم، قطعا کارفرما نیز این حس مسوولیت را درک میکند و این رابطه می‌تواند در آینده تبدیل به یک رابطه برد-برد شود.متاسفانه در شبکه های اجتماعی یا جوامع برنامه‌نویسی زیاد می‌شنویم که مثلا کارفرما حاضر نیست پولی بدهد و انتظار هم دارد که برنامه بدون هیچ مشکلی کار کند یا به بهترین حالت  ممکن تحویل شود. بله نکته اینجاست که شما یا نباید کاری را قبول کنید ولی اگر قبول کردین اولین وظیفه شما اینست که در بهترین حالت تحویل دهید و نسبت به آن نیز پاسخگو باشید.با رعایت این مورد هر روز به موفقیت و تبدیل شدن به یک آدم حرفه‌ای در کار خود، نزدیکتر خواهید شد و بدون آن مهم نیست که چقدر تخصص یا تجربه دارید، بدانید که به جایی نخواهید رسید و یا همینجا که هستید خواهید ماند!امیدوارم که موفق باشید و پاسخگو ?</description>
                <category>صادق علوی زاده</category>
                <author>صادق علوی زاده</author>
                <pubDate>Sat, 01 Jan 2022 17:46:02 +0330</pubDate>
            </item>
                    <item>
                <title>چرا پرسیدن سوالات فنی اهمیت دارد؟!</title>
                <link>https://virgool.io/podblog/%DA%86%D8%B1%D8%A7-%D9%BE%D8%B1%D8%B3%DB%8C%D8%AF%D9%86-%D8%B3%D9%88%D8%A7%D9%84%D8%A7%D8%AA-%D9%81%D9%86%DB%8C-%D8%A7%D9%87%D9%85%DB%8C%D8%AA-%D8%AF%D8%A7%D8%B1%D8%AF-szfgejt6s9mj</link>
                <description>یکی از مهمترین مهارتهای یک برنامه نویس و یا هر فرد دیگر که در یک تیم کار میکند، مهارت ارتباطیست! حالا این چه ارتباطی دارد به عنوان این نوشته، در ادامه خواهم گفت. برای من خیلی اتفاق افتاده که در یک مورد فنی روی یک موضوعی مدتی گیر کردم و یا اینکه دلیل یک اشکالی را پیدا نمیکردم، و وقتی که رفتم اون موضوع یا مشکل را برای یک فرد دیگر تعریف کردم در حین تعریف آن، پاسخ را و یا دلیل آن را خودم پیدا کردم!در مقام راهبر فنی یا سرپرست هم زیاد پیش اومده که فردی اومده یک سوالی را بپرسه و در حین تعریف کردن خودش گفته «آهان فهمیدم!» یا «هیچی! هیچی!» و برگشته! اگه شما سابقه کار تو تیم یا با دوستان رو داشته باشین حتما این تجربه رو داشتین. بله، این دقیقا اتفاقی هست که خیلی از بزرگان (از برنامه‌نویسی گرفته تا عرفان و فلسفه) گفته اند که وقتی مسئله را برای کسی شرح دهی به جوانبی از آن آگاه می شوی که وقتی داخل آن هستی آنها را نمی بینی. چرا این اتفاق می افتد؟ برای اینکه ذهن ما معمولا شرایطی که در آن قرار داریم را بدلیل اینکه برای ما بدیهیست در مسیر تفکر در مورد خود مشکل، کنار میگذارد و وقتی شما می خواهید برای کسی شرح دهید اول باید آنها را توضیح دهید تا بتوانید برسید به اصل مشکل، یعنی در واقع باید کمی بیرون بیایید و از بیرون شروع کنید به توضیح دادن تا برسید به اصل موضوع و در خلال این بیرون آمدن در بسیاری از زمانها ریشه مشکل پیدا میشود.مزیتهای دیگری هم این موضوع دارد. اول اینکه باعث رشد مهارتهای ارتباطی ما در تیم خواهد شد که گفتیم از مهمترین مهارتهای افراد در تیم است. وقتی می خواهید سوال بپرسید در واقع قصد دارید چیزی از هم تیمی یا همکار خود بخواهید و قطعا برای اینکه از کسی چیزی بخواهیم باید قبلا از اینکه آن فرد به خواسته ما اهمیتی می دهد مطمئن باشیم. همین باعث میشود که ما همیشه سعی در بهبود روابط خودمان داشته باشیم.هم اینکه با سوال پرسیدن اول به خودمان و بعد به دیگران می فهمانیم که ما کامل نیستیم و همواره ممکن هست  نقاط ضعفی هم داشته باشیم. که این مهم، هم جلوی غرور کاذب ما و هم ذهنیت منفی دیگران نسبت به ما رو خواهد گرفت که در نهایت به بهبود رابطه بین ما و دیگر افراد تیم خواهد انجامید. فرض کنید یک برنامه‌نویس با سابقه یک موضوع یا مشکلی را با همکاری که کم تجربه‌تر هست مطرح کند، قطعا این باعث میشود که آن فرد احساس بهتری نسبت به همکار خود داشته باشد و متوجه شود که فقط او نیست که نقاط ضعف یا ایراداتی دارد.البته که باید توجه داشت که سوال پرسیدن های پی در پی و بدون فکر هم قطعا طبعات منفی خواهد داشت در تیم، پس همیشه اول خوب به موضوع فکر کنید و در نهایت اگر راه حلی پیدا نکردین از پرسیدن آن نترسید!</description>
                <category>صادق علوی زاده</category>
                <author>صادق علوی زاده</author>
                <pubDate>Sun, 26 Dec 2021 16:18:13 +0330</pubDate>
            </item>
                    <item>
                <title>نوشتن برای برنامه نویس مهم است!</title>
                <link>https://virgool.io/podblog/%D9%86%D9%88%D8%B4%D8%AA%D9%86-%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%85%D9%87%D9%85-%D8%A7%D8%B3%D8%AA-eezqyhjsogpg</link>
                <description>یعنی چی؟ نوشتنِ چی؟ خاطره؟ تجربه؟ دل نوشته؟ کد؟ داستان؟ نمایشنامه؟ کتاب؟ چی؟!!مگه برنامه نویس کارش فنی نیست؟ مگه یک برنامه نویس همیشه سرش شلوغ نیست؟ یا حداقل فکرش همیشه درگیر نیست؟ پس کِی می تونه بنویسه؟ اینها و خیلی سوال دیگه چیزهایی هست که میدونم با دیدن این عنوان به ذهنتون میرسه! اما در یک جمله که بخوام بگم این هست که منظورم دقیقا نوشتن هست به هر شکلی و به هر عنوانی. می تونه همه این موارد باشه حتی نوشتن داستان و خاطره و حتی نمایشنامه!!حالا در اینجا من نمی خوام وارد مباحث کلی بشم که نوشتن چقدر می تونه در زندگی به ما کمک کنه، بصورت اختصاصی و بعنوان یک برنامه نویس مهارت نوشتن خیلی می تونه مفید باشه. بارها دیدم که چقدر افراد در نوشتن یک مستند فنی و یا توضیح اینکه یک فیچر یا سرویس چگونه کار میکند مشکل داشته اند و دارند. اصلا خود نوشتن کد هم به نوعی نیاز به مهارت نویسندگی دارد که در مباحث کدنویسی تمیز همیشه عنوان میشه. البته که خوب اونجا شاید بیشتر نوشتن انگلیسی و دامنه لغات و این موارد مطرح باشه ولی خوب به هر حال همیشه یک نویسنده خوب می تونه کدهای قابل فهمتری رو هم تولید کند.حالا راهکار چیه. بهترین راهکار همین هست که تا می تونیم چیز بنویسیم و مهمتر از اون سعی کنیم چیز بخونیم. همیشه میزان مطالعه یک فرد (مشخصا مطالعه غیر فنی) بعنوان برنامه نویس برای من یکی از فاکتورهای تشخیص بوده و به تجربه بارها دیدم که افرادی که بیشتر مطالعه میکنند همیشه خروجی های بهتری رو برای تیم و مشتری تولید کردند .این چالش همیشگی که فرصت نیست یا وقت برای فکر کردن به اینکه چی بنویسیم رو نداریم هم یک چالش موهوم هست! همینکه گوشی موبایل داری و سواد نوشتن و کار کردن باگوشی رو هم داری کافیه که در هر زمانی حتی شده یک جمله - که می تونه تجربه، ایده، نظر یا یک اتفاق باشه- رو بنویسی. البته که بهتره منتشر هم بکنی ولی الزامی نیست. من خودم همین الان شاید صدها متن و نوشته در جاهای مختلف و بیشتر هم تو evernote دارم که منتشر نشدن و نمیشن? که شامل داستانها، خاطرات، تجربیات و حتی درددلهای خودم با خواننده خیالی بوده.همین مکان هم می تونه یک نقطه شروع باشه که بتونیم به سادگی و به دور از هرگونه تجملاتی چیز بنویسیم و با دیگران به اشتراک بزاریم. نتیجه گیری: اگر میخوای یک قدم جلوتر باشی، اگه می خوای بیشتر دیده بشی، اگه میخوای بیشتر درک کنی، اگه می خوای بیشتر از زندگی بفهمی و لذت ببری، بنویس.</description>
                <category>صادق علوی زاده</category>
                <author>صادق علوی زاده</author>
                <pubDate>Sat, 11 Dec 2021 12:51:57 +0330</pubDate>
            </item>
                    <item>
                <title>برنامه نویس حرفه ای کیست؟ (قسمت اول)</title>
                <link>https://virgool.io/@salavizadeh/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-%DA%A9%DB%8C%D8%B3%D8%AA-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-ogoc4sext3cq</link>
                <description>حرفه ای گری در برنامه نویسیبه نظر من یکی از مهمترین چالشهای نیروی انسانی امروز جامعه ما بطور کلی توهم حرفه ای بودن است که در ذهن بسیاری از افراد جویای کار و یا فعال در زمینه های مختلف وجود دارد. که این مهم در زمینه تخصصی برنامه نویسی و علوم کامپیوتر بسیار بیشتر نمود پیدا کرده است.من به شخصه همواره در مدت زمان فعالیت مدیریتی خود با کمبود نیروی حرفه ای مواجه بودم. بسیار این مورد پیش می آمد که افرادی برای مصاحبه شغلی که خود را برنامه نویس حرفه ای معرفی کرده بودند، نزد من می آمدند و در کمال تعجب میدیدم که آنها از الفبای کار و اخلاق حرفه ای اطلاع ندارند چه رسد به انجام کار حرفه ای.برای همین تصمیم گرفتم یک مطلب رو در این جایگاه به این موضوع اختصاص دهم تا شاید بتواند یک تعریف ساده و ابتدایی را به علاقه مندان و همچنین کارفرمایان جویای برنامه نویس ارائه کند.این مطلب را با استفاده از برداشتی آزاد از فصل اول کتاب The Clean Coder نوشته آقای Robert C. Martin معروف به Uncle Bob یا همان عمو باب، با عنوان Professionalism نوشته ام.البته سعی کردم در مثالها به مواردی اشاره کنم که ما در جامعه خود بیشتر میبینیم که بر اساس تجربه‌های خودم بوده است.مراقب باشید که چه چیزی می خواهیداگر واقعا خواهان آن هستید که بعنوان یک برنامه نویس حرفه ای به فعالیت بپردازید باید بدانید که دقیقا چه می خواهید.یک برنامه نویس حرفه ای دو خصیصه کلیدی دارد یکی مسئولیت پذیری و دیگری پاسخگو بودن‌ است.اگر برنامه ای که تحویل کارفرما می شود بدلیل یک مشکل در کد برنامه مثلا ۱۰ میلیون تومان به وی ضرر برساند، یک برنامه نویس غیر حرفه ای در مقابل شانه های خود را بالا می اندازد و می گوید: «خوب هیچ برنامه ای بدون باگ که نمی شود».اما در مقابل یک برنامه نویس حرفه ای ممکن است یک چک به مبلغ زیان وارد شده به کارفرما بدهد و در واقع مسئولیت آن را به عهده بگیرد. البته حتما شما اگر برنامه نویس باشید اینجا میگویید که خوب برنامه ای که یک برنامه نویس حرفه ای هم می نویسد ممکن است دارای باگ باشد، بله کاملا درست است اما اینجا تفاوت در قبول مسئولیت و عدم پاسخگو بودن در مواجه شدن با آن می باشد.پس بدانید که اگر ادعای حرفه ای بودن دارید باید تبعات ناشی از آن که شامل قبول مسئولیت کارکرد صحیح برنامه می باشد را نیز بپذیرید.گرفتن مسئولیتعمو باب در اینجا داستانی از اولین مسئولیتش بعنوان یک برنامه نویس می نویسد که بعد از تحویل دادن برنامه با امکانات جدید به مشتریان که در آن سالها می بایست برنامه را روی Tape بصورت حضوری می برد و برای هر یک نصب میکرد، یک مشکلی بوجود آمد که برنامه کار نکرد و این باعث شد صدای نارضایتی تمام مشتریان و متعاقبا کارفرما در آید. اما مشکل اینجا بود که عمو باب نمی دانست چرا این مشکل بوجود آمده است.حالا شما فرض کنید بعنوان یک برنامه نویس در این موقعیت باشید، چه میکنید؟من در سال ۷۶ در یک شرکت نرم افزاری در مشهد بصورت کارآموز مدتی مشغول بودم که با زبان برنامه نویسی پاسکال برنامه می نوشتند، این شرکت در آن سالها جزء برترین شرکتهای نرم افزاری مشهد و یا حتی ایران محسوب میشد.دقیقا به خاطر دارم که مدیر تیم برنامه نویسی آن تا آخرین روزهایی که در آنجا بودم اجازه کمپایل کردن کدهای من رو به خودم نمیداد و تنها میگفت: «تو کد را بنویس بده من خودم آنرا به همراه برنامه اصلی کمپایل میکنم» و این موضوع همیشه برای من ناراحت کننده بود.یک روز وقتی در این مورد با او صحبت کردم گفت: «ما بیش از ۳۰۰ مشتری داریم اگر بعد از اینکه برنامه رو برای همه آنها فرستادیم و بعد به مشکل خورد من باید به شرکت پاسخ بدهم نه تو، پس ترجیح میدهم کدی را که خودم دیدم و تست کردم رو کمپایل کنم.»حتی وقتی یک فایل com برای تغییر فونت Draft در چاپگرهای سوزنی درست کردم که در برنامه ها برای فارسی سازی چاپگر استفاده کنند، با اینکه روی چندین چاپگر چک شد و نتیجه مثبت بود از من کد برنامه رو خواست تا قبل از انتشار از نحوه کار آن مطمئن شود.البته وقتی من گفتم سورسی در کار نیست و من روی یک فایل com دیگر تنها با استفاده ازHexEditor جدول ماتریسی فونتها رو طراحی کردم و تغییر دادم بازهم کار رو از من قبول نکرد و اون فایل حداقل تا وقتی که من اونجا بودم همراه برنامه منتشر نشد.درک این موضوع در آن سالهای جوانی (نوجوانی!) برای من کمی دشوار بود و من همه جا از این موضوع گلایه میکردم، ولی بعدها در مسئولیتهایی که داشتم دقیقا این موضوع را تجربه کردم که خیلی هم برایم گران تمام شد.اگر شما برنامه نویس هستید و یا قصد دارید که برنامه نویس شوید و یا اینکه قصد دارید برنامه نویسانی را استخدام نمایید، باید بدانید که یکی از مهمترین مشخصه های یک برنامه نویس قابل اعتماد و حرفه ای، همین موضوع مسئولیت پذیری است.البته این مورد در تمامی کارها و حرفه ها یک رکن اساسی محسوب می شود ولی در برنامه نویسی بدلیل اینکه محصول یک کد است که می تواند بدون نویسنده اش هیچ ارزشی نداشته باشد و یا حداقل خیلی کم ارزش باشد، بیشتر باید مورد توجه قرار گیرد.در بخشهای بعدی این مطلب نیز با من همراه باشید.قبلا در وبلاگ منتشر شده.</description>
                <category>صادق علوی زاده</category>
                <author>صادق علوی زاده</author>
                <pubDate>Wed, 28 Aug 2019 00:45:29 +0430</pubDate>
            </item>
                    <item>
                <title>حداقل برنامه نویس قابل قبول</title>
                <link>https://virgool.io/coderlife/minimum-viable-programmer-qxbtr9vfxnbu</link>
                <description> اگر می خواهید برای استارتاپ یا شرکت خود با حداقل بودجه یک برنامه‌نویس استخدام کنید، یا اگر می خواهید کار برنامه‌نویسی را شروع کنید، باید با تعریف برنامه‌نویس حداقلی آشنا باشید و بدانید که یک برنامه‌نویس، حداقل باید دارای چه مهارتهایی باشد تا بتواند کارش را شروع کند و با گذشت زمان به برنامه‌نویس قابلی تبدیل گردد.این مطلب می‌تواند برای علاقه‌مندان برنامه‌نویسی، برنامه‌نویسان و همچنین کارفرمایان و صاحبان استارتاپها مفید باشد. حتی اگر هنوز تصمیم نگرفته اید که آیا برنامه‌نویسی برای شما شغل مناسبی هست یا نه، این مطلب می تواند به شما با توجه به شناختی که از توانایی های خود دارید کمک کند تصمیم بگیرید که آیا می توانید در این راه موفق شوید یا نه.من مدت نزدیک به بیست سال است که در زمینه برنامه‌نویسی و مدیریت تیم‌های برنامه‌نویسی و آموزش برنامه‌نویسی مشغول هستم و همیشه یکی از مهمترین سوالاتی که برنامه‌نویسان، کارفرماها و علاقه‌مند به برنامه‌نویسی از من می‌پرسند این بوده که یک برنامه‌نویس خوب حداقل باید چه ویژگی‌هایی داشته باشد تا بتواند به عنوان برنامه‌نویس استخدام شود و مراحل حرفه ای شدن را طی کند.در تعاریف استارتاپی ما چیزی به نام «محصول حداقلی» یا «حداقل محصول قابل قبول» داریم که احتمالا با آن آشنا هستید، Minimum Viable Product یا  MVP. در ساده‌ترین تعریف یعنی محصولی که در سریعترین زمان ممکن با حداقل امکانات ایجاد شود که ویژگیهای مورد نظر ما را بتواند به مشتری انتقال دهد و قابلیت توسعه نیز داشته باشد.حالا در اینجا می خواهیم در مورد «برنامه‌نویس حداقلی» یا «حداقل برنامه‌نویس قابل قبول» صحبت کنیم که شاید بتوان آنرا Minimum Viable Programmer یا باز هم همان MVP نامید.اگر سازمان و یا شرکتی بخواهد برنامه‌نویسان باسابقه و توانا را استخدام کند و یا یک استارتاپ در ابتدای شروع کارش به دنبال بهترین های برنامه‌نویسی باشد، خوب می تواند اینکار را انجام دهد و البته به شرط اینکه توانایی تشخیص آنرا داشته باشد و قطعا تصمیم‌گیری راحتتری خواهد داشت. اما مشکل آنجایی آغاز می شود که بودجه لازم برای استخدام برنامه‌نویس حرفه‌ای وجود ندارد و باید با حداقل برنامه‌نویس ممکن کار را شروع کرد. حال باید در آزمون و یا مصاحبه استخدامی خود چه مواردی را مد نظر داشته باشد؟انواع مهارتهای یک برنامه نویس:مهارتهای لازم برای یک برنامه‌نویس حداقلی به دو بخش عمده تقسیم میگردد: اول مهارتهای فنی مورد نیاز و بعد مهارتهای فردی و شخصیتی.اگر یک جستجو ساده در اینترنت انجام بدهید با حداقل مهارتهای فنی لازم برای برنامه‌نویسی آشنا خواهید شد و شاید پرداختن مجدد به آنها در اینجا زیاد مفید نباشد. (مهارتهایی مانند توانایی کار با سورس کنترلها، آشنایی با دستوارت و نحوه صحیح کد نویسی در زبان برنامه‌نویسی، توانایی تشخیص خطا و دیباگ کردن و …) که البته این مهارتهای فنی با توجه به زبان برنامه‌نویسی و نوع آن متفاوت است.نکته ای که در مورد اینگونه مهارتهای فنی وجود دارد اینست که آنها با مطالعه و تمرین، خیلی سریع قابل دستیابی هستند. اما مهارتهایی وجود دارد که برنامه‌نویس اگر آنها را نداشته باشد نمی تواند کار خودش را شروع کند و داشتن آنها در کنار مهارتهای فنی می تواند یک برنامه‌نویس حداقلی را بسازد و آینده درخشان آنرا تضمین کند.مهارتهای شخصیتی و فردی یک برنامه نویس:بنا به تجربه خودم در زیر به برخی از مهارتهایی اشاره می کنم که در تمام این سالها بارها نتایج مثبت آنها را در افراد مختلفی که شروع بکار کرده اند و یا مشغول بکار بوده اند دیده ام:1- توانایی درک مسئله و تفکر در مورد راه حل آن: که لازمه آن بالا بردن توانایی پرسیدن و درست پرسیدن است. یک برنامه‌نویس باید بتواند با پرسش سئوالات درست، درک و دید مناسبی از مشکلی که باید حل کند بدست آورد. علاوه بر پرسش از کارفرما یا مشتری، پرسش از خود هم برای رسیدن به یک درک صحیح لازم است.2- توانایی برقراری ارتباط با دیگران: برای اینکه بتوان پرسشهای درست پرسید باید با اصول برقراری ارتباط آشنا بود و همینطور در کار گروهی و همکاری با یک تیم باید بتوان ارتباط خوب و موثر برقرار کرد.3- تشنه یادگیری و کسب مهارت در تمامی مراحل و زمانها: شاید داشتن همین یک مورد بتواند برای موفقیت یک برنامه‌نویس کافی باشد. اینکه همیشه باید به دنبال یادگیری و آموختن بود، حتی در ساعات غیر کاری. این مهم می تواند از هر نیروی تازه کاری در طول مدت زمانی محدود، یک برنامه‌نویس قابل بسازد.4- علاقه مند به ارتقا سطح و به روزرسانی مستمر خود: بعد از یادگیری، یک برنامه‌نویس باید تا پایان عمر برنامه‌نویسی خود همیشه آخرین دستارودها و متدهای برنامه‌نویسی و زبانهای جدید و اتفاقات آن را دنبال کند و در لیستهای ایمیلی و کانالها و صفحات مختلف مشترک باشد. و اصلا به دانشی که فرا گرفته و آموخته هایی که کسب کرده اکتفا نکند.5- مطالعه غیر تخصصی: بله منظور خواندن رمان، داستان و یا کتابهای غیر درسی دیگر است که به برنامه‌نویس کمک خواهد کرد مهارتهای دیگر خود را به شدت افزایش دهد. در اینجا فکر نمیکنم بیش از این نیاز باشد از فواید مطالعه صحبت کنم!6- علاقه مند به به اشتراک گذاری دانش و تجربه: یک برنامه‌نویس باید در اشتراک گذاری دانش و تجربیات خود هیچ خساستی نداشته باشد و همیشه در اشتراک گذاری هر آنچه میداند پیش قدم باشد و همینطور همواره در دریافت اطلاعات و تجربه از دیگران نیز بکوشد، حتی اگر در سطح پایینتر از خودش باشند.7- آشنا با اصول خلاقیت: برنامه‌نویس باید توانایی نگاه از زاویه دیگر به موضوع را داشته باشد، شاید حتی زاویه ای که دیگران هیچگاه از آن نگاه نکرده اند. گاهی اوقات توانایی خیال پردازی و تصویر سازی هم میتواند در یافتن و یا ایجاد راههای خلاق برای حل یک مسئله بسیار مفید باشد.8- توانایی و علاقه مندی به نوشتن و مستند سازی: یکی از مهمترین و شاید سختترین کارها در برنامه‌نویسی نامگذاری و کامنت‌گذاری کدهای برنامه است. شاید این نکته عجیب باشد ولی یک برنامه‌نویس باید توانایی نوشتن خوبی داشته باشد تا بتواند کدهایی خواناتر تولید کند. و علاوه بر آن باید به نوشتن علاقه‌مند باشد و باید نویسنده خوبی باشد.9- توانایی کار به مدت طولانی و بیشتر از ساعت کاری: گاهی اوقات برای رساندن یک کار و انجام پروژه نیاز هست که بیشتر از ساعت کاری مرسوم یا توافق شده کار کرد و یک برنامه نویس نیز باید این توانایی را داشته باشد که چندین ساعت بیشتر از حد معمول کار کند. البته قطعا این مورد نمی تواند برای همیشه ادامه داشته باشد ولی به نظرم در کار برنامه‌نویسی که اتفاقات غیر مترقبه زیادی ممکن است رخ دهد و تمام محاسبات زمانی را به هم بزند، یک برنامه نویس باید بتواند آنرا جبران کند.10- تسلط به زبان انگلیسی: این مورد هم از الزاماتی است که برنامه نویس اگر بخواهد از منابع موجود و به روز استفاده کند باید به زبان انگلیسی تسلط داشته، مهارت بالا در درک مطلب و مهارت متوسط در نوشتن مطلب چرا که گاهی اوقات باید با دیگر برنامه نویسان غیر ایرانی ارتباط برقرار کرد و یا در سایتهایی مثل StackOverflow سئوالی را مطرح کرد.البته تقریبا تمامی موارد بالا شاید منحصر به یک برنامه‌نویس نباشد و برای بسیاری از کارها و مشاغل دیگر هم از مهارتهای پایه‌ای به حساب آید ولی به نظر من اگر فردی این مهارتها را داشته باشد می تواند در کمترین زمان ممکن و در حین کار به یک برنامه‌نویس خوب و کم کم به یک برنامه‌نویس عالی تبدیل شود. اما اگر این مهارتها کم و یا اصلا در فرد (یا شما بعنوان علاقه‌مند به برنامه‌نویسی) نباشد بعد از مدتی (معمولا چند ماه) به این نتیجه خواهیم رسید که وقت خودمان را هدر داده‌ایم!یک نکته‌ای که همیشه به اشتباه در مورد برنامه‌نویسی و برنامه‌نویس در ذهن افراد وجود داشته اینست که تصور می‌شود برای برنامه‌نویس شدن نیاز به هوش بالا و استعداد خاصی است! من هم در لیست خودم اصلا به این مورد اشاره نکردم و به نظر من اصلا این درست نیست و شاید در یک مقاله دیگر در این مورد بصورت کامل صحبت کنم.برای برنامه‌نویس شدن نیاز به هوش بالا و استثنایی نیست و یا بعبارت دیگر برنامه‌نویسان الزاما آدمهای باهوش یا نابغه‌ای نیستند!این مطلب در بلاگ شخصی من منتشر شده است. </description>
                <category>صادق علوی زاده</category>
                <author>صادق علوی زاده</author>
                <pubDate>Wed, 28 Feb 2018 13:48:54 +0330</pubDate>
            </item>
            </channel>
</rss>