وقتی دارین زبان برنامه نویسی جدید یاد میگیرین، برای اینکه بفهمید یادگرفتینش باید بتونید توش همه ساختمان داده های معروف (مثلا لیست، درخت، پشته و ...) رو بتونید پیاده کنید
زبان های جدیدی مثل گو ممکنه پیاده سازی ها متفاوت باشه و هرکسی یه جوری پیاده کنه، اینجا اومدن همه ساختمان داده های معروف رو برای گولنگ پیاده کردن :
github.com/emirpasic/gods
هم میتونید ازشون استفاده کنید هم میتونید کد هاشو ببینید و برای ساختمان داده های شخصی سازی شده ازشون استفاده کنید.
@Linuxor
زبان های جدیدی مثل گو ممکنه پیاده سازی ها متفاوت باشه و هرکسی یه جوری پیاده کنه، اینجا اومدن همه ساختمان داده های معروف رو برای گولنگ پیاده کردن :
github.com/emirpasic/gods
هم میتونید ازشون استفاده کنید هم میتونید کد هاشو ببینید و برای ساختمان داده های شخصی سازی شده ازشون استفاده کنید.
@Linuxor
این کد باحالو ببینید... میدونستین بدن مثل یه برنامه کامپیوتری در حال اجراس؟
مثلا همین واکسن کرونایی که زدید انگاری یه فانکشن یا کلوژر به بدن تزریق کردین که این فانکشن حاوی کد ژنتیکی ویروس (مثل یک snippet از کلاس ویروس) هست و وقتی بدن با ویروس واقعی مواجه شد، این فانکشن روی سلولهای B و T حافظهای کالبک میخونه و سریعاً پادتنها و سلولهای کشنده رو spawn میکنه؛ انگار سیستم ایمنی شما یک garbage collector هوشمند داره که فقط تهدیدات شناختهشده رو پاک میکنه و منابع بدن رو برای کارهای مفید آزاد نگه میداره.
@Linuxor
مثلا همین واکسن کرونایی که زدید انگاری یه فانکشن یا کلوژر به بدن تزریق کردین که این فانکشن حاوی کد ژنتیکی ویروس (مثل یک snippet از کلاس ویروس) هست و وقتی بدن با ویروس واقعی مواجه شد، این فانکشن روی سلولهای B و T حافظهای کالبک میخونه و سریعاً پادتنها و سلولهای کشنده رو spawn میکنه؛ انگار سیستم ایمنی شما یک garbage collector هوشمند داره که فقط تهدیدات شناختهشده رو پاک میکنه و منابع بدن رو برای کارهای مفید آزاد نگه میداره.
@Linuxor
دیدین اوایل که مثلا برنامهنویسی یا هر مهارتی رو یاد میگیرین، چقدر یهویی پول درمیارین؟ بعد کمکم این اتفاق و فرصت ها کمتر میشه؟
به این پدیده میگن Beginner’s Luck: جسارت و هیجان تازهکارها باعث میشه فرصتها راحتتر دستشون بیاد، قبل از اینکه تجربه و ترس از اشتباه محدودشون کنه. البته حرفه ای ها فرصت های بزرگ تر و پایدار تری دارن ولی همیشه محتاطانه عمل میکنن مثلا نمیرن برای یه شرکت نامعتر یا کسی توی تلگرام کار کنن همین باعث میشه شانسشون محدود تر باشه.
@Linuxor
به این پدیده میگن Beginner’s Luck: جسارت و هیجان تازهکارها باعث میشه فرصتها راحتتر دستشون بیاد، قبل از اینکه تجربه و ترس از اشتباه محدودشون کنه. البته حرفه ای ها فرصت های بزرگ تر و پایدار تری دارن ولی همیشه محتاطانه عمل میکنن مثلا نمیرن برای یه شرکت نامعتر یا کسی توی تلگرام کار کنن همین باعث میشه شانسشون محدود تر باشه.
@Linuxor
چند سال پیش که خام تر بودم، نرم افزار های بزرگ رو که نگاه میکردم کلی ازشون اشکال پیدا میکردم میگفتم اینا که این همه پول نیرو و علمشو دارن چرا همچین اشکالاتی دارن؛
بعد فهمیدم مهندسی نرم افزار مثل ساختمون ساختن نیست نقششو بکشی بسازی بری بالا... اینطوریه که هر نرم افزاری که میبینین سر پاست ظاهرا شاید ساختنش کاری نداره ولی پشتش پره از تصمیمهای سخت، خطاهای انسانی، بازنویسیها، مصالحهها بین کیفیت و زمان تحویل، و کلی شببیداری و سختی تحریب و از نو ساختن هستش.
@Linuxor
بعد فهمیدم مهندسی نرم افزار مثل ساختمون ساختن نیست نقششو بکشی بسازی بری بالا... اینطوریه که هر نرم افزاری که میبینین سر پاست ظاهرا شاید ساختنش کاری نداره ولی پشتش پره از تصمیمهای سخت، خطاهای انسانی، بازنویسیها، مصالحهها بین کیفیت و زمان تحویل، و کلی شببیداری و سختی تحریب و از نو ساختن هستش.
@Linuxor
توی اینترنت پر پروژه های آماده ماشین لرنینگی پایتونی هستش اما هیچ کدوم توی پروداکشن واقعی استفاده نمیشن و بیشتر جنبه تحقیقی تفریحی دارن، اینجا لیست پروژه های ماشین لرنینگی هست که واقعا میشه برای پروداکشن و هزاران کاربر استفاده بشن
github.com/EthicalML/awesome-production-machine-learning
@Linuxor
github.com/EthicalML/awesome-production-machine-learning
@Linuxor
یکی از مدلهای فوقالعاده تولید عکس از متن DALL-E هستش،
اما خیلی سنگینه و روی سیستمهای معمولی جواب نمیده!
اینجا اومدن یه نسخه سبکترش ساختن به اسم DALL-E Mini که باهاش میتونی فقط با یه جمله مثل "یک گربه ربات در باغ گل شبانه" یه تصویر زیبا بسازی
فقط کافیه ایمپورتش کنید و ازش استفاده کنید (میتونید اول توی colab تستش کنید)
github.com/borisdayma/dalle-mini
@Linuxor
اما خیلی سنگینه و روی سیستمهای معمولی جواب نمیده!
اینجا اومدن یه نسخه سبکترش ساختن به اسم DALL-E Mini که باهاش میتونی فقط با یه جمله مثل "یک گربه ربات در باغ گل شبانه" یه تصویر زیبا بسازی
فقط کافیه ایمپورتش کنید و ازش استفاده کنید (میتونید اول توی colab تستش کنید)
github.com/borisdayma/dalle-mini
@Linuxor
این استار هایی که توی تلگرام میزنید اینکانسیستنته، یعنی مثلا همین الان دوتا بود بعد شد یکی،
چون ستاره ها روی بلاک چینه و تراکنش ها توی تلگرام زمان میبرن تلگرام اولش اعتماد میکنه و ستاره رو میزنه بعد میبینه ندارینش واقعیشو آپدیت میکنه. (بلخره ری اکشنه و باید سریع باشه نمیشه ری اکشن بزنید بعدش اعمال شه)
کلا توی کامپیوتر به چیزی میگن اینکاسیستنت که دیتا توی سرور های مختلف باهم یکسان نباشه. (هیچ راه حلی هم تقریبا برای حل مشکلش نیست)
@Linuxor
چون ستاره ها روی بلاک چینه و تراکنش ها توی تلگرام زمان میبرن تلگرام اولش اعتماد میکنه و ستاره رو میزنه بعد میبینه ندارینش واقعیشو آپدیت میکنه. (بلخره ری اکشنه و باید سریع باشه نمیشه ری اکشن بزنید بعدش اعمال شه)
کلا توی کامپیوتر به چیزی میگن اینکاسیستنت که دیتا توی سرور های مختلف باهم یکسان نباشه. (هیچ راه حلی هم تقریبا برای حل مشکلش نیست)
@Linuxor
1
واقعا سینیور دولوپر به کی میگن؟
هیچ تعریف دقیقی از سینیور دولوپر وجود نداره هر شرکتی یه تعریفی برای خودش داره ولی این سه تا مورد رو یادتون باشه یه مرز خوبی بهتون نشون میده :
+ باید بتونه پروژه با مقیاس بالا رو هندل کنه: قشنگ نشون میده معماری، دیزاین و دواپس رو خوب فهمیده کلمه مقیاس بالا خودش یه بار سنگین داره و هر کسی نمیتونه ادعاش کنه دولوپر های عادی معمولا سمتش نمیرن.
+ باید بتونه هدایت تیم کنه : اینم نشون میده فرد میتونه تصمیمهای فنی استراتژیک بگیره و مسئولیت خروجی تیم رو بپذیره. همچنین نیازمند یه درک خوبی از Soft skill هست برای این کار.
+ باید بتونه پروژههایی با چالش فنی خاص یا فناوری جدید رو هندل کنه : مثلا یه هوش مصنوعی یه چیزی اضافه کنه یا اینکه زیرساخت و CI/CD رو از صفر بتونه بنویسه یا ابزار اختصاصی برای توسعه بسازه، سینیور وابسته به تکنولوژی خاصی نیست در کل انعطاف بالایی داره.
@Linuxor
هیچ تعریف دقیقی از سینیور دولوپر وجود نداره هر شرکتی یه تعریفی برای خودش داره ولی این سه تا مورد رو یادتون باشه یه مرز خوبی بهتون نشون میده :
+ باید بتونه پروژه با مقیاس بالا رو هندل کنه: قشنگ نشون میده معماری، دیزاین و دواپس رو خوب فهمیده کلمه مقیاس بالا خودش یه بار سنگین داره و هر کسی نمیتونه ادعاش کنه دولوپر های عادی معمولا سمتش نمیرن.
+ باید بتونه هدایت تیم کنه : اینم نشون میده فرد میتونه تصمیمهای فنی استراتژیک بگیره و مسئولیت خروجی تیم رو بپذیره. همچنین نیازمند یه درک خوبی از Soft skill هست برای این کار.
+ باید بتونه پروژههایی با چالش فنی خاص یا فناوری جدید رو هندل کنه : مثلا یه هوش مصنوعی یه چیزی اضافه کنه یا اینکه زیرساخت و CI/CD رو از صفر بتونه بنویسه یا ابزار اختصاصی برای توسعه بسازه، سینیور وابسته به تکنولوژی خاصی نیست در کل انعطاف بالایی داره.
@Linuxor
3
اگه بکاند کار میکنی این واسه تو بهشته، یه مجموعه از سوال از هرچیزی که ممکنه توی بکاند بهش بخوری از طراحی نرمافزار، الگوهای طراحی (Design Patterns)، پایگاه داده، معماری سیستم، امنیت، سیستمهای توزیعشده و کلی چیز دیگه گفته
خیلی از سوالهاشم طوری طراحی شدن که نقطهی شروع یه بحث باشن، نه فقط جواب قطعی، یعنی قشنگ کلی چیز جدید به روت باز میکنه برای آمادگی مصاحبه هم میشه از سوالاش استفاده کرد ولی بیشتر هدف یادگیریه:
github.com/arialdomartini/Back-End-Developer-Interview-Questions
@Linuxor
خیلی از سوالهاشم طوری طراحی شدن که نقطهی شروع یه بحث باشن، نه فقط جواب قطعی، یعنی قشنگ کلی چیز جدید به روت باز میکنه برای آمادگی مصاحبه هم میشه از سوالاش استفاده کرد ولی بیشتر هدف یادگیریه:
github.com/arialdomartini/Back-End-Developer-Interview-Questions
@Linuxor
14