how to be a better developer & programmer

Post on 14-Jan-2017

38 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

how to be a better

Developer & Programmerیمچگونه یک توسعه دهنده و برنامه نویس بهتر باش

95مرداد -شرکت رزبن

Passion

ته اید لذت اگر شما عالقه ندارید تا برای یک روز جلوی سیستم نشسته و از خطوط کدی که خودتان نوشباشدببرید این مهارت مناسب شما نمی

اگر شما به کاری عالقه نداشته باشید تمرین کردن امری طاقت فرسا می شود

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

، مهم استخواستن تمرین کلید اصلی این است که تمرین کردن ضروی نیست

یک گیتاریست خوب نمی تواند منتظر بازگشت به خانه و برداشتن گیتار و استفاده از آن شود

به همین ترتیب یک برنامه نویس خوب نمی تواند منتظر کشف چالش کد زنی بعدی شود

شور و اشتیاق

Persistence

ود برنامه مانند یک گیتاریست که ساعت ها و روز ها بر روی کار خود وقت می گذارد تا یک نت ایجاد شنویس هم باید بتواند بار ها و بار ها برای حل مشکل خود تالش کند و ناامید نشود

پافشاری

Improve Your English Language

زبان انگلیسی خود را تقویت کنید

Work on Basics

برای هر صنعت و شغلی فهم مفاهیم نکته کلیدی موفقیت است

تا وقتی که کسی دریافت های مفاهیم قوی نداشته باشد هیچگاه یک برنامه نویس موفق نخواهد بود

فهم مفاهیم اصلی(core)به شما در طراحی و پیاده سازی بهترین راه حل در بهترین زمان ممکن کمک خواهد کرد

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

تقویت پایه

You learn more by helping others

اغلب ما زمانی به فروم ها و گرو ها مراجعه می کنیم که نیازمند کمک باشیم

یک جدا کننده واضح میان برنامه نویس خوب و غیر خوب در مشاهده این مکان ها جهت کمک به دیگران است

در یک تیم خوب همه در حل مشکالت به همدیگر کمک می کنند

شما با کمک به دیگران یاد میگیرید

When you face an error

i'm NOT ALONE

When you see an application(web application or windows),

tell yourself. it's technically possible for you to build a similar one.

try to model it in your mind.

Write a thorough implementation plan (or model).(یا مدل) طرح اجرایی نوشتن

برای موارد کوچک این طرح می تواند یک فلوچارت ساده باشد

کند با در برای پروژه های بزرگتر این طراحی میتواند به شکستن کار به ماژول های کوچک کمک:نظر گرفتن موارد زیر

چه وظایفی را هر ماژول بر عهده دارد-

داده ها چگونه میان ماژول ها جابجا می شوند-

داده ها چگونه داخل هر ماژول استفاده می شوند-

!نفس بکش

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

! (بعضا مشاهده شده بین چای و قهوه بعضی وقت ها کد هم زده می شود )

Comment

نت گذاری اگر می بینید که کد شما نیاز مند توضیح هست کامانجام بدهید

هر تابع باید یک یا دو خط توضیح درباره آرگومان هایورودی و خروجی داشته باشد

کامنت را هنگامی که کد بروز شد ، بروز کنید!!

Use consistent naming conventions for variables

یر ها را این شیوه نام گذاری به شما کمک می کند تا نوع متغدنبال کنید

ام یکی از شیوه های متداول نمایش مجارستانی است که نمتغیر با پیشوند نوع متغیر

:ادغام می گرددintRowCounter متغیرinteger

strUserName متغیرstiring

قواعد نام گذارس سازگار برای متغیر ها

Organize your codeسازمان دهی کد

اده از ساختار های بصری جهت جداکردن ساختار های کد استفکنید

بین متغیر ها و مقادیر با اسپیس فاصله بیاندازید

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

می بخشد

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

!نیاز پیدا کنید ضروری تر می گردد

Write simple, understandable but logical code

مانند همه جنبه های زندگی فرمول ساده و کوتاه بگیر(keep it simple and short ) در برنامه نویسی نیز برقرارهست

کد را منطقی و بدون پیچیدگی بنویسید

بعضی از مواقع افراد کد های پیچیده را صرفا جهت نمایش توانایی های خود می نویسند

تجربه نشاند داده است کد های ساده و منطقی همیشه به خوبی کار می کنند

یک نقل قول جالب:

چگونه می من»کد خوب بهترین مستند ها را دارد ، هنگامی که می خواهید توضیحی را اضافه کنید از خود سوال کنید “Steve McConnell« توانم کد را بهبود ببخشم که نیازی به این توضیح نباشد

https://en.wikipedia.org/wiki/Steve_McConnell

ساده ، قابل فهم اما منطقی

Spend more time in analyzing the problem,

you’ll need less time to fix it

زمان بیشتری را برای فهم و تحلیل مساله و طراحی راه حل آن بگذرانید

طراحی همیشه به معنی استفاده از زبان های مدل سازی و ابزار ها نیست

دطراحی گاهی به سادگی نگاه به آسمان و تفکر درباره راه حل در ذهن می باش

فتادن لحظه اتفاق ا( جهت کد زدن ) کسانی که عادت دارند به فشار دادن کیبورد.یک مشکل معموال متفاوت از نیازمندی های ما کار رو به پایان می رسانند

نقل قول:

ما برای کد اگر شما نمی توانید ساختار یک مساله را هنگام گرفتن دوش درک کنید ، ش»Richard Pattis« کردن آن آماده نیستید

http://www.ics.uci.edu/~pattis/

آنزمان بیشتر برای تحلیل مساله ، زمان کمتر برای حل

Don’t dismay yourself by looking at changing

technology world

خود را از تغییر دنیای تکنولوژی نترسانید

Read documentation

اد یکی از عادت های ضروری یک برنامه نویس خوب مطالعه تعدزیادی از مستند ها می باشد

مانند سند هایAPI ها ، آموزش ها و...

یجاد مطالعه مستند ها به شما کمک می کند پایه ای خوب را جهت ابرنامه خود به بهترین نحوه ایجاد کنید

مطالعه مستند ها

Practice & make Mistakes

تمرین کنید ، و در طول تمرین در کنار بهبود کد زنی اشتباه کنید!

چرا اشتباه کردن مهم است ؟ با کد زدن بیشتر خطاهای شما درerror handling ،محقق می شود... و threadingطراحی ، نخ کشی

ی دهیدشما از این اشتباهات یادمیگیرید و با تمرین بیشتر مهارت خود را ارتقا م

تمرین و اتفاق افتادن اشتباه

Self learning from website and books

https://developers.google.com/البته از طریق روش های معمول در دسترس ما نیست!

https://www.codecademy.com/

https://code.org/learn

http://www.w3schools.com/

http://www.html5rocks.com/en/ ( مانند مورد اول) !

http://www.codeproject.com

https://groups.google.com/forum/#!overview

http://programmersheaven.com/

http://stackexchange.com/

خود یادگیری از طریق وب سایت ها و کتاب ها

Reflectionانعکاس

خطا برای / ن باگ هر زمانی که یک باگ را در کد خود بر طرف می کنید باید به عقب بازگشته و ببنید چگونه می توانید از ایجاد ای■اولین بار و در آینده جلو گیری کنید

Learn from other programmers

سعی کنید در پروژه هایی با انواع مختلف کار کنید

هر پروژه را به عنوان یک متد یادگیری در نظر بگیرید

ا آن ها از طریق بیرون انداختن خودتان از منطقه امن و کار با دیگر برنامه نویسان و کار بر روی وظایفی که ب.آشنایی ندارید توناهایی های جدیدی را در خود ایجاد کنید

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

یادگیری از دیگر برنامه نویسان

Work on Open Source code

http://sourceforge.net/

https://github.com/

کار بر روی کد های متن باز

Read Code

در حال کار بر روی کد های متن باز ، سعی کنید چگونگی عملکرد آن ها را بفهمید

به دنبال الگو های موجود در کد بگردید و توانایی های خود را توسعه ببخشید

کد زنی خود را ارتقا می بخشید ...( و ! ، فهم! شعور) از این طریق به تدریج ادراک

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

!خواندن کد

Master the programming language(s) that you use or be the Jack of all trades…master of none

:در این جا دو گزینه که هر دو برای توسعه دهندگان و برنامه نویسان قابل اجرا هست وجود دارد

تمرکز بر تسلط بر روی یک زبان برنامه نویسی خاص مانند جاوا و بهترین بودن در این زبان. 1

توانایی تغییر تکنولوژی و استاندارد های برنامه نویسی که می تواند یک چند. ند زبان را توانایی باشد و چ-2.یادبگیرد و همه کاره و هیچ کاره باشد

!بهترین در زمینه خود یا همه کاره و هیچ کاره

Get Involved in Social media, communities, blogs and mailing lists

اص نیست و همه دیگر مانند گذشته نیاز به ثبت نام در یک کالس خ! تکنولوژی به سادگی قابل یادگیری شده استاطالعات مورد نیاز در دسترس می باشد

محل های خوبی برا شروع هستند... عضویت در رسانه های اجتماعی، اجتماعات آنالین ، بالگ و.

استفاده ازhttp://stackoverflow.com/ فروم ها و دیگر اجتماعات بسیار مهم هستند ،.

در رسانه های اجتماعی ، اجتماعات ، بالگ ها سهیم شوید

Write a Unit Test

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

همه چیز را تست کنید!

ابتدا ورودی ها و مقادیر مورد انتظار سیستم را وارد نمایید

(ص میگرددباگ های پنهان مشخ) سپس مقادیری که ممکن هست اتفاق بیافتد ولی معمول نیست را امتحان کنید

تست را به گونه ای انجام دهید که شامل موارد زیر شود : هنر تست:

nullصفر و فراتر از مقادیر حداکثر مثبت ، رشته خالی و : افراط -

گیریدهمه چیز را در نظر ب! این را در نظر بگیرید که ممکن است کاربر نهایی عجیب باشد: مقادیر بی معنی -

...صفر در تقسیم و : مقادیر غیر صحیح -

تست

Do a Code review and send your code review to others to critic

انجام یک بازبینی کد بسیار مهم می باشد.

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

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

.آن ها را دارد

یدکد را بازبینی نمایید و این بازبینی را به دیگران جهت نقد ارسال کن

Explore

در کار بار نرم افزار ها ، سیستم های عامل ، اپلیکیشن ها به دنبال اکشتاف باشیم!

امه نویسی به طور مثال پیدا کردن کلید های میانبر جهت بهبود سرعت کار اگرچه به خودی خود ارتباط خاصی با برنندارد اما به باال بردن ادراک برنامه نویسی کمک می کند

اکتشاف

Search

در اکثر سیستم های توسعه نرم افزار مانندvisual studio و همینطور سیستم هایهنگام بروز خطا ، کد خطا نیز نمایش MSSQL Serverمدیریت پایگاه داده مانند

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

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

حل بهترین راه حل ساده ترین راه حل نیست ، پیچیده ترین راه حل بهترین راه!نیست

چگونه جستجو کنیم

Don’t compare yourself with others

ددمقایسه خود با دیگران فقط سبب ایجاد احساس منفی می گر

هر کس توانایی ها و ضعف های مخصوص به خود را دارد

ر کنیممهمترین مساله این است که ما خود را بشناسیم و روی خود کا

بارها دیده شده است که افرادfundoo-programmers یا برنامهنویسان اساسا قوی اشتباهات احقمانه انجام داده اند

یست کنید خود را تحلیل کنید ، نواحی که می توانید بهبود ببخشید ل.و بر روی ان ها کار کنید

خود را با دیگران مقایسه نکنیم

Practice, practice, practice

برنامه نویسی یک رشته راکد نیست !

دهمیشه چیز های جدید برای یادگیری و شاید مهمتر از آن چیزهایی برای یادگیری مجدد وجود داشته باشن

Any fool can write code that a computer can

understand. Good programmers write code

that humans can understand. ~Martin Fowler

Martin Fowler

Publications

1996. Analysis Patterns: Reusable Object Models. Addison-Wesley. ISBN 0-201-89542-0.

1997. UML Distilled: A Brief Guide to the Standard Object Modeling Language. Addison-Wesley. ISBN 978-0-201-32563-8.

1999. Refactoring: Improving the Design of Existing Code, With Kent Beck, John Brant, William Opdyke, and Don Roberts (June

1999). Addison-Wesley. ISBN 0-201-48567-2.

2000. Planning Extreme Programming. With Kent Beck. Addison-Wesley. ISBN 0-201-71091-9.

2002. Patterns of Enterprise Application Architecture. With David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, and Randy

Stafford. Addison-Wesley. ISBN 0-321-12742-0.

2010. Domain-Specific Languages. With Rebecca Parsons. Addison-Wesley. ISBN 978-0-321-71294-3.

2012. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. With Pramod Sadalage. Addison-

Wesley. ISBN 978-0-321-82662-6.

2013. Refactoring: Ruby Edition. With Kent Beck, Shane Harvie, and Jay Fields. Addison-Wesley. ISBN 978-0-321-98413-5.

Programming is a real fun, enjoy it

منابع

https://blog.idrsolutions.com/2014/07/top-11-ways-better-developer-programmer/

http://searchsoftwarequality.techtarget.com/definition/unit-testing

http://gettingthingsdone.com/

https://dzone.com/articles/10-effective-ways-become-good

https://en.wikipedia.org/wiki/Hungarian_notation

اتشکر از توجه شم

top related