مازند آموز
جستجو برای:
سبد خرید 0
  • خانه
  • دوره های آموزشی و محصولات
  • تماس با ما
مازند آموز
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]

داده های شخصی شما برای پشتیبانی از تجربه شما در این وب سایت، برای مدیریت دسترسی به حساب کاربری شما و برای اهداف دیگری که در privacy policy ما شرح داده می شود مورد استفاده قرار می گیرد.

مازند آموز
  • خانه
  • دوره های آموزشی و محصولات
  • تماس با ما
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

مازند آموز > مقالات > برنامه نویسی > تفاوت برنامه نویسی و کد نویسی

تفاوت برنامه نویسی و کد نویسی

27 آبان 1404
ارسال شده توسط engrmh
برنامه نویسی، مهارت

بیا بشینیم یه قهوه‌ای بخوریم، کمی هم حرف بزنیم؛ می‌خوام برات توضیح بدم چرا «کدنویس» بودن با «برنامه‌نویس» بودن، مثلِ فرق «نقاشِ خونه‌کشی» و «معمارِ ساختمان»ه. هر دو رنگ می‌زنن، ولی یه‌تاش فقط دیوارِ آماده رو رنگ می‌کنه، اون یکی قبل از هر چیزی نقشه می‌کِشه، بار محاسبه می‌کنه، می‌گه کجا پنجره لازم داری، کجا نباید دیوار بکشی. بریم ببینیم توی دنیای کد هم این فرق دقیقاً کجاست.


۱) کدنویسی (Coding) = می‌نویسم تا «کار کنه»

  • هدفِ کوتاه‌مدت: «همین حالا اجرا شه، خروجی بده.»
  • تمرکز روی سینتکس: کجا پرانتز بذارم، چندتا حلقه بنویسم، چه متغیری تعریف کنم.
  • مثال: یه صفحه‌ی HTML می‌سازی، یه دکمه می‌ذاری، با جاوااسکریپت می‌گی «وقتی کلیک شد یه آلرت بده». تمام!
  • ابزار معمول: ادیتور + گوگل + کپی‌-پیست سریع.
  • نتیجه: معمولاً کد کوتاه، سریع آماده، ولی اگر فردا بخوای یه قابلیت اضافه کنی، یا یه باگ پیدا بشه، ممکنه کلِ فایل رو به‌هم بریزی.

۲) برنامه‌نویسی (Programming) = می‌سازم تا «درست کار کنه، درست نگه‌داری بشه، درست بزرگ بشه»

  • هدفِ میان‌مدت و بلندمدت: «حل مسئله» درست و حسابی.
  • تمرکز روی «طراحی» قبل از نوشتن: تحلیل نیازمندی‌ها، انتخاب الگوریتم مناسب، طراحی ساختار داده، لایه‌بندی کد، تست‌پذیری.
  • مثال: همون صفحه‌ی بالا رو در نظر بگیر؛ ولی حالا باید:
    – لاگین کاربر رو چک کنه،
    – با سرور ارتباط ایمن (HTTPS) داشته باشه،
    – ارورهاش مدیریت بشن،
    – کدت تست واحد داشته باشه،
    – اگر فردا ۱۰۰ برابر کاربر اومد، سرور بالا نیاد!
  • ابزار: دیزاین‌پترن‌ها، نسخه‌گذاری (Git)، CI/CD، تست، Code Review، مستند‌سازی.
  • نتیجه: کد خوانا، قابلِ توسعه، کم‌باگ، ولی زمان اولیه‌ی توسعه‌اش بیشترِ.

۳) یه شِبه‌کدِ کوچیک ببین تفاوت رو

فرض کن باید «میانگین اعداد» یه آرایه رو حساب کنیم.

کدنویسِ سریع:

nums = [4, 7, 1, 9]
print(sum(nums)/len(nums))

خب کار کرد؛ تمام. اما اگر آرایه خالی باشه؟ اگر اعضاش رشته باشن؟ اگر تعداد elementها خیلی زیاد باشه و sum نتونه باهاشون کنار بیاد؟ هیچ‌کدومو چک نکردیم.

برنامه‌نویسِ حسابی:

from typing import List

def average(nums: List[float]) -> float:
    """Return arithmetic mean of nums; raise ValueError on empty input."""
    if not nums:
        raise ValueError("Input list must not be empty")
    return sum(nums) / len(nums)

حالا unit-test هم می‌نویسی، ورودی غیرمجاز می‌دی می‌بینی استثنا پرتاب می‌شه، بعدش می‌ری سراغ بهینه‌سازی اگر لازم شد.


۴) یه تستِ کوچیکِ ذهنی

به کدی که تازه نوشتی نگاه کن، بپرس:
۱) اگر فردا یه نفر دیگه (یا خودِ تو) خواست یه قابلیت اضافه کنه، چندتا جا باید دست ببرد؟
۲) اگر دیتا ۱۰۰ برابر شد، بازم همین سرعت رو داره؟
۳) اگر یه خطا اتفاق افتاد، کاربر یه پیامِ «رفرش کن» می‌بینه یا یه خطای مفید؟
اگر جواب‌هات «خیلی»، «نه» و «رفرش کن» بود، داری «کدنویسی» می‌کنی؛ اگر «کم»، «اره» و «پیام مفید» بود، داری «برنامه‌نویسی» می‌کنی.


۵) پس چه جوری از کدنویس به برنامه‌نویس ارتقا پیدا کنیم؟

۱) قبل از نوشتن، ۱۰ دقیقه فکر کن و بکِش روی کاغذ:
ورودی چیه؟ خروجی چیه؟ چه حالتی می‌تونه خراب بشه؟
۲) ساختار داده مناسب انتخاب کن:
قرار نیست همه‌چیو بندازی توی یه لیست! گاهی یه دیکشنری یا یه کلاس کوچیک کلی از کدِ اضافی کم می‌کنه.
۳) الگوریتم رو در حد نیاز بهینه کن:
نه اینکه همیشه سریع‌ترین باشه؛ ولی بدون اگر دیتا بزرگ شد، کجا می‌خواد قوز بالا قوز بشه.
۴) تست بنویس:
حتی یه تابع ساده رو با دو تا ورودی مرزی چک کن؛ مطمئن باش ۸۰٪ باگ‌ها همونجا گیر می‌افتن.
۵) کدت رو «بویِ بد» نده (Code Smell):
تابع ۲۰۰ خطی؟ متغیری که اسمش x1, x2 شده؟ وقتِ ریفکتورِ.
۶) مستندسازی و گیت‌هاب:
یه README کوچیک، یه commit منظم؛ همینا باعث می‌شه بگی «من برنامه‌نویسم» نه «من کدنویسم».


خلاصه‌ی یک‌خطی

کدنویس = می‌نویسم تا بچرخه؛ برنامه‌نویس = می‌سازم تا بچرخه، بمونه، بزرگ بشه، بفهمه، نترکه!

برچسب ها: برنامه نویسیکد نویسیمهارت
قبلی زبان های برنامه نویسی
بعدی الگوریتم، تفکر منطقی و حل مسئله

پست های مرتبط

27 آبان 1404

برنامه نویسی ماژولار و غیر ماژولار در زبان JavaScript

engrmh
ادامه مطلب

27 آبان 1404

برنامه نویسی ماژولار و غیر ماژولار

engrmh
ادامه مطلب

27 آبان 1404

زبان های برنامه نویسی Embedded

engrmh
ادامه مطلب

27 آبان 1404

الگوریتم، تفکر منطقی و حل مسئله

engrmh
ادامه مطلب

27 آبان 1404

زبان های برنامه نویسی

engrmh
ادامه مطلب
جستجو برای:
پشتیبانی
دسته‌ها
  • برنامه نویسی
  • فریلنسر
  • مهارت
برچسب‌ها
الگوریتم برنامه نویسی تفکر منطقی حل مسئله دسکتاپ مهارت موبایل وب کد نویسی

مازند آموز
آموزش با طعم شیرین
دسترسی سریع
  • خانه
  • دوره ها
  • مقالات
  • تماس با ما
خبرنامه

چیزی را از دست ندهید، ثبت نام کنید و در مورد شرکت ما مطلع باشید.

© 1404. تمامی حقوق برای مازندافزار پارس محفوظ است.

فرانت اند

  • 5 دوره

بک اند

  • 1 دوره

برنامه نویسی

  • 6 نوشته

فریلنسر

  • 1 نوشته

مهارت

  • 5 نوشته
برای مشاهده خریدهای خود باید وارد حساب کاربری خود شوید
Facebook Twitter Youtube Instagram Whatsapp