Normal Developer
Ir al canal en Telegram
اینجا سعی میشه که تجربه های شخصی، اموزش و نکاتی که شاید بدرد بقیه هم بخوره Share بشه 1727676055
Mostrar más730
Suscriptores
+124 horas
-27 días
+5430 días
Archivo de publicaciones
مشکل خود سنیور پنداری!
جدیدا خیلیا رو میبینم که قبل از تخصصشون عنوان سنیور رو وصل میکنن. ولی واقعیت امر اینه که سنیور بودن یه لقب نیست. به زمان هم خیلی بستگی نداره که بعد از فعالیت 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یکی از مهمترین ذن های پایتون، ذن هشتمه.
ذن هشتم میگه موارد خاص شما هیچوقت اونقدری خاص نیستن که بخواید قوانین رو براشون بشکنید.
همیشه باید از قوانین پیروی کنید.
مثال:
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این دوتا سرویس که قبلا برای برنامه نویسان ایرانی تحریم شده بود بدون نیاز به تغییر ایپی در دسترسه و نیازی به ابزارهای تحریم شکن نیست.
جزئیات بیشتری از این مورد دردسترس نیست و در تمام کشور رفع تحریم شده.
سرویس های اموزشی مثل کورسرا و یودمی هم رفع تحریم شدن و نیازی به ابزارهای مشابه رو ندارن
@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
