
Front-End Developer Handbook/فرانت-اند در عمل: عناوین شغلی/عارف-کی بهتر از تو
سلام. توی قسمت قبلی که قسمت اول بود، یه توضیحات خیلی کلی در مورد وب، فرانت-اند، و خود این دوره دادم. توی این لینک:
Front-End Developer Handbook/مقدمه/احمد آزاد-آبادان
توی این قسمت میخوایم یکم توی فرانت-اند ریزتر بشیم و ببینم چی به چیه. مثلا عناوین شغلی مربوط به فرانت-اند چیا هستند، چه تکنولوژیهایی استفاده میشند، حقوق و درآمدها به چه صورته، و این جور چیزها.
عناوین شغلی
بیشترین عنوای که به چشممون میخوره، عنوان Front-End Developer هستش. وقتی به کسی میگیم توسعهدهندهی فرانت-اند، یعنی اون شخص به خوبی به تکنولوژیهای HTML/CSS/JavaScript مسلطه. ولی عناوین زیادی وجود دارند که هرکدوم با دیگری واقعا متفاوت هستش و خب طبیعتا با پیشرفت دنیای کامپیوتر، نه تنها توی این حوزه، بلکه توی حوزههای دیگه هم شاهد بهوجود اومدن مشاغلی هستیم که از پیش وجود خارجی نداشتند.
۱- Front-End Developer
همونطور که گفتم، کسی که با این عنوان خطاب میشه، به خوبی میتونه از HTML/CSS/JS استفاده و با DOM کار کنه. حالا DOM چیه؟ یک توضیح مختصر دربارهاش میدم.
وقتی یکه صفحهی وب، مثل همینی که الان دارین میخونین، به صورت کامل لود یا اگه دقیقتر بخوایم بگیم، توسط مرورگر رندر میشه، یک Object Model تشکیل میشه. این مدل یک ساختار درختی داره که ریشهی اون خود صفحه یا Document هستش. اینو بهش میگیم HTML Document Object Model یا HTML DOM. حالا منظور از DOM اینه که ما برای دسترسی به تمامی Objectهای این مدل-شامل تگهای HTML- یه استانداری داریم و JS میتونه به راحتی با اون کار کنه. چه کاری؟ تغییر محتوای اونها، تغییر CSS، اضافه کردن Object جدید، و… . این تعریف رو ببینید:
[qut]The W3C DOM is a Platform and Language-Neutral Interface that Allows Programs and Scripts to Dynamically Access and Update The Content, Structure, and Style of a Document[/qut]
این تعریف میگه که DOM یک پلتفرمه، و به صورت یکسان برای تمامی زبانها، که به برنامهها و اسکریپتها اختیار دسترسی و آپدیت(همون دستکاری خودمون) محتوا، ساختار، و استایل داکیومنت(همون صفحهی وب) رو، به صورت داینامیک میده.
فکر میکنم توضیحات برای DOM تا همین اندازه کافی باشه توی این مبحث.
۲- Front-End Engineer
به این عنوان شغلی، توسعهدهندهی جاوااسکریپت و توسعهدهندهی فولاستک(Full-Stack) جاوااسکریپت هم میگند. این عنوان معمولا به کسی اطلاق میشه که یک مدرک در زمینههای مهندسی یا علوم کامپیوتر داره، و از اون برای کار با تکنولوژیهای فرانت-اند استفاده میکنه. ولی همینطور الکیالکی هم نیست؛ که مثلا یه مدرک داشته باشی و همین. نچ، علاوه بر مدرک باید چندسال سابقهی کار توی این فیلد رو داشته باشی. بیخود که بهت نمیگند توسعهدهندهی جاوااسکریپت، اونم فولاستک! باید سابقهی توسعهی اپهای جاوااسکریپتی رو داشته باشی؛ باید سابقهی برنامهنویسی داشته باشی، باید سابقهی توسعهی نرمافزار داشته باشی، و همهی اینها به صورت پیشرفته(Advanced).
۳- HTML/CSS Developer
اسم این عنوان شغلی به اندازهی کافی گویاست. شخصی که به این دو تکنولوژی مسلطه، و سروکارش به JS نمیافته.
۴- Front-End Web Designer
این عنوان به کسی اطلاق میشه که علاوه بر مهارتهای توسعهی فرانت-اند، توانایی طراحی رو هم داره. در نتیجه این فرد باید بتونه با ابزارهای طراحی مثل Photoshop و یا Xd کار کنه.
۵- Web/Front-End User Interface(UI) Developer/Engineer
کسی که علاوه بر مهارتهای توسعهی فرانت-اند، باید مهارتهای مروبط به طراحی رابط کاربری، مثل طراحی اینتراکشنها(Interaction)، رو هم داشته باشه. منظور از اینتراکشن تعاملاتیه که کاربر برقرار میکنه؛ با هر آنچیزیه که در فرانت-اند اپلیکیشن وجود داره.
۶- Mobile/Tablet Front-End Developer
وقتی حرف از موبایل و تبلت میاد وسط، یعنی شخص باید توانایی و تجربهی توسعهی فرانت-اند در اپهای این نوع دیوایسها(Devices) رو داشته باشه. حالا چه Native و یا چه اپهایی که در مرورگر اجرا میشند. یه مختصر توضیحی توی قسمت اول این دوره دربارهی این مورد دادم، لینکش رو میذارم اینجا، نه بکشین بالا، نه بکشین پایین(لینک منظورمه)، فقط روش کلیک کنید.
۷- Front-End SEO Expert
توسعهدهندهی فرانت-اندی که توانایی و تجربهی پیادهسازی و توسعهی فرانت-اند رو، در جهت برآوردهسازی استراتژیهایی که مربوط به SEO میشه، داشته باشه. توی این عنوان شغلی تجربهی کار در زمینهی SEO خیلی مهمه.
۸- Front-End Accessibility Expert
این عنوان شغلی نیازمند داشتن تخصص در زمینهی دسترسپذیر(Accessible) بودن یک اپلیکیشنه. تست دسترسپذیری به این میپردازه که کار با این اپلیکیشن برای افرادی که دارای ناتوانی خاصی هستند چقدر راحته، و آیا اصلا راحته؟
۹- Front-End Dev. Ops
توضیحات مفصل در مورد این عنوان شغلی توی این پست نمیگنجه.، چه بسا که شاید لازم هم نباشه. این رو داخل پرانتز داشته باشید، یکی از دغدغههای من راه انداختن inbinary.ir هستش که توی دربارهی من سایت دربارهاش توضیح دادم. اونجا با خیال راحت و تمرکز بیشتر میپردازم به اینجور مباحث. امیدوارم در بهار پیشرو این پروژه رو به انجام برسونم.
و این عنوان شغلی، وقتی کلمهی Dev. Ops میاد توی عنوان یک تخصص، یعنی فردی که این عنوان شغلی رو داره باید تجربهی توسعهی نرمافزار مرتبط با Collaboration، Integration، Deployment، Automation، و Deployment رو داشته باشه. این موارد از اساسیترین موضوعات در مهندسی کامپیوتر هستند. همونطور که گفتم توضیح مفصل از حوصلهی این تاپیک خارجه.
۱۰- Front-End Testing/QA
این عنوان شغلی به اون توسعهدهندهی فرانت-اندی اطلاق میشه که توانایی و تجربهی انجام تستهای نرمافزار و تجربهی کاربری(UX) رو داشته باشه. تستهایی مثل: تست A/B، تست Unit، و… .
ترانهی این قسمت
خب، نوبتی هم که باشه نوبت آهنگه. دیدین این مجریها رو؟ :دی
رضای عزیز
سلام
1- خیلی خدا رو شکر که این مبحث آموزشی به جلسه دوم رسید. ادامه بده که داریم از این یادداشتهای شما بهره میبریم برادر.
2- عنوانهای شغلی که اینجا نوشتی رو توی آگهیهای استخدامی زیاد دیدم، ولی این طور بوده که دو سه تا از اینها در کنار هم بوده، یعنی یه دولوپر باید همزمان چند تا از این تخصصها رو داشته باشه. نمیدونم این کار استاندارد هست یا نه ولی رویه موجود ظاهرا همینه.
3- آقا من از اول هم با مفهوم DOM مشکل داشتم. این که آبجکت هست یا پلتفرم یکم گیجم میکنه. تنها چیزی که توی ذهنم هست اینه که یه آبجکت رو در نظر میگیرم و روی اون دسترسی رو تعریف میکنم. برای من آبجکت مفهومتره.
4- فول استک مگه مال کسی که هم بکاند کار باشه هم فرانتاند کار استفاده نمیشد؟
موفق باشی برادر
سلام حسینجان.
1. خیلی خوب میشه اگه تا قبل از پایان سال قسمت سوم رو هم منتشر کنم. مخلصیم. خوشحالم که اینطوره.
2. آره، بیشتر اوقات همینطوره. منتهی در یک رویهی درست به نظر میرسه که تخصصها باید جدا از همدیگه باشند. در عمل اما، خیلی اینجوری نیست. حالا نمیدونم در سایر کشورها به چه صورته.
3. من اینجور وقتها سعی میکنم روی مفهوم تمرکز کنم. توی این مورد هم تا حدودی به مفهوم DOM مسلطم و میدونم چی به چیه. فکر میکنم این مدلی پیش بریم بد نیست؛ البته گاهی وقتها.
4. برای من هم جدید بود اولش . بعدش گفتم شاید منظورش اینه که محیطها و فریمورکهای سمت سرور جاوااسکریپت رو هم بلد باشی. بعدترش گفتم مگه ما دربارهی فرانت حرف نمیزنیم؟ نمیدونم دقیق؛ ولی فکر میکنم منظورش تسلط قابل قبول روی جاوااسکریپته.
مخلصیم. مرسی بابت دیدگاههای خوبت.