FaQ of Programming
578 subscribers
41 photos
7 videos
20 files
358 links
در این کانال پیشنهادات افراد باتجربه در حوزه برنامه نویسی رو قرار میدهیم!

مطالب تخصصی تر را در این گروه قرار میدهیم :
@ProgrammingForEveryHumans
Download Telegram
لینک کتاب رسمی آموزش زبان rust :
https://doc.rust-lang.org/stable/book/

این هم دوره ای که توی یوتیوب بر اساس همین کتاب زبان rust رو تدریس میکنه
https://youtube.com/playlist?list=PLai5B987bZ9CoVR-QEIN9foz4QCJ0H2Y8

#rust
👍3🌚1
چندتا ترفند یاد بگیری بد نیست :

پشت string هایی که مینویسی
$@
قرار بده تا خیلی از کدهات خلاصه بشه ( دقیقا به همین ترتیب، جا به جا بنویسی ارور میده )!!
مثال :
string test = $@"";

خب اول بگم $ چیکار میکنه؟! میتونی متغیر رو خیلی خواناتر توی string خودت قرار بدی! مثلا :
string name = Console.ReadLine();
string test = $"hello {     name}";

داخل curly bracket هرچقدر فاصله بزاری تاثیری نداره، ولی بیرون curly bracket داخل string قطعا تاثیر گذاره!!!

امیدوارم سرت درد نیومده باشه

خب حالا میرسیم به @ که خیلی کاربردی تر از قبلیه!! حالا میگم چرا:)

دوتا از فایده های @ که میدونم رو میگم :

اول که باعث میشه توی absolute path های فایل ویندوز به مشکل نخوری!! مثلا ببین :
string test = $@"C:\windows\system";
اگر توی کد بالا @ رو برداری خطا میده و این به خاطر اینه که \ رو به عنوان کاراکتر کنترلی میشناسه و بعدش باید یه کاراکتر های خاص بیاد ولی وقتی @ میزاری این خطا رفع میشه!!

خب هنوز دومی مونده، صبر کن و یه اسپرین بنداز بالا تا سردردت بهتر بشه:)

دومین فایده @ پشت string اینه که میتونی یک string رو تقسیم کنی و توی چندین خط بنویسی، در حالی که string واحد داری ( اصلی ترین جا توی نوشتن sql query بدردت میخوره!!) مثلا :

string test = $@"select * from [table]
where [column] = {someData}";
قبلا برنامه نویسا باید کلی
""+
""+
.
.
.
مینوشتن، ولی خب @ اومد و کار برنامه نویسا رو راحت تر کرد:)))

مورد سومی که میخوام بگم تقریبا همه جا کاربردی هست، و شاید در نگاه اول تاثیرگذار نباشه ولی به خودت میای و میفهمی داری نصف وقتت رو ازش استفاده میکنی:)

برای اینکه به اول یه کلمه یا اخر کلمه بری میتونی دکمه Ctrl رو نگه داری! اره، میدونم خیلی ساده هست ولی کاربردی تر از اونیه که فکرش رو بکنی ( چمیدونم مثلا داری نام متغیر یا فایل رو تغییر میدی و یا توی مرورگرت یه کلمه رو اشتباه نوشتی و...)

مورد چهارم خلاصه بگم :
میتونی توی سی شارپ توابع تک خطی داشته باشی، حالا چه بدردت میخوره، خب معلومه! کدت رو خواناتر میکنه!!! مثلا :
if(data != null)
{
//codes
}
خواناتر هست یا
private bool CheckNotNull(data) => data != null;
.
.
if(CheckNotNull())
{
//codes
}

یادت باشه مهم تر از این که کد قابل اجرا بنویسی، باید کد maintainable یا قابل توسعه و خوانا بنویسی!! یعنی بعد یه ماه برگشتی سر کدت چشمت از حدقه نزنه بیرون :))

یه نام درست و حسابی برای متغیر، توابع، کلاس ها، اینترفیس ها و... انتخاب کن، شاید الان متوجه نشی ولی قطعا بعدا متوجه اهمیتش میشی!!

به جای اینکه زیر کدت یه کامنت برای توضیح کدت قرار بدی، کدت رو خواناتر کن و کامنت رو پاک کن

چمیدونم، یه خرده معماری و design pattern بخون، کدهات رو بیشتر دسته بندی کن، کار با Version Control System و یا docker رو یاد بگیر، سمت لینوکس برو

خلاصه اینکه یکجا نشین! یه عمر اشتباه کردن بهتر از نشستن و هیچ کاری نکردن هست!!

میدونم، شاید به حرفام بخندی، اما خب به وقتش میفهمی چقدر مهم هستن!

همیشه یادت باشه :
" اشک هایی که به خاطر باگ امروز ریختی، عرق هایی هستن که برای نوشتن کد تمیز نریختی "

#advice
👍3
عزیزان، Rust یاد بگیرید. مدت‌هاست دارم اینو میگم.

اصلا لازم نیست ازش خوش‌تون بیاد
یا حتی ازش استفاده کنید. حتی در حد یک خط
چُسِ خوش‌بویی هم نیست...
ولی یاد بگیرینش!

دلیل اینکه چنین حرفی میزنم، همون دلیلی هست که میگم همه باید C بلد باشن. یک شیفت در نرم افزار داره اتفاق میفته!

@DevTwitter | <Amirreza Gh/>
2
عزیزان، دو نکته:
۱. اگر تازه در حال یادگیری برنامه‌نویسی هستید و تمرکز‌تون روی یک زبان یا تکنولوژی خاصی هست، لازم نیست روند یادگیری رو متوقف کنید که یک زبان برنامه نویسی دیگه رو یاد بگیرید. همون مسیر خودتون رو ادامه بدید و جایی که احساس کردید به هدف‌تون از یادگیری رسیدید، می‌تونید در ادامه‌ی مسیر یادگیری زبان‌های دیگه رو امتحان کنید.
۲. محبوبیت Rust در سه سال اخیر به شدت افزایش پیدا کرده و پیشنهادم به برنامه‌نویس‌ها و تسترهای سیستمی اینه که حتی به صورت تفریحی هم که شده این زبان رو یاد بگیرند.

@DevTwitter | <Kasra M./>
اگر میخواید برنامه نویس وب بشید، نیازی به خرج کردن میلیون ها تومن برای دوره های مختلف نیست
از سایت ها و ابزار های زیر استفاده کنید :)

سایت های آموزش وب دولوپمنت
1. W3schools.
2. Freecodecamp
3. TheOdinProject
4. Scrimba
5. Tutorialspoint
6. Geeks for Geeks.
7. Studytonight
8. Solo Learn
9. Guru99

چنل های یوتیوب برای وب دولوپر ها
1. Code with harry
2. Taversy media
3. Freecodecamp
4. Clever programmer
5. The new boston
6. Telusko
7. Yahoobaba

نرم افزار های آموزشی
1. Solo learn
2. W3schools
3. Mimo
4. Grasshopper
5. Programminghub

تمرین کد زدن
1. Icodethis
2. Frontend Mentor
3. Hacker Rank
4. Top coder
5. Codechef
6. Hacker Earth
7. Coder byte

@DevTwitter
جنبش نرم‌افزار آزاد
Abrha
تو این قسمت از پادکست ابرها، در مورد زندگی حرفه‌ای ریچارد استالمن، برنامه‌نویس بزرگ آمریکایی، صحبت کردیم و از روند رسیدن استالمن به جنبش نرم‌افزار آزاد گفتیم.

🎧پادکست ابرها
🔹قسمت پنجم: بنیان‌گذار جنبش نرم‌افزار آزاد🔹

🔈 برای این‌که پادکست‌های بعدی ما رو بشنوید، تو کانال تلگرام ابرها عضو بشید.
@abrhacom
@abrhacom

#پادکست
1
Forwarded from lab (/ Zanyar)
با الگوریتم فشرده سازی Zstd آشنا هستید؟

زد‌اس‌تی‌دی یک الگوریتم فشرده سازی داده بدون تلفات است که داده ها را با یافتن و حذف اطلاعات اضافی درون داده ها فشرده می کند. برای فشرده سازی انواع مختلف داده ها از جمله متن، تصویر، فایل های صوتی و تصویری استفاده می شود و به گونه ای طراحی شده است که نسبت تراکم بالایی را در عین حفظ سرعت رفع فشرده سازی سریع فراهم می کند و برای استفاده در طیف گسترده ای از برنامه ها از جمله ذخیره سازی و انتقال داده ها مناسب است.
این الگوریتم انقدر خوبه که احتمالا در آینده‌ی نزدیک هیچ رقیبی نخواهد داشت!

- #SlashZanyar | Join us
1
Forwarded from Allah Code
"هر احمقی می‌تواند کدی بنویسد که ماشین بفهمد. برنامه‌نویسان خوب، کدی می‌نویسند که انسان‌ها بفهمند."
- مارتین فاولر-

"بهترین کد هیچ کدی نیست." - جف آتوود


🔹23 فروردین 1402🔹

🔥«@graycubeteam»🔥
👍5
CodeNaline S2E4 - jadi
torham
کدنالین، قسمت چهارم، فصل دوم، جادی 🧠.

این قسمت رو با جادی میرمیرانی، برنامه‌نویس، بلاگر، پادکستر، یوتیوبر، لینوکسی و ... پیش میبریم =).

جادی : @jadivarlog


🧠 @CodeNaline
💬 @TorhamDevCH
5🌚1
FaQ of Programming
torham – CodeNaline S2E4 - jadi
02:42 - شروع
03:01 - معرفی
04:48 - چیشد جادی، جادی شد؟
08:26 - چجوری خودتو پر انگیزه نگه داشتی؟
11:07 - یه گیک چرا باید از سرویسای گوگل استفاده کنه اصلا؟
13:54 - دانشگاه رفتن منطقیه؟
17:45 - آموزشِ آموزش دادنو، آموزش نمیدی؟
18:59 - نظرت درباره شبکه جهانی پایتون؟
21:36 - خیلیا میخوان جادی بشن ولی سخته
23:51 - ((ایلیان ماسک))
24:06 - چجوری کارمند شادی باشیم
27:44 - تعادل بین برنامه نویسی و استراحت
31:31 - سوئیج کردن بین استک های شغلی
34:53 - وابسته بودن به یه فریمورک و ابزار خوبه؟
37:38 - بیکار شدن بقیه به خاطر هوش مصنوعی من، عذاب وجدان میخواد؟
39:06 - اگه برنامه نویس نبودی چیکاره میشدی؟
40:20 - خودت سوالی نداری که خودت جواب بدی؟
41:05 - خدافظی
42:13 - برکه از شماعی زاده

@newpacks
1
Forwarded from DeepMind AI Expert
اینم برای کسایی که قصد دارند از پایه خلاصه و مفید نکات زبان Rust یاد بگیرند.

https://github.com/plabayo/learn-rust-101

#مبتدی #برنامه_نویسی

🔸 مطالب بیشتر 👇👇

@ai_pythonic
https://t.me/graycubeteam/104

💢what is Ethical hacking

💢هک اخلاقی چیست ؟

داخل این ویس درباره موضوعات هک اخلاقی،هکر اخلاقی، اهمیت این دو موضوع و دانش هایی که باید یک هکر اخلاقی داشته باشد صحبت می‌کنیم

👤 گوینده : علیرضا الهیاریان

🔻 لطفا با انتشار این ویس برای دوستانتان به بزرگ تر شدن خانواده مکعب خاکستری کمک کنید
و حتما نظر های خودتون رو زیر این پست داخل
بخش کامنت ها بگید و در بهتر شدن محتوا ها به ما کمک کنید

🔥«@graycubeteam»🔥

#hack
https://t.me/AI_Pythonic/50

مایکروسافت روی گیت‌هاب یک مجموعه آموزش رایگان برای توسعه‌دهندگان وب تازه‌کار داره.

https://microsoft.github.io/Web-Dev-For-Beginners/#/
🔸 مطالب بیشتر 👇👇

@ai_pythonic

#web
👍1
خدمت دوستان عزیزی که از من درباره «معرفی کردن یک منبع آموزشی خوب برای X » سوال میکنید:
مستندات رسمی سایت هر زبان یا ابزار، یکی از بهترین قدم‌ها برای شروع هست. اگر ابزاری مستندات رسمی خوبی نداشت، به احتمال زیاد ارزش یاد گرفتن نداره. در قدم بعد هم میتونید از یوتوب استفاده کنید.

@DevTwitter | <Alireza Gh/>
#بدرد

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

برای اینکه شما یک مهندس نرم افزار باشید راه طولانی ای رو پیشرو دارید و نیازه که یکسری توانایی فنی داشته باشید که باهم توی این پست بررسیشون میکنیم

- Programming Language
خب در وهله اول شما باید با زبان های برنامه نویسی اشنا باشید و یکیشون رو خوب بلد باشید و بتونید باهاش برنامه نویسید، این که واضحه…

از سمتی مفاهیم کلی برنامه نویسی رو هم بلد باشید بدور از یک زبان، در واقع برنامه نویسی رو بلد باشید نه یک زبان برنامه نویسی رو

- Software development
یکی از کارهای یک مهندس نرم افزار، توسعه یک نرم افزاره که یک فلوی طولانی از تحلیل تا نگهداری یک پروژه هستش، که باید بعنوان مهندس نرم افزار مسلط باشید به این قضیه.

- Maintaining a project
نگهداری یک پروژه و برنامه ریزی برای نگهداری اون از بالا اوردن اون پروژه خیلی مهم تره، شما باید بتونید یک پروژه رو بعد از توسعه نگه‌داری کنید.

- Testing
بعنوان یک مهندس نرم افزار، شما باید بتونید نرم افزاری که نوشتید رو تست کنید که ببینید درست کار میکنه یا نه و edge case هاش رو هم در نظر بگیرید و حالت های خاص رو هم مورد تست قرار بدید.
و البته باید بدونید که تست نوشتن خودش یک trade off هستش و باید ارزشش رو بسنجید.

- Database
خب شما تقریبا توی اکثر پروژه هاتون با دیتابیس ها و داده ها سر و کار دارید، پس باید دیتابیس هارو بشناسید، بتونید باهاشون کار کنید و ازشون توی پروژه هاتون بدرستی و در بهینه ترین حالت کار کنید، پس دیتابیسو فراموش نکنید.

- Algorithm & Data structure
یکی از مهم ترین هارد اسکیل هایی که باید بدونید الگوریتم و ساختمان داده هستش، تفکر الگوریتمی به تحلیل های شما کمک میکنه و باعث میشه که efficient تر کد بزنید.

- Network
شما باید بدونید که سیستمی که دارید توسعه میدید چطور کار میکنه، و احتمالا چون اکثر پروژه هاتون روی یکسری شبکه دارن بالا میان، بهتره که نتورک رو بدونید تا بهتون کمک کنه در روند توسعه نرم افزار.

- Problem solving
یک مهندس نرم افزار تقریبا بیشتر از هر چیزی با یکسری مسائل سر و کار داره، پس باید توانایی حل این مسائل رو هم داشته باشه، برای این مورد شما باید تمرین کنید، الگوریتم رو یاد بگیرید و خودتون رو در شرایط قرار بدید و به خودتون تمرین بدید.

- Debugging
علاوه بر اینکه شما باید ابزارهای دیباگ رو بدونید، نیازه که فلوی دیباگ رو هم یاد بگیرید که چطور باید یک باگ رو پیدا کنید و چطور اون رو فیکس کنید، پیدا کردن بعضی باگ ها اونطور که فکر میکنید ساده نیستن و باید شما بتونید بدرستی اون هارو در سریعترین زمان ممکن پیدا کنید.

- Software architecture
اگه شما مهندس نرم افزار هستید، باید بدونید معماری نرم افزارتون به چه صورتی بهینه تر خواهد بود، پس شما تا حدودی باید معماری نرم افزار هم بلد باشید
بدونید که چطور قطعات نرم افزارتون کنار هم قرار میگیرن و با چه معماری ای اگه کنار هم کار کنن بازدهی بهتری دارن.
البته بازدهی بیشتر منظور روند توسعه پذیری نرم افزاره

- Programming best practices
شما یکسری پارادایم و یکسری بست پرکتیس هم نیازه بدونید که چطور بهتر برنامتون رو بنویسید، مثل یکسری قوانین بابت کلین کد، دیزاین پترن ها، Object Design،  SOLID و...
برای تقویت این اسکیل ها کتاب های زیادی هستن که میتونید مطالعه کنید

- Documenting
مهندس نرم‌افزار معمولا ازش داکیومنت خواسته میشه، که چطور محصولش داره کار میکنه و اون داکیومنت میتونه به تیم محصول معمولا پرزنت بشه، اگه شما توانایی نوشتن داکیومنت ندارید چه برای بقیه برنامه نویس ها چه برای تیم محصول، بهتره برید دنبالش و این اسکیل رو یاد بگیرید.

- Analyzing Tasks
احتمالا شما بعنوان مهندس نرم افزار هرروز دارید با یکسری تسک سر و کله میزنید، پس نیازه که بتونید این تسک هارو تحلیل کنید، اون هارو خرد کنید به قطعات کوچک تر و اون هارو حل کنید، پس اینکه بتونید تسک هارو هم آنالیز کنید یک اسکیل خیلی ضروری و مهمه.

- Technology choosing
اینکه بعنوان یک مهندس نرم افزار تکنولوژی های مختلف رو بشناسید و در شرایط مختلف بتونید تصمیم بگیرید که استفاده از چه تکنولوژی ای به پروژه کمک میکنه هم خیلی مهمه!

@DevTwitter | <Reza/>
💯1