دوستان قبل از اینکه به سراغ اصل مطلب برویم بهتر است که کمی تخصصی تر ابتدا با مفاهیم کامپیوتر آشنا شویم : 

کامپیوتر چیست ؟ 

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

سازمان دهی کامپیوتر به شش قسمت تقسیم می شود : 
1- واحدهای ورودی ( INPUT unit ) 
2- واحدهای خروجی ( OUTPUT unit ) 
3- واحد حافظه ( Memory unit ) 
4- واحد محاسبه و منطق ( ALU ) 
5- واحد پردازش مرکزی ( Central Processing ) 
6- واحد ذخیره سازی ثانویه 

تکامل سیستم عاملها ( به صورت عمده ) 

 - سیستم ها ابتدا به صورت تک کاربره ( SINGLE USER ) بودند ، یعنی زمانی کامپیوترها فقط میتوانستند یک عمل یا یک وظیفه را در زمانی مشخص انجام دهند و داده ها ابتدا بر روی کارتهای پانچ قرار داشتند . 
- سیستم های Multi Programming که این سیستم عامها به همراه کامپیترهایی که قابلیت چند وظیفه ای دارند ، میتوانند چند وظیفه یا دستور در طول زمان را انجام دهند . این امر با به اشتراک گذاشتن منابع توسط کامپیوترها صورت میگرفت . 
محاسبات شخصی ، محاسبات توزیع شده و سرویس دهنده ها / سرویس گیرنده ها 
در سال 1997 ، کامپیوتر های اپل ( Apple ) نماد محاسبات شخصی بودند . کامپیوترهابه تدریج ارزان شدند تا اینکه مردم آنها را خریدند و تا در کارهای شخصی خود قرار دهند . 
در سال 1981 ، IBM که بزرگترین فروشند کامپیوتر در جهان است ، کامپیوتر های شخصی IBM را به بازار معرفی کرد . جالب اینجاست که در مدت یک شب محاسبات شخصی در تجارت ، صنایع و مراکز دولتی وارد شد . به طوری که امروزه در کمتر خانه ای کامپیوتر وجود ندارد . 
اما درمورد سرویس دهنده ها و سرویس گیرنده ها این را باید گفت که امروزه اطلاعات با سرعت باور نکردنی در بین شبکه های کامپیوتری در حال انتقال هستند ، به طوری که اطلاعات در یک کامپیوتر قوی به اشتراک گذاشته میشوند و دیگر کامپیوترها که سرویس گیرنده هستند از اطلاعات به اشتراک گذاشته شده در سرور استفاده میکنند . 

برنامه نویسی 

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

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

 مطالب قبلی مقدمه ای بسیار خلاصه بود از کامپیوتر و نحوه سازماندهی کامپیوترها و درک بحث برنامه نویسی . اما برای نوشتن برنامه به چه چیزهایی نیاز است ؟ 
ما برای برنامه نویسی نیاز به یک نرم افزار برنامه نویسی داریم ( زبانهای برنامه نویسی ) . 
زبانهای برنامه نویسی توسط کمپانی های بزرگ و مختلفی مانند مایکروسافت ، سان میکروسیستم و ... ارائه میشوند . 

انواع زبانهای برنامه نویسی: 

 1- زبان ماشین ( Machine Languages ) " در برخی کتب بنام زبان سطح پایین نیز وجود دارد " 
2- زبان اسمبلی ( Assembly Languages ) " در برخی کتب بنام زبان سطح میانی وجود دارد " 
3- زبان های سطح بالا ( High-Level Languages ) 

زبان ماشین یا زبان سطح پایین : 

 هر کامپیوتری فقط میتواند به طور مستقیم فقط زبان ماشین خود را درک کند . زبان ماشین ، زبان ذاتی " natural " و منحصر به فرد یک کامپیوتر میباشد . برای مثال اینو بگم که زبان ماشین هر وسیله الکترونیکی فقط برای آن وسیله قابل استفاده است . لازم به ذکر است که درک زبان ماشین برای انسان سخت و یسار مشکل است . مثلا کد زیر اضافه کار را برمبنای حقوق محاسبه کرده و نتیجه بدست آمده را در grosspay ذخیره می کند . 
+1300042774 
+1400593419 
+1200274027 

زبان اسمبلی یا زبانهای سطح میانی : 
 

زمانی که کامپیوترها مورد استفاده عموم قرار گرفتند برنامه نویسی برای کسانی که با زبان ماشین برنامه نویسی میکردند بسیار خسته کننده و ملالت آور بود . این بود که برنامه نویسان برنامه ای را طراحی کردند که به جای برنامه نویسی با زبان ماشین ( کار با اعداد ) ، بتوان برنامه نویسی را به صورت رشته ها ( حروف ) ادامه داد . اینگونه که برای برنامه نویسی از حروف مخفف کلمات برای درک کامپیوتر از دستورات استفاده میشد . این حروف مبنای زبان اسمبلی هستند . اما باید این برنامه ها برای درک کامپیوتر به زبان ماشین تبدیل میشد که برای این کار برنامه ای به نام اسمبلر طراحی شد ، که کدهای نوشته شده ا زبان اسمبلی را به زبان ماشین تبدیل میکرد . کدی که در پایین مشاهده میکنید همان عملیت بالا را انجام میدهد . 
Load basepay 
Add overpay 
Store grosspay 

زبان های سطح بالا 

 درست است که زبان اسمبلی کار را برای برنامه نویسان که میخواستند با زبان ماشین برنامه نویسی کنند ، راحت تر میکرد اما دو عیب بزرگ هم داشت : 
1- تبدیل کدها از زبان اسمبلی به زبان ماشین توسط اسمبلر به کندی صورت میگرفت . 2- عیب دوم این بود که برنامه نویس برای نوشتن برنامه ای که قرار است عملیات بسیار ساده ای را انجام دهد ، باید کدهای زیادی را می نوشت که باز هم این بسیار خسته کننده به نظر می آید . برای افزایش برنامه نویسی زبانهای سطح بالا توسعه پیدا کردند ، که با نوشتن یک خط کد می شد یک عملیت بسیار وسیعتری را نسبت به اسمبلی انجام داد . برنامه های مترجم که وظیفه ترجمه زبانهای سطح بالا به زبان ماشین را برعهده دارند کامپایلر نامیده میشوند . برای این است که زبان برنامه نویسی سطح بالا محبوبیت دارند و امروزه مورد استفاده قرار میگیرند ، نوشتن کد برنامه نویسی در آنها به زبان انگلیسی نزدیک است و در آن اعمال ریاضی به سادگی به کار میرود . مثلا کد بالا با زیان سطح بالا نوشه شده است : 
Grosspay = basepay + overtimepay 
 یشنهاد ما به شما این است که برنامه نویسی را از پایه شروع کنید . یعنی از مفاهیم تئوری مانند روشهای حل مسئله ، الگوریتم ها و ... آغاز کنید. برای برنامه نویسی هم بهتر است که نوشتن برنامه را با زبان ویژوال بیسیک یا بگیرید.