TorhamDev | تورهام 😳 – Telegram
TorhamDev | تورهام 😳
2.83K subscribers
421 photos
49 videos
21 files
591 links
code, linux and anything related.

• YouTube
youtube.com/@techwithtori

• CodeNaline Podcast
@CodeNaline

• Group
@GothamProgrammers

• Github
github.com/TorhamDev

• Email
torhamdev@gmail.com
Download Telegram
الگوریتم‌های Divide and Conquer چی هستند؟

الگوریتم تقسیم و حل و یا همون Divide and Conquer که به مخفف D&C هم شناخته میشن یک پرادایم الگوریتمی هستند که داخل این پرادایم ما با کوچک کردن مشکل ( problem ) به مشکلات کوچیک‌تر ( sub-problem ) اون‌ها رو حل میکنیم. از معروف‌ترین الگوریتم‌های این پرادایم الگوریتم‌های Merge sort و Quick sort هستند. الگوریتم‌های D&C معمولا به سورت recursive نوشته میشن.

هر الگوریتم D&C قالبا از ۳ بخش اصلی تشکیل شده:
Divide: در این مرحله الگوریتم مشکل رو به مشکلات ساده تر و کوچیک تر تقسیم میکنه. که مشکلات کوچک‌تر باید بتونن خودشون به شکل مجزا حل بشند

Conquer: مشکلات کوچیک شده رو به صورت تکرارشوند یا ریکرسیو حل میکنه تا زمانی که مشکل انقدر ساده شده باشه که خودش حل شده محصوب بشه که به این حالت، حالت پایه یا بیس‌کیس گفته میشه

Combine: در این مرحله ما راه حل تمام مشکلات کوچیک شده ای که حل کردیم رو باهم ادغام میکنیم تا به یک جواب کامل برسیم.



برای مثال الگوریتم Merge sort :
divide: در این مرحله الگوریتم به شکل تکرارشونده لیست ورودی رو به دو تیکه تقسیم میکنه تا زمانی که این لیست حاوی یک ایندکس باشه که در حقیقت مرتب شده محسوب میشه

conquer: این مرحله همونجایی که الگوریتم خودش رو صدا میزنه تا زمانی که به حالت پایه یا همون بیس‌کیس برسه که لیستی فقط با یک ایندکس هستش

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

الگوریتم merge sort بیشتر روی مرحله Combine تمرکز داره که نوشن میده الگوریتم‌ها در این پرادایم میتونن به یکی از این ۳ حالت تمرکز بیشتری نشون بدن. برای مثال الگوریتم Quick sort بیشتر به مرحله Divide تمرکز میکنه و دنبال pivot میگرده و مکان pivot خودش رو مرتب میکنه.


امیدوارم درباره پارادایم D&C چیزی یادگرفته باشید D:
میتونید این پرادایم داخل مسائل دیگه هم استفاده کنید و مشکلاتتون حل کنید. در نهایت توانایی حل مسئله ما مهمه :)

@TorhamDevCH
6👍6
https://github.com/bregman-arie/devops-exercises


یک ریپوزیتوری خوب اگه دواپس کار هستید و حتی اگه نیستید!

تمرین‌ها خوبی داخلش داره پایه ان بیشترشون و کمک میکنن داوپس بهتر بشید. من خودم بخش پایتونش دارم حل میکنم البته خیلی دواپسی نیست به نظرم بیشتر پایه‌های پایتونی.

@TorhamDevCH
4👍2
دوستان امروز داشتم رو یکی از چالش‌های سایت codecrafters کار میکردم که الان تموم شد :)

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

اگه دوست داشتید شما هم امتحانش کنید.
https://app.codecrafters.io/catalog

@TorhamDevCH
😘13👍32🔥2
ردیس‌ام ۶ماه که رانه...

@TorhamDevCH
🤣191
حکایت این روزهای من

@TorhamDevCH
🤣38🔥3🌚1
مثل اینکه تحقیقات جدید نشون داده بلد بودن ریاضی اونقدری هم به یاد گرفتن برنامه‌نویسی کمک نمیکنه :)
طبق این تحقیقات توانایی افراد برای یاد گرفتن یک زبان جدید بیشتر تاثییر در یادگیری یک زبان‌ برنامه‌نویسی داره تا ریاضیات یا حداقل در پایتون که داخل این تحقیقات ازش استفاده شده.

Taken together, these result make the case for language skills being an integral aspect of learning programming (or at least of learning Python), while math skills weren’t very predictive of how well or quickly participants learned. This idea has important implications for the perceptions surrounding programming, which is often viewed as a “math intensive” field.

درسته بعضی از شاخه‌های برنامه‌نویسی نیاز به ریاضیات بیشتری نسبت به بقیه شاخه‌ها داره اما اینکه برنامه‌نویس و برنامه‌نویس خوب بودن رو در ریاضیات ببینیم به نظر خیلی منطقی نمیاد :).
مقاله جالبیه اگه دوست داشتید مطالعه کنید.

https://massivesci.com/articles/programming-math-language-python-women-in-science/

@TorhamDevCH
👍21👎31
اگر بخوام به یادگیریم قبل از استفاده از AI نمره بدم ۶ میدم و بعد از استفاده از AI باید ۹.۲۵ بدم. تاثیر بینظیری داشته. شکل معمول باید ویدیو میدید یا داکیومنت رو میخوندید که در نهایت تنها به درک شما از اون مطلب بر میگشت و چقدر اون داکیومنت یا دوره روونه. دیگه نمیشد سوالی پرسید اگه فلان جا رو نمیفهمیدید باید سرچ میکردید و دوباره همون حلقه رو تکرار میکردید ولی با LLM ها میشه دیتا رو خلاصه سازی کرد و نسبت به شیوه یادگیری خودتون تغییرش داد. مثلا داخل پرامت من برای چتی که برای یادگیری استفاده کردم بهش گفتم که همیشه سعی کنه یک Analogy از دنیا واقعیت بگه که خیلی تاثییر داره. و اینکه خیلی چیزا رو میشه کنار هم داشت. برای مثال من یک چت برای سوالات برنامه نویسی دارم و یک چت برای سوالات مرتبط با زبان انگلیسی. اگر کلمه ای رو نفهمم میرم تب بعدی میپرسم و توضیح کامل و خوبی میگیرم :)

البته من هنوز برای دیباگ و برنامه نوشتن از ai استفاده نمیکنم و قالب تهش یک تیکه کد کوچیک ازش بخوام یا اروری که داخل نت پیدا نکردم بدم برام سرچ کنه یا دلیلش توضیح بده. در کل اینکه لقمه رو ازش نمیگیرم درجا :D

خلاصه اگه تا حالا شروع به یادگیری با llm ها نکردید به نظرم یه شانس بهشون بدید و سعی کنید با شیوه یادگیری خودتون تنظیمش کنید.
البته من کلا از Gemini استفاده میکنم همون اول رفتم سراغش همینجا موندم :)
@TorhamDevCH
👍31👎2💯21
سلام دوستان
امیدوارم حالتون خوب باشه، پرسشنامه زیر مربوط به حوزه پیامک هستش و من دارم تحقیقات و پایان‌نامم رو در رشته بازاریابی تکمیل می‌کنم. ممنون میشم حدود 3 دقیقه وقت بذارید و مشارکت کنید. جواب‌های شما در این مسیر برای من خیلی کمک‌کننده است. ممنون🍀
https://app.epoll.pro/e/o/MTMyNTIz
1
ناراحت؟ ناامید؟ من نه ناراحت میشم نه ناامید! من فقط گریه...😔🗿
💔26🤣4😭1
جیغ‌کد چیست؟
به مرحله از دیباگ و توسعه میگوییند که 10 ساعت وقت خود را گذاشته و حل کردید، حال اگر کد ببینید جیغ میکشید.

@TorhamDevCH
😭35🤣5👍3🕊1
MIT CS

1. Introduction to Computer Science and Programming in python

2. Fundamentals of Programming (NOT MIT)

3. Software Construction

4. Mathematics for Computer Science

5. Introduction to Algorithms

6. Computability and Complexity Theory

7. Computer Systems Engineering

8. Introduction to Low-level Programming in C and Assembly

9. Computation Structures


Select one of the following:
Introduction to Probability

Introduction to Inference

Introduction to Probability and Statistics
Linear Algebra
Linear Algebra and Optimization
👌4
TorhamDev | تورهام 😳
MIT CS 1. Introduction to Computer Science and Programming in python 2. Fundamentals of Programming (NOT MIT) 3. Software Construction 4. Mathematics for Computer Science 5. Introduction to Algorithms 6. Computability and Complexity Theory 7. Computer…
اگه خواستید با سر فصلا MIT بخونید و پیش برید استفاده کنید.

اگه کلا چیزی از کامپیوتر نمیدونید که از اول برید. مگرنه میتونید موضوعی ببینیدشون
خبر: مایکروسافت در یک حرکت شجاعانه تصمیم گرفت به جای پورت کردن nano داخل ویندوز یک ادیتور تحت ترمینال بزاره و اسمش رو به زیبایی Edit گذاشته.

@TorhamDevCH
🤣27🔥2👌2
شنبه خبرای خوب میاد 🤝
👍156👎1🤷1