آموزش برنامه نویسی بایت به بایت
118 subscribers
13 photos
2 videos
5 files
6 links
آموزش برنامه نویسی بایت به بایت

ارتباط با مدیر @mortezagoodarzi1
#برنامه_نویسی
Download Telegram
لیستی از الگوریتم‌های «یادگیری ماشین» که باید نحوه کار اونارو بدونیم.

یادگیری ماشین(machine learning) قلب تپنده چت‌بات‌ها و ایزارهای پرکاربرد هوش مصنوعیه.

با یادگیری این الگوریتم‌ها می‌تونیم بفهمیم chatgpt و gemini چطوری کار می‌کنن. اگر با چت‌بات‌ها سروکار دارید، حتما روی این الگوریتم‌ها وقت بذارید. اگر برنامه‌نویس هستید که قطعا تسلط دارید😉
👍1🙏1
سلام دوستان

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

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

هدف من از این کار اینه که نه تنها خودم رو به چالش بکشم، بلکه با شما هم این تمرین‌ها رو به اشتراک بذارم. این تمرین‌ها نه فقط برای برنامه‌نویس‌ها بلکه برای همه افرادی که می‌خوان مهارت‌های حل مسئله و تفکر منطقی خودشون رو تقویت کنن، مفیده. 💡

اگر می‌خواهید با هم به دنیای الگوریتم‌ها وارد بشیم، ذهن‌هامون رو تقویت کنیم و هر هفته یک قدم به سمت بهتر شدن برداریم، همراه من باشید.
👍7👏2
راهنمای ورود به دنیای برنامه‌نویسی
قبل از شروع این ماجراجویی، باید یک سری اصطلاحات رو یاد بگیریم. این اصطلاحات، ابزار کار ماست تا بتونیم یه مسئله رو حل کنیم.

مفاهیم پایه‌ای برنامه‌نویسی
متغیر(Variable): جعبه جادویی برای ذخیره اطلاعات
نوع داده(Data Type): برچسبی که روی جعبه‌ها می‌زنیم تا بدونیم توش چی هست
عملگرها(Operator): ابزارهای ریاضی و منطقی برای بازی با داده‌ها
شرط(Condition): چراغ راهنمایی کدها
حلقه(Loop): ماشن تکرار بی‌وقفه
تابع(Function): مثل یک ماشین می‌مونه که یه سری ورودی می‌گیره و یه خروجی تحویل می‌ده
آرایه(Array): یه صف مرتب از داده‌ها که هر کسی توش شماره صندلی خودش رو داره
لیست(List): کیف چندمنظوره‌ای که همه‌‌چی توش جا می‌شه! عدد، رشته، هرچی
ماتریس(Matrix): آرایه‌های دوبعدی مثل جدول ضرب
اندیس(Index): شماره‌ی محل هر داده در لیست یا آرایه
الگوریتم(Algorithm): دستورالعمل‌هایی برای حل مسئله
مرتبه زمانی(Time Complexity): مدت زمانی که طول می‌کشه تا یک الگوریتم کارش رو تموم کنه
مرتبه فضایی(Space Complexity): میزان حافظه‌ای که یک الگوریتم  مصرف می‌کنه
بازگشتی(Recursion): وقتی یه تابع خودش رو صدا می‌زنه
تکرارشونده(Iterative): وقتی از حلقه‌ها برای تکرار یه کاری استفاده می‌شه

اگه سوالی دارید یا نیاز به توضیح بیشتر هست، توی کامنت‌ها بپرسید.
به زودی اولین الگوریتم رو شروع می‌کنیم
الگوریتم جستجوی خطی (Linear Search)

فرض کن یک بسته کارت بازی داری و دنبال یک کارت خاص می‌گردی. ساده‌ترین روش اینه که کارت‌ها رو یکی‌یکی برداری، نگاه کنی و ببینی کارت مورد نظرت هست یا نه. به همین سادگی!

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

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

معایب جستجوی خطی:
⚡️ کند می‌شه، خیلی کند! توی لیست‌های بزرگ باید تک‌تک عناصر رو بررسی کنه که اصلاً بهینه نیست.
⚡️ وقت و منابع زیاد مصرف می‌کنه. اگه مقدار موردنظر آخر لیست باشه، باید کل لیست رو بگرده.

#الگوریتم
#بایت_به_بایت
@byte_by_byte_programming
👍2
مراحل الگوریتم جستجوی خطی
1️⃣ شروع کن!
لیست رو بگیر، مقدار موردنظر (کلید جستجو) رو مشخص کن. حالا باید یکی‌یکی سراغشون بری.

2️⃣ از اولین عنصر شروع کن.
اندیس (index) رو روی صفر بذار و عنصر اول لیست رو چک کن.

3️⃣ مقایسه کن!
مقدار فعلی با مقدار موردنظر یکیه؟

اگر بله → تبریک! مقدار رو پیدا کردی، پس موقعیتش رو برگردون.
اگر نه → برو مرحله بعد.
4️⃣ برو به عنصر بعدی.
اندیس رو یکی زیاد کن و مقدار جدید رو چک کن.

5️⃣ تکرار کن!
این مقایسه رو ادامه بده تا وقتی که یا مقدار رو پیدا کنی یا به آخر لیست برسی.

6️⃣ اگر به انتهای لیست رسیدی و مقدار رو پیدا نکردی؟
اون مقدار توی لیست نیست. یه پیام بده که "یافت نشد!" یا مقدار خاصی (مثلاً -1) برگردون که نشون بده چیزی پیدا نشده.
و تمام!

⏱️ مرتبه زمانی (Time Complexity):
بدترین حالت: 𝑂(𝑛): اگه مقدار توی آخر لیست باشه یا اصلاً نباشه، باید کل لیست رو بگرده.
بهترین حالت: 𝑂(1): اگه مقدار توی اولین عنصر باشه، همون لحظه پیدا می‌شه


#الگوریتم
#بایت_به_بایت
@byte_by_byte_programming
💡تمرین: یه تابع بنویس که یک آرایه از اعداد صحیح بگیره و یه عدد خاص رو توش جستجو کنه. اگر عدد پیدا شد، اندیس (index) اون رو برگردون، و اگر نبود، مقدار -1 رو خروجی بده.
🔹 ورودی نمونه:
array = [10, 25, 36, 47, 58, 69]
target = 47

🔹 خروجی مورد انتظار:
3

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

#الگوریتم
#تمرین
@byte_by_byte_programming
امروز آخرین روز تعطیلات بود و از فرصت استفاده کردم تا Cursor AI رو تست کنم و یه پروژه با Laravel و ReactJS بسازم.

نتیجه: چیزی که شاید هفته‌ها طول می‌کشید تو همین تعطیلات کلی جلو رفت.

خروجی که می‌بینید، صفر تا صد توسط هوش مصنوعی تولید شده

حالا می‌خوام بیشتر در مورد cursor و ابزارهای جدید ai بنویسم تا ما هم با تغییرات تکنولوژی هماهنگ بشیم و هوش مصنوعی جای ما رو نگیره
👏51
✔️ اگه همیشه برات سوال بوده که فرآیند توسعه نرم‌افزار در شرکت‌های بزرگ چطوریه، این ویدیو رو از دست نده!

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

📌 این کلاس درس نیست؛ یه تجربه‌ی واقعی از دل یکی از بزرگ‌ترین پروژه‌های نرم‌افزاری ایرانه. این ویدئو یه گنج واقعیه.

فیلم کامل رو از اینجا ببین.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1👏1
Audio
این هم صوت خلاصه‌شده توسط notebookLM و چندتا منبعی که آقای مشکاتی معرفی کرده بودن و من از notebookLm خواستم همه رو خلاصه کنه
به مناسبت ۳۰ سالگی PHP، یک اتفاق ویژه در راهه!

رویدادی به نام PHPverse 2025 قراره به میزبانی JetBrains برگزار بشه؛
یک گردهمایی آنلاین با حضور چهره‌های شاخص دنیای PHP که قراره درباره آینده این زبان، تجربیات حرفه‌ای و مسیرهای یادگیری صحبت کنن.

🌟 مهمانان ویژه:
🔹 تیلور اوتول (Taylor Otwell) – خالق فریم‌ورک لاراول
🔹 جفری وی (Jeffrey Way) – بنیان‌گذار Laracasts
🔹 پویلاس کوراپ (Povilas Korop) – مدرس Laravel Daily
🔹 جینا بنیارد (Gina Banyard) – توسعه‌دهنده ارشد در تیم PhpStorm از JetBrains

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

تاریخ: ۲۷ خرداد، به وقت ایران ساعت ۱۶:۰۰ تا ۲۱:۰۰
لینک ثبت‌نام:
https://lp.jetbrains.com/phpverse-2025/
😍2🔥1