چهار ماه بعد از مهاجرت

نمی‌دونم به این هم میگن مهاجرت یا نه ولی تقریبا چهار ماه پیش به یه شرکت انگلیسی توی منچستر پیوستم و اومدم اینجا. تمام کارهای ویزا و غیره به همراه هزینه‌هاش رو هم خود شرکت انجام داد.

اینکه چرا زودتر از ایران نرفتم بر میگرده به سربازی. چون سربازی وقت تلف کردن محض بود و من رو از کار و زندگی می‌انداخت، تصمیم گرفتم نرم به امید اینکه وقتی سنمون بره بالا یا میفرشون یا معاف میشیم (استدلالم این بود که چون متولدین ۱۳۶۴ جمعیتشون از همه بیشتره این اتفاق میفته). خوشبختانه این اتفاق سال ۹۴ افتاد و من هم سربازی رو خریدم. اولین شرکت خارجی که اپلای کردم همین شرکت کیک بود که توی کامیونیتی اسکالا شناخته شده است. بعد از چند جلسه مصاحبه و ارزیابی و تمرین که جالب و حرفه‌ای بود اوکی دادن و رفتنی شدیم.

تو این چند وقته میخواستم به طور کلی از مشکلاتی که توی ایران هست بنویسم که باعث مهاجرت اکثر افراد متخصص یا کسانی که توانش رو دارن شده. مخصوصا اذیت و آزارها و رنج‌هایی که به ما میدادن. ولی به نظرم بی فایده ست. به جاش فکر میکنم خوب باشه که اینجا رو با ایران مقایسه کنم و در مورد جزئیات اینکه چطور و چرا زندگی در اینجا متفاوت از ایرانه بنویسم.

جامعه

شاید چهار ماه زمان زیادی نباشه ولی اتفاقا روزهای اول بیشترین برخورد و بیشترین نیاز به ارتباط با جامعه و آدمها رو داریم. برای حساب باز کردن، تلفن، گرفتن خونه، وسائل و غیره. بارزترین ویژگی رفتاری که از مردم اینجا در مقایسه با  ایران دیدم؛ صداقت، خوش رویی، آرامش، عدم پیچیدگی، و دوباره صداقته. نمیدونم شاید بخاطر وجود قانون خیلی محکم و عواقب شدید جرم باشه ولی صداقت و عدم پنهانکاری و پیچیدگی بارزترین چیزیه که اینجا میبینم.

مثال زیاده ولی من خرید رو مثال میزنم؛ اگر بعد از خرید یه چیزی نظرتون عوض بشه، دقت کنید نه اینکه اشتباه کرده باشید یا هرچی، صرفا یه دفعه دلتون خواسته یه چیزی رو پس بدید یه چیز دیگه بگیرید. در این صورت به راحتی این کار رو براتون انجام میدن. اگر قرار باشه پس نگیرن خیلی روشن و واضح بهتون اطلاع میدن یا یه برچسب گنده یه جای تابلو زدن که به علت فلان مساله مثلا اگر بسته بندی رو باز کنید نمیشه دیگه پسش بدید. حتی تجربه من اینطوری بود که حتی هزینه حمل مجدد و پس گرفتن و این چیزا رو هم ازم نگرفتن! جالب اینجاست که وقتی با دوستای انگلیسیم این رو مطرح کردم که از این کیفیت خدمات خوشم میاد در جواب میگن خوب باید اینطوری باشه! ولی توقع من اینه که اگر کلاه سرم نذارن یعنی عالیه! جالبتر اینکه این موضوع برای من و دوستان ترک، آرژانتینی و هندیم هر چهار نفر جذاب بود. میخوام بگم توی خیلی از کشورهای دیگه هم این رضایت مشتری وجود نداره.

چیزهای دیگه‌ای هست که ربطی به قانون نداره مثلا وقتی با یکی چشم تو چشم میشید ۹۰ درصد اوقات لبخند تحویل میگیرد. خبری  از تیکه انداختن و زل زدن و نگاه‌های سنگین و برداشت‌های عجیب و غریب و اینها نیست و مهم نیست چه پوشش و ظاهر و چه جنسیتی داری!

اینکه خیلی‌ها میگن خارجی‌ها، مخصوصا انگلیسی ها سردن و همیشه تو لاک خودشون هستن، اشتباهه. مثلا وقتی یه مادر با بچه‌های قد و نیم قدش میاد تو اتوبوس و بچه‌ها ونگ ونگ میکنن، عکس‌العمل مخصوصا پیرترها لبخند و شادی و کلمات محبت آمیزه. یا مثلا روزهای تعطیل تو اتوبوس پر از صدای خنده و شادی و انرژی مثبت و آرامشه. انگار یه عده دوست هستیم که با هم داریم میرن گردش! واقعا نمیدونم چرا!؟ ولی در عین حال هیچ خبری از قضاوت و فضولی نیست. در کل تو خیابون و تو وسائل نقلیه عمومی اینجا کاملا احساس میکنم تو خونه خودم هستم. به این نتیجه رسیدم که منظور مردم از سرد بودن خارجی‌ها عدم قضاوت و فضولی تو کار همدیگه ست.

قانون

قانون اینجا یه چیز کشکی نیست که چند نفر که معلوم نیست چه سطحی از سواد دارن دور هم تصویبش کرده باشن یا خیلی هم قشنگ و شیک باشه ولی اجرا نشه. موقعی که قانون رو تصویب میکنن اول به این فکر میکنن که آیا این قانون قابل اجراست و توسط مردم به سخره گرفته نمیشه. قانون اینجا به شدت قوی و با پشتوانه هست. کاملا منطقی و قابل اجرا ست و حتی بیشتر مواقع از اجراش لذت میبرید و لمس میکنید که دارید یه کار درست و مفید انجام میدید.

یه مثال جالب لایسنس تلویزیون هست. کلا هیچ مکانیزم بازدارنده‌ای نیست. فقط وقتی میرید به آدرس جدید، براتون یه نامه میاد که شما لایسنس تلویزیون ندارید یا لایسنس بخرید یا تلویزیون تماشا نکنید. اگر بدون لایسنس تلویزیون تماشا کنید، جریمه سنگینی داره. ممکنه مامور بفرستن در خونه تا بیاد ببینه آیا شما تلویزیون نگاه میکنید یا نه (که البته تا وقتی حکم دادگاه نداشته باشه می‌تونید راش ندید داخل). یه مثال دیگه؛ اگر سگ شما هر جایی دستشویی کنه و شما دستشوییش رو بر ندارید (براش هزار مدل ابزار و دستگش و فلان هست) تا دو هزار پوند (معادل نزدیک ده میلیون تومان) جریمه میشید! اینجا عاشق سگ هستند می‌تونید تصور کنید اگر این قانون نبود خیابون‌ها چه وضعی داشت.

یه چیز دیگه که اولش برای ما ایرانی‌ها سخته ولی من خیلی ازش خوشم اومد، تفکیک زباله‌ست. دوباره قانون محکم و جالب؛ هر خانوار فقط یک سطل مشکی رنگ نسبتا بزرگ ( تقریبا یک سوم اون سطل‌ بزرگها که شهرداری میذاره تو خیابونا) داره. در عوض یه سطل سبز رنگ هست که ته مونده غذا و اینطور چیزا رو توش میریزید که ازش کود کومپوست بازیافت میکنن. دو تا سطل دیگه به رنگ‌های قوه‌ای و آبی هست که برای بطرها و شیشه‌های و کاغذ و مقوی و اینطور چیزهاست. هر چیزی که نشه بازیافتش کرد میره تو سطل مشکلی. جالب اینجاست که از سطل‌های رنگی (بازیافتی) هر چندتا که بخوایید در اختیارتون میذارن ولی سطل مشکلی چون بازیافتی نیست فقط یه دونه! حجم سطل مشکی هم از همه کوچیکتره.

سطل مشکلی و آبی و قهوه‌ای هر دو هفته یه بار و سطل سبز هر هفته جمع آوری میشه. میتونید تصور کنید که اولش چقدر استرس زا هست که اگه آشغال اضافه بیاد چی؟ هیچ کاریش نمیشه کرد! ولی واقعیت اینه که اگر از اول موقع دور انداختن چیزها تفکیک زباله رو انجام بدید به هیچ مشکلی نمیخورید و جا زیاد هم میارید. و یه چیز جالب که نتیجه قوانینی هست که مثال زدم: تا حالا فقط یه بار دیدم یه مامور شهرداری داره با یه وسیله‌ای آشغال ها رو از رو زمین بر میداره میندازه سطل آشغال. ولی اکثرا همه جا تمیزه.

شفافیت

تو ایران اگر برای باز کردن حساب بانکی از ما بخوان که مدارک شغلی یا مدرکی که ثابت کنه کجا زندگی میکنیم ارائه بدیم یا حتی اگه بخوان درآمدمون رو بهشون بگیم یه جوریمون میشه. البته شاید دلایل پیچیده‌ای داره که خارج از این بحثه ولی به هر حال اینجا همه چیز شفافه. یا مثلا درآمد یه کارمند عالی رتبه دولتی یه مسئله خصوصی نیست! حق نداره از کسی پنهانش کنه. یا اینکه چطوری پول تو حساب شما وارد میشه و از کجا اومده یه مسئله خصوصی نیست! شاید شما دارید با یه کار غیر قانونی کسب درآمد میکنید! باید مشخص باشه که چطور گذران زندگی میکنید. از طرفی بانک یا هر سازمان دیگه حق نداره اطلاعات شما رو در اختیار دیگران قرار بده مگر اونها که توی قانون به صورت شفاف مشخص شده. و همیشه موقعی که ازتون یه سری اطلاعات میخوان یه متنی بهتون میدن که بخونید و توش خلاصه و شفاف گفته چه استفاده‌ای از این اطلاعات میشه و به دست چه کسانی میرسه و شما با امضاء کردنش اجازه این کار رو میدید. چون دوباره قانون مجبورشون کرده که این رو براتون توضیح بدن نه اینکه بگه تو قانون هست برو خودت بخون!

اینجا همه اطلاعات شما به هم وصله، آدرس، تلفن، حساب بانکی، شغل، درآمد و … کوچکترین کاری بخوایید بکنید بالاخره یه جا ثبت میشه و اینه که به راحتی میتونن با بررسی سابقه آدمها امکانات در اختیارشون بذارن (فراموش نکنید که طبق قانون و با اطلاع و اجازه شماست). البته این موضوع برای خود انگلیسی‌ها بیشتر بر میگرده به مسائل مالی مثل وام و … ولی در کل توی همچین سیستمی خلاف کردن و پنهان کاری خیلی سختتره. همین باعث میشه به جای اینکه مثلا یه جا رو حصار بکشن و قفل و زنجیر بکنن فقط یه تابلو میزنن که فلان جا نباید بری یا فلان کار رو نباید بکنی؛ همین! همه میدونن که اگر رعایت نکنن عوابق خوبی در انتظارشون نیست. خشونتی در کار نیست فقط مثل این میمونه که همه سازمان‌های مربوطه و مهم از کاری که کردید خبردار میشن و توی تصمیماتی که دربارتون میگیرن تاثیر میذاره که به نظرم کاملا کار درستی هست و همین باعث ایجاد صداقت بدون خشونت میشه. دیگه صحبتی از «من بمیرم، تو بمیری» و «اگه دروغ بگیم میریم جهنم» و «دروغ سم کشنده جامعه ست» و «جون هرکی دوست داری راست بگو» و اینها هم نیست.

مذهب

ما تو شرکت مسلمون، مسیحی، یهودی، بودایی، بی دین، آتئیست و … داریم و همه در صلح و صفا زندگی میکنیم. حتی دوتا از بچه‌های مسلمون میرن نماز جماعت. یهودیه از این کلاه کوچیکای یهودی میذاره سرش و هر کی بر عقایدش استواره و مثلا غذا میخوره و مینوشه و … طبیعتا مسیحی از همه بیشتره ولی از بین مسیحی‌ها بیشترشون اهمیت زیادی به دین نمیدن. مثلا تقریبا هیچکدوم کلیسا نمیرن.

به عنوان مثال همه جور غذا برای همه ادیان هست. البته یکی از بچه‌ها که تازه از هند اومده، تو مذهبشون حق ندارن هیچگونه گوشت (مرغ، گاو، خوک و … حتی تخم مرغ) و همینطور گیاهانی که زیر خاک رشد میکنن رو بخورن (مثل سیب زمینی و پیاز). این بنده خدا معولا یا داره میوه میخوره یا شکلات و … و من در عجبم چطوری زنده ست؟ غیر از این دوستمون کسی رو ندیدم که مشکل داشته باشه. هم غذای حلال هست و هم غذای گیاهی و … حتی ماه رمضان فروشگاه‌ها تبیلغ محصولات مربوطه رو میکنن و ماه رو تبریک میگن و …

با همه این احوال هیچ احدی حق نداره شما رو برای دینی که دارید یا ندارید تفتیش کنه یا توی هر گونه ارزیابی دخالت بده. یه بی دین حق نداره یه دین دار رو اذیت کنه و همینطور برعکس یه دین دار نمیدونه در قالب امر به معروف و نهی از منکر به کسی حرفی بزنه. مثل بقیه موارد، قانون محکم تو دهن هر دوشون میزنه اگه تندروی کنن یا بخوان به کسی بگن تو خودت نمیفهمی و من میدونم که چی برات خوبه تا سعادت دنیا و آخرت رو داشته باشی.

در کل بیشتر مردم دین خاصی ندارن یا حداقل در موردش صحبت نمیکنن. به طور کلی اکثر قریب به اتفاق مردم هیچ محدودیتی در پوشش، غذا و نوشیدنی و … رو قبول نمیکنن، چه به واسطه دین چه چیز دیگه. چیزی که واضحه شما آزادی که هر دین و عقیده‌ای داشته باشی یا دینی نداشته باشی یا حتی شیطان رو بپرستی. فقط باید قانون رو رعایت کنی و قانون هم ضامن این هست که آزادی کس دیگه رو نگیری.

کار و استقلال

اینجا همه کار میکنن؛ زن و مرد، جوون و پیر. سخت هم کار میکنن. ما در مقابل اینها به شدت تنبل و تن پرور هستیم. اینکه از صبح تا شب بریم یه جا بگیم از کله سحر تا بوق سگ کار میکنیم معنیش این نیست که داشتیم کار مفید میکردیم. اینجا کار مفید رو با تمام وجودت حس میکنی. ندیدم کسی کار رو بپیچونه یا از زیرش در بره. فقط سعی میکنن با سرعت و کیفیت مطلوب انجامش بدن. طبق چیزی که توافق شده بوده. از طرف دیگه اینکه مردم با مشکلات و مسئولیت‌های زندگی روبرو بشن و از پس همه چی بر بیان کاملا براشون عادی هست و از سن پایین با این موضوع آشنا شدن.

مثل همه جای دنیا اکثرا کار تمام وقت دارن ولی کلی شغلهای دیگه از کارگری تا کارهای دستی و غیره هم هست. داشتن یه شغل خاص به هیچ وجه ارجهیتی به شما نمیده که مثلا به یه کارگر ساده نده. درسته که سطح درآمد خیلی مهمه و تاثیر گذاره ولی مادامی که غیر قانونی نباشه برای هیچ کس مهم نیست کارتون چیه و نه میتونید فخر بفروشید نه میتونید شرمنده باشید بابتش.

برای من اما کار تمام وقت تازگی داره چون هیچوقت تمام وقت جایی کار نکردم. خیلی وقته که دارم کار میکنم و همیشه شغلم همین بوده ولی همیشه یا پروژه‌ای بوده یا پاره وقت و ساعتی. نمیدونم بقیه شرکت‌های اینجا چطوری هستند ولی جایی که من هستم توی محیط کار خیلی بهمون اهمیت میدن. کلا سیستم اینجوریه که ما نباید نگران چیزی باشیم که توش متخصص نیستیم. فقط باید کاری رو انجام بدیم که تخصص داریم. هر امکاناتی لازم داشته باشیم برامون فراهم میکنن و بهونه‌ای هم برای ارائه بهترین کیفیت نیست. حتی اگر بخواییم توی دوره‌های آموزشی شرکت کنیم که به کار ربط داره، هم شرکت هزینه‌ش رو میده هم در زمان کاری میتونیم روش وقت بذاریم. البته این معنیش این نیست که کارهای جاری رو به امان خدا بسپاریم. سیستم مدیریت پروژه‌ها انقدر قوی هست که هیچ نیازی به کنترل ساعات کار و … نیست. اگر خوب و با تمرکز کار نکنی از تیم عقب میفتی و این خودش بدترین تنبیه هست.

مدیریت

یکی از بهترین چیزهایی که اینجا دیدم مدیریته. هنوز دقیقا نمیدونم چرا و چطور انقدر تفاوت هست. از مدیریت کلی سازمان تا مدیریت پروژه. هیچ مدیری حالت مدیرای ایران رو نداره که وقتی رد میشه همه خودشون رو جمع و جور میکنن. میخواد رئیس هیت مدیره و مدیر کل باشه یا مدیر پروژه. این نحوه رفتار رو جاهای دیگه هم دیدم. همونطور که گفتم شغل شغله. کسی بالاتر یا پایینتر از شما نیست فقط شغل‌ها فرق داره؛ یکی مدیر بهتریه یکی توسعه دهنده بهتر، این دوتا با هم کار میکنن. اتاق مدیر شرکت شیشه‌ای هست و احساس میکنیم که پیش ماست. از همون آشپزخونه و دستشویی استفاده میکنه که ما. وقتی هم میبینیمش هیچ تفاوتی با بقیه نداره! مثلا وقتی داریم با هم شوخی میکنیم اونم میاد اگه بهش ربط داشته باشه تو بحث شرکت میکنه اگه نه هم سرشو میندازه پایین میره.

از نظر تکنیک مدیریتی هم میتونم در مورد اجایل بگم. تو ایران فرقی نداره کجا کار میکنید و چکار میکنید و چطوری کار میکنید. هر کی آخرش نرم‌افزار تولید میکنه میگه ما اجایل کار میکنیم. هر چند من فقط تجربه کار تو یکی از شرکت‌های انگلیسی رو دارم و قطعا شرکت‌های داغون هم باید وجود داشته باشه ولی چیزی که اینجا دیدم شبیه هیچ کدوم از چیزایی که تو ایران دیدم نیست.

چندتا از نکات مهمش ایناس:

  • اول کار همه چیز تعریف میشه و مشخصه. اینکه منظور ما از اینکه یه کار آماده انجامه چیه و دقیقا چه پارامترهایی داره یا دقیقا چه وقتی میتونیم بگیم که کار انجام شده و آماده ست. یا آماده ست یعنی چی؟ آماده چیه؟ آماده استفاده؟ آماده بارگذاری؟ آماده آزمایش توسط تیم QA و… جالب اینجاست که همه این تعاریف تو کمتر از یک ساعت با سرعت بالا انجام میشه!؟ برای من که خیلی سخت بود چون هم زبانم هنوز اونقدر که باید خوب نیست و هم عادت ندارم به این سرعت.
  • هر کلمه به طور کامل معنی مشخص داره و هیچ برداشت اشتباهی ازش نمیشه. مثلا Rabbit Hole Monitoring. وقتی این کلمه رو اول جلسه گفتن، نه هیچکس توضیحش داد نه هیچ کس پرسید یعنی چی؟ البته مثال‌های بهتری هم برای این موضوع هست. شاید این بر میگرده به این موضوع که کلا زبان فارسی زبان پر ایهامی هست و از هر کلمه یا جمله میشه چندتا برداشت کرد و همیشه باید برای جلوگیری از سوء تفاهم یا درک دقیق، موضوع رو با صحبت‌های اضافه توضیح داد.
  • تک تک افراد جلسه تو تمام بحث‌ها و نظرسنجی‌ها شرکت میکنن. اگر صلاحیت نظر دادن ندارن خیلی شفاف میگن من سر در نمیارم و رای ممتنع میدن.
  • کنترل زمان عالی انجام میشه. عالی! نه فقط اینکه سر ساعت شروع کنیم و سر ساعت جمع کنیم بریم خونه. برای تک تک موضوعات که از قبل هم مشخص شده، زمانبندی داریم. این زمانبندی‌ها قبل از اینکه جلسه رو شروع کنیم توسط مدیر جلسه انجام شده.
  • همیشه Agenda داریم. مشخصه میخواییم چیکار کنیم رو هر چیزی چقدر وقت بذاریم و دنبال چی هستیم.
  • هیچ کس از اینکه توسط مدیر پروژه متوقف بشه چون داره به بیراهه میره ناراحت نمیشه. کلا در عین حال که همه با هم دوستن و خیلی اوقات میگن و میخندن بلافاصله بر میگردن سر هدف اصلی.
  • در تمام طول جلسه یه سطحی از هوشیاری از اینکه چرا توی این جلسه نشستیم و داریم چیکار میکنیم وجود داره.
  • یادمه خیلی‌ از همکارام این رو در مورد من دوست داشتن که دست به داکیومنت نوشتنم خوبه و خیلی‌ها هم سر همین قضیه بهم میگفتن مثلا کارت درسته و سر همین موضوع به نظرمون نیروی خوبی هستی و از این حرفا. این حرفا همش چرنده! اینجاداکیومنت کردن کار خفنی نیست داکیومنت نکردن کار خوفناکیه! داکیومنت کردن با کیفیت بسیار بسیار بالا با تمام جزئیات و شفاف یکی از مهمترین اجزاء کار هست و همیشه یه نفر حرفه‌ای مسئولش هست. معمولا توسط خود مدیر پروژه‌ هم انجام میشه ولی دقت کنید که مدیر پروژه خودش به مسائل فنی اشراف داره.
  • مرز بین دانش فنی لازم برای درک پروژه و دانش فنی لازم برای پیاده سازی پروژه مشخصه. مثلا حتی اینکه از NoSQL استفاده کنیم یا RDBMS باید برای همه تو جلسه روشن باشه ولی اینکه مثلا درایور بانک اطلاعات Async‌ باشه یا Sync‌ فقط برای بچه‌های فنی مهمه.
  • در آخر جلسه هم همیشه جمع بندی و نتایج و … وجود داره. اگر به هر دلیلی وقت کم بیاد. از جمع بندی ها و نتیجه گیری‌ها و اینطور کارها زده نمیشه چون اینها یه درکی میده که کجای کار ایستادیم چقدر پیشرفت داشتیم و چقدر کار مونده.

جمع بندی

خیلی موارد دیگه هست که میشه در موردش صحبت کرد مثل:

  • دانشگاه و اینکه چقدر نیروهای آماده و قوی میده بیرون بر خلاف ایران
  • عدم نگرانی از آینده بخاطر ثبات و اینکه میدونی برای بازنشستگیت یه برنامه مرتب هست و کلا میدونی قراره چه اتفاقی بیفته
  • عدم نگرانی مالی و اینکه همیشه بالاخره یه راه منطقی و آبرومند جلو پات میذارن. نه اینکه بگن توکلت به خدا باشه درست میشه
  • و …

اینجا بهشت موعود نیست و هیچ وقت بهش موعود رو نمیشه پیدا کرد. درسته که میگن بهشت رو باید ساخت ولی نیازی نیست حتما تو جایی که متولد شدی بسازیش. نیازی نیست حتما سالها با اکثریت جامعه مقابله کرد تا تازه رسید نقطه اول ساختن بهشت. نیازی نیست طرز فکر و افکار و عقاید مردم رو عوض کرد. اگر تعدادشون خیلی زیاد باشه وقتی جامعه از دنیا ایزوله باشه دیگه این کار خیلی خیلی سخت یا غیر ممکنه میشه. مهم نیست از چه طریقی فقط آرزو دارم تو ایران هم صداقت و درستی و اخلاق و آرامشی که اینجا هست رو داشته باشیم.

اینهایی که دلمون میخواد کشورمون داشته باشه خودشون نتیجه چیزهای دیگه هستن که به این سادگی به دست نمیاد. من فکر میکنم مهمترین چیزایی که جامعه ایران رو به این نیازها نزدیک میکنه اینهاست:

  • قانون قوی
  • شفافیت
  • آزادی
  • حکومت غیر دینی

نکته مهم اینکه اینها یا همشون در کنار هم امکانپذیرن یا هیچ کدوم.

ویدئو‌های قسمت دوم کارگاه اسکالا در جشن ۱۰ سالگی لاگ

همونطور که قبلا گفته بودم برای جشن ده سالگی لاگ که تابستون پارسال برگذار شد یه کارگاه اسکالا برگذار کردیم.

این کارگاه به دو قسمت تقسیم شد که ویدئو‌های قسمت اول رو قبلا توی یه پست دیگه گذاشته بودم.  متاسفانه تنبلی و مشکلات فنی اجازه نداد ویدئو‌های قسمت دوم که اتفاقا فنی تر هم هست رو بارگذاری کنم. خوشبختانه امروز آخرین فایل هم بارگذاری شد و می‌تونید مشاهده کنید.

ویدئو اول

ویدئو دوم

ویدئو سوم

ویدئو چهارم

دعوت به همکاری از برنامه‌نویسان حرفه‌ای اسکالا

ما توی شرکت مدرن پل (Modern Pal) به یک برنامه‌نویس حرفه‌ای اسکالا برای بخش Backend نیاز داریم.

درباره شرکت

شرکت مدرن پل موقعیت ویژه‌ای داره؛ در عین حال که یه استارت‌آپ تازه تاسیسه، داره با قدرت میره جلو و تیم‌های حرفه‌ای و مشخصی برای هر کاری داره.

درباره تیم Backend

خوشبختانه تقریبا در شروع راه هستیم و افراد جدید میتونن در تصیمات اساسی مشارکت داشته باشن و راحتتر توی تیم جا بیفتند. تیم Backend طوری مدیریت میشه که Junior ترین فرد گروه هم حق نظر دادن داره و شدیدا از ایده‌های خوب استقبال میکنیم. «فرهنگ» برای ما خیلی مهمه تا بتونیم تیم رو به همین شکل حفظ کنیم و بدون صرف انرژی بیهوده برای بحث‌های سلیقه‌ای، با مشارکت جمعی کار رو به سرعت جلو ببریم و رضایت همه رو کسب کنیم. از هم دیگه چیز یاد میگیریم و خوره تکنولوژی هستیم و به کیفیت کارمون خیلی اهمیت میدیم. خلاصه همین که داریم با اسکالا کار میکنیم خیلی چیزها رو نشون میده 😉

درباره تکنولوژی‌های مورد استفاده

از اونجایی که برای UI هم تیم‌های جداگانه‌ای وجود داره، تمرکز ما روی ‌Backend هست. تکنلوژی‌های مهمی که در حال حاضر ازشون استفاده میکنیم اینها هستند:

  • Linux
  • Scala
  • Play Framework
  • Slick
  • Specs2
  • ReactiveMongo
  • Postgres
  • MongoDB

در آینده نزدیک از این تکنولوژی‌ها هم به طور مستقیم استفاده خواهیم کرد:

  • Akka
  • Cassandra
  • Spark
  • و احتمالا خیلی چیزهای باحال دیگه

درضمن برای تمام قسمت‌های نرم‌افزار تست می‌نویسیم (کمتر Unit Test و بیشتر Functional Test) و Code Coverage بالای ۸۰٪ داریم.

لطفا در صورتی که شرایط و علاقه دارید رزومه خودتون رو به همراه اطلاعات زیر برای آدرس jobs@modernpal.com و a.karimi@modernpal.com ارسال کنید:

  • آدرس پروفایل Linkedin
  • آدرس پروفایل Github
  • در صورتی که Twitter یا وبلاگ یا هر ابزار انتشاراتی دیگه‌ای دارید که توش از مسائل فنی صحبت میکنید، اون رو هم ارسال کنید

یه استارت آپ، یه کتاب صوتی و درباره تبلیغ این کنار

سعید زرین فام عزیز چندبار پیشنهاد کرده بود که کتاب «گوگل چگونه کار میکند» رو بخونیم که البته با جواب احمقانه ما مبنی بر اینکه کتاب چند صفحه هست و اینها روبرو می‌شد 😀 ولی از اونجایی که سعید پیشنهاد بد نمیده من توی ذهنم بود که این کتاب رو یه جوری بخونم. خوشبختانه یکی دیگه از دوستان، نوار رو معرفی کرد.

من هم توی همون چند ثانیه اول بررسی سایت، کتاب صوتی گوگل چگونه کار میکند رو خریدم و فعلا که از خریدم خیلی راضی هستم فقط یه مقدار به نظر میرسه سرورشون شلوغ شده و بعضی وقتا دانلود کتاب متوقف میشه که البته به خاطر چند بخشی بودن دانلود و امکان ادامه دانلود و نپریدن هرچی دانلود شده و همینطور پشتیبانی کامل از امکانات آفلاین، این مورد اذیتم نکرد.

بهونه‌ها برای خرید نسخه‌های قانونی آثار غیر فیزیکی داره روز به روز کمتر میشه، لطفا از این ابزارها استفاده کنید تا خالق این آثار بتونن به کارشون ادامه بدن و با کیفیت و امید و انگیزه بیشتری کار کنن و ما هم از آثارشون لذت ببریم.

و یه موضوع بی ربط: در مورد آگهی این کنار؛ می‌خوام امتحان کنم ببینم همچین وبلاگی میتونه هزینه ناچیز هاستینگ خودش رو از طریق یه تبلیغ ساده در بیاره یا نه!

بازنویسی اسکریپت‌های اون هکره به زبان اسکالا

شاید این داستان جالب که واقعی هم هست رو دیده یا شنیده باشید که یه هکر که همه زندگیش تو ترمینالش خلاصه میشده چطور زندگی واقعیش رو با اسکرپیت‌هاش مدیریت میکرده؛ از پیام دادن به  همسرش در صورت دیر کردن به صورت خودکار، تا آماده کردن قهوه جوش و چیزهای دیگه که همکی با اسکریپت انجام میشدن.

یه ایده جالب این آدم این بوده که کلا هر کاری که بیشتر از ۹۰ ثانیه طول میکشیده رو تبدیل به اسکریپت میکرده.

حالا کلی برنامه‌نویس اومدن این اسکریپت‌ها رو به زبون‌های مختلف باز نویسی کردن. من تعجب کردم که چرا هنوز کسی با اسکالا این کار رو نکرده بود. خوشبختانه تونستم اولین نفر باشم.

نکات فنی این موضوع رو میتونید توی پست انگلیسیم بخونید.

روی پروژه‌های متن باز کار کنید تا یه کار خوب گیرتون بیاد

کار کردن روی پروژه‌های متن باز به طور مستقیم درآمد یا سودی نداره ولی به طور غیر مستقیم پر از سود و درآمده.

یکی از مهمترین مواردی که روز به روز داره مهمتر از قبل میشه پیدا کردن نیروی برنامه‌نویس و توسعه‌دهنده حرفه‌ای و خوب هست. البته از قدیم بهترین راه پیدا کردن برنامه‌نویس دیدن دست خطش و کارهای قبلیش بوده اما امروز این روند خیلی هوشمندتر از قبل شده و حتی کوچکترین کار ما توی دنیای متن باز دیده میشه.

این وب سایت امروز به من ایمیل زد و یه کار با زبان Go بهم پیشنهاد داد چون یک پروژه کوچیک به زبان Go توی مخازنم بود. وب سایت‌هایی مثل این دارن روز به روز بیشتر میشن. اون‌ها به صورت هوشمند و ماشینی کدهای ما رو توی مخزن‌های متن باز مثل Github چک میکنن و از این طریق متوجه میشن که ما توی چه زمینه‌ای مهارت داریم. واقعیت اینه که اگر این عملیات با درنظر گرفتن جزئیات و واقعا هوشمند انجام بشه یکی از بهترین راه‌ها (شاید بهترین راه) برای پیدا کردن توسعه‌دهنده هست.

حتی اگر یکی بیاد تقلب کنه و مثلا کدهای دیگران رو کپی کنه توی مخازن خودش (هر چند که به صورت ماشینی قابل کشف هست) و یا از اسکریپت‌هایی استفاده کنه تا الکی نمودار فعالیت گیت‌هابش رو پر کنه (که این هم قابل کشفه) و فرض کنیم این کارهاش کشف نشه، بالاخره توی جلسه مصاحبه دستش رو میشه و همه این کارها نه تنها بی فایده خواهد شد بلکه به شخصیت کاری طرف صدمه هم میزنه. بنابراین پیدا کردن افراد بر اساس کدهای متن‌بازشون واقعا یه راه حل کارسازه.

پس تا میتونید توی پروژه‌های متن باز مشارکت کنید یا کارهای خودتون که امکانش هست رو به شکل متن باز ارائه بدید و این کارتون رو عمومی کنید و براش تبلیغ کنید. مطمئنا سودش خیلی بشتر از نگرانی بابت کپی شدن کدها و این مسائل هست.

مقایسه تجربی روبی، جاوا اسکریپت و اسکالا

بعد از یه مدت قابل توجه کار درست و حسابی و واقعی با سه زبان روبی، جاوا اسکریپت و اسکالا، حالا میتونم به راحتی در موردشون نظر بدم. قطعا این مقایسه فقط از نظر زبان نیست بلکه از نظر اکو سیستم اونهاست.

بیشتر کار من با روبی روی Ruby on Rails، با جاوا اسکریپت روی AngularJS و با اسکالا روی Play Framework بوده.

شروع یادگیری

قطعا شروع یادگیری روبی و جاوا اسکریپت قابل مقایسه با اسکالا نیست. اگر فرض کنیم یه برنامه‌نویس، تازه کار باشه قطعا اول جاوا اسکریپت و بعد روبی میتونه انتخاب خوبی باشه. برای تازه کارها که فقط میخوان برنامه‌نویسی یاد بگیرن یا یه کار عادی رو انجام بدن اسکالا رو پیشنهاد نمیکنم.

برای شروع یادگیری روبی و جاوا اسکریپت امکانات زیادی در دسترس هست ولی برای اسکالا باید روحیه خود آموزی داشته باشی وگرنه نمیتونی یادش بگیری. به طور کلی یادگیری اسکالا شجاعت بیشتری میخواد. مثلا باید یاد بگیری که خودت مشکلاتت رو حل کنی و ممکنه گوگل نتونه کمکی بکنه. ممکنه خودت یه الگویی رو ایجاد یا کشف کنی و بعدا متوجه بشی که افراد دیگه‌ای هم این کار رو میکنن پس به نظر درست میاد. و از همه مهمتر باید بتونی با افراد کامیونیتی مربوطه (به زبان انگلیسی) صحبت کنی.

کتابخانه‌ها

تعداد کتابخونه‌های جاوا اسکریپت در حال حاضر از همه بیشتره (npm) ولی از نظر کیفیت، کتابخونه‌های اسکالا حرف اول رو میزنه. یا یه کتابخانه برای اسکالا وجود نداره یا اگر هست توسط یه آدم حرفه‌ای نوشته شده و کلی چیز جالب ازش میشه یاد گرفت و البته قابل اعتماده. با توجه به اینکه توی اسکالا به راحتی میشه از کتابخونه‌های جاوا هم استفاده کرد و اونها هم فوق العاده با کیفیت هستند میشه گفت از نظر کمیت هم مشکلی نیست.

AngularJS پایین ترین سطح کتابخونه‌ها از نظر کیفیت رو داره. هر کسی که یه کمی جاوا اسکریپت بلد بوده که تعدادشون هم خیلی زیاده، یه کتابخونه برای کاری که میخواسته انجام بده نوشته. برای هر کاری هم کلی کتابخونه هست که اگر بگم؛ در بیشتر موارد هیچ کدوم درست و درمون نیستند، بزرگنمایی نکردم. در مورد سمت سرور (نود) هم یه سری ابزارهای خوب هست ولی بقیه کتابخونه‌ها بیشتر یه تمرین و بازی بودن.

روبی هم از نظر تعداد و هم از نظر کیفیت کتابخونه‌های خوبی داره. فکر کنم بین این سه تا بهترین باشه.

کامیونیتی

اجتماع حول اسکالا منحصر به فرده! توش هم آدمهای آکادمیک و پروفسور و دکتر هست و هم برنامه‌نویس‌های غیر آکادمیک و عملی و تجربی. معمولا هم جنگ و دعوا پیش نمیاد. اجتماع و کامیونیتی اسکالا جمعیتش خیلی کمتر از روبی و جاوا اسکریپت هست، که طبیعی هم هست. ولی آدمهای فوق العاده عجیب و غریب و دوست داشتنی توشون پیدا میشه. به طرز وحشتناکی ذهن قوی دارن و هیچ نیازی برای ساده بودن ابزارهاشون ندارن.

به نظر من کامیونیتی اسکالا حرف اول رو میزنه و سطح خیلی خیلی بالایی داره.

کامیونیتی روبی هم خیلی عالیه و خیلی بچه‌های باهوشی داره ولی نسبت به اسکالا زمینی‌تره. خیلی از بچه‌های کامیونیتی اسکالا انگار از فضا اومدن. یه مشکل دیگه کامیونیتی روبی اینه که، به اندازه کافی بالغ شده که دیگه نیازی به حضور و انرژی آدمهای خیلی خفن نداشته باشه و اون آدمهای خفن و مریض که دنبال چیزهای جدید هستند رفتن سراغ یه تکنولوژی جدید دیگه.

کامیونیتی جاوا اسکریپت کیفیت پایینتری داره. چون آدمهای بی تجربه راحتتر میتونن واردش بشن و کمک کنن. الزاما به معنی بد بودنش نیست ولی کیفیت بالایی نداره.

راحتی و سرعت در تولید

وقتی قرار باشه یه پروژه جدید شروع بشه اگر اون پروژه کوچیک باشه و معلوم نباشه قراره چه آینده‌ای داشته باشه، روبی میتونه انتخاب اول باشه. روبی و مخصوصا Rails میتونه با سرعت هر چه بیشتر آدم رو به یه محصول اولیه برسونه.

از همه هم سختتر اسکالا ست. شروع کار و رسیدن به محصول قابل استفاده بیشتر زمان میبره. ولی مثلا به سختی جاوا نیست.

در مورد زمان کامپایل هم؛ زمان کامپایل اسکالا تا حالا باعث نشده که سرعت توسعه‌م کند بشه. توی دات نت این اتفاق می‌افتاد و روند تغییر و اجرای یه برنامه خیلی تو مخ بود (چون فقط شامل زمان کامپایل نبود) اما توی اکو سیستم اسکالا همه چیز اتومات شده و حتی وقتی یه فایل رو تغییر بدید فقط اون فایل و وابستگی‌هاش کامپایل میشه (بدون اینکه نیاز باشه شما خودتون بگید کامپایلش کنه). حتی در اجرای تست‌ها هم میشه از این ویژگی استفاده کرد.

جاوا اسکریپت یه چیزی بین اسکالا و روبی هست. نه به اندازه روبی بی دردسر و راحته و نه به اندازه اسکالا زمانبر. اما خیلی چموشه و اذیت میکنه و در کل Stable نیست. وقت میبره تا بفهمی چرا یه چیزی کار کرد یا چرا کار نکرد و وقتی هم سر در اوردی باید همه چیز رو توی ذهنت نگه داری و اگر چند وقت از پروژه دور باشی دوباره به مشکلات تکراری میخوری.

نگهداری و تغییر کد

از اونجایی که زبان‌های دینامیک امنیت پایین‌تری دارن (منظور از امنیت، حفاظت اطلاعات و هک و اینها نیست) قطعا روبی و جاوا اسکریپت تو این زمینه حرف خاصی برای گفتن ندارن و تنها راه استفاده از این دو زبون اینه که مقدار بیشتری کد برای تست برنامه‌ها نوشته بشه و زمان بیشتر برای نگهداری و تغییر در برنامه‌ها صرف بشه. هر چند در شروع کار این زمان‌ و هزینه اضافی اصلا دیده نمیشه و فقط سرعت و سهولت خودش رو نشون میده.

اینجا اسکالا برنده بلا منازع هست و میشه باهاش در ابعاد بزرگ مقاوم ترین و با کیفیت‌ترین برنامه‌ها رو با تلاش کمتری نسبت به زبون‌های دیگه نوشت.

تست اتومات و دیباگ

چند وقتی هست که بیشتر از همیشه دارم تست مینویسم و البته خیلی هم راضی هستم.

چارچوب Rails قوی‌ترین و راحتترین امکانات تست رو داره. فکر همه چیز رو کردن و در کمترین زمان و با بهترین کیفیت میشه برای هر قسمت از برنامه و در هر سطحی (Unit یا Functional) تست نوشت. برای دیباگ هم، هم میشه از امکانات IntelliJ به راحتی استفاده کرد هم Gem ی مثل ByeBug واقعا دیباگینگ رو برای آدم لذت بخش میکنه.

ابزارهای تست جاوا اسکریپت زیاد قوی نیست و مخصوصا دیباگ کردن واقعا عذاب آوره. حتی console.log هم خیلی از جاها کار نمیکنه. AngularJS سعی کرده از اول کار تست رو راحت کنه ولی فقط Unit Testing رو راحت کرده و Integration Test به سختی و به کندی قابل انجام هست و اصلا لذت بخش نیست. دیباگینگ Integration Test توی Angular یکی از رنج آور ترین کارهای عالمه.

تست توی اسکالا به اندازه روبی راحت نیست ولی واقعا لذت بخشه و جزیی از سیستمه. از روز اول هم فکرش شده بوده و چیزی نیست که بعدا به سیستم اضافه شده باشه. IntelliJ هم که مثل بنز ازش پشتیبانی میکنه و دیباگینگش فوق العاده قویه. از اونجایی که اسکالا Static-type هست، وقتی برای یه نرم‌افزار تست بنویسی دیگه کاملا خیالت راحته که همه چیز اونطور که باید پیش میره و نیازی نیست به اندازه زبونهای دینامیک تست‌های واضح و مبرهن بزنی.

 ابزارهای توسعه (IDE)

برای روبی و جاوا اسکریپت مثل بقیه زبون‌های دینامیک خیلی ابزارهای توسعه قوی وجود نداره. بهترینش همون IntelliJ هست که باز هم به دل آدم نمیچسبه. بیشتر برنامه‌نویسهای این زبون‌ها کلا از IDE استفاده نمیکنن و فقط از یه ادیتور خوب استفاده میکنن.

به هر حال ساختن ابزارهای کمکی برای توسعه زبان دینامیک کلا کار سختیه و بعضی جاها غیر ممکنه.

اما برای اسکالا اوضاع بهتره. هر چند IDE های اسکالا به اندازه جاوا بالغ نیستند ولی قطعا خیلی بهتر از روبی و جاوا اسکریپته و روز به روز هم داره بهتر میشه. حداقلش اینه که وقتی میخوایی اسم یه کلاس یا متغییر رو تغییر بدی خیالت راحته که IDE گند نمیزنه توی کدات.

سرعت اجرا

واضحه که اسکالا از همه سریعتره و چارچوب Play بالاترین کارایی رو داره. هم از نظر سرعت و از نظر مقیاس پذیری (Capability). حتی چارچوب‌های وب Rust، Go و بقیه زبون‌ها هم توی تست‌هایی که روی لپ تاپ خودم گرفتم نمیتونن به پای Play برسن.

بازار کار

بازار کار جاوا اسکرپیت قطعا از روبی و اسکالا بهتره. وارد هر تیمی که بشی بالاخره یه جاوا اسکریپت کار میخوان. ولی الزاما حقوق بالایی نداره. تا جایی که من دیدم حقوق یه روبی کار بالاتر از جاوا اسکریپت‌کار در همون حده. و البته حقوق یه اسکالا کار از همه بیشتره به همین نسبت کار هم برای اسکالا از بقیه کمتره.

وضعیت نیروی انسانی

خدا رو شکر کلا اکثر بچه‌هایی که حرفه‌ای بودن از ایران رفتن و به شدت قحط الرجال شده. البته آدمهای حرفه‌ای هم هستن که به هر دلیلی فعلا نخواستن یا نتونستن برن (مثل من :D). پس به هر حال برنامه‌نویس خوب به راحتی گیر نمیاد حالا تکنولوژی هر چی باشه. توی کل دنیا نیروی برنامه‌نویس خوب کمه، وای به حال ایران با این شرایطش!

نمیشه برنامه نویس مبتدی اسکالا کار پیدا کرد ولی میشه به راحتی و به تعداد زیاد برنامه نویس جاوا اسکریپت پیدا کرد که معلوم نیست مبتدی هستند یا حرفه‌ای. اگر برنامه نویسی پیدا کنی که بتونه چندتا سوال خاص از اسکالا رو جواب بده به راحتی میتونی مطمئن باشی که برنامه‌نویس خوبیه و نیازی نیست بیشتر بررسیش کنی.

اگر پروژه‌ای انجام میدید که نیاز به نیروی کار زیاد داره یا نمی‌خوایید به یه نفر وابسته بشین، سمت اسکالا نرید. اینم بگم که به هر حال اگر روی تکنولوژی‌های ساده‌تر هم بخوایید هر برنامه‌نویسی که از راه رسید رو استخدام کنید بازم شکست میخورید و هیچ فرقی نداره جز اینکه یه خرج اضافه کردید واسه برنامه‌نویس‌های غیر حرفه‌ای.

نتیجه گیری

نتیجه گیری نداریم! با هر زبونی که حال میکنید کد بزنید.

درآمد بیت کوین از کامیت در پروژه متن باز

سعی کردم ترجمه فارسی برای Active Admin ایجاد کنم و البته آن را به پروژه اصلی Push کردم. دیگر قبول کردن و Merge کردن Push Request ها در پروژه‌های متن باز در عرض چند ساعت برایم یک چیز عجیب نیست و عادی شده. اما این غیر عادی بود که به عنوان جایزه کامیت کردن، بیت کوین هدیه بدهند! هر چند مقدار آن بسیار ناچیز است یعنی ۰٫۰۰۰۰۰۴۰۵ Ƀ که تقریبا می‌شود معادل ۷۶ ریال خودمان ولی این پول احتمالا برکت خاصی دارد 😀

برای اطلاعات بیشتر به این سایت مراجعه کنید: http://tip4commit.com