تا حالا فکر کردید چطور ممکنه یه فایل ZIP فقط چند مگابایت حجم داشته باشه، اما بعد از Extract شدن تبدیل به چندین گیگابایت فایل بشه؟
جادویی در کار نیست؛ همهچیز برمیگرده به یک چیز: تکرار.
✦ @programming_codiing
جادویی در کار نیست؛ همهچیز برمیگرده به یک چیز: تکرار.
کامپیوترها دادههایی که بارها تکرار شدن رو دوباره و دوباره ذخیره نمیکنن. الگوریتمهای فشردهسازی الگوهای تکراری رو پیدا میکنن و با اطلاعات کوتاهتری جایگزینشون میکنن.
مثلاً اگر یک الگو بارها تکرار شده باشه، بهجای ذخیره کردن کامل اون در هر بار، میتونه فقط بگه: «همون بخش قبلی رو دوباره تکرار کن.»
ZIP
برای این کار از روشهایی مثل LZ و Huffman Coding استفاده میکنه؛ یکی برای پیدا کردن و خلاصهکردن الگوهای تکراری و دیگری برای بهینهتر کردن نحوه ذخیره باقی دادهها.
جالب اینجاست که مفهوم «پیدا کردن الگوها» فقط مخصوص فایلهای ZIP نیست. خیلی از فناوریهای مدرن هم به شکلهای مختلف با پیدا کردن الگو و ساختن نمایشهای فشردهتر از اطلاعات سروکار دارن.
پس دفعه بعد که دیدید چند مگابایت فایل، بعد از Extract شدن تبدیل به دهها گیگابایت شد، بدونید پشت این اتفاق یک جادوگر نشسته نیست؛ چند الگوریتم خیلی باهوش دارن کارشون رو انجام میدن.
✦ @programming_codiing
❤8
یه چیزی که به نظرم خیلی از دورههای برنامهنویسی درست منتقل نمیکنن، خوندن کد دیگرونه.
دانشجو عادت کرده خودش بنویسه.
ولی وارد پروژهی واقعی که میشه مثل یه تیم که تازه واردش شده، چند هزار خط کد جلوشه که اشخاص دیگهای نوشتن.
اونجا دیگه کسی ازت نمیپرسه بلدی map استفاده کنی؟ ..
باید بفهمی این کد چرا این شکلی نوشته شده، کجا ممکنه خراب بشه و اگر بخوای تغییرش بدی از کجا باید شروع کنی.
ایناس گیتهاب برات غوغا می کنه، هزاران هزار پروژه هست که می تونی بخونیش.
✦ @programming_codiing
دانشجو عادت کرده خودش بنویسه.
ولی وارد پروژهی واقعی که میشه مثل یه تیم که تازه واردش شده، چند هزار خط کد جلوشه که اشخاص دیگهای نوشتن.
اونجا دیگه کسی ازت نمیپرسه بلدی map استفاده کنی؟ ..
باید بفهمی این کد چرا این شکلی نوشته شده، کجا ممکنه خراب بشه و اگر بخوای تغییرش بدی از کجا باید شروع کنی.
ایناس گیتهاب برات غوغا می کنه، هزاران هزار پروژه هست که می تونی بخونیش.
✦ @programming_codiing
👍16❤3🔥2
همه پروژهها یک مدل نیستن؛ هر پروژه با توجه به هدف و نحوه توسعه، میتونه نوع متفاوتی داشته باشه.
می تونید در مورد هر کدوم بیشتر تحقیق کنید.
✦ @programming_codiing
🔹 Open Source
سورسکد پروژه برای عموم در دسترسه و بقیه میتونن کد رو ببینن، استفاده کنن یا در توسعهش مشارکت کنن.
🔹 Commercial
پروژهای که با هدف کسب درآمد ساخته میشه؛ مثل یک سرویس یا محصولی که فروخته میشه.
🔹 Personal
پروژهای که برای یادگیری، تمرین، نمونهکار یا استفاده شخصی ساخته میشه.
🔹 Freelance
پروژهای که به سفارش مشتری انجام میدین و در ازاش هزینه دریافت میکنین.
🔹 Startup
پروژهای که با یک ایده شروع میشه و هدفش تبدیل شدن به یک کسبوکار و رشد کردنه.
🔹 Enterprise
پروژههای بزرگ و پیچیده برای شرکتها و سازمانها که معمولاً بخشها و کاربران زیادی دارن.
🔹 Team Project
پروژهای که چند نفر بهصورت تیمی روی اون کار میکنن و هرکس مسئول بخشی از پروژهست.
🔹 Private Source
سورسکد پروژه عمومی نیست و فقط افراد مشخصی به اون دسترسی دارن.
می تونید در مورد هر کدوم بیشتر تحقیق کنید.
✦ @programming_codiing
❤9👍3
مستندات رسمی بعضی کتابخونهها از نصف آموزشهایی که توی اینترنت پیدا میکنید بهترن.
ولی خیلیها حاضرن دو ساعت ویدیو ببینن تا یک چیزی رو یاد بگیرن که سازنده خودش در پنج دقیقه توضیح داده.
داکیومنت رو جدی بگیرید، دیگه الان بهانه ای نیست برای اینکه زبانم خوب نیست، بدی ai ترجمه می کنه.
✦ @programming_codiing
ولی خیلیها حاضرن دو ساعت ویدیو ببینن تا یک چیزی رو یاد بگیرن که سازنده خودش در پنج دقیقه توضیح داده.
داکیومنت رو جدی بگیرید، دیگه الان بهانه ای نیست برای اینکه زبانم خوب نیست، بدی ai ترجمه می کنه.
✦ @programming_codiing
👍17❤4
دنبال پروژههای Open Source برای بررسی میگردی؟
این سایت پروژههای متنباز جالب و کمتر دیدهشده رو جمع میکنه.
بهجای اینکه فقط Tutorial ببینی، میتونی پروژههای واقعی بقیه برنامهنویسها رو بررسی کنی و از ساختارشون ایده بگیری.
🔗 https://www.opensourceprojects.dev/
✦ @programming_codiing
این سایت پروژههای متنباز جالب و کمتر دیدهشده رو جمع میکنه.
بهجای اینکه فقط Tutorial ببینی، میتونی پروژههای واقعی بقیه برنامهنویسها رو بررسی کنی و از ساختارشون ایده بگیری.
🔗 https://www.opensourceprojects.dev/
✦ @programming_codiing
❤6👏2
سی پی یو (CPU) واقعاً چطور کار میکنه؟
خیلی وقتها میدونیم کدمون اجرا میشه، اما نمیدونیم در سطح سختافزار چه اتفاقی میافته.
سایت زیر خیلی جالب و باحال در خدمت شماست برای درک عمیق تر cpu :
🔗 https://cpu.land
✦ @programming_codiing
خیلی وقتها میدونیم کدمون اجرا میشه، اما نمیدونیم در سطح سختافزار چه اتفاقی میافته.
سایت زیر خیلی جالب و باحال در خدمت شماست برای درک عمیق تر cpu :
🔗 https://cpu.land
✦ @programming_codiing
🔥6❤2
5 سایت رایگان و باحال برای تایپ 10 انگشتی
🔗 TypingClub
🔗 Keybr
🔗 Monkeytype
🔗 Typing
🔗 Wetype
✦ @programming_codiing
🔗 TypingClub
🔗 Keybr
🔗 Monkeytype
🔗 Typing
🔗 Wetype
✦ @programming_codiing
❤🔥8❤3
اگه هنوز پروژههات رو از ترس اینکه کامل نیستن منتشر نمیکنی،
هیچوقت قرار نیست چیزی منتشر کنی.
اولین پروژهات قرار نیست شاهکار باشه، قرارِ اولش اینه که بهت نشون بده پروژه دوم رو چطور بهتر بسازی.
کاملگرایی گاهی فقط اسم شیکِ ترسه.
@programming_codiing
هیچوقت قرار نیست چیزی منتشر کنی.
اولین پروژهات قرار نیست شاهکار باشه، قرارِ اولش اینه که بهت نشون بده پروژه دوم رو چطور بهتر بسازی.
کاملگرایی گاهی فقط اسم شیکِ ترسه.
@programming_codiing
👍9❤3
رزومهای که ۳۰ تا تکنولوژی داخلشه ولی هیچ پروژه درستوحسابی نداره،
منو بیشتر میترسونه تا رزومهای که فقط ۵ تکنولوژی داره ولی با همونا پروژه ساخته.
تکنولوژی فقط جمع نکنید، پروژه هم جمع کنید.🌹
@programming_codiing
منو بیشتر میترسونه تا رزومهای که فقط ۵ تکنولوژی داره ولی با همونا پروژه ساخته.
تکنولوژی فقط جمع نکنید، پروژه هم جمع کنید.🌹
@programming_codiing
❤17✍4👍2
</ MoDev >
سافت اسکیل یا مهارت نرم چیه؟ وقتی صحبت از مهارت میشه، معمولاً ذهنمون میره سمت چیزهایی مثل HTML، CSS، JavaScript، React و... اینها مهارتهای فنی یا Hard Skill هستن. اما یه سری مهارت دیگه هم وجود دارن که شاید مستقیم به کدنویسی مربوط نباشن، ولی تأثیر زیادی…
مهارتهای نرم مهم برای رزومه؛
برای پیدا کردن شغل، فقط مهارتهای فنی کافی نیستند.
مهارتهایی مثل ارتباط مؤثر، حل مسئله، کار تیمی و مدیریت زمان می تونه تأثیر زیادی روی رزومه و موفقیت شغلی شما داشته باشن.
این مطلب مهارتهای نرمی رو که در بازار کار تقاضای بیشتری دارن بررسی کرده.
در کنار مهارتهای فنی، داشتن مهارتهای نرم قوی میتواند ارزش حرفهای شما رو بیشتر کنه.
هرچه این مهارتها رو بهتر تقویت کنید، در محیط کاری عملکرد بهتری خواهید داشت و برای کارفرما نیز گزینه ارزشمندتری خواهید بود.
پ.ن : مقاله های خوب و زیادی در سراسر اينترنت وجود داره و می تونید یه سِرچی کنید.
🔗 READ
@programming_codiing
برای پیدا کردن شغل، فقط مهارتهای فنی کافی نیستند.
مهارتهایی مثل ارتباط مؤثر، حل مسئله، کار تیمی و مدیریت زمان می تونه تأثیر زیادی روی رزومه و موفقیت شغلی شما داشته باشن.
این مطلب مهارتهای نرمی رو که در بازار کار تقاضای بیشتری دارن بررسی کرده.
در کنار مهارتهای فنی، داشتن مهارتهای نرم قوی میتواند ارزش حرفهای شما رو بیشتر کنه.
هرچه این مهارتها رو بهتر تقویت کنید، در محیط کاری عملکرد بهتری خواهید داشت و برای کارفرما نیز گزینه ارزشمندتری خواهید بود.
پ.ن : مقاله های خوب و زیادی در سراسر اينترنت وجود داره و می تونید یه سِرچی کنید.
🔗 READ
@programming_codiing
❤8👏1
سوال :
دو نفر برای یک پروژه پیشنهاد دادن:
نفر اول: کد خیلی تمیز، ولی ۳ روز زمان
نفر دوم: کد متوسط، ولی ۶ ساعت زمان
ددلاین فرداست.
کدوم رو انتخاب میکنی؟
توی دایرکت بهم بگید
@programming_codiing
دو نفر برای یک پروژه پیشنهاد دادن:
نفر اول: کد خیلی تمیز، ولی ۳ روز زمان
نفر دوم: کد متوسط، ولی ۶ ساعت زمان
ددلاین فرداست.
کدوم رو انتخاب میکنی؟
توی دایرکت بهم بگید
@programming_codiing
❤8👍2👎1
</ MoDev >
سوال : دو نفر برای یک پروژه پیشنهاد دادن: نفر اول: کد خیلی تمیز، ولی ۳ روز زمان نفر دوم: کد متوسط، ولی ۶ ساعت زمان ددلاین فرداست. کدوم رو انتخاب میکنی؟ توی دایرکت بهم بگید @programming_codiing
هیچکدوم بهصورت قطعی؛ این تصمیم به بودجه و خواستهی کارفرما بستگی داره.
اگه کیفیت براش مهمتره، بهش میگیم پروژه چند روز بیشتر زمان میبره و باهاش هماهنگ میکنیم.
اگه سرعت تحویل براش مهمتره، گزینه دوم رو انتخاب میکنیم؛ به شرطی که کیفیت قابلقبولی داشته باشه.
در نهایت باید بین زمان، کیفیت، بودجه و خواستهی کارفرما تصمیم گرفت.
@programming_codiing
اگه کیفیت براش مهمتره، بهش میگیم پروژه چند روز بیشتر زمان میبره و باهاش هماهنگ میکنیم.
اگه سرعت تحویل براش مهمتره، گزینه دوم رو انتخاب میکنیم؛ به شرطی که کیفیت قابلقبولی داشته باشه.
در نهایت باید بین زمان، کیفیت، بودجه و خواستهی کارفرما تصمیم گرفت.
@programming_codiing
👍12❤2👎1
یه ریپوی خفن برای وقتی که از والپیپر فعلیت خسته شدی.
کلی والپیپر با سبکهای مختلف مثل Digital، Minimal، Anime، Pixel، Nature و... که می تونه برا دسکتاپتون یه جونی بده.
🔗 Repo
@programming_codiing
کلی والپیپر با سبکهای مختلف مثل Digital، Minimal، Anime، Pixel، Nature و... که می تونه برا دسکتاپتون یه جونی بده.
🔗 Repo
@programming_codiing
❤6👍1
میدونستید توی VS Code میتونید ساختار کامل فایل رو یهجا ببینید؟
از بخش Outline داخل Explorer میتونید لیست
برای فایلهای بزرگ خیلی کاربردیه و سریعتر میفهمید هر چیزی کجاست، چه فانکشن هایی دارید و..
@programming_codiing
از بخش Outline داخل Explorer میتونید لیست
functionها، classها، متغیرها، کامپوننتها و بقیه بخشهای فایلی که باز کردید رو ببینید.برای فایلهای بزرگ خیلی کاربردیه و سریعتر میفهمید هر چیزی کجاست، چه فانکشن هایی دارید و..
@programming_codiing
❤5
بعضیا سه ساله برنامهنویسی میکنن.
بعضیا یک ساله برنامهنویسی میکنن و سه بار همون یک سال رو تکرار کردن.
تفاوتشون در تعداد سالها نیست؛
تفاوت در چیزیه که توی اون سالها تجربه کردن.
تقویم، تجربه و مهارت حساب نمیشه.
پروژههایی که ساختی، ارورهایی که حل کردی و چیزهایی که یاد گرفتی، تجربهان.
@programming_codiing
بعضیا یک ساله برنامهنویسی میکنن و سه بار همون یک سال رو تکرار کردن.
تفاوتشون در تعداد سالها نیست؛
تفاوت در چیزیه که توی اون سالها تجربه کردن.
تقویم، تجربه و مهارت حساب نمیشه.
پروژههایی که ساختی، ارورهایی که حل کردی و چیزهایی که یاد گرفتی، تجربهان.
@programming_codiing
❤16👍5
ساخت یک NPM Package شاید با یک npm publish ساده به نظر بیاد؛ ولی اگر بخوای Package حرفهای منتشر کنی، داستان خیلی بزرگتره.
این راهنما مراحل ساخت یک NPM Package رو بررسی میکنه، مقاله خوبیه بنظرم، برای باز کردن ذهنتون درموردش.
🔗 Link
@programming_codiing
این راهنما مراحل ساخت یک NPM Package رو بررسی میکنه، مقاله خوبیه بنظرم، برای باز کردن ذهنتون درموردش.
🔗 Link
@programming_codiing
❤4🔥2
نکست جیاس و پروژههای فولاستکی؟
اصلاً پروژه Full-Stack ای یعنی چی و Next.js چه کمکی به ساخت این پروژهها میکنه؟
مزیتش هم اینه که:
در واقع اگر هدفت فقط ساخت چند صفحه ساده نیست و میخوای پروژههایی بسازی که واقعاً کار کنن، یادگیری Next.js در کنار مفاهیم Full-Stack میتونه انتخاب خیلی خوبی باشه.
@programming_codiing
اصلاً پروژه Full-Stack ای یعنی چی و Next.js چه کمکی به ساخت این پروژهها میکنه؟
وقتی میگیم یک پروژه Full-Stack هست، یعنی فقط ظاهر سایت رو نمیسازیم؛ بلکه بخشهایی که پشت سایت اتفاق میافتن رو هم خودمون پیادهسازی میکنیم.
مثلاً یک فروشگاه اینترنتی رو در نظر بگیر:
صفحه محصولات، طراحی سایت و دکمهها یک بخش ماجراست؛
اما ثبتنام کاربر، ورود، ذخیره اطلاعات، سبد خرید و ثبت سفارش هم باید جایی مدیریت بشن.
اینجاست که مفهوم Full-Stack خودش رو نشون میده.
نکست جی اس یکی از گزینههای محبوب برای ساخت چنین پروژههاییه؛ چون میتونی باهاش بخشهای مختلف یک پروژه رو در کنار هم داشته باشی و لازم نباشه برای هر قسمت حتماً یک پروژه جدا بسازی.
مزیتش هم اینه که:
• توسعه پروژه راحتتر و یکپارچهتر میشه
• سرعت ساخت پروژه بالاتر میره
• میتونی پروژههای واقعیتر و کاملتری بسازی
• برای سایتهای بزرگ و کوچک قابل استفادهست
• امکانات خوبی برای سرعت و سئو داره
در واقع اگر هدفت فقط ساخت چند صفحه ساده نیست و میخوای پروژههایی بسازی که واقعاً کار کنن، یادگیری Next.js در کنار مفاهیم Full-Stack میتونه انتخاب خیلی خوبی باشه.
@programming_codiing
❤10🔥1
تکنولوژیها ادعا هستن؛ پروژهها مدرک.
چیزیه که توی برسی رزومهتون بیشتر خواهید دید.
@programming_codiing
چیزیه که توی برسی رزومهتون بیشتر خواهید دید.
@programming_codiing
❤18👍4💯2
احتمالاً عبارت Design Pattern رو بارها شنیدید؛
مخصوصاً اگه با React، JavaScript یا توسعه نرمافزار کار کرده باشید.
اما واقعاً Design Pattern چیه؟
پس Design Pattern بیشتر از اینکه یک سری کد آماده باشه، راهی برای فکر کردن و طراحی بهتر نرمافزاره.
@programming_codiing
مخصوصاً اگه با React، JavaScript یا توسعه نرمافزار کار کرده باشید.
اما واقعاً Design Pattern چیه؟
دیزاین پترن یعنی یک راهحلِ از قبل شناختهشده برای یک مسئلهی رایج در طراحی نرمافزارِ.
قرار نیست دیزاین پترن یک تکه کد آماده باشه که کپی کنیم و داخل پروژه بذاریم،
در واقع، یک الگوی فکری و طراحیه که بهمون میگه برای حل یک مشکل تکراری، معمولاً چه ساختاری میتونه مناسب باشه.
مثلاً فرض کنید در چند جای پروژه به یک منطق مشترک نیاز دارید. به جای اینکه هر بار همون منطق رو دوباره بنویسید، میتونید از یک الگوی مناسب استفاده کنید تا کد:
• قابل نگهداریتر باشه
• ساختار بهتری داشته باشه
• راحتتر توسعه پیدا کنه
• وابستگیهای غیرضروری کمتر بشن
دیزاین پترن ها معمولاً در چند دسته معروف قرار میگیرن که می تونید برای هر کدوم تحقیقی کنید.
نکته مهم اینه که استفاده ازش به معنی هر جا تونستی Pattern استفاده کن نیست،
در واقع اگه یک Pattern مشکل پروژه رو حل نکنه، فقط باعث پیچیدهتر شدن کد میشه، این در واقع همهجا صدق می کنه که اگر یه چیزی برای حل پيچيدگی پروژه بزرگی هست می تونه عامل خود پیچیدگی پروژه کوچیک هم باشه.
پس Design Pattern بیشتر از اینکه یک سری کد آماده باشه، راهی برای فکر کردن و طراحی بهتر نرمافزاره.
@programming_codiing
❤5✍2
</ MoDev >
چرا زبان انگلیسی کلید طلایی برنامهنویسیه؟ یکی از بزرگترین دغدغههایی که خیلیا موقع ورود به دنیای برنامهنویسی دارن اینه: «من زبان انگلیسیم خوب نیست، یعنی نمیتونم برنامهنویس بشم؟» پاسخ کوتاه و روشن: چرا که نه! بلد نبودن زبان انگلیسی اصلاً دلیلی برای…
به عنوان یه برنامهنویس
بنده از بالا نبودن سطح زبان انگلیسیم رنج می برم، البته که می تونستم از اول کار خودمو تقویت کنم ولی الان دارم انجامش می دم.
پیشنهادم اینه که برید کلاس زبان، چون واقعا تاثیرش خوبه تو یادگیری ولی اگه شرایطش رو ندارید، دوره زبان احمدیان رو ببینید یا هم یوتیوب پر از دوره هست که یکم بگردید پیدا می کنید و وقتی شروع کردید استمرار داشته باشید تا نتیجه بگیرید.
هر چی زبانتون خوب باشه دستتون بالاتره تو برنامه نویسی، جدی بگیریدش برا خودتون.❤️
@programming_codiing
بنده از بالا نبودن سطح زبان انگلیسیم رنج می برم، البته که می تونستم از اول کار خودمو تقویت کنم ولی الان دارم انجامش می دم.
پیشنهادم اینه که برید کلاس زبان، چون واقعا تاثیرش خوبه تو یادگیری ولی اگه شرایطش رو ندارید، دوره زبان احمدیان رو ببینید یا هم یوتیوب پر از دوره هست که یکم بگردید پیدا می کنید و وقتی شروع کردید استمرار داشته باشید تا نتیجه بگیرید.
هر چی زبانتون خوب باشه دستتون بالاتره تو برنامه نویسی، جدی بگیریدش برا خودتون.❤️
@programming_codiing
👍16❤8