یک طراح یا برنامه نویس وب از کجا باید شروع کنه؟
سلام خدمت همه دوستان عزیزم ، این مطلب از تجربه خودمه و ممکنه بعضیهاتون باهاش موافق نباشید. اما خیلی دوست داشتم، فرصتی بشه تا این موضوع رو برای دوستان تازه کار، بنویسم! که الان دارم همین کارو میکنم، امیدوارم مورد استفادهتون قرار بگیره.
خب !
طراح وب؟ یا برنامه نویس Back-end؟ یا اصلا هر دوش؟ از کجا باید شروع کرد؟ چی رو باید یاد گرفت؟ این موضوعاتی که، افرادی که میخوان این کارو شروع کنن باهاش مواجه میشن و سعی میکنن بفهمن فرق اینا چیه و برای طراح وب یا توسعه دهنده وب شدن باید چه کارهایی کرد. خیلی این مسئله رو برای خودتون سخت نکنید من هر کدوم رو تعریف میکنم و بعد نکاتی در مورد هر کدوم میگم.
طراح وب
این افراد کارشون اینکه رابط کاربری یک وبسایت ، که کاربر نهایی باهاش کار میکنه رو بسازن! یعنی میان چهره یه سایت رو درست میکنن! البته این افراد بازم به بخشهای مختلفی تقسیم میشن چون کسایی هم هستن که فکر میکنن کار طراحی وب در ابزاری مثل فتوشاپ با تبدیل کردن به کدهای Html ،css یا javascript خلاصه میشه. اما من قبل از این که یک طراح وب باشم، یک طراح گرافیک بودم .
بعضی اوقات شده که بعضیها سوال میپرسن چرا اصلا باید یک سایت رو داخل ابزاری مثل فتوشاپ به طور کامل طراحی کنیم. من اینو شبیه یه نقشه راه میدونم یعنی شما با داشتن یک نقشه، اگر هم راهتون رو گم کنید خیلی سریع میتونید برگردید به راه اصلی. این موضوع دقیقا در طراحی وبسایت هم حاکمه یعنی شما بدون داشتن یک نقشه راه که در اینجا یک طرح اولیه از وبسایته که قراره کاربرهای نهایی باهاش کار کنن دچار مشکل میشید و زمانی که دارین کدش رو مینویسید نمیدونید بخشی که دارید میسازید با بخش قبل و یا بخش بعد هماهنگه یا نه؟ خب اینطوری دوباره کارهاتون زیاد میشه و در نهایت چیزی بدست میاد که بنظر قابل قبول نیست .
همونطور که در بالا گفتم خودم قبل از این که یک طراح وب باشم یک طراح گرافیکی بودم و بعد به این حوزه کشیده شدم و الان عاشق طراحی وب هستم. یعنی از زمانی که یک سایت رو داخل فتوشاپ طراحی میکنم تا زمانی که کدهاشو مینویسم از لذت بخشترین زمانهای زندگیمه! باید بگم رنگبندهای هر بخش برام خیلی مهمه چون اون طرح قراره زنده بشه و خیلیها ازش استفاده کنن . برای همین زمان کمی رو صرفش نمیکنم و همیشه سعی میکنم با حوصله و دقت زیاد پیش برم چون اگه قدم اول رو خوب بردارید کارتون در Html و css خیلی ساده میشه. البته اینجا شما میاد میگید که کار طراحی در فتوشاپ رو میدم یکی دیگه و میگید وقتش رو ندارم و یا اصلا حوصلهاش رو ندارم شاید حق داشته باشید برای کسایی که به این کار یعنی طراحی در فتوشاپ علاقه نداشته باشن یک دقیقهاش هم براتون عذابآور میشه برای همین ترجیح میدین که دیگران براتون طراحی کنن. اما به نظرتون دیگران اونطوری که شما میخواید براتون طراحی میکنن یا ایدههایی که شما تو ذهنتون برای پیاده سازی دارین رو روی طرح میارن؟ جواب من شاید اره شایدم نه! بستگی به طراح وب داره. این موضوع اصلا چیز ثابتی نیست !
اگه کسی ازم بپرسه چیکار کنم یعنی برای یک طراحی وب شدن از کجا شروع کنم من بهش میگم اول طراحی در فتوشاپ رو یاد بگیر و بعد برو کدنویسیشو یاد بگیر چون کسی که با هر دوتا آشنا باشه میدونه که چه محدودیت های وجود داره ، میدونه که کجا میشه از یک ابزار استفاده کرد و کجا نمیشه .
بعد از اینکه طراحی در فتوشاپ رو یاد گرفتید باید برین سراغ HTML و CSS و javascript که دوتای آخری دارای فریمورکها و کتابخونه های زیادی هستن اگر با کلمه فریمورک آشنا نیستین ، باید بگم اینها ابزاری هستن که با استفاده ازشون کارتون سریع تر ، بهتر و در کمترین زمان پیش میره . مثل bootstrap برای css و jquery برای javascirpt . برای شروع هم باید HTML یاد بگیرید و بعد css و در نهایت javascirpt ، که برای یک طراح وب حرفه ای و کاربلد شدن باید وقت زیادی براشون بزارید چون هر کدوم یک دنیا برای خودشون دارن .
فک کنم متوجه شده باشید که یک طراح وب، برنامهنویس هم هست چون باید با چیزهای مثل HTML و CSS و javascirpt سرو کله بزنه که دشواریهای خودشونو دارن. به این افراد اصطلاحا Front-end کار هم میگن چون میان چیزی که کاربر نهایی اون رو میبینه رو میسازن. فک کنم تا اینجا با یک طراح وب آشنا شده باشید اما یک برنامه نویس Back-end کیه و کارش چیه ؟
برنامه نویس Back-end
برنامه نویسی Back-end اصلا چی هست؟ اگه بخوام خیلی ساده براتون تعریفش کنم باید بگم شما یک وبلاگ رو در نظر بگیرید که داخلش هر چند روز یک پست قرار میدید و یک سری اطلاعاتی که به راحتی با پرکردن یک فیلد، به کاربرهاتون نمایش داده میشن یعنی اطلاعاتی که شما داخل پنل مدیریت میفرستید داخل دیتابیس ذخیره میشه و در نهایت به کاربر نشون داده میشه، اگه هیچ کدوم اینا نباشه، شما یه سایت استاتیک خالی دارید که برای تغییر متنها و قرار دادن پستها باید کدهای html رو تغییر بدید که این یک کار واقعا زمان بره. فکر کنید شما ۲۰۰ پست دارید اونم بطور استاتیک! اووووه اصلا فکرشم ادمو دیونه میکنه! بعد بخواید یک قسمت از صفحه پستها رو تغییر بدید، پس مجبورید برین به هر ۲۰۰ صفحه کد و تغییرات یکسانی رو اعمال کنید. من که عمرا همچین کاری کنم!! اما اگه شما یک back-end کار باشید میتونید هر چیزی رو بسازید از فروشگاهی مثل دیجی کالا گرفته تا سایت های خبری که هر روز باهاش سروکار دارید. دیگه لازم نیست ۲۰۰ تا صفحه رو ادیت کنید فقط کافیه یک صفحه بسازید و اطلاعات رو اونجا نمایش بدید و اگرم به تغییرات برای اون صفحه نیاز داشتید فقط اون صفحه رو تغییر بدید!
همین! کدومش راحتتره؟ امیدوارم متوجه شده باشید که کار یک برنامه نویس back-end چیه.
در ضمن این رو بگم همهی کار یک برنامه نویس back-end بلا استفاده است اگر نیاد یه رابط کاربری برای نشون دادن اطلاعاتش داشته باشه. یعنی اگر بخش Front-end پروژه رو نداشته باشه جز رشتههای متوالی، کاربر نمیتونه چیز دیگهای رو ببینه و این عملا هیچ استفادهای نداره. پس فک کنم همینجا به یه نکته پی بردید که یک برنامهنویس Back-end هر چقدر کارش عالی باشه اما دارای یک Front-end خوب نباشه عملا طرحش شکست خورده است. این حرف برعکسش هم قابل قبول، یعنی شما هرچقدر یک رابط کاربری خوب برای یک وبسایت مثلا فروشگاهی داشته باشید ولی Back-end پروژهتون یه پاش بلنگه بازم کارتون شکست خورده است. پس جفتش مکمل هم هست، البته این در صورتی که وبسایتتون بخواد یه کار داینامیکی بکنه مثلا برای نمایش نمونه کارها همون وبسایت استاتیک هم میتونه کارایی خوبی رو داشته باشه.
برای اینکه یک برنامه نویس Back-end بشین با دنیایی از زبان های این حوزه مواجه این ، مثل PHP , ASP.NET , Ruby , python و …. که تعدادشون هم کم نیست. مطمئنم همون اول گیر میکنید که کدوم رو باید انتخاب بکنید؟ و زمانی که از هرکی میپرسید چه زبانی رو انتخاب کنم اون یا زبانی رو میگه که داره باهاش کار میکنه یا زبانی رو میگه که دوسش داره از این دو حالت خارج نیست. تعداد افرادی که بیان بطور اصولی بگن چی بهتره خیلی کمه چون همه به این اعتقاد دارن، زبانی که باهاش کار میکنن عالیه! یه جور پایین اومدن کلاسه اگه بگن اینی که من دارم کار میکنم خیلی خوب نیست.
اما به نظرم واقعیت اینکه هر یک از این زبانها ویژگیهای خودشون رو دارن اما در ایران چون زبانهای ++C و #C در دانشگاهها تدریس میشه و افراد آشنایی اولیه با اونا دارن! برای همین زبانهای ASP.NET و PHP برای شروع خوب به نظر میان البته این حرفم به معنی این نیست که این دو تا زبان چیز کمتری از بقیه دارن ولی با پیش زمینهای که گفتم انتخاب خوبی به حساب میان.
طراح وب یا برنامه نویس Back-end یا هر دوش؟ انتخاب آخر با خودتون است، زمانی که یکی از اونها رو شروع کنید با دنیای متفاوتی مواجه میشین که هرچقدرهم به عمقش فرو برید میبینید بازم چیزی هست که یاد بگیرید.
امیدوارم این پست مورد استفادهتون قرار گرفته باشه منتظر نظرات خوبتون هستم.
منبع: راکت