۳۰ توصیه از یک برنامهنویس سنیور: نکاتی که ای کاش زودتر میدونستیم! 🦠
۱. کد تمیز مهمتر از کد سریعه. بعداً که برگردی سراغ کدت، از خودت تشکر میکنی!
۲. مهارت های نرم(ارتباط، حل مسئله و...) رو جدی بگیر.
۳. همیشه فکر کن یه نفر دیگه قراره کدت رو بخونه - حتی اگه تنها توی پروژه کار میکنی.
۴. هر روز حداقل نیم ساعت مطالعه کن، مهم نیست چقدر شلوغی!
۵. سراغ فریمورک جدید نرو تا وقتی پایهت قوی نشده. جاوااسکریپت وانیلا رو خوب یاد بگیر، بعد برو سراغ ریاکت.
۶. گیت رو جدی بگیر. روزی میرسه که نجاتت میده و مهم نیست کجای رودمپ هستی، یادش بگیر.
۷. وقتی یه چیزی رو نمیدونی، با افتخار بگو نمیدونم. هیچکس همه چیز رو نمیدونه.
۸. کد ریویو فقط برای پیدا کردن باگ نیست. ازش برای یادگیری استفاده کن.
۹. با تیمت خوب رفتار کن. مهم نیست چقدر باهوشی، اگه نتونی با بقیه کار کنی، به درد نمیخوری!
۱۰. قبل از شروع کدنویسی، نحوه پیاده سازی تسک هارو تو ذهنت طراحی کن.
۱۱. هر تغییری رو تست کن، حتی اگه مطمئنی درسته.
۱۲. دیباگ کردن رو یاد بگیر، console.log همیشه جواب نمیده!
۱۳. امنیت رو از روز اول جدی بگیر. بعداً خیلی دیره.
۱۴. پرفورمنس مهمه، ولی نه به قیمت امنیت.
۱۵. داکیومنت بنویس. نه برای بقیه، برای خودت!
۱۶. هر ۶ ماه یه تکنولوژی جدید یاد بگیر.
۱۷. توی کامیونیتیها فعال باش. یه روزی به دردت میخوره.
۱۸. فقط به حقوق فکر نکن، به چیزی که یاد میگیری هم فکر کن. خروجی ما از شرکت و تیم نباید فقط بحث مالی باشه.
۱۹. تخصص و انرژیت رو ارزون در اختیار بقیه قرار نده.
۲۰. استکاورفلو و Gpt خوبه، ولی اول سعی کن خودت فکر کنی.
۲۱. کامنت بذار، ولی نه برای توضیح کد بد.
۲۲. پشت سیستم ورزش کن. کمردرد شوخی نداره.
۲۳. به چشمهات استراحت بده و قانون ۲۰-۲۰-۲۰ رو رعایت کن.
۲۴. زندگی فقط کد نیست. تفریح هم مهمه.
۲۵. تخمین زمانی رو ضرب در ۲ کن، باز هم کمه!
۲۶. تکنیکال دبت رو جدی بگیر. یه روز میاد سراغت.
۲۷. کمالگرایی رو بزار کنار و MVP بساز.
۲۸. از شکستهات یاد بگیر، همه اشتباه میکنن.
۲۹. صبور باش، همه یه روزی جونیور بودن.
۳۰. لذت ببر! برنامهنویسی قشنگترین شغل دنیاست.
شما چه تجربه ای دارید؟ 🤔
✍️👩💻 @BarnamNavisi
۱. کد تمیز مهمتر از کد سریعه. بعداً که برگردی سراغ کدت، از خودت تشکر میکنی!
۲. مهارت های نرم(ارتباط، حل مسئله و...) رو جدی بگیر.
۳. همیشه فکر کن یه نفر دیگه قراره کدت رو بخونه - حتی اگه تنها توی پروژه کار میکنی.
۴. هر روز حداقل نیم ساعت مطالعه کن، مهم نیست چقدر شلوغی!
۵. سراغ فریمورک جدید نرو تا وقتی پایهت قوی نشده. جاوااسکریپت وانیلا رو خوب یاد بگیر، بعد برو سراغ ریاکت.
۶. گیت رو جدی بگیر. روزی میرسه که نجاتت میده و مهم نیست کجای رودمپ هستی، یادش بگیر.
۷. وقتی یه چیزی رو نمیدونی، با افتخار بگو نمیدونم. هیچکس همه چیز رو نمیدونه.
۸. کد ریویو فقط برای پیدا کردن باگ نیست. ازش برای یادگیری استفاده کن.
۹. با تیمت خوب رفتار کن. مهم نیست چقدر باهوشی، اگه نتونی با بقیه کار کنی، به درد نمیخوری!
۱۰. قبل از شروع کدنویسی، نحوه پیاده سازی تسک هارو تو ذهنت طراحی کن.
۱۱. هر تغییری رو تست کن، حتی اگه مطمئنی درسته.
۱۲. دیباگ کردن رو یاد بگیر، console.log همیشه جواب نمیده!
۱۳. امنیت رو از روز اول جدی بگیر. بعداً خیلی دیره.
۱۴. پرفورمنس مهمه، ولی نه به قیمت امنیت.
۱۵. داکیومنت بنویس. نه برای بقیه، برای خودت!
۱۶. هر ۶ ماه یه تکنولوژی جدید یاد بگیر.
۱۷. توی کامیونیتیها فعال باش. یه روزی به دردت میخوره.
۱۸. فقط به حقوق فکر نکن، به چیزی که یاد میگیری هم فکر کن. خروجی ما از شرکت و تیم نباید فقط بحث مالی باشه.
۱۹. تخصص و انرژیت رو ارزون در اختیار بقیه قرار نده.
۲۰. استکاورفلو و Gpt خوبه، ولی اول سعی کن خودت فکر کنی.
۲۱. کامنت بذار، ولی نه برای توضیح کد بد.
۲۲. پشت سیستم ورزش کن. کمردرد شوخی نداره.
۲۳. به چشمهات استراحت بده و قانون ۲۰-۲۰-۲۰ رو رعایت کن.
۲۴. زندگی فقط کد نیست. تفریح هم مهمه.
۲۵. تخمین زمانی رو ضرب در ۲ کن، باز هم کمه!
۲۶. تکنیکال دبت رو جدی بگیر. یه روز میاد سراغت.
۲۷. کمالگرایی رو بزار کنار و MVP بساز.
۲۸. از شکستهات یاد بگیر، همه اشتباه میکنن.
۲۹. صبور باش، همه یه روزی جونیور بودن.
۳۰. لذت ببر! برنامهنویسی قشنگترین شغل دنیاست.
شما چه تجربه ای دارید؟ 🤔
✍️
Please open Telegram to view this post
VIEW IN TELEGRAM
ساختار دادهای جدول هش (Hash Table Data Structure):
هشینگ (Hashing) یکی از ساختارهای دادهای مهم و کارآمد است که برای انتساب یک مقدار به یک کلید خاص استفاده میشود. این فرآیند از طریق یک تابع هش انجام میشود. هدف اصلی این ساختار، دسترسی سریعتر به عناصر با استفاده از این کلیدها است. کارایی هشینگ به شدت به طراحی و کارایی تابع هش وابسته است، به طوری که تابع هش باید برخوردها (Collisions) را به حداقل برساند و دادهها را به صورت یکنواخت در جدول توزیع کند.
فرض کنید یک تابع هش H(x) مقدار x را در شاخص x % 10 در یک آرایه ذخیره میکند.
به عنوان مثال، اگر لیست مقادیر [11,12,13,14,15] باشد، این مقادیر در موقعیتهای {1,2,3,4,5} در جدول هش ذخیره خواهند شد.
موارد استفاده از ساختار دادهای جدول هش(Hash Table Data Structure):
1-ساختارهای دادهای برای جستجو و بازیابی سریع:
به طور گسترده در پیادهسازی دیکشنریها (مثل Dictionary در Python یا HashMap در Java و C#) استفاده میشود.
2-مدیریت پایگاه دادهها:
برای نگهداری ایندکسها در پایگاه دادهها، جدولهای هش به منظور دسترسی سریع به رکوردها استفاده میشود.
3-سیستمهای کش (Caching):
برای ذخیره و بازیابی دادهها در سیستمهای کش با سرعت بالا، مانند Memcached.
4-سیستمهای تشخیص کلمات تکراری:
در پردازش زبان طبیعی (NLP) و بررسی متون برای ذخیره مجموعهای از کلمات و بررسی وجود یا عدم وجود آنها.
5-مدیریت حافظه:
برای مدیریت سریع تخصیص و آزادسازی حافظه.
6-حل مسائل با زمانبندی مناسب:
مانند تشخیص مقادیر تکراری در یک آرایه یا نگاشت یک مقدار به کلید برای مرتبسازی و جستجو سریع.
7-شبکههای کامپیوتری:
در مسیریابی و کش DNS برای ذخیره آدرسهای IP و نام دامنهها.
مزایا:
1-سرعت بالا در جستجو و بازیابی.
2-کارایی مناسب برای دادههای بزرگ.
3-انعطافپذیری در ذخیرهسازی جفتهای کلید-مقدار.
4-پیادهسازی ساده و گسترده در زبانهای برنامهنویسی.
چالشها:
1-مدیریت برخوردها (Collisions).
2-طراحی مناسب و کارآمد تابع هش.
3-هزینه افزایش اندازه جدول هش (Resizing).
4-مصرف بیشتر حافظه برای کاهش برخوردها.
5-حساسیت به کیفیت کلیدهای ورودی.
✍️👩💻 @BarnamNavisi
هشینگ (Hashing) یکی از ساختارهای دادهای مهم و کارآمد است که برای انتساب یک مقدار به یک کلید خاص استفاده میشود. این فرآیند از طریق یک تابع هش انجام میشود. هدف اصلی این ساختار، دسترسی سریعتر به عناصر با استفاده از این کلیدها است. کارایی هشینگ به شدت به طراحی و کارایی تابع هش وابسته است، به طوری که تابع هش باید برخوردها (Collisions) را به حداقل برساند و دادهها را به صورت یکنواخت در جدول توزیع کند.
فرض کنید یک تابع هش H(x) مقدار x را در شاخص x % 10 در یک آرایه ذخیره میکند.
به عنوان مثال، اگر لیست مقادیر [11,12,13,14,15] باشد، این مقادیر در موقعیتهای {1,2,3,4,5} در جدول هش ذخیره خواهند شد.
موارد استفاده از ساختار دادهای جدول هش(Hash Table Data Structure):
1-ساختارهای دادهای برای جستجو و بازیابی سریع:
به طور گسترده در پیادهسازی دیکشنریها (مثل Dictionary در Python یا HashMap در Java و C#) استفاده میشود.
2-مدیریت پایگاه دادهها:
برای نگهداری ایندکسها در پایگاه دادهها، جدولهای هش به منظور دسترسی سریع به رکوردها استفاده میشود.
3-سیستمهای کش (Caching):
برای ذخیره و بازیابی دادهها در سیستمهای کش با سرعت بالا، مانند Memcached.
4-سیستمهای تشخیص کلمات تکراری:
در پردازش زبان طبیعی (NLP) و بررسی متون برای ذخیره مجموعهای از کلمات و بررسی وجود یا عدم وجود آنها.
5-مدیریت حافظه:
برای مدیریت سریع تخصیص و آزادسازی حافظه.
6-حل مسائل با زمانبندی مناسب:
مانند تشخیص مقادیر تکراری در یک آرایه یا نگاشت یک مقدار به کلید برای مرتبسازی و جستجو سریع.
7-شبکههای کامپیوتری:
در مسیریابی و کش DNS برای ذخیره آدرسهای IP و نام دامنهها.
مزایا:
1-سرعت بالا در جستجو و بازیابی.
2-کارایی مناسب برای دادههای بزرگ.
3-انعطافپذیری در ذخیرهسازی جفتهای کلید-مقدار.
4-پیادهسازی ساده و گسترده در زبانهای برنامهنویسی.
چالشها:
1-مدیریت برخوردها (Collisions).
2-طراحی مناسب و کارآمد تابع هش.
3-هزینه افزایش اندازه جدول هش (Resizing).
4-مصرف بیشتر حافظه برای کاهش برخوردها.
5-حساسیت به کیفیت کلیدهای ورودی.
✍️
Please open Telegram to view this post
VIEW IN TELEGRAM
- ۶ تا میانبر طلایی توی VS Code که زندگیتو راحت میکنه!
✍️
Please open Telegram to view this post
VIEW IN TELEGRAM