Python Hints
سادهترین راه اجرای memray استفاده از دستور run هست + flamegraph همونطور که قبلا گفتم خروجی تمام پروفایلینگهارو باید نگه دارید و نمودار لایو اینکار رو نمیکنه پس قبل از استفاده از نمودار لایو (حین اجرای برنامه تمام دستورات و مصرف مموریهارو نشون میده) ازین…
دستور
این حالت برای وقتایی هست که میخواید اثبات کنید
گرفتن ریپورت
بجای گزارشات کلی که توی تغییر سایز
همونطور که از اسمش پیداس میگه اگر از
از بین ۳ تا آپشن بالا توی این مدت شخصا فقط از
اما دوتا آپشن دوست داشتنی دیگه هم وجود داره :
همیشه بعد از اینکه دستور
هم همین کار رو میکنه اما گزارشات رو روی یک
پر استفادهترین حالت بعد از
حتما برای کاستومایز کردن خروجیها و بررسی دقیقتر داکیومنتش رو نگاه کنید (سعی کردم مهمترین مواردی که شخصا استفاده میکنم رو بگم فقط).
run
چندتا option
هم داره که هرکدوم توی شرایط خاص استفاده میشه :memray run --native <my-script>.py
این حالت برای وقتایی هست که میخواید اثبات کنید
numpy
, pandas
, ... هستند که دارند ازین میزان رم استفاده میکنند یا اینکه میخواهید بین توابع مختلفی که پیکجها ارائه میدهند مقایسه انجام بدید.گرفتن ریپورت
html
روی این حالت میتونه طولانی باشه (جزو حالاتی هست که هم bin
هم html
بهتره روی یک سیستم خروجی گرفته بشه)memray run --trace-python-allocators <my-script>.py
بجای گزارشات کلی که توی تغییر سایز
memory pool
گرفته میشه به ازای ایجاد و از بین رفتن هر آبجکت براتون گزارش مموری میده که باز هم خروجی خیلی کندتری خواهد داشت؛ و البته اطلاعات بسیار بیشتر. memray run --follow-fork <my-script>.py
همونطور که از اسمش پیداس میگه اگر از
parent process
فورک گرفته شد وضعیت مموری اون child process
رو هم توی ریپورت بیار.از بین ۳ تا آپشن بالا توی این مدت شخصا فقط از
native
استفاده کردم چندبار (باقی موارد رو نیاز نداشتم)اما دوتا آپشن دوست داشتنی دیگه هم وجود داره :
memray run --live <my-script>.py
همیشه بعد از اینکه دستور
run
رو اجرا کردم (ذخیره بشه) و بعد گزارش html
رو آماده کردم؛ تا وقتی دارم روی memory optimization
کار میکنم تنها دائما از live option
استفاده میکنم و ... رو بهم میده (برای
PID, Thread, Samples, Duration, Max heap size, current heap size
current heap size
) چون توی حالت لایو سریع تغییر میکنه از استفاده میکنم توی جایی که مشکوک هستم به میزان مصرف مموری و اینجوری ی پنجره ۱۰ ثانیهای برای خودم باز میکنم تا دقیق بررسی کنم توی رم چه اتفاقی داره رخ میده.
time.sleep(10)
memray run --live-remote <my-script>.py
هم همین کار رو میکنه اما گزارشات رو روی یک
port
خاص میفرسته (بازم من ازش استفاده نکردم)memray run --live --native <my-script>.py
پر استفادهترین حالت بعد از
live option
برای من استفاده ترکیبی از live
و native
هست (البته که حوصله آدم سر میره بعضی وقتها تا گزارشش آماده بشه)حتما برای کاستومایز کردن خروجیها و بررسی دقیقتر داکیومنتش رو نگاه کنید (سعی کردم مهمترین مواردی که شخصا استفاده میکنم رو بگم فقط).
👍14❤8⚡1🌚1
برای دوستانی که بهونه سابقه کاری میآوردند
همونطور که تو جلسه رزومه نویسی گفتم، اگر یاد بگیرید و نکاتی که گفتم رو رعایت کنید، در حداقل حالت باید به مصاحبه دعوت بشید.
اینکه به این مرحله نمیرسید بخاطر سابقه کاری و ... نیست (پوزیشن جونیور)
بلکه بخاطر عدم توانایی شما در نوشتن رزومه هست.
پ.ن : از ایشان برای اشتراک گذاری تصویر اجازه گرفته شد.
همونطور که تو جلسه رزومه نویسی گفتم، اگر یاد بگیرید و نکاتی که گفتم رو رعایت کنید، در حداقل حالت باید به مصاحبه دعوت بشید.
اینکه به این مرحله نمیرسید بخاطر سابقه کاری و ... نیست (پوزیشن جونیور)
بلکه بخاطر عدم توانایی شما در نوشتن رزومه هست.
پ.ن : از ایشان برای اشتراک گذاری تصویر اجازه گرفته شد.
👍29👏12❤2🤪1
Search term:
1) IBM north pole chip
2) ResNet50 performance comparison IBM northpole results
👍11✍2
#Security_Alert
مک بازها (آیپد و آیفون هم شامل میشه) :
iLeakage
رو مراقب باشید
مقالهاش هم اومده، که خیلی هم اتک سادهای هست
و اپل هم میگه ۱ ساله میدونیم وجود داره ولی راهی براش نداریم. (امن هستیم چون کسی اسکریپت رو ننوشته)
فکر میکنم مشکل از سختافزار اپل باشه (بخصوص M1) فرصت کنم مقالهاش رو میخونم و اطلاع میدم.
خلاصه که خودتونید و خودتون، خیلی مراقب باشید 😂
بعد از استیو جابز و اون تیم خفن قدیمی، عملکرد اپل مثل ایران بود همش میگه اینو نداریم در عوضش امنیت داریم و ...
که اونم توی سالهای اخیر یکی پس از دیگری داره به فنا میره
بعنوان مثال زمان ارائه
Jailbreak
روی iOS, iPadOS رو مقایسه کنید با قبل.
مک بازها (آیپد و آیفون هم شامل میشه) :
iLeakage
رو مراقب باشید
مقالهاش هم اومده، که خیلی هم اتک سادهای هست
و اپل هم میگه ۱ ساله میدونیم وجود داره ولی راهی براش نداریم. (امن هستیم چون کسی اسکریپت رو ننوشته)
فکر میکنم مشکل از سختافزار اپل باشه (بخصوص M1) فرصت کنم مقالهاش رو میخونم و اطلاع میدم.
خلاصه که خودتونید و خودتون، خیلی مراقب باشید 😂
بعد از استیو جابز و اون تیم خفن قدیمی، عملکرد اپل مثل ایران بود همش میگه اینو نداریم در عوضش امنیت داریم و ...
که اونم توی سالهای اخیر یکی پس از دیگری داره به فنا میره
بعنوان مثال زمان ارائه
Jailbreak
روی iOS, iPadOS رو مقایسه کنید با قبل.
👍22😁5❤3🗿2👎1🙏1💔1
توی این هفته ۴ بار، یک سوال مصاحبه قدیمی رو در موردش صحبت پیش اومده؛
داستان چیه، من چندین سال پیش با یک شرکت مصاحبه داشتم و مصاحبه کننده ازم یک سوال
Data structure & Algorithm
پرسید، من سوال رو خیلی سریع توضیح دادم و بعد خیلی سریع هم پاسخ صحیح رو نوشتم، در نهایت از تعجب مصاحبه کننده شک کردم که اشتباهی شده و توضیح دادم که من سطح جونیور نیستم و ... (اشتباه سمت HR بود، چون توی جلسه اول هم پیش اومده بود)
طرف ازم خواست که سوال دیگری رو مطرح کنه و دیدم داره طول میکشه روی همون سوال قبلی بهش یک پیشنهادی دادم که واقعاً خودمم تا اون لحظه کار نکرده بودم و برام جذاب بود چالش قضیه
در نهایت ایشون هم قبول کرد و رفتیم سراغ مسئله (کل جلسه همین سوال طول کشید و درنهایت هم من قبول شدم)
توی این هفته (شایدم ۲ هفته)، یکبار بعنوان مصاحبه کننده، دوبار دوستانه و یکبار هم راهنمایی بعد از مصاحبه برای یکی از دوستان بحث سوال مطرح شد :
همینجا بگم، هیچکس جواب درست حالت سختتر رو نداد.
۱- سوال اصلی مصاحبه خودم :
با استفاده از ساختار داده لیست؛ یک کلاس stack پیاده سازی کنید که یک عدد ورودی به اسم n بگیره و به تعداد n استک ایجاد کنه بطوری که دیتای تمام این استکها داخل فقط و فقط ۱ لیست ذخیره بشه.
سوال خیلی سادهاس اما دوتا پرسش داره :
۱- آیا طول لیست از پیش تعریف شده هست؟ (که قطعاً میگن بله)
۲- آیا طول stack ها باهم برابر هست ؟ (جواب اینم بله هست)
که خب شما لیست رو به n قسمت تقسیم میکنید و هر قسمت رو به یک استک میدید.
نسخهای که من به ذهنم رسید (خودمم توی مصاحبههام میپرسم) :
۱- فرض کنید طول لیست از قبل مشخص نیست و stack ها میتونند تا بینهایت ادامه داشته باشند (فرض کنید رم بینهایت داریم)
دوتا راهکاری که به ذهن خودم رسید و هنوز توی این چندسال راه دیگهای بهم نگفتند :
۱- هر عنصر لیست، یک tuple باشه که ایندکس اول tuple اندیس stack باشه و ایندکس دوم، دادهایی که ذخیره شده
اما بازم سختش کنیم، شما غیر از نوع دادههای اصلی :
int, float, decimal, ...
چیزی نمیتونید داخل stack نگه دارید (یعنی فقط دیتا)
راهنمای کوچیک راهکار دوم : از Remainder طول فعلی لیست بر n استفاده کنید و ببینید کدوم اندیس برای کدوم stack هست.
بحث سر راهکار من روی آخرین حالت سوال (که خب سوال مصاحبه یکی از دوستان هم بوده، کاملاً اتفاقی) من رو به اینجا رسوند که این موارد مثل جلسه امشب رو یک کاری باهاش بکنیم،
دوره آموزش : قطعاً مخالفم، با هرگونه پول گرفتن از بچههای تازهکار برای آموزش دادن سواد مخالفم بنظرم باید این سواد در دسترس همه باشه چه اونی که از والدینش پول میگیره چه کسی که درحال حاضر توان مالی نداره.
اسپانسر : چندباری پیش اومده، اما نهایتاً هدفشون یا تبلیغ برای فروش دیگر محصولات آموزشی هست، یا اینکه میخوان یک بخشی رایگان باشه و باقی بفروش برسه و ...
خلاصه درآمدی (پول خوبی هم داره)
لایو : که خب محدودیت ۱۰۰ نفر و زمان و ... داریم و خیلیها فرصت نمیکنند شرکت کنند و چون ذخیره هم نمیشه خیلی چیز قشنگی نمیشه نهایتاً
متن و کانال : برای آموزشهای این چنینی واقعاً خوب نیست و خیلی خیلی سخت هست
یوتیوب : مزایایی که داره اینه که شما با دیدن؛ کامنت؛ لایک انگار دارید دوره رو میخرید و پشتیبانی مالی میکنید.
معایب : زمان زیادی میگیره - من واقعاً بلد کار نیستم - subscribe,like,comment نداشته باشه انگیزه خیلی پایین میاد - درآمدی نداره (حداقل اوایل کار) - درصورت عدم حمایت برندسازی خودم خراب میشه - از همه بدتر با توجه به اوضاع اینترنت ایران میترسم خیلی دوستان نتونند روی یوتیوب تماشا کنند و همه موارد قبلی اتفاق بیوفته
اما خیلی دوست دارم یک راهکاری پیدا کنم که حداقل میزانی که خودم بلد هستم مطالب مورد نیاز رو منتقل کنم به دوستان.
همچنان به دنبال راهکار
(ساعت دقیقاً ۵:۳۱ دقیقه صبح هست، و من به تازگی جلسهام تموم شد و این متن رو داغ داغ نوشتم)
داستان چیه، من چندین سال پیش با یک شرکت مصاحبه داشتم و مصاحبه کننده ازم یک سوال
Data structure & Algorithm
پرسید، من سوال رو خیلی سریع توضیح دادم و بعد خیلی سریع هم پاسخ صحیح رو نوشتم، در نهایت از تعجب مصاحبه کننده شک کردم که اشتباهی شده و توضیح دادم که من سطح جونیور نیستم و ... (اشتباه سمت HR بود، چون توی جلسه اول هم پیش اومده بود)
طرف ازم خواست که سوال دیگری رو مطرح کنه و دیدم داره طول میکشه روی همون سوال قبلی بهش یک پیشنهادی دادم که واقعاً خودمم تا اون لحظه کار نکرده بودم و برام جذاب بود چالش قضیه
در نهایت ایشون هم قبول کرد و رفتیم سراغ مسئله (کل جلسه همین سوال طول کشید و درنهایت هم من قبول شدم)
توی این هفته (شایدم ۲ هفته)، یکبار بعنوان مصاحبه کننده، دوبار دوستانه و یکبار هم راهنمایی بعد از مصاحبه برای یکی از دوستان بحث سوال مطرح شد :
همینجا بگم، هیچکس جواب درست حالت سختتر رو نداد.
۱- سوال اصلی مصاحبه خودم :
با استفاده از ساختار داده لیست؛ یک کلاس stack پیاده سازی کنید که یک عدد ورودی به اسم n بگیره و به تعداد n استک ایجاد کنه بطوری که دیتای تمام این استکها داخل فقط و فقط ۱ لیست ذخیره بشه.
سوال خیلی سادهاس اما دوتا پرسش داره :
۱- آیا طول لیست از پیش تعریف شده هست؟ (که قطعاً میگن بله)
۲- آیا طول stack ها باهم برابر هست ؟ (جواب اینم بله هست)
که خب شما لیست رو به n قسمت تقسیم میکنید و هر قسمت رو به یک استک میدید.
نسخهای که من به ذهنم رسید (خودمم توی مصاحبههام میپرسم) :
۱- فرض کنید طول لیست از قبل مشخص نیست و stack ها میتونند تا بینهایت ادامه داشته باشند (فرض کنید رم بینهایت داریم)
دوتا راهکاری که به ذهن خودم رسید و هنوز توی این چندسال راه دیگهای بهم نگفتند :
۱- هر عنصر لیست، یک tuple باشه که ایندکس اول tuple اندیس stack باشه و ایندکس دوم، دادهایی که ذخیره شده
اما بازم سختش کنیم، شما غیر از نوع دادههای اصلی :
int, float, decimal, ...
چیزی نمیتونید داخل stack نگه دارید (یعنی فقط دیتا)
راهنمای کوچیک راهکار دوم : از Remainder طول فعلی لیست بر n استفاده کنید و ببینید کدوم اندیس برای کدوم stack هست.
بحث سر راهکار من روی آخرین حالت سوال (که خب سوال مصاحبه یکی از دوستان هم بوده، کاملاً اتفاقی) من رو به اینجا رسوند که این موارد مثل جلسه امشب رو یک کاری باهاش بکنیم،
دوره آموزش : قطعاً مخالفم، با هرگونه پول گرفتن از بچههای تازهکار برای آموزش دادن سواد مخالفم بنظرم باید این سواد در دسترس همه باشه چه اونی که از والدینش پول میگیره چه کسی که درحال حاضر توان مالی نداره.
اسپانسر : چندباری پیش اومده، اما نهایتاً هدفشون یا تبلیغ برای فروش دیگر محصولات آموزشی هست، یا اینکه میخوان یک بخشی رایگان باشه و باقی بفروش برسه و ...
خلاصه درآمدی (پول خوبی هم داره)
لایو : که خب محدودیت ۱۰۰ نفر و زمان و ... داریم و خیلیها فرصت نمیکنند شرکت کنند و چون ذخیره هم نمیشه خیلی چیز قشنگی نمیشه نهایتاً
متن و کانال : برای آموزشهای این چنینی واقعاً خوب نیست و خیلی خیلی سخت هست
یوتیوب : مزایایی که داره اینه که شما با دیدن؛ کامنت؛ لایک انگار دارید دوره رو میخرید و پشتیبانی مالی میکنید.
معایب : زمان زیادی میگیره - من واقعاً بلد کار نیستم - subscribe,like,comment نداشته باشه انگیزه خیلی پایین میاد - درآمدی نداره (حداقل اوایل کار) - درصورت عدم حمایت برندسازی خودم خراب میشه - از همه بدتر با توجه به اوضاع اینترنت ایران میترسم خیلی دوستان نتونند روی یوتیوب تماشا کنند و همه موارد قبلی اتفاق بیوفته
اما خیلی دوست دارم یک راهکاری پیدا کنم که حداقل میزانی که خودم بلد هستم مطالب مورد نیاز رو منتقل کنم به دوستان.
همچنان به دنبال راهکار
(ساعت دقیقاً ۵:۳۱ دقیقه صبح هست، و من به تازگی جلسهام تموم شد و این متن رو داغ داغ نوشتم)
❤51👍10⚡1👎1
Python Hints
توی این هفته ۴ بار، یک سوال مصاحبه قدیمی رو در موردش صحبت پیش اومده؛ داستان چیه، من چندین سال پیش با یک شرکت مصاحبه داشتم و مصاحبه کننده ازم یک سوال Data structure & Algorithm پرسید، من سوال رو خیلی سریع توضیح دادم و بعد خیلی سریع هم پاسخ صحیح رو نوشتم،…
پیشنهاد، انگلیسی بودن ویدئوها بیشترین پیشنهاد بود
ولی نه ممنون،
منبع انگلیسی به وفور پیدا میشه با آدمهایی که فن بیان و تجربه تدریس بسیار بسیار بیشتری از من دارند.
هدف من جامعه برنامهنویسی ایرانی هست، بخصوص تازهکارها و افرادی که به زبان انگلیسی مسلط نیستند (دارند یاد میگیرند یا ...)
پ.ن :
یوتیوب رو هنوز خیلی روش نیستم البته
خیلی دوس داشتم ی جای بزرگی داشتم، همه بچهها رو جمع میکردم اونجا و همونجا دور هم تمرین میکردیم (طوریکه کرایه اتوبوس تا تهران رو هم حتی خودم میدادم)
اینجوری مطمئن بودم هرکسی علاقه داره حتماً میتونه یاد بگیره (اینترنت و ... محدودیتش نیست)
پیشنهاد پلتفرم پولی به من ندید، ممنون ♥️
ولی نه ممنون،
منبع انگلیسی به وفور پیدا میشه با آدمهایی که فن بیان و تجربه تدریس بسیار بسیار بیشتری از من دارند.
هدف من جامعه برنامهنویسی ایرانی هست، بخصوص تازهکارها و افرادی که به زبان انگلیسی مسلط نیستند (دارند یاد میگیرند یا ...)
پ.ن :
یوتیوب رو هنوز خیلی روش نیستم البته
خیلی دوس داشتم ی جای بزرگی داشتم، همه بچهها رو جمع میکردم اونجا و همونجا دور هم تمرین میکردیم (طوریکه کرایه اتوبوس تا تهران رو هم حتی خودم میدادم)
اینجوری مطمئن بودم هرکسی علاقه داره حتماً میتونه یاد بگیره (اینترنت و ... محدودیتش نیست)
پیشنهاد پلتفرم پولی به من ندید، ممنون ♥️
❤32👍25👏4⚡1
پیشنهاد یوتیوب با توضیحات مختلف و مشورتهایی که از دوستان گرفتم بهترین مدل هست :
حقیقتش هنوز شخصا شک دارم به این موضوع (بهترین بودن)
اما یکی از دوستان که توی این زمینه کار کرده قرار شد بهم آموزش بده (احتمال زمان زیادی میبره) ولی فعلا گانال رو ایجاد کردم تا شروع کنم به یادگیری اگر واقعا یوتیوب گزینه خوبی باشه و چیزی که میخوام ازش در بیاد همین رو میتونیم ادامه بدیم
اینم آدرس یوتبوب (خواستم رزرو کنم تا کسی زیرش نزده؛ شماهم فعلا سابسکرایب کنید انگیزه بگیریم.)
اگر کسی هم تجربه داره خوشحال میشم ازش یاد بگیرم.
PyHints Youtube Channel Link
مرسی از همه دوستان و نظرات (تمام موارد رو درنظر گرفتم و درنظر خواهم داشت)
حقیقتش هنوز شخصا شک دارم به این موضوع (بهترین بودن)
اما یکی از دوستان که توی این زمینه کار کرده قرار شد بهم آموزش بده (احتمال زمان زیادی میبره) ولی فعلا گانال رو ایجاد کردم تا شروع کنم به یادگیری اگر واقعا یوتیوب گزینه خوبی باشه و چیزی که میخوام ازش در بیاد همین رو میتونیم ادامه بدیم
اینم آدرس یوتبوب (خواستم رزرو کنم تا کسی زیرش نزده؛ شماهم فعلا سابسکرایب کنید انگیزه بگیریم.)
اگر کسی هم تجربه داره خوشحال میشم ازش یاد بگیرم.
PyHints Youtube Channel Link
مرسی از همه دوستان و نظرات (تمام موارد رو درنظر گرفتم و درنظر خواهم داشت)
❤58👍10❤🔥1
#خارج_از_بحث
احتمالا شما هم با
شخصا دنبال این بودم که
این مورد رو پیدا کردم امیدوارم مفید باشه :
۱- اول
۲- بعد از نصب روی آیکونش کلیک کنید و به بخش
۳- از منوی بالای صفحه وارد بخش
۴- توی ادیتور پایین همون صفحه این دستورات رو بزنید :
۵- روی گزینه
@PyHints
احتمالا شما هم با
anti-adblock detector
یوتیوب مواجه شدید و متوجه شدید تقریبا هیچکدوم از adblocker
های معروف نمیتونند دورش بزنند.شخصا دنبال این بودم که
popup
مربوط به بلاک شدن adblocker
رو فیلتر کنم (اینجوری دیگه اخطار نمیاد و ویدئو رو میشه اجرا کرد) : اگر بررسی کنید یوتیوب با اینکه اون اخطار رو نشون میده اما توی پس زمینه ویدئو رو هم درخواست میکنهاین مورد رو پیدا کردم امیدوارم مفید باشه :
۱- اول
uBlock
رو نصب کنید۲- بعد از نصب روی آیکونش کلیک کنید و به بخش
dashboard
برید (گوشه پایین سمت راست با علامت ۳ تا چرخدنده)۳- از منوی بالای صفحه وارد بخش
My Filters
بشید.۴- توی ادیتور پایین همون صفحه این دستورات رو بزنید :
youtube.com##+js(set, yt.config_.openPopupConfig.supportedPopups.adBlockMessageViewModel, false)
youtube.com##+js(set, Object.prototype.adBlocksFound, 0)
youtube.com##+js(set, ytplayer.config.args.raw_player_response.adPlacements, [])
youtube.com##+js(set, Object.prototype.hasAllowedInstreamAd, true)
۵- روی گزینه
apply changes
کلیک کنید و یوتیوب رو بدون تبلیغات ببینید و لذت ببرید.@PyHints
👍38❤9☃3✍3🌚3👎2
#موقت
طرف ی داکر فایل بهم داده
اندازه نصب کل OS حجم میگیره
DevOps
هم هست.
بعد من ساختم، ۷۰٪ حجمش کمتر شده.
در نهایت هم اومده میگه چرا میخوای کار من رو خراب کنی نکنه میخوای شغل من رو بگیری ؟
صرف یاد گرفتن ۴ تا دستور داکر، شما نمیتونی بزنی داکر رو حرفهای هستم.
طرف ی داکر فایل بهم داده
اندازه نصب کل OS حجم میگیره
DevOps
هم هست.
بعد من ساختم، ۷۰٪ حجمش کمتر شده.
در نهایت هم اومده میگه چرا میخوای کار من رو خراب کنی نکنه میخوای شغل من رو بگیری ؟
صرف یاد گرفتن ۴ تا دستور داکر، شما نمیتونی بزنی داکر رو حرفهای هستم.
👍54😁21👎1
آدم زرنگ جا پاش رو سفت میکنه و تورو مجبور به استخدام میکنه :
شرکت ۳ مورد نیروی تازهکار گرفته (امروز دیدمشون) و باید انتخاب میکردیم که بین این ۳ نفر با یک نفر قرارداد ۱ ساله ببندیم و ...
همشون کارشون عالی بود، اما یکی از نیروها سابقه کاری نداشت و تو زمان دانشگاه هم هیچ کاری نکرده بود (اسپویل، ایشون استخدام شد)
چرا، به همگی تسکهای مشابه داده شده بود و همگی کاملاً فوقالعاده از پس کارهاشون بر اومده بودند.
نیروهای قدیمی شرکت و هم تیمیهاشون هر سه مورد رو تأیید کردند (قرارداد قبلی ۶ ماهه بود.)
اما این دوستمون که دیده بود سابقه کاری نداره، و از نظر رزومه از باقی عقبتر هست توی وقتای خالی پروژهای که بهشون داده بودیم تا گیتش رو ببینند و ...
رفته بود نشسته بود
Type annotation
براش زده بود،
۴ تا دلیل قشنگ هم توی جلسه آورد :
۱- من رزومه قوی ندارم (سابقه کاری منظورش بود) پس باید دنبال راهکاری میگشتم که خودمو ثابت کنم.
۲- نمیخواستم خیلی مزاحم دولوپرهای قدیمی پروژه بشم، پس اول پروژه رو کامل خوندم و سوالاتم رو کامل نوشتم
۳- چون سورس کد زیاد بود، خیلی بخشها سردرگم میشدم، برای اینکه وقت کمتری ازم بگیره و شاید بتونم بعضی سوالات خودم رو جواب بدم به ذهنم رسید
Type Annotation
میتونه کمکم کنه و همین کار رو هم کردم.
۴- نمیدونستم کار رو میگیرم یا خیر، ولی خواستم اسمم توی بخشی از پروژههای شرکت بمونه برای نفرات بعدی اگر type annotations هام تایید بشه.
تنها کسی بود که این پروژه رو هم مثل موم تو دستش داشت (از نظر کد، نه بیزینس)
اینو گفتم برای دوستان تازهکار، حتماً نباید ی دیتابیس یا ... خفن پیادهسازی کنید که donate کرده باشید
بعضی وقتا همین کارهای ساده، مثل تایپینگ، داکیومنت کردن و ....
میتونه شمارو از باقی افراد سر تر نشون بده (اعتراف میکنم ایشون گزینه آخر من برای استخدام بود.)
شرکت ۳ مورد نیروی تازهکار گرفته (امروز دیدمشون) و باید انتخاب میکردیم که بین این ۳ نفر با یک نفر قرارداد ۱ ساله ببندیم و ...
همشون کارشون عالی بود، اما یکی از نیروها سابقه کاری نداشت و تو زمان دانشگاه هم هیچ کاری نکرده بود (اسپویل، ایشون استخدام شد)
چرا، به همگی تسکهای مشابه داده شده بود و همگی کاملاً فوقالعاده از پس کارهاشون بر اومده بودند.
نیروهای قدیمی شرکت و هم تیمیهاشون هر سه مورد رو تأیید کردند (قرارداد قبلی ۶ ماهه بود.)
اما این دوستمون که دیده بود سابقه کاری نداره، و از نظر رزومه از باقی عقبتر هست توی وقتای خالی پروژهای که بهشون داده بودیم تا گیتش رو ببینند و ...
رفته بود نشسته بود
Type annotation
براش زده بود،
۴ تا دلیل قشنگ هم توی جلسه آورد :
۱- من رزومه قوی ندارم (سابقه کاری منظورش بود) پس باید دنبال راهکاری میگشتم که خودمو ثابت کنم.
۲- نمیخواستم خیلی مزاحم دولوپرهای قدیمی پروژه بشم، پس اول پروژه رو کامل خوندم و سوالاتم رو کامل نوشتم
۳- چون سورس کد زیاد بود، خیلی بخشها سردرگم میشدم، برای اینکه وقت کمتری ازم بگیره و شاید بتونم بعضی سوالات خودم رو جواب بدم به ذهنم رسید
Type Annotation
میتونه کمکم کنه و همین کار رو هم کردم.
۴- نمیدونستم کار رو میگیرم یا خیر، ولی خواستم اسمم توی بخشی از پروژههای شرکت بمونه برای نفرات بعدی اگر type annotations هام تایید بشه.
تنها کسی بود که این پروژه رو هم مثل موم تو دستش داشت (از نظر کد، نه بیزینس)
اینو گفتم برای دوستان تازهکار، حتماً نباید ی دیتابیس یا ... خفن پیادهسازی کنید که donate کرده باشید
بعضی وقتا همین کارهای ساده، مثل تایپینگ، داکیومنت کردن و ....
میتونه شمارو از باقی افراد سر تر نشون بده (اعتراف میکنم ایشون گزینه آخر من برای استخدام بود.)
👍72⚡3🤩2❤1🐳1
این رو تازه کشف کردم گفتم شاید مفید باشه :
توی پایتون
کاربردش توی
هست.
مثال تصویر رو ببینید تا متوجه بشید (توی پروژههای بزرگ واقعا بسیار بسیار کمک کننده هست بخصوص در زمان
تصویر اول نسخهای هست که مشکل ایجاد میکنه (البته
و تصویر دوم راهحل ساده.
@PyHints
توی نسخه قدیمیتر از
که معمولا اکثرا فراموش میشد
توی پایتون
3.11
یک تایپینگ جدید اضافه شده به اسم Self
:from typing import Self
کاربردش توی
class - classmethod - context manager
و البته مهمتر از همه Class inheritance
هست.
مثال تصویر رو ببینید تا متوجه بشید (توی پروژههای بزرگ واقعا بسیار بسیار کمک کننده هست بخصوص در زمان
debug
)تصویر اول نسخهای هست که مشکل ایجاد میکنه (البته
BUG
نیست چون typing
پایتون هیچ تاثیری در زمان اجرا نداره)و تصویر دوم راهحل ساده.
@PyHints
توی نسخه قدیمیتر از
3.11
باید برید سراغ راهکارهایی مثل
TypeVar, Generic
که معمولا اکثرا فراموش میشد
👍38✍5⚡3❤1
اسم نمیبرم
ولی طرف دوره گذاشته، آموزش رزومه نویسی و چگونگی پیدا کردن بهترین موقعیت شغلی.
یکی از شما دوستان برای من فرستادید،
رفتم یک سرچی زدم دیدم طرف خودش هنوز کار گیر نیاورده و جایی کارآموز هست. (چون با حرفهاش مخالف بودم)
قبل از اینکه پول و وقت صرف این دورهها کنید، ی جستجو بزنید (خیلی خیلی مهمتر هست)
ولی طرف دوره گذاشته، آموزش رزومه نویسی و چگونگی پیدا کردن بهترین موقعیت شغلی.
یکی از شما دوستان برای من فرستادید،
رفتم یک سرچی زدم دیدم طرف خودش هنوز کار گیر نیاورده و جایی کارآموز هست. (چون با حرفهاش مخالف بودم)
قبل از اینکه پول و وقت صرف این دورهها کنید، ی جستجو بزنید (خیلی خیلی مهمتر هست)
✍31👍18😁6🤪6❤3🗿3🐳1
اینم چون دیدم خیلی از بچهها نمیدونند :
اگر شما هم مثل من بیشتر کارها رو با
انجام میدید و ممکنه توی چند هفته بیش از
مخصوصاً اینکه من
رو هم فعال کردم.
ی راهکار بگم بدون restart مصرف رم فایرفاکس رو کم کنید (بخصوص روی دیتاهای کش شده که دیگه نیازی بهش نداره) توی سرچ بار بزنید :
و توی صفحهای که باز میشه توی بخش
گزینه
و بعد از اون
رو بزنید.
بستگی به استفاده شما داره، ولی برای من معمولاً چند گیگ رم رو خالی میکنه.
بطور کلی
Hardware Acceleration
رو اگر خاموش کنید مصرف رم قطعاً بهینهتر و کمتر خواهد بود.
اگر شما هم مثل من بیشتر کارها رو با
Firefox
انجام میدید و ممکنه توی چند هفته بیش از
sleep
کردن سیستم کاری نتونید بکنید قطعاً مشکل Ram رو دیدید (روی سیستم من بعضی وقتا که خیلی سنگین استفاده میکنم، به ۱۵ گیگ - ۲۰ گیگ هم میرسه) مخصوصاً اینکه من
Hardware Acceleration
رو هم فعال کردم.
ی راهکار بگم بدون restart مصرف رم فایرفاکس رو کم کنید (بخصوص روی دیتاهای کش شده که دیگه نیازی بهش نداره) توی سرچ بار بزنید :
about:memory
و توی صفحهای که باز میشه توی بخش
Free Memory
گزینه
GC (garbage collection)
و بعد از اون
Minimize memory usage
رو بزنید.
بستگی به استفاده شما داره، ولی برای من معمولاً چند گیگ رم رو خالی میکنه.
بطور کلی
Hardware Acceleration
رو اگر خاموش کنید مصرف رم قطعاً بهینهتر و کمتر خواهد بود.
👍32❤3⚡1
مقایسه داشته باشیم روی
داخل ایران و استانداردهایی که شرکتها یا استارتاپهای مطرح رعایت میکنند :
اول نسخه شرکتهای مطرح :
مدل مطرح بین شرکتهای ایرانی:
که خب معمولا در حد ۱-۲ صفحه میاد بدون هیچ جلسهای
خوشحال نباشید این قدم تو ایران فقط برای سختافزار و منابع مالی هست
یک راست میریم سراغ طراحی فرانت (معماری سیستم و ... اصلا معنی نداره تو اینجا؛ جزئیات که هیچ)
این قدم توی ایران هست به بکند میگن که چی میخوایم و چطوری باید پیاده بشه (برگای آدم میریزه)
بجای اینکه دیتابیس طراحی بشه و نیازمندی به بکند تسک بشه
به بکند میگن که دیتابیس رو خودت طراحی کن (برای همین هیچکدوم از شرکتهای مطرح ایرانی شناسنامه دیتابیس نداند) و نیازمندی رو هم خودمون بهت میگیم چطوری باید پیاده سازی بشه که همین دلیل ۹۰٪ عدم رعایت
تست نویسی اصلا مطرح نیست تو ایران تا زمانش بشه
پروتوتایپ هم همین هست (اگر مجبور نباشیم؛ نمیدیم)
معماری پروژه هیچوقت آپدیت نمیشه و بهبود پیدا نمیکنه فقط فیچر بهش میچسبه و اهمیتی هم نداره بعد از این چقدر معماری بدردنخور میشه چون هنوز کار میکنه.
اینو فقط بعنوان یک رفرنس میذارم (مطمئنم همهی شما هم تقریبا باهام همنظر هستید و چیزایی که گفتم رو دیدید توی ایران) که به وقت مدیر فنی شدن سعی کنید برای نسل بعدی یک چیزی رو درست کنید.
Software Design Steps
داخل ایران و استانداردهایی که شرکتها یا استارتاپهای مطرح رعایت میکنند :
اول نسخه شرکتهای مطرح :
1- Requirement Analysis
2- System Architecture Design (system design)
3- Detailed Design (Component design)
4- UI
5- Database design
6- Prototyping
7- Test Strategy
8- Regular design review / updates
* All above steps, must have documentation step in it.مدل مطرح بین شرکتهای ایرانی:
1- SRS (Software Requirements Specification)
که خب معمولا در حد ۱-۲ صفحه میاد بدون هیچ جلسهای
2-
Requirement Analysis
خوشحال نباشید این قدم تو ایران فقط برای سختافزار و منابع مالی هست
3- UI/UX Design
یک راست میریم سراغ طراحی فرانت (معماری سیستم و ... اصلا معنی نداره تو اینجا؛ جزئیات که هیچ)
4- API Design
این قدم توی ایران هست به بکند میگن که چی میخوایم و چطوری باید پیاده بشه (برگای آدم میریزه)
بجای اینکه دیتابیس طراحی بشه و نیازمندی به بکند تسک بشه
به بکند میگن که دیتابیس رو خودت طراحی کن (برای همین هیچکدوم از شرکتهای مطرح ایرانی شناسنامه دیتابیس نداند) و نیازمندی رو هم خودمون بهت میگیم چطوری باید پیاده سازی بشه که همین دلیل ۹۰٪ عدم رعایت
clean code
هم هست 5- Deploy
تست نویسی اصلا مطرح نیست تو ایران تا زمانش بشه
پروتوتایپ هم همین هست (اگر مجبور نباشیم؛ نمیدیم)
معماری پروژه هیچوقت آپدیت نمیشه و بهبود پیدا نمیکنه فقط فیچر بهش میچسبه و اهمیتی هم نداره بعد از این چقدر معماری بدردنخور میشه چون هنوز کار میکنه.
اینو فقط بعنوان یک رفرنس میذارم (مطمئنم همهی شما هم تقریبا باهام همنظر هستید و چیزایی که گفتم رو دیدید توی ایران) که به وقت مدیر فنی شدن سعی کنید برای نسل بعدی یک چیزی رو درست کنید.
👍45❤5🤪3🗿3☃1⚡1