Mohammad Dori
1 subscriber
9 photos
1 video
17 links
ارتباط با من
@Mohamad_Dori

آدرس گیت هاب
https://github.com/dori-dev

آدرس اینستاگرام
instagram.com/mr.dori.dev

ایمیل
mr.dori.dev@gmail.com
Download Telegram
Channel created
Forwarded from Sadra Codes
توی داکر، وقتی یه کانتینر رو ایجاد می‌کنید، اگه بهش اسم تخصیص ندید، خودش بصورت دیفالت یه اسم رندوم انتخاب می‌کنه برای کانتینر. یه لیست از مشاهیر و اسامی داره که از بین اونا، نامی رو انتخاب می‌کنه.

می‌دونستید بین اون اسامی، اسم پروفسور میرزاخانی هم وجود داره؟!
#بدرد

برای مهندس نرم‌افزار بودن فقط برنامه نویس بودن و یا فقط یادگیری یکسری ابزار کفایت نمیکنه.

برای اینکه شما یک مهندس نرم افزار باشید راه طولانی ای رو پیشرو دارید و نیازه که یکسری توانایی فنی داشته باشید که باهم توی این پست بررسیشون میکنیم

- Programming Language
خب در وهله اول شما باید با زبان های برنامه نویسی اشنا باشید و یکیشون رو خوب بلد باشید و بتونید باهاش برنامه نویسید، این که واضحه…

از سمتی مفاهیم کلی برنامه نویسی رو هم بلد باشید بدور از یک زبان، در واقع برنامه نویسی رو بلد باشید نه یک زبان برنامه نویسی رو

- Software development
یکی از کارهای یک مهندس نرم افزار، توسعه یک نرم افزاره که یک فلوی طولانی از تحلیل تا نگهداری یک پروژه هستش، که باید بعنوان مهندس نرم افزار مسلط باشید به این قضیه.

- Maintaining a project
نگهداری یک پروژه و برنامه ریزی برای نگهداری اون از بالا اوردن اون پروژه خیلی مهم تره، شما باید بتونید یک پروژه رو بعد از توسعه نگه‌داری کنید.

- Testing
بعنوان یک مهندس نرم افزار، شما باید بتونید نرم افزاری که نوشتید رو تست کنید که ببینید درست کار میکنه یا نه و edge case هاش رو هم در نظر بگیرید و حالت های خاص رو هم مورد تست قرار بدید.
و البته باید بدونید که تست نوشتن خودش یک trade off هستش و باید ارزشش رو بسنجید.

- Database
خب شما تقریبا توی اکثر پروژه هاتون با دیتابیس ها و داده ها سر و کار دارید، پس باید دیتابیس هارو بشناسید، بتونید باهاشون کار کنید و ازشون توی پروژه هاتون بدرستی و در بهینه ترین حالت کار کنید، پس دیتابیسو فراموش نکنید.

- Algorithm & Data structure
یکی از مهم ترین هارد اسکیل هایی که باید بدونید الگوریتم و ساختمان داده هستش، تفکر الگوریتمی به تحلیل های شما کمک میکنه و باعث میشه که efficient تر کد بزنید.

- Network
شما باید بدونید که سیستمی که دارید توسعه میدید چطور کار میکنه، و احتمالا چون اکثر پروژه هاتون روی یکسری شبکه دارن بالا میان، بهتره که نتورک رو بدونید تا بهتون کمک کنه در روند توسعه نرم افزار.

- Problem solving
یک مهندس نرم افزار تقریبا بیشتر از هر چیزی با یکسری مسائل سر و کار داره، پس باید توانایی حل این مسائل رو هم داشته باشه، برای این مورد شما باید تمرین کنید، الگوریتم رو یاد بگیرید و خودتون رو در شرایط قرار بدید و به خودتون تمرین بدید.

- Debugging
علاوه بر اینکه شما باید ابزارهای دیباگ رو بدونید، نیازه که فلوی دیباگ رو هم یاد بگیرید که چطور باید یک باگ رو پیدا کنید و چطور اون رو فیکس کنید، پیدا کردن بعضی باگ ها اونطور که فکر میکنید ساده نیستن و باید شما بتونید بدرستی اون هارو در سریعترین زمان ممکن پیدا کنید.

- Software architecture
اگه شما مهندس نرم افزار هستید، باید بدونید معماری نرم افزارتون به چه صورتی بهینه تر خواهد بود، پس شما تا حدودی باید معماری نرم افزار هم بلد باشید
بدونید که چطور قطعات نرم افزارتون کنار هم قرار میگیرن و با چه معماری ای اگه کنار هم کار کنن بازدهی بهتری دارن.
البته بازدهی بیشتر منظور روند توسعه پذیری نرم افزاره

- Programming best practices
شما یکسری پارادایم و یکسری بست پرکتیس هم نیازه بدونید که چطور بهتر برنامتون رو بنویسید، مثل یکسری قوانین بابت کلین کد، دیزاین پترن ها، Object Design،  SOLID و...
برای تقویت این اسکیل ها کتاب های زیادی هستن که میتونید مطالعه کنید

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

- Analyzing Tasks
احتمالا شما بعنوان مهندس نرم افزار هرروز دارید با یکسری تسک سر و کله میزنید، پس نیازه که بتونید این تسک هارو تحلیل کنید، اون هارو خرد کنید به قطعات کوچک تر و اون هارو حل کنید، پس اینکه بتونید تسک هارو هم آنالیز کنید یک اسکیل خیلی ضروری و مهمه.

- Technology choosing
اینکه بعنوان یک مهندس نرم افزار تکنولوژی های مختلف رو بشناسید و در شرایط مختلف بتونید تصمیم بگیرید که استفاده از چه تکنولوژی ای به پروژه کمک میکنه هم خیلی مهمه!

@DevTwitter | <Reza/>
Forwarded from Sadra Codes
This media is not supported in your browser
VIEW IN TELEGRAM
تفاوت جنریتور و فانکشن در پایتون!
Forwarded from Django Expert (Mehran Tarif)
‏متاسفانه صابر راستی‌کردار، خالق فونت‌های وزیر‌ متن (همون فونت زیبایی که روی تلگرام دسکتاپ و گوگل‌داکز و... به رایگان ازش استفاده می‌کنیم) و گندم و شبنم و کلی فونت دیگه، به سرطان مبتلا شده و در وبلاگش در این مورد مطلبی نوشته:
مشاهده مطلب در وبلاگ راستی‌کردار

اگر از فونت‌هاش استفاده می‌کنیم، شاید الان دونیت (حمایت مالی) ما بیشتر از قبل به کارش بیاد.
لینک دونیت:
payping.ir/@saber

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

@DjangoIR
〰️〰️〰️〰️〰️〰️〰️
© @DjangoEx |
Forwarded from Sadra Codes
یه زمان، سیستم توی سی اینجور بود که شما باید از Malloc استفاده می‌کردید و از CPU درخواست فضا از رم واسه متغیرتون می‌کردید. بصورت دستی ست می‌کردید که فلان متغیر، فلان قدر از رم رو (به بایت) بهش اختصاص بده.

int age = malloc(32670) // 32kb

و باید حتما یادتون می‌موند وقتی که کارتون با این متغیر (دیتا) تموم شد، حتما این رفرنسش رو پاک کنید تا اون بلاک از مموری هم پاک شه.

free(age) // used to free the memory block

حالا این وسط یه سری بدبختیا بود..

- اگه برنامه‌نویس یادش می‌رفت فانکشن free رو ران کنه: خب خیلی طبیعیه که اگه یادش می‌رفت free-up کنه، به مموری لیک می‌خوردیم. گاها دیدید RAM Resource پر میشه و سیستم دیتا رو روی Swap نگه‌داری می‌کنه؟ دقیقا همون لحظه‌س.

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

- اگه برنامه‌نویس دو بار free رو کال کنه: اگه بار اول فری کال شه، بلاک رم آزاد میشه و دیتایی که داخلشه از بین میره. فرض کنید بین free اول و free دوم یه وقفه ایجاد شه و سیستم‌عامل یا هر پروسه دیگه‌ای بیاد و دقیقا توی اون بلاک از رم یه دیتای حساس قرار بده. بلافاصله بعد از اینکه free دوم ران میشه، اون دیتای حساس هم از بین میره و پروسه عملا به فنا می‌ره و این اصلا خوب نیس!

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

خشم معمولاً پاسخ ناخودآگاه انسان به تهدید (برای بقا) هست. و کسی که خیلی خشمگین می‌شه معمولاً ثبات و امنیت پایینی داره، مدام می‌ترسه حذف بشه، و نتیجتاً پیش‌دستانه با تمام قوا می‌جنگه که برای یک اشتباه ساده کل ذاتش زیر سؤال نره.

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

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

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

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

[Loc0m0]
Forwarded from Sadra Codes
پروژه Hey در Hashnode X MindsDB Hackathon دوم شد! ❤️

جایزه‌ای که به Hey تعلق گرفت: 1000$ 💵

یه توضیح کوچیک..
هی یه پکیج پایتونه که یه AI Pair Programming Friend مینیمال هست و توی CLI می‌تونه خیلی بهتون راهنمایی و Code Example بده. همچنین میتونید بهش فایل بعنوان ورودی بدید و ازش درخواست‌هایی مثل ریفکتور کردن یا Simplify کردن یا توضیح ازش بخواید.

پروژه‌ها رو طبق پارامترها و معیارهای زیر بررسی کردن:
- Product Thinking
- UI UX
- Code (Quality, Clean Code,...)
- Article Quality

آنچنان بک خفن و سنگینی نداره و اگه کدبیسش رو مرور کنید، میتونه دید خوبی نسبت به ساختار یه پکیج پایتونی بهتون بده هرچند همیشه جای بهتر شدن و پیشرفت هست. :)

لینک‌ها..
GitHub: github.com/lnxpy/hey
——————————————
PyPI: pypi.org/project/hey-mindsdb/
——————————————
Article: imsadra.me/introducing-hey-your-ai-powered-pair-programming-friend

خوشحال میشم شما هم کانتریبیوت کنید و با هم توسعش بدیم. دمتون گرم.
Forwarded from جادی | Jadi
الان دیدم که دوستان یه کتاب برنامه نویسی #گو آزاد رو دارن آنلاین پیش می برن و به من هم تقدیم شده (: مرسی از تون (:
و بقیه اگر دوست دارن مشارکت کنن یا یاد بگیرن یا حتی نگاهی بندازن الان وقتشه (:
https://book.gofarsi.ir/
صرف ایرانی بودن اندازه ۱۵۰ صفحه اینسکیوریتی با خودش داره.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

اگه اطرافتون ایرانی می‌بینین، باش مهربون باشین و براش امن بمونین.

شاید شما ندونین چرا، ولی اون تمام عمرش در حسرت همین امنیت‌های نصفه‌نیمه‌س که بتونه گاهی کمی تکیه بده، بعد آروم چشمای یک عمر خسته و مضطرب و منتظرش رو ببنده و بدونه اگه بخوابه یکی هست که حتی چند صباحی مراقبشه.
[Loc0m0]
Forwarded from Sadra Codes
گاها واسه هممون پیش میاد که همه‌چی یهو سیاه میشه.. هیچ ایده‌ای نداریم واسه پیاده‌سازی.. من خدای Xم.. چیکار کنم؟ روی چه ایده‌ای کار کنم؟ اصلا می‌خوام پروژه اوپن‌سورس بزنم. از کجا و چی شروع کنم..؟!

توی این پست، استراتژی صدرای ۵-۶ سال پیش رو بهتون می‌گم و امیدوارم این استراتژی کمکتون کنه از سردرگمی دربیاید و یه حرکتایی بزنید. :) ❤️

من همیشه سعی می‌کردم نیازهای خودمو، خودم برطرف کنم. منظورم این نیست که بشینم از صفر سیستم‌عامل بنویسم.. نه. ولی خب اکثر یادگیری‌هام از سر کنجکاوی بودن. آنچنان دانش برنامه‌نویسی نداشتم ولی واسه لینوکسم، کانکی می‌نوشتم.. اسکریپت می‌نوشتم اتوماتیک طبق ساعت روز، بک‌گراند رو عوض کنه و.. چیزایی که پیاده‌سازی می‌کردم، صرفا ایده نبودن. نیاز شخصی بودن. من به X نیاز داشتم، اول سعی می‌کردم یه مدل بیسیک در حد خودم ازش پیاده‌سازی کنم در حد مصرف شخصی و لوکال. اگه بدردم نمی‌خورد و Fail میشد، می‌رفتم سمت مارکت. اکثر Kernel Panicها و فرمت‌شدنا هم سر همین حرکتا بود ولی خب بنظرم شیرین‌ترین تریدآف زندگی، زمین خوردن و بلند شدنه. 😁

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

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

سعی می‌کنم پارت بعدی این پست رو بعدا داشته باشیم.. :) ❤️
Forwarded from Python BackendHub
چطوری prompt نوشتن خیلی مهمه وقتی با chatgpt کار میکنید! برای بهتر prompt دادن باید سواد بیشتری داشته باشین. تو عکس فکر کنم این موضوع خیلی بدیهی باشه.
برای همینه که من معتقدم هرچقدر gpt پیشرفته تر شه, نمیتونه جای انسان رو بگیره و برنامه نویس رو بیکار کنه.
الگوریتم رو از O(n**2) کرد O(n) 👌
@Manifoldspython
Forwarded from Gopher Academy (Bardia)
آموزش کامل رزومه نویسی + لینکدین

https://youtu.be/U-JU0SXsRWw

#DevTwitter


🕊 @gopher_academy
اگه بخواید فرانت کار کنین ، قاعدتا باید از html css شروع کنین و بعدش برین سراغ جاوااسکریپت...
برای شروع جاوا اسکریپت به دلیل سینتکسی که داره تقریبا نیازی به الگوریتم ندارید ، با مباحث dom اشنا میشید ، حلقه ها و متغیر ها و...

پس کی به الگوریتم نیاز پیدا میکنین ؟؟
زمانی که بخواید مسائل مختلف رو حل کنین !
اگه تازه کار هستین باید بدونید که موقع پروژه زدن و کار کردن ، شما هرروز با مشکلات زیادی ممکنه رو برو بشید که وظیفه شما حل کردن اونهاست...یکی پس از دیگری...

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

- آیا نیازه چند ماه زمان بزارم قبل شروع و یادگرفتن برنامه نویسی الگوریتم یاد بگیرم ؟
+ نه
- آیا نیازه خدای الگوریتم بشم؟
+ نه
- آیا نیازه قبل برنامه نویسی کتاب هایی باموضوع الگوریتم رو تموم کنم مثل کتاب مقدمه ای بر الگوریتم که ۴ جلده؟
+ نه عزیز من نه!!!

شما فقط کافیه در حین یادگیری برنامه نویسی ، گوشه چشمی هم به تقویت توانایی حل مسئله و الگوریتم داشته باشید.
همین

@DevTwitter | <Meysam Sabeti/>
Forwarded from Gopher Academy (Bardia)
اگه دنبال پروژه های ماشین لرنینگ برای تمرین و یادگیری میگردید این ریپاژیتوری بیشتر از ۹۰۰ پروژه داره که حسابی کمکتن میکنه توی این زمینه!

https://github.com/ml-tooling/best-of-ml-python

#DevTwitter | <Mehdi Mashayekhi/>


🕊 @gopher_academy