«در این پست درباره تفاوت کدنویس و برنامه نویس، اهمیت درک مفهومی کد و چطور از این مسیر می توانید به خلق محصول برسید صحبت میکنم.»
به نام خداوند جان و خرد / کزین برتر از اندیشه بر نگذرد
خداوند نام و خداوند جای / خداوند روزی ده رهنمای
با سلام و عرض ادب و احترام فراوان خدمت شما
من مرتضی زارعی زکلیکی هستم.
سال هاست که در دنیای برنامه نویسی یا بهتره کمی برگردیم عقب تر یعنی کدنویسی؛ هستم و در حال حاضر یک قدم جلوتر رفته ام و در مسیر تبدیل شدن به یک مدیر محصول هستم یعنی از کدنویسی تا خلق محصول.
در سلسله مطالبی که انتشار خواهم داد درباره برنامه نویسی با زبان PHP؛ این مطلب اولین مطلبی است که می خواهم بنویسم؛ پس لطفاً با من همراه شوید که می خواهم شما را به ابتدایی ترین حالت ممکن در برنامه نویسی ببرم. با هم بصورت عمیق و مفهومی بفهمیم که کد نویسی یعنی چه؟ و چرا باید اول کدنویسی کنیم بعد به سراغ مراحل بالاتر برویم؟ درباره تجربه ی خودم در این سال ها خواهم نوشت و سعی خواهم کرد که به بهترین نحو ممکن و با روشی دیگر؛ شما برنامه نویس باقی بمانید… .
مقدمه
خیلی راجع به برنامه نویسی تا الان شنیده ایم اما من اعتقاد دارم که باید برای برنامه نویس شدن کمی برگردیم عقب تر و کدنویس بشویم تا بتوانیم برنامه های خیلی فوق العاده را ایجاد و توسعه بدهیم. کد نویسی یا خودمان را کد نویس خطاب کردن موضوع بدی نیست و شاید شرم آور هم نیست چون کسی که می خواهد برنامه های حرفه ای را ایجاد کند باید کد نویس حرفه ای شود و مفاهیم و عمق داستان را بفهمد. کد نویس بودن و شاید کد نویس ماندن آغاز یک مسیر است که شما را به حرفه ای شدن تبدیل می کند. کد نویسی هیچگونه پایانی ندارد بلکه ما وقتی داریم برنامه ای را یا محصولی را خلق می کنیم هر لحظه داریم کد می نویسیم اما یک فرقی ما بین برنامه نویس که کد نویسی را درک کرده و بعد برنامه نویس شده با کسی که مستقیما ورود کرده به برنامه نویسی وجود دارد و در ادامه این فرق را خواهم گفت و سعی خواهم کرد کد نویسی را شرح دهم تا از زاویه ی دیگری با هم به موضوع نگاه کنیم.
کد نویسی یا برنامه نویسی؟ کدامیک درست است؟
اینکه بخواهیم کد نویسی را با برنامه نویسی مقایسه کنیم مانند این است که بخواهیم جسم و روح را با هم مقایسه کنیم است؛ پس نباید این مقایسه صورت پذیرد بلکه کد نویسی یک مرحله قبل تر از برنامه نویسی است مانند اینکه اول جسم ساخته شد و بعد روح. شما و من هیچوقت به جسم بیشتر از روح یا به روح بیشتر از جسم وقت نمی گذاریم بلکه باید به هر دو مساوی بها داده شود اما یک نکته ی بسیار مهمی وجود دارد و آن هم این است که هر چقدر جسم قوی تر روح قوی تری نیز خواهیم داشت و صد البته انسان قوی تری خواهیم داشت و هر چقدر شما کد نویس حرفه ای تری باشید برنامه یا محصول حرفه ای را خواهید داشد و صد البته محصول موفق تری را خواهید داشت در اینجا نمی خواهم راجع به محصول حرف بزنم اما این نکته را می گویم که کدنویسی آغاز محصول نویسی و سازی است و کسی که کد نویسی را می خواهد یاد بگیرد و قوی تر و حرفه ای تر شود می تواند خالق محصولاتی شود که بنیان و پایه ی قوی تری را دارد.
بنابراین کد نویسی قبل تر از برنامه نویسی در مسیر آموزش است و در حین عملیاتی و ساخت و ساز محصولات مختلف؛ کد نویسی بصورت برنامه نویسی ظاهر می شود. کدی که توسط کد نویس ایجاد می شود در نهایت بصورت هوشمندانه برنامه نویسی می شود و جهت داده می شود تا تبدیل به برنامه یا محصول شود و قابل ذکر است که بعد از آن دنیای دیگری به نام مدیریت محصول آغاز می شود که برای خودش دنیای دیگری است اما همین دنیا، یعنی محصول از کدنویسی شروع می شود و در نهایت تبدیل به محصولی با ارزش می شود.
کد نویس ارزشمند یا همینطور بنویس بره و فقط تمام بشه!
وقتی یک نفر تصمیم می گیرد که برنامه نویس شود یا شایدم محصول نویس شود؛ در اولین گام باید کد نویسی را بفهمد و کد نویس شود؛ اما می تواند فقط کد را با Copy & Paste کردن جلو ببرد و کاری به مفهوم و عمق نداشته باشد و به نوعی ابزار یاد بگیرد اما در مقابل این کد نویس نا آگاه؛ کدنویسی است که کدنویس ارزشمند است یعنی می رود، می گردد، پیدا می کند و علت یابی می کند که چرا این کد را نوشتم و کار کرد و چه کاری کنم که این قطعه کد بهتر شود.
همه چیز از آگاهی نشئت می گیرد و خود را در مسیر آگاه شدن قرار دادن باعث پیشرفت می شود. کد نویسی کردن هم همینطور است؛ با آگاهی کد نوشتن است؛ اجازه بدهید با یک مثال توضیح دهم:
مثال واقعی از سایت فروشگاهی که خودم برنامه نویسی کردم (محصول پیکسیو)
فرض کنید می خواهیم با قطعه کدی مثلاً برای سایت آمازون یا دیجی کالا یا پیکسیو؛ ایجاد کنیم که محصولاتی با قیمت بالای 10 میلیون تومان وجود دارد نمایش داده شوند؛ کد نویس آگاه ، بخش بندی می کند کاری را که می خواهد انجام دهد و بعد کار نهایی را انجام می دهد مانند:
- بخش 1: لیست محصولات را می گیرد
- بخش 2: با شرط گذاشتن چک می کند که قیمت ان محصول بالا است یا پائین
- بخش 3: محصولات مورد نظر را که بالای 10 میلیون تومان است را نمایش می دهد
اما کد نویسی که آگاه نیست دنبال این است که فقط کار کند همین شاید با کد آماده کارش را در آن لحظه تمام کند؛ اما آگاه نیست و نمی داند که چه خبر است.
نکته مهم: در قطعه کدی که در بالا توضیح دادم بسیار مهم است که کد نویس در هر بخش کدهایی که در سطرهای مختلف می سازد را بفهمد و به نوعی سطر به سطر جداگانه تست کند و خروجی بگیرد و ببیند و مشاهده کند و آگاه تر شود و بعد وقتی همه ی این کدها با هم و در کنار هم کار کرد یعنی در اینجا “نمایش لیست محصولاتی که در سایت آمازون یا دیجی کالا بالای 10 میلیون تومان است”؛ این کار، کار راحتی است اما کد نویس می تواند تبدیل به برنامه نویس شود که این کدها را کاربردی تر می کند مانند؛ اینکه در یک سیستم فیلترینگ قیمت قرار داده شود تا عملکردهای مختلف و پیچیده ای را داشته باشد.
بنابراین کد نویسی به صورت آگاهانه تبدیل شدن به برنامه نویسی است که کارهای پیچیده را بصورت نظم و مرتب شده و صد البته ساده سازی شده انجام دهد؛ است.
تعریف دقیق تری از کد نویسی
کد نویسی یعنی اینکه دستور العمل هایی با کامپیوتر توسط یک زبان برنامه نویسی مانند PHP بنویسیم که کارها و وظایف مختلفی را انجام دهد و قابل فهم و درک کامپیوتر باشد و خودمان هم همان طوری که در بالا نوشتم بفهمیم و درک کنیم.
چگونه می توانیم کد نویس حرفه ای شویم؟
برای اینکه بتوانیم کد نویس حرفه ای بشویم باید تمرینات مختلفی را انجام بدهیم و قبل از آن هم، مهم ترین کاری را که باید انجام بدهیم این است که سطر به سطر از کدی که می نویسیم را درک کنیم و بدانیم چرا نوشته ایم؟ و به چه دلیل؟ در آن صورت است که قادر خواهیم بود به کد نویسی تبدیل شویم که با برنامه نویسی می تواند محصول خلق کند. اگر بخواهم از تجربه ی خودم بگویم این را می گویم که وقتی کد نویسی می کنید؛ مثلا با شرطی چک می کنید که محصولی وجود دارد یا نه؛ در پایگاه داده یا Database؟ کدی که می نویسید باید بصورتی باشد که آن شرط و بهتره بگم آن کد؛ در اولین بار فقط از پایگاه داده چک کند که آن محصول وجود دارد یا نه؟ و بعد بهینه تر شده و بصورت بهینه شده این کار را انجام دهد.
کد نویس حرفه ای شدن مستلزم تمرینات فراوان و چالشی است که منجر به تجربه می شود و این تجربیات است که شما را به کد نویس حرفه ای تبدیل می کند.
تمرینات چالشی من از شما
تصمیم دارم بعد از تمام شدن هر مطلبی یا پستی، یک تمرین چالشی بپرسم که اگر کسی دوست داشته باشد پاسخ دهد و حتی من پاسخ می دهم به پاسخ شما و شما را دعوت به چالش “پاسخ در پاسخ” فرا می خوانم.
تمرین 1: اولین کدی که در یادگیری هر زبان برنامه نویسی که در اینجا PHP است؛ اگر می خواستید بنویسید، چه قطعه کدی بود؟ برای پاسخ دنبال syntax و کد نباشید یعنی پاسخ شما کد نباشد؛ فقط یک سطر توضیح باشد؛ خیلی ساده.
تمرین 2: فرض کنید شما صاحب کسب و کار آنلاین هستید؛ مانند: آمازون یا دیجی کالا یا پیکسیو؛ یا هر فروشگاه آنلاین دیگر؛ یک ویژگی منحصر بفردی که اگر این کد نویس داشته باشد؛ من استخدامش می کردم؛ آن ویژگی چه بود؟ برای پاسخ دادن به این سوال مثلا بگوئید فلان ویژگی و اگر دوست داشتید؛ توضیحات مفصل بدهید.
ممنون و سپاس از همراهی شما از من؛ یعنی؛ مرتضی زارعی زکلیکی.