Rust for Python developers – Telegram
Rust for Python developers
2.22K subscribers
23 photos
1 video
2 files
84 links
Rust programming language for python developers

یک توسعه دهنده پایتون هستم که سعی میکنم rust یاد بگیرم.
تو این مسیر منابع و نظرات شخصی خودم رو با آیندگان هم به اشتراک میذارم

اگر به هوش مصنوعی و پایتون علاقه دارید به کانال :
@pytens
@pyhints
سر بزنید.
Download Telegram
نشستم با Rust یک تابع محاسباتی رو که جزو فرمول‌های شرکت بود پیاده‌سازی کردم، و آوردمش توی پایتون؛

زمان بندی‌هاش بسیار جالب شد،
توی پایتون هموار ه حدود ۷ دقیقه زمان می‌بره
از numpy که استفاده می‌کنم، به ۱ دقیقه هم می‌رسید
و پیاده‌سازی توی Rust؛ کمتر از ۵ ثانیه شد.


حتی اگر تفاوت محاسبات بین Rust, Python رو درک کنم موضوع و اختلاف سرعت بالای بین Numpy, Rust هنوز برای خودم عجیب هست.

دلیلش رو نمی‌دونم ولی حتماً دنبالش می‌گردم.
27👍76😁4🤯3
خیلی از بچه‌های فرانت دولوپری که میشناسم (سنیورها البته) در حال یادگیری Rust هستند؛ دیشب فرصت کردم با یکی از این دوستان صحبت کنم که توی تیم توسعه ابزارهای open source زیادی هم بوده و دلیل اصلیش کند بودن هست.
کسی هست که ندونه Electron چقدر افتضاح هست (اما چیز بهتری هم براش نبوده؛ پس قدردان توسعه دهنده‌هاش هستیم).
ابزارهای جدیدی که به لطف Rust داره منتشر میشه؛ موردی که توی این پست داریم بررسی می‌کنیم Tauri هست چندتا مزیت داره :
۱) سبک هست
۲) کامپایل میشه و باینری خواهد بود (خیالتون بابت سورس‌کد راحت باشه)
۳) یکبار کد میزنید و همه‌جا استفاده می‌کنید (درحال حاضر Desktop, Web اما توی جستجو دیدم که iOS, Android هم pre-release هستند)
۴) می تونید اتنخاب کنید با Javascrip, TypeScript کد بزنید یا Rust
5) پشتیبانی از Vue.js, React.js هم داره.

شخصا باهاش کار نکردم و فقط چندتا لایو کد دیدم و البته رضایت کسانی که قبولشون دارم از مسیر پیشرفت پروژه‌ها با Rust.
برای آشنایی بیشتر :
https://tauri.app/

حتما نسخه Beta v2.0 رو هم ببینید.
👍135👎1
یکی از دوستان تو گروه اشاره کردند که کتاب
Rust for Rustaceans 

خیلی کتاب خوبی هست (شخصا نخوندم و درحال مطالعه و بررسی چند منبع دیگه هستم)
اما گفتم شاید دلتون بخواد ویدئویی ببینید؛ ویدئو‌ها مربوط به یک خوانش گروهی آنلاین هست.

Rust for Rustaceans Book Club

کتابخونی خودمون هم توی دور بعدی همین اتفاق براش خواهد افتاد همونطور که قبلتر گفتم (البته هدف پایتون هست اونجا)
👍115👏2🔥1
پروژه TurboRepo هم از Go-Lang به Rust درحال منتقل شدن هست؛ Rust Nation UK که حدودا ۳ روز قبل برگزار شد خیلی سخنرانی‌های خوبی داشت.
برای من TurboRepo اهمیت جذابی داشت؛ چون بسیار بسیار توی HackerRank راجبش صحبت شده بود همچنین توی Reddit خیلی بازخورد داشت این حرکتشون
اگر شما هم دوست داشتید ببینید :
Nicholas Yang - Porting Turborepo From Go To Rust

حتما باقی سخنرانی‌ها رو هم ببینید.
👍61
کسی module برای کار با cuda توی Rust دیده ؟

البته پروژه‌ای که فعال باشه همچنان 🤔
😁6
یکی از جذاب‌ترین کتاب‌هایی که توی این مدت برای Rust خوندم کتاب

Learn Rust in a month of lunches 


بود؛ البته پیشنهاد می‌کنم از تکنیکی که توی کانال بوتیوب و جلسه اول ویدئو‌ها برای پایتون گفتم استفاده کنید؛ تا با سرعت بیشتر و درک بهتر کتاب رو بخونید.
9👍3
توی یوتیوب یک ویدئویی دیدم از این مواردی که آنچه خواهید دید بود؛ و طورف میخواست آموزش Rust بذاره و البته با پروژه
چندسال بود توسعه دهنده Rust بود و همین کدهایی که توی پروداکشن زده بود رو بخش‌هاییش رو میخواست تبدیل به دوره کنه

Learn rust by doing یا Production ready Rust
چیزی هست که توی یادداشت‌هام نگه داشتم.
متاسفانه الان پیداش نمی‌کنم و امروز سررسید تقویم بود برای انتشار این دوره.

کسی این ویدئو رو دیده ؟ خبری از وضعیت این دوره دارید ؟
اگر میشناسید لطفا توی کامنت لینک بدید؛ سپاس
👍131👎1
یک پروژه بهم داده شده که بعد از سال‌های بسیار (شاید ۸ سال) برای اولین بار پروژه رو از روز اولش هستم.

کدها رو باید توی پایتون انجام بدم؛ معمار سیستم اینطوری فکر می‌کنه که پایتون توی اسکیل هم جواب میده برای این پروژه خاص. (قطعا جواب میده اما سخت هست یا سخت‌افزار بیشتری می‌خواد)

شخصا میخوام ۲-۳ ساعت در روزی که وقت دارم + جمعه عصر که زمان استراحتم هست پروژه رو ببرم روی Rust و یک نسخه برای خودم داشته باشم.

معمولا اینطوری هست که اگر شرکت به مشکلی بخوره و شما کد بهتر رو توی وقت خالی خودت زده باشی و شرکت هزینه دولوپ از صفر رو نده و مشکلش حل بشه بطور کامل کد رو ازت میخره (اگر به مشکل نخوره که تمرین شده واسه خودت)
البته شخصا قبلا ۱-۲ تا بکند فروختم.

بگذریم؛ این هفته تعطیلات خوبی داره؛ ۴شنبه + ۵شنبه رو بتونم مرخصی بگیرم (شرکت‌های مختلف) هدف گذاشتم یک مروری روی Rust بکنم برای آخرین بار و از شنبه بعدی فقط حق کد زدن و یادگیری با کد رو به خودم بدم.
این آخرین هفته دیدن آموزش و مرور و ... هست.

اگر دوست داشتید شما هم این رو تبدیل به چالش کنید و ببینیم ۱ هفته شدنی هست؛ لیست منابعی که دنبال می‌کنم به ترتیب :

1- Rust programming full course 2024
2- Rust Tutorial full course
3- Learn Rust Together! Going through the book (live)!
4- Rust book
5- Rust in a month of launch
این کتاب واجب نیست ولی چون قبلا خوندم؛ مرورش راحت میشه برام.
البته همینجا اضافه کنم اپل احمق؛ کتاب‌های highlight شدم رو چون ذخیره نکرده بودم توی آپدیت آخر پاک کرد (۱۵ مورد که باز بود توی پس زمینه) کل فایل رو پاک کرده.
6- Zero to production in Rust

من این موارد رو فقط لازم دارم برای پروژه؛ اگر پکیج یا ... نیاز شد موضوعی میشه و باید آموزش خودش رو ببینم
تا قبل از کتاب‌ها هم ویدئو‌هارو همونطور که توی ویدئو اول یوتبوب (کتابخوانی Fluent Python) گفتم پیش میبرم.


پ.ن :
روزانه گزارش میدم اینجا؛ شاید انگیزه شد چندنفر دیگه هم با من بحث آموزش رو تموم کردند و دست به کد شدند.
👍4014🔥5❤‍🔥1
قطعا شما هم همچین کدی رو دیدید :

use rand::Rng;

fn main() {
let rand_num = rand::thread_rng().gen_range(1..21)
}


برای من همش سوال بود؛ چرا از rand میریم Rng رو میاریم ولی موقع استفاده Rng رو بیخیال میشیم و از خود rand باید thread_rng رو بیاریم و بعد می‌توینم به متد دسترسی بگیریم ؟

چیزی پیدا نکردم (چون سوالم طولانی میشه و اومدم داکیومنت‌های Rust رو دادم به مدل هوش مصنوعی و این جوابی بود که بهم داد)

You're right to be curious! Let's break down why Rust code uses `Rng` and `rand::thread_rng()` for generating random numbers.

**1. Traits: The Power of Abstraction**

In Rust, traits define shared behavior. Think of them like blueprints or contracts that types can adhere to.

- The `Rng` trait represents anything capable of producing random numbers. It outlines methods like `gen()`, `gen_range()`, and others for generating different kinds of random values.
- By importing `Rng`, you gain access to this blueprint, allowing your code to work with any type that implements the `Rng` trait.

**2. Thread-Local Random Number Generators (RNGs): Ensuring Safety and Efficiency**

* `rand::thread_rng()` is a function that gives you a thread-local RNG. This means each thread in your program has its own independent random number generator, preventing conflicts and ensuring reproducibility within a thread's context.
* Using a thread-local RNG is generally preferred for performance and safety reasons:

* **Performance:** Accessing a global RNG can introduce contention (threads waiting for access) which slows things down. Thread-local RNGs avoid this bottleneck.
* **Safety:** Guarantees that random sequences generated within a thread are independent of other threads, important for scenarios requiring deterministic behavior.


**3. Chaining Methods: Building Randomness**

`rand::thread_rng().gen_range(1..101)` demonstrates method chaining.

* `rand::thread_rng()` returns an instance (a specific realization) of a type that implements the `Rng` trait.
* `.gen_range(1..101)` calls the `gen_range()` method on this RNG instance, specifying a range from 1 to 101 (inclusive). This generates a random integer within that range.

**Key Takeaways:**

- **Traits (`Rng`)**: Provide abstraction for random number generation capabilities.
- **Thread-Local RNGs (`rand::thread_rng()`)**: Ensure thread safety, performance, and independent randomness within threads.
- **Method Chaining**: Allows you to combine methods on the returned `Rng` instance to generate specific types of random values.



قبلتر هم گفتم این ابزارها وقتی بهشون داکیومنت یا اینترنت بدی؛ برای تمرین مصاحبه و یا یادگیری بسیار کاربردی هستند. اما باید با دقت بسیار ازشون استفاده کرد.
👍18😁3👌3
چون ما از پایتون به راست اومدیم من ترجیح میدم همه چیز رو با پایتون map کنم تا جایی که اجازه میده:

توی دوره‌های آموزشی که می‌بینم؛ تقریبا اکثرا
.iter(), .into_iter()

رو میگن iterator در حالی که بعدا میگن که رفتار متفاوتی داره؛ اما با توجه به رفتارهاشون
.iter() = iterable in python
.into_iter() = iterator in python

شما می‌تونی یک iterable رو چندین بار روش for بزنی و یک رفرنس بهش داری توی راست (دیتا رو نمی‌تونی تغییر بدی مستفیم)
ولی iterator رو می‌تونی تغییر بدی اما بعد از تبدیل شدن به iterator دیگه متغییر اولیه رو از دست دادی .into_iter() میره برای owner شدن.

مورد بعدی:
اکثرا closure رو anonymous function تعریف می‌کنند.
که با چیزی که توی پایتون داریم متفاوت هست (توی پایتون این دو مورد تعاریف مختلفی دارند و یکسان نیستند.)
جالب شد closure هم anonymous هست هم دسترسی به متغیر nonlocal رو داره (هر دو حالت جون یک سینتکس رو داره کلا بهش میگن closure)
👍111
Rust for Python developers
یک پروژه بهم داده شده که بعد از سال‌های بسیار (شاید ۸ سال) برای اولین بار پروژه رو از روز اولش هستم. کدها رو باید توی پایتون انجام بدم؛ معمار سیستم اینطوری فکر می‌کنه که پایتون توی اسکیل هم جواب میده برای این پروژه خاص. (قطعا جواب میده اما سخت هست یا سخت‌افزار…
ویدئو اول و دوم تموم شد.
پلی لیست (مورد سوم رو باید شروع کنم) که خب با کتاب همزمان پیش خواهم رفت.

روز خوبی بود ولی سرعتم خیلی کم بود؛ برنامه داشتم حداقل ۸ ساعت اول پلی لیست رو هم ببینم؛ ولی خب با توجه به اینکه چندتا حواس‌پرتی داشتم و البته کمی کسالت دامن گیرم شده بود.

فکر نمی‌کنم بد باشه؛ قطعا فردا با انرژی بیشتر شروع می‌کنم و سعی می‌کنم ۱۲ فصل اول کتاب و ویدئو‌ها رو همزمان پیش برم.


اما برای دوستانی که میخوان بعدا بخونند:
هر دو ویدئو اول و دوم رو به ترتیب پیشنهاد می‌کنم
ویدئو اول بعضی از موارد رو توضیح نمیده؛ ویدئو دوم شاید یک خطی ولی بهشون اشاره می‌کنه و میره جلو.
که اگر با دقت ولی حتی با سرعت 2x ببینید هم متوجه‌اش خواهید شد و می‌تونید راجبش جستجو کنید ( یا اینکه مثل من مواردی که سوال بیشتر دارید رو یادداشت کنید و موقع خوندن کتاب اصلی بهش توجه کنید)
8👏8👍3
Rust for Python developers
یک پروژه بهم داده شده که بعد از سال‌های بسیار (شاید ۸ سال) برای اولین بار پروژه رو از روز اولش هستم. کدها رو باید توی پایتون انجام بدم؛ معمار سیستم اینطوری فکر می‌کنه که پایتون توی اسکیل هم جواب میده برای این پروژه خاص. (قطعا جواب میده اما سخت هست یا سخت‌افزار…
خیلی وقتا به محض اینکه پلن می‌کنی یک کاری رو جلو جلو دنیا برات دردسر میسازه ولی خب من ادامه میدم پلن رو؛
با وجود کسالت شدید
تونستن ۶ تا ویدئو اول و تا فصل ۷ داکیومنت‌ها رو بخونم.
هرچند چون زیادی روی استراحت بودم؛ فکر نمی‌کنم امشب زودتر از ساعت ۳-۴ خوابم ببره پس اگر دوباره وضعیت بد نشه قطعا ادامه خواهم داد.

حدود ۵ فصل دیگه بخونم؛ به هدفی که شب قبل گذاشتم میرسم.

اما برای افرادی که بعد از این میخوان بخونند :

ویدئو‌های شماره ۳ ؛ طرف ی مقدار بیش از حد چرت و پرت میگه و حاشیه میزنه و بنظرم جلف هم هست که من نمی‌پسندم اما خوبیش اینه که می‌تونید بذارید روی 2x-3x و ویدئو رو ببینید بعد خیلی روانتر و سریعتر کتاب رو بخونید.

بعضی بخش‌های کتاب یک سری مثال‌ها فرق کرده و یا نکاتی بهش اضافه شده ولی بطور کلی ویدئوها هنوز ولید هست.

پس بازم پیشنهاد میدم همین RoadMap رو برای یادگیری ادامه بدید؛ اگر در آینده چیز بهتری دیدم حتما جایگزین می‌کنم.
👍12👏32
Rust for Python developers
یک پروژه بهم داده شده که بعد از سال‌های بسیار (شاید ۸ سال) برای اولین بار پروژه رو از روز اولش هستم. کدها رو باید توی پایتون انجام بدم؛ معمار سیستم اینطوری فکر می‌کنه که پایتون توی اسکیل هم جواب میده برای این پروژه خاص. (قطعا جواب میده اما سخت هست یا سخت‌افزار…
هنوز روی ۳-۴ هستم
امروز تا عصر تقریبا نتونستم کار کنم و چندتا ویدئو رو بیشتر ندیدم
فصل ۱۰ تمام شد.

می‌دونم از برنامه عقب هستم؛ اما از عصر نشستم هم تمرینات رو کد زدم هم بخش زیادی از منطق کدهای Python رو آوردم توی Rust و بهم انگیزه داد که با این حال و اوضاع و احوالی که دارم ادامه بدم داستان رو.

یکسری بخش‌ها رو البته دست نزدم و با todo! فعلا ازش گذشتم؛ مثل database connection , ...

تصمیم بدی نبود؛ باعث شد خستگی و حال بدی کسالت ازم دور بشه ولی یک اشتباهی که کردم این بود که صبر نکردم؛ چون بعد از فصل ۱۰ ویدئوهای لایو هم میره روی تمرینات ( یک پلی‌لیست دیگه هم روی یوتبوب هست که فقط همین تمرینات رو انجام میده و با این تمرینات Rust رو میخواد آموزش بده؛ البته برای یک شخص دیگری هست)

اینم خلاصه وضعیت امروز بود؛ با توجه به کمبود زمان احتمالا از کتاب
Rust in a month of launch
میگذرم و مستقیم میرم سراغ
Zero to production in Rust

توقع هم دارم بعد از خوندن کتاب اصلی سایت نهایتا ۴-۵ ساعته این کتاب رو بخونم ولی خب فعلا از ذهنم بیرونش می‌کنم و تمرکز روی کتاب اصلی و ویدئوها هست.

در نهایت
ترجیح میدم تو مسیری که پیش میرم اشتباه کنم و درس بگیرم؛ تا اینکه از ترس اشتباه کردن هیچوقت شروع نکنم.

برای همین زودتر شروع کردم کدها رو به Rust تبدیل کردن.

توی گروه‌های pyhints نگید؛ ولی بیش از حد جذب Rust شدم.
15👍4🔥1👏1
Rust for Python developers
یک پروژه بهم داده شده که بعد از سال‌های بسیار (شاید ۸ سال) برای اولین بار پروژه رو از روز اولش هستم. کدها رو باید توی پایتون انجام بدم؛ معمار سیستم اینطوری فکر می‌کنه که پایتون توی اسکیل هم جواب میده برای این پروژه خاص. (قطعا جواب میده اما سخت هست یا سخت‌افزار…
فصل ۱۲ کتاب هم تموم شد + ویدئو‌های تا این بخش

همزمان یکسری هم به باقی کدها زدم و چندتا تمرین دیگه‌ای که دیده بودم رو انجام دادم.

بطور کلی امروز هم خوب پیشرفت.
تا قبل از فصل ۱۰ همه چیز خوب بود و سرعت بالایی داشت ولی بعد از فصل ۱۰ کتاب فقط خوندن کافی نیست بلکه تمرین مهمتر هست.

یک مشکل دیگه که دارم اینه که برای خیلی از کارها Rust چندین روش رو ارائه میده و نه فقط ۱ روش که خیلی خوبه؛ اما الان میفهمم وقتی می‌گفتند learning curve داره و سخت میشه و ... منظورشون چی هست.
مسئله اینه که خیلی وقتا نمی‌تونی تصمیم بگیری کاری که کردی روش درست هست یا نه (مخصوصا وقتی صحبت بهینه کد زدن میشه) و هر دو روش هم جواب میده.

استفاده از cargo clippy رو هم به کارهام اضافه کردم تا از همین ابتدا استاندارد کامیونیتی رو رعایت کنم.

البته اضافه کنم من سختی توی یادگیری Rust نمی‌بینم؛ شاید چون توی رزومه‌ام در گذشته با C, C++ و از همه بدتر کد زدن با Assembly X86-64 تقریبا عادت داشتم.

سعی کردم یک فروم معروف رو پیدا کنم تا یک عکس به پیوست بفرستم که متاسفانه جمع شده بود؛ خیلی سال پیش نوشته بودم:

این احمقانه‌اس که بیشتر از اینکه وقت کد زدن داشته باشم؛ باید کدهام رو دیباگ کنم.
خداحافظ C

و خب اون زمان خیلی جوان بودم و برای تست ایده‌هام نیاز داشتم سرعت توسعه بیشتری داشته باشم؛ این قدم اول من به سمت Perl بود که باعث شد بعدش با Python آشنا بشم و ...

ولی بنظرم Rust این مسئله رو نداره؛ چون قبل از تحویل کد باگ رو تو صورت آدم می‌کوبه و البته منی که بزرگتر و صبورتر شدم.

به هرحال هرچی جلوتر میرم به این نتیجه میرسم؛ که بیشتر باید با Rust کد زد و تجربه کرد. کتاب اصلی به تنهایی نمی‌تونه بهت بگه که چی رو توی چه شرایطی باید استفاده کنی و تو چه شرایطی نباید که اگر اینطوری بود قطعا ۳-۴ برابر این حجم داشت و هیچکس هم سراغ Rust نمی‌رفت.

با این همه حتی یادگیری همین مقدار هم برای کد زدن کفایت می‌کنه ولی من شخصا کد optimize رو سمتش کشش دارم حتی اگر اینطوری کد نزنم باید بلدش باشم.
16👍4🔥1
یک نکته دیگه وقتی روی چندزبان برنامه نویسی و چندین پروژه تو در تو کار می‌کنیم فقط نصب rust-analyzer روی vscode کافی نیست و ممکنه گیج بزنه

توی این شرایط بهتره این تنظیمات رو هم به settings.json اضافه کنید.

"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer",
"editor.formatOnSave": true,
"editor.tabSize": 4
},
👍133🔥3
بیشترین سوالی که ازم شده راجب سرعت خوندن هست؛

روی ویدئو‌ها به سرعت 2x-3x عادت دارم و کندتر ازین نه تنها باعث یادگیری بهترم نمی‌شه که بی‌حوصله‌ام می‌کنه و تمرکزم رو از دست میدم (توی سخت‌ترین مباحث سرعت رو تا 1.75 نهایتا پایین میارم یه مدت انجام بدید عادت می‌کنید)

برای خوندن کتاب و متن سایت و ... هم اگر سرعت خوندن برام مهم باشه (بعضی کتاب‌ها خوندنش لذت بخش هست اونارو اینکارو نمی‌کنم) مثل همین کتابی که روی سایت هست.
از extension های مربوط به fast read استفاده می‌کنم مثلا
Sprint Reader
یا مواردی که برای متن رو بلند می‌خونه Text to speech شماهم اگر ابزار یا تکنیک بهتری میشناسید خوشحال میشم باهام به اشتراک بذارید.
17👍5🔥4
Rust for Python developers
یک پروژه بهم داده شده که بعد از سال‌های بسیار (شاید ۸ سال) برای اولین بار پروژه رو از روز اولش هستم. کدها رو باید توی پایتون انجام بدم؛ معمار سیستم اینطوری فکر می‌کنه که پایتون توی اسکیل هم جواب میده برای این پروژه خاص. (قطعا جواب میده اما سخت هست یا سخت‌افزار…
تا اواسط فصل ۱۵ رو پیش رفتم و فکر نمی‌کنم بیشتر ازین بتونم ادامه بدم امشب.
یک چندساعتی هم وقت گذاشتم و باقی کدهایی که برای پروژه توی پایتون مونده بود رو هم منتقل کردم.

خوبیش اینه که وقتی کدهای پایتون رو تحویل میدم تا تیم QA, Test, ... هم کارهاش رو بکنه وقت دارم و توی زمانبندی این تایم رو بهم دادند و ازونجایی که کدها به همدیگر وابسته هست و نمی‌تونم روی پروژه ادامه بدم شرکت ازم خواسته توی این تایم‌ها یکسری پروژه دیگه رو بررسی کنم و پیش ببرم.

این بخش خوب و خبر خوبش بود؛ بخش بد این قضیه این هست که بکند پروژه هم به خودم سپرده شده بخش زیادی از قضیه و خب قطعا توی پایتون به Async, Concurrency, ... نیاز داریم و با توجه به پیچیدگی‌های پروژه درحال حاضر هم MongoDB و هم PostgresSql رو داریم بعد از این مرحله دیتابیس گراف و یک Vector DB هم اضافه خواهد شد که احتمالا pgvector باشه.

نگران آینده‌اش نیستم ولی توی همین بخش کارم پیچیده‌تر شده و این یعنی باید بکند دولوپ با Rust رو هم یاد بگیرم که سخت‌ترین بخشش تا جایی که شنیدم درک و کار با Async هست.

بگذریم از کتاب و ویدئو‌ها مورد ۶ ماند متاسفانه
و کتاب هم تا اواسط فصل ۱۵ پیش رفت فصل‌های بعدی ۲ موردش برام واجب هست خوندن دقیقش و باقیش رو باز با سرعت می‌تونم پیش برم.

امروز متاسفانه ۲ ساعت وقتم سر جندمورد lifetime رفت و چون این ارورها رو ندیده بودم درکی از پیام compiler و نحوه تفسیرش نداشتم (به سادگی باقی مباحث نبود)
ولی چون سرم خلوت شده (کدها رو رسوندم تا ۲ هفته دیگه هم که QA , ... درگیر میشه احتمالا ۵-۶ روز هم اونجا سرم خلوت باشه) از فردا با اولویت استفاده از وقت‌های خالی
شبی ۲ ساعت توسعه کد و ۱ ساعت ادامه آموزش برای خودم در نظر گرفتم؛ بازم تو ادامه این مسیر اگر چیز جذاب و نکاتی بود حتما به اشتراک میذارم


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


پ.ن (پینوشت) :
نیم نگاهی هم به تعطیلات شهریور دارم برای یادگیری کار با دیتابیس‌ها و ...
👍25🔥3👎1👏1