آموزش برنامه نویسی ، اموزش برنامه نویسی اندروید

تبلیغات

دسته‌ها


برنامه نویسی از توهم تا واقعیتReviewed by بردیا on Feb 9Rating: 5.0برنامه نویسی از توهم تا واقعیتبرنامه نویسی از توهم تا واقعیت چند سالیست تب تند برنامه نویس شدن در جامعه ما بیداد می کند و هر کس با انجام یک پروژه دانشجویی اسم برنامه نویس رو با خودش به دوش می کشه ، اما واقعا برنامه نویس کیه؟آیا دوستی با حداکثر 6 ماه فعالیت (از آشنایی تا انجام یک پروژه ) می تواند یک برنامه نویس باشد؟ چه تعریفی برای یک برنامه نویس می توان انجام داد ؟ چه حد و مرزی را برای یک برنامه نویس می توان قائل شد؟ چرا در کشور ما با وجود این همه برنامه نویس هیچ پروژه جهانی تا کنون انجام نشده است؟ اینجاست که باید گفت برنامه نویسی از توهم تا واقعیت

برنامه نویس

 

 

 

برنامه نویسی از توهم تا واقعیت

چند سالیست تب تند برنامه نویس شدن در جامعه ما بیداد می کند و هر کس با انجام یک پروژه دانشجویی اسم برنامه نویس رو با خودش به دوش می کشه ، اما واقعا برنامه نویس کیه؟آیا دوستی با حداکثر ۶ ماه فعالیت (از آشنایی تا انجام یک پروژه ) می تواند یک برنامه نویس باشد؟

چه تعریفی برای یک برنامه نویس می توان انجام داد ؟

چه حد و مرزی را برای یک برنامه نویس می توان قائل شد؟

چرا در کشور ما با وجود این همه برنامه نویس هیچ پروژه جهانی تا کنون انجام نشده است؟

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

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

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

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

برنامه نویس کیست؟

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

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

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

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

تب بالای اشتیاق برای ورود به دنیای برنامه نویسی باعث شد که در دهه جاری و دهه گذشته کتاب ها و دوره هایی به عنوان آموزش برنامه نویسی در ۲۱ روز یا در فلان روز برنامه نویس شوید توقع افراد را در ورد به بازار برنامه نویسی بسایر زیاد کرد و متاسفانه افرادی وارد این بازار شدند که فقط توانسته اند ابزار را خوب بشناسند و خلاقیت خود را کشته اند .

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

آموزش برنامه نویسی در ۱۰ سال
محققان  نشان دادند که برای متخصص شدن در بسیاری از زمینه ها (از شطرنج گرفته تا آهنگ سازی ، اپراتوری تلگراف ، نقاشی ، نواختن پیانو ، شنا ، تنیس ، عصب شناسی ، …) حدود ۱۰ سال زمان لازم است. نکته ی مهم انجام کار پیوسته و با توجه است ، نه صرفا کاری را مدام تکرار کردن ، بلکه به چالش کشیدن خودتان با کارهایی که فراتر از توانایی فعلی تان است و تحلیل کارایی تان قبل و بعد از انجام ان کار و اصلاح اشتباهاتتان. و بعد تکرار کنید. و دوباره تکرار کنید. هیچ میانبری وجود ندارد: حتی موزارت که در ۴ سالگی اعجوبه ای در موسیقی بود ، ۱۳ سال طول کشید تا بتواند اولین کار حرفه ای و جهانیش را بسازد. گروه موسیقی بیتلز در سال ۱۹۶۴ با وارد شدن به صحنه ی موسیقی اکثر کارهایشان جزو کارهای محبوب (و به قولی “نامبر وان”) بودند ولی فراموش نکنید که اعضای گروه از سال ۱۹۵۷ در کلوب های کوچک لیورپول و هامبورگ فعالیت می کردند و اولین موفقیت بزرگشان (Sgt. Peppers) در سال ۱۹۶۷ عرضه شد. در یک مطالعه بر روی دانش آموزان در آکادمی برلین ، محققان اعضای برتر ، متوسط و پایین کلاس را مقایسه کرده و از آن ها پرسیدند که چقدر تمرین کرده اند:
همه (از هر سه گروه) نواختن را از حدود ۵ سالگی شروع کرده و در سال های اول هر کس به یک میزان فعالیت می کرد (حدود ۲ یا ۳ ساعت در هفته) اما در حدود ۸ سالگی تفاوت های واقعی نمایان شد. کسانی که در کلاس هایشان بهترین بودند ، بیش از بقیه تمرین می کردند: ۶ ساعت در هفته در سن ۹ سالگی ، ۸ ساعت در ۱۲ سالگی ، ۱۶ ساعت در ۱۴ سالگی و الی آخر تا سن ۲۰ که هفته ای بیش از ۳۰ ساعت کار می کردند. در سن ۲۰ سالگی افراد برتر نزدیک به ۱۰۰۰۰ ساعت از عمرشان را به تمرین گذرانده بودند. دانش اموزان رده بعدی حدود ۸۰۰۰ ساعت و دانش اموزان معمولی (معلمین موسیقی در آینده!) حدود ۴۰۰۰ ساعت.
شاید هم ۱۰۰۰۰ ساعت ان عدد جادویی باشد نه ۱۰ سال. به نظر ساموئل جانسون (۱۷۰۹-۱۷۸۴) زمان بیشتری لازم است: “برتری در هر رشته ای فقط با یک عمر کار به دست می آید و با قیمت کمتری قابل خرید نیست” و اما دستورالعمل من برای موفقیت در برنامه نویسی:

  • به برنامه نویسی علاقه داشته باشید. اطمینان حاصل کنید که انقدر از برنامه نویسی لذت می برید که حاضر باشید ۱۰ سال از عمرتان را صرفش کنید.
  • با برنامه نویسان دیگر ارتباط داشته باشید. کد برنامه های دیگر را مطالعه کنید. این خیلی مهم تر از هر کتاب یا دوره ی آموزشی است.
  • برنامه بنویسید. بهترین نوع آموزش ، انجام دادن است. در واقع حداکثر سطح کارایی برای افراد در هر رشته ای ، به طور خودکار با تجربه ی بیشتر حاصل نمی شود بلکه نیاز به تلاش تعمدی برای بهبود دارد.
  • می توانید تحصیلاتتان را در دانشگاه هم ادامه بدهید. این کار باعث می شود از رشته تان درک عمیق تری به دست آورده و همچنین به کارهایی مشغول شوید که نیاز به مدرک دانشگاهی دارند. البته اگر از مدرسه و درس لذت نمی برید ، می توانید تجربه ی مشابهی را در کار کسب کنید (البته با تلاش بیشتر) Eric Raymond در دیکشنری هکر ها می گوید: “مطالعه و تحصیلات آکادمیک در رشته ی کامپیوتر یک شخص را تبدیل به یک برنامه نویس حرفه ای نمی کند ، همانطور که یک فرد فقط با مطالعه ی رنگ و قلم مو نمی تواند نقاش شود”. یکی از بهترین افرادی که در عمرم استخدام کردم (Jamie Zawinski) ، فقط تا دبیرستان درس را ادامه داده بود؛ با این وجود این شخص نرم افزار های خیلی خوبی تولید کرده (موزیلا و xemacs) و گروه خودش را در googlegroups دارد و حتی انقدر پول دراورد که بتواند یک کلوب شبانه بخرد.
  • روی پروژه های تیمی کار کنید. در بعضی از پروژه ها بهترین و در بعضی دیگر بدترین برنامه نویس باشید. وقتی بهترین هستید توانایی های خودتان به عنوان یک رهبر گروه را تست کرده و به دیگر افراد الهام می دهید. وقتی هم که بدترین باشید یاد می گیرید که حرفه ای ها چه کار می کنند و همچنین چه کارهایی را دوست ندارند انجام دهند (چون این کارها را می سپارند به شما!)
  • روی پروژه های دیگران کار کنید. برنامه هایی که دیگران نوشتند را مطالعه کنید. سعی کنید باگ های برنامه های دیگران را رفع کنید. به این فکر کنید که چطور برنامه هایتان را طراحی کنید که کار کسانی که می خواهند ان را نگهداری کنند آسان تر شود.
  • کلی زبان برنامه نویسی یاد بگیرید. یک زبان که از شی گرایی و کلاس ها پشتیبانی کند (مثل جاوا یا سی پلاس پلاس) ، یک زبان تابعی (مثل لیسپ یا ML) (م: یا Haskell) ، یک زبان اعلانی (مثل پرولوگ یا قالب ها در سی پلاس پلاس) ، یک زبان که از coroutine ها پشتیبانی کند (مثل Scheme یا Icon) (م: امروزه زبان های دیگری از جمله سی شارپ هم coroutine را دارند) و یک زبان که از برنامه نویسی موازی پشتیبانی کند (مثل Sisal) (م: و Erlang)
  • یادتان باشد که ما با کامپیوتر سر و کار داریم. بدانید که چقدر طول می کشد تا کامپیوترتان یک دستورالعمل را اجرا کند، یک کلمه را از حافظه واکشی کند (در هر دو حالت وجود و نبودش در کش) ، کلماتی متوالی را از دیسک بخواند ، یا به یک مکان از دیسک برود (seek) (م: منظور نویسنده آشنایی با معماری کامپیوتر است. آقای Stroustrup خالق سی پلاس پلاس هم روی این نکته تاکید دارند)
  • درگیر استاندارد سازی یک زبان شوید. حالا می تواند کمیته ی ANSI C++‎ باشد یا استاندارد شخصی تان برای کدنویسی (مثلا این که برای تورفتگی از ۲ فاصله استفاده کنید یا ۴ تا) در هر حال یاد می گیرید که بقیه چه چیزهایی را در یک زبان دوست دارند و همینطور علت این دوست داشتن را.

با در نظر گرفتن این موارد ، این سوال پیش می آید که صرفا با مطالعه ی کتاب چقدر می توانید یاد بگیرید. قبل از تولد اولین بچه ام ، تمام کتاب های “چگونه…” (How To…) را خواندم بودم و باز هم حس می کردم مبتدی ام. ۳۰ ماه بعد (پس از تولد دومین فرزندم) دیگر سراغ کتاب هایم نمی رفتم؛ به جایش به تجربه ی شخصی ام تکیه کردم که معلوم شد خیلی مفیدتر و مطمئن تر از هزاران صفحه کتاب هایی است که توسط متخصصین نوشته شده اند. آقای Fred Brooks در مقاله ی “No Silver Bullets” (2) طرحی سه بخشی برای پیدا کردن بهترین طراحان نرم افزار مشخص کرد:
۱- به طور سیستماتیک و هر چه زودتر طراحان برتر را مشخص کنید
۲- یک مربی حرفه ای به آن ها اختصاص دهید تا مسئول و مراقب کار باشد
۳- فرصت هایی را فراهم بیاورید که این افراد از طریق ارتباط و برانگیختن همدیگر ، رشد کنند
آلن پرلیس می گوید: “هر کسی می تواند حجاری یاد بگیرد: میکل آنژ باید یاد می گرفت چطور این کار را نکند. در مورد برنامه نویسان بزرگ هم همینطور است”
باشه ، بروید و ان کتاب جاوا را بخرید؛ احتمالا به دردتان بخورد ولی زندگی تان یا تخصصتان در کل در طول ۲۴ ساعت ، روز یا حتی ماه تغییر چندانی نخواهد کرد.

مشخصات

دانـــــلود

  • 249

برچسب ها

مطالب پیشنهادی ما

دیدگاه های شما

پاسخ دهید

فرادرس، بزرگ ترین دانشگاه آنلاین ایران
آموزش مبانی برنامه نویسی
آموزش جاوا
آموزش سی شارپ
آموزش شی گرایی در سی شارپ
آموزش ویژوال بیسیک دات نت
آموزش PHP
آموزش پایتون
آموزش برنامه نویسی C
آموزش برنامه نویسی C++
آموزش برنامه نویسی اندروید
آموزش وردپرس
آموزش برنامه نویسی