من همیشه از این شرمنده هستم که کشورم در صدر اعدام کنندگان کودک در جهانه و در رده دوم اعدام کننده های انسان در بین ۲۱ کشوری که هنوز دولت هاشون معتقدن هر وقت حس کردن به نفعشونه، شهروندانشون رو میکشن. به ما به دروغ گفته می شه این مجازات کنترل کننده جرم است و چون توی دین است غیرقابل حذف ولی هیچ کس به ما نمی گه که بین ۲۰۰ کشور جهان فقط ۲۱ کشور هستن که این کار رو می کنن و اتفاقا توی این فهرست شاهد ناامنترین کشورها هستیم (از ایران و عربستان و عراق و آمریکا و یمن گرفته تا سومالی و سودان و بنگلادش و افغانستان و بلاروس و سوریه) و از اونطرف هم گفته نمی شه که برده داری هم در دین ما وجود داشته و هنوزم تدریس می شه ولی الان فهمیدیم که مناسب دوران ما نیست و کنارش گذاشتیم یا مبارزه با دروغ و ظلم هم جزو دین ما هست ولی فهمیدم فعلا به نفعمون نیست و یبخیالش شدیم. خلاصه اینکه جمعیت امام علی به عنوان یکی از کارهای خوب دیگه اش در تلاشه یک مورد از این اعدامهای کودکان رو متوقف کنه. اگر علاقمند هستین سری به صفحه اش بزنین و برای حمایت تلاش کنین ولی فراموش نکنین که اینکار مبارزه با اعدام نیست بلکه لایک زدن و کمی وقت گذاشتن و احیانا کمی پول دادن در یک مورد خاص است که کماکان بسیار مهمه. مبارزه واقعی باید در نهایت منجر به این بشه که از لیست ۲۱ کشوری که آدم هاشون رو می کشن بیرون بیایم.
راهنمایی برای برنامه نویسهای آینده که می خوان زبونشون رو انتخاب کنن
جادی جان منظور من این بود چه نوع زبان برنامه نویسی از بین اون دوره ها خوبه که دوستم شرکت کنه؟ جاوا؟ اوراکل؟ دات نت؟ نمیخوام آموزشگاه بهم معرفی کنی میخوام یک زبان برنامه نویسی که میدونی الان بیشتر کاربرد و بازار کار داره رو بهم بگی.
ضربالمثلی در دنیای برنامه نویسی هست که می گه «اشتباهی که خیلی از برنامهنویسهای تازه کار می کنن اینه که برنامهنویسی رو با یاد گرفتن کد نوشتن به یک زبان خاص اشتباه میگیرن». پس توصیه اول به این دوستمون اینه که دنبال یاد گرفتن برنامه نویسی باشه نه یاد گرفتن دستور زبان یک زبان خاص. اکثر زبانها در پایه به هم شبیه هستن و اگر یک زبون رو درست یاد بگیریم سوییچ کردن یا کد نوشتن به یک زبان همخانواده چندان مشکل نیست. اینه که یاد گرفتن C می تونه پایه خوبی برای هر برنامه نویسی باشه و بعدش خوندن کد چند برنامه خوب (که روی گیت هاب به راحتی قابل دسترسی هستن و حتی می تونن به سادگی برنامه ای مثل yes در لینوکس باشن).
نکته بعدی اینه که آدمها به شیوههای مختلفی چیز یاد می گیرن. در کل به سه شیوه:
- خوندن (کتاب، راهنما، …)
- آموزش دیدن (کلاس)
- انعکاسی (دیدن و تکرار کردن)
- تمرین کردن (پریدن وسط استخر و دست و پا زدن)
که البته مثل هر چیز دیگهای، در دنیای واقعی هر کدوم با ترکیبی از روشهای بالا به حداکثر یادگیری خودمون میرسیم. مثلا می دونم که بهترین روش یادگیری ام ترکیبی از خوندن و تمرین کردن است. این اصل ساده در آموزش گاهی به خاطر عادت ۱۲ ساله ما به مدرسههای کلاس محور ایرانی کلا فراموش می شه. پس قبل از ثبت نام کلاس یک لحظه باید به خودمون یادآوری کنیم که یاد گرفتن چیزها الزاما نیازمند کلاس نیست و اگر کل راهنماهامون رو از اینترنت بگیریم و کل هزینه کلاس رو خرج خوش گذرونی کنیم ممکنه خیلی بهتر چیز یاد بگیریم.
اما کدوم زبون؟ فرض کنیم دقیقا دنبال یاد گرفتن یک زبون برنامه نویسی هستیم. چه زبونی بهترینه؟ نقل می کنم از سینای عزیز که
تا وقتی اهداف رو ندونیم نمی تونیم مسیر رو ارزیابی کنیم.
هدف ما چیه؟ رسیدن به یک شغل مطمئن توی بازار کاری که از همیشه برامون کار هست؟ گرفتن پروژههای خاص با پول خیلی زیاد؟ مهاجرت؟ کار کردن توی یک استارتاپ مرتبط با گوشیهای موبایل؟ اپلای کردن برای گوگل؟ هدف رو اگر بدونیم تقریبا مشخصه که باید چیکار کنیم. راه بر اساس مقصد قابل تشخیصه و حتی در مواردی انتخاب مقصد به معنی انتخاب راه است.
بذار موضوع انتخاب بهینه زبان برنامه نویسی رو با یک نمودار متقاطع توضیح بدم. اطلاعات ما در جهان یا درباره حوزههای شناخته شده برای همه است که تبدیل می شیم به عضوی از یک خیل عظیم (مثلا بعد از چهار سال می شیم مهندس مخابرات فارغ التحصیل از دانشگاه) یا وقت گذاشتیم و در حوزههای کمتر شناخته شده برای عموم اطلاعات کسب کردیم (و مثلا شدیم کسی که تجربه و دانش زیادی در مورد چاپ کتاب داره). اولی شغلهای بیشتری داره ولی معمولا حقوقش کمتره چون کلی آدم دیگه هم هستن که همونها رو بلدن. از اونطرف یک بحث دیگه اینه که دانش ما چقدر عام است و چقدر خاص. آیا ما «کلا برنامه نویسی بلدیم» یا «می دونیم چطوری باید برنامه های چند رشته ای (مالتی ترد) نوشت» ؟ آیا ما کلا کتاب چاپ کردن بلدیم یا تخصصمون دقیقا در این است که بدونیم بهترین چسب موجود در بازار برای چسبوندن جلد کتاب به شیرازه، چیه. بذارین این دو تا رو روی نموداری که حرفش رو می زدم نشون بدم:

با توضیات بالا واضحه که یک برنامه نویس دات نت همیشه حقوق داره و همیشه در شرکت های متوسط کار داره. استرسش برای پیدا کردن کار کمه ولی در عوض در نگه داشتن کار اوضاعش خوب نیست چون هزاران نفر هر سال مجموعه مدرک های MCSE MCTS و غیره رو می گیرن و می شن برنامه نویس دات نت. در مقابل به بخشی نگاه کنین که با «پول پروژهای» مشخص شده. ما الان در شرکت دو ماهه دنبال کسی می گردیم که به شکل پروژهای بیاد برای ما سرورهای نود جی اس رو کلاستر و High Aavailable کنه و کم اهمیت ترین موضوع در پروسه قرارداد اینه که طرف چقدر پول می خواد. احتمالا طرف با این کار چند روزه می تونه به اندازه چند ماه برنامه نویس دات نت پول در بیاره ولی ظاهرا در کشور عزیز افراد خیلی خیلی کمی هستن که این کار رو بلد باشن چون هم در حوزه ناشناخته است و هم در حوزه تخصصی.
حالا فکر می کنم انتخاب براتون راحت تر باشه. من همیشه در حوزه ناشناخته تخصصی بودم و راستش یک محور دیگه هم در جدول کشیدم: ترکیبش با یک چیز دیگه. مثلا متخصص سیستم عاملی که مخابرات بلده. مدیر پروژهای که لینوکس بلده و … این خیلی کم پیدا می شه و خیلی هم مورد نیاز نیست ولی اگر کسی شما رو بخواد.. واقعا شما رو همه جوره می خواد. در عوض ممکنه شما به این نتیجه برسین که یک کار امن و راحت می خواین و در این صورت باید نگاهی به بخش استخدام شرکت ها بندازین و ببینین الان چی بورسه. ممکنه دات نت باشه و ممکنه جاوا باشه یا اگر تصمیمتون این شده که برین سراغ استارتاپ موبایلی شخصی خودتون، معلومه که باید یا iOS یاد بگیرین یا Android Development که یک جاهایی بین جدول بالا افتاده.
توجه: جدول رو قارتی کشیدم. اصلا معنی اش این نیست که کاملا اندیشیده و دقیق است. می شه در مورد همه اجزاش حرف زد.
جایزه اینکه تا اینجا خوندین: اگر هدفتون رفتن به چیزی مثل گوگل است، برین و آگهیهای شغلی اش رو ببینین و بعد دقیقا می دونین که در طول یکی دو سال آینده باید چی یاد بگیرین و به کدوم پروژهها کمک کنین تا خود گوگل بیاد ازتون خواهش کنه که برین تو شرکتش کار کنین (: این دیدن ترند مهمه. لازمه درک کنیم که در جهان آینده چه چیزهایی دارن رو می یان و براشون آماده باشیم (مرتبط طنز: آیا موفقیت زبان های برنامه نویسی به ریش و سبیل سازندگانش مربوطه؟)
تا اینجا خوندین؟ (: پس شاید دوست داشته باشین این شماره ویژه پادکست در مورد برنامه نویسی رو هم گوش بدین.
پی نوشت آخر. گفتیم که «اشتباه برنامه نویس های جوان اینه که برنامه نویسی رو با برنامه نویسی به یک زبون خاص اشتباه میگیرن». این یعنی اگر شما برنامه نویسی رو یاد بگیرین می تونین بعدا به هر چیز دیگه سوییچ کنین. رو پایه ها تمرکز کنین و تا وقتی درک می کنین که دارین برنامه نویسی یاد میگیرین، نگران زبون نباشین.
و البته به فهرست محبوبیت زبانهای برنامه نویسی در جهان هم نگاهی بندازین و اگر هنوز سوالی هست در کامنت ها مطرح کنین تا سعی کنم از برنامه نویس هایی بسیار خوب بخوام جواب هاش رو براتون بگن.
صادق توی کامنتها نوشته:
ضمن تایید حرفهای جادی میخواستم برای کسایی که تازه میخوان شروع کنند یه چند تا نکته را یادآوری و تاکید کنم:
۱.سعی کنید با زبانی مثل python شروع کنید که هم زود بتونین نتیجه بگیرین و هم عادتهای خوب کدنویسی براتون نهادینه بشه.
۲. از خوندن و یادگرفتن Design patternها و Best practiceها ولو با زبان دیگهای غیر از زبان تخصصی شما پیادهسازی شده غفلت نکنید که موجب پشیمانیست.
۳. از ابتدای کار عادت کنید برای کدهاتون کامنت مناسب و واضح بنویسید.
۴. کد خوب بخونید (توی پروژههای آزاد اغلب کدها خیلی خوبند چون تعداد زیادی توش مشارکت میکنند)، توی توسعه پروژههای آزاد مشارکت کنید از گزارش باگ گرفته تا نوشتن پلاگین و …
۵. سعی کنید ارتباطهاتون با آدمهای متخصص توی زمینه کاریتون زیاد کنید، از فرصت گپ زدن باعاشون استفاده کنید، توی فروم و irc فعال باشین نه فقط برای پرسیدن که برای مشارکت و پاسخ دادن.
۶. خوشبین باشید و شاد. ماری را انجام بدین که ازش لذت میبرین. البته لذت بردن خیلی وقتها به معنی آسون بودن یا پول زیاد درآوردن نیست. در ضمن سعی نکنید تقلید کنید.
۷. وقتی دارین کد میخونید واقعا بفهمید چی به چیه. و بد نیست فکر کنید روش بهتری برای پیادهسازی اون کد به ذهنتون میرسه یا نه.
۸. وقتی تونستید کد بقیه را سریع دیباگ کنید میتونید کمکم حس کنید که حرفه ای شدین. البته یادگرفتن انتها نداره.
تولد ۴۳ سالگی لینوس توروالدز مبارک

امروز ۲۸ دسامبر است و تولد لینوس توروالدز از پدر و مادری فنلاندی در زمستانی سرد (: میلوکس یادآوری کرد و خوشحالیم که این برنامه نویس عالی متولد شد تا ما لینوکس رو داشته باشیم و گیت رو… هرچند که معتقدیم اگر ایشون در اون لحظه خاص اون کار خاص رو نمی کرد، یک کم اینطرف و اونطرف تر یکی دیگه آستین بالا می زد و رسالت تاریخی نوشتن یک هسته آزاد و قوی رو انجام می داد. توروالدز بد اخلاق، یکی از بهترین برنامه نویس های جهانه. خیلیها یک محصول خوب دارن ولی وقتی شما گیت رو به عنوان پروژه دوم انجام بدین، ثابت کردین که محصول اولتون اتفاقی نبوده. تولد ۴۳ سالگی لینوس توروالدز مبارک.
مرسی از گیف کارت های آمازون
حسابی ممنون از علی، محمد، فرزاد و همایون به خاطر گیفت کارتهای آمازونی که فرستادن. بسیار خوشحالم کردین دوستان و ممنون – راستش کشف نکردم چطوری می تونم به تک تک جواب بدم چون آمازون فقط بهم اسم گفت و گفتم حداقل اینجا بنویسم. حس خوبی داشت. هم از پیامهای گرمتون خوشحال شدم و هم به درخواستهایی که داشتین عمل کردم (: بازم مرسی و کلی حال داد. الان هم کیبورد محبوبم رو دارم و هم از خواب بیدار کننده عالی ام هم دیگه ۱۴ روزه نیست و راحت کار می کنه و هم کردیت اضافی برای خریدهای آتی.
بشتابید: مارکت آمازون و پنج دلار کردیت مجانی برای دارندگان اندروید

یک ایده عالی از آمازون برای جذب مردم به مارکت خوبش! اگر اندروید دارین، امروز و فردا و پس فردا رو فرصت دارین تا اپلیکیشن مارکت آمازون رو نصب کنین و پنج دلار مجانی کردیت جایزه بگیرین. این موضوع برای ما ایرانیها که حتی اگر بخوایم امکان خرید برنامه با کردیت کارت رو نداریم فرصتی عالیه برای داشتن کمی پول، عضو دنیا بودن و خریدن پنج دلار اپلیکیشن.
برای اینکه از این فرصت استفاده کنین همین امروز یا حداکثر فردا یا نه دیگه آخرش پس فردا:
- اگر قبلا ایناکر رو نکردین تنظیمات گوشی رو باز کنین و بگین که برنامهها می تونن از Unknown Sources نصب بشن. اکثر ما ایرانیها قبلا اینکار رو کردیم تیک رو بزنین و اوکی کنین.
- در آمازون دات کام برای خودتون یک اکانت بسازین
- از اینجا مارکت اندروید آمازون رو دانلود و نصب کنین
- مشخصاتتون رو به اپ استور آمازون بدین و یک برنامه (حتی رایگان) رو دانلود کنین
مدتی بعد براتون یک ایمیل خواهد اومد که می گه پنج دلار کردیت مجانی در اپ استور آمازون دارین که باید تا آخر ماه خرجش کنین.
لازم به ذکره که من در نقش نابغه، در حالی که از این جریان بسیار خوشحال بودم چون ماه ها بود می خواستم کیبورد Swype رو بخرم و امکانش برام نبود، رفتم این کارها رو کردم ولی به جای اپلیکیشن مجانی یک اپلیکیشن مهمل ۴ دلاری خریدم چون فکر می کردم مجانی شده. نگو مجانی نبود و آمازون پولش رو از اون ۵ دلاری که بهم داده بود کم کرد ولی حالا که دوستان لطف کردن گیفت کارت دادن، با اون می خرم. مرسی واقعا و کلی شاد شدم و من هنوزم نمی تونم کیبوردم رو بخرم! اگر خواستین ۵ دلار گیفت کارت دونیت کنین با علاقه پذیرایم در آدرس jadijadi روی جیمیل دات فلان.
آپدیت: اگر از قبل اپلیکیشن اپ استور آمازون رو داشتین، کافیه بازش کنین و آپدیتش کنین به نسخه ۷.۵ به بعد (از منو Check for updates یا چنین چیزی) و بعد یک اپلیکیشن یا بازی (حتی مجانی) دانلود کنین و پنج دلارتون رو جایزه بگیرین.
می دونین چرا ~ نشون دهنده دایرکتوری خونه است؟ چون…
توی سیستمهای یونیکسی (از بی اس دیها، گنو/لینوکسها و مک او اس تن) تیلدا یا همون ~ نشون دهنده دایرکتوری خونه است. مثلا این دستور شما رو به خونه تون می بره:
$ cd ~ $ #که البته حرفههای می دونن ~ توش اضافی است (:
اما چرا؟ چون زمانی که در دهه ۷۰ ترمینالهای ADM-3A مرسوم بودن کلید HOME (که الان روی کیبوردهای ما مهم شده و یک دگمه مستقل داره و کرسر رو به اول خط می بره) و ~ روی یک کلید بودن. درست مثل این:
و دقیقا به همین خاطر بود که یونیکسیها تصمیم گرفتن از کلید ~ برای اشاره به هوم دایرکتوری استفاده کنن.

جایزه: آیا می دونین چرا HJKL در ادیتورهایی مثل vi به عنوان کلیدهای جهتنما کار می کنه؟ عکس بالا این رو هم توضیح می ده.
با کوبلی آشنا بشین: مکعب ۱۵ سانتی که رو گوشهاش میایسته و راه می ره
ترکیبی بسیار هوشمندانه از چرخهایی با سرعت کنترل شونده، پروسسوری سریع و نرم افزار به این مکعب بانمک ۱۵ در ۱۵ در ۱۵ امکان داده که نه فقط روی گوشهاش بایسته، که درمقابل تلنگر مقاوم باشه و بتونه روی لبهاش بره و حتی از یک گوشه به یک گوشهاش حرکت کنه و عملا راه بره! اگر اینترنتی درخور شعور بشر امروزی دارین حتما ویدئو رو ببینین چون عالیه.
ایده ای جذاب برای قابلیت جدید گوگل: قاچاق سایت ها توسط ایمیل
آرش جعفری بعد از اینکه توی رادیو گیک از قابلیت جدید گوگل مبنی بر کش کردن تصاویر مطلع شده، ایده ای جالب به فکرش رسیده: قاچاق تصاویر و سایت هایی که دولتهای محترم (از اصلاحات که سانسور اینترنت رو شروع کرد تا معجزه هزاره که بعدا گفتن بگین انحرافی بوده تا تدبیر و امید) تشخیص داده باید فیلترشون کنه چون برای مردم معمولی مناسب نیستن توسط جیمیل. بخش مهم اینه که به حرف زدن بسنده نکرده و مثل یک گیک واقعی، کد رو نشون جهانیان داده. سری به مطلبش بزنین و بیشتر بخونین. شاید از نظر فنی برای اکثر ما راه حل مناسبی برای عبور از سانسور نباشه ولی ایده ای فوق العاده است و اجرایی عالی و گیکی (: