شما اینجا هستید

خانه

برنامه نویسی چیست؟(برای افراد مبتدی)

برنامه نویسی

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

فرض کنید به شما  کنترل یه ربات رو بدن که 5 تا کار می تونه انجام بده. مثالا

  • روشن شو(ON)
  •  یک گام به جلو برو(step)
  •  به اندازه دلخواه در جهت عقربه های ساعت بچرخ(rotate)
  •  جسم کوچک جلوت رو بردار(take)
  • خاموش شو(off)

حالا اگه این روبات رو بذارن تویه اتاق و یه توپ کوچیک رو یه طرف اتاق بندازن بگن با این ربات این توپ رو بردار، احتمالا با چند حرکت این کار و انجام میدین.

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

ON

Step

Rotate 45

Step

Step

Step

Rotate 30

Take

Off

برنامه نویسی یه چیزی شبیه به همین کد های بالاست. برنامه نویسی یعنی نوشتن یه سری دستورات برای یه ماشین (کم فهم!) که این ماشین فقط اون دستورات رو می فهمه. حالا نکته اینجاست که شما می تونی این برنامه رو اینقدر خوب بنویسی که بهترین حات ممکن باشه و سریع به جواب برسی و می تونی هم نه این قدر بد و غیر بهینه برنامه بنویسی که دیر یا اصلا به جواب نرسی. مثلا تو همون مثال بالا شما می تونی جوری برنامه ریزی کنی که ماشین مستقیم به توپ برسه میشه هم 10 دور زد بعد رسید به توپه!

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

حالا کاری به اینا نداریم. کامپیوتر چیا می فهمه؟ اگه بخوام خلاصه بگم میگم کامپیوتر های امروزه فقط یک چیز می فهمن. اونم اینه که باشن یا نباشن! یعنی آره  یا نه! یعنی 0 یا 1. شاید این مسائل خیلی پیچیده باشه که از پایه حرف بزنیم. که مثلا وقتی کامپیوتر می خواد یه عدد رو تو حافظه بذاره یه مداری یه جایی بسته میشه یا باز میشه! واقعیت اینه که اگه در سطح برنامه نویسی assemblyنگاه کنیم شاید کل دستوراتی که میشه به CPUداد صد نوع هم نشه، ولی بیاید از این جا شروع کنیم که کامپیوتر ما یه سری دستورات رو می فهمه و می تونه اون ها رو با یه سری ترفند هایی به همون زبان قابل فهم کامپیوتر تبدیل کنه. در واقع تمام زبان هایی که ما می شناسیم  مثل pascalو Cو fortranو همین کارو می کنن. یعنی یه چیزی بنام کامپایلر(compiler) میاد و برنامه هایی که شما به اون زبان نوشتید رو به زبان سطح پایین قابل فهم واسه ماشین مثه assemblyدر میاره که بعد به زبان 1و0 در میاد.

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

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

اگه هنوز علاقه مندی به برنامه نویسی تا دفعه بعد صبر کن تا توضیح بدم یه زبانی مثل cیا fortranیا pascalچه توانایی هایی دارن. و اصلا چه فرقی با هم دارن و از کدوم باید استفاده کنیم.

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

دیدگاه‌ها

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

ببین یه چیزی این برنامه هایی که می نویسیم آخر سر بالاخره نرم افزارن از آب در میاد یا صفحه ی وب؟و فرمتشون چی؟

ممنون خدا کنه بتونم یاد بگیرم...

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

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

سلام

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

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

ممنون

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

خیلی عالی بود بیشتر بزار

سلام 

توضیحات خوبی بود ممنون.من رشتم گرافیک و عکاسیه وبه برنامه نویسی علاقه مند شدم 

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

بگیرم چقد زمان میبره

 

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

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

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

 
 
 

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

goodlike

<p>سلام من خودم لیسانس کامپیوتر گرفتم اما نمی دونم که با چه زبونی خوبه که شروع کنم و چه زبونی الان رایجه برای کار</p>
<p>&nbsp;</p>

  • سلام- توضیحات گفته شده بود اما برای من که میخام از صفر شروع کنم هنوز گنگ هست که برنامه نویسی رو چطور بفهم لطفا راهنمایی کنید

عالی بود مخصوصا مثال کاملا متوجه شدم

 

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

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

اگه لطف کنید لینکشم برای دانلود بزارید

ممنون خیلی خوبه

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

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

salam

merci kheili khub tozih dadid

man taze reshtamo be MIS taghir dadam, iek juraii be ejbar, va hatta paaieii tarin mafahimesham nemidunam, 

harchi donbale ie tozihe saade o ghabele fahm baraie barname nevisi gashtam chizi peida nakardam

in kheili khub bud

 

سلام ببخشید من رشته تحصیلیم هیچ ارتباطی با کامپیوتر نداره ، منم میتونم یاد بگیرم یا خیلی سخت خواهد بود ؟

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

خیلی خوب بود دیدگاهمو باز کرد ...

استاد از بابت موضوع جالب و خلاصه ی شما متشکریم . 

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

سلام

خسته نباشید مطلب جالبی بود !

احسنت !

سلام . من رشتم پزشکیه و هیچ سررشته ای از برنامه نویسی ندارم  . فقط تازگیا html و css رو تا جدودی یاد گرفتم . میخواستم ببینم الان اگه بخوام اندروید رو شروع کنم اوکیه ؟ پیش نیازی نمیخواد ؟ چیکار باید بکنم که بتونم زودتر برم سراغ اندروید یاد گرفنن . ممنون میشم جوابمو بدن

افزودن نظر جدید

درباره من

سلام. به وب سایت شخصی من خوش آمدید.

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

 

Mohammad Zatkhahi Image

 

.

?>