ch
Feedback
Normal Developer

Normal Developer

前往频道在 Telegram

اینجا سعی میشه که تجربه های شخصی، اموزش و نکاتی که شاید بدرد بقیه هم بخوره Share بشه 1727676055

显示更多
730
订阅者
-124 小时
-27
+5330
帖子存档
مشکل خود سنیور پنداری! جدیدا خیلیا رو میبینم که قبل از تخصصشون عنوان سنیور رو وصل میکنن. ولی واقعیت امر اینه که سنیور بودن یه لقب نیست. به زمان هم خیلی بستگی نداره که بعد از فعالیت n ساله در یک زمینه شما به این مرحله برسید. کسی که خودش رو سنیور خطاب میکنه در واقع مهارت های خیلی زیادی رو باید داشته باشه که یکیشون برنامه نویسیه! مهارت های نرم، مهارت یادگیری چیزهای جدید، طرز فکر و راهکار یابی و ... بخشی از پیشنیاز این صفت میشه. تو فرایند جذب نیروی جدید برای شرکتمون رزومه های زیادی رو چک کردم و واقعا همه دوست دارن این عنوان رو قبل اسمشون داشته باشن. عجیب ترین چیزی که دیدم هم مربوط میشه به یه فردی که بعد از یه بوت کمپ با یه شرکت شروع به همکاری چند ماهه کرده بود و عنوان شغلی خودش تو اون شرکت رو نوشته بود "Senior Django Developer"! یعنی در فاصله کمتر از چند ماه به این درجه از عرفان رسیده بوده! @normal_developer

ذن نهم پایتون میگه که: اگرچه عملی بودن، شفافیت رو شکست میده. بعضی وقتا راه حل های عملی، قوانین سخت گیرانه رو نادیده میگیره. مثلا:
# Purity

result = []
for x in data:
    if isinstance(x, int) and x % 2 == 0:
        result.append(x)
# Practical
result = [x for x in data if isinstance(x, int) and x % 2 == 0]
@normal_developer

ادامه ذن های پایتون با ۲۶ رای موافق و ۵ رای مخالف، بدون رای ممتنع تصویب شد

ادامه ذن های پایتون رو بذاریم؟
Anonymous voting

یکی از مهمترین ذن های پایتون، ذن هشتمه. ذن هشتم میگه موارد خاص شما هیچوقت اونقدری خاص نیستن که بخواید قوانین رو براشون بشکنید. همیشه باید از قوانین پیروی کنید. مثال:
def divide(x, y):
    if y == 0:
        return "undefined"
    return x / y
def divide(x, y):
    if y == 0:
        raise ValueError("Cannot divide by zero.")
    return x / y
@normal_developer

ذن هفتم میگه که خوانایی کد مهمه. کدها بیشتر از اینکه نوشته بشن، خونده میشن. پس سعی کنید یه جوری بنویسید که قابل خوندن باشه مثال:
def f(a,b):return a+b
def add(a, b):
    """Add two numbers."""
    return a + b

ذن شیشم پایتون میگه که جدا بهتر از متراکمه. یعنی بهتره کدا رو تا حد ممکن فشرده نکنین تو یه خط. مثال:
result = [x * 2 for x in range(10) if x % 2 == 0]
result = []
for x in range(10):
    if x % 2 == 0:
        result.append(x * 2)
@normal_developer

ذن پنجم پایتون که به تمیز تر شدن کدها کمک میکنه میگه که صاف بهتر از تو در تو هست. تا جای ممکن از تو در تو کردن اجتناب کنید. مثال:
def calculate():
    if condition1:
        if condition2:
            if condition3:
                return result
def calculate():
    if not (condition1 and condition2 and condition3):
        return None
    return result
@normal_developer

ذن چهارم پایتون میگه که پیچیده بهتر از به طرز افتضاحی پیچیده ست! اگه پیچیدگی قابل اجتناب نیست، مطمئن بشید که ساختار داره و قابل مدیریته
def parse(data):
    for i in range(len(data)):
        for j in range(len(data[i])):
            if isinstance(data[i][j], int):
                data[i][j] *= 2
def parse(data):
    for row in data:
        row[:] = [x * 2 if isinstance(x, int) else x for x in row] 
@normal_developer

语音消息00:09

این دوتا سرویس که قبلا برای برنامه نویسان ایرانی تحریم شده بود بدون نیاز به تغییر ایپی در دسترسه و نیازی به ابزارهای تحریم شک
این دوتا سرویس که قبلا برای برنامه نویسان ایرانی تحریم شده بود بدون نیاز به تغییر ایپی در دسترسه و نیازی به ابزارهای تحریم شکن نیست. جزئیات بیشتری از این مورد دردسترس نیست و در تمام کشور رفع تحریم شده. سرویس های اموزشی مثل کورسرا و یودمی هم رفع تحریم شدن و نیازی به ابزارهای مشابه رو ندارن @normal_developer

ذن سوم پایتون میگه که ساده بهتر از پیچیده ست! به این معنی که از پیچیدگی های الکی اجتناب کنید. مثال
def factorial(n):
    return n * factorial(n - 1) if n > 1 else 1
def factorial(n):
    result = 1
    for i in range(2, n + 1):
        result *= i
    return result 
@normal_developer

یکی دیگه از ذن های پایتون اینه که واضح بهتر از ضمنی هست. کد باید به صورت واضح قصدش مشخص بشه مثلا:
def add(x, y): return x + y
def add(x, y):
    """Add two numbers and return the result."""
    return x + y
@normal_developer

یکی از ذن های پایتون اینه که زیبا بهتر از زشته. به این دوتا مثلا توجه کنید:
x=[1,2,3];y=[4,5,6];print([i+j for i,j in zip(x,y)])
x = [1, 2, 3]
y = [4, 5, 6]
result = [i + j for i, j in zip(x, y)]
print(result)
به این معنی که وقتی میشه یه چیزی رو تمیز و مرتب نوشت، بهتره از خفن سازی و ترسناک کردنش پرهیز کنید! @normal_developer

نظر دوست عزیزمون در خصوص این پست. به نظرم اینجوری منطقی تره. @normal_developer
نظر دوست عزیزمون در خصوص این پست. به نظرم اینجوری منطقی تره. @normal_developer

برنامه نویس خوب راحت جایگزین میشه! چرا؟ - نیازی نیست خودشون روند کار رو توضیح بدن - کدشون رو میشه راحت تغییر داد - داکیومنت کارشون رو مینویسن - کدشون با تستای خوب سنجیده شدن ولی یه برنامه نویس بد قابل جایگزینی نیست! - فقط خودشون کد رو میفهمن - نمیتونی کدشونو تغییر بدی چون ممکنه یه چیز رندوم تو یه جایی از برنامه خراب بشه - داکیومنت کارشون تو ذهنشونه - خودشونو برای تست های درست اذیت نمیکنن اگه یه برنامه نویس خوب بره براتون مشکلی پیش نمیاد، اگه یه برنامه نویس بد بخواد بره، قطعا تو دردسر بزرگی میوفتین @normal_developer

یه کاردستی کوچیک برای استادایی که نمره نمیدن بسازید 😁 @normal_developer

اگه مصاحبه همه شغل ها شبیه مصاحبه های استخدام برنامه نویس بود 😄 پ.ن: زیرنویس فارسی رو یوتیوب ساخته @Normal_Developer

نه مث اینکه جدیه حواستون باشه وسیله گازی روشن نکنید وگرنه قطع 😆 میشه @normal_developer
نه مث اینکه جدیه حواستون باشه وسیله گازی روشن نکنید وگرنه قطع 😆 میشه @normal_developer