<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های Ehsan Safari</title><link>https://virgool.ir/feed/@ehsan-safari</link><description>من مهندس نرم‌افزار با تمرکز بر مقیاس‌پذیری و بیش از ۱۰ سال تجربه هستم. علاقه‌مند به اشتراک‌گذاری دانش و کمک به بهبود مهارت‌های برنامه‌نویسان از طریق کانال تلگرام برای ارتقاء سطح مهارت‌ها.</description><language>fa</language><pubDate>2026-11-12 04:44:40</pubDate><image><url>https://files.virgool.ir/upload/users/1176855/avatar/avatar.png</url><title>Ehsan Safari</title><link>https://virgool.ir/@ehsan-safari</link></image><item><title>تفاوت‌های برنامه‌نویس، کدر، توسعه‌دهنده و مهندس نرم‌افزار</title><link>https://virgool.ir/@ehsan-safari/تفاوت-های-برنامه-نویس-کدر-توسعه-دهنده-و-مهندس-نرم-افزار-ndn307k7p04a</link><description>اگه تازه وارد دنیای کدنویسی شدی یا می‌خوای مسیر شغلیت رو بهتر بشناسی، احتمالاً این سؤال برات پیش اومده که برنامه‌نویس، کدر، توسعه‌دهنده و مهندس نرم‌افزار دقیقاً چه فرقی با هم دارن؟۱. کدر (Coder) – کسی که فقط کد می‌زنهکدر کسیه که می‌تونه یه سری کد رو بنویسه تا یه برنامه اجرا بشه. معمولاً دانش عمیقی از معماری نرم‌افزار یا مهندسی نداره و فقط همون کاری که بهش گفته شده رو انجام می‌ده.🔹 مثال از دنیای واقعیفرض کن یه شرکت می‌خواد یه فرم ثبت‌نام ساده برای سایتش داشته باشه. یه کدر می‌تونه بیاد و کد HTML، CSS و JavaScript رو بنویسه تا اون فرم کار کنه، ولی شاید ندونه چجوری باید داده‌ها رو به یه پایگاه داده متصل کنه یا امنیتش رو بالا ببره.🔹 دامنه کارینوشتن کدبدون نیاز به درک عمیق از طراحی سیستم🔹 میزان تخصص مورد نیاز🔸 حداقل دانش برنامه‌نویسی در یه زبان مثل Python، JavaScript یا PHP۲. برنامه‌نویس (Programmer) – کسی که فکر می‌کنه و کد می‌زنهبرنامه‌نویس فقط یه کدر ساده نیست. اون علاوه بر نوشتن کد، می‌تونه مشکلات رو حل کنه و بهینه‌ترین راه‌ها رو برای پیاده‌سازی یه الگوریتم یا ویژگی پیدا کنه. یه برنامه‌نویس معمولاً کدنویسی تمیز و بهینه انجام می‌ده.🔹 مثال از دنیای واقعییه فروشگاه اینترنتی قراره یه الگوریتم پیشنهاد محصول براش پیاده بشه. یه برنامه‌نویس می‌تونه بررسی کنه که چه الگوریتمی بهترین عملکرد رو داره و چجوری باید توی کد اجرا بشه.🔹 دامنه کارینوشتن کدحل مشکلات الگوریتمیبهینه‌سازی کد🔹 میزان تخصص مورد نیاز🔸 دانش الگوریتم و ساختمان داده‌ها🔸 آشنایی با طراحی الگوهای برنامه‌نویسی۳. توسعه‌دهنده (Developer) – کسی که یه نرم‌افزار رو از صفر تا صد می‌سازهتوسعه‌دهنده کسیه که از یه برنامه‌نویس فراتر می‌ره. اون علاوه بر اینکه کد می‌زنه، درک خوبی از پایگاه داده‌ها، APIها، فرایندهای توسعه نرم‌افزار و گاهی هم UI/UX داره.🔹 مثال از دنیای واقعیفرض کن یه استارتاپ می‌خواد یه اپلیکیشن موبایل درست کنه. یه توسعه‌دهنده می‌تونه بک‌اند (مثلاً با Node.js و PostgreSQL) و فرانت‌اند (مثلاً با  React Native یا Flutter) رو بسازه و به یه محصول واقعی تبدیل کنه.🔹 دامنه کاریتوسعه کامل یک نرم‌افزارارتباط با پایگاه دادهاستفاده از ابزارهای DevOps (مثل Docker، CI/CD)کار با APIها و فریمورک‌ها🔹 میزان تخصص مورد نیاز🔸 درک قوی از توسعه بک‌اند، فرانت‌اند یا هردو🔸 آشنایی با پایگاه داده‌ها🔸 استفاده از ابزارهای مدرن توسعه۴. مهندس نرم‌افزار (Software Engineer) – کسی که معماری سیستم رو می‌سازهمهندس نرم‌افزار کسیه که علاوه بر توسعه، روی معماری، مقیاس‌پذیری، امنیت، عملکرد، و بهترین روش‌های توسعه نرم‌افزار تمرکز داره. این افراد معمولاً در پروژه‌های بزرگ و تیم‌های حرفه‌ای حضور دارن.🔹 مثال از دنیای واقعیفرض کن یه شبکه اجتماعی مثل اینستاگرام می‌خواد قابلیت جدیدی مثل استوری رو اضافه کنه. یه مهندس نرم‌افزار بررسی می‌کنه که چه دیتابیس‌هایی استفاده بشن، چه معماری‌ای مناسب باشه، چجوری مقیاس‌پذیری رو مدیریت کنه و امنیت رو افزایش بده.🔹 دامنه کاریطراحی معماری سیستم‌هامقیاس‌پذیری نرم‌افزارهاامنیت و بهینه‌سازی عملکردتصمیم‌گیری درباره تکنولوژی‌های مناسب🔹 میزان تخصص مورد نیاز🔸 درک عمیق از معماری نرم‌افزار🔸 تجربه کار با سیستم‌های توزیع‌شده و مقیاس‌پذیر🔸 آشنایی با مفاهیم DevOps و Cloud Computingجمع‌بندی و مسیر پیشرفتاگه تازه شروع کردی، احتمالاً اول کدر هستی، بعد می‌شی برنامه‌نویس، بعد توسعه‌دهنده و در نهایت می‌تونی یه مهندس نرم‌افزار بشی.پس از کجا شروع کنیم؟✅ با یه زبان مثل Python یا JavaScript شروع کن✅ الگوریتم‌ها و ساختمان داده‌ها رو یاد بگیر✅ یاد بگیر چطور پروژه‌های واقعی بسازی✅ به معماری نرم‌افزار و مقیاس‌پذیری فکر کندر مقالات بعدی، درباره کشف علایق و استعدادهای خودت و مسیر شغلی صحبت خواهیم کرد.نمی‌خوام این مسیر رو تنهایی و در تاریکی پیش ببری. قراره با هم یه چراغ راهنما داشته باشیم تا بدونی چی دوست داری، توی چی استعداد داری، و چطور می‌تونی به یه مسیر شغلی جذاب برسی. پس همراه باش، چون قراره کلی نکته کاربردی و آموزشی بگیم! 🚀@BeyondTheKeyboard فراتر از کیبورد</description><category>Ehsan Safari</category><author>Ehsan Safari</author><pubDate>Fri, 21 Feb 2025 10:16:47 +0330</pubDate></item><item><title>تفاوت مهندسی نرم‌افزار با برنامه نویس</title><link>https://virgool.ir/@ehsan-safari/تفاوت-مهندسی-نرم-افزار-با-برنامه-نویس-b9819ynexiij</link><description>برنامه‌نویسی و مهندسی نرم‌افزار از دور شاید شبیه هم به نظر بیان، ولی وقتی واردشون بشی، می‌فهمی که زمین تا آسمون فرق دارن.برنامه‌نویسی چیه؟برنامه‌نویسی یعنی بنشینی و کد بزنی، یه چیزی که کار کنه بسازی، حالا می‌خواد یه اسکریپت کوچیک باشه یا یه اپلیکیشن. تمرکز اصلی روی نوشتن کد و حل مسئله‌اس. مثلاً یه برنامه‌نویس می‌گه:&#34;باید یه فرم لاگین بسازم که وقتی یوزر رمز درست وارد کرد، بفرستش داخل.&#34;بعد می‌ره توی کد و سریع یه فرم می‌زنه، دیتابیس وصل می‌کنه، تموم!مهندسی نرم‌افزار چیه؟اما یه مهندس نرم‌افزار قبل از اینکه دست به کد بشه، کلی سوال می‌پرسه:این لاگین امنه؟اگه کاربر بخواد با گوگل وارد بشه چی؟دیتابیس قراره چند میلیون کاربر داشته باشه، جواب می‌ده؟معماری نرم‌افزار چطوره؟چطور تست بگیریم که بعداً مشکل نخوریم؟یعنی فقط کد زدن نیست، فکر کردن به آینده و طراحی یه سیستم که هم مقیاس‌پذیر باشه، هم بشه راحت روش کار کرد.تفاوت اصلی چیه؟یه برنامه‌نویس مثل کسیه که یه دوچرخه می‌سازه، تا وقتی کار کنه اوکیه. اما یه مهندس نرم‌افزار مثل کسیه که یه ماشین طراحی می‌کنه، به امنیت، کارایی، مصرف سوخت، و نگهداری فکر می‌کنه.برنامه‌نویسی یه مهارته، ولی مهندسی نرم‌افزار یه طرز فکره!Ehsan Safari | @BeyondTheKeyboard فراتز از کیبورد</description><category>Ehsan Safari</category><author>Ehsan Safari</author><pubDate>Mon, 17 Feb 2025 10:56:29 +0330</pubDate></item></channel></rss>