PDA

View Full Version : گفتگو: يك سوال طولاني ولي حياتي : گام هاي لازم براي يك برنامه نويسي حرفه اي شدن و يا يك مهندس حرفه اي شدن



Programmer 1
یک شنبه 14 شهریور 1389, 20:04 عصر
سلام دوستان ،

من رشته ام كامپيوتر ، گرايش نرم افزاره و در دانشگاه پيام نور مشغول به تحصيل هستم ، اگه با اين دانشگاه آشنا باشيد ، اطلاع داريد كه خيلي كم ميشه وقت براي كار عملي پيدا كرد و به همين دليل هم من معمولا فقط در تعطيلات تابستان برنامه نويسي انجام ميدادم و همين باعث دور افتادن از دنياي برنامه نويسي شده والان اصلا از وضعيتم راضي نيستم ولي الان قصد دارم برنامه نويسي رو به صورت جدي شروع كنم و سعي مي كنم تو اين دو ترم باقي مانده كه سرم كمي خلوت تره با همه مشكلاتش هم كه شده برنامه نويسي رو ترك نكنم ، حدود يك ماهي است كه برنامه نويسي C#.Net 2008 رو شروع كردم و خودم رويكرد طولاني مدت خودم رو مي گم ،‌شما لطف كنيد بگيد كه درست برنامه ريزي كردم يا نه :

حدود يك سال رو بدون رفتن به سمت تكنيك هاي مهندسي نرم افزار فقط و فقط مي شينم كد نويسي انجام مي دم يعني بدون در نظر گرفتن هيچ موضوع ديگه فقط مي خوام از لحاظ برنامه نويسي ذهنم باز بشه ، بعد از اين مدت با اكثر مفاهيم برنامه نويسي آشنا مي شم ، بعد از اين مدت علاوه بر اينكه برنامه نويسي رو انجام مي دم ، كتاب هاي مهندسي نرم افزار رو هم مطالعه مي كنم چون اصولا بدون اطلاع از متودولوژي ها و ساير مفاهيم مهندسي نرم افزار مانند : مديريت پروژه ها و چگونگي انجام پروژه هاي تيمي و ... نمي شه برنامه هاي بزرگ و به عبارتي واقعا كاربردي رو طراحي و پياده سازي كرد ، براي شروع هم از متودولوژي هاي پر زرق و برق و پيچيده اي مانند RUP كه گستردگي زيادي داره استفاده نمي كنم چون مي دونم ميزان حجم مطالبي كه براي شروع كار عملي نياز هستش خيلي زياده و باز منو از دنياي برنامه نويسي دور مي كنه ، به همين دليل قصد دارم ابتدا از پارادايم هايي مثل آبشاري استفاده كنم درسته قديمي هست ولي همين رو هم اگر بخواهيم به صورت دقيق و كامل استفاده كنيم ، به اندازه خودش پيچيده هست ! و در همين مدت سعي مي كنم تو هر فاز از ابزارهاي اون فاز اطلاعاتي كسب كنم مثلا تو همين پارادايم آبشاري در فاز طراحي اش سعي مي كنم از ابزارهايي مانند Rational Rose و Viso و ... استفاده كنم تا ضمن آشنايي با استاندارهاي مدلسازي مثل UML با اين ابزارها كه در كارهاي عملي واقعا ميتونن موثر واقع بشن نيز آشنا بشم و يا براي مديريت پروژه با نرم ازفزارهايي مانند Microsoft Project و Primavera و ... آشنا مي شم و نحوه استفاد عملي از اونها رو ياد مي گيرم ، البته تو همين مدت سعي مي كنم كمي عميقتر به مفاهيم OOP و مقايسه آن با روش هايي ديگر مانند برنامه نويسي جنبه گرا بپردازم و همچنين سعي خواهم كرد مروري بر ساختمان داده ها و مباحث طراحي الگوريتم داشته باشم ، بعد از اين مدت كه تقريبا به نظرم 3 سالي منو سرگرم مي كنه ، احتمالا قادر باشم تو شركت هاي خصوصي استخدام بشم ، هر چند من كار كردن در شركت هاي خصوصي و اصولا زير نظر كسي كار كردن ، اصلا با روحيه ام سازگار نيست ولي به توصيه ي بعضي از دوستان براي كسب تجربيات مفيد چه به لحاظ فني و چه به لحاظ اجتماعي خيلي كارسازه و يك نوع تكميل كننده است ، حداقلش اين كه با نيازهاي بازار آشنا مي شم! .

البته ذكر اين نكته ضروريه كه اول قصد دارم در زمينه برنامه نويسي دسكتاپ فعاليت كنم و بعد از مدتي كه خودم احساس تسلط نسبي حداقل تو يكي از زبان هاي برنامه نويسي مانند همين C#.NET كردم به سراغ برنامه نويسي تحت وب و شبكه برم ( البته تو اين زمينه قبلا تا جاهاي قابل قبولي پيش رفتم و زياد آماتور نيستم ) و البته در موقعيتي مناسب سعي خواهم كرد كمي عميق تر به بانك هاي اطلاعاتي بپردازم و در زمينه برنامه نويسي بانك هاي اطلاعاتي تجربياتي رو كسب كنم،‌ در كنار تمام اين موارد سعي مي كنم برنامه نويسي تلفن همراه و پاكت پي سي رو هم انجام بدم تا بيشتر با برنامه نويسي آشنا بشم و حتي اگه انشاءالله وقت شد به دليل علاقه اي كه به الكترونيك دارم سعي خواهم كرد به سمت برنامه نويسي ميكروكنترلر هايي مانند AVR و PCI هم برم و از همين رهگذر دوباره ناچار بشم به سمت زبان هاي سطح پايين و مياني مانند C و Assembly و ... برم و دانشم رو افزايش بدم و آشنايي با اين زبان ها مي تونه زمينه خوبي براي آشنايي با شيوه هاي افزايش امنيت نرم افزارها و همچنين طراحي هسته سيستم عامل ، كامپايلر و همچنين مرورگر و ... باشه كه اين مباحث رو تا 10 سال ديگه هم ضروري نمي دونم ولي جز هدف هاي نهايي من در برنامه نويسي خواهند بود ، شما دوستان بايد بدونيد ما با توسعه هر نرم افزار تحت ويندوز و يا هر پلت فرم ديگه اي در واقع داريم ويندوز و سيستم عامل شركت مايكروسافت و ساير شركت هاي خارجي رو توسعه مي ديم و در نهايت يك شركت خارجي رو بزرگتر مي كنيم ،‌چرا ما نياييم از اين توانمان در جهت پيشرفت داخلي استفاده نكنيم ،‌ دليل اصلي من هم از يادگيري مفاهيم پايه اي كه ذكر شد همين موارد هست ؟

بسيار معذرت ميخواهم كه سوالم طولاني شد و شايد هم تا حدي از مسير خارج شدم، به نظر شما دوست عزيزي كه تجربه در زمينه برنامه نويسي داري و بسيار بيشتر از من در اين زمينه اطلاع داري ، چه طور مي تونم يك برنامه نويس حرفه اي بشم و آيا رويكرد طولاني مدت من كه ذكر شد درسته يا نه ؟ لطفا اشكالات رو با دليل منطقي بيان كنيد و راه حل بديد ، از كجا شروع كنم و چه كارهايي انجام بدم ، مسيري كه خودتون رفتيد و الان راضي هستيد چيه ؟ رمز موفقيت خود را بيان كنيد و هر نكته اي كه به ذهنتون مي رسه .



با تشكر /.


كار را زماني شروع كنيم كه پايان آن را در ذهن خود مي بينيم .

javad_r_85
یک شنبه 14 شهریور 1389, 21:27 عصر
سلام دوست گرامی توی مجله رایانه خبر چیزای جالبی رو خوندم برای اینکه چطوری برنامه نویس حرفه شویم .پس مهمترینشا ذکر می کنم شاید به دردت بخوره.

1-زبان جدید یاد بگیرید: یادگیری زبان جدید البته متفاوت با زبانی که کار میکنیم از ما برنامه نویس بهتر می سازد مثلا اگر سی شار پ کار می کنی برو Ruby ,Groovy یاد بگیر به جای جاوا یا سی پلاس البته نه کامل تا این حد که آشنا شی
2-کمک به دیگران :که خیلی موثر می باشد و یکی از بهترین راههای پیشرفت می باشد
3- صبور باشیدو تمرین را ادامه دهید:تحقیقات نشان داده برای این که برنامه نویس حرفه باشی باید 10 سال کار کنی البته نه این که یه کار خاص انجام دهی می تونی همزمان پیش بری.
4-حذف عقاید بی پایه:مبتدی ها فکر میکنن همیشه تنها یک راه وجود دارد برای حل مسئله در صورتی که چنین نیست
5-فراگیری کامل چند تکنیک:چیزی که از مایه برنامه نویس حرفه ای می سازد دانستن نحوه کار با چندین تکنیک مهم می باشد مثلا بعضی کار با بانک اطلاعاتی را خوب می دانند (مثل خود من که از شبکه چیزی سر در نمی ارم) البته تکنیکی را انتخاب کنید که به کار میاد
6-آشنایی با تئوریهای پایه :نوشتن برنامه Hello world یه چیز است درک آن یه چی دیگه در واقع سعی کنید شالوده یک زبان را خوب در ک کنید.
7-بررسی کدهای برنامه نویسان حرفه ای:
8-فراگیری عادت های خوب :هیچ چیزی مانند نام گذاری نامناسب متغییرها ،نشانه گذاری نادرست ،و موارد این چنینی نشان از تازه کار بودن نیست و همواره اصول برنامه نویسی رعایت شود
9- خوش بگذرانید:امری است که باعث پیشرفت می شود
10- مجانی کار کنید:برای کسب سابقه هم شده مجانی برنامه نویسی کنید
11-مهارت های برنامه نویسی در آینده را فرا گیرید:
12:یادگیری یکی از شاخه های .NET,JAVA , PHP
13-طراحی وب :بازار طراحی وب به این زودی هااز رونق نمی افتد پس مانند بعضی از برنامه نویسها دور آن را خط نکشید.
14-یادگیری یک زبان تابعی :مانند RUby ,Pethon, F# ,Grovy

, ....

Programmer 1
دوشنبه 15 شهریور 1389, 19:43 عصر
دوستان توجه كنيد اين فقط يك سوال تك جوابي نيست ، به همين خاطر هم عنوان را از نوع گفتگو انتخاب كردم ، خواهشي كه دارم اين هست كه هر كسي در زمينه برنامه نويسي تجربه داره ، تجربه اش رو به ما هم منتقل كنه و همچنين اگر بتونيد متن سوال من رو با دقت بخونيد و بر همون مبنا جواب بديد بسيار ممنون خواهم شد ،

منتظر پاسخ هاي همه دوستان هستم .

با تشكر /.