من اوایل فکر می کردم که برنامه نویسی، همان کُدنویسی است و مدتی طول کشید تا متوجه تفاوت های برنامه نویسی و کدنویسی شوم و بفهمم که واقعاْ معنی دو اصطلاح برنامه نویسی (programming) و کدنویسی (coding) چیست و هر یک از این دو حوزه، شامل چه مواردی می شوند. مطمئنم برای بسیاری از افرادی که به تازگی وارد حوزه تکنولوژی می شوند، این مساله گیج کننده است.
در این مطلب، اساسی ترین تفاوت های کدنویسی و برنامه نویسی را برای شما شرح می دهم و به شما می گویم که چطور این دو موضوع با هم همکاری می کنند تا اپ ها و سایت ها توسعه پیدا کنند.
پس بیایید با هم ابتدا معنی این دو اصطلاح را بررسی کنیم و ببینیم که حرفه ای ها، چطور از این کلمات استفاده می کنند.
کدنویسی یا coding چیست؟
احتمالا با دوره های آموزشی، کلاس های فشرده و مقالاتی روبرو شده اید که همه در مورد کدنویسی صحبت می کنند. اما دلیل این همه تاکید روی این اصطلاح چیست؟
دلیل این مساله این است که خودِ عمل کدنویسی، کاری است که باعث می شود ما بتوانیم همه کارهای جذابی را که هر روز انجام می دهیم، عملی کنیم. به ما اجازه می دهد از اپ های موبایل استفاده کنیم، با نرم افزارها و سیستم های عامل مختلف کار کنیم و حتی بازی های مورد علاقه ی خود را انجام دهیم یا به وبسایت های مختلف سر بزنیم، مثل همین وبسایت دیتایاد که الان در آن حضور دارید. همه ی این ها، با استفاده از کدنویسی ممکن شده است.
پس… معنای کدنویسی به زبان ساده چیست؟
می توان کدنویسی را به این شکل تعریف کرد: عملِ ترجمه کردن دستورالعمل ها برای کامپیوتر، از زبان انسانی به یک زبان دیگر که ماشین بتواند آن را درک کند. این کدها به کامپیوتر می گویند که چطور رفتار کند و چه کارهایی را انجام دهد.
اگر می خواهید کدنویس شوید، باید درکی ابتدایی در مورد زبان(های) برنامه نویسی داشته باشید. منظور از زبان های برنامه نویسی، مواردی مثل پایتون، جاوا، Go (گو)، PHP یا جاوا اسکریپت (JavaScript) است.
برنامه نویسی یا Programming چیست؟
احتمالا شنیده اید که برخی از افراد می گویند «من برنامه نویس هستم». برخی از افراد که خود را برنامه نویس می نامند، درک درستی از آن دارند، اما برخی دیگر واقعا معنای آن را نمی دانند! اگر نمی دانید که معنای برنامه نویسی واقعا چیست، بیایید اینجا کمی دقیق تر آن را بررسی کنیم و ببینیم که واقعا منظور از برنامه نویسی چیست؟
برنامه نویسی، فرآیندِ خلق دستورالعمل هایی است که به کامپیوتر می گوید که چطور باید دستور خاصی را که به آن داده می شود، انجام دهد. شما این کار را با استفاده از زبان های برنامه نویسی انجام می دهید.
مثلا برای درک بهتر برنامه نویسی، ریموت کنترل تلویزیون خود را در نظر بگیرید. ریموت کنترل تلویزیون، منتظر شماست که با فشردن دکمه های مختلف آن، دستوراتی به آن بدهید، که این کار به تلویزیون می گوید که کاری خاص را انجام دهد (همچون عوض کردن کانال، افزایش ولوم یا حجم صدا و مواردی از این دست). برنامه نویس ها نیز به روشی مشابه، به یک کامپیوتر دستور می دهند که کارهایی مختلف را انجام دهد.
با استفاده از برنامه نویسی، شما می توانید تقریبا هر کاری انجام دهید. مثلا می تونید ربات هایی را برنامه نویسی کنید که در کارهای خانه به شما کمک کنند یا حتی اتومبیل های خودران همچون تسلا (Tesla) را برنامه نویسی کنید.
برای اینکه یک برنامه نویس بتواند برنامه ای (program) را توسعه دهد که ایده ی موردنظرش را پیاده سازی می کند، لازم است که گام های زیر را بردارد:
✅ برنامه ریزیِ ساختار اپ (با کمک ابزارهایی همچون Trello)
✅ طراحی اپ (با استفاده از ابزارهایی همچون Figma و Adobexd)
✅ توسعه دادن اپ (با استفاده از زبان برنامه نویسی دلخواه)
✅ آزمایش و تست کردنِ قابلیت های اپ
✅ به کاراندازی اپ یا همان deploy کردن (انتشار روی سرویس های رایگان یا هاستینگ پولی)
✅ نگهداری و بروزرسانی، بعد از کامل شدن اپ
همانطور که می بینید، برنامه نویسی فقط شامل بخشِ نوشتن کد نمی شود، بلکه شامل مواردی همچون ساختمان داده ها و الگوریتم ها نیز می شود و در مجموع، به معنای سر و کار داشتن با چشم انداز کلیِ خلق و توسعه دادن سیستم های پیچیده است.
تفاوت بین کدنویسی و برنامه نویسی
تفاوت های بین این دو را در در چهار دسته بندی اصلی بررسی می کنیم تا مفاهیم را جزئی تر بررسی کنیم و بهتر متوجه این تفاوت ها شویم.
1- تعریف اصطلاحات فنی
✅ کدنویسی (coding) یعنی نوشتن کُد در زبانی که هم برای ماشین ها و هم برای انسان ها قابل فهم باشد. هدف اصلی کدنویسی، فراهم آوردن ارتباطات بین انسان ها و کامپیوترهاست.
✅ برنامه نویسی (programming) یعنی ایجاد یک چشم انداز کلی و ساختاری برای کدِ برنامه که از استانداردهایی خاص پیروی کند تا قبل از آنکه کد واقعا نوشته شود و کاری را که لازم است انجام دهد، محقق کند.
2- ابزاری که از آن ها استفاده می کنید
در زمان کدنویسی، یکی از مهم ترین ابزاری که استفاده می کنید، ویرایشگر متنی یا تکست ادیتور است (همچون Notepad یا چیزی پیچیده تر و با قابلیت های بیشتر همچون Visual Studio Code یا Sublime یا Atom یا Vim). اما در زمان برنامه نویسی، به ابزار بیشتری نیاز دارید.
به عنوان یک برنامه نویس، شما کارهای زیادی انجام می دهید، همچون بررسی و مرور اسناد، برنامه ریزی های بسیار، فکر کردن در مورد طرح و طراحی و مواردی از این دست.
برای انجام این کارها، می توانید از ابزارهایی همچون ادیتورها یا ویرایشگرهای پیشرفته تر کد، ابزارهای تحلیل، دیباگِرها (debuggers)، فریم ورک های مُدل سازی، اَسِمبلرها (assemblers)، الگوریتم های مدل سازی و غیره استفاده کنید.
به عنوان یک برنامه نویس، لازم است که شما دارای تجربه بسیاری در استفاده از این ابزارها باشید و آشنایی بیشتری با فرآیندهایی داشته باشید که توسعه دهندگان برای ساخت اپ ها و دیگر محصولات، از آن ها استفاده می کنند.
3- سطح دانش شما
به عنوان یک کدنویس، داشتن دانشی ابتدایی در مورد یک زبان برنامه نویسی و سینتکس آن (قواعد نوشتاری) نقطه شروع خوبی است. اگر کدنویسی در یک زبان را یاد بگیرید، یادگیری دیگر زبان ها ساده تر می شود. تکرار می کنم، هدف اصلی شما نوشتن همان کُدی است که به ماشین می گوید باید چه کاری را انجام دهد.
در سمت دیگر، برنامه نویسان از همان ابتدای کار، به دانش بیشتری نیاز دارند. شما باید بدانید که چطور الگوریتم بسازید و چطور روی آن ها کار کنید، باید بدانید که چطور وبسایت طراح کنید، چطور کد خود را دیباگ (debug) و تست کنید، چطور پروژه ها را مدیریت کنید و همچنین باید بدانید که چطور از زبان های برنامه نویسی استفاده کنید.
وقتی که در حال توسعه ی سیستم های پیچیده هستید، مواردی همچون قدرت حل مساله، تفکر انتقادی و مهارت های تحلیلی، ضروری و حیاتی هستند.
صابر کلاگر در ویدیوی زیر، در مورد مهارت های نرم مورد نیاز برای برنامه نویس ها بیشتر صحبت می کند. این ویدیو را حتما ببینید:
4- محصول نهایی
به عنوان یک کدنویس، نتیجه یا حاصل مورد انتظار از کار شما، معمولا یک کد و راه حل ساده است که بعد از کامپایل کردن، به شکل موفقیت آمیز، خروجی مورد نظر شما را ارائه دهد.
اما در سمت دیگر، نتیجه ی کار یک برنامه نویس، ارائه ی یک اپلیکیشن کامل و قابل استفاده یا بخشی از یک نرم افزار است که مردم و کاربران حاضر در بازار، بتوانند از آن استفاده کنند. یک وظیفه دیگر برنامه نویسان، حفظ، نگهداری و بروزرسانی محصولی است که ساخته اند تا اطمینان حاصل شود که بدون هیچ باگ و ایرادی، به خوبی کار می کند.
چطور کدنویسی و برنامه نویسی به یکدیگر کمک می کنند؟
تا اینجای مطلب، امیدوارم تفاوت بین کدنویسی و برنامه نویسی را متوجه شده باشید و بدانید که هر یک، با چه مسائلی سر و کار دارد. حال بیایید با هم ببینیم که این دو چطور می توانند (و باید) همراه و یار یکدیگر شوند تا بتوان به نتایجی قابل توجه رسید.
برای اینکه بهتر این مساله را متوجه شویم، بیایید یک مثال واقعی بزنیم از حالتی که در آن لازم است که کدنویسی و برنامه نویسی در ارتباطی نزدیک با هم کار کنند تا یک اپ کارآمد و کامل ایجاد شود.
تصور کنید که از شما خواسته شده که اپی بسازید که کمک می کند که روتین روزانه ی خود را زیر نظر بگیرید یا بر هزینه های روزانه ی شما نظارت می کند. با استفاده از مفاهیم کدنویسی و برنامه نویسی که اشاره کردیم، شما به شکل زیر، این کار را محقق خواهید کرد.
شما نیاز به یک برنامه نویس دارید که بتواند این کارها را انجام دهد:
- ساختارِ اپ را برنامه ریزی کند (با کمک ابزاری همچون Trello).
- قابلیت های اصلی اپ را یادداشت و مکتوب کند، یعنی قابلیت هایی که انتظار می رود کاربران برای آن ها از اپ استفاده کنند.
- اپ را طراحی کند (با استفاده از ابزارهایی همچون Figma و Adobexd).
بعد از انجام این مراحل، حالا نوبت کدنویس است. کدنویس، ایده هایی که برنامه نویس خلق کرده را به شکلی تبدیل می کند که توسط ماشین قابل خواندن باشد، یعنی کدهایی را می نویسد که نحوه انجام وظایف مورد نظر را شرح دهد. بعد از طی شدن فرآیند جادوییِ کدنویسی، برنامه نویس دوباره وارد میدان می شود.
این بار برنامه نویس، کدهای نوشته شده را ارزیابی می کند و خطاهای احتمالی را بررسی می کند، آزمایش و تست انجام می دهد و بررسی می کند تا مطمئن شود که همه چیز به درستی کار می کند و کد نوشته شده، نتایج مورد انتظار را ارائه می دهد. اگر تمام این موارد درست و خوب پیش برود، حالا این اپلیکیشن آماده ی به کاراندازی (انتشار) و نگهداری است، که این مراحل همچنان توسط برنامه نویس انجام خواهد شد.
در این مثال ساده متوجه شدیم که چطور برای دستیابی به بهره وری و کارآمدی، این دو مهارت در کنار هم مورد استفاده قرار می گیرند.
یک نکته ی نهایی هم اشاره کنیم: «کدنویس» و «برنامه نویس» همیشه دو فرد مجزا نیستند. ممکن است در برخی پروژه ها، یک نفر تمام وظایف کدنویس و برنامه نویس را به تنهایی انجام دهد.
جمع بندی نهایی
حالا ببینید جایگاه شما در کدام یک از این دو دنیاست؟ کدنویسی یا برنامه نویسی؟ برای من یک مدتی طول کشید تا متوجه شوم که به کدام یک علاقه ی بیشتری دارم.
اگر شما بیشتر به منطق علاقمند هستید، بهتر است که بیشتر انرژی و تمرکز خود را روی فرآیند برنامه نویسی بگذارید. اگر هم به خواندن و نوشتن کُد علاقه دارید، بهتر است زمان خود را روی کدنویسی صرف کنید.
همانطور که می دانید علم کامپیوتر، رشته ای بسیار گسترده است و هر روز شاخ و برگ های جدیدی به آن افزوده می شود. پس سعی کنید راه و مسیری را پیدا کنید که به آن علاقه دارید و روی همان حوزه تمرکز کنید. به خاطر داشته باشید که از این کار لذت ببرید و کمی هم خوش بگذرانید. ما هم در سایت دیتایاد با ارائه دوره های با کیفیت محتوایی بسیار بالا به شما کمک خواهیم کرد.
اگر هنوز مطمئن نیستید که در چه زمینه ای فعالیت کنید، امیدوارم که این مقاله کمی مساله را برای شما روشن تر کرده باشد و به شما کمک کند که بتوانید جایگاه مورد نظر خود را بهتر پیدا کنید.
چه جالب، منم فکر می کردم تفاوت خاصی بین کدنویسی و برنامه نویسی وجود نداره، مرسی که آگاه مون کردید، عالی هستید
زنده باشی، مرسی از همراهیت دوست خوبم
خیلی مفید و کاربردی بود، متشکرم
خداروشکر