<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Jimmy Heller</title>
        <link>https://virgool.io/feed/@jimmyheller</link>
        <description>یک برنامه نویس ساده. عاشق موسیقی و فیلم. علاقمند به هر نوع ورزش.</description>
        <language>fa</language>
        <pubDate>2026-06-16 11:10:54</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/3741/avatar/Od892U.jpeg?height=120&amp;width=120</url>
            <title>Jimmy Heller</title>
            <link>https://virgool.io/@jimmyheller</link>
        </image>

                    <item>
                <title>مسولیت بدهی فنی با کیه؟</title>
                <link>https://virgool.io/@jimmyheller/%D9%85%D8%B3%D9%88%D9%84%DB%8C%D8%AA-%D8%A8%D8%AF%D9%87%DB%8C-%D9%81%D9%86%DB%8C-%D8%A8%D8%A7-%DA%A9%DB%8C%D9%87-xyfhqev1mn1h</link>
                <description>چند هفته پیش اعضای تیمم که بعضیاشون جونیور هستن و تازه ۴ ماهه به تیم اضافه شدن تو یک جلسه‌ای بهم گفتن ما بدهی فنی یا technical debt داریم. حالا پروژه چند خطه؟ ۴۰۰ خط. بهشون توضیح دادم که بدهی فنی تو این حجم از کار عملا یه شوخیه و ما بعد از ۴ ماه از شروع پروژه اگر بدهی فنی داریم واقعا آدمهای اشتباهی رو استخدام کردیم. تو توضیح همین موضوع بودم که یک دوستی تو توییتر پرسید:آقا ی سوال جدی، زمانی که شرکت زیر بار ریفکتورینگ نمیره و مدام دنبال رسوندن فیچره و هرچقدر هم گفته میشه که نیاز هست کدها اصلاح بشه به خاطر فشار و محدودیت زمانی موقع پیاده سازی، اینجا هم بدهی فنی گردن برنامه نویسه؟و من جواب دادم کهبدهی فنی همیشه گردن برنامه نویسه. کسی جز برنامه نویس که اونارو ننوشته! کد‌ مگه چیه؟ تفکر و راهکار و رویکرد برنامه نویس برای حل مساله. همه شرکتا میخوان فیچرشون در سریعترین زمان‌ ممکن برسه.  این حرف به این معنی نیست که ما باید همه چیز رو فدا کنیم.به این معنیه که شما با درک درست مسایل و یادگیری پروسه‌های سازمانت تولید کد میکنی. مثلا اگر میدونی که طرف میخواد این فیچر رو بزنه و از روش رد شه بره، زمانی که میخوای فیچر امروزت رو بزنی از پروداکتت بپرس ویژن کجاست؟ رودمپ محصولش چیه؟ فیچر امروز رو با جهت دهی درست بزنی و در زمانبندیت هم لحاظ کنی. از یک جایی به بعد این موضوع باعث سرعت بخشیدن توسعه و ایجاد اعتماد بیشتر میشه.اصل موضوع مخالفت تیم محصول و پروژه با ریفکتورها نداشتن اعتماد به تیم توسعه است. اونها مطمئن نیستن که اگر ریفکتور بشه اونم توسط کسایی که مسبب همین وضعیت فعلی هستن، قراره چیز بهتری گیرشون بیاد. پس بهتره به جای چونه زدن برای برگشت به عقب برای مسیر بهتر چونه زد.در نهایت خیلی مهمه که تیم فنی هنر اینو داشته باشه که قسمت‌های مشکل دار رو ایزوله کنه و با پترن‌های موجود مثل proxy یا wrapper یا strangler امکان رشد پروژه با مسیر درست رو ایجاد کنه و بعد با اعمال قانون boy scout هرجایی که دست میخوره رو از قبل بهتر تحویل بده.شما هیچ وقت بدون ایجاد اعتماد که ناشی از قول دادن و به سرانجام رسوندنه، نمیتونی ریفکتور پر هزینه‌ای رو به شرکت تحمیل کنی. از طرف دیگه هنر دیگه اینه که شما تمام این ریفکتورها رو گره بزنی به رودمپ محصول و اصطلاحا align بشی وگرنه صبح بیای بگی من میخوام این بخش رو درست کنم بدون داشتن هیچ business value ای خب طبیعیه که کسی ازت قبول نکنه. در نهایت پیشنهاد میکنم مطلب اخر این بلاگ رو بخونی. https://blog.pragmaticengineer.com/paying-down-tech-debt-further-learnings/حالا شما چی فکر میکنید؟</description>
                <category>Jimmy Heller</category>
                <author>Jimmy Heller</author>
                <pubDate>Sat, 26 Oct 2024 01:16:45 +0330</pubDate>
            </item>
                    <item>
                <title>اگر یه جونیور فرانت، جاوا یاد بگیره براش بهتره؟</title>
                <link>https://virgool.io/@jimmyheller/%D8%A7%DA%AF%D8%B1-%DB%8C%D9%87-%D8%AC%D9%88%D9%86%DB%8C%D9%88%D8%B1-%D9%81%D8%B1%D8%A7%D9%86%D8%AA-%D8%AC%D8%A7%D9%88%D8%A7-%DB%8C%D8%A7%D8%AF-%D8%A8%DA%AF%DB%8C%D8%B1%D9%87-%D8%A8%D8%B1%D8%A7%D8%B4-%D8%A8%D9%87%D8%AA%D8%B1%D9%87-vwffrihvcupt</link>
                <description>مدت زیادیه که تلاش میکنم کوتاه کوتاه بنویسم ولی بیشتر بنویسم یا بیشتر شیر کنم. تمرکز بیشترم هم روی جونیورها و کسایی هستن که با تمام چالش‌های روزانه و درگیری‌های AI هنوز مشتاقن که کار کنن. تو چند هفته گذشته یک سوال به شکل‌های مختلف پرسیده شد. تصور کردم که اگر جوابشو با همه به اشتراک بذارم شاید کمک بکنه. سوال این بود:من اگر به عنوان کسی که سابقه کمی دارم و چند وقتی هست که فلان تکنولوژی (فرض کنید Front End) کار میکنم سوییچ کنم روی جاوا موقعیت بهتری برام پیدا نمیشه؟ یا امنیت شغلی بیشتری ندارم؟ سوال خیلی طولانی‌تر بود اما من کوتاهش کردم. دلیل این سوال هم این بود که خیلی از بچه‌هایی که تازه شروع میکنن و کمتر از ۳ سال سابقه دارن با چالش‌های زیادی مواجه میشن از جمله imposter و حس کافی نبودن و خود کم بینی. از طرف دیگه فکر میکنن که چون تو فیلد شغلی خودشون تونستن زود برن سرکار یا مثلا چون front یا mobile کار کردن بقیه تو back end چیزای بیشتری ازشون بلدن.جواب من اما این بود (با کمی تغییر)بذار متنتو یه بار با هم مرور کنیم :- حاضری سختی درس خوندنشو تحمل کنی. (گفته بود حاضره learning curve رو تحمل کنه)- دوست داری تو حل مساله پیشرفت کنی (میخواست که مهارت حل مساله رو بهتر کنه)- بازار کار هم مهمه (ایده‌اش این بود که برای جاوا شغل بیشتری هست)- آیا جاوا گزینه خوبی هست یا نه.قسمت اول که خب طبیعتا باید اذیت شدنشو تحمل کنی. اما بسته به انتخابت این learning curve میتونه فرق بکنه.حالا اگر بخوام اینو وصل کنم به مهارت حل مساله یا هرچیزی که فکر میکنی یاد نگرفتی تا الان، باید بگم که مهارت حل مساله اصولا به زبان برنامه نویسی ربط پیدا نمیکنه.تو الان اگر جاوا اسکریپت یا تایپ اسکریپت هم بلد باشی میتونی کار رو در بیاری. اما آیا خود مهارت حل مساله رو داری؟فرض بگیر که من بهت بگم جاوا خیلی خوبه و میری شروع میکنی. چه تضمینی هست که بری زبان رو یاد بگیری اما این مهارت همچنان نقطه قوت نباشه و تو اون انتظاری که داشتی رو نتونی برای خودت برآورده کنی؟در واقع این رو باید اینجا تصمیم بگیری که کدوم برات اولویته؟از طرف دیگه اشاره کردی به بازار کار، به نظر من بازار کار کلا سخت شده و ربطی به توانایی نداره. درسته که جاوا خیلی بازار کار داره اما این بازار کار خوب برای کیه؟ برای کسی که ده سال سابقه کار داره یا کسی که میخواد تازه شروع کنه؟ من تحقیق نکردم ببینم ولی اینو هم بد نیست بگنجونی تو فکرات. ببینی مثلا الان بری بگی من اینقدر سال سابقه دارم ولی فقط مثلا ۶ ماهش جاواعه چی میشه! اصلا میخوای رزومه بدی چی بزنی؟حالا همه اینارو جمع کنم و بهت بگم که خب تو همین الان به خاطر کار کردن با ابزار فرانت یک یا دو زبان برنامه نویسی مثل جاوا اسکریپت و تایپ اسکریپت رو بلدی. چرا اینو استفاده نکنی که همون کانسپت‌هایی که میگی رو یاد نگیری؟ در عین حال مهارت حل مساله مگه الان تو دنیای برنامه نویسی چیزی جز پیدا کردن راه حل‌های الگوریتی مسخره leet code عه ؟ خب اونارو همه رو با همین دو تا میشه تمرین کرد نیازی به جاوا نداری که.بعد که اینارو یاد گرفتی میتونی به جاوا هم ناخونک بزنی.چرا اینو میگم، دلیلش اینه که تو وقتی کانسپت‌هایی که بلد نیستی رو با زبان خودت که الان کاری کردی یاد بگیری راحت‌تر میفهمی ولی وقتی میخوای مفاهیم رو هم با زبان جدید یاد بگیری یهو چالش‌هات چند برابر میشه.من خیلی هم بایاسدم نسبت به جاوا و میگم بهترین زبانه اما نمیتونم بهت دروغ بگم که اگر جاوا یاد بگیری بقیه چالش‌ها هم حل میشه.در نتیجه پیشنهادم بهت اینه که یه دور دیگه از این زاویه دید بهش نگاه کنی و بخوای بدون اینکه به زبان فکر کنی تو مسایلی که میخوای قوی بشی.موضوع موقعیت کار همچنان پابرجاست که اون رو هم میتونی با موقعیت‌هایی که به زبان خیلی حساس نیستن و میگن مثلا یکی از زبان‌ها رو کار کرده باشی هم ما اوکیم باهات یا فول استک باشی بهتره امتحان کنی.اصل حرفم اینه که به جای اینکه به ابزار و زبان برنامه نویسی فکر کنی، یا دائم فکر کنی که چون تو فلان کار رو نکردی پس همه چیز رو سطحی یاد گرفتی، به این فکر کن که اوکی من یه سری چیزا رو بلدم و یه سری چیزها رو هم اصلا بلد نیستم و حتی خبر ندارم که چین که یاد بگیرم.میرم اول وضعیت فعلیم رو لیست میکنم بعد میگم میخوام مثلا ۳ ماه آینده کجا باشم و چه موضوعاتی رو یاد بگیرم.اصل داستان این نداشتن امنیت شغل از ذهن تو میاد که باور نداری که چقدر توانایی داری و چه چیزهایی رو بلدی. یعنی وقتی نمیدونی که حد دونستن چیه، تصورت اینه که خب بقیه چیزهایی زیادی بلد هستن که من از اونا سر درنمیارم در نتیجه بسیار عقب هستم.اینم از سطح انتظارات بالای زیاد از خودت میاد گاها که آسیب زننده است. باید انتظارات رو هم مدیریت کنی. یعنی اگر تازه شروع کردی به کار کردن انتظار نداشته باشی اندازه یک نفر که ۵ سال جلوتر از توعه دانش داشته باشی یا چیزی شبیه این.امنیت شغلی تو از این میاد که بدونی کاری که داری انجام میدی رو بلدی، تغییر ایجاد میکنی و حتی اگر از اینجا بیای بیرون و بخوای بری جای دیگه به راحتی میتونی کار پیدا کنی و نگران نیستی فارغ از اینکه اصلا توانایی و حیطه کاریت چیه. این با جاوا هم همینه با react هم همینه!امیدوارم تونسته باشم بهت کمک کنم که هم استرست کم بشه هم اینکه کمی بهتر بتونی فکر کنی که مسیر رو چطوری بچینی. میتونیم بیشتر در موردش حرف بزنیم اما هدف اصلیم اینه که تغییر به این بزرگی رو تبدیل به سرخوردگی نکنی در صورتی که میشه با قدمهای کوچیکتر و مطمئن‌تر نتیجه بهتری گرفت.</description>
                <category>Jimmy Heller</category>
                <author>Jimmy Heller</author>
                <pubDate>Tue, 24 Sep 2024 23:47:43 +0330</pubDate>
            </item>
                    <item>
                <title>درس‌های برنامه‌نویسی: کار ناقصتو نشون بده و حرف بزن</title>
                <link>https://virgool.io/@jimmyheller/%D8%AF%D8%B1%D8%B3-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%A9%D8%A7%D8%B1-%D9%86%D8%A7%D9%82%D8%B5%D8%AA%D9%88-%D9%86%D8%B4%D9%88%D9%86-%D8%A8%D8%AF%D9%87-%D9%88-%D8%AD%D8%B1%D9%81-%D8%A8%D8%B2%D9%86-juwmum1deajl</link>
                <description>مقدمه زمانی تو شرکتی مدیر فنی تیم بودم. پروژه حیاتی شرکت نوشتن فروشگاه یکی از بزرگترین ارگان‌های ارتباطی ایران بود. پروژه رو باید از PHP به Java تغییر میدادیم و کل محصول رو از اول مینوشتیم. فشار پروژه بسیار زیاد بود. روزی که باید دمو میدادیم، صبح، تو جلسه standup شرکت از سینیور فرانت پرسیدم فلان تسک رو گفته بودی دیروز تموم میشه، تموم کردی؟ گفت نه! تسک در حد اضافه کردن یک کتابخونه ساده و صدا زدن یک فانکشن ساده بود. خیلی تعجب کردم که چرا سینیور تیم این رو تموم نکرده. وقتی علت رو پرسیدم گفت کتابخونه‌اش ۱۴۰ کیلوبایت بود خودم میتونم تو ۳۰ کیلوبایت همونو بنویسم. میتونید تصور کنید حال من رو. داستان بعدیم واسه زمانی بود که پروژه‌ای داشتیم برای یک سازمان دولتی و به شدت روابط پیچیده شده بود. پروژه بسیار پیچیده بود و هیچ کس نمیدونست دقیقا باید چه اتفاقی بیفته. صفر و تا صد پروژه رو داده بودن به ما چهار تا جوون (که سرباز هم بودیم) و ما هر هفته میریم جلسات ارائه. کار به جایی رسیده بود که دیگه دو طرف میز حرف هم رو نمیفهمیدن. ما براشون یک سیستم کاملا Dynamic با قابلیت تغییر workflow و چیزهایی باورنکردنی (به نظر خودمون) درست کرده بودیم. طرف دولتی ماجرا داشت در مورد اینکه اصلا چطوری ازش استفاده کنه صحبت میکرد. کار به جایی رسید که برگشتن گفتن شما جوونا رنگ سبز تو این استفاده کردید، منظوری داشتید؟ رنگ بعدی بنفش بود اما خب میدونیم که بنفش واسه یک رییس جمهور خاص بود. در نتیجه مدیر استقلالی پیشنهاد رنگ آبی رو داد. (این تیکه ربطی به حرفم نداره اما محض تموم شدن ماجرا). مشکلاکثر ما توسعه دهنده‌ها (هنوز نفهمیدم علتش چیه)، تا یه جایی کمال‌گرا هستیم. بعضیامون زیاد بعضیامون کم. گروهی از ماها حتی فکر میکنن که بیشتر از بقیه میدونن (به لحاظ روانشناسی خیلی هم اذیت میشن. اما اینجا جاش نیست.)  بزرگترین ترس بعضی از ماها اینه که چیزی که خلق کردیم رو نشون بدیم و کامل نباشه. دوست داریم نسخه کامل کارمون رو همه ببینن. ما تو تنهایی خودمون میشینیم و نقشه‌های جاه طلبانه‌ای برای تولید بهترین نرم افزار میکشیم. شروع میکنیم به کار کردن. اما زمان همیشه دشمن ماست.(در مورد این نحوه کار کردن یک پست دیگه باید بنویسم)اتفاقی هم که در نهایت این پروسه تکراری می‌افته اینه که یک محصول نصفه و نیمه داریم یا اینقدر زمانش طول میکشه که دیگه به قول معروف از دهن می‌افته.در این فواصل هست که stakeholder ها و افرادی که مخاطب هستن شروع به گرفتن تصمیمات جدید میکنن.در مقابل تیم‌های فنی هم گاها با لمس کردن این موضوع یا  تغییر مسیر میدن و به سمت تولید نرم افزار اشتباه میرن تا فقط تموم کنن یا با همون سرعت و تفکر ادامه میدن تا تمومش کنن. اما همه میدونیم نهایت ماجرا اینه که دیگه اون محصول پذیرشی براش وجود نداره. تیم‌های فنی از تیم‌های بیزینس بیشترین فاصله رو پیدا میکنن و در نهایت یا پروژه شکست میخوره یا بخش خوبی از time to market رو از دست میده. نتیجه پایانی موضوع تغییر استراتژی یک سازمان، مشتری، استارتاپ و... هست که گاها منجر به دور ریختن تمام خروجی (هرچند ناقص و یا حتی در آخرین مراحل) تیم‌ها یا افراد میشه. (البته همیشه هم علت این نیست)این اتفاق چیزی جز سرخوردگی و از هم پاشیدن نداره. تعریف حس واقعی شکست!چی یاد گرفتم؟چیزی که من از راه سخت یاد گرفتم این بود که باید align شد. هر دو طرف باید نسبت به progress و پیشرفت کار ادبیات و context یکسانی داشته باشن. از همه مهمتر ارزش‌هایی که تسک/پروژه/کار/خروجی قابلیت ارزشیابی داره (acceptance criteria) مشخص بشه.همچنین افرادی که مخاطب این تغییرات هستن، مثل stakeholder ها، سفارش دهنده یک پروژه، تیم بیزینس و یا هرچیزی که میخواید اسمش رو بذارید، باید بتونن تغییرات رو لمس کنن. لمس کردن تغییرات توسط این افراد غیر فنی راحت نیست. شما باید بهشون نشون بدید که کارتون در مدت قبلی چطوری روی اونها تاثیر (impact) میذاره. چه چیزی رو بهتر کردید و مسیر آینده کجاست. بسیاری از برنامه‌نویس‌های کم تجربه رو دیدم که قبل از جلسات Demo خیلی با انرژی هستن برای اینکه خروجی کار خودشون رو نشون بدن اما بعد از این جلسه تقریبا تمام انرژیشون برای کار رو از دست دادن. حتی برنامه‌‌نویس‌های خیلی خوب و با تجربه رو دیدم که تو جلسات Demo بسیار برافروخته شدن از اینکه کسی متوجه حجم تغییرات نشده یا کاری که کردن رو درک نکردن. اما وقتی تو این جلسات حاضر میشدم، به عنوان یه فرد فنی متوجه میشدم که چه اتفاقاتی داره می‌افته اما وقتی از بقیه میپرسیدم که آیا شما هم همین حس رو دارید؟ یا آیا شما متوجه میشید که این تغییرات چه تاثیری روی شما داره؟ جوابی نمیگرفتم.علت اینجا بود که اغلب اوقات این افراد در مورد یک چیز صحبت نمیکردن یا اگر میکردن ادبیات یکسان نداشتن. اما از همه مهمتر این بود که تیم/فرد فنی زمان بسیار زیادی رو برای ایجاد یک خروجی صرف کرده بود. به عنوان مثال بعد از چند هفته از شروع پروژه یا زمان خوبی از یک اسپرینت، هنوز چیزی برای بررسی وجود نداشت. این خروجی لزوما یک interface نبود اما اون واحد فنی تصور متفاوتی داشت. بعد از صرف شدن این زمان اغلب حس طرف غیر فنی این هست که خیلی خب ببینیم بعد از این همه زمان چه چیزی نصیبمون میشه. اما وقتی ارائه شروع میشه اتفاق عجیبی می‌افته. تیم فنی شروع به تغییرات فنی بسیار خفنی که در پروژه انجام داده میکنه و افراد حاضر در جلسه از یک قسمت به بعد عملا context و فضای بحث رو از دست دادن. دیگه نمیدونن آیا چیزهایی که میخواستن رو گرفتن و انجام شده یا اینها پیش مقدمه کار هست؟تازه اگر خیلی با تجربه باشن سوال میپرسن و از جواب این سوالات به نتیجه میرسن که خروجیشون درست هست یا نه. من هم جزو همین افراد فنی بودم. اوایل کار همیشه از اینکه در جلسات demo باشم میترسیدم. خروجی کاملی نداشتم. بعد از مدتی یاد گرفتم که اگر تعداد جلسات بیشتر بشه و نوع کار کردن من در اوایل کار خروجی محور باشه. تاثیر بسیار مثبتی روی مخاطبم خواهم داشت. اعتمادشون رو جذب میکنم. از همه مهمتر، مهم نیست اگر کار نکنه. اونها درک میکنن که زمان کافی برای انجام همه چیز نیست. از طرف دیگه اونها تغییرات رو میتونن لمس کنن. میتونن تشخیص بدن که progress داریم یا نه. در عین حال اگر جایی رو اشتباه رفتم قبل از اینکه کل پروژه رو به فنا بدم ازشون تایید بگیرم. اونها رو onboard بکنم و ازشون کمک بخوام. یاد گرفتم که تیمها بیزینس/مشتری/کاربر در طرف من هستن. اونها به عنوان مخاطب نهایی محصول همیشه میخوان بهترین محصول رو تولید کنن و من مشاور فنی اونها هستم. اگر جایی مسیر فنی درست نیست بهشون میگم اما این مسولیت رو تا جایی پیش میبرم که اونها راضی باشن. در غیر اینصورت خروجی بیشتر از یک conflict نیست. به کسی هم کمک نمیکنه. وضعیت فعلیامروز در نقطه‌ای هستم که میدونم بهترین برنامه نویس نیستم و حتی اصلا برنامه نویس خوبی نیستم. اما میدونم که باید با افراد ارتباط برقرار کرد. اگر این ارتباط وجود نداشته باشه من به تنهایی نمیتونم تصمیمات درست رو بگیرم. بار کل پروژه/تسک/شرکت نباید روی دوش من باشه و مشکلات من مشکلات همه است. باید کمک بگیرم و از اینکه به بقیه بگم که در حل یک مشکل ناتوان بودم یا نتونستم ایده درست رو داشته باشم نترسم. اگر روزی فرق بین دو تا فایل ۱۴۰ یا ۳۰ کیلوبایتی رو ندونستم به جای اینکه وارد چرخه بی پایان بهبود بخشیدن بشم، اول کاری که ازم خواسته شده رو انجام میدم. اگر روزی وارد فضایی شدم که حرف افراد رو متوجه نمیشم، اول ادبیات مشترک رو در یک فضای مشترک پیدا کنم. کلام آخر اینکه کد نوشتن آسونترین کار برای منه اما ارتباط گرفتن و حل مشکلات این چنینی سخت‌ترین چیزی بود که باهاش تو شغلم مواجه شدم. من تونستم قسمت سختش رو رد کنم و الان از چیزی نمیترسم اما میبینم خیلی از برنامه‌نویس‌های دیگه حتی با تجربه رو که این قسمت رو حل نکردن و هنوز که هنوزه در هر ارتباطی اصصلاحا درمانده میشن. راه خروجی رو پیدا نمیکنن و در نهایت کارشون هم کیفیتی که باید داشته باشه رو نداره. این مطلب از یک توییت شروع شد. اما بهتر دیدم یک پست بنویسم. به نظرم میشه تو پست‌های بعدی به جنبه‌های بهتری ازش رسید. لطفا بهم بگید که کدوم بخش‌ها جذاب‌تره تا بیشتر بنویسم در موردشون. تو مطالب بعدی به این میپردازم که چطوری میشه بهتر کار کرد که وارد این loop های شکست نشیم. بعد به این میپردازم که چطوری میشه با سوال پرسیدن کار رو راحت‌تر کرد.  </description>
                <category>Jimmy Heller</category>
                <author>Jimmy Heller</author>
                <pubDate>Sat, 22 Apr 2023 10:02:47 +0330</pubDate>
            </item>
                    <item>
                <title>نکته روز: معرفی تو مصاحبه / چرا میخوای از ایران بیای؟</title>
                <link>https://virgool.io/@jimmyheller/%D9%86%DA%A9%D8%AA%D9%87-%D8%B1%D9%88%D8%B2-%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D8%AA%D9%88-%D9%85%D8%B5%D8%A7%D8%AD%D8%A8%D9%87-%DA%86%D8%B1%D8%A7-%D9%85%DB%8C%D8%AE%D9%88%D8%A7%DB%8C-%D8%A7%D8%B2-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-%D8%A8%DB%8C%D8%A7%DB%8C-rywqxlowhfxf</link>
                <description>این پست رو با عجله و ساعت ۱۱ شب در عین خستگی تمام مینویسم چون احساس میکنم خیلی وقته باید نوشته میشده و کوتاهی کردم. امروز که سومین نفر رو هم با همین جواب‌ها راهی مصاحبه کردم به این نتیجه رسیدم باید زودتر نوشته میشد. در نتیجه به سطحی‌ترین شکل ممکن و بدون ادیت مینویسم با این هدف که حداقل یک نفر استفاده کنه. تو تمام سوال‌هایی که در مورد مصاحبه پرسیده شده این دو تا سوال بیشترین چالش رو ایجاد کرده. سعی میکنم اینجا به صورت خیلی خلاصه شرح بدم منظورم رو. ممکنه برای همه کشورها و همه آدمها و همه شرکت‌ها و همه موقعیت‌ها جواب نده اما به صورت کلی تو تجربه من کمک کرده برای اینکه بتونم پیشرفت کنم. اگر نقدی داشتید حتما برام بنویسید. چرا میخوای از ایران بیای بیرون؟ قدیما میگفتم نگید ما مشکل اقتصادی داریم و فلان. اون موقع ماجرا فرق میکرد. چون منطقی نبود اون جواب. رویکرد متفاوت بود.اما  الان یه اینترنت که هیچی یه خط کد نمیشه تو اون کشور زد. دلیل دیگه آوردن مسخره است. جوابش اینه که شرایط مناسب نیست و من تمایل دارم بیرون از ایران زندگی رو ادامه بدم. برای این موضوع هم نیاز دارم اول کار پیدا کنم و بعد ریلوکیت کنم. بعضیاتون به خاطر شرایط اقتصادی فعلی تازه رفتید شرکت اروپایی ریموت کار گرفتید. طبیعتا یکی از نکاتی که حساس میشه اینه که چرا میخوای از اون شرکت به این زودی بیای بیرون. اینم جوابش این میتونه باشه که این شرکت‌ها رو برای اینکه درآمد مناسب داشته باشیم انتخاب میکنیم اما این شرکت‌ها توانایی ریلوکیت ندارن و برای همین ما همچنان دنبال گزینه‌های بهتر هستیم. خیلیا هم میگن ما باید نشون بدیم به شرکت فعلی loyal هستیم و یا اینکه بریم شرکت بعدی به شدت وفاداریم. مقوله وفاداری رو برای شرکت‌های ایرانی استفاده کنید لطفا. اونجا اصلا بگید ما یه خانواده‌ایم! ولی واسه شرکت اروپایی این ماجرا مسخره است. بیخیالش بشید. خودتو معرفی کن. سخت‌ترین سوال مصاحبه و کلیدی‌ترین سوال مصاحبه همینه. اگر این رو درست رد کنید نصف مسیر رو رفتید. چطوری میتونید این رو درست انجام بدید؟ کم و کلی گویی در عین حال شفاف و صادقانه. دلیل اینکه اصلا این پست رو با این عجله و به صورت کوتاه و سرسری دارم مینویسم همینه که این چند روز، چند نفر که مصاحبه‌های اولشون بود و خیلی کسی رو نداشتن بهشون کمک کنه بهم مسیج دادن و گفتن که وقتی میخوان خودشون رو معرفی کنن چی میگن. یکیشون رو حتی مجبور کردم معرفی خودش رو به صورت وویس و انگلیسی برام بفرسته. یک دقیقه حرف زده بود و از ثانیه ۱۵ من داشتم تو سر خودم میزدم که تو رو خدا صبر کن. دیگه بسه! چیزی نگو! جواب این سوال خیلی ساده است اما خیلیا نمیتونن درست بگن. چرا ساده است؟ چون شما جواب این سوال رو همیشه با خودتون همراه دارید. اگر شما خودتون رو نمیشناسید پس کی بشناسه؟من فلانی هستم. اینقدر سالمه. ایران تو فلان نقطه زندگی میکنم. (مثلا شمال جنوب ) ان ساله دارم فلان تخصص رو کار میکنم. تمرکزم تو کل دوره کاریم روی شرکت‌های با فلان بیزینس بوده. تو شرکت فعلی عضو فلان تیم و پروژه هستم. (هیچ نیازی به دیتیل اینجا نیست.) به عنوان تفریح اینکارا رو میکنم و فلان. جواب ساده‌تر از این مگه داریم؟ حالا یه ذره بالا یه ذره پایین یه ذره با لحن و چیزهایی که خودتون میتونید در مورد خودتون اشاره کنید ترکیب کنید. شما اینجا در مورد تمام شرکت‌های قبلی حرف نمیزنید. شما اینجا در مورد اینکه چرا میخواید بیاید فلان کشور صحبت نمیکنید. یا جزییات دیگه. شما فقط چند دقیقه اول میخواید که یخ مصاحبه شکسته بشه و بحث از یه جایی شروع بشه. اما لازم نیست تمام اطلاعات زندگی شخصی یا رزومه یا محیط ‌های کاری رو بریزید بیرون چون میخواید یه معرفی ساده از خودتون بدید. این مشکل فقط تو ایرانیا نیست و اکثر افراد خاورمیانه به خاطر فرهنگ اون منطقه این چالش رو مواجه میشن. ما تو فرهنگ‌های خودمون زیاد حرف زدن رو دوست داریم و اصلا نمیتونیم کوتاه حرف بزنیم. اما در فرهنگ اروپا شما باید straight to the point و شفاف در عین حال صادقانه و مودب باشید. حتی اگر به شما گفتن بگو تو سابقه کاریت چی کارا کردی (واقعا آدمای با تجربه اینطوری سوال نمیپرسن.) بازم شما جواب رو کوتاه و کلی نگه میدارید. تو چند سال گذشته من تمرکزم روی فلان موضوع بوده. تو شرکت فعلی من وظیفه‌ام اینهاست. فلان سیستم‌ها رو با فلان مسولیت نگهداری میکنیم. بزرگترین تجربه‌ام تو شرکت فعلی فلان موضوع بود. (بدون اشاره به جزییات در عین طوری گفته بشه که طرف مقابل درک کنه. مثلا نگید سامانه پشمک رو به سامانه فلان وصل کردیم. نه! بلکه ما دو تا سیستم رو با هم integrate کردیم که از تکنولوژی‌های فلان استفاده میکردن. نیازی نیست اسم سرویس‌ها رو بیارید فقط باید به صورت top level اشاره کنید.) تو شرکت‌های قبلی هم به ترتیب تو حوزه‌های مختلف فلان و فلان کار میکردم. تو شرکت A من تو تیم فلان بودم. بهمان موضوع مهمترین جیزی بود که اونجا فوکوس کردم. میتونید از بخش‌های این شکلی هم استفاده کنید که تو فلان سایت اگر به عنوان مشتری وارد بشید جدولی رو میبینید که زمان‌های ارسال درخواست رو نشون میده. تیم ما وظیفه داشت که اطلاعات مورد نیاز این بخش رو از بخش‌های مختلف بگیره و پردازش و ارائه کنه. همین نمونه رو میتونید برای همه به کار ببرید و بهشون بگید اگر باز هم جزییات خواستن میتونید ارائه بدید. واقعا نیازی نیست که این توضیحات طولانی و با جزییات باشه. ما تو نصف مصاحبه‌ها اصلا نمیفهمیم که طرف مقابل داره در مورد شرکت فعلی و بیزینس و ساختار شرکت چی میگه. دلیلشم اینه که ما تو اون شرکت نیستیم و اصلا برامون هم مهم نیست که مثلا سرویس با اسم فلان داره کار میکنه. برای مصاحبه کننده این مهمه که بدونه سرویسی اونجا وجود داره که وظیفه A ( مدیریت مشتری، مدیریت منابع، ارسال ایمیل و .... ) رو داره و برای اینکه ساخته بشه هم از فلان معماری و یا تکنولوژی داره استفاده میشه که روی مثلا فلان پلتفرم هست. طبیعتا تو ایران AWS نداریم و میتونید خیلی کوتاه توضیح بدید که به خاطر تحریم‌ها خیلی نمیتونید از این پلتفرمها استفاده کنید. در نتیجه از پلتفرمهای داخلی مشابه استفاده میکنید.بازم نیازی به توضیح دقیق همه چیز نیست. اگر پرسیدن میگید. اگر نه شما هم عبور میکنید. کم حرف بزنید.تو فرهنگ ایرانی سخنوری بسیار مهمه. طولانی حرف زدن یک عادته. حالا اضافه کنید بهش که جملات رو از فارسی به انگلیسی مستقیم برمیگردونید و بدتر از همه اینکه جملات ته ندارن! یعنی چی؟ یعنی ما تو فارسی از حرف ربط و زیاد استفاده میکنید. ساختار زبان محاوره ما اینطوری هست. اما این نباید تو انگلیسی حرف زدن تاثیر داشته باشه. وقتی دائما جملات با and به هم وصل بشن، شما به نقطه‌ای میرسید که دیگه هیچ جمله بعدی‌ای ندارید و یه and مونده دسته شما که نمیتونید چیکارش کنید. پس سعی کنید جملات با نقطه تموم بشن به جای اینکه با and به هم وصل بشن. بذارید سوال کننزیاد حرف زدن شما باعث این میشه که مصاحبه کننده رشته افکارش پاره بشه. اونها دوست دارن که سوال بپرسن و جواب‌های کوتاه شما مسیر و براشون مشخص‌تر بکنه. اما اگر شما حجم اطلاعات زیادی رو به صورت ناگهانی وارد بحث کنید، افراد مقابل دیگه نمیدونن کدوم سوال رو بپرسن. میدونید چرا؟ چون احساس میکنن که شما جواب اون سوال رو تقریبا دادید و اگر بپرسن به این معناست که اصلا جواب قبلی رو گوش نکردن و یا متوجه نشدن. در واقع موقعیت بسیار عجیبیه که مصاحبه کننده توش قرار میگیره. همه این شرایط به ضرر شماست. شما با جوابهاتون به مصاحبه کمک میکنید بعد از مصاحبه راحت‌تر در مورد شما تصمیم بگیره. من مصاحبه‌هایی داشتم که بعد از مصاحبه به قیافه همکارم نگاه کردم به این معنی که واقعا این چه جلسه‌ای بود ما توش بودیم؟ چرا طرف مقابل اینقدر عجیب بود!؟ و همه این افراد رو بدون شک رد میکنیم چون برای ما هم باعث سردرگمی هستن که میتونیم تو شرکت باهاشون ارتباط برقرار کنیم یا نه. طبیعتا شما این مشکل رو برای افراد اروپایی نمیبینید چون اونها تو این فرهنگ بزرگ شدن و طبیعیه. اینکه ما زیاد حرف میزنیم تو فارسی، عیب نیست. بخشی از فرهنگ ماست اما اگر میخوایم در فرهنگ دیگه کار کنیم، باید چارچوب درست ارتباطی رو بدونیم. سعی میکنم مطالب اینطوری رو بیشتر کنم که دیگه اینقدر مجبور نشم واسه هر کدوم مسیج تلگرام طولانی بنویسم. </description>
                <category>Jimmy Heller</category>
                <author>Jimmy Heller</author>
                <pubDate>Tue, 28 Mar 2023 00:57:52 +0330</pubDate>
            </item>
                    <item>
                <title>چطوری به بقیه کمک میکنم!</title>
                <link>https://virgool.io/@jimmyheller/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%D8%A8%D9%87-%D8%A8%D9%82%DB%8C%D9%87-%DA%A9%D9%85%DA%A9-%D9%85%DB%8C%DA%A9%D9%86%D9%85-qaxpirkjoz9g</link>
                <description>اجازه بدید بگم در طول هفته حداقل یک نفر هست که من به جای اینکه سوالشو جواب بدم، فرض میگیرم که این آدم احساساتش بیشتر نیاز به ترمیم داره تا اینکه فقط بهش بگم جواب سوالت چیه.   بعضی موقع‌ها سوال کردنشون داد میزنه که دارن از نقطه تاریکی از روزای زندگیشون سوال میپرسن.عمیقا ناامیدن و فقط دنبال یه روزنه امیدی هستن. اینکه یکی بهشون بگه نه تو خوبی. تو اوکیه‌ای. تو چیزیت نیست. به خودت باور داشته باش. تو تنها نیستی.   تو میتونی. سن یه عدده. خیلیا مثل تو تونستن. منم همین مشکل رو داشتم.من از کسایی که باهاشون کار کردم یاد گرفتم که در ۹۹ درصد مواقع آدما جواب سوالشون رو خودشون میدونن. اگر تو بهشون حاضر و آماده جواب بدی شاید در لحظه خوشحال بشن اما اینکه جوابی که پیش خودشون بوده رو کس دیگه‌ای بهشون داده بیشتر احساس درماندگی میکنن تا خوشحالی.این باعث میشه که اونها اعتماد به نفسشون برنگرده. احساس کنن که اگر مثلا از من نپرسن جواب خودشون قابل قبول نیست.   یاد گرفتم که باید آدما رو شنید. در نتیجه سوال خودشون رو از خودشون میپرسم. اما اینبار بهشون یادآوری میکنم که این مشکل دیگریه.ازشون میخوام فکر کنن بهترین دوستشون که عمیقا میشناسنش، اومده و همین مشکل رو باهاشون مطرح کرده، بهترین راه حلی که میتونن در اختیارش قرار بدن چیه؟  معمولا خودشون میدونن که باید چی بگن اما وقتی نوبت خودشون میرسه به جواب باور ندارن.با اینکار آدمها خودشون رو از دایره مشکلات میارن بیرون. جمله‌ای که من ساختم اینه : «تو خودت نباید بخشی از مشکل خودت باشی»  اگر بتونی مشکلت رو از بیرون نگاه کنی و خودت رو از بیرون نگاه کنی اوضاع خیلی فرق میکنه.وقتی جواب رو خودشون رو پیدا میکنن باورشون به خودشون چند برابر میشه و در اکثر مواقع دیگه به من برنمیگردن. یعنی دیگه خودشون مسیر رو پیدا کردن.   بعضیا هم هستن که خیلی آدمای خفنی هستن. منم خیلی قبولشون دارم. ولی وقتی میان سراغ من اون موقعیه که یادشون رفته کین.به یادشون میارم که چه journeyای تا الان داشتن. چیکارا کردن. بهشون یادآوری میکنم که به عنوان یه فرد با شرایط خودشون چقدر تلاش نیاز داشته تا به اینجا برسن.   خاطراتشون رو که مرور میکنن یادشون میاد که چقدر زحمت کشیدن و مشکل جدیدشون هم چیز عجیبی نیست فقط نیاز دارن یه نفس بگیرن.نیاز دارن دست از بیل زدن الکی بردارن.   یه هلیکوپتر سوار بشن برن دو هزار متر بالاتر به زندگیشون نگاه کنن که کجا وایسادن و جای بیل زدن رو عوض کنن. یا حداقل چند دقیقه بشینن بیلشون رو تمیز کنن، یه چایی بخورن بعد شروع کنن.اینا کپی شده رشته توییت من هست. </description>
                <category>Jimmy Heller</category>
                <author>Jimmy Heller</author>
                <pubDate>Wed, 06 Jul 2022 02:45:53 +0430</pubDate>
            </item>
                    <item>
                <title>آمار بازدید پست‌های من در سال ۹۹</title>
                <link>https://virgool.io/@jimmyheller/%D8%A2%D9%85%D8%A7%D8%B1-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF-%D9%BE%D8%B3%D8%AA-%D9%87%D8%A7%DB%8C-%D9%85%D9%86-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84-%DB%B9%DB%B9-eiyhntgmsm7l</link>
                <description>در طول تاریخ از اعداد استفاده کردیم تا اغلب داد و ستد کنیم و آن‌چیزی که شمردنی است را بشماریم. برای هر عدد واحد درست کردیم تا عددهای زندگی قاطی نشوند و از اعداد، شفاف‌تر استفاده کنیم؛ مثلا وقتی می‌گوییم ده هزار تومان به پول اشاره داریم و وقتی می‌گوییم ده هزار بلیط به بلیط!روز به روز که در زندگی جلو‌تر رفتیم عددها فرقی نکردند ولی این واحدها بودند که زیاد شدند. واحد کریپتو، واحد اصله درخت، واحد فاصله و …«واحد» یک توافق عمومی است برای شمردن؛ تا همانطور که گفتم شمردن‌ها قاطی نشود. مشاهده افراد دارای ثروت (اجتماعی یا مالی) به من ثابت کرده اینکه چه چیزی را بشماریم از اینکه چطور بشماریم مهم‌تر است. هرکس با واحد خاصی مسائل زندگی را می‌شمارد. اینطور به نظرم آمده که مشخص کردن واحد یعنی مشخص کردن اینکه من در زندگی برای چه چیزهایی ارزش قائلم و می‌خواهم چه چیزهایی را در زندگی بشمارم. https://cdn.virgool.io/annual-report/1399/qfmd16aro3c3-TTXzc.mp4 اعدادی که بدون واحد ثبت کردمبه ویدیویی که ویرگول برایم ساخته که نگاه می‌کنم میبینم که در سال ۹۹، من در مجموع ۵,۲۳۲ کلمه در ویرگول نوشتم و منتشر کردم و مخاطبین، پست‌های من را ۲۰۹ مرتبه پسندیدند و  ۴۵ بار هم نظر خود را روی پست‌های من به اشتراک گذاشتند. در سال ۹۹، ۱۶۶ نفر در ویرگول من را دنبال کردند تا پست‌های بعدیم را بخوانند. این اعداد نشان میدهند من کاری کرده‌ام. هرکدام به واحدی وصل هستند. از خودم می‌پرسم من کدام واحد را شمارش کرده‌ام؟ کدامیک از واحدهای بالا از همه برای من مهم‌تر است؟ ادامه ویدیو را می‌بینم.آمار از اثر بیرونی می‌گویندطبق آمار پست‌های من ۹,۷۲۴ بار خوانده شدند و ۲,۹۷۸,۲۵۷ ثانیه صرف مطالعه آنها شده است، که با توجه به جمعیتی که در ایران به اینترنت دسترسی دارند، ویرگول به من می‌گوید که توانستم  ۰/۰۴۰۸۳۱۶۰۱ ثانیه، سرانه مطالعه دیجیتال کشور را بالا ببرم.از طرف دیگر ویرگول به من می‌گوید که اگر قرار بود پست‌هایم را چاپ و به دست تک تک خوانندگان برسانم باید ۱۰۰,۱۸۹ کاغذ مصرف می‌کردم.آن عددهای کوچک ابتدای ویدیو حالا تبدیل شده‌اند به عددهای بزرگ به اینکه من جلوی مصرف این تعداد کاغذ را گرفتم یا به اینکه من  ۰/۰۴۰۸۳۱۶۰۱ ثانیه، سرانه مطالعه دیجیتال کشور را جابه جا کرده‌ام. واحد این عددها برای من ملموس‌تر است.واحد نوشتن چیست؟همه عددهای بالا و همینطور اثر بیرونی که روی خوانندگان و همینطور در مقیاس بزرگتر طبیعت و جامعه اطرافم گذاشتم اعدادی هستند که من دوستشان دارم و به آنها افتخار می‌کنم. اگر چنین ویدیویی دست شما نیز رسید به شما بابت تک تک اعداد تبریک می‌گویم.اثر هر نوشته تا حدودی معلوم است، اگر بنویسید جلوی قطع درخت را می‌گیرید، به سرانه مطالعه کشور اضافه می‌کنید و خوانندگانی جذب می‌کنید که شما را از طریق نوشته‌هایتان می‌شناسند و …به نظرم می‌رسد که نوشته‌های من و شما واحد ندارند ولی اثر بیرونی دارند.</description>
                <category>Jimmy Heller</category>
                <author>Jimmy Heller</author>
                <pubDate>Mon, 22 Mar 2021 13:57:31 +0430</pubDate>
            </item>
                    <item>
                <title>آیا من با این رزومه شانس مهاجرت دارم؟</title>
                <link>https://virgool.io/@jimmyheller/%D8%A2%DB%8C%D8%A7-%D9%85%D9%86-%D8%A8%D8%A7-%D8%A7%DB%8C%D9%86-%D8%B1%D8%B2%D9%88%D9%85%D9%87-%D8%B4%D8%A7%D9%86%D8%B3-%D9%85%D9%87%D8%A7%D8%AC%D8%B1%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85-l9ariaw14us3</link>
                <description>مقدمهبدبختانه یا خوشبختانه فعلا کسی از من سوال برنامه نویسی نمیپرسه. از وقتی هم که این وبینار و این پست ویرگول منتشر شده، دیگه رسما شدم کارمند HR توییتر و هر روز صبح با ۵ تا رزومه ارسالی تو تلگرامم، بیدار میشم.تو این مدت به بیشتر از ۱۲۰ نفر تو فضای توییتر و تلگرام (سعی کردم) کمک کنم و در مورد نحوه نوشتن رزومه تجربه‌های ناقص خودم رو انتقال بدم.اما سوالی بود که دائم اون اولا ازم پرسیده میشد و من دائما جواب تکراری میدادم که نمیدونم. اون هم سوالی بود که در تیتر مطلب نوشتم (ناموسا اگر تیتر رو نخوندی و هنوز داری ادامه میدی تو یه پدیده هستی).تو این مطلب کوتاه میخوام به این بپردازم که واقعا چقدر شانس هست برای اینکه بتونیم با رزومه‌امون مهاجرت کنیم.هشدار جدی: من هیچ کس رو ترغیب به مهاجرت، ترک وطن، وعده کار، کمک به پیدا کردن شغل، ارسال رزومه و هرچیزی که مرتبط با این مسایل باشه، نکردم، ندادم، نمیکنم به علاوه فعل‌های آینده‌اشون. در نتیجه هیچ مسولیتی بابت این مطالب متوجه من نیست جز اینکه هدفم کمک به کسانی هست که میخوان از کشور عزیزمون ایران برای کسب تجربه به خارج از کشور و به خصوص اروپا بیان.نکته۱: همه اینها موارد تجربی هست و اکثرا هم مربوط به یک کشور خاص ممکنه باشه (هلند). ممکنه خود شما کسی باشید که مثال نقض همه مواردی باشه که من گفتم. بازم تاکید میکنم که اینا انتقال تجربه است و بر اساس دیدگاه شخصی نوشته شده. اگر تجربه‌ دیگه‌ای دارید،خواهش میکنم در پست دیگه‌ای انتشار بدید و در کامنتها ذکر کنید.طولانی بود نخوندم؛هیچ کس نمیدونه! دوست داشتی میتونی رزومه بفرستی و امتحانش کنی. هزینه هم نداره!تحصیلات دانشگاهی؟آیا تفاوتی بین یک تحصیل کرده دانشگاه شریف با منی که در دانشگاه آزاد درس خوندم هست؟ بله حتما هست، اما آیا کارفرمای خارجی هم اینو میدونه؟ اصلا تو آگهی شغلیش گفته باید از بین چند صد دانشگاه برتر جهان فارغ التحصیل شده باشی؟ اگر آره که خب هیچی، اگر نه پس برای چی باید نگران دانشگاهمون باشیم.علت اینکه باید بنویسیم هم به این خاطر نیست که بگیم از کجا با چه معدلی اومدیم بیرون، بلکه برای اینه که فرد مقابل بدونه که ما اندکی تحصیلات آکادمیک داریم و اصطلاحا مطالب پایه دانشگاهی رشته رو‌ گذروندیم. حالا رشته‌ات مرتبط نیست؟ باز هم اونقدر اهمیت نداره، سابقه کارت میتونه گواه این باشه که نیازی به دانشگاه نداری، مصاحبه‌ات‌هم همینطور.خیلی‌ها نگران این بخش دانشگاه هستن، باید به اون دسته از عزیزان اعلام کنم که تو اروپا نصف و حتی بیشتر مردم رنگ تحصیلات آکادمیک رو‌ نمیبینن و همون شکل نظام قدیم خودمون که بعد از دبیرستان و فنی و حرفه‌ای و هنرستان میرن سراغ رشته مورد علاقه‌اشون!برای همین شما هم نگران نباشید.اصلا نرفتید دانشگاه؟ بازم واقعا مهم نیست فقط باید یه کم تلاشتون رو بیشتر کنید.زبان انگلیسیبله مهمه، اما مدرک داشتن یا نداشتن تو انگلیسی مساله خیلی خاصیه که بسته به کشور مقصد و شرکتی که انتخاب میکنید فرق داره. اما در اکثر موارد نیازی به مدرک نیست چون دهن باز کنید معلوم میشه بلدید یا نه!سابقه کارداشتیم با ۳ سال سابقه رفته بهترین شرکت آلمانی کار کرده (من خودم هنوز متعجبم اما خب تواناییش رو اثبات کرده بود)، داریم با ۱۵ سال سابقه حتی باهاش تماس نمیگیرن. ‌ عدد سال تجربه مهمه اما فرمول نداره که بگیم شما با ۲ سال میتونی یا نمیتونی. اما واضحه که فردی که سابقه کم داره شانسش به صورت پیش فرض کمتر از یک متخصص با سابقه بیشتر.بسته به اینکه شما کجا، چه پروژه‌ای، چند سال، چطوری و …. کار کردید واکنش‌ها تو هر شرکت و سازمان متفاوته! شما باید در قالب اون شرکت باشید تا استخدام بشید.مدرک‌های غیر آکادمیکبه شرطی تعیین کننده هستن که شرکت هدف دنبالش باشه. اما قطعا بی‌تاثیر نیستن. مخصوصا تو فیلدهایی که نمیشه نمونه کار آورد. در مورد مدارک معتبر صحبت میکنم، نه اون مدارکی که کف اینترنت ریخته و تهش میگه ۳۰ نفر دیگه رو هم دعوت کن یه مدرک دیگه بگیر! مدارک coursera و مدل‌های این چنینی هم بد نیستن اما واقعا با مدرکی مثل aws developer certificate قابل مقایسه نیست.سناگر زیر ۱۸ سال نباشید، یا دیگه خیلی پیر نشده باشید، یه عدده که تا حالا کسی تو پروسه استخدام از من‌ نپرسیده. مسخره است که آدما رو با سنشون قضاوت کنیم. اگر هم خیلی جوون هستید و به موفقیت خاصی رسیدید بازم سعی کنید فروتن باشید، مصاحبه کننده اگر حرفه‌ای باشه از سابقه شما متوجه میشه.کار خفنبعضیا برام رزومه فرستادن و بهم گفتن آقا ما هیچ کار خفنی نکردیم، چیکار کنیم؟جواب منم همیشه اینه که مگه بقیه میکنن؟شما تو گوگل هم که کار کنید روی کل موتور جست و جو‌ کار نمیکنید و به توسعه بخش کوچیکیش کمک میکنید، اما همون کار کوچیکی که انجام میدید رو میتونید درست توصیف کنید؟ آیا این قابلیت در شما هست که بتونید از این‌ موقعیت برای ارائه توانمندی خودتون استفاده‌ کنید؟مثال میزنم، فردی به من رزومه داده که تخصصش فرانت هست. داخل رزومه نوشته بود ایجاد صفحه لاگین (به انگلیسی) و بعد گفت که خب من کار خاصی نکردم جز اینکه اون صفحه رو طراحی کنم.بهش یادآوری کردم که برای اون صفحه نیاز داشته تا با apiها کار کنه، موارد امنیتی رو رعایت کنه و این صفحه تغییر بزرگی در یک سازمان محسوب میشه.این موضوع نشون میده که شما نه تنها به کاری که کردید آشنا هستید و خوب درکش کردید، بلکه قدرت شما در توصیف مطالب فنی، و ارائه درست خودتون رو نشون میده.در نتیجه، یادتون باشه که شاید تعداد کمی متخصص باشن که آپولو هوا کنن ولی ما دون‌‌پایه‌ها هم که سوادمون نصف اوناست، شانس داریم. فقط باید جای درست خودمون رو نشون بدیم تا ازمون استفاده کنن.اما یه دیدگاه دوم هم داریم. اونم اینه که شما‌ اگر‌ کار خاصی نکردید خب رزومه‌ای هم ندارید که برای شرکت‌های خارجی جذاب باشه.این دیدگاه دوم گاهی اوقات درسته گاهی اوقات غلط. به این معنا که ممکنه شما برای شرکتی اقدام کنید که توانایی‌های بسیار بالایی میخوان مثلا شرکت در پروژه خاص یا مدیریت و … اونوقت هست که دیدگاه دوم درسته.اما در اکثر مواقع شرکت‌ها براشون مهمه شما در culture و فرهنگ سازمانیشون بتونید جا بشید، پیشرفت کنید و به رشد سازمان کمک کنید. مسایل فنی همیشه درجه دو اولویت رو دارن.شرکت در پروژه‌های اوپن سورسبسیار کار بزرگ و‌ خوبیه. جدا از اینکه برای خود شما رزومه خوبیه، کمک کردن به شبکه کاری خودمون، فوق‌العاده‌ترین بخش شغل ماست.اما تو پروسه استخدام چقدر کمک میکنه؟ مهمترین بخش اینه که میشه به عنوان نمونه کد و کار ارائه‌اش کرد! اگر جایی contribute کرده باشید که در دسترس باشه و کارفرما هم حوصله داشته باشه میره و بررسی میکنه و در صورتی که خوب باشه خیلی امتیاز مثبتیه. علتش هم اینه که فرآیند پذیرفته شدن در جامعه متن باز و یا ریپازیتوری‌های عمومی سخت‌تر از کد نوشتن تو شرکت‌ها است. در نتیجه کارتون قابل قبول بوده.گاها اصلا در همین فرآیند شما یک لینک خوب با یه برنامه ‌نویس دیگه تو یه شرکت خوب میزنید و موقعیت مناسبی رو براتون به وجود میاره.خب این بخش مثبت ماجراست اما مشکل اینجاست که بعضی از رفقا تصور کردن که وقتی سابقه خاصی ندارن، اگر شروع کنن به این پروژه‌ها کمک کردن خیلی تاثیرگذاره و سریع استخدام میشن! میتونه هم باشه!اما نظر شخصیم این است که ما همیشه باید تعادل رو حفظ کنیم، تمام دنیا حول محور متن باز نیست، تمام دنیا هم حول محور شرکت‌های بزرگ یا حتی کوچیک نیست. در ادامه، فردی که سابقه کم و در نتیجه تجربه کمتری داره چطوری میتونه مشارکت قابل توجهی به یک پروژه متن باز داشته باشه؟با کار کردن در مجموعه‌های تجاری، ارتباط متفاوتی از کار کردن با آدمها درک میشه، همونطوری که با کار در محیط‌های متن باز روابط دیگه‌ای رو تجربه‌ می‌کنید. پس مهم هست که تجربه هر دو رو داشته باشید. اما اگر اینطوری توصیف بشید: «تجربه اوپن سورس داره ولی تا حالا تو هیچ شرکتی کار نکرده!» (باز هم نظر شخصیمه و ممکنه غلط باشه) ممکنه که شرکت‌ها و مجموعه‌های بزرگتر به خاطر ساختار متفاوت دنبال گزینه‌های دیگه برن.بحث این موضوع خیلی طولانیه و قطعا نمونه‌های خاصی پیدا میشن که بگن نه من فقط با کار روی پروژه‌های متن باز مهاجرت کردم و کار گرفتم ( که خب نوش جونشون)، ولی کلیت رو سعی کردم به صورت خلاصه بگم. در نتیجه انتظارات خودتون رو با واقعیت مقایسه کنید.کار تو شرکت بزرگ یا کوچکاهمیت این موضوع واقعا کمه. دلیلش هم اینه که شرکت‌های غربی اطلاعات چندانی در مورد شرکت‌های ایرانی ندارن! در نتیجه چه اهمیتی داره کجا کار کرده باشید. مهم کاری هست که انجام دادید. جالبه بدونید که بعضی از ایرانی‌ها اطلاعات غلط هم میدن، مثلا اگر خودشون در یک شرکت کار کردن، اون رو بزرگترین تو ایران معرفی میکنن در صورتی که معلوم نیست بر چه اساسی اینو گفتن. (توصیه من همیشه به صداقته)اما اگر سوالتون این است که الان برم شرکت بزرگ کار کنم یا نرم شرکت بزرگ؟ این تو یه مقاله دیگه است جوابش.مدیر بودم!به درد خودتون میخوره، مگر اینکه ازتون سوال بشه، آیا توانایی رهبری تیم رو دارید یا قبلا تجربه داشتید یا نه؟ ولی، اگر دنبال این هستید که بگید مدیر بودید پس صاف برید مدیر بشید، سخت در اشتباهید.بذارید با هم صادق باشیم، تا حالا از خودتون پرسیدید چرا یه کشور مثل آلمان و هلند و یا انگلیس باید بیان و از کشوری با فرهنگ متفاوت، ساختار متفاوت، با شرکت‌هایی بسیار کم تجربه‌تر و زیر فشار تحریم نیرو انتخاب کنن؟ جوابش رو خودتون میدونید و در این مقاله هم بهش نمیپردازم.پس مدیریت شما در این کشور، چندان کمکی به کشور مقصد نمیکنه جز تجربه رهبری افراد اما در بیشتر مواقع از شما سوال میکنن که چرا میخواید step down کنید؟ میپرسن که بدونن چطوری میتونن همون انگیزه رو در شما ایجاد کنن و بعد از رسیدن به اهداف اقتصادیتون که به راحتی بعد از یکسال به دست میاد، شرکت رو برای موقعیت بهتری رها نمیکنید.در کل نسبت به موضوع مدیریت کمی با دید متفاوت نگاه کنید. قطعا همه موضوع این دو‌ پاراگراف نیست اما فکر میکنم فهمیدید چی میگم!تهش!شما همیشه میتونید صبر کنید برای اینکه بهترین رزومه و خفن‌ترین کارها رو انجام بدید، اما کی قراره تعیین کنه که شما برای شرکت مقصد مناسب هستید یا نه؟ خودتون؟ من؟ پدرتون؟ قطعا شرکت مقصد تنها منبعی هست که به شما اعلام میکنه که برای شغل مورد نظر مناسب هستید یا نه . پس بهترین کار اینه که بهترین چیزی که در لحظه هستید رو روی کاغذ بیارید، خودتون رو آماده کنید و شانستون رو امتحان کنید. بعضی از بچه‌ها بعد از مهاجرت گفتن. که ما ۱۰۰ تا شرکت رو امتحان میکردیم! هرچند عقیده دارم که شما قاعدتا باید با ۵ تا شرکت مصاحبه کنید و نهایتا موفق بشید اما حالا که اینقدر شرکت هست که میتونید امتحان کنید، چرا وقت رو تلف میکنید؟ رزومتون رو بفرستید براشون. این هم مجانیه هم تجربه است و هم اینکه خودتون بعد از مدتی متوجه میشید که دقیقا کجای کار رو درست یا اشتباه میرید. هیچ کس نمیتونه تعیین کنه که شما مناسب هستید یا نه!واقعا وقتی ۲۷ سالت شده چه اهمیتی داره که تحصیلات مهمه یا نه؟ میخوای بری ۴ سال درس بخونی دوباره بیای؟ اینقدر وقت اضافه داری تو زندگیت؟ سنت رو میتونی کم بکنی؟ میتونی بری یه ماه تو شرکت بزرگ کار کنی و بگی من تجربه کار تو شرکت بزرگ کار کردم؟ نه!پس وقت رو الکی تلف نکن، اگر درصدی خودت رو qualify میدونی و تصور میکنی که میتونی، خب شروع کن!این مطلب اولین بار در وبلاگ شخصیم به آدرس https://jimmyheller.com منتشر شده است.</description>
                <category>Jimmy Heller</category>
                <author>Jimmy Heller</author>
                <pubDate>Mon, 15 Mar 2021 21:55:05 +0330</pubDate>
            </item>
                    <item>
                <title>رزومه من دیده نمیشه!</title>
                <link>https://virgool.io/@jimmyheller/%D8%B1%D8%B2%D9%88%D9%85%D9%87-%D9%85%D9%86-%D8%AF%DB%8C%D8%AF%D9%87-%D9%86%D9%85%DB%8C%D8%B4%D9%87-uubdklmwrigw</link>
                <description>نوشتن بهتر رزومهروز قبل از این نوشته توییت زیر رو نوشتم. من خیلی غیر جدی این موضوع رو مطرح کردم و اصلا فکر نمیکردم که بازخورد زیادی داشته باشه.توییت مورد نظراما بازخوردها خیلی جالب بود. اکثرا تمایل به مهاجرت داشتند و راه حل مناسبی برای اومدن نداشتند. حتی فردی مسیج داد که من سالهاست که در راه آمستردام و تهران هستم و هر سال به هلند سر میزنم اما هنوز نمیدونم چطوری میتونم اقامت داشته باشم. بچه‌های دیگه‌ای هم بودند که هلند رو با آلمان مقایسه میکردند و میخواستن بدونن که چطوری میتونن با ویزای جاب سیکر وارد هلند بشن و میپرسیدن که اصلا این امکان وجود داره یا نه.از اونجاییکه خودم به واسطه کار و شغل برنامه‌نویسی مهاجرت کردم فقط میتونستم در این مورد راهنمایی مناسبی بدم و در بقیه موارد همه رو ارجاع دادم به سایت‌های دولت هلند.اما چند موضوع نظرم رو جلب کرد که در دو پست جداگانه بهشون خواهم پرداخت.اولین موضوع تیتر پسته! چیزی که این چند وقت اخیر دارم بیشتر و بیشتر میشنوم اینه: من رزومه میفرستم ولی اصلا توجهی بهش نمیشه و ریجکت میشم.از تقریبا اکثر افرادی که این حرف رو به من زدند درخواست کردم تا رزومه‌اشون رو برام بفرستند. باید اشاره کنم که قبلا هم کسانی بودن که این جمله رو به من گفته بودند در نتیجه ایمان داشتم که ممکنه برخی مسایل رعایت نشده باشه.در ادامه این پست قصد دارم کمی بیشتر به این موضوع بپردازم.بررسی اولیه: رکورد دوی صد متر چقدر بود؟از چند سال سابقه کوتاه کاریم، نصفش رو در مقام مصاحبه کننده فعالیت کردم. به جرات به شما میگم که شما فقط ۱۰ثانیه تا ۱ دقیقه زمان دارید که افراد رو تحت تاثیر رزومه خودتون قرار بدید.بیاید با هم اینجوری نگاه کنیم که شما دارید به عنوان یک فرد برای یک شرکت،‌ رزومه میفرستید اما مسول دریافت رزومه برای اون موقعیت شغلی خاص فقط یک نفر هست. در نتیجه روال به این شکل خواهد بود که فرد مسول فارغ از اینکه چه آشنایی‌ای نسبت به موقعیت شغلی درخواست شده دارد، تعداد زیادی (شما بخونید از ۲ تا ۲۰) رزومه دریافت خواهد کرد. او نیاز داره که در مدت زمان کمی کاندیداهای خودش رو مشخص کنه. حالا شما خودتون رو بذارید جاش. با چه معیاری میخواید این کار رو انجام بدید؟ بذارید کمی شفاف‌تر باشیم. اکثر افرادی که این وظیفه رو به عهده دارند افرادی هستند که در HR مشغول هستند و این افراد تنها به کلید واژه‌ها نگاه خواهند کرد. پس، رزومه شما فقط چند ثانیه اسکن خواهد شد! خونده نمیشه، اسکن میشه!بعضی از شرکت‌های کوچکتر هم که مسول خوندن رزومه‌ها خود تیم لید یا مدیر‌فنی شرکت هست معمولا زمان کمتری رو برای بررسی میذاره و این از حالت اول هم خطرناک تره!چه مواردی اسکن میشه: کجا بهت آدرس دادن؟جایگاه شغلیچشم افراد به دنبال این هست که نزدیک‌ترین کلمه به موقعیت شغلی درخواست شده و هم چنین توانایی‌های مورد نیاز رو در رزومه پیدا کنند. اگر این جست‌و‌جو بیشتر از چند ثانیه طول بکشه بدون شک پیدا نشده تلقی میشه.پس اولین وظیفه رزومه شما در ۱۰ ثانیه اول مشخص کردن موقعیت شغلی جدید شماست. به عنوان مثال، شما در رزومه‌اتون نوشتید Python Developer . اما موقعیت شغلی درخواست شده Junior Developer هست. آیا به راحتی میشه از Python Developer فهمید که شما Junior هستید یا نه؟ مشخصا نه. پس باید ادامه رزومه خونده بشه که مرحله جدیدی از جست‌و‌جو هست. در نتیجه کار رو راحت کنید.اگر ۱۰۰ تا توانایی دارید، باز هم دارید برای یک موقعیت شغلی اقدام میکنید. پس فقط اون موقعیت مهم هست. یادتون باشه ما هیچ وقت در بدو ورود ارتقا شغلی پیدا نمیکنید. یعنی اگر یک Senior هستید امکان نداره شما رو به عنوان Team Lead وارد کنند. باید اول برادری خودتون رو اثبات کنید. مگر اینکه معرفی شده باشید به شرکت که این داستان متفاوتی هست و شامل این بحث نخواهد شد.اصلی‌ترین تواناییقبل از هرچیزی دوست دارم بهتون چند تا عکس از بخش توانمندی‌های مورد نیاز شرکت‌های هلندی نشونتون بدم.همونطور که می‌بینید، هیچ کدوم بیشتر از چند خط نیستن. خط اول مهم‌ترین خط برای آگهی‌دهنده است. شما باید بتونید در اولین بررسی خودتون رو دارای شرایط نشون بدید. به عنوان مثال تو دو تا از این سه آگهی زبان Java درخواست شده و در آگهی دیگری ۵ سال سابقه فعالیت مهندسی مهم‌ترین قسمت در سابقه شما جهت استخدام تعیین شده.اگر ویژگی مهم این موقعیت شغلی رو دارید باید اون رو در دیدرس افراد قرار بدید. (در این خصوص جلوتر بیشتر توضیح خواهم داد).بررسی عمیق رزومه: کم گوی و گزیده گوی!حالا وقتش رسیده که تو رزومه عمیق بشیم. این اتفاق زمانی خواهد افتاد که رزومه به دست مدیر فنی یا تیم لید یا کسی که قرار هست با شما مصاحبه بکنه برسه. معمولا تعداد کمی تو مرحله قبل رد میشن مگر اینکه واقعا رزومه ارسالی ضعف داشته باشه یا اصلا به عنوان شغلی مورد نظر ارتباطی نداشته باشه. در نتیجه اگر بتونید کلید واژه‌های درست این آگهی رو داشته باشید قطعا از این مرحله به راحتی عبور خواهید کرد.اما بعد از مرحله انتخاب توسط واحد منابع انسانی شرکت، که ممکنه به مصاحبه اولیه هم منجر بشه، رزومه شما در اختیار یک فرد فنی مرتبط که معمولا تیم لید و یا مدیر فنی خواهد بود قرار خواهد گرفت.قاعدتا اگر نکات قبلی رو رعایت کرده باشید نیمی از راه رو رفتید. اما چه موضوعی ممکنه شما رو از رسیدن به هدفتون دور کنه؟متن معرفیشما بسته به اینکه برای چه موقعیت شغلی اقدام میکنید باید شخصیت‌های متفاوتی از خودتون ارایه بدید. اینجا تنها جاییه که باید در عین حال که فروتن هستید و بیش از حد خودتون رو بالا نمیبرید، خودتون رو Present می‌کنید.این قسمت شامل ارایه کلی از رزومه شماست با تاکید بر اینکه شما چند سال سابقه دارید و مهم‌ترین توانمندی شما (Skill) در چه زمینه‌ای هست و با گرفتن شغل مورد نظر چه هدفی رو در سر دارید یا اینکه اگر با تجربه‌تر هستید چه موفقیت‌های به خصوصی در همین زمینه در جایگاه‌های قبلی کسب کردید.پس اضافه کردن توانمندی‌های غیر ضروری میتونه شما رو از هدف دور کنه. اگر بتونید افراد رو برای خوندن باقی رزومه ترغیب کنید به توانمندی‌های غیر ضروری شما هم در زمان خودشون پرداخته خواهد شد.همونطور که در بخش قبلی هم گفتم رزومه شما معمولا اسکن خواهد شد و یکی از بخش‌‌هایی که نشون میده شما چقدر حرفه‌ای هستید بخش Summary یا معرفی شما هست.تو رزومه‌هایی که به دستم رسید چند تا نکته رو دیدم که با هم مرور میکنیم، اما قبلش اول متن‌ها رو ببینیم:۱ - همونطور که میبینید این فرد لیستی از موقعیت فعلی خودش و شرایط فعلی خودش رو قرار داده که اتفاقا بد نیست، اما آیا کارفرما به دنبال ارایه اطلاعات به این شکل هست؟۲- حالا یه قدم جلوتر میریم. رزومه دوم کمی بهتر شده و به جای نوشتار بالا از جملات استفاده کرده. این رزومه متعلق به فردی با چند سال (زیر ۱۰) سابقه است و تجربه کاری داره. به نظر شما یه فرد با این مشخصات چطوری میتونه خودش رو بهتر از این معرفی کنه؟ ۳- مورد سوم یه فرد کاملا با تجربه و توانمند هست. تو شرکت‌های بزرگتر کار کرده و به خوبی میدونه داره چی کار میکنه.۴- این هم یه توسعه دهنده تازه مهاجرت کرده به back-end هست که خودش توضیح خوبی در مورد خودش داده.هر ۴ مورد رو خوب بخونید.اولین چیزی که در ذهن من شکل میگیره استفاده از کلماست ساده است. کلمات وزن دارن و جمله به وسیله اونها تاثیر گذار میشه. در نتیجه باید تو انتخاب کلمات خیلی دقت کرد. مثلا به جای ….I can clean code تو مورد ۴ چقدر خوب خواهد بود که بنویسیم I am able to write efficient and reliable code by clean code guidelines. یا در مورد ۳ جمله با Brilliant شروع شده! تصور کنید کسی به شما در فارسی بگه من درخشان (از نظر کاری)‌هستم. فکر نمکنید این کمی دست بالا گرفتن خودتون هست؟ شاید هم باشید اما بذارید خودشون کشف کنن نه اینکه پیش پیش به اونها القا کنید.مورد ۱ هم تنها به گفتن کلمات کلیدی بسنده کرده که شاید خلاصه‌ترین و سریعترین باشه اما تاوان استفاده نکردن از جملات رو خواهد داد. استفاده از جملات تو این قسمت میتونه تاثیر بسیار مثبتی داشته باشه.تو مورد ۳ همونطور که میبینید از یک جایی به بعد فقط داریم لیست skill میخونیم، چیزی که انتظار داریم تو قسمت‌‌های بعدی بهش اشاره بشه. تو قسمت متن معرفی، باید به نکاتی اشاره کنید که با خوندن رزومه به راحتی به دست نمیان. در نتیجه دقت کنید.زمانی که با عبارت with a bachelor’s degree در اول یک جمله یا پاراگراف شروع میکنید انتظار خواننده این هست که این مدرک تحصیلی جایی به کارتون اومده و ازش استفاده خاصی کردید! اما واقعا شما با مدرک کاری نمیتونید بکنید و بذارید تو جای خودش توضیح بدید. مگر اینکه مثلا تو دانشگاه هیوستون تگزاس تونسته باشید تو کلاس assembly استاد معروف این دانشگاه کار خاصی کرده باشید باید این موضوع رو ذکر کنید، وگرنه به کل بی‌ارزش هست. به خصوص اگر اسم دانشگاه برای فرد مقابل آشنا نباشه.در مورد گزینه ۲ هم باید این موضوع رو مطرح کرد که این رزومه سابقه مناسبی داره اما آیا این جملاتی که نوشته دید درستی از خواسته‌اش هم میده؟ به غیر از Skill هایی که داره به چیز دیگه‌ای اشاره کرده؟ واقعا آموزش دادن برنامه نویسی به افرادی که عاشق این فیلد هستن جایی در این قسمت داره؟! این جمله برای ۱۰ دقیقه اول مصاحبه با HR هست که به شما میگن خودتون رو معرفی کنید. نه رزومه‌ای که فقط ۱۰ تا ۳۰ ثانیه وقت داره که خودشو نشون بده.من با سابقه کم کاریم میتونم در مورد این قسمت حداقل یک پست وبلاگ جداگانه بنویسم اما به نظرم همین موارد هم کافی هست که بدونیم چقدر چیزهای ساده و پیش پا افتاده میتونن به ما آسیب بزنن.برای نتیجه گیری خلاصه وضعیت شما (summary) باید :به سوابق شما اشاره بکنهتوانایی اصلی شما که به شغل و موقعیت درخواستی مربوط میشه رو تبلیغ کنهموفقیت (accomplishment) اصلی شما تو زمینه شغلی مورد اشاره رو بکنه.بقیه مواردی که بنویسید احتمالا دیده نخواهد شد. در نتیجه وظیفه خودتون بدونید که :در سی ثانیه خودتون رو به مدیر آینده‌اتون معرفی کنید.سوابق شغلی: از کجا آمده‌ام، آمدنم بهر چه بودلازم نیست توضیح بدم که این بخش قراره چی کار بکنه اما چرا همچنان مشکلات رو در رزومه افراد میبینم؟ چون افراد از دید خودشون به رزومه نگاه میکنن اما این اشتباهه! شما باید به عنوان فرد متقاضی از دید یک کارفرما به رزومه خودتون نگاه کنید که دقیقا چه مواردی باید پوشش داده بشه. به عنوان مثال برای یک شرکت فناوری به اون صورتی که برای یک شرکت ماست بندی که بخشی از بودجه خودش رو به آی‌تی اختصاص داده رزومه نمی‌نویسید.سوابق شغلی شما در نگاه اول چند تا چیز رو در مورد شما اثبات میکنه:چه تجربیاتی داریددر چه موقعیت‌های شغلی کار کردیددر هر موقعیت شغلی چند وقت کار کردیدو در واقع مسیر شغلی (Career path) شما رو مشخص میکنه. هرچقدر این مسیر شغلی درست و مشخص باشه برای کافرما انتخاب شما ساده‌تر خواهد بود. اگر مواردی دارید مثل:خالی بودن بخش طولانی از فواصل شغلیشاخه به شاخه شدن در موقعیت‌های شغلی (امروز به عنوان Back End Developer و دو ماه بعد به عنوان Senior Front End Developer)ارتقا شغلی‌های چند ماههنداشتن تعریف درست از وظایف در موقعیت شغلیپایین تر بودن موقعیت درخواستی در مقابل موقعیت فعلیخودتون رو آماده کنید که به راحتی ریجکت بشید یا اینکه در مصاحبه برای هر کدوم از این موارد جواب قانع کننده داشته باشید.به صورت دقیق‌تر سوابق شما در رزومه باید :حداقل سه کارفرمای آخر رو شامل بشه. اگر سابقه خیلی زیادی دارید قاعدتا این مطلب رو نمیخونید ولی این قسمت رو اونقدر طولانی نکنید که کسی نخوندش و بالای ۱۰ سال رو دیگه نیارید!نام رسمی شرکت رو بنویسید نه مخفف شرکت رو! خیلی از شرکت‌های ایرانی برای خودشون لقب درست میکنن مثلا خدمات انفورماتیک به خودش میگه ISC اما حقیقتا این شرکت به اسم دیگه‌ای شناخته میشه نه مخفف! پس حواستون باشه. اگر شرکت وبسایت مناسبی داره حتما به صورت لینک اضافه کنید تا کارفرما بتونه ارزشیابی بکنه.محل شرکت رو بنویسید. لازم نیست آدرس کامل رو بنویسید. در حد اینکه بنویسید شهر تهران و ایران بوده کفایت میکنه. کسی دنبال شرکت تو Google Map نمیره! نگران نباشید برای اینکه بخوان باهاشون تماس بگیرن اول با شما هماهنگ میکنن. (این معمولا مرسوم نیست که از خارج از ایران دنبال inquiry در داخل ایران باشن)عنوان شغلی. یادتون باشه که این مهم‌ترین بخش هست در انتخاب اسم دقت کنید. مثلا اگر مسول یک تیم ۵ نفره بودید ولی تصمیمات نهایی رو کس دیگه‌ای میگرفته شما CTO اون شرکت نیستید. شما Team Lead هستید. حتی استفاده از Team Lead هم گاها مشکل ایجاد خواهد کرد که در این قسمت نمیپردازم بهش. اما نکته مهم این هست که این عنوان‌های شغلی باید نزدیک به عنوان شغلی درخواستی باشه یا اینکه حداقل در راستای اون باشه.مدت زمانی که کار کردید. سعی کنید فقط به ماه و سال بسنده کنید و تاریخ رو به صورت عددی وارد نکید چرا که کارفرما میخواد با یه نگاه ساده متوجه فاصله زمانی بشه، کسی حال نداره تو رزمه شما معمای ریاضی حل کنه. حتما لیست سوابق رو از آخرین موقعیت شغلی به اولین موقعیت شغلی ترتیب بدید.پروژه‌هایی که در شرکت‌ها انجام دادی با جزییات فنی و اینکه دقیقا چه مشکلی رو حل کردید و اگر بخشی از پروژه بوده که بدون شما انجام نمیشده حتما بنویسید. اگر به عنوان پاداش و یا جایزه چیزی دریافت کردید که بقیه به راحتی به دست نیاودن حتما ذکرش کنید.در مورد پروژه‌های قدیمی بیشتر از یک خط توضیح ندید، خیلی حوصله سر بر خواهد شد.اگر فاصله زمانی زیادی رو داشتید که کار نکردید، تو این قسمت میتونید به صورت یک نکته به اون اشاره کنید.شاید موارد بالا راحت به نظر بیاد اما باور کنید اینقدر رزومه دیدم که موارد عجیب و غریب توش بوده که استخدام کردن رو بسیار سخت‌تر کرده. حالا فرض کنید هدفتون این هست که یک شرکت خارجی که هیچ اطلاعی از کشور ما نداره رو تحت تاثیر قرار بدید.بعضی از کشورها و کارفرماهاشون دوست دارن سوابق رو بعد از Summary و قبل از هر بخش دیگه‌ای ببینن. بهتر هست که از هموطن‌هامون تو کشور مقصد سوال بپرسید تا بدونید که راه حل درست چیه.تحصیلاتاین بخش زمانی اهمیتش بالاتر از Skills هست که شما تحصیلاتتون رو در یک دانشگاه معتبر و با معدل بالا انجام داده باشید. در غیر اینصورت ارزشش کمتر از Skills هست. در صنف نرم‌افزار این بخش کمترین ارزش رو داره اما ارزش خودشو داره.نام محل تحصیل و شهر محل تحصیلرشته تحصیلیفاصله زمانی شروع و پایان تحصیلاگر موفقیت خاصی در طول تحصیل داشتیداینها موارد مهمی هست که باید تو این بخش بهشون جواب بدید. اما لطفا این بخش رو چون خودتون تصور میکنید شاگرد فوق‌العاده‌ای هستید بزرگش نکنید!توانمندی‌هااین بخش برای برنامه‌نویس‌ها و مهندسین کامپیوتر بخش مورد علاقه است چون تصور میکنن که این لیست هرچقدر بزرگتر باشه شانس انتخابشون بیشتر میشه! اشتباه رایجی که هر روز بیشتر از قبل دارم میبینم.شما فقط باید یک تخصص اصلی داشته باشید اون هم تخصصی هست. که تو آگهی ازتون خواستن. اگر برنامه نویس هستید، تخصص شما فقط یک زبان هست. چطوری میتونید برای یک موقعیت شغلی با دو تا زبان اقدام کنید؟ پیشنهاد میکنم در این قسمت حتما میزان زمانی که با بر روی این توامندی و مهارت کار کردید هم بنویسید مثلا بنویسید ۱۰ سال هست که دارید بر روی فلان تکنولوژی کار میکنید. دقت کنید این باید همون خط اول آگهی فرد کارفرما باشه وگرنه وقت هر دو طرف رو هدر دادید.دسته بندی توانمندی‌ها رو رعایت کنید. به عنوان مثال اگر یک کتابخانه رو اضافه میکنید جزو فریمورک‌ها اضافه‌اش نکنید. این نشون میده شما نمیدونید چی یاد گرفتید.اگر یک ساختار بلد هستید که خودش به بخش‌های مختلف تقسیم میشه، فقط بخش اصلی رو بنویسید. مثلا اگر J2EE کار میکنید، لازم نیست تک تک specification رو وارد کنید. فردی که رزومه شما رو میخونه اگر درخواستی برای J2EE داشته باشه خودش متوجه میشه، اگر هم نشه من بعید میدونم شما بخواهید با همچین کسی کار کنید.تعداد توانمندی‌ها رو معقول انتخاب کنید. مثال زیر رو ببینیم:متوجه هستم که توانمندی‌هایی که در اون‌ها بهتر هست رو به صورت Bold اضافه کرده، اما حقیقت اینه که من بعد از ۵ بار نگاه کردن به رزومه و تازه الان که دارم عکس رو استفاده میکنم این موضوع رو متوجه شدم! اما حتی با این حال برای هیچ کارفرمایی در خارج از ایران قابل تصور نیست که یه نفر این همه توانمندی داشته باشه و ادعا کنه که توشون مهارت خاص داره. در نتیجه لیست خودتون رو اونقدر بزرگ نکنید که تنها برای اینکه به شما اثبات بشه چیزی بلد نیستید باهاتون مصاحبه کنن. (باور کنید درصد خوبی از مصاحبه‌ها هدفشون همین هست!)برای نشون دادن اینکه FullStack هستید هم نهایتا دو تا زبان لازم دارید نه ۲۰ تا! حتی اگر بلد هم هستید، این لطف رو در حق خودتون بکنید که فقط به خطوط آگهی جواب بدید. چون به راحتی باعث میشه ریجکت بشید.صرفا جهت تاکید بیشتر یک نمونه دیگه هم با هم ببینیم. درسته که میدونیم رزومه عنوان داره و میشه فهمید که کدوم یکی از این موارد توانمندی اصلی هست اما با هرکدوم چقدر آشنایی دارید؟ چند سال کار کردید؟ کدوم یکی رو experienced هستید و کدوم یکی رو knowledge دارید و کدوم یکی familiar هستید؟ همینجا با هم به این نتیجه برسیم که رزومه قشنگ در درجه پایین‌تری از رزومه واضح و descriptive قرار میگیره.موارد دیگر…شما میتونید در پایان رزومه‌اتون بخش‌های مختلف دیگه‌ای رو اضافه کنید مثل توانمندی‌های دیگر که اشاره به زبان‌هایی که صحبت میکنید هست. یا قسمت علاقمندی‌ها که مربوط به تماشای فوتبال از روی مبل راحتی توی خونه میشه. اما بخش‌های اصلی یک رزومه همین‌هایی بود با هم پوشش دادی و باقیش حاشیه هست.حرف آخررزومه بیشتر از سه صفحه دیگه رزومه نیست.لحن نوشتار شما خیلی مهم هست. از مزه ریختن و عامیانه حرف زدن پرهیز کنید. (دیدم که جملات با ” من فلانی هستم شروع شده.”)از ابزارهای رزومه سازی استفاده کنید تا بدونید چطوری ساختار درست کنید اما واقعا هیچ کدومشون (به غیر از اونهایی که پول میدید واسشون) جز زیباسازی کار خاصی انجام نمیدن.لینکدین خودتون رو کاملا با رزومه سینک کنید.اسم فایل رزومه باید اسم شما – CV یا Resume باشه. هر چیزی غیر از این جالب نیست.رزومه‌تون رو به روز نگه دارید.بعد از هر ریجکت شدن از کارفرما بخواید که به شما پیشنهاد و کمک بده تا بتونید رزومه بهتری داشته باشید و اصلاحش کنید.مواردی که نوشتم گاها ممکنه در کشورهای مختلف فرق بکنه و متفاوت باشه اما به صورت کلی همین موارد هستند. بعضی از کشورها مثل آمریکا و کانادا سیستم متفاوتی دارند که بهتره بیشتر در موردشون تحقیق کنید. از دیگران بخواهید که رزومه‌اتون رو نقد کنن. ریجکت شدن خیلی ناراحت کننده است اما این به عنوان سیگنالی به شما هست که باید قسمتی از کارتون رو بهتر کنید.نکته۱: تمامی موارد با کسب اجازه از صاحب رزومه بوده است. نکته۲: این مطلب برای اولین بار در وبلاگ شخصی من به آدرس http://jimmyheller.com منتشر شده است. Photo by Green Chameleon on Unsplash</description>
                <category>Jimmy Heller</category>
                <author>Jimmy Heller</author>
                <pubDate>Sun, 28 Jun 2020 17:29:00 +0430</pubDate>
            </item>
                    <item>
                <title>تجربیات من از ۶ ماه زندگی در هلند</title>
                <link>https://virgool.io/@jimmyheller/%D8%AA%D8%AC%D8%B1%D8%A8%DB%8C%D8%A7%D8%AA-%D9%85%D9%86-%D8%A7%D8%B2-%DB%B6-%D9%85%D8%A7%D9%87-%D8%B3%D9%81%D8%B1-%D8%AF%D8%B1-%D9%87%D9%84%D9%86%D8%AF-majwalkidzyu</link>
                <description>مقدمهتجربیات من در مورد جنوب هلند هست که به شدت با شمال هلند و به خصوص آمستردام متفاوت هست. در نتیجه اگر متوجه اختلاف نظر با افراد دیگه‌ شدید تعجب نکنید. زبانمردم هلند زبان اولشون Dutch هست. اما تقریبا ۹۰ درصد مردم از هر قشری که تصور کنید، قادر به صحبت کردن انگلیسی در سطح بسیار بسیار بالایی هستن(حتی کارگر ساده). در تمام این ۶ ماه دو نفر بودند که انگلیسی صحبت نمیکردند  ولی به طور کامل متوجه میشدند. در نتیجه میتونید هیچ وقت زبان را یاد نگیرید. اما اگر زبان رو یاد بگیرید اونم در حد چند کلمه مثل صبح به خیر، عصر به خیر، تشکر و ... مردم به شدت متفاوت با شما برخورد میکنن. انتظار عمومی مردم هم این هست که بعد از دو یا سه سال بتونید خوب صحبت کنید و به فرهنگشون احترام بذارید. مردممردم هلند به شدت در جنوب خونگرم هستن. هرچقدر به سمت شمال میرید متوجه دو نکته میشید. کمتر خندیدن و رک بودن. اگر از یک هلندی تفاوت رو بپرسید، به شما جواب میده که افراد در شمال زمان بیشتری برای خودشون قایل هستن. در خصوص صفت رک بودن باید گفت که اینجا کسی حرفی رو در دلش نگه نمیداره. بسته به شخصیت افراد اونها حرفشون رو به شما میزنن و کمتر به مسایل شخصی میپردازن. چیزی که ما در ایران مخالفش عمل میکنیم. در نتیجه ممکن هست که روزهای اول خیلی تعجب کنید. اما مهمتر از صفت رک بودن، صفت انتقاد پذیری و آرامش توامان هست. گه‌گاه همکاران من طوری با همدیگه صحبت میکنن که من فکر میکنم الان بحث بسیار بالا خواهد گرفت اما در نهایت یک نفر از درگیران بحث متقاعد میشه یا راه حلی که هر دو طرف راضی باشن ارائه میشود. در این موارد کسی تلاش نمیکند که حتما حرفش را اثبات کند. همه چیز با عقل سلیم سنجیده می شود. در همه موارد افراد سعی میکنند که به شما کمک کنند. اگر در یک فروشگاه از یکی از افراد کمک بخواهید آن‌ها شما را تا رسیدن به هدف نهایی همراهی میکنند. این رفتار مثلا در فرانسه یا اسپانیا تقریبا دیده نمی‌شود. در نتیجه کسی از کسی کمک بیجا یا &quot;همینجوری&quot; نمیخواهد. اونها برای شما زمان میگذارند و نباید وقت دیگران تلف شود. زمان مهم است. جلسه یا قراری نبوده است که از طرف فرد هلندی با تاخیر مواجه شده باشد مگر اینکه دلیل موجهی داشته باشد. مردم در خیابان در صورتی که چشم در چشم شوید به شما لبخند و در صورت شنیدن، سلام میکنند. مهم نیست که همدیگر را میشناسید یا نه. این اتفاق میتواند ۷ صبح یا پایان شب اتفاق بی‌افتد. تقریبا کسی را ندیده‌ام که وقتی وارد جایی می‌شود سلام نکند! پیرترها مخصوصا آقایان به شدت به پوشش اهمیت میدهند و بسیار مبادی آداب هستند. جوان‌ترها کمتر این موارد را رعایت میکنند که هنوز علتی برای آن پیدا نکردم. دینمردم این منطقه اکثرا مسیحی هستند اما با حضور مهاجرها اسلام نقش بسیار بیشتری پیدا کرده. اما مردم (به غیر از یک بخش کوچک در مرکز کشور) به شدت از دینداری بیزار هستند و این موضوع را امری شخصی میدانند. در نتیجه هرگز از کسی در مورد اعتقادات مذهبیش نپرسید! سبک زندگیساده زیستی همراه با استاندارد بالا اولین چیزی هست که به چشم خواهد آمد. اگر در شهرهای هلند پیاده روی کنید متوجه این خواهید شد که خانه یا محله‌ای که از لحاظ سطح زندگی با محله قبلی بسیار متفاوت باشد پیدا نخواهید کرد. بالاشهر و پایین شهر چندان معنی ندارد. ممکن است در جایی و یا شهری امکانات بیشتر باشد اما این امکانات طوری ایجاد شده‌اند که تقریبا در تمام مناطق به صورت مساوی تقسیم شوند.یک هلندی هیچ وقت بابت یک کالا پول زیادی نمیدهد مگر مجبور باشد! در خصوص هزینه‌ها به شدت با شما صادق هستند. قبل از انجام کار به شما مبلغ اطلاع داده می‌شود. اگر این اتفاق نیفتد، شما کاملا آزاد هستید که از قیمت اطلاع داشته باشید. اما همانطور که گفتم، مردم از تلف کردن وقت بیزارند و معمولا نمی‌توانید &quot;همینجوری&quot; از چیزی اطلاعات کسب کنید. همه امور زمان بندی دارند و هیچ کاری سریع انجام نمیشه. باید برای تقریبا همه کار از قبل وقت گرفته باشید وگرنه کارتون همیشه عقب خواهد بود. برخلاف ایران کسی برای انجام کارش استرس ندارد و نیازی به لایی کشیدن در صف‌های انتظار (چه مجازی چه فیزیکی) نیست! مردم در صف هرچقدر هم که منتظر بمانند کسی لب به اعتراض باز نمیکنه و صبور هستند. خانه‌های ساخته شده در شهر محل زندگی من سه مدل هستند، خانه‌ ویلایی هلندی، خانه‌‌های (اصطلاحا) ردیفی هلندی و آپارتمان‌های چند طبقه. دسته اول معمولا در اطراف شهر هستند و کشاورزها و یا در موارد دیگر افراد ثروتمند صاحب خانه های ویلایی بزرگ هستند. خانه‌های ردیفی هلندی تقریبا معمول‌ترین سبک ساختن خانه در این کشور هستند و در یک کوچه میتوانید حداقل ۲ تا ۲۰ خانه شبیه هم پیدا کنید. اکثر این خانه‌ها دو تا سه طبقه با حیاط هستند. اما ممکن است زیربنای زیادی نداشته باشند. در جایی خانه ساخته نمی‌شود مگر اینکه برای آن‌ها زمین بازی و مراکز خرید و تفریحی در نظر گرفته شود. در شهر محل زندگی من پارکینگ جزو مهمترین اولویت‌هاست و تقریبا برای ماشین خودتون همیشه جا پارک مناسب پیدا میکنید اما این موضوع در شهری مثل آمستردام بیشتر شبیه یک شوخی هست. در آمستردام امکان اینکه نتوانید ماشین خود را نزدیک محل زندگی خود پارک کنید بسیار زیاد است. همانطور که سعی میکنند بهینه خرج کنند، اما در پوشاک به شدت پرخرج هستند. به سختی می‌توانید یک هلندی با لباس نامناسب یا به اصطلاح خودمان بدتیپ پیدا کنید. البته قد و هیکل مناسب آن‌ها هم به شدت به این موضوع کمک میکند. (دخترها حتی از ۱ متر و ۸۰ ممکن است بیشتر باشند)سطح تحصیلطبق تحقیق من ۷۶ درصد مردم سطح بالای تحصیل رو به اتمام میرسانند. اما این سطح تحصیل به معنای دانشگاه نیست و معمولا مهارت‌هایی هستند که در یک کالج تدریس می‌شوند. خانوادههلند رتبه یک جهانی در بالانس بین کار و زندگی شخصی را دارد. هیچ کس مگر شغل‌های خاص بیشتر از ۴۰ ساعت کار نمی‌کند و بسیاری از افراد هم بعد از بچه دار شدن ساعات کاری کمتری را انتخاب می‌کنند. علیرغم اینکه میزان مرخصی برای خانم‌ها بعد از زایمان ۴ ماه است و به پدر تقریبا تعداد زیادی مرخصی نمی‌دهند اما بعد از به دنیا آمدن فرزند شما امکانات شما چند برابر میشود. از کمک هزینه سه ماهه تا پرداخت بخشی از هزینه مهدکودک (بسته به درآمد زوجین). نژاد پرستیدر بسیاری از مکالمات من با افراد، این موضوع سوال می‌شود. اما من تا به امروز مشکلی نداشتم و امیدوارم مشکلی هم در ادامه نداشته باشم. اما هر بار که این موضوع پیش آمده است تقریبا تمام همکاران و اطرافیان به شدت واکنش نشان داده‌اند. ایرانی بودندر این کشور افراد زیادی هستند که با ایرانی‌ها در ارتباط هستند یا حداقل یکبار از ایران چیزی شنیده‌اند. اما اطلاعات آن‌‌ها معمولا یا برای قبل از انقلاب ایران  و یا کاملا نادرست هست. حتی یکبار یک پیرمرد در بازار برای من از اعزام به ایران در جنگ حهانی گفت که البته به نظرم کمی غیر واقعی بود! اینجا به راحتی میشه به افراد اطلاعات غلط داد. برخی از اونها حتی فرق بین عراق و عربستان و ایران رو تشخیص نمیدن. گاهی اوقات برای توصیف بزرگی ایران حتما باید به جمعیت اشاره کنم تا بفهمند که چالش‌های ایران متفاوت هست. اروپایی‌ها هیچ تصوری از حجم تحریم‌‌ها علیه ایران و بعضا عملکرد نظام ج.‌ا ندارند. اطلاعات اونها کم و بیش توسط رسانه‌ها شکل داده میشه و بعد از قانون Travel Ban همه از مهر ایران در پاسپورت خودشون ترس دارند که باید به اونها تغییرات فعلی رو توضیح بدم اما به نظر تاثیری نداره. با تقریب بالایی بیشتر افراد نسبت به امنیت ایران شک دارند. وقتی از بعضی از تحریم‌‌های نرم‌افزاری براشون توضیح دادم تقریبا فکر میکردن دروغ میگم اما واکنش اونها جالب بود. به شدت نسبت به آمریکا و عملکردش جبهه گرفتند و نظرشون این بود که نباید یک کشور در دنیا این چنین قدرتی داشته باشه. (اما تو شهری که خیابون‌ها به نام رییس جمهورهای آمریکاست این حرف کمی عجیب هست. )اما در کل درسی که گرفتم و مهم هم بود این بود که ایران و ایرانی وجودشون در این جهان اونقدری که خودمون فکر میکنیم تاثیر گذار نیست. این حجم از خود بزرگ پنداری در ما ایرانی‌ها اصلا چیز خوبی نیست!جامعه ایرانی به شدت در این کشور از هم دور هست. علت‌های بسیاری داره که الان نمیخوام بهش بپردازم. فقط اگر ایرانی دیدید کاری به کارش نداشته باشید بذارید راحت باشه!!ساختار سیاسی و دولتبی‌اهمیت‌ترین موضوع تا اینجای کار، سیاست هست. مردم فقط نخست وزیر و خانواده شاهنشاهی رو میشناسند. در اکثر موارد هم به عملکرد همه نقد دارند و از کسی راضی نیستند. بقیه افراد کابینه دولت اصولا در هیچ جا دیده نمی‌شوند. دو عنصر مهم دیگه هم معمولا در مواقع مهم مثل سال نو و یا مناسبت‌های ملی ممکن هست در تلویزیون دیده بشوند اما چیز مهمی نیست که مردم در موردش با همدیگه صحبت کنند. دولت تلاش کرده که تمام زیرساخت‌های لازم رو به صورت کاملا شفاف ایجاد کند. تقریبا قانون به شدت ساده شده و می‌توانید اطلاعات لازم رو از طریق وبسایت‌های متعدد دولت پیگیری کنید. توهمات زندگی خارجی و ....از وقتی مهاجرت کردم، جملاتی نظیر اونجا که همه چیز ارزون هست بسیار به گوشم میخوره. اما واقعا اینطوری نیست. مساله اصلی اینجاست: اینجا همه چیز قابل دسترس هست و فقط پول و شرایط ممکن هست تاثیر گذار باشند. باید یادآوری کنم که اینجا مالیات میتونه تا ۵۰ درصد حقوقتون باشه و دولت اجازه پولدار شدن کسی رو نمیده پس فکر نکنید کسی میتونه اینجا ثروتمند بشه! هیچ کس اینجا راحت پول درنمیاره. باید تلاش کنید. منظور از تلاش کاری که در ایران اتفاق می افته نیست بلکه باید به خاطر مهاجر بودن دوبرابر تلاش کنید. هرچقدر انگلیسی شما خوب باشه انتقال احساسات و مسایل به شدت سخت هست. کلمات گویای همه چیز نیستند و هر کلمه اشتباه مسیر شما رو عوض خواهد کرد. اگر یک ایرانی قبل از شما اونجا بوده باشه همه بر اساس رفتار او نسبت به شما موضع خواهند گرفت. اعتماد به نفس شما حتی در ارتباط با افراد کمتر خواهد بود و اگر نتوانید درست مدیریت کنید آسیب جدی خواهید خورد.  اینجا بهشت نیست و همه اتفاقات فوق العاده نمی‌افته اما به عنوان کسی که سی سال در یک شرایط پر استرس زندگی کردم، آرامش اینجا رو با هیچ چیزی عوض نمیکنم. اما عشق به کشورم چیزی نیست که به این راحتی‌ها بشه ازش گذشت و نسبت به وضعیت فعلیش بیتفاوت بود. یادتون باشه که هر کسی به اینجا میاد باید زندگی ایران رو رها کنه و دوباره اینجا از صفر بسازه. برای بعضی‌ها مثل من آسونتر بوده و برای بعضی به شدت سخت‌تر. سعی خواهم کرد که اطلاعات این پست به روز رسانی شود. اما اگر شما هم نظر متفاوتی دارید در کامنت‌ها منتظر شما هستم!!  </description>
                <category>Jimmy Heller</category>
                <author>Jimmy Heller</author>
                <pubDate>Sun, 29 Dec 2019 04:24:58 +0330</pubDate>
            </item>
                    <item>
                <title>توانمندی‌های لازم برای یک جاوا کار حرفه‌ای</title>
                <link>https://virgool.io/@jimmyheller/java-development-requirments-xrhiv8puyhcn</link>
                <description>مقدمهدر چند سال گذشته به خوبی متوجه این موضوع شده‌ام که من یکی از خوش‌شانس‌ترین افراد بوده و هستم که به وسیله آدمهای با سواد و رفقای خوب تونستم کار خوب بدست بیارم. کار خوب یعنی اینکه پرورش پیدا کنی. همکار خوب یعنی پیشرفت کنی و پروژه خوب که از کوکایین هم بهتر عمل میکنه. این باعث شد تا یاد بگیرم چه چیزی، کی، کجا و چطوری باید استفاده بشه، این هم‌ یعنی تجربه خوب. حالا به جایی رسیدم که وطیفه خودم میدونم این تجربه رو با بقیه به اشتراک بذارم و به درخواست یکی از دوستان این مطلب رو‌ می‌نویسم با این هدف که چه چیزی یاد بگیریم تا بتونیم شغل مناسب و مورد علاقه مون رو پیدا کنیم. نکته: این مطالب رو به عنوان تعریف از خود نمی‌نویسم چرا که در اون حد نیستم لذا هر جا اشتباهی هست به پای دانش کم بگذارید و در کامنتها به من کمک بکنید.نکته: در این مطلب به موضوعاتی مثل Clean Code و DesignPattern و ... اشاره نکرده‌ام. در مطلبی جدا به این موارد اشاره خواهم کرد.java-10-logoگام اول؛ هدف تو زندگیتون اگر هدف نداشته باشید به هیچ جا نمیرسید، پس همیشه برای خودتون مشخص کنید که میخواهید به چی برسید لذا پیشنهاد میکنم قبل از هرچیزی یه جست و جو در خصوص موارد زیر و هم چنین محدودیت‌ها و چالش‌های هر کدوم انجام بدید. -برنامه نویس وب-برنامه نویس موبایل-برنامه نویس سیستم های embedded -برنامه نویس سیستم های واسط و سوییچ‌ها و سیستم‌های بنیادی و مرکزی (هر نرم افزاری که در سه دسته بالا نیستند و وظیفه سنگین پردازش های اصلی و ارتباط بین سیستم های دیگه رو‌برقرار میکنن، مثل سوییچ بانک) با این چهار دسته سعی کردم تمام شغل‌های موجود در بازار رو پوشش بدم. دو دسته اول پر طرفدارترین و دو دسته بعدی پولسازترین هستن. پس از الان بدونید ‌دنبال چی میگردید. من جزو دسته اول و چهارم هستم. من full-stack محسوب نمیشم چون فقط بخش هایی که لازم دارم رو برداشتم و دانش پیاده سازی خیلی از بخش‌های Front End رو ندارم.گام دوم؛ مشورت بگیریدبزرگترین چیزی که من رو تو چند سال گذشته عقب انداخته بود نداشتن یک فرد کاربلد در کنارم بود که می‌تونست هر لحظه بهترین مشاوره‌ها رو به من بده. اینکه چی رو یاد بگیرم، چه جوری انجامش بدم و کجا استفاده‌اش کنم بهتره. برای همین این خلا رو سعی کردم با شبکه‌های اجتماعی، اینترنت و دیدن ویدئوهای مختلف پر کنم. اما در نهایت هیچ چیزی جای یک فرد با تجربه رو نمیگیره. غربی‌ها در هر شرکت برای هر فردی یک Team Lead دارند که این وظیفه رو به عهده داره.خدا رو شکر الان شما راحت می تونید با زدن یک توییت به راحتی جواب اولیه رو دریافت کنید. هم چنین یادتان باشد که شما به عنوان یک تازه کار یا نیروی کمی با تجربه چیزی رو اختراع نخواهید کرد و تمام مشکلات معمولی قبل از شما حل شده‌اند، پس خوب جست و جو کنید. عضویت در گروه های خبری و یا پیگیری اخبار مربوط به JUG ها و هم چنین Java Champion ها به شدت می تواند به شما کمک کند. این افراد معمولا در هفته حداقل یک کنفرانس و یا پست وبلاگ منتشر می‌کنند که به شدت کمک کننده است. گام سوم؛ آگهی بخوانیدچه تازه کار باشید چه نباشید تنها مرجع شما برای اینکه چه چیزی امروز به عنوان نیاز محسوب می‌شود تنها از آگهی‌های مشاغل دریافت خواهد شد. به شخصه هفتگی یک ساعت مشاغل سایت های مختلف را دنبال میکنم و اگر تکنولوژی مهمی باشد که در آن سر رشته نداشته باشم حداقل چند جست و جوی ساده برای سر در آوردن از آن انجام خواهد داد. در حال حاضر برنامه نویس‌های جاوا باید یک یا دو زبان دیگه برنامه‌نویسی رو حداقل در حد تجربه با کد کار کرده باشند و قابل قبول نیست که بخوان از این مسولیت شانه خالی کنند.گام چهارم؛ شروع یادگیری زبان جاواپیدا کردن یک دوره آموزشی جاوا اصلا کار سختی نیست. کلاس، ویدئو، کتاب (که خیلی توصیه نمیکنم)‌ هیچ فرقی نمی کنند مهم این است که شما به راحتی و در سریعترین زمان ممکن یاد بگیرید مفاهیم اولیه چه هستند و چگونه باید استفاده شوند. در کلاس‌هایی که برگزار می‌کردم همیشه چند نفری بودند که به دنبال ریز دستورات و نحوه کار آن‌ها هستند. این غلط‌ترین شیوه آموزش می‌باشد. یادبگیرید که صبور باشید. اینکه یک دستور برای شما دقیق روشن نیست مهم نیست، مهم کلیت کار است که بدانید مثلا برای ایجاد یک کلاس چه مراحلی طی می شود. حال اینکه از کلاس دقیقا چه استفاده‌ای می‌شود برای مرحله بعدی است. نمیشود همه چیز را یکجا فراگرفت. صبور باشید. بیشتر از خواندن و دیدن و شنیدن، در کار ما انجام دادن اهمیت دارد. هر کدی که می بینید یکبار برای خودتان بنویسید. سعی کنید تغییرات کوچک را در آن اعمال کنید و تفاوت‌ها را ببینید. برخی مواقع با تغییر یک خط کد کل برنامه از کار می افتد و این یک تجربه بزرگ برای شما خواهد بود. اما یادتان باشد که با این کار وقت تلف نکنید.همه شما اول از همه باید بدانید که JavaSE اولین چیزی است که باید فرابگیرید. تمام آن چیزی که برای ادامه کار لازم دارید همین است. بعد از آن تحقیق کنید که بقیه بخش های مرتبط به آن چیست به عنوان مثال JavaEE یا همان JEE که به تازگی تغییرات بسیاری در آن رخ داده است. افرادی که می‌خواهند برنامه نویسی موبایل (آن هم فقط بر روی سیستم عامل اندروید را یاد بگیرند)‌تنها لازم دارند JavaSE را بلد باشند. باقی مطالب در دوره‌های آموزشی اندروید به شما آموزش داده خواهد شد.گام پنجم؛ چه چیزی را اول یادبگیریمهمانطور که گفتم اول باید JavaSE را یادبگیرید. اما تمام JavaSE به چه کاری خواهد آمد ؟ تنها موارد زیر را درک کنید،‌ منظورم از درک این هست که بتوانید وقتی کد دیگران را میخوانید آن را ترجمه کنید و خروجی آن را در ذهن ایجاد کنید. اکثر شاگردهای من بعد از پایان دوره همچنان فرق بین Class و Instance را نمیدانند. در واقع آن‌ها درک درستی از این دو پیدا نکرده‌اند. پس مفاهیم شی‌گرایی (Object Oriented) را نیز نمی‌توانند به درستی پیاده سازی کنند.  وقتی هم که نتوانند، خب برنامه نویس جاوا نیستند ! پس به ترتیب یاد بگیرید:مراحل نصب جاوا و اصلا jdk چیست و چه چیزهایی را شامل می‌شود؟چگونه جاوا را به سیستم عامل معرفی کنیم تا از طریق command line و یا shell به آن دسترسی داشته باشیم (جست و جو کنید : how to add java to path)چگونه از intellij استفاده کنیم (محیط یا ابزاری برای نوشتن و اجرای کدهای شما بدون خون ریزی، تفکر کد زدن در notepad برای احمق‌ها است)چگونه در intellij جاوا را معرفی کنیم  ؟یک پروژه ساده را در intellij چگونه میسازیم ؟ یک کد ساده hello world پیدا کنید و بعد توضیحات آن کد را بخوانیدبعد مفاهیمی مثل متغیر، عملگرها، نحوه نوشتن شرط و کنترل روند برنامه (همان If/else و for اول کار یاد بگیرید کارتون راه می افته بقیش کاری نداره)، چگونه در consoleیک متن را چاپ کنیم؟لطفا به فکر گرفتن ورودی از کاربر تا اینجای کار نباشید! صبور باشید. حالا میرسیم به شی‌گرایی، شی‌گرایی را از روی کد یادنگیرید، از روی مفاهیم انتزاعی بفهمید. جوری بفهمید که وقتی به شما گفتن میخوایم یک سیستم انبار داری بنویسیم، هر چیزی در ذهن شما یک شی باشد و بتوانید آن را دسته بندی کنید. این موضوع آنقدر مهم است که همه افرادی که نتوانستند برنامه‌نویسی را ادامه دهند در واقع نتوانسته‌اند شی‌گرایی را درک کنند. (تقریبا درصد بالایی از فارغ التحصیلان مهندسین نرم افزار مملکت). مفاهیم کلاس، آبجکت‌ها،  متدها (تفاوت با فانکشن)، propertyها از همه مهم تر هستند. مفاهیمی مثل ارث بری و چند ریختی ها مفاهیمی هستند که در اول کار فقط یاد بگیرید که اگر اتفاق بی افتند چه تغییری در کد ایجاد میشه وگرنه شما تا زمانی که مبتدی هستید فضایی برای استفاده از اونها ندارید. (علت اینکه توصیه به کتاب نمی کنم این است که در کتاب‌ها به شدت روی این موضوعات صحبت شده است و گاها تا 10 فصل اول شما حتی یک کد ساده را نیز نمی‌تواند بنویسید) به مرور در کدهای دیگران و استفاده از فریم‌ورک‌های دیگر درک خواهید کرد که چه اتفاقاتی خواهد افتاد. همچنان صبور باشید.حالا شما می تونید ادعا کنید که نزدیک به برنامه نویسی هستید. بعد از فراگیری این موارد می‌توانید کدی بنویسید که خروجی داشته باشد و احیانا در console متنی را نمایش بدهید. مفاهیمی مثل کار با فایل، برنامه نویسی در سطح شبکه (چی هست اصلا این ؟:))‌ ) ، کتابخانه‌های گرافیکی (swing , javafx) رو حداقل تا مراحل بعد  بیخیال شوید. این‌ها فقط برای پر کردن کلاس‌های آموزشگاه استفاده می‌شوند. همه این موارد زمانی که نیاز داشته باشید برای شما چالش مناسبی خواهند شد اما الان وقت آن نیست.به سرعت یک دیتابیس را فرابگیرید. آسانترین آنها mysql می‌باشد (اگر تحریم مانع شما می شود MariaDb استفاده کنید) . نصب ساده، پشتیبانی مناسب به شما کمک خواهد کرد. در همین حین دستورات اصلی اسکریپت sql را هم بیاموزید. select, insert, update,delete دستورات اصلی شما هستند. باقی کارها را به نرم‌افزارهای ارتباط با دیتابیس مثل workbench بسپارید. بعدتر دستوراتی مانند Alter و ... که معمولا DBA ها از آن بیشتر استفاده میکنند به خودی خود برای شما دردسر ایجاد خواهند کرد.افرادی که از command line استفاده میکنند شاید خفن به نظر بیایند اما کار خاصی انجام نمی‌دهند، این افراد دو حالت دارند یا ابزار گرافیکی دوست ندارند یا دستورات مورد نظر را فقط باید در console نوشت که طبعا شق القمر نیست. حرفه‌ای تر که بشوید میفهمید. قبل از ارتباط با دیتابیس و نحوه استفاده از آن باید بدانید یک کتابخانه در جاوا چیست. jar فایل چه کار میکند. بعد باید یاد گرفت که چگونه یک کتابخانه را در پروژه خود اضافه کنیم و از کدهای آن استفاده کنیم.به وسیله کتابخانه jdbc باید بتوانید به هر دیتابیسی متصل شوید. sql statement ها را اجرا کنید و تفاوت بین statement و prepared-statement را بدانید. مفهوم resultSet را بشناسید و برای امتحان یکبار از delete و update هم استفاده کنید. در همین حد کفایت خواهد کرد. (اگر خیلی مایلید با این کتابخانه کار کنید کتاب JDBC4 چاپ شده است که در فصل اول همه این موارد توضیح داده شده.)همینجا یک لحظه درنگ کنید. شما تنها نباید کد یاد بگیرید. باید بدانید ابزارهای راحتی کار چه چیزهایی هستند و ارتباطات برنامه نویسی به چه صورت شکل می‌گیرند. پس اول از همه نحوه استفاده از ابزار maven را یاد بگیرید. با توجه به اینکه می‌دانید یک کتابخانه چیست باید بتوانید یک پروژه ساده را به وسیله maven مدیریت کنید. این مدیریت در حد دانلود فایل‌های کتابخانه پروژه باشد، کفایت می‌کند چرا که باقی کارها را intellij برای شما انجام می‌دهد.اگر بتوانید قبل از ادامه تحقیق کنید که git چیست، چه کارهایی انجام می‌دهد و دستورات clone,fetch,pull,push,status را یاد بگیرید عالی خواهد بود. با توجه به اینکه کلی ابزار برای مدیریت سورس ها توسط git وجود دارد خودتان را دستورات shell درگیر نکنید. من بلد نیستم اما هیچ وقت هم مشکلی ندارم چون میدانم که هر دستور یعنی چی اما استفاده از آن را به intellij و github desktop واگذار کرده‌ام. بدانید یک repository چیست، دستورات clone, status, fetch, pull, push, statsh, commit, merge, branch تقریبا نیازهای اولیه شما را برطرف میکند.حالا می‌توانیم به برنامه‌های بهتری فکر کنیم. هنوز خیلی چیزها هست که فرا نگرفته‌اید اما نترسید فقط ادامه بدهید.گام ششم؛ برنامه نویسی Enterpriseتا اینجا، کار با خیلی از موارد را فراگرفته‌اید، حداقل ۲ ماه زمان لازم دارید تا موارد قبلی را خوب بخوانید. غرق نشوید. مسیر را آهسته و پیوسته ادامه دهید. یک دریای وسیع با عمق کم بسیار بهتر از یک چاه با عمق ۱۰۰ متر است.اصل کار جاوا تولید نرم‌افزار با مقیاس بزرگ است. یعنی چه؟ این بدان معناست که اگر قرار است نرم ‌افزار تولیدی شما دارای تعداد بسیاری کاربر باشد، حجم زیادی از داده را مدیریت کند، بار بسیار زیادی در پردازش تولید کند، در سطح چند کامپیوتر (سرور) توزیع شود، در فضای ابری کار کند و دلایلی  از این دست (یکی از آن‌ها می‌تواند کفایت کند)، شما می‌توانید از جاوا استفاده کنید. در غیر اینصورت پروژه یا زبان اشتباهی را انتخاب کرده‌اید. استاندارهای JEE برای همین تولید شده‌اند. یادمان باشد که این‌ استانداردها برای این هستند که هر برنامه‌نویسی به شکلی کد تولید کند که دیگران نیز از آن سر در بیاورد. از اینها :مفاهیم Servlet, Servlet Container, Application Server, Session Object, Request Object, Response Object , حالا سعی کنید یک برنامه ساده که از طریق کدهای HTML ورودی بگیرد، برای servlet ارسال کند و از این طریق داده‌ها را در دیتابیس ذخیره کنید. حالا شما یک برنامه تحت وب دارید. در حال حاضر به فکر ایجاد امکانات نباشید. در همین حد هم کاری زیادی خواهید کرد.قبل از اینکه ادامه بدهیم باید گریزی به مفاهیم خارج از JEE بزنیم. نوبت این است تا با ORM آشنا شویم. برای این موضوع هم باید اول یاد بگیرید که چگونه از طریق یک کتابخانه، Frameworkتولید می شود بعد به سراغ Hibernate بروید. به وسیله Maven می‌توانید به راحتی کتابخانه‌های خود را مدیریت کنید. برای استفاده از Hibernate باید مفاهیم Object Oriented را به خوبی فراگرفته باشید تا بتوانید هر جدول را به صورت یک شی در کد خود مدیریت کنید. تنها یاد بگیرید که چگونه یک کلاس به یک جدول مرتبط می‌شود، ارتباط با دیتابیس چگونه است و نحوه ذخیره و واکشی داده چگونه است. در مرحله بعدی پیاده سازی یک رابطه یک به یک، چند به یک یا برعکس را پیاده سازی کنید. این موارد ممکن است زمان زیادی را بگیرد اما باید بدانید که در تمام پروژه‌های آینده با این فریم‌ورک سر و کار خواهید داشت. دقت داشته باشید که حتما از Annotation ها استفاده کنید و از تنظیمات XML پرهیز کنید.حالا که بلدید با Hibernate کار کنید چطور است که کمی حرفه‌ای‌تر شویم و از JPA هم سر در بیاوریم. بعد از کمی تحقیق می فهیمد که همان Hibernate را دارید با یک لایه بیشتر امتحان میکنید و چیز عجیبی نیست.کمی برای EJB زود است صبر کنید.پیش از این با یک کد HTML و ساختن فرم ها توانستیم یک ورودی از کاربر بگیریم و وارد دیتابیس کنیم. حالا چطور است از JSF استفاده کنیم و قابلیت AJAX را به نرم افزار تحت وب خود اضافه کنیم؟ این Framework به شما قابلیت ایجاد نرم افزارهای تحت وب با قابلیت ها خیلی خوب را می‌دهد. می توانید JSF که به ظاهر فقط از کدهای HTML استفاده میکند و ظاهر بسیار زشتی دارد را با هر چیزی که می خواهید ترکیب کنید اما Primefaces تنها چیزی است که با آن به خوبی سازگار می شود. همه اینها را در یک پروژه ساده استفاده کنید و قابلیت‌ها بشناسید. صبر کنید تا مراحل بعدی را به شما معرفی کنم و اگر همچنان خواستید به JSF بازگردید.من از JSF و Primefaces بدم می‌آید. علت ؟ دلم می خواهد. دلیل منطقی برای آن در سطح شما نیست. از یکجایی به بعد تمام تلاشم را بر روی Javscript و یاد گرفتن تکنولوژی‌های Front گذاشتم. یاد گرفتم که از jQuery استفاده کنم و درخواست های UI به سرور را مدیریت کنم. بعد از آن Bootstrap یاد گرفتم. (تمام این ها را در یک پروژه سنگین بانکی یاد گرفتم که تنها یک نفر باید همه آن را انجام میدادم. این پروژه سال 94 انجام شده.) متوجه شدید که حالا وارد فضایی از تکنولوژی می‌شویم که برای پیاده سازی یک پروژه نه یک انتخاب بلکه چند انتخاب داریم و این کار را سخت میکند. اما تحقیق و مطالعه همیشه راهکار حل مشکل است. بروز باشید. شاید جالب باشد بدانید امروز دیگر از هیچ کدام استفاده نمیکنم و از materializeCSS و AngularJS استفاده میکنم.وقتی از JSF استفاده نمی کنید پس باید چیزی جای آن را بگیرد، پس سرویس‌های Rest را پیاده سازی کنید. کتابخانه های Jersey و RestEasy (درست نوشتم؟) را یاد بگیرید. از نسخه 1.9 jersey شروع کنید چرا که راحت تر و مقاله بیشتری برای آن تولید شده است. مفهوم MVC را حالا باید بدانید.بعد از این درس حالا با مفهوم وب سرویس آشنا هستید، یک سرویس SOAP چطور است؟ چگونه از آن استفاده کنیم؟ فرق آن با API را باید حالا بدانید.حالا شما می‌توانید نرم افزاری بنویسید که با کاربر در تعامل است. توسعه دهنده‌های جاوا دو دسته هستند، دسته اول EJB یاد میگیرند، دسته دوم با Spring کار میکنند. بعضی‌ها مثل من مجبورند هر دو را بلد باشند. دسته اول دنبال روی JEE هستند و دسته دوم فقط از مفاهیم JEE سر در میاورند و بعد از مدتی دیگر از مفاهیم اولیه آن استفاده نمیکنند و کار را تمام به Spring میسپارند. دسته اول اصولا مجبور به انجام تنظیماتی بیشتری هستند اما نه آنقدر زیاد که نتوانند کار کنند. حداقل از نسخه 6 به بعد. اما دسته بعدی....گام هفتم؛ Spring Bootزمانی بود که ما مجبور بودیم تمام عملیات‌های طاقت فرسا را تنظیم و بعد مدیریت کنیم. اما Spring Boot تمامی این دردسرها را پایان داده است. این پلتفرم اجازه می‌دهد تا شما تنها به کدهای مورد نیاز نرم افزار بپردازید و مسایلی مانند ارتباط با دیتابیس، مدیریت حافظه و ... را بهتر در اختیار خود گرفته (اجازه نمیدهد ما خرابکاری کنیم). در نتیجه امروز پروژه‌های بسیاری بر روی این پلتفرم ایجاد می‌شوند و از همه مهم‌تر اینکه ساختارهای Cloud که آینده را می‌سازند نیز از این فضا برای پیشبرد پروژه‌ها کمک میگیرند. من Spring Boot را با آموزش 4 ساعته‌ای که در سایت TreeHouse بود و از P30download دانلود کردم، یاد گرفتم و هر بار که نیاز به موضوع جدیدتر داشته باشم به مثال‌های خود Spring Boot مراجعه میکنم. بعد از این مرحله شما با Spring MVC, Spring IOC, Spring Security, Spring Data تقریبا آشنایی اولیه را خواهید داشت.من تمام پروژه‌های جدید را با این ساختار تولید میکنم.موارد دیگردستورات لینوکس را در حد ابتدای بشناسیداز JMS حداقل یکبار استفاده کنیداز JSON تا الان باید استفاده کرده باشیددیتابیس‌های دیگر مثل Mongo و oracle را هم امتحان کنید.از Freemarker برای مدیریت صفحات وب استفاده کنید (حداقل یکبار تا بدانید templating چیست)و البته هزاران ابزار و کتابخانه دیگر که شما می توانید یاد بگیرید و من اگر بنویسم این مطلب انتها نخواهد داشت.اما مهم تر از همه این است که شما معماری‌ها را نیز بشناسید.تفاوت‌های ساختاری و نحوه قرارگیری هر ماژول در کنار هم را بدانید. integration Point های یک مجموعه را بشناسید. نحوه مستند سازی را بیاموزید و هم چنین یاد بگیرید که چگونه از کد دیگران استفاده کنید. نتیجه‌گیریخیلی از موضوعات بود که اینجا حتی اشاره نکرده‌ام، این موضوعات چیزهایی هستند که شما تنها با کار و تجربه به آن خواهید رسید. شاید خیلی‌ها با من موافق نباشند و عقیده داشته باشند که باید کتاب‌ها را از سر تا ته بخوانیم. الگوریتم‌ها را حفظ کنیم و بدون اینترنت کد بزنیم. من اینطوری کار نکرده‌ام و بلد هم نیستم. خنده‌دار شاید باشد، اما این‌ها تمام چیزی است که لازم دارید تا بتوانید نرم‌افزارهای ساده و اولیه را تولید کنید. در حین کار متوجه خواهید شد که بسیاری از موارد را لازم دارید، کار با فایل، استفاده از کتابخانه‌هایی که دیگران نوشته‌اند، خواندن stackOverflow و شاید ده ها مطلب دیگر که حتی یک خط در مورد آن ننوشتم. من چند قانون را همیشه رعایت میکنم. 1- ساده فکر میکنم. 2- قبل از حل مشکل اول به سراغ دومی نمیروم.3-- اول ورژن ساده‌ای که قابلیت برطرف کردن نیاز مشتری را دارد ارایه می‌دهم بعد آن را بهبود می‌دهم. یکجا هیچ سیستمی را نمی‌توان عرضه کرد.4- دنبال راه‌هایی که قبلا جواب داده‌اند میروم و هر وقت در آن‌ها حرفه‌ای شدم راه خودم را میسازم.5- برای یاد گرفتن یک موضوع ساده‌ترین کدی که من را به نتیجه دلخواهم می رساند به صورت مستقل امتحان میکنم و بعد در نرم افزار از آن به صورت یک ماژول استفاده میکنم. 6- وقتی چیزی کار نمی‌کند، مسیر را عوض میکنم و یا آن را باز بینی می‌کنم. 7- در نهایت، هرگز شاخ نمی شوم و فکر نمیکنم که من ته دنیا هستم. فقط یکبار به این فکر کنید کسی که سیستم عامل لینوکس را تهیه کرده حتی یک درصد از ابزهای شما را نداشته و یا اینکه چیزی که بقیه تولید کرده‌اند گاها شما در استفاده از آن مشکل دارید و نمیدانید چه قابلیت‌هایی دارد.هر کدام از بندهایی که نوشتم حداقل چند روزی (اگر تیز باشید) شما را درگیر خواهد کرد. در ابتدای کار سعی کنید شکیبا باشید. هیچ کس با یک ماه و دو ماه نمی تواند این مطالب را یاد بگیرد. من یکسال طول کشید تا توانستم خودم یک نرم افزار را از صفر بنویسم و تازه کلی از کدهای آن کپی شده از پروژه‌های دیگران بود. این مطلب ممکن است به روز شود. </description>
                <category>Jimmy Heller</category>
                <author>Jimmy Heller</author>
                <pubDate>Tue, 15 Jan 2019 15:19:04 +0330</pubDate>
            </item>
                    <item>
                <title>چرا پیدا کردن یک برنامه نویس Java سخت شده است</title>
                <link>https://virgool.io/@jimmyheller/java-developer-is-gold-cyztilt2mg0x</link>
                <description>مقدمه در سری مقالات مربوط به Java قصد دارم تا آموزش در این زمینه بیشتر از پیش به روش انتقال تجربه و دانش ارتقا پیدا کند. در حال حاضر به عنوان مدیر فنی و البته همچنان برنامه‌نویس مشغول به کار هستم. می توانید برای ارتباط با من از jimmyheller@ در توییتر استفاده کنید.  بسیاری از مطالب را برای اینکه ساده سازی کنم خلاصه و تنها به صورت سطحی به آن‌ها اشاره می کنم تا چالش جدیدتری ایجاد نکنم. ممکن است شما یک جاوا کار حرفه‌ای باشید، پس خوشحال خواهم شد تا نظرات شما را هم در این مقالات اعمال کنم.  در این مقاله به این خواهم پرداخت که چرا با گذشت زمان بسیار زیادی که Java به عنوان یک زبان بسیار مهم در برنامه‌نویسی مطرح شده، هنوزتعداد برنامه نویس‌های Java بسیار کمتر از نیاز می‌باشد. برای این کار ابتدا شکل و نحوه آموزش افراد را بررسی خواهم کرد و سپس راه حلی جهت بهتر شدن اوضاع ارائه خواهم کرد. سیستم آموزش در Javaبه صورت مستند شده Java در دو ویرایش (بیشتر از این است اما فعلا با همین دو تا راضی شوید) ارائه می‌شود، JavaSE و JavaEE که بخش اول تمامی اجزای مورد نیاز برای برنامه نویسی در زبان جاوا را دارا می باشد. اما حقیقتا با یادگیری آن تنها می‌دانید که زبان برنامه نویسی جاوا چگونه کار می کند و چگونه در آن باید کدها نوشته شوند. بسیاری از مبتدیان همان ابتدای کار این زبان را رها می‌کنند چرا که باید قبول کنیم زبان آسانی نیست. اما نکته مهم‌تر اینجاست که حتی با یادگرفتن JavaSE هم شما تنها نیمی از راه را رفته‌اید. بخش بسیار مهم کار و در واقع به قول قدیمی‌ها پول، در JavaEE می‌باشد. این بخش که جدیدا قرار شده تا JEE نامیده شود، مجموعه‌ای از تمام قوانین، چارچوب (؟) ها و اصطلاحا specification هایی است که یک برنامه نویس جاوا باید بداند و از آن ها استفاده کند. در خصوص اینکه چگونه از آن ها باید استفاده کنیم بعدتر توضیح خواهم داد. آموزش Java در ایرانخوشبختانه در سالهای اخیر آموزش Java در ایران بسیار فراگیر شده است. به خاطر دارم که سال 90 وقتی اولین کلاس خودم را برگزار می کردم هنوز کلاس‌های برگزار شده در تهران به تعداد انگشت‌های دست نمی‌رسید. اما امروز حتی کلاس‌های آنلاین و ویدئویی نیز برگزار می شود که این خود مایه مباهات است.اما قسمت بد ماجرا آنجاست که تمام دانش آموخته‌های جاوا تنها همان بخش JavaSE را آموخته‌اند. دوره‌های پیشرفته‌ای هم که در حال حاضر برگزار می‌شوند افراد را برای محیط کار آماده نمی‌کنند. منظور از آمادگی تنها دانش و تکنولوژی‌ها نیست، بلکه بسیاری از موارد غیر درسی و معنوی در این موضوع دخیل می‌باشد. آماده نبودن برای بازارکارهمانطور که گفتم در تمامی دوره‌هایی که تا به حال برگزار شده‌اند بیشتر بر وجه ارائه کردن دانش به دانشجویان تاکید شده اما هرگز به آن‌ها استفاده کاربردی و یا توضیح شرایط بازار کار داده نمی‌شود. از همین جهت تمامی این افراد با چند مصاحبه اول خود سرخورده و در نتیجه انگیزه تلاش برای ادامه را از دست می‌دهند.در یکی دو سال گذشته بیشتر افرادی که برای استخدام به من مراجعه می‌کردند به آموزشی که در کلاس مورد نظر خود دیده بودند بسیار می‌بالیدند، اما با چند سوال ساده میتوانستم موجه شوم که او بیشتر از کلاس خود تلاش نکرده و تنها در حال تکرار موارد کلاس خود می‌باشد. این موضوع ناشی از آن است که اصولا در کلاس‌ها اساتید تذکری مبنی بر اینکه آنچه در این کلاس می‌آموزید تمام علم نیست، نمی‌دهند. طبیعتا دانشجو نیز برای یافتن مطالب بیشتر نیاز به راهنمایی دارد که این راهنمایی هم صورت نگرفته. به همین دلیل در جامعه برنامه‌نویسی مواجه هستیم با تعداد زیادی از افرادی که جاوا را آموخته‌اند، اما در هنگام مصاحبه ناتوان هستند. چرا که مصاحبه کننده از یک فضای حرفه‌ای و در واقع در راستای نیاز کاری خود طرح سوال می‌کند اما فرد مصاحبه شونده برای این محیط آموزشی ندیده است. آفت دیگر کلاس‌های آموزشی به وجود آوردن حس غرور در دانشجویان می‌باشد که متاسفانه این بدترین نوع آموزش می‌باشد. بعد از پایان دوره فرد یادگیرنده، تصور دارد که هیچ موضوع دیگری نیست که او نیاز به یادگیری داشته باشد. به همین دلیل همه مسایل را از بالا به پایین می بیند که خب نتیجه آن هم مشخص خواهد بود.مسایل مالیاما همه موارد بالا شاید آنقدر در نتیجه تاثیر نداشته باشند که عامل مالی تاثیر داشته باشد. با توجه به شرایط مالی کشور تمامی دانش آموخته‌های دانشگاه‌های کشور با یک نا امیدی اولیه فارغ التحصیل می‌شوند. همه آن‌ها تصوری از بازار کار واقعی ندارند و دوست دارند تا در اولین کار خود با حقوق مناسبی شروع به کار کنند اما غافل از اینکه مانند آن‌ها و با سطح دانش آن‌ها کم نیست. من به عنوان یک برنامه نویس دو سال اول کار خود را تقریبا رایگان کار کردم تا بتوانم تجربه کسب کنم. بعد از این مدت هم با حقوق نازلی ادامه کار دادم و در سال‌های بعد هرچقدر که تجربه و توان فنی‌ام زیادتر می‌شد، توان چانه‌زنی من نیز به همین ترتیب افزایش پیدا می‌کرد. اما این موضوع باعث می‌شد تا من همیشه اعتماد به نفس خوبی در خصوص توانایی‌های خودم داشته باشم. خیلی از افرادی که برای مصاحبه به شرکت ما آمدند، بعد از مراحل فنی (با اینکه به آن‌ها اعلام کردم که از لحاظ فنی شاید چندان تجربه‌ای نداشته باشند) در خصوص حقوق و مسایل مالی شدیدا محافظه کار و غیرقابل مذاکره نشان دادند. البته که این موضوع ربطی به آموزش‌های جاوا نداشته و باید فرهنگ تلاش و ممارست در کشور تقویت شود. مشکل کار با باتجربه‌هاپاراگراف‌های قبلی در خصوص افرادی بود که به تازگی آموزش دیده‌اند اما در کشور ما کم نیستند افرادی که دانش و تجربه کافی برای احراز یک پست برنامه نویس Java را داشته باشند. چه بسا در حال حاضر کشور ما در حوزه‌های مهمی مانند بیمه، بانکداری، دولت الکترونیک و .... مدیون این افراد باشند. پس مشکل کار کجاست؟آن‌ها سر کار هستند!!!بله، در شرایط فعلی برنامه نویس خوب مشغول به کار است و کارفرما هم به راحتی او را از دست نخواهد بود و گاها مواردی در شرکت‌های کوچکتر بوده است که افراد فنی از مدیرمالی نیز حقوق بیشتری دریافت کرده‌اند! راه حل مشکلطبق معمول راه حل مشکل در آموزش می‌باشد و لاغیر! تمامی اساتید و افرادی که در این حوزه فعالیت می‌کنند به خوبی می‌دانند که فضای کسب و کار امروز به چه شکل می‌باشد. درست است که تعداد جای خالی افراد در شرکت‌ها در حال حاضر مناسب می‌باشد اما هنوز هم تعداد افراد متخصصی که بتوانند کارفرمایان را جهت دریافت شغل مورد نظر ترغیب کنند کم است. افرادی هم که در این قسمت موفق شوند آنقدر مبلغ بالایی درخواست میدهند که تقریبا باید از استخدام آن‌ها صرف نظر کرد. پس باید بتوانیم با آموزش در هر دو قسمت تعادل مناسب را ایجاد کنیم. دانش خوب به همراه توقع مناسب از وضعیت مالی، شاید بتواند راه حل مناسبی باشد. </description>
                <category>Jimmy Heller</category>
                <author>Jimmy Heller</author>
                <pubDate>Sat, 03 Feb 2018 14:54:13 +0330</pubDate>
            </item>
            </channel>
</rss>