
برنامهنویسی و مهندسی نرمافزار از دور شاید شبیه هم به نظر بیان، ولی وقتی واردشون بشی، میفهمی که زمین تا آسمون فرق دارن.
برنامهنویسی چیه؟
برنامهنویسی یعنی بنشینی و کد بزنی، یه چیزی که کار کنه بسازی، حالا میخواد یه اسکریپت کوچیک باشه یا یه اپلیکیشن. تمرکز اصلی روی نوشتن کد و حل مسئلهاس. مثلاً یه برنامهنویس میگه:
"باید یه فرم لاگین بسازم که وقتی یوزر رمز درست وارد کرد، بفرستش داخل."
بعد میره توی کد و سریع یه فرم میزنه، دیتابیس وصل میکنه، تموم!
مهندسی نرمافزار چیه؟
اما یه مهندس نرمافزار قبل از اینکه دست به کد بشه، کلی سوال میپرسه:
این لاگین امنه؟
اگه کاربر بخواد با گوگل وارد بشه چی؟
دیتابیس قراره چند میلیون کاربر داشته باشه، جواب میده؟
معماری نرمافزار چطوره؟
چطور تست بگیریم که بعداً مشکل نخوریم؟
یعنی فقط کد زدن نیست، فکر کردن به آینده و طراحی یه سیستم که هم مقیاسپذیر باشه، هم بشه راحت روش کار کرد.
تفاوت اصلی چیه؟
یه برنامهنویس مثل کسیه که یه دوچرخه میسازه، تا وقتی کار کنه اوکیه. اما یه مهندس نرمافزار مثل کسیه که یه ماشین طراحی میکنه، به امنیت، کارایی، مصرف سوخت، و نگهداری فکر میکنه.
برنامهنویسی یه مهارته، ولی مهندسی نرمافزار یه طرز فکره!
Ehsan Safari | @BeyondTheKeyboard فراتز از کیبورد