برنامه نویسی فرانت اند و بک اند چه فرقی با هم دارن؟ برای آموزش اونها از کجا شروع کنیم؟ درآمد برنامه نویس فرانت اند و بک اند چقدره؟
در این نوشته درباره این سوالات با کسی که خودش توی همین زمینه مشغول به کاره گفتگو کردیم.
برای آشنایی با برنامهنویسی فرانت اند و بک اند گفتگوی کارنکن با یحیی صیاد اربابی رو از دست ندید:
لطفا اول برنامه نویسی فرانت اند و بک اند رو معرفی کن و بگو چه فرقی با هم دارن؟
برنامهنویسی بکاند (back end) به قسمت از برنامه گفته میشه که با لایهی دیتا سروکار داره که در مقابل فرانتاند (front end) قرار میگیره. تو برنامهنویسی وب، کسی که با دیتابیس و منطقِ سمتِ سرور کار میکنه میشه برنامهنویس بکاند و چیزی که شما توی مرورگر خودتون میبینید کار برنامهنویس فرانتاند هست. برنامهنویس فرانتاند (front-end) به قسمتی از برنامهنویسی گفته میشه که با اونچه که کاربر سمت مرورگرش می بینه مربوط میشه.
آیا داشتن سابقه تحصیلات آکادمیک در این شغل ضروریه؟ میشه بدون مدرک دانشگاهی وارد این شغل شد؟
بله میشه. درواقع چند روش برای درآمدزایی از برنامهنویسی وجود داره. میتونید به شکل فریلنس کار کنید و فقط با ارائهی رزومه و نمونهکارهاتون پروژه بگیرید که خب این روش که قطعاً نیازی به مدرک دانشگاهی نداره.
روش دیگه این هست که برید برای یک شرکت یا تیم کار کنید. که در این روش هم من در ۴-۵ سال گذشته حدود ۲۰ تا مصاحبه رو رفتم و برای ۴-۵ تا شرکت کار کردم، فقط یکجا مدرک دانشگاهی رو جدی مورد سؤال قرار دادند. حتی به ندرت در مورد تحصیلاتم پرسیدن. درواقع اعتبار کاری شما وابسته به تواناییها، دانش، پرتفلیو و رزومهی شماست تا مدرک دانشگاهیتون. خوندن این مطلب رو هم پیشنهاد میکنم.
سابقه کاری در این حوزه شغلی چقدر موثره؟ چقدر بر ارتقا در این شغل تاثیر داره؟
خب سابقهی کاری قطعاً بیاهمیت نیست. اینکه روی چه پروژههایی و با چه تیمهایی کار کرده باشی. ولی نکتهی مثبت این شغل این هست که شما خودتون میتونید در ابتدای کار پروژههایی رو برای خودتون تعریف کنید و پرتفولیوی خودتون رو بسازید.
آیا قبل از داشتن سابقه کار در رزومه، میشه نمونهکار ارایه کرد؟ چطوری میشه؟
مثلا شما می تونی برای خودت یه سایت خوب بزنی و اون رو بعنوان نمونه کارت برای گرفتن عنوان شغلی طراح سایت ارائه بدی در حالی که هنوز هیچ پروزه ای برای دیگران انجام ندادی. این یه شیوۀ مرسوم هست که خیلی از برنامه نویس هایی که میشناسم در ابتدای مسیر شغلی شون انجام دادن.
از کجا میشه مهارتهای مربوط به برنامه نویسی فرانت اند و بک اند رو یاد گرفت؟
خب در ابتدا شما باید یک زبان برنامهنویسی انتخاب کنید. و بنظرم بیشتر از چند ساعت وقت صرف انتخاب نذارید. دست بکار شدن خیلی مهمتر از زبان هست و انتخاب زبان مثل انتخاب همسر نیست. 😉 میتونید بعداً عوضش کنید. میتونید ویکیپدیای زبانها رو بخونید یا مثلاً اگر بازار کار براتون مهمه ببینید توی جاباینجا (jobinja.ir) کدوم زبانها درخواست بیشتر داری و شرایط شون چی هست.
مثلا میتونید توی جاباینجا عبارت برنامهنویس Front-End رو سرچ کنید و ببینید شرکتهای برای این موقعیت شغلی، بیشتر چه زبونهای برنامهنویسی رو لازم دارن.
بعد از انتخاب زبان، دیدن ویدیوهای آموزشی اون زبان کمک کنندهست. ولی مسئلهای که تازهکارها رو در این مرحله اذیت میکنه اینه که در ابتدای یادگیری یک زبان برنامهنویسی، فرایند یادگیری بیشتر درباره یادگیری قواعد پایه و Syntax اون زبان هست و عملاً نمیشه باهاش خروجی واقعی ساخت.
برای نوشتن یک وبسایت، نیاز به مهارتهای مختلف هست که به شکل پازل کنار همه چیده میشن و به خروجی میرسن. پس این مسأله طبیعی هست و دلسرد نشید. ولی بعوان راهحل سعی کنید کورسهایی رو ببینید که پروژه محور هست. مثلاً اگه میخواید پایتون رو برای وب یاد بگیرید، کورس پایتون نبینید. کورسی که وبنویسی رو بشکل پروژه محور با پایتون یاد میده ببینید.
مثلاً تو این زمنیه دیدن ویدیوهای بستون جادی رو پیشنهاد می کنم.
در مورد منابع در ابتدای کار tutorialspoint.com و w3schools.com رو پیشنهاد میکنم که تقریباً برای همهی زمینههای پایهای آموزشهایی دارن که برای شروع خیلی خوبن.
بعد از اون هم دیدن کورسهای مرتبط و تخصصیتر با هدفی که دارید رو باید ادامه بدید. مثلاً برای کسی که میخواد php کار کنه این کورس رو پیشنهاد میکنم. که فریمورک لاراول رو آموزش میده.
منابع خیلی زیاد هستند و از اینجا به بعد هم کیسها خاص میشن و دیگه نمیشه کلی حرف زد و بسته به هدفتون متفاوت میشه.
ولی نکتهی کلی اینکه یادگیری برنامهنویسی یک مهارت پرکتیکال هست و باید دستهاتون رو کثیف کنید و با ارورهای مختلف سروکله بزنید.
[مطالعه این مطلب هم پیشنهاد میشه: چگونه برنامهنویسی وب را شروع کنم؟]
یادگیری مداوم و به روز بودن دانشمون (در حین کار) در این حوزه چقدر مهمه و پیشنهاد خود تو در این زمینه چیه؟
بخاطر رشد سریع حوزهی نرمافزار، نیاز هست که مهارت و دانش شما هم به همون سرعت رشد کنه، درواقع اگه بخواید برنامهنویس خوبی باشید یادگیری همیشه بخشی از مسیرشغلیتون خواهد بود.
دنبال کردن وبلاگهای فنی و یادگیری تکنولوژیهای جدید مربوط به حوزهی کاری اصلیتری کاری هست که میشه در این زمینه انجام داد.
چه مهارتهای نرمی در این شغل لازم داریم؟
مهارتهای مذاکره برای مصاحبههای شغلی و گرفتن پروژه وقتی که فریلنس هستید خیلی مهم هست. همچنین باید بتونید با تیم کار کنید، کار تیمی بخش مهمی از زندگی شغلی یک برنامهنویس رو تشکیل میده.
اصطلاحات مهم این حوزه چیان؟
گوگل کنید، گوگل کردن شاید بیشترین کاری باشه که یک برنامه نویس هرروز انجام میده. برای هر کلمهای که نمیدونید چیه حتماً ویکیپدیا یک صفحه داره یا یک نفر در موردش یک پست وبلاگ نوشته.
آیا میشه در این حوزه شغلی برای خودمون کار کنیم؟ چطور میشه تیم یا شرکت خودمون رو داشته باشیم یا به صورت مستقل کار کنیم؟
همونطور که گفتم میتونید فریلنس باشید و پروژههای خودتون رو بگیرید. برای شروع سایتهایی مثل پونیشا رو معرفی میکنم.
اگر ایدهای داری که فکر میکنید قابلیت تبدیل شدن به یک کسبوکار و استارتاپ رو داره میتونید شروع کنید. تیم بسازید و حتی سرمایه بگیرید.
امکان دورکاری یا کارکردن به صورت پاره وقت برای برنامه نویس وب هست؟
تو حوزهی نرمافزار دورکاری خیلی مرسوم هست. شرکتهای زیادی هستند که آپشن دورکاری رو براتون باز میذارن، حالا با شرایط مختلف. و نکتهی دیگهای که وجود داره ساعت کاری منعطف هست که در ایران هم خیلی مرسوم شده و باعث میشه ساعت کاری بهینهتری داشته باشی، احساس آزادیِ عمل بیشتر بکنی و در نهایت خوشحالتر باشی.
وضعیت شغلی آینده برنامه نویسی فرانت اند و بک اند به نظرت چطوره؟
بذارید با آمار شروع کنیم، تو نظرسنجی ۲۰۱۵ سایت stackoverflow برنامهنویسای ایرانی بیشترین رضایت شغلی رو بین برنامهنویسای جهان داشتن.
به نسبت بقیه حوزهها، صنعت نرمافزار در حال رشد سریعی هست و در خیلی از حوزهها مثل هوشمصنوعی و بیگدیتا هنوز در ابتدای راه قرار داریم. نرمافزار تقریباً با همهی صنایع ترکیب شده و همچنان در حال نفوذ به بخشهای مختلف زندگی ماست، همهی اینها پتانسیل زیاد نرمافزار و برنامهنویسی وب رو نشون میده. مشکل عمدهای که شرکتها باهاش مواجه هستند نیاز به نیروی متخصص در این زمینهست که به راحتی پیدا نمیشه.
میزان درآمد برنامه نویس وب (فرانت اند و بک اند) چقدره؟
مثل هر شغلی بسته به مهارت و کلی فاکتور دیگه، درآمد شما میتونه متغییر باشه.
طبق نظرسنجی سال ۱۳۹۶ جادی درآمد یک برنامهنویس تو ایران از زیر یک میلیون شروع میشه و بیشینهاش به بالای ۱۳ میلیون میرسه. دیدن این نظرسنجی رو توصیه میکنم.
چطور برای این شغل درخواست بدیم؟ کجا موقعیتهای بهتری برای این شغل میشه پیدا کرد؟
جابینجا از بهترین جاهایی هست که میشه رزومه فرستاد. برای شهرهای کوچیکتر دیدن دیوار و سایتهای محلی هم خوبن.
در جلسه مصاحبه شغلی در این حوزه بیشتر چه سوالاتی پرسیده میشه؟
سؤالات فنی پرسیده میشه تا میزان مهارت شما سنجیده بشه. در مورد تجربههای قبلی و نمونهکارهاتون صحبت میشه و سؤالات متدوال دیگه منابع انسانی سازمانها.
تجهیزات و امکانات فیزیکی لازم و سرمایه لازم برای تهیه اونها چقدره؟
برای شروع برنامهنویسی وب صرف داشتن یک کامپیوتر کفایت میکنه. سیستمی که روش یک سیستمعامل مرسوم داشته باشه، قطعاً پاسخگویی نیازهاتون هست. قیمت گفتن تو این شرایط اعتبارش ساعتی هم نیست پس فکر میکنم نگفتنش بهتر باشه!
سختیهای این شغل چیه؟
معمولاً برنامهنویسها استرسهای زیادی رو متحمل میشن، استرس رسیدن به ددلاینها، استرس پایین اومدن سایت و تلاش برای فیکس کردن باگهایی که ساعتها و روزها طول میکشن.
بعد از این شرایط فیزیکی برنامهنویسهاست که معمولاً باید خیلی مراقبش باشن. چون تقریباً تمام روز روی صندلی میشینیم و به مانیتور خیره میشیم، میتونه برای سلامتمون تهدیدامیز باشه که باید مراقبش بود.
جذابترین بخش این کار برای شما چیه؟
خلق کردن.
آدمها موفق ایرانی در این زمینه کیان؟
بسته به تعریف هرکس از موفقیت پاسخ این سؤال میتونه متفاوت باشه. بذارید ۳ تا مثال بزنم که با ۳ تا تعریف موفقیت همخوانی داشته باشه.
– جادی میرمیرانی (jadi.net)
– حسام میرآرمندهی – مؤسس کافهبازار
– سالار کابلی (sallar.me)
کمی درباره یک روز کاری برنامه نویس فرانت اند وبک اند برامون بگو.
من معمولاً در ابتدای روز نگاهی به هکرنیوز میندازم.
بعدش میشه بررسی آخرین وضعیت سرویسهایی که مسئولیتشون به عهدهی من هست. گاهی گزارش خرابی یا مشکل دارن که باید برطرف بشه.
بعد از این حدود ۳-۴ ساعت کد زدن با تمرکز هست، با چندتا وقفهی ۱۰-۱۵ دقیقهای که گاهی نیاز به تعامل با بقیهی اعضای تیم هم پیش میاد.
بعد از ناهار هم که برای من حدود ساعت یک هست. تقریباً همین فرایند تکرار میشه.
بعنوان سوال پایانی چیز دیگهای هست که بخوای در مورد این شغل بگی؟
مطالعه و یادگیری مداوم خیلی مهمه. وبلاگهای فنی و غیرفنی رو دنبال کنید.
به عنوان برنامهنویس به مهارتهایی مثل کار تیمی، تعاملات انسانی و زندگی اجتماعیتون هم اهمیت بدید. گاهی تأثیرات جدی روی رضایت از زندگی دارند.
و درنهایت کاری رو انجام بدید که بهش علاقه و اشتیاق دارید.
معرفی یحیی از خودش:
من یحیی صیاداربابی هستم. اینجا میتونید نوشتههای فنی و غیرفنیمو ببینید. گیتهابم github.com/theyahya هست و همیشه از ایمیلهایی که آدما بهم میزنن خوشحال میشم: yahya.arbabi@gmail.com
مطلبی که خوندید از مجموعه مطالبی بود که برای سری معرفی شغل نوشته شده.
معرفی شغل هم بخشی از مطالبی هست که با عنوان کارنکن در مورد شغل توی این سایت منتشر شده و خواهد شد.
اینها تجربههای یحیی در این حوزه بود، اگر شما هم برنامه نویس فرانت اند یا بک اند هستید حتما تجربیاتتون رو در قالب کامنت برای تازهکارها بنویسید. اینطوری باعث میشید اونها اشتباهات شما رو تکرار نکنن و بهشون کمک میکنید.
اگر هم تازه میخواید وارد این حوزه بشید، پیشنهادمون اینه که شروع به یادگیری مهارتهای لازم بکنید.
اگر فکر میکنید یادگیری مهارت کار سختیه و تلاشهای گذشته شما برای یادگیری مهارت (مثل زبان انگلیسی یا یک نرمافزار) به شکست منجر شده، باید پیش از هر چیز یادگرفتن رو یاد بگیرید.
[مطلب مرتبط : دوره آنلاین یادگیری اثربخش]
دیدگاه ها
بسیار عالی بود انشالله همیشه موفق و پیروز باشید
عالی بود تشکر از سایت خوبتون
با سپاس فراوان عالی بود
واقعا عالی بود خدا خیرتون بده. کامل و جامع. همه چیو گفتین. ایول!
سایت خوبی دارید
مطالب قشنگی میزارید