درباره انتخاب زبون برنامه نویسی (با توجه به مطالبتون و کمک دوستان) به این رسیدم کi باید از پایه مثلا الگوریتم و فلوچارت شروع کرد و بعدش رفت سراغ یه زبون مثلا پایتون. هدفم اینه کi عمقی پایه ها رو یاد بگیرم کi وقتی به یه کد نگاه کردم بتونم درکش کنم خواهشم اینه کi سایتی مفید یا کتاب یا … میتونید معرفی کنید یا از دوستان برنامه نویستون بپرسید؟
و من ترجیح دادم به افتخار سیستم جدید کامنتها از شما بپرسم… کسی که دوست داره الگوریتم یاد بگیره باید از کجا شروع کنه و کجا بره؟
دوستان در شیراز لاگ یک برنامه خوب هماهنگ کردن: کارگاه آموزش اسکرچ به کودکان بین ۹ تا ۱۳ سال. این کارگاه پنج ساعته در همین پنجشنبه یعنی ۱۲ شهریور برگزار خواهد شد و من بودم و بچه ای بود که دوستش داشتم حتما می بردمش.. چرا؟
چون زبان اسکرچ درست شده برای آموزش برنامه نویسی به کودکان، به شکلی تصویری و شاد و بامزه
چون گروه برگزار کننده آدم های با سابقه و باحالی هستن
چون ممکن بود باعث بشه بچه ام خط جدیدی رو در زندگی تجربه کنه
چون کلا با بچه ها باید چیکار کرد؟ چی بهتر از یک برنامه فان جدید برای مادر و پدر و بچه؟
و چند تا بچه هستن که بتونن بگن خودشون یک بازی نوشتن؟ (:
آپدیت ساعت ۱۹: الان باز شده (: وقتی می گم «ابلهانه» یعنی انتظار میره سانسورچی این یکی رو دیگه بفهمه. ظاهرا واقعا ابلهانه بوده و سانسورچی متوجه اش شد (:
از وقتی دوره آموزش لینوکس ال پی آی سی ۱۰۱ رو منتشر کردم این سوال رو حتی بیشتر از قبل می گیرم: «فرض کنین من مدرک فلان رو گرفتم، آیا جایی هست که منو استخدام کنه؟». جواب اینه که «نه! اینکه شما مدرک داشته باشین دلیل نمی شه که حتما جایی باشه که شما رو استخدام کنه». به پنج دلیل که این مقاله سرفصلهاش رو گفته و من اضافات خودم رو کنارش گذاشتم و بعدش هم نکات مثبت مدارک رو گفتهام.
مدرک باعث استخدام شما نمی شه چون…
نرمافزار صنعتی بسیار سریع است
در بسیاری از رشتهها تغییرات خیلی زیاد نیست و به همین دلیل «سنجش دانش» توش ممکنتره. اما در نرمافزار همه چیز شدیدا در حال تغییره و مهارتهایی که پنج سال پیش داشتین امروزه تنها کاربردش دادن یک دید قوی و کلنگر به شماست اما مهارتهایی که اون موقع بلد بودین معمولا حالا چندان به درد شما نمی خوره. فایروال لینوکس در دو سال گذشه تقریبا سوییچ کاملی به firewalld کرده، systemd روش جدید استارت و استاپ و تنظیم سرویسها است، برنامه نویسی آی او اس به سمت سوییفت خواهد رفت و NoSQLها یکی از موضوعات داغی هستن که حتی اگر به عنوان یک برنامه نویس مرسوم وارد یک شرکت بشین، در موردش خواهید شنید – چه برسه به بیگ دیتا و یادگیری ماشینی و دیتا ساینس. معلومه که گذشتهها هنوز هستن و ارزشمند ولی در این دنیا معمولا داشتن یک مدرک «لینوکس» نشون دهنده سواد این لحظه شما نیست.
هزار مدل مدرک هست
داشتن یک «مدرک» این روزها کاری بسیار ساده است. اگر دکترا می خواین می تونین به انواع و اقسام روشها اونو بگیرین، اگر لازم دارین مدرک لینوکس داشته باشین معلومه چیکار باید بکنین و اگر مدرک کمک های اولیه می خواین بعید نیست با چند ساعت وقت بتونین یک کاغذ به دست بیارین که بگه شما دوره ای در این مورد دیدین. فقط داشتن یک مدرک معنی خاصی نداره بلکه مهمه اینو از کجا گرفتین و پشتوانه اون مدرک چیه. این رو هم بگم که گاهی این مدارک اصولا برعکس چیزی هستن که در واقعیت اتفاق می افته. خیلی از چیزهایی که در امتحان ها «پرسیده می شه» اصولا در دنیای واقعی کاربرد نداره و خیلی از چیزهایی که توی دنیای واقعی مهمه (مثلا گیت، کار با لاگ ها، تست برنامه، …) اصولا در هیچ مدرک برنامه نویسی پوشش داده نشده.
خیلی از مصاحبه کنندهها خودشون هم مدرک ندارن
برای رسیدن به مدیرهای رده بالاتر و پروسههای استخدامی که توشون مدارک شما مهم میشه، باید اول از مرز مصاحبه کنندههای اولیه رد بشین! این مصاحبه کنندهها خیلی وقت ها مدرک ندارن و به همین دلیل حتی براشون مهمه که این مدارک رو نه چندان مهم بدونن. این مساله باعث می شه شما فقط به صرف داشتن مدرک از نظر اونها Wowwww نباشین! از اونطرف برای استخدام کنندهها مهمه که شما کار رو بلد باشین و در نهایت تستی که شما حین مصاحبه با مدرک می دین با تستی که کس دیگه بدون مدرک می ده کاملا مشابه است و کسی استخدام می شه که کار رو بهتر انجام بده نه کسی که مدرک داشته (: مطمئن باشین. من برای تعداد خیلی زیادی شرکت مصاحبه استخدامی کرده ام!
مدرکها خیلی وقتها دکون هستن
خیلی از مدرکها دکون هستن. دو سال یکبار باید تکرارشون کنین، باید براشون امتیاز جمع کنین، باید مرحله های مختلف اونها رو بگیرین و غیره. در واقع این مدرکها مکانیزمی هستن برای درآمد زایی کسانی که اون مدارک رو می دن. دقیقا مثل دانشگاههای غیرانتفاعی(؟!) و غیره که هدف اصلی شون کسب درآمد است نه انتشار علم و اتفاقا خیلی از مراجعینشون هم دنبال کسب مدرک هستن نه کسب علم. این الزاما اشکالی نداره و یک مساله مرتبط با بیزنس است ولی در نهایت این بخشش برای ما مهمه که باعث می شه کسی که مدرک داره رو الزاما متخصص ندونیم که مراجعه کرده به یک مرکز علم پراکنی و تاییدیه گرفته که علم رو کسب کرده. یک لحظه فکر کنین به اینکه در چند ساعت می شه اسکرام رو یاد گرفت و در مقابل چند مرحله طول می کشه یکی از نظر مدرکی اسکرام مستر بشه و بعدش اسکرام پروداکت اونرش رو بگیره یا مثلا بره سراغ مدرک اسکرام دولوپر.
مدرک ثابت می کنه که می تونیم تست پاس کنیم
برای گرفتن مدرک لازم نیست حتما مسائل رو عمیق درک کنیم. کافیه نمونه سوال بخونیم، درس ها رو نگاه کنیم و تو امتحان شرکت کنیم. حتی در امتحان های واقعا سختی مثل CCIE لب روش اصلی پاس کردن امتحان تمرکز در حل نمونه و رفتن به بوت کمپ ها است و اگر هم حوصله کارهای سخت نداشته باشیم برای خیلی از امتحان ها می شه از پاکستان یک نفر رو اجاره کرد که به اسم ما امتحان بده و مدرک بیاد دم در خونه مون (:
اونطرف ماجرا!
دقت کنین که من هیچ وقت نمی گم هر کس مدرک داره بی سواده یا تقلب کرده یا داشتن مدرک هیچ فایده ای نداره. من دارم می گم این پنج مورد باعث می شه یک کارفرما فقط با دیدن یک نفر که یک مدرک داره، استخدامش نکنه. مدرک فایدههایی هم داره:
مدرک در شرایط برابر شانس شما رو افزایش می ده
اگر شما و یک نفر دیگه هر دو یک کار رو بلد باشین و در مصاحبه تقریبا مساوی بشین، شمایی که مدرک دارین شانس بیشتری برای استخدام دارین. حتی قبل از این مرحله هم وقتی کسی رزومه شما رو می بینه اگر مدارک مرتبط و معقولی رو داشته باشین، احتمال اینکه با خوشحالی شما رو به مصاحبه دعوت کنن بالاتره.
مدرک باعث می شه سیستماتیک بخونین
مثل مهمی هست که می گه «اگر فقط یک چکش داشته باشین، همه مسالهها رو شبیه میخ می بینین!». مشکل اصلی برنامه نویسی هم همینه! ما به شکل تجربی بخشی از یک چیز رو یاد می گیریم و بعد سعی می کنیم همه چیز رو با همون سواد پیاده کنیم. برای اولین بار در اینجا اعتراف می کنم که من تازه برنامه نویس شده بودم و هنوز «دیتابیس رابطهای» رو نمیشناختم که یک کار بزرگ و هیجان انگیز بهم پیشنهاد شد و برای انجامش خودم مکانیزمی شبیه به دیتابیس رو پیاده سازی کردم! حماقت محض به دلیل بی سوادی در یک بخش از دنیای برنامه نویسی. به همین شکل ممکنه شما دستور rename در لینوکس رو بلد نباشین و به جاش سعی کنین بش اسکریپتی پیچیده بنویسین یا به جای یک استفاده ساده از sed به سراغ perl برین. گرفتن مدرک تضمین می کنه که شما همه گوشههای یک ماجرا رو دیدین. به همین خاطر پیشنهاد من اینه که مثلا اگر می خواین لینوکس یاد بگیریم من پیشنهاد می کنم از سرفصل های امتحان LPIC1 پیش برین. راستش به نظر این بهترین بخش یک مدرک است.
پروسه گرفتن مدرک شما رو به جامعه وارد می کنه
برای گرفتن مدرک شما ثبت نام می کنین، با چند نفر آدم مشابه رو در رو می شین و خیلی چیزهای دیگه و حتی ممکنه پاتون به جلسات مرتبط با اون جریان هم باز بشه. این یک فایده جانبی مدرک گرفتن است که اصلا نباید ازش بگذریم. برنامه نویس خوب در روابط اجتماعی اش شناخته می شه و رشد می کنه. در زمان کنکور ارشد برای من مهم بود توی کلاس های کنکور ارشد ثبت نام کنم فقط به این خاطر که ببینم بقیه ای که قراره کنکور بدن چه کسایی هستن، کی موقع ثبت نام است، دفترچه رو از کجا باید گرفت و بهترین دانشگاهها کدومها هستن.
نتیجه
مدرکها رو دنبال کنین و اگر خواستین بگیرین ولی درگیر بازی «گرفتن مدرک» نشین و معتقد هم نباشین که اگر مدرک دارین حتما کار پیدا می کنین. در نهایت کار به آدمهای با مهارت داده می شه و اگر مهارت کسب کنین به راحتی در ایران کار پیدا می کنین و به نظر من وقت گذاشتن برای گذروندن دوره های رایگان معتبر خیلی بیشتر از گرفتن یک مدرک شانس شما رو توی به دست آوردن ی کا رخوب افزایش می ده. اگر دوست دارین چیزی رو شروع کنین شاید درسنامه بد نباشه و اگر دنبال چیزی حرفهای تر هستین جاهایی مثل کد آکادمی خوبه و کورسرا و البته اگر می خواین هر سرتیفیکیتی رو برای خودتون چاپ کنین اینجا بهترینه.
در این قسمت از جادی تی وی، یک برنامه بسیار ساده برای تبدیل یک فایل متنی به چندین فایل کارت ویزیت دیجیتال با استفاده از زبان برنامه نویسی پایتون و ابزار ipython notebook که معمولا دیتا ساینتیست ها ازش استفاده می کنن می نویسیم. هدف آشنایی با یک ضرب المثل بزرگ در دنیای برنامه نویسی است:
برنامه بزرگی که کار می کنه روزی برنامه ساده ای بوده که کار می کرده
و همچنین شناختن ipython و notebookهاش که یکی از پر کاربردترین ابزارهای دیتا ساینتیست هایی هستن که با زبان پایتون کار میکنن.
اپل در حال تغییر زبان برنامه نویسی ابزارهاش به زبان برنامه نویسی سوییفت است و حالا این زبون با یک شیوه عجیب داره دارای یک راهنمای خوب می شه: همکاری کم سر و صدای اپل با یک استاد دانشگاه و انتشار محتوا روی گیتهاب.
این بر خلاف شیوه قدیمی اپل است که درس ها رو فقط با امضای اسم Apple Education منتشر میکرد و اونهم روی پلتفرمهای خودش. یک نفر ماجرا رو دنبال کرده و بعد از تماس با نویسنده درسها و مقایسه صفحات اپل و لینک های اپل به این سایت در نهایت نتیجه گرفته که درس آموزش سوییفت روی گیت هاب واقعا توسط اپل پیش می ره.
می دونین که من معمولا لازم نمی بینم از چیزی بگم که همه دارن ازش حرف می زنن. منطقا اگر سه سال پیش بود براتون از موفقیت طرفدارهای حقوق مدنی می نوشتم و اینکه در آمریکا حکومت قبول کرده که اینکه چه جنسی با چه جنسی ازدواج می کنه ربطی به اون نداره ولی خب الان به اندازه کافی این بحث در جاهای مختلف هست و من چیز خاصی ندارم بهش اضافه کنم. اما یک اتفاق کوچولو باعث شد در این مورد این پست رو بنویسم. اون اتفاق اینه:
هه هه.. بیت باکت که ریپوزیتوری کد ما در یکسری از پروژهها است در جواب پوش برامون پرچم رنگین کمان فرستاده (: دقت کنین که در آمریکا همه گی نیستن ولی مثل هر جای دیگه اکثر آدم های حسابی از گرفتن یکی از حقوق انسانی از دولتشون خوشحال میشن. در واقع این یک پیروزی مدنی برای کسانی است که معتقدن دولت حق نداره در زندگی خصوصی مردم دخالت کنه و به جای سرک کشیدن تو اینکه کی چی می پوشه، چی می خوره، چی می گه، با کی رابطه داره و … به وظایف خودش می می پردازه که اکثرا چیزهایی هستن که باید اتفاق بیافتن ولی افراد مستقل سراغش نمی رن (مثلا آموزش رایگان، درمان رایگان، خدمات مخابراتی و …).
جذابیت اصلی این پرچم برای من این بود که می بینم چقدر در جامعه ای از برنامه نویس ها، گیک و غیره که دوستشون دارم و لذت ببرم از اینکه بخشی از یک جامعه جهانی فهیم هستم.
ما روزانه ۲.۵ کویینتیلیون بایت دیتا درست می کنیم… اگر نمی دونین کویینتیلیون چقدره بذارین این شکلی بگم: نود درصد کل دیتایی که در جهان هست، در دو سال گذشته تولید شده! سیگنال های جی پی اس، سوشیال مدیا، کلیکها، سنسورها، ویدئوها، عکسها، خریدها، خوش اومدن ها، رفتارها و هر چیزی که فکرش رو بکنین الان دیتا است. این دیتا بزرگه! این دیتا در دست دانشمندهای داده است… رادیو گیک شماره ۵۳ برای شما مساله رو رازگشایی می کنه با ما باشین تا از آر، هدوپ، دانشمند داده، داده های بزرگ، یادگیری ماشینی و هر چیز دیگه مد روز عقب نمونین. در این شماره امیرصدیقی با تلفن ما رو همراهی می کنه.
چیزی که نتونین اندازه گیری کنین رو نمی تونین مدیریت کنین.
سرفصلها:
– حجم اطلاعات
– مثال کتابفروشی
– مثال کشورهایی که سراغش رفتن. از آمریکا تا هند
– مثال شرکت ها
– مثال علم
– در سه بخش حرف می زنیم: بیگ دیتا چیه، دیتا ساینس چیه، یادگیری ماشینی چیه
یادداشت های شخصی
اینها یادداشت های شخصی هستن. شدیدا توصیه می کنم به جاشون از بالای مطلب خود پادکست رو گوش کنین (:
این مفهوم نسبتا جدیده.. مال دهه اول قرن بیست و یک و شرکت ها و دولتهای زیادی هم سراغش رفتن.
اوباما: طرفدارشه. دی جی پاتیل. انتخابات ۲۰۱۲
بیگ دیتایی های هند هم از عوامل موثر پیروزی در انتخابات ۲۰۱۴ هند بودن
اینترنت چیزها
ebay:دو تا دیتاورهاوس داره (انبار داده) که کلا ۴۶ پتابایت است. یک چهل پتابایت هم هادوپ داره برای سرچ
آمازون: دیگه گفتن نداره… مستقل از خریدارها حدود نیم میلیون هم فروشنده داره. بزرگترین کلاستر لینوکس دیتابیسی جهان با حدود پنجاه ترابایت اطلاعات
فیسبوک: ۵۰ میلیارد عکس…
و البته توی علم هم هست
لارج هاردون کلایدر ۱۵۰ میلیون سنسور داره که در ثانیه ۴۰ میلیون واحد اطلاعاتی تحویل می دن.. این سیستم در ثانیه تقریبا ۶۰۰ میلیون برخورد ذرات درست می کنه که بعد از حذف کردن ۹۹.۹۹۹۹۵ تاشون، حدود ۱۰۰ برخورد در ثانیه رو نگه می داره که چیزی است که دانشمندها دنبالشن.
صنایع ای که بیشتر نیازمند داده کاوی و Big Data هستند:
۱- تجارت الکترونیک
شرکت ها با استفاده از آنالیز رفتار مشتریان خود می توانند محصولات بهتری را در اختیارشان قرار دهند که در این زمینه می توان به شرکت آمازون اشاره نمود.
۲-تبلیغات دیجیتالی.
در حوزه تبلیغات کارفرمایان می توانند بر اساس علایق مشتریان خود تبلیغات مناسب را نشان دهند
۳- در صنعت بازی سازی
با استفاده از جمع آوری داده و تحلیل رفتاری جامعه می توان بازی مناسب تولید کرد کنسول هایی مثل ایکس باکس با تعریف یک حساب کاربری آنلاین به تحلیل رفتاری کاربران خود می پردازد.
بیگ دیتا اشاره داره به دیتا ست هایی اونقدر بزرگ که روش های کلاسیک نمی تونن جوابگوش باشن. در اصل ما تعریف دقیقی از بیگ دیتا نداریم و به نظر من قشنگترین تعریف اینه که بگیم بیگ دیتا دیتایی است که روی یک ماشین جا نمی شه. این «جا نشدن» رو با سه تا V نشون می دن: volume, variety, velocity. حجم تنوع نرخ تولید.
حجم
گفتم دیگه.. در دو سال اخیر ما ۹ برابر کل تاریخ بشر اطلاعات تولید کردیم! در واقع ذخیره کردیم. الان می گن در هر ثانیه برابر کل اطلاعاتی که بیست سال قبل روی اینترنت بوده بهش اطلاعات اضافه می شه! ختمین اینه که فروشگاه والمارت ۲.۵ پتابایت اطلاعات مشتریان رو در هر ساعت جابجا می کنه یعنی تقریبا ۲۰ تا کابینت پر از کاغذ…
سرعت
و سرعت این حجم از اطلاعات هم زیاده. گوگل مدعی می شه که با نگاه کردن به سرچهای در حال انجام، سریعتر از سازمان پیشگری از بیماری آمریکا می تونه شیوع بیماریها رو تشخیص بده، تیمی توی ام آی تی به شکل زنده از روی سیگنال های موبایل کشف می کنن که در فروشگاهها چند نفر مشغول خرید عید هستن و HFT رو بگم. اینها مستقیما پول هستن برای کسی که بتونه اطلاعات رو سریعتر جابجا کنه.
تنوع
فقط فکر کنین که چطوری دارین اطلاعاتتون رو با همه به اشتراک می ذارین. من امروز ۳ گیگ آرشیو عکس روی گوگل آپلود کردم. چندین توییت فارسی کردم و یکی دو تا انگلیسی. این متن رو دارم می نویسم و شما صداش رو می شنوین ولی اینها چیزهایی هست که خودم می بینم. بارها توی بانکم لاگین کردم، با گوشی در دستم راه رفتم، با موبایلم بازی کردم، توی گیت برنامه پوش کردم، خرید کردم، اسمس فرستادم، وایبر زدم و ایمیلم رو چک کردم و توی وب چرخیدم. تک تک اینها ذخیره شدن که بعدا … علیه من استفاده بشن! یادتون باشه توییتر تازه ۲۰۰۶ ظاهر شد و فیسبوک تازه ۲۰۰۴ و آی پد ۲۰۱۰ و اینها هر کدوم به یک شکل باعث انفجار ثبت اطلاعات در اشکال گوناگون شدن.
این دیتا از کجا می یاد؟ صفحه ۹ فایل ۴
ما این دیتا رو کجا ذخیره می کنیم؟
تعداد سرورها از اینفوگرافی و اینکه حالا اینا رو چطوری ذخیره کنیم؟
توسعه عمودی و افقی رو بگم
مفهوم Hdfs و بیگ تیبل و مپ ردیوس گوگل در ۲۰۰۴ و بعد تلاش های آپاچی
بعد هادوپ و تکنولوژی های روش مثلا hive
هادوپ: فیسبوک و توییتر و لیندکدین و شرکت هایی مثل کلاودارا یا هورتن ورکز.
حالا چطوری می شه از این دیتاها استفاده کرد؟
مپ ردیوس رو توضیح بدم با یک مثال (چه مثالی به ذهنم می رسه اون موقع یعنی؟)
مفاهیمی مثل هایو و ایمپالا
دیتابیس های noSQL
اما کی با این دیتاها کار میکنه؟
دیتاساینتیست ها! افرادی که مهارتی دارن که قبلا اصولا وجود نداشته.. یا بهتر بگم ترکیب یاز مهارت هایی رو دارن که قبلا متخصصهاش پر بودن ولی هر کدومشون فقط در یک بخش مهارت داشتن. دیتاساینتیست ها در مورد شیوه های استخراج و استفاده از اطلاعات کار می کنن. گاهی کار به مهملی اینه که کلی اطلاعات از یک فایل اکسل با فرمت ناسازگار با فارسی رو بخونین و گاهی به این باحالی است که کشف کنین در این لحظه بهترین ماشین دست دومی که می شه خرید بر اساس اطلاعات فلان سایت چیه. اصطلاح توی ۲۰۰۱ درست شده و برای دانشمند داده بودن یک نفر باید چیزهایی مثل اینها رو بلد باشه:
مفاهیم آمار
برنامه نویسی آماری
برنامه نویسی (پایتون، آر، …)
کارهای مقدماتی با دادهها: خوندن، تمیزکردن، انتقال دادن و …
یادگیری ماشینی
نمایش اطلاعات / ویژوالایزیشن
درست کردن داشبوردها و نشون دادن اطلاعات
دیتابیس (کاساندرا، اچ بیس، مونگو دی بی)
بیگ دیتا
چیکار می کنن؟
گاهی کارهای خیلی ساده. در حد اینکه کیا مشتری ما هستن یا اینکه کی قبلا زنگ زده
گاهی کارهای جالبتر در این حد که چه مثالی بزنم؟ چاره به کیا می تونه چی بفروشه الان و گاهی کارهای خیلی جالبتر مثل اینکه پول های دولت رو شفاف کنیم (آمریکا و گیت هاب یا سوئد و انتشار درآمدها) یا مثلا روشی برای کشف اینکه نویسنده هری پاتر، چه کتاب دیگه ای رو با اسم مستعار منتشر کرده (کمی بحث در این مورد).
و البته این آدم ها کیان؟ هیچکدوم منبع اطلاعاتیشون تلگرام نیست (: و صفحه بیست شش که می گه خیلی خوشحالن و کمی بحث در مورد الگوریتم هایی که باید بلد باشیم