Armin codes – Telegram
Armin codes
402 subscribers
90 photos
11 videos
13 files
89 links
👋 Hey there! I'm Armin, a software engineer.

🌟 On this channel, I share:

Handy tools and resources
Behind-the-scenes of my coding journey
My favorite music, hobbies, and experiences

Join in and let's learn, share, and have fun together!🥂
@arminshaikhy
Download Telegram
کمک کردن و راهنمایی همیشه برام یه انگیزه بزرگ بوده، و خیلی خوشحالم که توی این مسیر دارم جلو میرم. حالا با کلی ذوق و انرژی باید بگم که توی 50 منتور برتر فرانت‌اند در ADPList قرار گرفتم! 😍

این اتفاق بدون همراهی و انگیزه شما ممکن نبود! هر جلسه منتورینگ برای من یه تجربه جدید و یه فرصت برای یادگیری بیشتر بوده. مرسی از همه شما که بهم اعتماد کردید و این فرصت رو دادید که بخشی از مسیر یادگیری‌تون باشم. ❤️

بی‌صبرانه منتظرم که به آدمای بیشتری کمک کنم و باهم رشد کنیم! 🚀



پی‌نوشت: فعلاً تایم‌هام رو توی ADPList بستم، ولی اگه نیاز به منتورینگ دارید، رزومه‌تون رو برام بفرستید تا هماهنگ کنیم.
11🍾3
امروز صبح توی یه جلسه‌ی منتورینگ، یه سوال جالب مطرح شد:
"چطور می‌تونم توی مسیر یادگیری ثابت‌قدم بمونم؟ هیجان دارم، ولی بعد یه مدت انگیزه‌م کم می‌شه!"

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

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

🔗 منابع پیشنهادی:
📖 Atomic Habits – James Clear
📖 Deep Work – Cal Newport
14🍾2
نسخه جدید Next.js 15.2 منتشر شد!
یه سری بهبود اضافه شده که کار با نکست رو راحت‌تر و سریع‌تر می‌کنه:

🔹 خطاهای واضح‌تر و بهتر – طراحی جدید برای ارورها و استک‌ترِیس‌های دقیق‌تر.(این خیلی لازم بود)

🔹 استریم متادیتا – دیگه نیازی نیست برای لود شدن متادیتا صبر کنی، صفحه زودتر میاد بالا.

🔹 Turbopack سریع‌تر از همیشه – کامپایل تا ۵۷٪ سریع‌تر و مصرف رم ۳۰٪ کمتر!(فک نکنم)

🔹 افکت‌ برای تغییر صفحات (آزمایشی) – با View Transitions انیمیشن‌ بین صفحات هندل میشه.

🔹 Middleware با Node.js (آزمایشی) – حالا می‌تونی از Node.js توی Middleware استفاده کنی.

🎯 چندتا تغییر دیگه:
یه Dev Indicator جدید که وضعیت رندر، کامپایل و خطاها رو یه جا نشون
می‌ده.
(فک کنم بره سمت دوو تولز ناکس)

پشتیبانی از --api برای ساخت پروژه‌های فقط API.(اکپرس بزن خب!)

بهبود تصاویر (images.qualities)، سئو.
🍾44
🎍🧩
یادگیری پارادایم‌های برنامه‌نویسی تأثیر زیادی در بهبود مهارت‌های برنامه‌نویسی داره و میتونه خیلی دید بهتری بده:
۱. درک بهتر مفاهیم برنامه‌نویسی
۲. افزایش مهارت حل مسئله
۳. انعطاف‌پذیری بیشتر در انتخاب تکنولوژی‌ها
۴. درک بهتر کدهای دیگران
۵. تقویت تفکر منطقی و خلاقیت در برنامه‌نویسی

چطور بهتر یاد بگیریم؟
با زبان‌های چندپارادایمی مانند Python یا JavaScript کار کنید.
یک پروژه را با رویکردهای مختلف پیاده‌سازی کنید و تفاوت‌ها را بررسی کنید.
کدهای دیگران را مطالعه کنید و از بهترین روش‌ها یاد بگیرید.

چند تا لینک مفید:
freecodecamp.org/news/an-introduction-to-programming-paradigms


geeksforgeeks.org/introduction-of-programming-paradigms

datacamp.com/blog/introduction-to-programming-paradigms
7
فرق بین Heap Memory و Stack Memory در جاواسکریپت؟

دیروز با یکی از شرکت ایرانی مصاحبه رفتم فارغ از یه
سری سوالات تکراری مباحثی مانند hoisting closure , type vs interface , prototype , hook ها و... از heap و stack مموری ازم پرسیدن و همچنین مدیرت درست heap در جاوااسکریپت!

۱ - استک مموری
- پشته (Stack) در JS برای ذخیره متغیرهای مقدار (Primitive Values) و فراخوانی توابع استفاده می‌شود.

- هر تابعی که فراخوانی شود، یک Stack Frame (قاب پشته) دریافت می‌کند که شامل متغیرهای محلی و پارامترهای آن تابع است.

- تخصیص حافظه در استک سریع و خودکار است.

۲ - هیپ مموری
- حافظه هیپ (Heap) برای ذخیره اشیاء (Objects) و داده‌های غیر اولیه (Non-Primitive) استفاده می‌شود.

- حافظه در هیپ داینامیک تخصیص داده می‌شود و Garbage Collector آن را مدیریت می‌کند که هندل کردن این بر عهده برنامه نویس هست.

نکته مهم: هنگامی که یک شیء یا آرایه ساخته می‌شود، مقدار آن در Heap Memory ذخیره شده و آدرس (Reference) آن در Stack Memory قرار می‌گیرد.

خب نکته مهم دیگر این هست که اگر برنامه نویس داده زیادی را در heap ذحیره کند باید حتما بعد از استفاده مموری را آزاد کند تا سیستم دچار Memory Leak نشود که روش آزاد سازی هم به این شکل هست که اگر دیگر نیازی به داده ندارید، مقدار null یا undefined را به متغیر اختصاص دهید تا ارجاع از بین برود و یا میتونید از WeakMap استفاده کنید که خود به خود ارجاع های بدون استفاده را حذف میکند.

@DevTwitter | <Alireza Majdi/>
9👾1
Forwarded from FullstacksJS — Academy
تو این پست یه سری نکته ها هست که خیلی دقیق نیست
درباره این پست زیاد میشه صحبت کرد.
یه ویس دربارش میگیرم.
Forwarded from FullstacksJS — Academy
6
عید همیشه فرصت خوبی برای یادگیری بوده
ما امسال تو دیجی‌شهر یک برنامه کارآموزی داریم تصمیم گرفتم برای کارآموزای تیمم (فرانت) یه پیش شادی آماده کنم😁💐
شامل:
کانسپت های جاوا‌اسکریپت
ریکت
لینوکس

یه سری لینک های مفید رو هم گذاشتم که دیدنشون خالی از لطف نیست.
اینجا هم به اشتراک میذارم شاید برای دوستان دیگه هم مفید باشه❤️

https://roadmap.sh/r/peyk-shadi-2cwiq
10🍾2
peyk-shadi.png
395.4 KB
نمای کلی موضوعات
پ‌ن: لینک منابع داخل رود مپ
6
Forwarded from TechTube 𝕏 تک توب
شرکت DuckDuckGo به هوش مصنوعی Duck.ai ، که روی حریم شخصی تمرکز داره، هم پشتیبانی از مدلهای GPT 4o-mini و همچنین مدل استدلالی O3-mini رو هم مهیا کرده و کاربران میتونن به صورت مجانی و بدون نیاز به اکانت، از اونها استفاده کنن.

📍 @TechTube
6
💙💙💙
امروز تقریبا شد دو سال که در مجموعه دیجی‌شهر به عنوان فرانت‌اند تیم لید فعالم و این دو سال برای من پر از تجربه های مختلف بوده که دوست دارم مهمتریناش رو به صورت یک جمله‌ای اینجا بذارم:
۱. دیسیپلین کلید پیشرفت توی طولانی مدته.
۲. یادگیری رو به عنوان یه پروژه نگاه نکنید٬ یه روتینه.
۳. هر آدمی یه لمی داره و کار کردن با آدما خیلی میتونه پیچیده بشه اگه دقیق بهشون دقت نکنی.
۴. سافت اسکیل به اندازه هارد اسکلیل مهمه!
۵. اگه روز اول همکاری با یه مجموعه به این فکر کنی که چه برندی از خودت میخوای بسازی خیلی کارت راحت‌تر میشه.
۶. کنجکاو باش و سعی کن بیزنسی که داری براش ارزش خلق میکنی رو بفهمی.
۷. رو آدم ها حساب کن و بهشون شانس بده!
👾15🍾13🔥2
Forwarded from SUT Twitter
^NO CONTEXT HUMANS^

@sut_tw
🍾4💩2🔥1
Channel photo updated
سلام رفقا
با تاخیر عیدتون مبارک
امیدوارم امسال بتونید به هدفاتون پایبند باشید و خوب پیشرفت کنید.❤️
من بعد یه سفر پر ماجرا تازه یکم کارام رو جمع کردم و برگشتم به روتین دوستایی که قرار منتورینگ داشتیم و نرسیدیم جلساتشو بریم بهم پیام بدید که لطفا ست کنیم.
ارادت🫶
🍾11👾2🍓1
🔧 اهمیت ریفکتور کردن کد (Refactoring) + منابع پیشنهادی

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

چرا ریفکتور مهمه؟

کاهش پیچیدگی کد

جلوگیری از ایجاد باگ در آینده

آمادگی برای افزودن قابلیت‌های جدید

همکاری بهتر در تیم

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

💡 نشونه‌هایی که بهت میگن وقت ریفکتوره:

کدی که حتی خودت هم نمی‌فهمیش 😅

توابع خیلی طولانی

تکرار زیاد تو کد

وابستگی‌های زیاد بین بخش‌ها

📚 منابع پیشنهادی برای یادگیری ریفکتور:

🔹 کتاب "Refactoring" نوشته‌ی Martin Fowler
یه مرجع کلاسیک و کاربردی برای درک اصول و تکنیک‌های ریفکتور.

🔹 وب‌سایت Refactoring.guru
ساده، مصور، و به شدت آموزنده!
🌐 https://refactoring.guru
🍾7👾3
این کتاب رو امروز تموم کردم و تصمیم گرفتم دیدمو بهش بگم:
این کتاب یه جورایی با هیچ کتاب دیگه‌ای که خوندم شبیه نیست. انگار داری تیکه‌هایی از خاطرات، خیال‌پردازی‌ها و فکرای عجیب نویسنده رو ورق می‌زنی، بدون اینکه دنبال یه خط داستانی مشخص باشی. ریچارد براتیگان با یه لحن ساده ولی شاعرانه، از چیزای خیلی معمولی یه دنیای خاص ساخته. بعضی جاها خنده‌ت می‌گیره، بعضی جاها یه حس تنهایی خاصی تو دل آدم می‌ندازه. اگه دنبال یه داستان منظم و کلاسیکی، این کتاب شاید اذیتت کنه. ولی اگه دوست داری توی ذهن یه آدم خلاق و متفاوت پرسه بزنی، احتمالاً ازش خوشت میاد.
🍾10
Forwarded from جادی | Jadi
👾11
🎯 دعوت به همکاری در یک پروژه متن‌باز

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

🔧 تکنولوژی: JavaScript
🌍 هدف: ساخت یک مرجع دانش ساده و مفید به زبان فارسی
🤝 همکاری در توسعه، طراحی، محتوا و هر کاری که دوست دارید

اگه علاقه‌مند بودید، خوشحال می‌شم پیام بدید 💬
@arminshaikhy
🍾15👾2💩1
اخیراً با یکی از توسعه‌دهنده‌های پایتون برای پیاده‌سازی یک سرویس SSO با Node.js همکاری داشتم، و تجربه‌ای پر از یادگیری بود — مخصوصاً از نظر تفاوت‌های ذهنی بین دو زبان.

چالش اول برای اون، درک ماهیت asynchronous در Node.js بود. مفاهیمی مثل event loop و استفاده از async/await در مقایسه با مدل همگام پایتون، کاملاً متفاوت بودن و باعث شد در اوایل پروژه با پیچیدگی‌هایی مواجه بشه.

در مرحله بعد، کار با Express.js و ساختار routeها، middlewareها و ساختار کلی اپلیکیشن در Node.js براش جدید بود. با اینکه کانسپت‌ها خیلی متفاوت نبودن، اما نحوه پیاده‌سازی و ابزارهای موجود فرق زیادی داشتن.

ما از TypeScript یا استانداردهایی مثل OAuth2 یا SAML استفاده نکردیم، بنابراین همه چیز به صورت سبک‌تر و ساده‌سازی‌شده پیاده‌سازی شد. همین موضوع باعث شد توسعه سریع‌تر پیش بره، ولی در عوض نیاز به دقت بیشتری توی طراحی و امنیت داشتیم.

جالب‌ترین بخش ماجرا برای من، دیدن تلاش اون برای تطبیق با یک زبان و چارچوب جدید بود — و این بهم یادآوری کرد که زبان برنامه‌نویسی مهم نیست، بلکه طرز فکر توسعه‌دهنده است که نتیجه رو می‌سازه.
🔥12💯2
وی یکی از پروژه‌ها، موقع توسعه یه بخش از اپلیکیشن، با مشکلی برخورد کردم که اولش خیلی ساده به نظر می‌رسید، اما باعث می‌شد اطلاعات اشتباهی به کاربر نشون داده بشه. ماجرا از اونجا شروع شد که کاربر موقع جست‌وجو یا جابه‌جا شدن سریع بین آیتم‌ها، با سرعت بالا روی گزینه‌های مختلف کلیک می‌کرد و با هر تغییر، یه درخواست جدید برای گرفتن اطلاعات به سرور می‌رفت.

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

بعد از یه بررسی دقیق‌تر، فهمیدم با یه Race Condition طرفم — یعنی وقتی چند عملیات async با هم اجرا می‌شن و نتیجه به خاطر ترتیب نامناسب تموم شدنشون، بهم می‌ریزه.

برای حلش اومدم یه راه‌حلی پیاده کردم که مطمئن بشم فقط آخرین درخواست باقی می‌مونه و درخواست‌های قبلی یا نادیده گرفته می‌شن یا لغو. این کار رو می‌شه با چیزایی مثل AbortController یا چک کردن اینکه پاسخ مربوط به همون درخواست فعلیه انجام داد.
🔥14🍓2