شما چه نوع توسعه دهنده نرم افزار هستید؟

July 2020

ویدیویی وجود ندارد

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

 

شما نمی خواهید یک وکیل طلاق برای شما مشکل مالیاتی یا املاک و مستغلات ارائه دهد ، بنابراین تخصص مهم است. یک وکیل از دانشکده حقوق بیرون نمی آید و تصمیم می گیرد که آنها فقط می خواهند یک "وکیل" باشند ، اما متأسفانه این دقیقاً کاری است که بیشتر توسعه دهندگان نرم افزار هنگام صحبت از حرفه خود انجام می دهند.

 

تخصص مهم است

بسیاری از توسعه دهندگان نرم افزار وجود دارند که تخصص خاصی ندارند. در حقیقت ، بیشتر توسعه دهندگان نرم افزار تخصص خود را با چه زبان برنامه نویسی که با آن کار می کنند کاملاً تعریف می کنند. "من یک توسعه دهنده C # هستم" یا "من یک توسعه دهنده جاوا هستم". این نوع تخصص بیش از حد گسترده است. واقعاً در مورد نوع کار توسعه نرم افزاری که می توانید انجام دهید ، کافی نیست. یک زبان برنامه نویسی درمورد نوع برنامه نویس شما و آنچه در واقع می توانید انجام دهید به من چیزی نمی گوید. این تنها یک ابزار به من می گوید که شما برای انجام کار خود استفاده می کنید.

 

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

 

دوباره به وضعیت وکالت فکر کنید. اگر وکالت شدید و تخصص خاصی نداشتید ، از نظر فنی هر شخصی که به دنبال وکالت است می تواند موکل شما باشد. اما مشکل اینجاست که تعداد بسیار کمی از افراد مایل به استخدام یک وکیل عمومی هستند. بیشتر مشتریان بالقوه به دنبال استخدام متخصص هستند.

 

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

 

دقیق شدن در تخصص‌ها

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

 

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

 

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

 

انواع تخصص ها برای توسعه دهندگان نرم افزار

انواع مختلفی از تخصص های مختلف برای توسعه دهندگان نرم افزار وجود دارد. بدیهی است که تخصص های زبانی و تخصص های سکو وجود دارد ، اما در متدولوژی ها و فن آوری های خاص یا صنایع نیز تخصص هایی وجود دارد.

 

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

 

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

 

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

 

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

 

انتخاب تخصص شما

بیشتر توسعه دهندگان نرم افزار که من در مورد تخصص می گویم با من موافق هستند ، اما من اغلب از این سؤال می کنم که چگونه یک تخصص را انتخاب کنم. انتخاب یک تخصص معمولاً ممکن است کار بزرگی به نظر برسد. در اینجا چند نکته برای کمک به شما در انتخاب تخصص خود آورده شده است:

برخی از نکات عمده درد در شرکت فعلی یا قبلی شما کدام بودند؟ آیا می توانید فردی باشید که در حل آن نقاط درد تخصص دارد؟

 

هر کاری انجام دهید ، حتماً نوعی تخصص را انتخاب کنید. اندازه بازار شما مشخص خواهد کرد که چقدر خاص است ، اما سعی کنید آن را تا حد امکان مشخص کنید. در این صورت تقاضای بسیار بیشتری در بازار خاص خود خواهید داشت. و نگران نباشید؛ در صورت نیاز همیشه می توانید تخصص خود را تغییر دهید. بدیهی است ، من دیگر تخصص خاصی در زمینه توسعه نرم افزار برای چاپگرها ندارم ، و بسیاری از برنامه نویسان دیگر را می شناسم که در دوران حرفه خود موفق به موفقیت در زمینه های مختلف شده اند. به عنوان مثال ، یکی از دوستان خوب من ، جان پاپا ، سابقاً در Microsoft Silverlight تخصص داشت. بعد از اینکه Silverlight از بین رفت ، وی تخصص خود را به برنامه های Single Page (SPA) تغییر داد.

 

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

 

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

 

خوب است که یک برنامه نویس داشته باشید که بتواند هر کاری را در تیم انجام دهد ، اما بندرت شرکتها یا مشتریانی برای یافتن آن نوع شخصی تعیین می کنند. حتی اگر شما ممکن است در انواع مختلف فن آوری های مختلف بسیار جذاب باشید و 50 زبان برنامه نویسی مختلف را بدانید ، باز هم بهتر است برخی از تخصص ها را انتخاب کنید - حتی اگر هر از گاهی تغییر کند.

 

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

ارسال نظر

اگر قراره سوالی بپرسید که داخلش کد هست، بهتره از کدتون عکس بگیرید و به ایمیلی که پایین نوشتم بفرستید