طراحی یا برنامه نویسی؟ مسئله اینست!

محمدرضا کیکاوسی

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

شما چپی هستید یا راستی؟!

مغز پیچیده انسان شامل دو نیمکره است. در برخی افراد نیمکره راست و در بعضی دیگر نیمکره چپ فعالیت بیشتری دارد.
اگر شما از محاسبات ریاضی لذت می برید، عاشق حل مسئله و ساعت ها فکر کردن برای حل یک مشکل هستید، نیمکره چپ مغز شما فعالیت بیشتری دارد.
در مقابل اگر شما عاشق هنر و زیبایی شناسی هستید، از خلق یک اثر هنری لذت می برید، رنگ ها به شما حس خوبی می دهند و برای شما دارای معنی هستند، نیمکره راست مغز شما دارای فعالیت بیشتری است.
قطعا در هیچ انسانی عملکرد نیمه چپ و راست به صورت 100% نیست و این مسئله به صورت نسبی در مغز برقرار است. ممکن است فردی دارای عملکرد 30% نیمکره چپ و 70% نیمکره چپ باشد و بالعکس. پس نمی توان با قطعیت برای کسی نظر داد و مسلما راهکار هایی که در ادامه می آید فقط جنبه راهنمایی دارد.
تصمیم گیری نهایی احساس شما نسبت به هر تخصص است. اما طبیعتا مسیر تخصص و شغلی که انتخاب می کنید باید رابطه مستقیم با شخصیت درونی شما داشته باشد تا همیشه از کار خود لذت ببرید و هیچ وقت نخواهید آن را تحمل کنید! یک راه را انتخاب کنید و در همان حرفه ای شوید.

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

من متوجه شدم راستی هستم! چه راهی را انتخاب کنم؟

خوب! اگر می خواهید در زمینه طراحی تخصصی را انتخاب کنید، چندین راه پیش روی شماست:
شما می توانید طراحی گرافیک، تصویر سازی، طراحی رابط کاربری وب و موبایل و ... را انتخاب کنید.
در این میان بیایید به تخصص طراحی و توسعه رابط کاربری نگاهی بیندازیم.
اصولا "رابط کاربری به هر آن چیزی گفته می شود که کاربر می بینید و با آن در تعامل است" و کسی که توانایی طراحی این بخش از نرم افزار را دارد طراح رابط کاربری (UI Designer)است و باید توانایی کار با نرم افزارهای طراحی مانند photoshop و illustrator و ... را داشته باشد.
اگر کسی با یادگیری زبان های HTML، CSS و جاواسکریپت بتواند طرح گرافیکی را تبدیل به کد قابل فهم برای مرورگر کند، تخصص او توسعه دهنده رابط کاربری یا (Front-End Developer) است. البته در سال های اخیر استفاده از فریم ورک ها و کتابخانه های جاواسکریپ مانند angular و react نیز مورد استقبال قرار گرفته است و قطعا یادگیری آن ها در پیدا کردن موقعیت شغلی مناسب بی تاثیر نیست.
ولی در کل لفظ طراح وب به خودی خود هر دو بخش طراحی رابط کاربری و توسعه رابط کاربری را در دل خود دارد مگر در تیم های بزرگ که هر بخش را یک گروه خاص انجام می دهد.

پس به عنوان طراح و توسعه دهنده وب معمولا از شما انتظار دارند تا html،css،js را خوب بدانید، همچنین بتوانید خودتان یک طرح ارائه دهید و پیاده سازی کنید. مگر اینکه سِمَت شغلی مورد نظر گرافیست و طراح رابط کاربری باشد. آنگاه تسلط شما به نرم افزار های طراحی مد نظر است.

من متوجه شدم چپی هستم چه زبان برنامه نویسی را انتخاب کنم؟

اگر خصوصیات شخصی شما مطابق با شغل برنامه نویسی است و هیچ لذتی از طراحی یا پیاده سازی رابط کاربری نمی برید و کار کردن با Css برای شما عذاب است(!) پس همین حالا تغییر مسیر بدهید! برنامه نویسی برای کسانی که مناسب این حرفه هستند بسیار لذت بخش است. وقتی یک مسئله را حل می کنید و یک راه حل ارائه می دهید و یا نرم افزاری طراحی می کنید که افراد زیادی از آن استفاده می کنند حس فوق العاده ای به شما دست خواهد داد.
در حقیقت برنامه نویسی یعنی "ارائه یک راه حل با استفاده از کدهای دستوری که رایانه آن را می فهمد".
اما انتخاب زبان برنامه نویسی مناسب، یک مسئله مهم است که باید در ابتدای راه برای آن به یک نتیجه خوب برسید.
ممکن است پیش از این، سایت ها و وبلاگ های متعددی را دیده باشید که همگی جبهه گیری های بی مورد می کنند. یک عده زبان برنامه نویسی خاصی را بالا می برند و دیگری را می کوبند، جبهه دیگر زبان برنامه نویسی مورد علاقه خود را بهترین زبان معرفی می کنند...در این آشفته بازار باید تصمیم مناسب بگیرید.

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

حالت های زیر را در نظر بگیرید، شاید شما بخواهید:
برای سیستم عامل اندروید برنامه نویسی کنید: در این صورت باید زبان برنامه نویسی java را انتخاب کنید.
برای سیستم عامل ios برنامه نویسی کنید: در این صورت باید زبان برنامه نویسیswift را انتخاب کنید.
برای سیستم عامل ویندوز و وب برنامه نویسی کنید: در این صورت باید زبان برنامه نویسی c# (سی شارپ) را انتخاب کنید
فقط برای وب برنامه نویسی کنید: در این صورت باید زبان PHP را انتخاب کنید.
برنامه نویسی محاسباتی انجام دهید، بر روی داده های بزرگ کار کنید و یا به یادگیری ماشینی (machine learning) علاقه دارید: زبان پایتون برای شما مناسب است.
زبان های برنامه نویسی دیگری مانند c++، ruby، pearl و ... نیز برای کاربردهای دیگر وجود دارند و می توانید در مورد هر یک بررسی مود نظر خود را انجام دهید و مطابق با نیاز آن را انتخاب کنید.
قطعا هر کدام از این زبان ها پیچیدگی ها و چارچوب های مخصوص خود را دارند و باید سعی کنید در هر یک دقیق و عمیق شوید تا بتوانید نهایت استفاده را از آن داشته باشید.
تبصره!:
اگر بخواهید به صورت فریلنس یا آزادکار در حوزه طراحی وب فعالیت داشته باشید، در بسیاری از موارد از شما می خواهند تا وب سایتی طراحی کنید که هم شامل رابط کاربری و هم شامل بخش منطقی یا back-end (برنامه نویسی) باشد. اگر تخصص شما فقط یکی از این موارد باشد(طراح یا برنامه نویس)، سعی کنید با کسی در ارتباط باشید و یک تیم دونفره کوچک برای این کار تشکیل دهید. اگر انجام این مسئله برای شما مقدور نیست، پس ناچارا باید خودتان از پس آن بربیایید. پیشنهاد من به شما یادگیری اصول زبان php و همچنین یادگیری سیستم های مدیریت محتوا مانند wordpress است. اینکه بتوانید خودتان قالب را طراحی و اجرا کنید و آن را به سیستم مدیریت محتوا متصل کنید.

حتما در مقالات بعدی در این خصوص توضیحاتی ارائه خواهم داد.

شاد باشید و از راهی که انتخاب می کنید لذت ببرید :)