مهندسی نرم افزار کیست ؟ و دارای چه ویژگی هایی میباشد
مهندسی نرم افزار کیست ؟ و دارای چه ویژگی هایی میباشد
بزارید بگم وقتی ما صحبت برنامه نویسی میکنیم درایم راجب چه کسی صحبت میکنیم در زبان فارسی به هر کسی که برنامه مینویسید میگیم برنامه نویس دیگه اگه خیلی طرف کارش درست باشه میگیم توسعه دهنده اما به صورت دقیق تر به این قسمتها تقسیم میشوند
Coder
Programmer
Developer
Software engineer
وقتی نقشها و تفاوت را شفاف کنیم ان موقعه بهتر میشود راجبش صحبت کرد حالا با مثال براتون توضیح میدهم فرق اینا چیه
نقش اول coder
کسی که به یک زبان برنامه نویسی مثل php بلده و اگر شما پروژه را براش توضیح بدهید کدر میتونه کارشما را انجام بده.
مثل کسی که اطلاعات در مورد برنامه نویسی داره و اگه بهش بگید برای من یک طراحی وبسایت انجام بده شخص طراح این کار را انجام میده ولی زیاد روی کیفیت بالا و گسترش ان حساب باز نکنید
Programmer
کسی که کارهای کدر را بلد و علاوه بر طراحی یک پروژه کیفیت کار نیز براش بسیار مهمه .کیفبت کار منظورم استاندارد کد نویسی کردن توجه به موارد امنیت ، سئو اولیه و توسعه ان میباشد.
Developer
این شخص هر دو کار بالا رو بلد علاوه بر کیفیت کار میتواند مدیریت یک تیم را در یک پروژه بزرگ به عهده بگیره و با راهنمایی و رهبری افراد تیم نیازهای کارفرما براورده میکند.
Software engineer
تمامی کارهای بالا بلد اما این شخص توانایی پیش برد برنامه ها در قالب یک هولدینگ بزرگ را نیز دارا میباشد .این فرد میتواند تیمهای مختلف در قالب یک گروه با یکدیگر هماهنگ کند این فرد باید توانی حل تداخل برنامه که از طرف تیم های مختلف نوشته شده در قالب یک پروژه بتواند حل کند.
درست مثل یک شرکت بزرگ که داری یک سری زیر شاخه میباشند حالا هر شرکت را توسط Developer رهبری میشه و تمامی این شرکتها توسط Software engineer رهبری میشود .
اما در دنیای مهندسی نرم افزار حالا چه توسطح وب همراه SEO باشه یا بازی های کامپیوتری نیاز که حتی Software engineer نیز با یک دیگر باهم به صورت تیمی کار بکنند. در این صورت است که انتظارات ما از Coder ، Programmert, Develope ,SEO team, و بقیه تیم دیجیتال مارکتینگ در یک پروژه روشن تر خواهد شد. این جوری هیچ مشکلی بوجود نمی اید و شما کارهای خودتو به دیگران محول نمیکند و نمیتونی بگی coder کار خوددشو بد انجام میده.
خوب حالا میخواهیم راجب مهارت های یک مهندس نرم افزار بگم
حداقل مهارت هایی که یک مهندس نرم افزار باید داشته باشد به ان اشاره میکنم . اگر شما خودتون رو در هر یک از این 4 نقش میدونید و یا اگر میدونید تو هر کدوم از انها ضعف داردید در طول زمان سعی کنید این ضعف را برطرف کنید
خوب مهارت های کلی یک مهندس نرم افزار به دو دسته تقسیم میشوند
1-technical skills
soft skills-2
در مهندسی نرم افزار soft skills از technical skills مهم تر هستند چون به نحوه زندگی و تعاملات و روحیات شما بر خواهد گشت و در مهندسی نرم افزار کار تیمی بسیار
مهمترین ویژگی های soft skills کدامها است
به ادمهای دور ورتون توجه کنید هر کسی در تیم شما به اندازه خود شما دوست داره که دیده بشود. پس به انها بها بدید و انها را نقد نکنید کارشون رو نقد کنید که این دو خیلی باهم فرق دارد ، هر چند وقت یک بار خودتون رو بسنجید که ببنید کجای کار هستید ، مسئولیت پزیری در کار بسیار مهم است اگر اشتباهات بدی را انجام دادی ان را به گردن بگیرید و برای جبرانش تلاش کنید ، در هر علمی که که دارید با دیگران به اشتراک بزارید و از این کار نترسید ، به ارمش در زندگیتون بیندیشید و روی سلامت جسمانیتون کار کنید این موارد برای یک برنامه نویس بسیار مهم است و دست کم نگیرید .
ویژگی های Soft skills
به یک زبان برنامه نویسی و یا فرم ورک خاص وابسته نشوید زبان ها و فریم ورک ها مانند جعبه ابزار شما هستند هر چی این جعبه ابزار بزرگتر کامل تر باشد موقع کار کردن راحتر میباشید . البته منظورم این نیست که برید هر چی فرم ورک مربوط به طراحی وب سایت ، نرم افزار ، بازی کامپیوتری هست برید یاد بگیرید به دو زبان مسلط باشید و با بقیه اشنا باشید. اگرم نمیدونید چه زبانی یاد بگیرید توجه شما را به 5 زبان برنامه نویسی قدرت مند جلب میکنم اینگونه اگر میخواهید از زبان دیگر در طراحی پروژه استفاده کنید به مشکل نمیخورید و میدانید کجا و کی و چگونه با این زبان یاد بگیرید کار بکنید.
برای یاد گیری زبان از تکنولوژی پایه استفاده کنید یعنی اگر میخواهید استایل صفحات وب سایت را میخواهید طراحی کنید نرید بوت استرپ و یا فاندیشن را یاد بگیرید برید و بیشتر روی css و بعد از ان روی sass و less را یاد بگیرید چرا چون فریم ورک ها یک روز هستند یک روز نیستند مثل jquery و شما وابسته میشود به فریم ورک یا اگر میخواهید یک وب اپلیکشن یاد بگیرید به جای این که برید react , angular , jquery برید و خود javascript را یاد بگیرید بعد از یاد گیری ان به سراغ فریم ورکهای ان برید.
حتما از سورس کنترلر استفاده کنید یکی از سورس کنترل مثل get tfvc, ،subversion را انتخاب کنید و خوب یاد بگیرید.
حتما راجب مهندسی نرم افزار و معماری ان مطالعه داشته باشید به design pattern تسلط کافی داشته باشید.کیفیت کدی که مینویسید حتما براتون مهم باشد ، ساده خوانا کد بنویسید
دیدگاهتان را بنویسید