وبلاگ شخصی سید سروش هاشمی

به نام خدایم روان شد به کار / که نامش بود هم به فرجام کار

وبلاگ شخصی سید سروش هاشمی

به نام خدایم روان شد به کار / که نامش بود هم به فرجام کار

وبلاگ شخصی سید سروش هاشمی

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

۵ مطلب در خرداد ۱۳۹۵ ثبت شده است

یه شب دیگه بعد از کلی کار

   اومدم این آهنگ رو بفرستم: 

   

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

  چند دقیقه قبل از انتشار پست فهمیدم برای پدر یکی از دوستام مشکلی پیش اومده. :(( انگار هر شب تو این دنیا هر کسی تو یه حالیه.

  از اون جایی که به آرزو و ... اعتقادی ندارم پرسیدم کمکی از دستم برمیاد گفت «از دست ما هم کاری بر نمیاد جز دعا». بنابراین با این که به آرزو و ... اعتقادی ندارم، کاری دیگه ای نمی تونم بکنم. 

   انگار هر شب تو این دنیا هر کسی تو یه حالیه . . .

قدمی برای آرامش بیشتر اهالی کره زمین

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

collaborating

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

دنیای من، دنیای من

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

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

  چند وقت پیش فیلم the Schindler's list رو دیدم. شخصیتی شبیه خودم دیدم که به هیچ چیز جز کار خودش فکر نمی کرد ولی دیدن حوادث زندگی مردم اون رو تغییر داد. 

  من تو این دنیا چی کار می کنم؟ نمی خوام از دنیا فقط برای لذت بردن خودم استفاده کنم. نه این جوابی نیست که من رو راضی کنه. ولی چی کار می تونم بکنم؟ 

  دست این کشاورزی که این میوه ای که دارم می خورم رو کاشته درد نکنه. دست تمام کارگرانی که این میوه رو «داشت» کردن. دست تمام کسانی که این کاغذی که من روش می نویسم. دست تمام کسانی که برای آموزش علم به من و خانواده ام تلاش کردن. دست تمام کسانی که به من احساس امنیت می دن، دست تمام کسانی که به من بیماری من و خانواده و دوستام و ... رو درمان می کنن، ...

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

پی نوشت: اگر می خوای به این پست جواب بدی و بگی من کاری برات انجام دادم ازت عاجزانه خواهش می کنم واقعا بشینی فکر کنی و از خودت بپرسی «واقعا اون کار این قدر ارزشمند بوده؟». و وقتی به جواب رسیدی جوابت رو توی ذهنت نگه داری و به جای این که این جا بنویسی تو رفتارت با من جوابت رو نشون بدی. حالا می خواد جوابت «نه» باشه یا «آره». ممنون. (لطفا اگر جوابت مثبته صراحتا بهم نگو)

php vs C# vs python

   یکی از دوستان سوالاتی با مضمون php vs C# vs python (و ادامه این بحث) پرسید و من هم جوابش رو دادم. دیدم این سوالا زیاد پرسیده میشه گفتم این جا بذارم که از این به بعد من(یا شما) اگر دیدیم مناسبه به این جا ارجاع بدیم.

  پرسش گر: php vs C# vs python

  من: 

  اوایلی که وب تازه راه افتاده بود php یکه تاز میدون بود. زبان قوی و ساده(نسبت به بقیه رقیب هاش در زمان خودش) بود. بنابراین اکثر کسایی که می خواستن back end بزنن می رفتن سراغ php. کلی frame work در زبان php درست شد. مثل word press و joomla و ... . خلاصه خیلی community قوی ای داشت. ولی یه سری مشکلات داشت. سایت های خیلی بزرگ رو بخوای با php بزنی خیلی سخت می شه. چون ساختارش خیلی شی گرا نیست و باید کد رو وسط html بزنی و حالا اگر بخوای یه جایی از کد رو عوض کنی باید چک کنی که آیا جایی مشکلی پیش میاد یا نه(و چون کدها خیلی قالب مشخصی ندارن این کار خیلی راحت نیست) و ... .

  بعد از مدتی، طبق معمول مایکروسافت که دید یه جایی نون هست یه framework برای back end نوشت تحت زبان C# به نام ASP.NET. چون زبان C# خیلی منظم تر و تمیز تر از php بود خیلی ها به سمت ASP.NET کشیده شدن. پروژه های بزرگ در C# خیلی تمیز تر بودن و ساختار C# شی گرا بود. خلاصه که مزیت های C# نسبت به php خیلی خوب بود و باعث شد خیلی ها از php به C# مهاجرت کنن.
تا اون زمان شرکت های زیادی(که دیگه بزرگ شده بودن) از اول کارشون رو با php شروع کرده بودن. وقتی یه شرکت بزرگ کارش رو با یه زبان برنامه نویسی شروع کرده، تغییر تمام کدهایی که زده از یک زبان به یه زبان برنامه نویسی دیگه، خیلی کار سخت، پرهزینه و زمان بری هست. علاوه بر اون باید به تمام نیروهای انسانی متخصصش آموزش بده که بتونه به اون زبان مهاجرت کنه. حتی اگر تصمیم بگیره این فرآیند رو تدریجی انجام بده، مشکلی که باهاش مواجه میشه تنظیم یه برنامه خوب برای مهاجرت تدریجی هست.
بنابراین شرکت ها فقط در صورتی مهاجرت می کردن که مطمئن میشدن سود مهاجرت به هزینه هاش می ارزه.


  بعد از مدتی، امکان تولید زبان های برنامه نویسی high level تر فراهم شد. زبان هایی که float و int و double و ... براشون فرقی نمی کرد و تو فقط کافی بود بگی این متغیر یه عدد هست و بقیه چیزها رو به همون زبان واگذار می کردی. زبان هایی که سادگی و high level بودنشون کدها رو خیلی کوتاه تر می کرد و زمان develop کردن یه نرم افزار رو بسیار کاهش می داد. این زبان ها کم کم راهشون رو به back end وب سایت ها هم باز کردن. مثلا frame work های Ruby on Rails برای زبان Ruby و Django برای Python اومد. چون این زبان ها در ذات high level بودن، کدهای back end وبسایت ها هم خیلی کوتاه می شد و در نتیجه development وبسایت ها خیلی سریع تر میشد. در فضای کنونی خیلی از شرکت ها نیازهاشون در هفته تغییر می کنه بنابراین تو لازم داری وبسایت رو هر هفته تغییر بدی. حالا اگر تغییر دادن وبسایت برای پاسخ گویی به نیازهای جدید بیشتر از 1 هفته طول بکشه، اون شرکت اصلا نمی تونه با اون زبان کار کنه.
  طبق معمول مهاجرت برای شرکت های بزرگ خیلی کار سختی بود و فقط شرکت هایی مهاجرت کردن که مطمئن بودن براشون سود خواهد داشت.

  زبان های high level به خاطر ویژگی های خیلی خوبشون، community خیلی بزرگی پیدا کردن. این community ها از دانشمندان هوش مصنوعی تا پزشکان و ... تشکیل شده. بنابراین package های زیادی که در زبان هایی مثل C# و php و ... نیست در این زبان های پیدا میشه. در بین این زبان های high level، زبان python از بقیه community بزرگتری داره و کلی package برای کارهای academic و همین طور کارهای practical در فضای کاری برای اون وجود داره.

  این بخشی از ماجرای php vs C# vs python بود. برای اطلاعات بیشتر می تونی search کنی.
  البته در search به این خواهی رسید که زبان های C# و (احتمالا) php هم high level هستن. منظور من از high level اصطلاح high level در دنیای کامپیوتر نبود بلکه معنای لغوی high level بود.

  پرسش گر: کدوم رو یاد بگیرم بهتره؟

  من: الان شرکت های خیلی زیادی در ایران هستن که با php و ASP.NET کار می کنن ولی این شرکت ها همون شرکت هایی هستن که گفتم. اگر بخوای تو این شرکت ها استخدام بشی باید همون زبان و frame work ای که اون ها می گن رو بخونی(مگر این که قبول کنن یه گروه برای خودت توی اون شرکت داشته باشی و با زبان برنامه نویسی مورد نظر خودتون کار کنین) ولی اگر بخوای یه کاری برای خودت انجام بدی شدیدا ptyhon و django رو پیشنهاد می کنم. اگر یه کم search کنی میبینی google(و بسیاری از شرکت های بزرگ دیگه) هر جایی که امکانش بوده  از python استفاده کرده(بعضی اوقات امکانش نیست. مثلا python از نظر سرعت اجرا 5 الی 6 برابر کند تر از C هست. حالا تو اگر بخوای یه کار حساس از نظر زمانی رو انجام بدی قطعا python گزینه مناسبی نیست.(هر چند کتابخونه هایی برای زبان python نوشته شدن که در نهایت چیزی که تو می خوای رو با یه سری برنامه به زبان C انجام میدن و خروجی رو بهت میدن) )

  پرسش گر: برای یادگیری python و django چی کار کنم؟

  من: برای یادگیری python می تونی از سایت tutoriaspoint استفاده کنی(آموزش پایتون در سایت tutorialspoint). این سایت آموزش های خیلی مختصر و مفیدی برای کلی موضوع داره. آموزش python اش به اندازه کافی خوبه. برای یادگیری django هم پیشنهاد می کنم به documentation خود django مراجعه کنی. واقعا documentation اش خوبه. یه بخش از سایت Django هست که خیلی مختصر و مفید یه نحوه develop و deploy یه سایت کوچیک رو مرحله به مرحله توضیح داده.(لینک این آموزش مرحله به مرحله). پیشنهاد می کنم از این جا شروع کنی. 

  پرسش گر: چه IDE ای رو پیشنهاد می کنی:

  من:pycharm. می تونی از این لینک دانلودش کنی. این که چرا pycharm خوبه و ... رو دیگه امشب حوصله ندارم توضیح بدم. شاید وقتی دیگر.

  پرسش گر: دستت درد نکنه

  من: خواهش می کنم