نکته جالبی که اخیرا بهش برخوردم قابلیت استفاده از HTML CSS داخل markdown بود. و همین نکته نظرم رو کاملا راجب markdown عوض کرد.
همچنین چیزی خیلی انعطاف میده به فرمت markdown و در نتیجه Joplin که ابزار نوت برداری با markdown هست رو خیلی قوی میکنه.
البته بگم که ساپورت کامل HTML CSS به برنامه هم بستگی داره. بعضی برنامه ها ممکنه یه زیرمجموعه ای از تگ های HTML CSS رو ساپورت کنن.
مثلا Joplin که برنامه نوت برداری هست از تگ button پشتیبانی نمیکنه (چون معقول هم نیست). ولی flexbox راحت میشه ست کرد با CSS هم استایل بندی کرد.
یه ریفرنس آموزشی که خیلی خوب هست و پیشنهاد میکنم اگر میخواید مارکداون یادبگیرید مطالعه کنید.
https://www.markdownguide.org/
همچنین چیزی خیلی انعطاف میده به فرمت markdown و در نتیجه Joplin که ابزار نوت برداری با markdown هست رو خیلی قوی میکنه.
البته بگم که ساپورت کامل HTML CSS به برنامه هم بستگی داره. بعضی برنامه ها ممکنه یه زیرمجموعه ای از تگ های HTML CSS رو ساپورت کنن.
مثلا Joplin که برنامه نوت برداری هست از تگ button پشتیبانی نمیکنه (چون معقول هم نیست). ولی flexbox راحت میشه ست کرد با CSS هم استایل بندی کرد.
یه ریفرنس آموزشی که خیلی خوب هست و پیشنهاد میکنم اگر میخواید مارکداون یادبگیرید مطالعه کنید.
https://www.markdownguide.org/
www.markdownguide.org
Markdown Guide
A free and open-source reference guide that explains how to use Markdown.
Joplin:
مدتی هست که از Joplin برای نوت برداری استفاده میکنم و باید بگم برنامه خیلی خوبی هست. اوپن سورس و بسیار معروف.
از تمام ظرفیت های markdown استفاده میکنه و تفاوت های خیلی جزیی داره.
متاسفانه داخل ادیتور ساپورت فارسیش مشکل داره ولی با یه
راحت میشه رندرینگش رو درست کرد.
بخش ادیتش هم احتمالا خیلی ساده میشه فیکس کرد اگر web dev باشید.
Disclosure: I am not a web developer.
بهترین بخش این برنامه برای من synchronization به صورت plain text هست. نه دیتابیسی نه چیز دیگه ای.
یعنی عملا میتونی داخل گیت ذخیره کنی و حتی diff هارو هم ببینی. ولی خب یه سری داستان ها داره (خودش هیستوری تغییرات رو هم ذخیره میکنه). ولی در کل همه plaintext هستن.
همین بهم اجازه داده که به جای سرویس ابری از syncthing برای همگام سازی دیتاهام استفاده کنم و اگر به conflict خوردم راحت برم و یه diff بگیرم و حل کنم.
(بزودی syncthing هم معرفی میکنم)
جدا از اون extension های زیادی داره و عملا میتونید قابلیت های جدیدی به joplin اضافه بکنید.
Joplin Enhancement
برای من مهم ترینشون بود که فیچر های خیلی مهمی رو اضافه میکرد.
جدا از اون قابلیت export به PDF و HTML هم دارید که برای ساخت داکیومنت PDF خیلی خوبه.
لینک وبسایت رسمی
#Apps
مدتی هست که از Joplin برای نوت برداری استفاده میکنم و باید بگم برنامه خیلی خوبی هست. اوپن سورس و بسیار معروف.
از تمام ظرفیت های markdown استفاده میکنه و تفاوت های خیلی جزیی داره.
متاسفانه داخل ادیتور ساپورت فارسیش مشکل داره ولی با یه
<div dir="auto">
</div>
راحت میشه رندرینگش رو درست کرد.
بخش ادیتش هم احتمالا خیلی ساده میشه فیکس کرد اگر web dev باشید.
Disclosure: I am not a web developer.
بهترین بخش این برنامه برای من synchronization به صورت plain text هست. نه دیتابیسی نه چیز دیگه ای.
یعنی عملا میتونی داخل گیت ذخیره کنی و حتی diff هارو هم ببینی. ولی خب یه سری داستان ها داره (خودش هیستوری تغییرات رو هم ذخیره میکنه). ولی در کل همه plaintext هستن.
همین بهم اجازه داده که به جای سرویس ابری از syncthing برای همگام سازی دیتاهام استفاده کنم و اگر به conflict خوردم راحت برم و یه diff بگیرم و حل کنم.
(بزودی syncthing هم معرفی میکنم)
جدا از اون extension های زیادی داره و عملا میتونید قابلیت های جدیدی به joplin اضافه بکنید.
Joplin Enhancement
برای من مهم ترینشون بود که فیچر های خیلی مهمی رو اضافه میکرد.
جدا از اون قابلیت export به PDF و HTML هم دارید که برای ساخت داکیومنت PDF خیلی خوبه.
لینک وبسایت رسمی
#Apps
joplinapp.org
Joplin website
Joplin, the open source note-taking application
کسایی که پکیجینگ برای توزیع های مختلف لینوکسی انحام میدن. این حتما بدردتون میخوره. تا حالا خواستید که
رو روی یه مقصد خاصی جز روت بزنید و این همه دنبال makefile یا استراکچر مسیر بیلد نگردید.
این کارتون رو خیلی آسون میکنه
کافیه که فلگ DESDIR رو ست کنید روی مسیری که میخواید نصب بشه و جای مسیر روت توزیعتون میاد اون مسیر رو روت فرض میکنه و طبق اون فولدر ها و فایل هارو میسازه یا کپی میکنه.
خیلی این کار پکیجینگ رو ساده میکنه.
منبع
#Linux
#Tips
make installرو روی یه مقصد خاصی جز روت بزنید و این همه دنبال makefile یا استراکچر مسیر بیلد نگردید.
این کارتون رو خیلی آسون میکنه
کافیه که فلگ DESDIR رو ست کنید روی مسیری که میخواید نصب بشه و جای مسیر روت توزیعتون میاد اون مسیر رو روت فرض میکنه و طبق اون فولدر ها و فایل هارو میسازه یا کپی میکنه.
make DESTDIR=/path/to/dir installخیلی این کار پکیجینگ رو ساده میکنه.
منبع
#Linux
#Tips
Baeldung on Linux
Changing the Install Directory with make install | Baeldung on Linux
Have a look at how to change the destination path when installing a package using make install.
حالا که صحبت از بیلد و make شد. یه ویدیویی هم همین چند وقت پیش داشتم دنبال میکردم.
آموزش cmake که بیشتر برای کاربرای لینوکس تدارک دیده شده. (ولی خب ویندوز کارا هم میتونن ازش استفاده کنن مخصوصا اگر از محیط MSYS2 یا Cygwin برای بیلد استفاده میکنید)
https://www.youtube.com/playlist?list=PLalVdRk2RC6o5GHu618ARWh0VO0bFlif4
انگلیسی هست. و تا اپیزود سه اش که رفتم. البته طرف اپیزود دومش رو یه بار دیگه ریکورد کرده که قبلیش اینجاست.
https://www.youtube.com/watch?v=kEGQKzhciKc
آموزش cmake که بیشتر برای کاربرای لینوکس تدارک دیده شده. (ولی خب ویندوز کارا هم میتونن ازش استفاده کنن مخصوصا اگر از محیط MSYS2 یا Cygwin برای بیلد استفاده میکنید)
https://www.youtube.com/playlist?list=PLalVdRk2RC6o5GHu618ARWh0VO0bFlif4
انگلیسی هست. و تا اپیزود سه اش که رفتم. البته طرف اپیزود دومش رو یه بار دیگه ریکورد کرده که قبلیش اینجاست.
https://www.youtube.com/watch?v=kEGQKzhciKc
خیلیا تا این حد پیشرفته سراغ ماژول logging نرفتن. ولی این ویدیو انگار end قضیه logging داخل پایتون بود برام.
خیلی خوشم اومد ازش گفتم اینجا هم بزارم.
میدونستید هندلر های دیگری داریم؟
یا اینکه فیلتر هارو چطوری درست کنیم؟
یا حتی چطوری فرمتر بنویسیم؟
و سطوح مختلف لاگ و نحوه کانفیگ لاگ به صورت کامل از json.
جدا کردن بخش لاگ به یه thread جدا (io optimization)
یا لاگ های تمیز گرفتن در قالب jsonl.
همه اینا داخل این ویدیو.
https://www.youtube.com/watch?v=9L77QExPmI0
خیلی خوشم اومد ازش گفتم اینجا هم بزارم.
میدونستید هندلر های دیگری داریم؟
یا اینکه فیلتر هارو چطوری درست کنیم؟
یا حتی چطوری فرمتر بنویسیم؟
و سطوح مختلف لاگ و نحوه کانفیگ لاگ به صورت کامل از json.
جدا کردن بخش لاگ به یه thread جدا (io optimization)
یا لاگ های تمیز گرفتن در قالب jsonl.
همه اینا داخل این ویدیو.
https://www.youtube.com/watch?v=9L77QExPmI0
YouTube
Modern Python logging
A logging tutorial.
At some point, print statements aren't enough. When that time comes in Python, you should reach for the builtin logging package. It may be old (committed in 2002!), but it is the standard in Python. Unfortunately though, it being so old…
At some point, print statements aren't enough. When that time comes in Python, you should reach for the builtin logging package. It may be old (committed in 2002!), but it is the standard in Python. Unfortunately though, it being so old…
Forwarded from Python Hints
#نکات_قرارداد
۱) قرارداد حتماً باید نوشته بشه، اصلا روی حرف و ... هیچ چیزی قبول نکنید
۲) متن قرارداد رو حتماً بطور کامل بخونید، شما موظف نیستید همون لحظه که قرار داد بهتون داده میشه تا ۵ دقیقه بعد امضا بزنید.
(شخصاً یک نسخه از قرارداد و ضمیمههاش رو میخوام که زودتر برام ارسال بشه و ۱-۲ روز مهلت خوندن به خودم میدم)
۳) بدون قرارداد کتبی هیچ کجا کار نکنید، مگر اینکه مبلغ رو قبل از شروع کار براتون واریز کنند
همه دوستان میدونند، شخصاً ممکنه با یک جا هم به توافق برسم.
اما اگر طرف قبل از قرارداد تسک بفرسته، دیگه باهاش همکاری نمیکنم، چون ۲ حالت بیشتر نداره
۳-۱ ) یا با هدف کلاهبرداری و از زیر موارد توافق شده فرار کردن قرارداد کتبی به شما تحویل نمیده
۳-۲ ) یا اینکه یک پروژه ۱ ساله گرفته، خواسته با نیروی ۵ میلیونی کار رو در بیاره و حالا توی ماههای آخر هست و شدیداً نیاز به خروجی داره پس از ۱ روز هم نمیگذره که خب اینجا هم باید فرار کنید.
۴- یک نسخه از قرارداد رو همیشه تحویل بگیرید و پیش خودتون نگهدارید
۵- به تاریخهایی که بیش از مدت قرارداد هست توجه کنید؛ توی ایران متن قرارداد هارو خیلی از شرکتها به وکیلها میسپارند و ازونجایی که ۹۹٪ وکیلها برای قراردادهای کامیپوتری و فنی آماده نیستن متون مزخرف زیاد دیده میشه
برای مثال ۳ سال قبل، یک شرکت ایرانی - آلمانی برای من قراردادی رو از دفتر ایران فرستاد، توی متن قرارداد نسخه فارسی نوشته شده بود که تا ۵ سال بعد از خروج از شرکت حق مشارکت با هیچ استارتاپ یا شرکت نرمافزار پزشکی رو ندارم.
همین خطا هست، مصاحبه من با دفتر آلمان بود و چون قرارداد رو امضا نکردم پیگیر شدند
براشون توضیح دادم موضوع رو و ...
اما مسئله این هست، هیچ شرکتی حق نوشتن این موضوع رو نداره.
شما حق استفاده از تجربیاتت رو داری و این یعنی بعد از کار توی هر شرکتی میتونی به یک شرکت با بیزینس مشابه بری و اونجا شروع به فعالیت کنی (دستمزد، برخورد یا هرچیزی)
اما طبق NDA شما حق انتقال دانش در مورد فیچرها، جزئیات عملکرد داخلی و ... که بعد از تحقیقات فراوان شرکت قبلی بهش رسیده و تجربه شخصی شما نیست رو به شرکت جدید ندارید.
حتی اگر این موضوع توی متن قرارداد شما نباشه، و اینکار رو بکنید شرکت میتونه از شما شکایت کنه و ۹۹.۹٪ موارد هم رأی دادگاه برای شرکت هست.
۶- هر چیزی که از شرکت تحویل میگیرید و یا به شرکت تحویل میدید
بخصوص تحت عنوان ضمانت نامه، باید حتماً توی ضمیمهای از قرارداد باشه و حتماً مهر و امضا مسئول شرکت رو هم داشته باشه.
مهمتر از اون باید اعلام بشه چه زمان و تحت چه شرایطی این ضمانت میتونه به اجرا گذاشته بشه و چه زمان و تحت چه شرایطی این ضمانت باید پس داده بشه.
در نهایت حتماً، حتماً، حتماً از قرارداد و ضمیمههای اون باید همیشه ۲ نسخه کاملاً رسمی (مهر، سربرگ، امضا، و ....) وجود داشته باشه
نسخهای دست شما و نسخهی دیگری برای شرکت.
اگر مورد دیگری در آینده یادم افتاد، حتماً به این پیام اضافه میکنم.
۱) قرارداد حتماً باید نوشته بشه، اصلا روی حرف و ... هیچ چیزی قبول نکنید
۲) متن قرارداد رو حتماً بطور کامل بخونید، شما موظف نیستید همون لحظه که قرار داد بهتون داده میشه تا ۵ دقیقه بعد امضا بزنید.
(شخصاً یک نسخه از قرارداد و ضمیمههاش رو میخوام که زودتر برام ارسال بشه و ۱-۲ روز مهلت خوندن به خودم میدم)
۳) بدون قرارداد کتبی هیچ کجا کار نکنید، مگر اینکه مبلغ رو قبل از شروع کار براتون واریز کنند
همه دوستان میدونند، شخصاً ممکنه با یک جا هم به توافق برسم.
اما اگر طرف قبل از قرارداد تسک بفرسته، دیگه باهاش همکاری نمیکنم، چون ۲ حالت بیشتر نداره
۳-۱ ) یا با هدف کلاهبرداری و از زیر موارد توافق شده فرار کردن قرارداد کتبی به شما تحویل نمیده
۳-۲ ) یا اینکه یک پروژه ۱ ساله گرفته، خواسته با نیروی ۵ میلیونی کار رو در بیاره و حالا توی ماههای آخر هست و شدیداً نیاز به خروجی داره پس از ۱ روز هم نمیگذره که خب اینجا هم باید فرار کنید.
۴- یک نسخه از قرارداد رو همیشه تحویل بگیرید و پیش خودتون نگهدارید
۵- به تاریخهایی که بیش از مدت قرارداد هست توجه کنید؛ توی ایران متن قرارداد هارو خیلی از شرکتها به وکیلها میسپارند و ازونجایی که ۹۹٪ وکیلها برای قراردادهای کامیپوتری و فنی آماده نیستن متون مزخرف زیاد دیده میشه
برای مثال ۳ سال قبل، یک شرکت ایرانی - آلمانی برای من قراردادی رو از دفتر ایران فرستاد، توی متن قرارداد نسخه فارسی نوشته شده بود که تا ۵ سال بعد از خروج از شرکت حق مشارکت با هیچ استارتاپ یا شرکت نرمافزار پزشکی رو ندارم.
همین خطا هست، مصاحبه من با دفتر آلمان بود و چون قرارداد رو امضا نکردم پیگیر شدند
براشون توضیح دادم موضوع رو و ...
اما مسئله این هست، هیچ شرکتی حق نوشتن این موضوع رو نداره.
شما حق استفاده از تجربیاتت رو داری و این یعنی بعد از کار توی هر شرکتی میتونی به یک شرکت با بیزینس مشابه بری و اونجا شروع به فعالیت کنی (دستمزد، برخورد یا هرچیزی)
اما طبق NDA شما حق انتقال دانش در مورد فیچرها، جزئیات عملکرد داخلی و ... که بعد از تحقیقات فراوان شرکت قبلی بهش رسیده و تجربه شخصی شما نیست رو به شرکت جدید ندارید.
حتی اگر این موضوع توی متن قرارداد شما نباشه، و اینکار رو بکنید شرکت میتونه از شما شکایت کنه و ۹۹.۹٪ موارد هم رأی دادگاه برای شرکت هست.
۶- هر چیزی که از شرکت تحویل میگیرید و یا به شرکت تحویل میدید
بخصوص تحت عنوان ضمانت نامه، باید حتماً توی ضمیمهای از قرارداد باشه و حتماً مهر و امضا مسئول شرکت رو هم داشته باشه.
مهمتر از اون باید اعلام بشه چه زمان و تحت چه شرایطی این ضمانت میتونه به اجرا گذاشته بشه و چه زمان و تحت چه شرایطی این ضمانت باید پس داده بشه.
در نهایت حتماً، حتماً، حتماً از قرارداد و ضمیمههای اون باید همیشه ۲ نسخه کاملاً رسمی (مهر، سربرگ، امضا، و ....) وجود داشته باشه
نسخهای دست شما و نسخهی دیگری برای شرکت.
اگر مورد دیگری در آینده یادم افتاد، حتماً به این پیام اضافه میکنم.
Forwarded from Python Hints
#جونیور
برای جونیور هم من حداقل ۳ سطح رو در نظر میگیرم
توی همهی این موارد کار تیمی هم خودش امتیاز داره پس فقط به جنبه فنی نگاه نکنید.
توی شرکتهای مختلف و با افرادی که میشناختم بررسی کردم، حدود ۴۰۰.۰۰۰ شغل فنی رو هم کرال کردم و بر اساس تمام این موارد قیمت میدم.
برای پایتون توی شاخههای مختلف :
از ۱۲ میلیون دستمزد شروع میشه
و تا ۱۸ میلیون هم میتونه این مبلغ باشه برای جونیوری که رو به پیشرفت هست، بجای ادعا کردن ترجیح میده وقتش رو روی سوادش بذاره
و البته ابزارهای مهم و نیازمندیهای
Software Engineer
شدن رو رعایت میکنه، قبلاً کلی راجبش صحبت کردم برای همین ادامه نمیدهم دیگه
برای جونیور هم من حداقل ۳ سطح رو در نظر میگیرم
توی همهی این موارد کار تیمی هم خودش امتیاز داره پس فقط به جنبه فنی نگاه نکنید.
توی شرکتهای مختلف و با افرادی که میشناختم بررسی کردم، حدود ۴۰۰.۰۰۰ شغل فنی رو هم کرال کردم و بر اساس تمام این موارد قیمت میدم.
برای پایتون توی شاخههای مختلف :
از ۱۲ میلیون دستمزد شروع میشه
و تا ۱۸ میلیون هم میتونه این مبلغ باشه برای جونیوری که رو به پیشرفت هست، بجای ادعا کردن ترجیح میده وقتش رو روی سوادش بذاره
و البته ابزارهای مهم و نیازمندیهای
Software Engineer
شدن رو رعایت میکنه، قبلاً کلی راجبش صحبت کردم برای همین ادامه نمیدهم دیگه
Forwarded from Python Hints
Python Hints
#جونیور برای جونیور هم من حداقل ۳ سطح رو در نظر میگیرم توی همهی این موارد کار تیمی هم خودش امتیاز داره پس فقط به جنبه فنی نگاه نکنید. توی شرکتهای مختلف و با افرادی که میشناختم بررسی کردم، حدود ۴۰۰.۰۰۰ شغل فنی رو هم کرال کردم و بر اساس تمام این موارد…
#مدیور
بین جونیور سطح بالا (گفتم دسته بندی من ۳ سطحی هست) و مدیور سطح پایین واقعاً مرز باریکی وجود داره و خیلی وقتها راحت نمیشه تشخیص داد این موضوع رو
مثلاً صرف اینکه طرف بتونه
حل کنه نمیشه گفت که خب مدیور شده و تمام، اتفاقاً ازین سطح به بعد رفتار تیمی و نحوه برخورد با چالش و مسائل و ... هم خیلی مهم میشه
اینکه تنش و استرس رو چطوری باهاش مقابله میکنید و ....
مثال بزنم :
فرض کنید، یک تیم ۳ نفره از جونیورها زیر دست شما درحال توسعه بخشی از نرمافزار هستند و شما هم مدیور بالا سر این افراد هم بهشون کمک میکنید، هم اگر نیاز به
باشه، شما شخصی هستید که تأیید اولیه رو میزنید.
مدیر فنی شرکت یا شخص بالاسری شما میاد با شما جلسه میگذاره و یکی از فیچرها رو از شما میخواد که تغییر بدید، یا فیچر اضافه کنید یا حتی جایگزین کنید.
برخورد شما چیه ؟
من بسیار مدیور و سنیور دیدم که سریعا گارد میگیرند، به نوعی مخالفت میکنند (حتی غیر منطقی) و میخوان که توی حالتی که پلن چیده شده پیش بروند و ...
اما یک سنیور یا مدیور واقعی، بیزینس رو درک میکنه و به این سطح رسیده که اگر بیزینس نباشه من هم دچار مشکل دستمزد و ... میشم پس اگر یک فیچری در حال توسعه بود ولی بنظر رسید که باعث ضرر مالی شده و برای همین تصمیم به جایگزینی رسیده باید برخورد منطقی در قبالش داشت.
بعضی وقتا هم دلایل فنی هست، که مدیور باید اینجا قدرت فنی خودش رو نشون بده اینکه چرا مخالف هست یا موافق حتی.
رنج دستمزد مدیور هم با توجه به وضعیت بازار ایران روی :
از ۲۰ میلیون تومان
تا ۴۰ میلیون تومان در ماه
برای سال ۱۴۰۳ رنج خوبی هست.
بین جونیور سطح بالا (گفتم دسته بندی من ۳ سطحی هست) و مدیور سطح پایین واقعاً مرز باریکی وجود داره و خیلی وقتها راحت نمیشه تشخیص داد این موضوع رو
مثلاً صرف اینکه طرف بتونه
Medium Complexity LeetCodeحل کنه نمیشه گفت که خب مدیور شده و تمام، اتفاقاً ازین سطح به بعد رفتار تیمی و نحوه برخورد با چالش و مسائل و ... هم خیلی مهم میشه
اینکه تنش و استرس رو چطوری باهاش مقابله میکنید و ....
مثال بزنم :
فرض کنید، یک تیم ۳ نفره از جونیورها زیر دست شما درحال توسعه بخشی از نرمافزار هستند و شما هم مدیور بالا سر این افراد هم بهشون کمک میکنید، هم اگر نیاز به
Code review باشه، شما شخصی هستید که تأیید اولیه رو میزنید.
مدیر فنی شرکت یا شخص بالاسری شما میاد با شما جلسه میگذاره و یکی از فیچرها رو از شما میخواد که تغییر بدید، یا فیچر اضافه کنید یا حتی جایگزین کنید.
برخورد شما چیه ؟
من بسیار مدیور و سنیور دیدم که سریعا گارد میگیرند، به نوعی مخالفت میکنند (حتی غیر منطقی) و میخوان که توی حالتی که پلن چیده شده پیش بروند و ...
اما یک سنیور یا مدیور واقعی، بیزینس رو درک میکنه و به این سطح رسیده که اگر بیزینس نباشه من هم دچار مشکل دستمزد و ... میشم پس اگر یک فیچری در حال توسعه بود ولی بنظر رسید که باعث ضرر مالی شده و برای همین تصمیم به جایگزینی رسیده باید برخورد منطقی در قبالش داشت.
بعضی وقتا هم دلایل فنی هست، که مدیور باید اینجا قدرت فنی خودش رو نشون بده اینکه چرا مخالف هست یا موافق حتی.
رنج دستمزد مدیور هم با توجه به وضعیت بازار ایران روی :
از ۲۰ میلیون تومان
تا ۴۰ میلیون تومان در ماه
برای سال ۱۴۰۳ رنج خوبی هست.
Forwarded from Python Hints
Python Hints
#مدیور بین جونیور سطح بالا (گفتم دسته بندی من ۳ سطحی هست) و مدیور سطح پایین واقعاً مرز باریکی وجود داره و خیلی وقتها راحت نمیشه تشخیص داد این موضوع رو مثلاً صرف اینکه طرف بتونه Medium Complexity LeetCode حل کنه نمیشه گفت که خب مدیور شده و تمام، اتفاقاً…
#سنیور
سنیور واقعی مبلغ نداره،
هرچقدر تیغاش ببره، بریده
وقتایی هست که دوس داره به یک پروژه و یک نفر حال بده و با دستمزد کم کار میکنه
وقتایی هم هست که دستمزد واقعی خودش رو میخواد
برای همین من هیچ نظری روی دستمزد سنیورها نمیدم
قطعاً خودشون هم گرگی شدند و میدونند چطوری قرارداد ببندند.
سنیور واقعی مبلغ نداره،
هرچقدر تیغاش ببره، بریده
وقتایی هست که دوس داره به یک پروژه و یک نفر حال بده و با دستمزد کم کار میکنه
وقتایی هم هست که دستمزد واقعی خودش رو میخواد
برای همین من هیچ نظری روی دستمزد سنیورها نمیدم
قطعاً خودشون هم گرگی شدند و میدونند چطوری قرارداد ببندند.
Forwarded from Python Hints
یکی از دوستان زنگ زد؛ میگه نمیشه زودتر بگی داستان چی هست دارم لاگر پروژه شرکت رو مینویسم؛
کل منبع صحبتهای این هفته :
Logging Cookbook, python documentation
این صحبتم که میگن داکیومنت خوبی نداره و ... هرکی گفت بهش بگید : چون درست نخوندی.
اگر شما هم مثل ای رفیق من خواستید زودتر شروع کنید به خوندن؛ توی داکیومنت بالا چندتا
قبلا صحبت شده راجب اولی؛ دومی هم برای
توی این ۳ مورد هم مورد اول داخل داکر بدرد بخور هست؛
معمولا خود من از این ۵ مورد توی پروژههای بزرگ استفاده میکنم؛ البته خیلی وقتا شرکتها
کل منبع صحبتهای این هفته :
Logging Cookbook, python documentation
این صحبتم که میگن داکیومنت خوبی نداره و ... هرکی گفت بهش بگید : چون درست نخوندی.
اگر شما هم مثل ای رفیق من خواستید زودتر شروع کنید به خوندن؛ توی داکیومنت بالا چندتا
log handler رو حتما بهش توجه ویژه کنید.RotatingFileHandler, QueueHandler
قبلا صحبت شده راجب اولی؛ دومی هم برای
multi thread کردن هست که لاگ نویسی باعث کند شدن پردازش نشه.StreamHandler, SMTPHandler, SocketHandlerتوی این ۳ مورد هم مورد اول داخل داکر بدرد بخور هست؛
smpt رو هم احتمالا حدس زدید برای ارسال ایمیل هست (معمولا لاگهای critical رو برای خودمون یا ادمین یا ... ارسال میکنیم) و در نهایت هم SocketHandler که برای ارسال لاگ با پروتکل tcp به سرور دیگری استفاده میشه که خیلی خیلی مهم هست (باور ندارید از بچههای امنیت بپرسید)معمولا خود من از این ۵ مورد توی پروژههای بزرگ استفاده میکنم؛ البته خیلی وقتا شرکتها
SocketHandler نمیگرین و براساس event یا ساعتی یا ... بکاپ لاگ فایل رو به S3 bucket میفرستند روی آمازون که هزینه کمتری داره برای نگهداری.Python documentation
Logging Cookbook
Author, Vinay Sajip <vinay_sajip at red-dove dot com>,. This page contains a number of recipes related to logging, which have been found useful in the past. For links to tutorial and reference info...
ابزار jurigged برای hot code reloading/patching کد پایتون استفاده میشه و شباهت های زیادی با reloadium داره اما کاملا اوپن سورسه و رایگان.
از این پروژه داخل طراحی ربات های پایتون استفاده کردم ولی داخل خیلی موارد دیگه هم قطعا میتونه استفاده بشه.
از طریق این ابزار میتونید برنامتون رو ران کنید و فانکشنی که بیشتر از یک بار (مثل هندلر یا API endpoint) هاتون اجرا میشه رو patch میکنه. جدا از اون کار های زیادی هم انجام میده ولی یک سری آپدیت های سورس کد در مواقعی امکان patch ندارن و واسه اینکار باید دوباره اسکریپتتون رو ران کنید.
اما خیلی برای آزمایش سریع و تست خوبه.
https://github.com/breuleux/jurigged
از این پروژه داخل طراحی ربات های پایتون استفاده کردم ولی داخل خیلی موارد دیگه هم قطعا میتونه استفاده بشه.
از طریق این ابزار میتونید برنامتون رو ران کنید و فانکشنی که بیشتر از یک بار (مثل هندلر یا API endpoint) هاتون اجرا میشه رو patch میکنه. جدا از اون کار های زیادی هم انجام میده ولی یک سری آپدیت های سورس کد در مواقعی امکان patch ندارن و واسه اینکار باید دوباره اسکریپتتون رو ران کنید.
اما خیلی برای آزمایش سریع و تست خوبه.
https://github.com/breuleux/jurigged
GitHub
GitHub - breuleux/jurigged: Hot reloading for Python
Hot reloading for Python. Contribute to breuleux/jurigged development by creating an account on GitHub.
دروغ هایی که جونیور ها از سنیور ها باور میکنن.
این ویدیو خیلی خوبی بود به همین دلیل تصمیم گرفتم به اشتراک بزارم.
https://www.youtube.com/watch?v=Vo7KOqR27xE
متن مقاله:
https://vadimkravcenko.com/shorts/falsehoods-junior-developers-believe-about-becoming-senior/
این ویدیو خیلی خوبی بود به همین دلیل تصمیم گرفتم به اشتراک بزارم.
https://www.youtube.com/watch?v=Vo7KOqR27xE
متن مقاله:
https://vadimkravcenko.com/shorts/falsehoods-junior-developers-believe-about-becoming-senior/
YouTube
Falsehoods Jr Devs Believe Aboutr Sr Devs
Recorded live on twitch, GET IN
https://twitch.tv/ThePrimeagen
Become a backend engineer. Its my favorite site
https://boot.dev/?promo=PRIMEYT
This is also the best way to support me is to support yourself becoming a better backend engineer.
Article…
https://twitch.tv/ThePrimeagen
Become a backend engineer. Its my favorite site
https://boot.dev/?promo=PRIMEYT
This is also the best way to support me is to support yourself becoming a better backend engineer.
Article…
چند وقت پیش آموزش Network+ دیده بودم.
این مجموعه ویدیویی بود که یکی از دوستان معرفی کرده بود.
آموزشش رایگان بود و رفتم دیدم.
به نظرم خیلی خوب بود به همین دلیل گفتم برای شما دوستان هم بزارم که استفاده ببرید.
https://toplearn.com/courses/operating-system/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-network-plus
این مجموعه ویدیویی بود که یکی از دوستان معرفی کرده بود.
آموزشش رایگان بود و رفتم دیدم.
به نظرم خیلی خوب بود به همین دلیل گفتم برای شما دوستان هم بزارم که استفاده ببرید.
https://toplearn.com/courses/operating-system/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-network-plus
خودآموز تاپ لرن
آموزش رایگان Network Plus
دوره آموزش شبکه ( NetWork + ) و مفاهیم شبکه هر دوره پیشرفته ای نیازمند شناخت مفاهیم اولیه و اصول مقدماتی است. دوره نتورک پلاس دوره آغازین و پایه
Forwarded from دستاوردهای یادگیری عمیق(InTec)
#mini_roadmap
بر اساس #تجربه
این یک roadmap ساده هست برای اونهایی که میخوان توی هر شاخهای از برنامهنویسی بعنوان یک برنامه نویس خوب شناخته بشن :
زیرساخت کار هست :
۱- انتخاب و یادگیری زبان برنامهنویسی مد نظر : (فرض من پایتون هست)
توی این مرحله مقدمات رو یاد میگیرید تا سطح متوسط (از لحاظ کد زدن هر چیزی رو میتونید پیاده سازی کنید اما خب بهترین راهکار رو پیشنهاد نمیدید)
کتاب خوب انقدر زیاده که پیشنهاد خاصی ندارم.
۲- Git
واجب هست بلد بودنش، اصلا سعی نکنید بپیچونید
کتاب پیشنهادی:
Head first git
3- Data structure and algorithm
واجب هست، امکان نداره مصاحبهای شرکت کنید (شرکتهای درست و حسابی) و حداقل ۲ تا مرحله مصاحبه شما راجب این موضوعات نباشه
کتاب پیشنهادی: (قبلاً معرفی شده)
Data structure and Algorithm in python
حتماً باید مربوط به زبان برنامهنویسی مورد نظر خودتون باشه
4- System design
۹۰٪ کدهای مزخرفی که من میبینم ربطی به این نداره که برنامهنویس بد یا ضعیف بوده توی اون فریمورک یا زبان برنامهنویسی
موضوع اینه که توانایی طراحی سیستم رو نداشته.
به هیچ وجه Mid-level یا Senior نمیتونید بشید اگر نتونید system design خوبی ارائه بدید.
هم کتاب هم ویدئوهای خوب بسیار موجود هست.
تا اینجا برای استخدام کفایت میکنه اما ابزارهایی هست که رزومه شمارو سرتر از رغیبهاتون میکنه :
1- Linux
اگر ویندوز دولوپر نیستید حتماً حداقل مقدمات لینوکس رو بلد باشید
2- Docker
مدل سنتی ارائه کد واقعاً مرده توی شرکتهای حرفهای
3- SQL
هرکاری که بخواید انجام بدید، بالاخره ی جوری به یک دیتابیس ختم میشه دیفالت همیشه sql هست
کوئری خالی زدن مهم نیست یاد بگیرید اولویت کوئریهارو + چطور میشه optimize ترین کوئری رو زد
3- Advance concept
مربوط به زبان برنامهنویسی خودتون هست
برای پایتون من پیشنهادم به تازهکارها شروع این موارد بعد از ۱ سال کد زدن هست
کتاب :
Fluent python
Python Concurrency
High performance python
CPython Internals
خلاصه تجربیات من تو مصاحبههای مختلف مخصوصاً با
Amazon, Netflix
و چیزهایی که از دوستان در فیسبوک و اینستاگرام شنیدم
بر اساس #تجربه
این یک roadmap ساده هست برای اونهایی که میخوان توی هر شاخهای از برنامهنویسی بعنوان یک برنامه نویس خوب شناخته بشن :
زیرساخت کار هست :
۱- انتخاب و یادگیری زبان برنامهنویسی مد نظر : (فرض من پایتون هست)
توی این مرحله مقدمات رو یاد میگیرید تا سطح متوسط (از لحاظ کد زدن هر چیزی رو میتونید پیاده سازی کنید اما خب بهترین راهکار رو پیشنهاد نمیدید)
کتاب خوب انقدر زیاده که پیشنهاد خاصی ندارم.
۲- Git
واجب هست بلد بودنش، اصلا سعی نکنید بپیچونید
کتاب پیشنهادی:
Head first git
3- Data structure and algorithm
واجب هست، امکان نداره مصاحبهای شرکت کنید (شرکتهای درست و حسابی) و حداقل ۲ تا مرحله مصاحبه شما راجب این موضوعات نباشه
کتاب پیشنهادی: (قبلاً معرفی شده)
Data structure and Algorithm in python
حتماً باید مربوط به زبان برنامهنویسی مورد نظر خودتون باشه
4- System design
۹۰٪ کدهای مزخرفی که من میبینم ربطی به این نداره که برنامهنویس بد یا ضعیف بوده توی اون فریمورک یا زبان برنامهنویسی
موضوع اینه که توانایی طراحی سیستم رو نداشته.
به هیچ وجه Mid-level یا Senior نمیتونید بشید اگر نتونید system design خوبی ارائه بدید.
هم کتاب هم ویدئوهای خوب بسیار موجود هست.
تا اینجا برای استخدام کفایت میکنه اما ابزارهایی هست که رزومه شمارو سرتر از رغیبهاتون میکنه :
1- Linux
اگر ویندوز دولوپر نیستید حتماً حداقل مقدمات لینوکس رو بلد باشید
2- Docker
مدل سنتی ارائه کد واقعاً مرده توی شرکتهای حرفهای
3- SQL
هرکاری که بخواید انجام بدید، بالاخره ی جوری به یک دیتابیس ختم میشه دیفالت همیشه sql هست
کوئری خالی زدن مهم نیست یاد بگیرید اولویت کوئریهارو + چطور میشه optimize ترین کوئری رو زد
3- Advance concept
مربوط به زبان برنامهنویسی خودتون هست
برای پایتون من پیشنهادم به تازهکارها شروع این موارد بعد از ۱ سال کد زدن هست
کتاب :
Fluent python
Python Concurrency
High performance python
CPython Internals
خلاصه تجربیات من تو مصاحبههای مختلف مخصوصاً با
Amazon, Netflix
و چیزهایی که از دوستان در فیسبوک و اینستاگرام شنیدم
Forwarded from دستاوردهای یادگیری عمیق(InTec)
#Roadmap 2022
این رو برای یک دوستی که تازه داره سعی میکنه وارد، ماشینلرنینگ بشه نوشتم ؛
اول اینکه توجه کنید,
۱- ایشون تازه برای کارشناسی بورسیه گرفته و قراره شروع کنه درسش رو
۲- پایتون رو در سطح متوسطی بلد هست و چندسالی هست که کد میزنه (Data structure, Algorithm رو متوجه هست)
۳- علاقه شدیدی به هوش مصنوعی داره و برخلاف خیلیها که میخوان سریعتر کد بزنن ترجیح میده وقت بیشتری توی مقدمات بذاره تا حرفهای تر جلو بره
RoadMap :
1- Numpy (and scipy):
. Numpy Beginners guide 3rd edition (packt)
. Python Numpy Beginners (AI publishing)
. Scientific Computing with Python .... 2nd edition (Claus Fuhrer - packt pub)
* High performance python ... 2nd edition (O'Reilly)
2- Pandas:
Effective Pandas (Matt Harrison)
Pandas in Action (Manning Pub)
Pandas 1.x cookbook ... 2nd edition (Packt pub)
3- Matplotlib (or other visualization libs)
Hands on matplotlib (Ashwin - Apress pub)
Data visualization with python for beginners ... ( AI publishing)
چیزی که خیلی مهمه اینه کار با OOP، api رو توی این کتابخونه یاد بگیرید.
3- Data Engineering
نه کامل اما بعضی مباحث واقعاً لازم هست :
Sql / NoSql / PySpark
اینها مباحثی هست که خیلی بدرد میخوره معمولاً
4- Scikit-learn :
Hands on machine learning with scikit-learn, ... (O'Reilly) - Part 1 only
Machine learning with pytorch and scikit-learn (Packt pub) - Part 1 only
5- Story telling
کتابهای زیادی برای این مورد وجود داره که بسته به علاقه و نوع نوشتاری که میپسندید میتونید انتخاب کنید
اما این بخش رو اصلا دستکم نگیرید (۹۹.۹٪ آموزشها این موضوع رو منتقل نمیکنند و ۱۰۰٪ توی کار این موضوع واجب و حیاتی هست)
6-
آمار و احتمالات / ریاضیات / جبر
بستگی به خودتون داره؛ اگر فکر میکنید لازم هست کمی ریاضیات پایه رو مرور کنید
آمار و احتمال رو شاید بهتره حتی قبل از scikit-learn مرور کنید
کتابهای با عنوان statistical learning وجود داره برای پایتون که به سلیقه خودتون میتونید بخونید.
7- Deep learning (practical)
۲ تا کتابی که برای Machine learning معرفی کردم بخش دوم هر ۲ کتاب رو میتونید اینجا شروع کنید
Deep learning with python 2nd edition (Manning pub)
هم حتماً برای اونایی که Tensorflow هم میخوان کار کنند باید خونده بشه
اگر قرار هست کارهای deploy , ... هم انجام بدید اون خودش ی roadmap اساسی میخواد اما بطور ساده :
ML engineering / MLOps / Linux / Docker / Api development (FastApi) / Edge deployment (Tiny ML)
حداقل چیزهایی هست که لازم دارید.
بعد با توجه به بیزینس و علاقه به بخشهای مختلفش شاخ و برگ میدید.
پ.ن : برای بخشهای مختلف چندکتاب معرفی شد، چون نوع نوشتار بعضی از کتابها ممکن مورد پسند شما نباشه
لازم نیست همهی چند مورد رو بخونید.
کتاب :
High performance python
جزو واجبات هست که بنظرم همه باید بخونند.
این رو برای یک دوستی که تازه داره سعی میکنه وارد، ماشینلرنینگ بشه نوشتم ؛
اول اینکه توجه کنید,
۱- ایشون تازه برای کارشناسی بورسیه گرفته و قراره شروع کنه درسش رو
۲- پایتون رو در سطح متوسطی بلد هست و چندسالی هست که کد میزنه (Data structure, Algorithm رو متوجه هست)
۳- علاقه شدیدی به هوش مصنوعی داره و برخلاف خیلیها که میخوان سریعتر کد بزنن ترجیح میده وقت بیشتری توی مقدمات بذاره تا حرفهای تر جلو بره
RoadMap :
1- Numpy (and scipy):
. Numpy Beginners guide 3rd edition (packt)
. Python Numpy Beginners (AI publishing)
. Scientific Computing with Python .... 2nd edition (Claus Fuhrer - packt pub)
* High performance python ... 2nd edition (O'Reilly)
2- Pandas:
Effective Pandas (Matt Harrison)
Pandas in Action (Manning Pub)
Pandas 1.x cookbook ... 2nd edition (Packt pub)
3- Matplotlib (or other visualization libs)
Hands on matplotlib (Ashwin - Apress pub)
Data visualization with python for beginners ... ( AI publishing)
چیزی که خیلی مهمه اینه کار با OOP، api رو توی این کتابخونه یاد بگیرید.
3- Data Engineering
نه کامل اما بعضی مباحث واقعاً لازم هست :
Sql / NoSql / PySpark
اینها مباحثی هست که خیلی بدرد میخوره معمولاً
4- Scikit-learn :
Hands on machine learning with scikit-learn, ... (O'Reilly) - Part 1 only
Machine learning with pytorch and scikit-learn (Packt pub) - Part 1 only
5- Story telling
کتابهای زیادی برای این مورد وجود داره که بسته به علاقه و نوع نوشتاری که میپسندید میتونید انتخاب کنید
اما این بخش رو اصلا دستکم نگیرید (۹۹.۹٪ آموزشها این موضوع رو منتقل نمیکنند و ۱۰۰٪ توی کار این موضوع واجب و حیاتی هست)
6-
آمار و احتمالات / ریاضیات / جبر
بستگی به خودتون داره؛ اگر فکر میکنید لازم هست کمی ریاضیات پایه رو مرور کنید
آمار و احتمال رو شاید بهتره حتی قبل از scikit-learn مرور کنید
کتابهای با عنوان statistical learning وجود داره برای پایتون که به سلیقه خودتون میتونید بخونید.
7- Deep learning (practical)
۲ تا کتابی که برای Machine learning معرفی کردم بخش دوم هر ۲ کتاب رو میتونید اینجا شروع کنید
Deep learning with python 2nd edition (Manning pub)
هم حتماً برای اونایی که Tensorflow هم میخوان کار کنند باید خونده بشه
اگر قرار هست کارهای deploy , ... هم انجام بدید اون خودش ی roadmap اساسی میخواد اما بطور ساده :
ML engineering / MLOps / Linux / Docker / Api development (FastApi) / Edge deployment (Tiny ML)
حداقل چیزهایی هست که لازم دارید.
بعد با توجه به بیزینس و علاقه به بخشهای مختلفش شاخ و برگ میدید.
پ.ن : برای بخشهای مختلف چندکتاب معرفی شد، چون نوع نوشتار بعضی از کتابها ممکن مورد پسند شما نباشه
لازم نیست همهی چند مورد رو بخونید.
کتاب :
High performance python
جزو واجبات هست که بنظرم همه باید بخونند.
این یکی از جالب ترین ویدیو ها راجب Python بود و کلا نگاهم رو به ()super و همینطور OOP عوض کرد.
مهم ترین بخشش نحوه کار کردن super و cooperative inheritence بود که قدرت
*args, **kwargs
رو برام نمایان تر کرد.
حتما برای درک عمیق تر شی گرایی این ویدیو رو ببینید و بخش cooperative inheritence اش رو تمرین کنید.
https://www.youtube.com/watch?v=X1PQ7zzltz4
مهم ترین بخشش نحوه کار کردن super و cooperative inheritence بود که قدرت
*args, **kwargs
رو برام نمایان تر کرد.
حتما برای درک عمیق تر شی گرایی این ویدیو رو ببینید و بخش cooperative inheritence اش رو تمرین کنید.
https://www.youtube.com/watch?v=X1PQ7zzltz4
YouTube
super/MRO, Python's most misunderstood feature.
Python's super does NOT mean "parent".
It means "next in line". What line? The Method Resolution Order (MRO) of an object, which defines the search order for attribute lookups. super() uses some very sneaky techniques, such as examining the current stack…
It means "next in line". What line? The Method Resolution Order (MRO) of an object, which defines the search order for attribute lookups. super() uses some very sneaky techniques, such as examining the current stack…
ویدیو به شدت عالی بود.
راجب اخراج های جدید و داستان هایی که داره اتفاق میفته.
هم از لحاظ اقتصادی، هم AI و ...
Key takeaway:
Don't be hyper-specialized.
Be a great generalist. (And specialized in one of them)
https://www.youtube.com/watch?v=hAwtrJlBVJY
راجب اخراج های جدید و داستان هایی که داره اتفاق میفته.
هم از لحاظ اقتصادی، هم AI و ...
Key takeaway:
Don't be hyper-specialized.
Be a great generalist. (And specialized in one of them)
https://www.youtube.com/watch?v=hAwtrJlBVJY
YouTube
The Brutal Truth Behind Tech Layoffs
Be my friend on X at: https://x.com/Josh_Christiane
In the recent months companies like Unity, Amazon, Intel, IBM, Nokia, Samsung, and many more have fired hundreds of thousands of tech workers collectively.
In this video I dive into the dark side of the…
In the recent months companies like Unity, Amazon, Intel, IBM, Nokia, Samsung, and many more have fired hundreds of thousands of tech workers collectively.
In this video I dive into the dark side of the…
کانال یوتیوب ایرانی بود که جدیدا پیدا کردم و طرف واقعا کارش درسته
- تو پروژه های خارجی شرکت داشته و دورکاری کار میکرده.
- تو زمینه Web Development تخصص داره.
- مطالب مفیدی داره که منحصر فارسی زبان ها هست.
https://www.youtube.com/@kalagar2
- تو پروژه های خارجی شرکت داشته و دورکاری کار میکرده.
- تو زمینه Web Development تخصص داره.
- مطالب مفیدی داره که منحصر فارسی زبان ها هست.
https://www.youtube.com/@kalagar2
ویدیو خیلی خوبی از کلاگر.
چطوری ریموت کار بکنیم با شرکت های خارجی:
https://www.youtube.com/watch?v=ltuzEC7LGYo
چطوری ریموت کار بکنیم با شرکت های خارجی:
https://www.youtube.com/watch?v=ltuzEC7LGYo
YouTube
برنامه نویسی و درآمد دلاری - از کجا کار پیدا کنم؟ چطور پول رانقد کنم؟
یکی از انگیزههای دوستان برای ورود به دنیای مهندسی نرم افزار و برنامه نویسی داشتن درآمد ارزی و کار به صورت ریموت با شرکت های خارجی است.
اما معمولا بر سر راه این دوستان دو چالش وجود دارد. یکی نحوهی پیدا کردن کار و دومی نحوهی نقد کردن درآمد ارزی. در این ویدئو…
اما معمولا بر سر راه این دوستان دو چالش وجود دارد. یکی نحوهی پیدا کردن کار و دومی نحوهی نقد کردن درآمد ارزی. در این ویدئو…