آموزش دادن یکی از سخت ترین کارهاست.
اول به این دلیل که برای اینکه یک آموزگار خوب باشی، باید خودت به مطلب مورد نظر تسلط عالی داشته باشی.
دوم به این دلیل که باید توانایی بخشش داشته باشی و بتونی علم خودت که با تلاش بسیار و صرف زمان زیاد به دست اوردی رو به بقیه انتقال بدی و باعث پیشرفت دنیا بشی.
و...
و این انسان های بخشنده هستن که میتونن باعث بهتر و بهتر شدن دنیا بشن.
جادی یکی از بهترین آموزگاران صنعت نرم افزار هست.
به امید سلامتی این استاد گران قدر ❤️
اول به این دلیل که برای اینکه یک آموزگار خوب باشی، باید خودت به مطلب مورد نظر تسلط عالی داشته باشی.
دوم به این دلیل که باید توانایی بخشش داشته باشی و بتونی علم خودت که با تلاش بسیار و صرف زمان زیاد به دست اوردی رو به بقیه انتقال بدی و باعث پیشرفت دنیا بشی.
و...
و این انسان های بخشنده هستن که میتونن باعث بهتر و بهتر شدن دنیا بشن.
جادی یکی از بهترین آموزگاران صنعت نرم افزار هست.
به امید سلامتی این استاد گران قدر ❤️
😝طنز :
برنامه نویس خوب برنامه نویسی هست که کدی بنویسه که انسان بتونه بفهمه...
وگرنه هر احمقی میتونه کدی بنویسه که ماشین اون رو بفهمه.
پ.ن: این جمله مال من نیست یکی از بزرگان صنعت نرم افزار اون رو گفته..
👌 واقعیت :
چیزی که توی واقعیت اتفاق میوفته ولی اینه که ابتدا باید کدی نوشت که کار کنه (کدی که ماشین به خوبی میفهمه ولی شاید فهمیدنش برای انسان کمی سخت باشه)
ولی کم کم باید اون کد ریفکتور بشه و به کدی تبدیل بشه که انسان هم اون رو میفهمه.
حالا اگه کدی نوشتید که دیگه هیچ موقعی قرار نیست بیاین سراغش و فقط یه بار نوشتید و اجرا کردید و خلاص و دیکه بعدش به هیچ وجه کاری با اون کد ندارید ، توی این مورد حتا اگه انسان فهم هم نبود مشکلی نیست 😁
برنامه نویس خوب برنامه نویسی هست که کدی بنویسه که انسان بتونه بفهمه...
وگرنه هر احمقی میتونه کدی بنویسه که ماشین اون رو بفهمه.
پ.ن: این جمله مال من نیست یکی از بزرگان صنعت نرم افزار اون رو گفته..
👌 واقعیت :
چیزی که توی واقعیت اتفاق میوفته ولی اینه که ابتدا باید کدی نوشت که کار کنه (کدی که ماشین به خوبی میفهمه ولی شاید فهمیدنش برای انسان کمی سخت باشه)
ولی کم کم باید اون کد ریفکتور بشه و به کدی تبدیل بشه که انسان هم اون رو میفهمه.
حالا اگه کدی نوشتید که دیگه هیچ موقعی قرار نیست بیاین سراغش و فقط یه بار نوشتید و اجرا کردید و خلاص و دیکه بعدش به هیچ وجه کاری با اون کد ندارید ، توی این مورد حتا اگه انسان فهم هم نبود مشکلی نیست 😁
🔥Software
❓چرا میگن نرم افزار ؟
❓چرا میگن نرم؟
✅چون باید یه چیزی بسازید که قابلیت تغییر داشته باشه و انعطاف پذیر باشه ....
⚠️اگه یه چیزی درست کردید که انعطاف پذیر نبود و تا به یه جاییش دست زدید یه جای دیگش در رفت...
⚠️یا وقتی خواستید یه قابلیت اضافه کنید کاسه چه کنم چه کنم دستتون گرفتید...
😱😱😱اون چیزی که درست کردید دیگه نرم افزار نیست ...سخت افزاره..
❓چرا میگن نرم افزار ؟
❓چرا میگن نرم؟
✅چون باید یه چیزی بسازید که قابلیت تغییر داشته باشه و انعطاف پذیر باشه ....
⚠️اگه یه چیزی درست کردید که انعطاف پذیر نبود و تا به یه جاییش دست زدید یه جای دیگش در رفت...
⚠️یا وقتی خواستید یه قابلیت اضافه کنید کاسه چه کنم چه کنم دستتون گرفتید...
😱😱😱اون چیزی که درست کردید دیگه نرم افزار نیست ...سخت افزاره..
ℹ️
❄️Clean Architecture ❄️Usecase
☃️ یوزکیس ها در معماری کلین یه الگوریتمی رو برای ارتباط با کاربر تعریف میکنن که طی اون اطلاعات کاملن خام که مستقل از delivery mechanism هست رو دریافت میکنن و پردازشی انجام و یک رسپانس متشکل از دیتای کاملن ساده و سر راست و قابل استفاده رو برمیگردونن.
☃️ ورودی و خروجی باید یک data structure کاملن ساده و بدون هیچ لاجیکی و مستقل از delivery mechanism باشه.
🌩 منظور از delivery mechanism یعنی نحوه ارتباط اپ با کاربر نهایی.
🌧مثلن داری اپت رو از طریق کنسول به کاربر ارائه میدی...
🌧یه ui داری (صرف نظر از هر فریمورکی)
🌧داری یه وب سرویس بر اساس rest full ارایه میدی یا...
☃️ پس یوزکیس باید کاملن از delivery mechanism یا خیلی اگه بخوایم سادش کنیم ui مستقل باشه و ورودی و خروجی های اون هیچ اثری از این مکانیزم ها نداشته باشه.
☁️ مثلن اگه ui اپت فلاتر هست، ورودی و خروجی ها هیچ اثری از فلاتر نباید داخلشون باشه.
☁️ یا اگه روی وب کار میکنی ورودی و خروجی نباید هیچ اثری از مفاهیم مرتبط با وب داشته باشه.
☃️ و اما نام گذاری :
☁️ توی ادبیات معماری کلین به کلاس هایی که یوزکیس ها رو implement میکنن میگن interactor
پس میتونیم مثلن اینطوری نام گذاری کنیم
💥LoginInteractor
🌈 ادامه این پست رو که نکات خیلی جذابی 😍 در مورد این مبحث میگم رو میتونی توی کانال معرفی دوره OOD ببینی.
🌈 برای دیدن اطلاعات کامل دوره و شرکت در دوره عضو کانال معرفی دوره شو :
https://t.me/+CdTESfA8j7dlNDA0
❄️Clean Architecture ❄️Usecase
☃️ یوزکیس ها در معماری کلین یه الگوریتمی رو برای ارتباط با کاربر تعریف میکنن که طی اون اطلاعات کاملن خام که مستقل از delivery mechanism هست رو دریافت میکنن و پردازشی انجام و یک رسپانس متشکل از دیتای کاملن ساده و سر راست و قابل استفاده رو برمیگردونن.
☃️ ورودی و خروجی باید یک data structure کاملن ساده و بدون هیچ لاجیکی و مستقل از delivery mechanism باشه.
🌩 منظور از delivery mechanism یعنی نحوه ارتباط اپ با کاربر نهایی.
🌧مثلن داری اپت رو از طریق کنسول به کاربر ارائه میدی...
🌧یه ui داری (صرف نظر از هر فریمورکی)
🌧داری یه وب سرویس بر اساس rest full ارایه میدی یا...
☃️ پس یوزکیس باید کاملن از delivery mechanism یا خیلی اگه بخوایم سادش کنیم ui مستقل باشه و ورودی و خروجی های اون هیچ اثری از این مکانیزم ها نداشته باشه.
☁️ مثلن اگه ui اپت فلاتر هست، ورودی و خروجی ها هیچ اثری از فلاتر نباید داخلشون باشه.
☁️ یا اگه روی وب کار میکنی ورودی و خروجی نباید هیچ اثری از مفاهیم مرتبط با وب داشته باشه.
☃️ و اما نام گذاری :
☁️ توی ادبیات معماری کلین به کلاس هایی که یوزکیس ها رو implement میکنن میگن interactor
پس میتونیم مثلن اینطوری نام گذاری کنیم
💥LoginInteractor
🌈 ادامه این پست رو که نکات خیلی جذابی 😍 در مورد این مبحث میگم رو میتونی توی کانال معرفی دوره OOD ببینی.
🌈 برای دیدن اطلاعات کامل دوره و شرکت در دوره عضو کانال معرفی دوره شو :
https://t.me/+CdTESfA8j7dlNDA0
Pure Coder pinned «ℹ️ ❄️Clean Architecture ❄️Usecase ☃️ یوزکیس ها در معماری کلین یه الگوریتمی رو برای ارتباط با کاربر تعریف میکنن که طی اون اطلاعات کاملن خام که مستقل از delivery mechanism هست رو دریافت میکنن و پردازشی انجام و یک رسپانس متشکل از دیتای کاملن ساده و سر راست و…»
❄️rxdart
☃️ کلمه rx مخفف Reactive Extensions هست.
☃️ همه جا rx رو به عنوان یه بسته ای که امکانات reactive programming رو به ما میده میشناسن.
☃️ اولین بار این بسته برای زبان سی شارپ توسعه داده شد و بعد از اون برای سایر زبان ها مثل جاوا و... هم اماده شد.
☃️ از خوبی های اون ارائه یک زبان مشترک برای همه زبان های برنامه نویسی هست.
☃️ زبان دارت برخلاف زبان هایی مثل جاوا خودش پشتیبانی بسیار خوبی از reactive programming داره.
☃️ به همین دلیل برخلاف زبان هایی مثل جاوا که این بسته از بیس توسعه داده شده توی زبان دارت این اتفاق نیوفتاده.
☃️ در واقع توی زبان دارت rx فقط یک سری امکانات رو به stream های دارت اضافه میکنه.
☃️ اکثر این امکانات به صورت extension method هستن و rxdart اکثرن به این شکل توسعه داده شده.
☃️ کلمه rx مخفف Reactive Extensions هست.
☃️ همه جا rx رو به عنوان یه بسته ای که امکانات reactive programming رو به ما میده میشناسن.
☃️ اولین بار این بسته برای زبان سی شارپ توسعه داده شد و بعد از اون برای سایر زبان ها مثل جاوا و... هم اماده شد.
☃️ از خوبی های اون ارائه یک زبان مشترک برای همه زبان های برنامه نویسی هست.
☃️ زبان دارت برخلاف زبان هایی مثل جاوا خودش پشتیبانی بسیار خوبی از reactive programming داره.
☃️ به همین دلیل برخلاف زبان هایی مثل جاوا که این بسته از بیس توسعه داده شده توی زبان دارت این اتفاق نیوفتاده.
☃️ در واقع توی زبان دارت rx فقط یک سری امکانات رو به stream های دارت اضافه میکنه.
☃️ اکثر این امکانات به صورت extension method هستن و rxdart اکثرن به این شکل توسعه داده شده.
یه روز به یه بنده خدایی نحوه ی درست کردن ماکارونی رو اموزش میدادم 😅
یه مرحلش این بود که تا سه چهارم قابلمه رو اب کن و بذار جوش بیاد... 😅😅
یه روزی که داشت ماکارونی درست میکرد دیدم با دقت تمام داره هی اب میریزه و خالی میکنه و اب میریزه و خالی میکنه که دقیقن سه چهارم قابلمه بشه...
بهش گفتم چکار میکنی!!!!!؟؟؟ 😳😳
گفت خودت گفتی اینکارو کنم. 😁😁
گفتم خنگ جان حالا دو میل این طرف اون طرفتر شد مشکلی نداره ....
خیلی از اصول برنامه نویسی هم همین طور هستن.
وقتی برنامه مینویسیم مساله ریاضی حل نمیکنیم که بخوایم همه چیز دقیق و مو به مو طبق اصول پیش بره.
بعضی وقت ها هم اصول رو باید بریزی دور و زندگیتو کنی... راحت و اسوده...
حواستون رو جمع کنید. 😁
یه مرحلش این بود که تا سه چهارم قابلمه رو اب کن و بذار جوش بیاد... 😅😅
یه روزی که داشت ماکارونی درست میکرد دیدم با دقت تمام داره هی اب میریزه و خالی میکنه و اب میریزه و خالی میکنه که دقیقن سه چهارم قابلمه بشه...
بهش گفتم چکار میکنی!!!!!؟؟؟ 😳😳
گفت خودت گفتی اینکارو کنم. 😁😁
گفتم خنگ جان حالا دو میل این طرف اون طرفتر شد مشکلی نداره ....
خیلی از اصول برنامه نویسی هم همین طور هستن.
وقتی برنامه مینویسیم مساله ریاضی حل نمیکنیم که بخوایم همه چیز دقیق و مو به مو طبق اصول پیش بره.
بعضی وقت ها هم اصول رو باید بریزی دور و زندگیتو کنی... راحت و اسوده...
حواستون رو جمع کنید. 😁
یک روزی رفته بودم میدون نقش جهان (میدون شاه عباس- اصفهان) ، اونجا یه توریستی(بگیم جهان گرد بهتره) رو دیدم توی یکی از رستوران های اطراف میدون که چندین مدل غذا رو با هم مخلوط کرده بود.
چند نوع خورشت (قرمه سبزی, خورشت ماست (غذای مخصوص اصفهان) )، چلو کباب، بریونی (مخصوص اصفهان) ، ... همه رو قاطی کرده بود و با هم میخورد و اتفاقن خیلی هم لذت میبرد....
خب اون لذت میبرد و خیلیم عالیه ولی معلوم نیست بعدش میخاد چه اتفاقی بیوفته...
با احترام به طرفداران گت ایکس این پکیج همه چیز رو قاطی کرده
هر کدوم در جای خودشون خوبن و بی نظیر ولی وقتی با هم مخلوط میشن و همه یه جا جمع میشن ضررهای بدی به سیستم میزنه.
حالا ممکنه به شما ضرر نرسونده باشه، حکایت همون جهان گرده هست که همه رو مخلوط کرده بود و ممکنه معده اون خیلی مقاوم باشه و خیلی هم لذت میبرد.
بماند که از نقطه نظر طراحی نرم افزار و اصول طراحی هم چنین کاری درست نیست و ایراداتی داره که در جای خودش قابل بحثه.
البته میدونم که سیر عظیمی از ناسزا ها از سمت طرفدارن گت ایکس به سمت من روانه خواهد شد 😅😅 عب نداره 😁
چند نوع خورشت (قرمه سبزی, خورشت ماست (غذای مخصوص اصفهان) )، چلو کباب، بریونی (مخصوص اصفهان) ، ... همه رو قاطی کرده بود و با هم میخورد و اتفاقن خیلی هم لذت میبرد....
خب اون لذت میبرد و خیلیم عالیه ولی معلوم نیست بعدش میخاد چه اتفاقی بیوفته...
با احترام به طرفداران گت ایکس این پکیج همه چیز رو قاطی کرده
هر کدوم در جای خودشون خوبن و بی نظیر ولی وقتی با هم مخلوط میشن و همه یه جا جمع میشن ضررهای بدی به سیستم میزنه.
حالا ممکنه به شما ضرر نرسونده باشه، حکایت همون جهان گرده هست که همه رو مخلوط کرده بود و ممکنه معده اون خیلی مقاوم باشه و خیلی هم لذت میبرد.
بماند که از نقطه نظر طراحی نرم افزار و اصول طراحی هم چنین کاری درست نیست و ایراداتی داره که در جای خودش قابل بحثه.
البته میدونم که سیر عظیمی از ناسزا ها از سمت طرفدارن گت ایکس به سمت من روانه خواهد شد 😅😅 عب نداره 😁
❄️بحث و گفت و گو
☃️ توی سایت refactoring پترن Singleton رو اینجوری تعریف کرده :
Singleton is a creational design pattern that lets you ensure that a class has only one instance, while providing a global access point to this instance.
بعد توی قسمت بدی های این پترن (اخر اخر) اینو گفته :
Violates the Single Responsibility Principle. The pattern solves two problems at the time.
☃️ نظر شما چیه ؟
☃️ بنظرتون درست میگه یا نه؟
☃️ اگه درست میگه این نقض کردن مهمه ؟ یا میشه چشم پوشی کرد ؟
لینک پترن در سایت :
https://refactoring.guru/design-patterns/singleton
☃️ توی سایت refactoring پترن Singleton رو اینجوری تعریف کرده :
Singleton is a creational design pattern that lets you ensure that a class has only one instance, while providing a global access point to this instance.
بعد توی قسمت بدی های این پترن (اخر اخر) اینو گفته :
Violates the Single Responsibility Principle. The pattern solves two problems at the time.
☃️ نظر شما چیه ؟
☃️ بنظرتون درست میگه یا نه؟
☃️ اگه درست میگه این نقض کردن مهمه ؟ یا میشه چشم پوشی کرد ؟
لینک پترن در سایت :
https://refactoring.guru/design-patterns/singleton
refactoring.guru
Singleton
Singleton is a creational design pattern that lets you ensure that a class has only one instance, while providing a global access point to this instance.
🤔
☃️یک قراردادی که قدیما توی کامیونیتی جاوا و c++ (من توی این دو تا دیدم) برای نام گذاری variable های private استفاده میکردن و الان حداقل توی جاوا کمتر استفاده میشه اضافه کردن یه _ به اول اسم variable های پرایوت هست...
☃️این کار رو میکردن که نام متغیر private خیلی تابلو بشه.
☃️ توی این زبان ها کلید private داریم و اجباری به این کار و این روش نام گذاری نیست و فقط برای تابلو شدن این کارو میکردن...
☃️و خب توسعه دهندگان دارت هم به احتمال خیلی زیاد از همون ها الگو گرفتن و کلن کلید private رو حذف کردن و گفتن که با یه _، متد ها یا فیلد هاتون رو private کنید 🤔
☃️یک قراردادی که قدیما توی کامیونیتی جاوا و c++ (من توی این دو تا دیدم) برای نام گذاری variable های private استفاده میکردن و الان حداقل توی جاوا کمتر استفاده میشه اضافه کردن یه _ به اول اسم variable های پرایوت هست...
☃️این کار رو میکردن که نام متغیر private خیلی تابلو بشه.
☃️ توی این زبان ها کلید private داریم و اجباری به این کار و این روش نام گذاری نیست و فقط برای تابلو شدن این کارو میکردن...
☃️و خب توسعه دهندگان دارت هم به احتمال خیلی زیاد از همون ها الگو گرفتن و کلن کلید private رو حذف کردن و گفتن که با یه _، متد ها یا فیلد هاتون رو private کنید 🤔
دوستانی که شروع میکنید به اموزش دیدن برنامه نویسی موبایل مثل فلاتر...
موارد مهم رو اموزش ببینید و مسلط بشید...
اکثرن میبینم دوستانی که شروع کردن به یادگیری و بعدش افتادن توی تله های اموزشی....
مثلن طرف میخواد فایربیس رو کاملن مسلط بشه...
یا...
مثال زیاده از این تله های اموزشی
مواردی از این دست رو به سادگی در ضمن پروژه هم میتونید یاد بگیرید
لزومی نداره شخصی مثلن به کل فایربیس مسلط باشه
خیلی از امکاناتش رو ممکنه اصلن ازش استفاده نکنید
اینا مواردی نیست که یادگیریش سخت باشه و در طول پروژه هم به راحتی میتونید متناسب با نیاز یاد بگیرید
این تله های اموزشی هم اکثرن توسط مدرسین بوجود میاد که میخوان برنامه اموزشی خودشون رو با یه چیزی پر کنن...
مثلن من اگه بخوام روزی کسی رو جایی گزینش کنم اصلن لازم نمیبینم که پیاده سازی نوتیفیکیشن با فایربیس رو قبلن کار کرده باشه و بلد باشه چون که خیلی راحت و در زمان کم میتونه این کار رو یاد بگیره و انجام بده...
به شرط اینکه برنامه نویس واقعن برنامه نویس باشه...
حالا ممکنه یه چیزی از فایربیس هم خیلی خوب و کاربردی باشه که همه برن دنبالش...
نمیشه نسخه کلی پیچید..
خلاصه مراقب باشید توی تله های بد اموزشی گیر نکنید...
این ها صرفن چند مثال بود ...
موارد مهم رو اموزش ببینید و مسلط بشید...
اکثرن میبینم دوستانی که شروع کردن به یادگیری و بعدش افتادن توی تله های اموزشی....
مثلن طرف میخواد فایربیس رو کاملن مسلط بشه...
یا...
مثال زیاده از این تله های اموزشی
مواردی از این دست رو به سادگی در ضمن پروژه هم میتونید یاد بگیرید
لزومی نداره شخصی مثلن به کل فایربیس مسلط باشه
خیلی از امکاناتش رو ممکنه اصلن ازش استفاده نکنید
اینا مواردی نیست که یادگیریش سخت باشه و در طول پروژه هم به راحتی میتونید متناسب با نیاز یاد بگیرید
این تله های اموزشی هم اکثرن توسط مدرسین بوجود میاد که میخوان برنامه اموزشی خودشون رو با یه چیزی پر کنن...
مثلن من اگه بخوام روزی کسی رو جایی گزینش کنم اصلن لازم نمیبینم که پیاده سازی نوتیفیکیشن با فایربیس رو قبلن کار کرده باشه و بلد باشه چون که خیلی راحت و در زمان کم میتونه این کار رو یاد بگیره و انجام بده...
به شرط اینکه برنامه نویس واقعن برنامه نویس باشه...
حالا ممکنه یه چیزی از فایربیس هم خیلی خوب و کاربردی باشه که همه برن دنبالش...
نمیشه نسخه کلی پیچید..
خلاصه مراقب باشید توی تله های بد اموزشی گیر نکنید...
این ها صرفن چند مثال بود ...
Forwarded from ترفند مدیریت
🔳⭕️قلعه خودت را بساز
🔴سه سناریو؛ کدامیک بیشتر آزارت میدهد؟
1⃣حقوق دوستانت افزایش پیدا کند و حقوق تو ثابت بماند.
2⃣حقوق تو و دوستانت ثابت بماند.
3⃣میانگین حقوق تو و دوستانت کاهش بیابد.
اگر پاسختان گزینه ۱ است، کاملا نرمال است: شما هم یکی دیگر از قربانیان حسادت هستید.
این یک قصه روسی است: کشاورزی یک چراغ جادو پیدا میکند و لمسش میکند. از بین ابرها یک جن ظاهر میشود و وعده میدهد که یک آرزوی او را برآورده میکند کشاورز میگوید: همسایه من یک گاو دارد و من ندارم. دوست دارم گاوش بمیرد.
🔴این مساله زنجیرهای از رفتارهای غیرمنطقی را به همراه دارد. دیگر به او کمک نمیکنید، در برنامههایش سنگ میاندازید ، و حتی ممکن است لاستیک ماشینش را پنچر کنید. چه بسا موقع اسکی پایش میشکند مخفیانه شادی کنید.
🔴چگونه حسادت را مهار کنیم؟
خودتان را با دیگران مقایسه نکنید. دوم دایره تواناییتان را پیدا کنید و خودتان را از آن پر کنید. مهم نیست حوزه مهارتتان چقدر کوچک باشد، مهم اینست که پادشاه قلعه خودت هستی.
#کتابخانه
#هنر_شفاف_اندیشیدن
#رولف_دوبلی
🔹با ما همراه باشید در:
🌐کانال ترفند مدیریت👇👇
Instagram | Telegram | Linkedin
🔴سه سناریو؛ کدامیک بیشتر آزارت میدهد؟
1⃣حقوق دوستانت افزایش پیدا کند و حقوق تو ثابت بماند.
2⃣حقوق تو و دوستانت ثابت بماند.
3⃣میانگین حقوق تو و دوستانت کاهش بیابد.
اگر پاسختان گزینه ۱ است، کاملا نرمال است: شما هم یکی دیگر از قربانیان حسادت هستید.
این یک قصه روسی است: کشاورزی یک چراغ جادو پیدا میکند و لمسش میکند. از بین ابرها یک جن ظاهر میشود و وعده میدهد که یک آرزوی او را برآورده میکند کشاورز میگوید: همسایه من یک گاو دارد و من ندارم. دوست دارم گاوش بمیرد.
🔴این مساله زنجیرهای از رفتارهای غیرمنطقی را به همراه دارد. دیگر به او کمک نمیکنید، در برنامههایش سنگ میاندازید ، و حتی ممکن است لاستیک ماشینش را پنچر کنید. چه بسا موقع اسکی پایش میشکند مخفیانه شادی کنید.
🔴چگونه حسادت را مهار کنیم؟
خودتان را با دیگران مقایسه نکنید. دوم دایره تواناییتان را پیدا کنید و خودتان را از آن پر کنید. مهم نیست حوزه مهارتتان چقدر کوچک باشد، مهم اینست که پادشاه قلعه خودت هستی.
#کتابخانه
#هنر_شفاف_اندیشیدن
#رولف_دوبلی
🔹با ما همراه باشید در:
🌐کانال ترفند مدیریت👇👇
Instagram | Telegram | Linkedin
☃️انواع برنامه نویس :
☃️ کد کپی کن :
اولین مرحله ای که هر کسی احتمالن واردش میشه.
مرحله ای که هر مساله ای که میخوای حل کنی اینور اونور میگردی و سرچ میکنی و خیلی هم به قدرت سرچ خودت افتخار میکنی و کدها و پکیج های مختلف رو از جاهای مختلف برمیداری و میزنی تو سر و کله هم و در نهایت یه غول بی شاخ و دم تحویل میدی که چشمش کف پاشه و خودت هم نمیفهمی چکار کردی.
خیلی ها توی این مرحله میمونن و اتفاقن خیلی هم خودشون رو تحویل میگیرن.
این دسته عاشق استک اورفلو هستن.
اگه چندین ساله اینجا موندی پس داری در جا میزنی بدون تعارف.
☃️برنامه نویس:
مرحله ای که خیلی چیز ها رو درک میکنی و مسائل رو تجزیه تحلیل میکنی و راه حل ارائه میدی .
اگه بخوای سرچ هم کنی خیلی کم گذرت به استک میخوره.
توی این مرحله قدرت حل مساله داری و علاوه بر اون به یک درک خوب از مفاهیم رسیدی و میتونی مسائل رو خرد کنی و برای هر کدوم جدا دنبال راه حل بگردی.
احتمالن به یک بیماری دچار میشی که میخوای هر چیزی رو که یاد گرفتی صرفن برای قشنگی توی حل مسائل ازش استفاده کنی که وقتی بقیه میبینن بگن ووااااااوووو.
احتمالن دچار یک وسواس فکری هستی که همیشه میخوای بهترین راه حل رو ارائه بدی و وقتی راه حل هات یه کوچولو نقص دارن اعصابت به هم میریزه.
میخوای همه اصول رو مو به مو رعایت کنی.
و اکثرن ناموفق.
☃️مهندس :
تمام ویژگی های خوب برنامه نویس رو داره به علاوه تفکر مهندسی.
هیچ موقع هیچ چیزی در ایده ال ترین حالت خودش اتفاق نمیوفته.
اصول مهندسی نسبی هستن.
اینجا ۱ + ۱ همیشه ۲ نمیشه و باید با درک عمیق از مسائل بهترین راه حل رو برای شرایط موجود ارائه کنی.
راه حلی که میدی الزامن راه حل بدون ضرر و هزینه و بی نقص نیست ولی بین راه حل های موجود بهترین بوده.
این راه حل ممکنه فردا تغییر کنه....
تو همیشه همه اصول رو بدون نقص رعایت نمیکنی و بعضی مواقع اون ها رو زیر پا میگذاری ولی با دلیل.
فقط به دلیل خوشکلی از بعضی اصول و پترن ها استفاده نمیکنی و بعضی مواقع سادگی رو به پیچیدگی ایجاد شده توسط اون ها ترجیح میدی.
☃️ کد کپی کن :
اولین مرحله ای که هر کسی احتمالن واردش میشه.
مرحله ای که هر مساله ای که میخوای حل کنی اینور اونور میگردی و سرچ میکنی و خیلی هم به قدرت سرچ خودت افتخار میکنی و کدها و پکیج های مختلف رو از جاهای مختلف برمیداری و میزنی تو سر و کله هم و در نهایت یه غول بی شاخ و دم تحویل میدی که چشمش کف پاشه و خودت هم نمیفهمی چکار کردی.
خیلی ها توی این مرحله میمونن و اتفاقن خیلی هم خودشون رو تحویل میگیرن.
این دسته عاشق استک اورفلو هستن.
اگه چندین ساله اینجا موندی پس داری در جا میزنی بدون تعارف.
☃️برنامه نویس:
مرحله ای که خیلی چیز ها رو درک میکنی و مسائل رو تجزیه تحلیل میکنی و راه حل ارائه میدی .
اگه بخوای سرچ هم کنی خیلی کم گذرت به استک میخوره.
توی این مرحله قدرت حل مساله داری و علاوه بر اون به یک درک خوب از مفاهیم رسیدی و میتونی مسائل رو خرد کنی و برای هر کدوم جدا دنبال راه حل بگردی.
احتمالن به یک بیماری دچار میشی که میخوای هر چیزی رو که یاد گرفتی صرفن برای قشنگی توی حل مسائل ازش استفاده کنی که وقتی بقیه میبینن بگن ووااااااوووو.
احتمالن دچار یک وسواس فکری هستی که همیشه میخوای بهترین راه حل رو ارائه بدی و وقتی راه حل هات یه کوچولو نقص دارن اعصابت به هم میریزه.
میخوای همه اصول رو مو به مو رعایت کنی.
و اکثرن ناموفق.
☃️مهندس :
تمام ویژگی های خوب برنامه نویس رو داره به علاوه تفکر مهندسی.
هیچ موقع هیچ چیزی در ایده ال ترین حالت خودش اتفاق نمیوفته.
اصول مهندسی نسبی هستن.
اینجا ۱ + ۱ همیشه ۲ نمیشه و باید با درک عمیق از مسائل بهترین راه حل رو برای شرایط موجود ارائه کنی.
راه حلی که میدی الزامن راه حل بدون ضرر و هزینه و بی نقص نیست ولی بین راه حل های موجود بهترین بوده.
این راه حل ممکنه فردا تغییر کنه....
تو همیشه همه اصول رو بدون نقص رعایت نمیکنی و بعضی مواقع اون ها رو زیر پا میگذاری ولی با دلیل.
فقط به دلیل خوشکلی از بعضی اصول و پترن ها استفاده نمیکنی و بعضی مواقع سادگی رو به پیچیدگی ایجاد شده توسط اون ها ترجیح میدی.
❄️انواع برنامه نویس
☃️تعاریفی که توی پست قبلی داشتم کاملن نسبی هستن و البته دیدگاه شخصی من هستن و قابل نقد....
☃️نسبی هستن به این صورت که نمیشه مطلقن به یک نفر گفت کدکپی کن یا به یک نفر گفت برنامه نویس یا...
احتمال زیاد هر شخصی یه جایگاهی بین این ها داره
☃️فرایند تبدیل شدن به یه برنامه نویس یا حداقل توی مسیر یه برنامه نویس قرار گرفتن و نزدیک شدن بهش یه فرایند یک ماهه یا دو ماهه نیست...
شاید چندین سال...
☃️فرایند نزدیک شدن به یه مهندس هم فرانید یک ساله یا دو ساله نیست
شاید حداقل 10 سال 20 یا 30 سال (البته نسبیه و عدد مطلقی وجود نداره)
☃️نکته مهم اینه که عجله نکنیم و توهم هم نزنیم.
یکی از بزرگترین ضربه هایی که میتونیم به خودمون بزنیم توهم داناییه.
من خودم در پاره ای از موارد درصدی کدکپی کن هستم و تا درصدی شاید نزدیک به یه برنامه نویس.
مهندس اصلن!!!!
مهم اینه که جایی که هستیم نمونیم و حرکت کنیم.
☃️تعاریفی که توی پست قبلی داشتم کاملن نسبی هستن و البته دیدگاه شخصی من هستن و قابل نقد....
☃️نسبی هستن به این صورت که نمیشه مطلقن به یک نفر گفت کدکپی کن یا به یک نفر گفت برنامه نویس یا...
احتمال زیاد هر شخصی یه جایگاهی بین این ها داره
☃️فرایند تبدیل شدن به یه برنامه نویس یا حداقل توی مسیر یه برنامه نویس قرار گرفتن و نزدیک شدن بهش یه فرایند یک ماهه یا دو ماهه نیست...
شاید چندین سال...
☃️فرایند نزدیک شدن به یه مهندس هم فرانید یک ساله یا دو ساله نیست
شاید حداقل 10 سال 20 یا 30 سال (البته نسبیه و عدد مطلقی وجود نداره)
☃️نکته مهم اینه که عجله نکنیم و توهم هم نزنیم.
یکی از بزرگترین ضربه هایی که میتونیم به خودمون بزنیم توهم داناییه.
من خودم در پاره ای از موارد درصدی کدکپی کن هستم و تا درصدی شاید نزدیک به یه برنامه نویس.
مهندس اصلن!!!!
مهم اینه که جایی که هستیم نمونیم و حرکت کنیم.
❄️Dart - future releases
⭕️ ویژگی هایی که دارت برای کلاس ها در نظر گرفته یه سری هاش خوبه, ولی انقد زیاد شده که باید حواست باشه قاطی نکنی😅😅
⭕️مثلن final class ها که توی جاوا هم بودن خیلی خوبه.
⭕️یا sealed چیز بدی نیست
مثلن کسایی که از پکیج هایی مثل ٍdartz استفاده میکردن احتمالن میتونه واسشون مفید باشه.
⭕️البته سخت نیست و نترسید
چند تا کلمه کلیدی هست که با هم ترکیب میشن و شکل های جور وا جور میسازن.
⭕️ ویژگی هایی که دارت برای کلاس ها در نظر گرفته یه سری هاش خوبه, ولی انقد زیاد شده که باید حواست باشه قاطی نکنی😅😅
⭕️مثلن final class ها که توی جاوا هم بودن خیلی خوبه.
⭕️یا sealed چیز بدی نیست
مثلن کسایی که از پکیج هایی مثل ٍdartz استفاده میکردن احتمالن میتونه واسشون مفید باشه.
⭕️البته سخت نیست و نترسید
چند تا کلمه کلیدی هست که با هم ترکیب میشن و شکل های جور وا جور میسازن.
⭕️این هم توضیحات مختصر پست بالا.
⭕️مثلن interface class ها شبیه interface ها توی جاوا و سی شارپ عمل میکنن و میتونن implement بشن ولی نمیتونن extend بشن.
⭕️یا base class ها که شبیه کلاس های جاوا و سی شارپ هستن و میتونن extend بشن ولی نمیتونن شبیه interface ها implement بشن.
⭕️یا final class ها که ویژگی خوبیه و هیچ اجازه ای برای توسعه کلاس رو بهت نمیده.
⭕️مثلن interface class ها شبیه interface ها توی جاوا و سی شارپ عمل میکنن و میتونن implement بشن ولی نمیتونن extend بشن.
⭕️یا base class ها که شبیه کلاس های جاوا و سی شارپ هستن و میتونن extend بشن ولی نمیتونن شبیه interface ها implement بشن.
⭕️یا final class ها که ویژگی خوبیه و هیچ اجازه ای برای توسعه کلاس رو بهت نمیده.
واژه های تخصصی برنامه نویسی یا رشته نرم افزار یا حتا رشته های دیگه رو ترجمه نکنید.
با اینکار فاجعه درست میکنید.
هرکسی اولین بار این مسخره بازی رو شروع کرده، بد کاری کرده، شما ادامش ندید.
واژه های تخصصی باید توی کل دنیا ثابت باشن و یه زبان مشترک توی کل دنیا باشن.
بگین فانکشن نگین تابع. (روش🤦♂🤦♂)
بگین فاینال نگید نهایی 😱😱😱
و....
اذیت نکنید .
با اینکار فاجعه درست میکنید.
هرکسی اولین بار این مسخره بازی رو شروع کرده، بد کاری کرده، شما ادامش ندید.
واژه های تخصصی باید توی کل دنیا ثابت باشن و یه زبان مشترک توی کل دنیا باشن.
بگین فانکشن نگین تابع. (روش🤦♂🤦♂)
بگین فاینال نگید نهایی 😱😱😱
و....
اذیت نکنید .
❄️ُThree types of equality
☃️خیلی وقت ها نیاز داریم که دو تا ابجکت رو با هم مقایسه کنیم و ببینیم که ایا equal هستن یا نه.
☃️ توی دارت با == توی زبان هایی مثل جاوا و سی شارپ با متد equals و یا زبان های دیگه ....
☃️توی مقاله زیر سه حالت مختلف که میتونیم برای مقایسه object ها در نظر بگیریم رو شرح دادم:
https://purecoder.ir/three-types-of-equality-in-programming-world/
☃️خیلی وقت ها نیاز داریم که دو تا ابجکت رو با هم مقایسه کنیم و ببینیم که ایا equal هستن یا نه.
☃️ توی دارت با == توی زبان هایی مثل جاوا و سی شارپ با متد equals و یا زبان های دیگه ....
☃️توی مقاله زیر سه حالت مختلف که میتونیم برای مقایسه object ها در نظر بگیریم رو شرح دادم:
https://purecoder.ir/three-types-of-equality-in-programming-world/