انواع درجه های برنامه نویس ها و انواع دولوپر

developer - انواع درجه های برنامه نویس ها و انواع دولوپر

انواع درجه های برنامه نویس ها و انواع دولوپر Types of programmers and types of Developer

کُدر، Coder

کدنویس یا کدر به شخصی گفته می شود که می تواند کد بنویسد و مفاهیم اولیه برنامه نویسی و سینتکس های زبان برنامه نویسی که با آن کد می زند را می‌داند اما دیدگاه و توانایی های یک برنامه نویس را ندارد، یک کدنویس دیدگاه یک برنامه نویس را هنوز پیدا نکرده و هنوز با مفاهیم مهم همان زبان نیز آشنایی ندارد.

یک کدر در حقیقت در تلاش است که یک برنامه نویس شود. به زبان ساده یک کدر بعد از چندسال تلاش تبدیل به یک پروگرامر یا برنامه نویس می شود.

برنامه نویس، Programmer

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

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

female developer vector illustration 1170x694 - انواع درجه های برنامه نویس ها و انواع دولوپر

دولوپر، Developer

دولوپر یا توسعه دهنده یک کلمه کلی است و بعضی اوقات به صورت اشتباه توسط متخصصین استفاده می‌شود. به عنوان مثال: اندروید دولوپر یعنی کسی که در کمپانی گوگل در حال توسعه سیستم عامل اندروید است و جزئی از تیم توسعه اندروید است. اما اندورید اپلیکیشن دولوپر یعنی توسعه دهنده برنامه های اندرویدی که توانایی تولید اپلیکیشن را به تنهایی دارد.

توسعه دهنده نرم‌افزار یک شخص متخصص و با تجربه در زمینه نرم افزار است. نکته بسیار مهم در مورد دولوپرها این است که یک دولوپر شخص با تجربه ای در زمینه های مختلف است و نمی تواند یک شخص جوان باشد.

کلمه توسعه دهنده به تنهایی معنی نمی‌دهد و باید تخصص بعدی آن نیز بیان شود، به عنوان مثال، توسعه دهنده برنامه های اندروید یا توسعه دهنده وب یا وب دولوپر یا توسعه دهنده کرنل لینوکس.

یک توسعه دهنده حتما یک برنامه نویس عالی است و فراتر از یک برنامه نویس است. توسعه دهنده تجربه کار با تیم‌های مختلف در پروژه های مختلف را داشته و در پروژه های زیادی به عنوان یک برنامه نویس فعالیت داشته.

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

حضور یک دولوپر در تیم های استارتاپی بسیار مهم است چرا که دولوپرها دقیقا می دانند از چه ابزاری، چه زمانی باید استفاده شود. همچنین دید بلند مدت نسبت به پروژه‌ها داشته و در انتخاب های اولیه بسیار موثر عمل می‌کنند.

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

Junior Developer - انواع درجه های برنامه نویس ها و انواع دولوپر

درجه های برنامه نویس » جونیور دولوپر Junior Developer

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

نوشتنِ کدهای سرراست و ساده کارِ سختی است که اغلبِ جونیورها از انجام آن سرباز می‌زنند. توسعه‌دهندگان جونیور بیشتر تمایل دارند کدهای تک خطی و Abstraction Layer های پیچیده تعریف کنند تا به دیگران تواناییِ خود را ثابت کنند.

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

توسعه دهده های جوان می توانند برای مشاغل توسعه دهنده وب در سطح ورودی به عنوان یک توسعه دهنده وب با دانش کار در زبان های برنامه نویسی HTML ، CSS ، JavaScript و jQuery اقدام به شروع کار کنند و می توانند هر تعداد از دوره های آموزش آنلاین یا برنامه های حضوری و برنامه های شخصی را پیدا کنند. بسته به اینکه چقدر وقت و هزینه ای باید صرف کنند ، این مهارت ها را انتخاب کنند؛ یعنی اگر شما روزی یک ساعت وقت دارید فقط از دوره های غیر حضوری استفاده کنید و پس از اتمام این دوره یک دوره دیگری رو شروع کنید.

یک توسعه دهنده نها به سالهای تجربه برنامه نویسی که دارد ارتباطی ندارد. یک توسعه دهنده جوان (Junior) حتی می تواند قدیمی تر از یک توسعه دهنده ارشد (senior) باشد. این بدان معنا نیست که یک توسعه دهنده ارشد باید در همه چیز متخصص باشد، اما به جرات می توان گفت توسعه دهندگان ارشد به مراتب ماهرتر از توسعه دهندگان سطح متوسط (mid-level) و جوان هستند.

Junior: عموما به کسی گفته می‌شود که 1 تا 3 سال تجربه برنامه نویسی دارد. معمولا کد‌های نوشته شده توسط این افراد باید بررسی شود چون احتمال اشتباه در آن زیاد است. اکثر کد‌های نوشته شده توسط این افراد به صورت dirty code است. راهنمایی هایی که به این افراد داده می‌شود شامل راهنمایی در زمینه ساختاری و الگوریتمی نیز می‌باشد.

mid level - انواع درجه های برنامه نویس ها و انواع دولوپر

درجه های برنامه نویس » میدل دولوپر mid-level

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

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

یک توسعه دهنده سطح میانی می داند که چگونه مشکلات پیچیده را از نظر فنی حل کند. اما آنها همچنین ممکن است فردی باشند که می خواهد 3 هفته طول بکشد تا یک فشار عملکرد را با هزینه ای باورنکردنی و پیچیده از بین ببرد. توسعه دهنده Mid-Level مانند Junior Developer ، کارکرد یک نرم افزار را معادل یک نرم افزار خوب مشاهده می کند، یعنی اگر برنامه کار کند در نتیجه یک برنامه‌ی خوب است! و توسعه دهندگان سطح متوسط ​​به طور کلی در ساخت نرم افزارهایی که کار کنند بسیار خوب هستند.

Mid-Level: برنامه نویسان در این رده بین 4 تا 6 سال تجربه دارند. می‌توانند به تنهایی نیز یک مشکل موجود در پروژه را حل نمایند. با مباحث مربوطه به طراحی کامپوننت آشنایی دارند و پروژه را بی نیاز از کامپوننت خواهند کرد. حتی در بعضی موارد می‌توانند به تنهایی یک پروژه در سطح کوچک با متوسط را توسعه دهند.

تبدیل شدن از یک دولوپر Junior به یک دولوپر متوسط mid-level

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

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

علاوه بر این، شما باید با بهترین شیوه ها آشنا شوید و با معماری، عملکرد، امنیت و غیره آشنا شوید و شکاف دانش لازم را برای رسیدن به سطح متوسط ببندید.

Ninja 1170x694 - انواع درجه های برنامه نویس ها و انواع دولوپر

درجه های برنامه نویس » نینجا دولوپر Ninja Developer

“نینجا” در “توسعه دهنده وب نینجا” چه چیزی هست؟ چه کسی هست؟ او چه کاری انجام می دهد؟ چه نوع دانش برنامه نویسی دارد؟

عبارت “توسعه دهنده نینجا” معمولاً برای شخصی که تازه کارش را انجام می دهد و معمولاً سریعتر از هر کس دیگری حتی می تواند مشکل را بفهمد مورد استفاده قرار می گیرد.

با روایت زیر به راحتی مشخص می شود:

مدیر پروژه: “خوب ، ما یک نیاز جدید داریم. بگذارید این موضوع را بفهمیم، در اولویت قرار دارد. تیم فروش واقعاً این را می خواهد که در محصول موجود باشد. “

برنامه نویس استاندارد: “خوب، بیایید در مورد چگونگی اجرای بهتر این موضوع صحبت کنیم. ما می توانیم آن را در یک ماژول دیگر به عنوان نوع پسوند قرار دهیم ، یا می توانیم یک ماژول جدید برای این ویژگی بسازیم. “

مدیر پروژه: “بله ، احتمالاً ما باید یک ماژول جدید را در نظر بگیریم زیرا می خواهیم اگر محبوب باشد ، روی این ویژگی گسترش دهیم.”

برنامه نویس استاندارد: “باشه ، من به دو هفته نیاز دارم …”

توسعه دهنده نینجا: “در واقع این کار قبلاً انجام شده است، من فقط به چند ساعت زمان نیاز دارم تا این اجرای را آزمایش کنم و ما آماده هستیم.”

همانطور که می بینید چند موضوع در آنجا وجود دارد. اما ابتدا جوانب مثبت:

    Ninja Devs کارها را سریع انجام می دهد.

    نینجا Devs کسانی هستند که شما می خواهید در اطراف آن چه که واقعاً به آن نیاز دارید رفع سریع شود.

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

    نینجا Devs به طور کلی در موارد احمقانه مانند سیاست های اداری یا جنگ های مقدس نرم افزار قصور نمی شود. آنها فقط کارها را انجام می دهند.

نکات منفی:

نوشتن کد سریع اغلب بهترین تفکر نیست. برنامه ریزی فقط برای آینده توسعه اتفاق نمی افتد.

وقتی یک عضو فقط کارهای خود را انجام می دهد کار تیمی سخت است

    خیلی از میانبرها می توانند منجر به بدهی های فنی ماهانه شوند. من پروژه هایی را دیدم که 2-3 سال با نسخه های مختلف در حال سفر هستند و ناگهان در یک جاده خاموش قرار گرفتند و در آنجا به ماه ها نیاز دارند تا بتوانند تغییرات خرد بعدی را به دلیل بدهی فنی دریافت کنند.

    تعریف ناامیدی از نینجا توسط سایر اعضای تیم می تواند دشوار باشد. برخی از این احتمالاً به دلایل خوبی است ، اما مدیریت معمولاً آن را به اشتباه فقط به حسادت یا مسائل رقابتی نسبت می دهد.

    بعضی اوقات کیفیت واقعا وحشتناک است.

برخی از شیاطین !!! وجود دارند که برخی از خصوصیات نینجا را دارند اما همچنین کار خوبی را در کار با تیم انجام می دهند. این موارد ارزش هر ریال (الان تومن شده) دارند. آنها واقعاً می توانند در صورت لزوم راه حل های سریع ارائه دهند اما همچنین برای برنامه ریزی وقت لازم دارند و مطمئن می شوند در صورت لزوم بدهی فنی بیشتری اضافه نمی کنند.

نینجا ها ، یا شینوبی (به زبان ژاپنی) یک واحد نظامی در ژاپن بودند که به نحوه جنگ غیر سنتی آموزش دیده بودند. امروز این اصطلاح باستانی برای نوعی توسعه دهنده نرم افزار اعمال می شود: Ninja Developer.

فناوری پشته

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

در اینجا چند نمونه از پشته های فناوری آورده شده است:

  • پشته LAMP (لینوکس ، آپاچی ، MySQL ، PHP)
  • LEMP (Linux، Nginx، MySQL، PHP)
  • MEAN (مونگو ، اکسپرس ، زاویه ای ، گره)
  • ELK (Elasticsearch ، Logstash ، Kibana)

توسعه دهندگان کامل پشته

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

چرا آنها را توسعه دهندگان Ninja می نامند؟

توسعه دهندگان Ninja خود را تنها به یک زبان برنامه نویسی یا یک پشته فناوری محدود نمی کنند. آنها “چند زبانه توسعه دهنده” هستند.

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

و تا آنجا که به صورت چند زبانه وجود دارد، توسعه دهندگان Ninja می توانند به طور مؤثر زبانها را متنوع مانند Lisp ، Haskell ، Scala یا Clojure انجام دهند و به زبانهای استاتیک مانند JAVA ، Groovy و C ++ تسلط داشته باشند.

آنها همچنین به طرز ماهرانه ای زبانهای برنامه نویسی پویا مانند JavaScript ، Ruby ، ​​Python و PHP را مدیریت می کنند و معتقدند که آیا این زبان نیست ، آنها با زبان های توسعه برنامه های کاربردی موبایل مانند Android ، Swift و Objective-c آشنا هستند. زبان های توسعه بازی مانند Lua (c)؛ زبانهای ناهمزمان مانند نودژها؛ و زبانهای مدل سازی آماری مانند R که به طور گسترده در پروژه های داده بزرگ مورد استفاده قرار می گیرد.

از نظر داده های مداوم، توسعه دهندگان Ninja می توانند به راحتی پایگاه داده های رابطه ای مانند NO-SQL (MongoDB ، Cassandra ، New SQL و غیره) را هدایت کنند. و اگر این کافی نبود ، آنها صداقت قضاوت را برای انتخاب بهترین فناوری برای مشکل موجود دارند.

توسعه دهنده نینجا در دنیای کار

سازمان ها با کمترین حقوق ممکن، با استعداد ترین حرفه ای ها را جستجو می کنند، اما نوع دانشی که یک توسعه دهنده Ninja از آن برخوردار است، دارای یک برچسب قیمت شدید است. دلیل این امر این است که آنها در واقع توسعه دهندگان کامل پشته هستند که می توانند در پشته های مختلف فن آوری کار کنند – یک مهارت است که در حال افزایش تقاضا است و بسیار خوب جبران می شود!

اگرچه توسعه دهنده نینجا به جای تخصص عمیق در یک یا دو زمینه، دانش گسترده ای دارد، اما به دست آوردن دانش در مجموعه های مهارت فوق الذکر سالها وقف می کند. چیزی به عنوان یک توسعه دهنده Junior یا Semi-Senior Ninja وجود ندارد. یا شما یکی هستید ، یا هنوز نیستید …

امروزه متوسط ​​فارغ التحصیلان رشته مهندسی کامپیوتر یا دانش آموخته MIS بدون دانش لازم برای رسیدن به این سطح. برای تبدیل شدن به یک توسعه دهنده Ninja ، حداقل 4 سال کالج و 5-10 سال تمرین در محل کار شروع است.

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

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

Senior Developer - انواع درجه های برنامه نویس ها و انواع دولوپر

درجه های برنامه نویس » سنیور دولوپر Senior Developer

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

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

توسعه دهندگان ارشد مشکلات را با پرتاب کد به آنها حل نمی کنند. و آنها تنها مشکلات را حل نمی کنند. آنها یک عضو مؤثر در یک تیم هستند که به جای اینکه در سطح بیت و بایت باشد، در سطح برنامه به مشکلات نزدیک می شوند.

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

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

در اینجا چند مورد از پاسخهای متداول که هنگام سؤال از آنها یافتیم ، آورده شده است: “توسعه دهنده ارشد چه چیزی را مشخص می کند؟”

  • دارای X سال تجربه برنامه نویسی

مشخصه ای که در بین مصاحبه شونده ها سازگارترین آنها بود این بود که یک توسعه دهنده ارشد باید حداقل X سال تجربه داشته باشد. “X” واقعاً می تواند هر عدد باشد ، اما بیشتر توسعه دهندگان و مدیران استخدام کننده با آنها صحبت کردیم که توافق کردند که 10 عدد خوب باشد.

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

  • نمایشگاه مهارتهای رهبری

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

الکس سوپینکا ، CTO از Tasytt ، این امر را خوب بیان کرد و گفت: “برای من، یک ارشد توسعه دهنده کسی است که سابقه موفقیت از جمله درک نیازهای پروژه و تحویل آنها را دارد. او شروع به نمایش مهارت های رهبری و توانایی تفویض و مدیریت می کند. “

  • می توانید چرخه زندگی توسعه نرم افزار را کنترل یا دولوپر کنید

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

Zeel Jadia ، SVP مهندسی در Events.com ، موافق است و می گوید: “یک برنامه نویس ارشد شخصی است که با تجربه است و توانایی اجرای پروژه های بزرگ را از انتها تا انتها دارد.”

  • پشتیبانی از توسعه دهندگان جوان

اغلب یک توسعه دهنده ارشد از یک Junior Developer ارتقا می یابد ، بنابراین وظایف مدیریتی یا مربیگری بیشتری در کل تیم به شما اختصاص می یابد. هانا لینکلن ، مشاور راه حل سرب در Itas ، هنگام توصیف آنچه باید یک ارشد توسعه دهنده داشته باشد از این اصل استفاده کرد. او می گوید: “یک توسعه دهنده ارشد کسی است که سالها تجربه دارد، به عنوان مربی عمل می کند و از توسعه دهندگان جوان پشتیبانی می کند.”

  • تیم پویا را درک و احترام می گذارد

جورج هیلاک ، VP Technology در دافی ، می گوید: “برای من چیزی که یک توسعه دهنده ارشد را تعیین می کند ، برای کسی است که نه تنها در سمت فنی ، بلکه با کسی که توانایی تحویل در محیط تیمی را دارد ، تجربه کند. یک ارشد توسعه دهنده شخصی است که دینامیک تیم را درک می کند و سایر رشته های مورد نیاز برای ارائه نرم افزار عالی را احترام می گذارد. من با بسیاری از توسعه دهندگان نرم افزار کار کرده ام که معتقدند tech “king” است و سایر اعضای تیم (QA ، Design UX ، PM و غیره) ثانویه هستند. یک توسعه دهنده ارشد که می تواند با یک تیم همکاری کند و از تمام مجموعه های مهارتهای خود استفاده کند ، معمولاً در بسیاری از پروژه ها کار کرده است و یاد گرفته است که شما نمی توانید همه این کارها را خودتان انجام دهید. “

Senior Developer: برای به دست آوردن مهارت‌ها و توانایی‌های یک برنامه نویس ارشد لازم است که حداقل 8 تا 10 سال تجربه برنامه نویسی در یک زبان را داشته باشید. البته این در مورد همگان صادق نیست . شاید کسی بتواند این راه  را در کمتر از 8 سال طی نماید. این بستگی به تلاش و استعداد فرد دارد. اما تجربه بیشتر یعنی شرکت در پروژه‌های بیشتر و آمادگی بیشتر در حل مشکلات و مسائل مختلف در طی روند تکمیل پروژه. برای مثال در زمینه تخمین اجرای یک Task داشتن تجربه بیشتر خیلی به شما کمک خواهد کرد.

تبدیل شدن از یک دولوپر Junior به یک دولوپر Senior

انجام فرایند ریفکتورینگ در زمان مناسب

Refactoring به فرایندی گفته می‌شود که در آن برنامه‌نویس اقدام به بهبود سورس‌کد پروژه می‌کند که یا خود قبلاً آن‌ها را نوشته است یا اینکه از برنامه‌نویس دیگری به وی به ارث رسیده است. گاهی اوقات برخی برنامه‌نویسان بر این باورند که «برنامه‌ای که دارد به درستی کار می‌کند، نیاز به ریفکتورینگ ندارد» که این جمله در برخی مواقع درست بوده اما در برخی مواقع باید جلوی این طرز تفکر را گرفت.

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

نگاه کردن به کدهای سایر دولوپر های حرفه‌ای

به طور خلاصه، نگاه کردن و مرور کدهای سایر برنامه‌نویسان (البته برنامه‌نویسان حرفه‌ای) به منزلهٔ یک منبع آموزشی بسیار مفید برای یادگیری اصول برنامه‌نویسی است. به طور مثال، فرض کنید که قصد نوشتن یک وب اپلیکیشن را دارید. بخش‌های سادهٔ کار را به خوبی پیش برده‌اید اما زمانی که می‌خواهید یک API برای وبلاگ خود بنویسید، نیاز به کمک دارید. برای این منظور، اگر دورهٔ آموزشی مفیدی نیافتید، حتماً با یک جستجوی ساده در گیت‌هاب با یکسری پروژه آشنا خواهید شد و با نگاه کردن به سورس‌کد پروژه‌های دیگر برنامه‌نویسان حرفه‌ای می‌توانید با روش اصولی این کار آشنا شوید.

با سایر دولوپرها در ارتباط باشید

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

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

من مشتاقانه منتظر شنیدن نظر شما هستم.

سلام دولوپر

احمد رضاییاحمدرضا پری پیکر

بیشتر از 12 سال هست در زمینه های مختلف وب سایت فعالیت می کنم و به وب‌مستری و برنامه نویسی تحت وب علاقه دارم

قوانین ارسال دیدگاه

  • دیدگاه های فینگلیش تایید نخواهند شد.
  • دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
  • از درج دیدگاه های تکراری پرهیز نمایید.
دیدگاه‌ها

*
*

4 × چهار =

    نوید بیات پاسخ

    بسیار زیبا و جالب بود