Python Hints dan repost
من خیلی ازین سالهای آخر رو خرج هوش مصنوعی کردم
هم پیشرفت و دستاورد داشتم هم پسرفت
راجب پسرفتها بخوام بگم؛ میتونم به موارد زیادی اشاره کنم ولی یک مورد هست که خودم رو خیلی اذیت میکنه اونم کدهای بد هست
توی بخش تحقیقاتی کار کردن (هوش مصنوعی و دیتاساینس رو میگم) خیلی بد هست مخصوصا اگر مثل من چندین سال فقط و فقط تو همین بخش باشید
متاسفانه ازونجایی که همه چیز Notebook هست و این کدها فقط بین تیمی جابجا میشه و ۹۹٪ کارفرماها وقتی کارشون نزدیک لانچ شدن محصول هست سراغ اضافه کردن سیستم هوش مصنوعی میان کدهای تمیزی معمولا نمیبینید
مثلا من خیلی از کدها رو توی ۲-۳ روز زدم و تحویل دادم به بخشهای دیگه با توضیحات و جلسه که بره روی محصول
چندسال پیش وقتی دنبال کار جدیدی بودم کدهای قدیمیتر (قبل از کار توی حوزه هوش مصنوعی) رو اتفاقی باز کردم همراه با یکی از دوستان که مصاحبه میگرفت ازم و بدون تعارف بهم گفت :
این کدها (کدهای قدیمی) سطح سنیور داره ولی این یکی (کدهایی که توی notebook زده بودم) انگار دادی ی بچه کد زده راستم میگفت؛ کار تو زمینه هوش مصنوعی و notebook من رو تنیل کرده بود نه فقط من کل تیمی رو هم که نگاه کردم همین بود
Don't Repeat Yourself (DRY)
اصلا رعایت نمیشد؛ ۲ تا کلید رو همزمان فشار میدادی کل cell بالایی رو کپی میکرد توی cell جدید ۲ تا کلید دیگه میزدی هرچی train بود رو با valid عوض میکردی بعد همین رو دوباره تکرار میکردی و میزدی test در نهایتم بخشهای دیگه از ما ۴ تا فایل تمیز میخواستند که بهشون خیلی شیک و مجلسی تحویل میدادیم دیگه
بعد این صحبتها مطمئن بودم دیگه فعلا نمیتونم برم سراغ کارهای software engineering چون اصول کد نویسی تمیز و ... رو اصلا نمیتونستم رعایت کنم ولی اگر یک نفر میگفت من این کد رو ۷ روزه تحویل میدم من همون کد رو نهایتا ۴ ساعته تحویل میدادم (اما کثیف و بدون رعایت اصول)
برای همین بجای software engineering رفتم سراغ machine learning engineering حالا خودم باید اون ۴ تا فایل رو تحویل میگرفتم تمیز میکردم و کدهای تمیز و تست و ... براش مینوشتم
این موضوع خیلی بهم کمک کرد تا عادتهای بد رو کنار بذارم؛ به کدهام ساختار بدم سعی کنم کامنت و ... بذارم یا حداقل اصول اصلی رو رعایت کنم (هنوزم کامنت گذاری و docstring برام سخت هست)
اگر به هوش مصنوعی یا کارهایی که بخش تحقیقاتی زیادی داره علاقه دارید مثه من نشید دقت کنید که تمیزی و خوانایی کد رو از دست ندید؛ خیلی خیلی دارم تلاش میکنم و بعضی وقتا خیلی خیلی برام سخت هست که با کارفرمایی که کار عجلهای میخواد یا میگه اشکال نداره کدها تمیزم نبود بده بیاد؛ کار نکنم
و بیشتر از اون سعی میکنم خیلی تمیز کد بزنم
من واقعا و جدا الان دارم روزی ۱-۲ ساعت تمرین تمیز کد زدن میکنم؛ تا توی ناخودآگاهم بمونه این موضوع؛ علاوه بر اون دارم بسیار تمرین میکنم و برنامهریزی میکنم با کارفرماهای عجول کار نکنم و اگر دارم کار میکنم خداحافظی کنم.
کثیف و سرعتی کد زدن شاید برای کارفرما فعلی خیلی خوب باشه و باعث درآمد بیشترش بشه ولی برای من توسعه دهنده باعث شکوفا شدن و پرورش عادتهای بد میشه و نمیذاره کار بهتر یا حتی درصورت جدا شدن از تیم کار پیدا کنم.
خلاصه که خیلی خیلی حواستون باشه؛ بخصوص دوستان سنیور.
پ.ن : اضافه کنم الان چندماهی هست ۲ تا از شغلهام بعنوان
software engineer
هست ولی خب سختی زیادی کشیدم تا عادتهای بد رو کنار بذارم و هنوزم درحال تمرین هستم؛ اینم به این معنی نیست که بگم برید کتاب clean code بخونید ( ی مدت ملت جوگیر شده بودند هرجا میرفتی دست یکی این کتاب بود؛ خلاصه بگم اصلا هم کتاب خوبی نیست قبلا مفصل راجبش توی چندتا لایو که دعوت بودم بحث کردم)
هم پیشرفت و دستاورد داشتم هم پسرفت
راجب پسرفتها بخوام بگم؛ میتونم به موارد زیادی اشاره کنم ولی یک مورد هست که خودم رو خیلی اذیت میکنه اونم کدهای بد هست
توی بخش تحقیقاتی کار کردن (هوش مصنوعی و دیتاساینس رو میگم) خیلی بد هست مخصوصا اگر مثل من چندین سال فقط و فقط تو همین بخش باشید
متاسفانه ازونجایی که همه چیز Notebook هست و این کدها فقط بین تیمی جابجا میشه و ۹۹٪ کارفرماها وقتی کارشون نزدیک لانچ شدن محصول هست سراغ اضافه کردن سیستم هوش مصنوعی میان کدهای تمیزی معمولا نمیبینید
مثلا من خیلی از کدها رو توی ۲-۳ روز زدم و تحویل دادم به بخشهای دیگه با توضیحات و جلسه که بره روی محصول
چندسال پیش وقتی دنبال کار جدیدی بودم کدهای قدیمیتر (قبل از کار توی حوزه هوش مصنوعی) رو اتفاقی باز کردم همراه با یکی از دوستان که مصاحبه میگرفت ازم و بدون تعارف بهم گفت :
این کدها (کدهای قدیمی) سطح سنیور داره ولی این یکی (کدهایی که توی notebook زده بودم) انگار دادی ی بچه کد زده راستم میگفت؛ کار تو زمینه هوش مصنوعی و notebook من رو تنیل کرده بود نه فقط من کل تیمی رو هم که نگاه کردم همین بود
Don't Repeat Yourself (DRY)
اصلا رعایت نمیشد؛ ۲ تا کلید رو همزمان فشار میدادی کل cell بالایی رو کپی میکرد توی cell جدید ۲ تا کلید دیگه میزدی هرچی train بود رو با valid عوض میکردی بعد همین رو دوباره تکرار میکردی و میزدی test در نهایتم بخشهای دیگه از ما ۴ تا فایل تمیز میخواستند که بهشون خیلی شیک و مجلسی تحویل میدادیم دیگه
بعد این صحبتها مطمئن بودم دیگه فعلا نمیتونم برم سراغ کارهای software engineering چون اصول کد نویسی تمیز و ... رو اصلا نمیتونستم رعایت کنم ولی اگر یک نفر میگفت من این کد رو ۷ روزه تحویل میدم من همون کد رو نهایتا ۴ ساعته تحویل میدادم (اما کثیف و بدون رعایت اصول)
برای همین بجای software engineering رفتم سراغ machine learning engineering حالا خودم باید اون ۴ تا فایل رو تحویل میگرفتم تمیز میکردم و کدهای تمیز و تست و ... براش مینوشتم
این موضوع خیلی بهم کمک کرد تا عادتهای بد رو کنار بذارم؛ به کدهام ساختار بدم سعی کنم کامنت و ... بذارم یا حداقل اصول اصلی رو رعایت کنم (هنوزم کامنت گذاری و docstring برام سخت هست)
اگر به هوش مصنوعی یا کارهایی که بخش تحقیقاتی زیادی داره علاقه دارید مثه من نشید دقت کنید که تمیزی و خوانایی کد رو از دست ندید؛ خیلی خیلی دارم تلاش میکنم و بعضی وقتا خیلی خیلی برام سخت هست که با کارفرمایی که کار عجلهای میخواد یا میگه اشکال نداره کدها تمیزم نبود بده بیاد؛ کار نکنم
و بیشتر از اون سعی میکنم خیلی تمیز کد بزنم
من واقعا و جدا الان دارم روزی ۱-۲ ساعت تمرین تمیز کد زدن میکنم؛ تا توی ناخودآگاهم بمونه این موضوع؛ علاوه بر اون دارم بسیار تمرین میکنم و برنامهریزی میکنم با کارفرماهای عجول کار نکنم و اگر دارم کار میکنم خداحافظی کنم.
کثیف و سرعتی کد زدن شاید برای کارفرما فعلی خیلی خوب باشه و باعث درآمد بیشترش بشه ولی برای من توسعه دهنده باعث شکوفا شدن و پرورش عادتهای بد میشه و نمیذاره کار بهتر یا حتی درصورت جدا شدن از تیم کار پیدا کنم.
خلاصه که خیلی خیلی حواستون باشه؛ بخصوص دوستان سنیور.
پ.ن : اضافه کنم الان چندماهی هست ۲ تا از شغلهام بعنوان
software engineer
هست ولی خب سختی زیادی کشیدم تا عادتهای بد رو کنار بذارم و هنوزم درحال تمرین هستم؛ اینم به این معنی نیست که بگم برید کتاب clean code بخونید ( ی مدت ملت جوگیر شده بودند هرجا میرفتی دست یکی این کتاب بود؛ خلاصه بگم اصلا هم کتاب خوبی نیست قبلا مفصل راجبش توی چندتا لایو که دعوت بودم بحث کردم)