پدرام بهروزی

چه‌کنم‌های برنامه‌نویسی

تصویر روانشناسی که روی صندلی نشسته و صحبت کردن یک برنامه‌نویس که دراز کشیده گوش می‌کند

من PHP بلدم، حالا چی؟

PHP زبان محبوبی است و خیلی از ما آن را بلدیم. اما باید یادمان باشد که PHP یک زبان برنامه‌نویسی در میان صدها زبان برنامه‌نویسی دیگر است. ذهن‌تان را نبندید. همیشه چیزی برای یاد گرفتن هست. اگر می‌توانید سراغ زبان دیگری هم بروید. برای ویندوز .NET خوب است و برای فارغ از محیط‌ها، Ruby. یاد گرفتن زبان‌های دیگر این مزیت را دارد که متوجه می‌شوید زبان فعلی‌تان چه مزیت‌ها و محدودیت‌هایی دارد. اگر حال و حوصله‌ی یاد گرفتن زبان جدید را ندارید (چرا نباید داشته باشید؟) فریم‌ورک‌های زبان خودتان را بشناسید و یادشان بگیرید. زمان توسعه‌ی کارتان خیلی پایین می‌آید.

من PHP بلدم، همین؟

ما برنامه‌نویس‌ها معمولا دوست نداریم سمت UI برویم. چون تخصص ما نیست. حق هم داریم. اما از UI غافل نشوید. HTML و CSS و جاوااسکریپت مواد ضروری طراحی وبسایت‌ها هستند. بدون وجود آنها وبسایت‌های تولیدی ما غیرقابل استفاده‌اند. پس آنها را یاد بگیرید. لازم نیست در حد طراح UI شرکت‌تان بلد باشید. اما در سطح آشنایی هم نمانید. شاید مجبور شدید تنهایی برای قبیله‌ی آدمخوارها وبسایت تولید کنید. باید بتوانید.

من PHP بلدم، دیگر چی؟

ابزارهایی وجود دارند که زندگی‌تان را راحت‌تر می‌کنند. ازشان استفاده کنید. اولین‌شان Composer است. قبلا مختصر توضیحی راجع به کامپوزر داده‌ایم. سایت خودشان هم همه‌چیز تمام است. ابزار دیگر Vagrant است. نصبش کنید، تنظیمش کنید و جمله‌ی «ولی روی کامپیوتر من که کار می‌کرد» را یک بار برای همیشه بندازید دور. با Vagrant یک ماشین مجازی شبیه سرور اصلی روی کامپیوتر خودتان می‌سازید و برنامه را روی آن تست می‌کنید. اینطوری دیگر نگران نسخه‌ی PHP و وب سرور و باقی قضایا نیستید. برای تنظیم کردن Vagrant هم از Ansible استفاده کنید. خوب نیست که ما در قرن ۲۱ برای آماده کردن سرور (و ماشین مجازی) از زمان ارزشمندمان خرج کنیم.

من PHP بلدم، IDE را چه کنم؟

یک جواب سریع و تلخ وجود دارد: از vim استفاده کنید. کار کردن با vim برای تازه‌کارها مثل نشستن پشت بت‌موبیل است. آدم حتی نمی‌داند چطور باید توی ویرایشگر لعنتی شروع به تایپ کند. اما وقتی راه بیفتید آرزو می‌کنید کاش می‌شد ظرف‌ها را هم با vim شست. هر امکانی که تخیل کنید در vim هست و پلاگین‌های زیادی هم برایش وجود دارد. اما مهم این است که با هر چیزی که راحت‌ترید کار کنید. Netbeans و Eclipse و Sublime و حتی ++Notepad هم هستند و برایشان فرقی نمی‌کند توی کدام سیستم‌عامل دارید کد می‌زنید. جواب سریع و تلخ دیگری هم وجود دارد: بهترین IDE، ویژوال استودیو است. پس اگر با .NET کاری ندارید، فکر IDE همه‌فن حریف را از ذهن‌تان بیرون کنید. هر کدام مشکلات خودشان را دارند.

من اصلا PHP بلد نیستم، شروع کنم؟

معلوم است. اگر می‌خواهید وبسایت طراحی کنید، PHP بهترین گزینه است. فریم‌ورک‌های زیادی روی PHP هستند و مهم‌تر از همه، هر هاستی پیدا کنید از این زبان به طور حتم پشتیبانی می‌کند. بنابراین به شدت به‌صرفه است. هر چقدر هم بخواهید مستندات و آدم‌های کاربلد دارد. خیلی شنیده‌ام که می‌گویند PHP قدیمی شده و هرکسی الان PHP بلد است. اما نادیده گرفتن PHP برای طراحی سایت مثل این است که بگویید من برای جستجو گوگل را قبول ندارم.

من برنامه‌نویس هستم، Ecommerce دیگر چه کوفتی است؟

فروشگاه‌های اینترنتی شاخه‌ی مهمی از توسعه‌ی وب هستند. حالا دیگر هر چیزی را می‌شود آنلاین خرید و فروخت. کافی است نماد اعتماد الکترونیک و یک درگاه بگیرید و به این فکر کنید که چطور می‌خواهید جنس را به دست مشتری برسانید (لازم نیست؟ چه بهتر). اگر برنامه‌نویس زبان‌های بزرگ هستید، حتما پلتفرم Ecommerceای برای زبان‌تان وجود دارد. مجنتو بهترین روی PHP و Spree بهترین روی Ruby on Rails است. یاد گرفتن و سر و کله زدن با Ecommerceها، از آنجایی که وسیع‌اند و خوب نوشته شده‌اند، توانایی‌تان به عنوان برنامه‌نویس را افزایش می‌دهد. خیلی هم باحال است تازه :)

من می‌دانم Ecommerce چیست، Magento دیگر چه کوفتی است؟

من فکر می‌کنم Woocommerce در ایران محبوب‌تر از Magento است. از آنجایی که کلا حیطه‌ی کاری ما آمارهای دقیقِ درست و حسابی ندارد، نمی‌توانم دقیق بگویم. اما به طور حتم مجنتو بهتر از Woocommerce است. بله، درست که به این بستگی دارد که می‌خواهید چه کار کنید و خیلی جاها شنیده‌ایم که مجنتو برای فروشگاه‌های کوچک، کند است و به‌صرفه نیست. اما گوش به حرف کسی ندهید و مجنتو نصب کنید. ساختار قوی، انواع امکانات، قابلیت گسترش و خیلی چیزهای دیگر مجنتو را نسبت به Woocommerce با اختلاف زیاد بالا نگه می‌دارد. برنامه‌نویس‌هایی که با مجنتو راحتند، می‌دانند که مقایسه‌ی مجنتو و Woocommerce مثل مقایسه‌ی پرتقال است با قرص ویتامین ث.

من Magento بلدم، حالا چی؟

خیلی هم عالی. اما شما را به خدا تمیز کار کنید. آدم‌ها و وبلاگ‌های خفن مجنتو را بشناسید و سعی کنید از استانداردهای آنها استفاده کنید. مجنتو سیکلوپ است. تر و تمیز جلو بروید و چشمش را در بیاورید. وگرنه می‌بینید دمار از روزگار خودتان، مشتری‌هایتان و برنامه‌نویس‌های دیگر درمی‌آورد.

من برنامه‌نویس نیستم، چه کنم؟

اگر علاقه‌ای هم ندارید، پس چرا دارید اینها را می‌خوانید؟ :) اما اگر علاقه‌ای هر چند اندک به برنامه‌نویسی دارید. خب شروع کنید. هر چیزی را که بیشتر جذبتان کرد یاد بگیرید و نگران بازار کار نباشید. اصلا اگر PHP یا Ruby on Rails یا Go یاد گرفتید، بیایید همین‌جا در سارینا دور هم کار می‌کنیم و خوش می‌گذرانیم. نکته‌ی مهم این است که دنیای نرم‌افزار به شدت پویا و به شدت در حال پیشرفت است. اگر آدم بروزی هستید یا حس می‌کنید با ریتم تند این قطار سوپر سریع‌السیر می‌توانید هماهنگ باشید، پس بپرید بالا و دنیا را جور دیگری ببینید.

اوضاع موبایل چطور است؟

حتما سری هم به موبایل بزنید. برای اندروید جاوا باید بدانید و برای iOS سویفت یا Objective-C. من شنیده‌ام که برنامه‌نویس‌های اندروید پول‌های خوبی درمی‌آورند. اما این مهم نیست. برنامه‌نویس‌های مجنتو هم پول‌های خوبی درمی‌آورند. اصلا هر برنامه‌نویسی اگر کارش را بلد باشد، خوب پول درمی‌آورد. مهم این است که ایده‌ی نو داشته باشید. حالا دیگر برای همه چیز اپلیکیشنی وجود دارد و هر روز اپلیکیشن‌های جدید منتشر می‌شوند. پس ایده‌ی جدید دارید؟ زود دست به کار شوید.

اینها همه که گفتی را برای چی گفتی؟

خب بیایید قبول کنیم. دنیا جای زیبایی است و ارزش جنگیدن دارد. حتی اگر فقط با قسمت اول جمله موافق باشید، باید بپذیرید که زیبا بودن دنیا مدیون انسان‌هایی است که برایش جنگیده‌اند. دویست سال پیش پزشک‌ها قهرمان‌های جهان بودند و بیماری‌های زیادی را ریشه‌کن کردند. صد سال پیش روانشناس‌ها و صلح‌طلب‌ها. و حالا، بی‌تعارف، نوبت برنامه‌نویس‌هاست. چرا که نه؟ قدرتمندترین ابزار بهتر کردن دنیا زیر دستان ماست. از آن استفاده کنید.

پدرام بهروزی

از سال ۸۵ برنامه‌نویسی را با نوشتن یک بازی ساده با ++C شروع کرد. به زبان PHP مسلط است و با سیستم‌های مدیریت محتوای زیادی مثل دروپال، وردپرس، بیتریکس و مجنتو آشنایی دارد. درحال حاضر در سارینا با Magento، Laravel و Ruby on Rails کار می‌کند. عاشق سرک کشیدن در تکنولوژی‌های جدید، خواندن کتاب و موسیقی راک است.

  1. سه شنبه، ۱ تیر ۱۳۹۵ who cares
    این جمله «اما گوش به حرف کسی ندهید» مثل return باعث شد مابقی رو نخونم
  2. سه شنبه، ۱ تیر ۱۳۹۵ امیر محرمی
    عالی بود
  3. چهارشنبه، ۲ تیر ۱۳۹۵ افشار محبی
    متن انگیزشی خیلی خوبی بود. اگر میزان تنوع طلبی‌تان بالاست، نود و جانگو را هم به لیست‌تان اضافه کنید و از برنامه‌نویسی لذت ببرید.
  4. چهارشنبه، ۲ تیر ۱۳۹۵ آزاده
    ممنون پدرام جان، خوندم و از نگاهت به زندگی لذت بردم!
  5. پنج شنبه، ۳ تیر ۱۳۹۵ یک جونیور
    من جونیور هستم. مجنتو رو انتخاب کنم یا Spree؟ چرا؟
    • پدرام بهروزی
      یکشنبه، ۱۷ مرداد ۱۳۹۵ پدرام بهروزی
      من مقایسه‌ی دقیقی نکردم بین این دو تا. میشه مقایسه شون رو تو اینترنت خود یا بهتر، با هر دو یه پروژه مشابه و کوچیک انجام داد.
  6. سپهر بهروزی
    چهارشنبه، ۹ تیر ۱۳۹۵ سپهر بهروزی
    خیلی عالی بود نحوه‌ی بیان نوشته‌ت 👌👍
    یک مورد دیگه هم من اضافه کنم به نکته‌هایی که گفتی:
    - مفاهیم REST رو به صورت استاندارد پیاده کنید. کلاینت‌ها گناه دارن
    • پدرام بهروزی
      یکشنبه، ۱۷ مرداد ۱۳۹۵ پدرام بهروزی
      قصه APIنویسی خودش بحث مفصلیه که متاسفانه خیلی نپرداختن بهش
  7. جمعه، ۱۵ مرداد ۱۳۹۵ مصطفی قنبری
    بسیــار نثر دلنشینی داشت.
    من هم مدتی است برنامه نویسم اما از همین مطلب کوتاه خیلی درس گرفتم، مخصوصن استفاده از Vagrant.
    امیدوارم باز هم بیشتر بنویسید.