برنامه نویسی را از کجا آغاز کنیم؟

دانلود فیلم و سریال دانلود فیلم و سریال

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

 زبان مورد علاقه خود را انتخاب کنید؟

در مرحله اول، حتما زبان برنامه نویسی مورد علاقه خود را انتخاب کنید. اگر اطلاعات دقیقی از برنامه نویسی ندارید با پاسخ دادن به سوالات زیر مسیر خود را انتخاب کنید: آیا دوست دارید برنامه هایی که تحت اینترنت اجرا می شوند را بنویسید؟(وبسایت ها) یا برنامه هایی که در سیستم کاربر اجرا می شوند؟

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

برنامه نویسی نرم افزارهای تحت وب یا برنامه نویسی لوکال (تحت سیستم کاربر)
اول از همه مسیر خود را در مسیر گرایش برنامه نویسی مشخص کنید. می خواهید برای وب بنویسید یا برای سیستم کاربر؟

زبان های برنامه نویسی تحت وب
پیشنهادم برای آنهایی که دوست دارند تحت وب بنویسند : PHP, ASP.Net, Java می باشد. دقت کنید برای شروع برنامه نویسی تحت وب حتما با HTML, Java Script و CSS آشنا باشید. بدون این سه مورد شما یک برنامه نویس حرفه ای تحت وب نخواهید بود. دقت کنید انتخاب PHP انتخاب مناسبی است مادامی که به نوشتن برنامه های تحت وب محدود مبادرت بورزید، PHP می تواند در نوشتن سایت ها یا برنامه های تحت وب پیچیده مشکل ساز باشد.
حال آنکه یاد گیری جاوا در نوع خود کمی مشکل می باشد، ولی سایت هایی که با جاوا نوشته شوند واقعا قابل اعتماد و مستحکم هستند، بعلاوه اینکه دستمزد یک سایت نوشته شده با جاوا به مراتب بسیار بیشتر از سایتی نوشته شده با PHP است. این در حالی است که ASP.NET در میان این دو قرار دارد و از ویژگی های هر دو در خود دارد، هم آسان است و هم پایدار، پس می توانید ASP.Net را هم در لیست علاقه مندی های خود برای برنامه نویسی تحت وب قرار دهید. پروژه های نوشته شده با ASP.net هم به مراتب گران می باشند و می توانند دستمزد خوبی برای برنامه نویس داشته باشند.
ولی دانستن نکات فوق زمانی مفید خواهد بود که شما با یک پایگاه داده استاندارد هم آشنا باشید. انتخاب خیلی از برنامه نویسان خلاصه شده در : Oracle, MySQL و MS SQL Server . البته هسته هر سه زبان SQL می باشد، لذا SQL را یاد بگیرید. توجه به این نکته که یادگیری پایگاه داده خیلی کمتر زمان بر خواهد بود، می توانید ابتدا به یاد گیری آن بپردازید و چون در برنامه نویسی حرفه ای باید با دستورات SQL هم برای تولید برنامه آشنا باشید لذا مفاهیم و دستورات SQL را که بسیار آسان هستند را یاد بگیرید.

دانستن کد کافی نیست از فناوری اطلاعات بدانید
حال برای شما که کمی مصمم تر شده اید باید توصیه کنم حتما قبل از ورود به مقوله برنامه نویسی سعی کنید مفاهیم IT را فرا بگیرید. مفاهیم IT با اینکه تاثیر مستقیمی در برنامه نویسی ندارند ولی بدون آنها شما هرگز نخواهید توانست یک پروژه را سالم به هدف برسانید. منظور از این مفاهیم، شامل نحوه عملکرد سرورها، امنیت، نحوه عملکرد مشتریان سایت شما و … می باشد. برای مثال شما باید بدانید که چطور کدهایتان در سرور اجرا خواهند شد و اصلا یک سایت با چه پروسه ای برای کاربر نمایش داده می شود؟ مجموع این دانسته ها را مفاهیم IT می گوییم و شما برای برنامه نویسی یک پروژه کاربردی باید در حد متوسط به بالایی با آنها آشنایی داشته باشید. البته برعکس برنامه نویسی که با کسب تجربه رفته رفته اصولی تر می شود، مفاهیم عمدتا قضیه های ثابتی هستند که می تواند از منابع مختلفی مثل اینترنت با آنها آشنا شوید.
چنانچه شما علاقه مند به یادگیری یک زبان برنامه نویسی برای تولید نرم افزارهای تحت کامپیوتر کاربر می باشید، کمی کارتان مشکل تر است. 
در واقع برنامه نویسی لوکال (تحت سیستم کاربر) به نوعی سخت تر است. البته این امر وقتی احساس می شود که شما هم در وب بنویسید هم لوکال، این دشواری زمانی احساس می شود که به برنامه نویسی تحت وب که تا حدودی آسان است عادت کرده باشیم. توجه با این نکته که برنامه های نوشته شده لوکال می توانند واقعا سودآود باشند، خیلی از برنامه نویسان حداقل یک زبان برنامه نویسی لوکال را ید می گیرند. دقت داشته باشد که دانستن همان مفاهیم و اطلاعات IT ضروری می باشند. در واقع این مفاهیم دید شما را نسبت به برنامه ای که می نویسید بسیار وسعت می بخشند. همچنین بحث پایگاه داده نیز در این نوع برنامه نویسی استوار است. با این تفاوت که گرایش بیشتر به سمت پایگاه داده های Oracle, MS SQL Server یا MS ACCESS می باشد. زبان های برنامه نویسی رایج و بسیار مناسب هم در این زمینه : C++ , C#, Java, Delphi می باشند. البته موارد دیگری هم هستند که یا کاربران کمی دارند یا در حال انقراض می باشند، لذا از ذکر آنها معذورم. دقت داشته باشید که انتخاب هریک از این زبان ها مستلزم پیش نیازهای خاصی می باشد ولی در کل آشنایی کامل با الگوریتم ها و زبان برنامه نویسی C کمک شایانی برای شما خواهد کرد.
اگر بخواهیم از بعدی دیگر قضیه را بررسی کنیم، عوامل بسیاری نظیر: صبر و حوصله، پشتکار، علاقه وافر، خلاقیت، دقت، هوشیاری و سرعت عمل از عواملی هستنذد که بسیار به یادگیری یک زبان برنامه نویسی کمک می کنند.

دانستن زبان انگلیسی الزامی نیست
ضمن اینکه دانستن زبان انگلیسی یعنی ۵۰% پیشرفت اولیه! انگلیسی به حدی در برنامه نویسی به درد شما می خورد که خودتان متعجب می شوید.
دقت کنید قبل از شروع بسنجید و ببینید که شما توانایی یاد گیری را هنگام خودخوانی دارید یا نه؟ شایان ذکر است بسیاری از متخصصین برنامه نویسی خودشان برنامه نویسی را یاد گرفته اند و کلید آن دانلود Ebook و تمرین و نوشتن کد است. اگر نیاز به یک کلاس برای شروع دارید، این کار را بکنید، مسیر را پیدا کنید و خودتان ادامه دهید.

طبقه بندی زبان های برنامه نویسی
    * زبان های برنامه نویسی آرایه ای
    * زبان های برنامه نویسی پیوسته
    * زبان های برنامه نویسی همزمان
    * زبان های برنامه نویسی تعریفی
    * زبان های برنامه نویسی با دامنه ویژه
    * زبان های برنامه نویسی پویا
    * زبان های برنامه نویسی آموزشی
    * زبان های برنامه نویسی رمزی
    * زبان های برنامه نویسی سریع
    * زبان های برنامه نویسی تابعی
    * زبان های برنامه نویسی همه منظوره
    * زبان های برنامه نویسی منطقی
    * زبان های برنامه نویسی شی گرا
    * زبان های برنامه نویسی متنی

زبان های اصلی
زبان های زیر زبان های برنامه نویسی اصلی هستند ک حداقل توسط هزاران برنامه نویس در سراسر دنیا استفاده می شوند:
Ada  ،ALGOL ، APL ،AWK BASIC  ،سی    C ، سی پلاس پلاسC++  ، سی شارپ    C#، کوبولCOBOL ، ColdFusion ، لیسپCommon Lisp ،  دلفیDelphi     ، Eiffel     ، Focus     ، Fortran     ، Haskell ، ای دی ال IDL ، جاوا Java ، جاوا اسکرپیت Java script ، Lisp ،  ماژولاModula ،  ابجکت سیObjective-C     ، OCaml ، پاسکال Pascal ، پرل Perl ، پی اچ پیPHP ،     پرولوگProlog ، فوتونPython ، Ruby ، ساسSAS ،    Scheme اسمال تاک، اس کیو الSQL ، ویژوال بیسیک Visual Basic

زبان‌های برنامه‌نویسیزبان‌های برنامه‌نویسی ساختارهای زبانی‌ دستورمداری در رایانه‌ها هستند که به‌وسیلهٔ آنها می‌توان یک الگوریتم را به‌وسیلهٔ ساختارهای دستوری متفاوت برای اجرای رایانه توصیف کرد و با این روش امکان نوشتن برنامه جهت تولید نرم‌افزارهای جدید بوجود می‌آید. معمولاً هر زبان برنامه‌نویسی دارای یک محیط نرم‌افزاری برای وارد کردن متن برنامه، اجرا، همگردانی و رفع اشکال آن هستند.

عموماً زبانهای برنامه نویسی را به پنج نسل تقسیم میكنند:
    * نسل اول زبان ماشین - زبان صفرو یك
    * نسل دوم زبانهایی مانند اسمبلی -قابل فهم تر برای انسان
    * نسل سوم زبانهایی مانند كوبول و پی ال وان و... -دستورات قابل فهم تر برای انسان و نیاز به كمپایلرها
    * نسل چهارم مثل زبانهای اوراكل و فاكس پرو و اس كیو الها - نزدیك به محاوره های انسانی
    * نسل پنج زبانهایی مانند prolog , ops5 - تمركز بر حل مسئله و استفاده از الگوریتمهای نوشته شده توسط برنامه نویس

زبان برنامه‌نویسی سطح پایین
در علوم رایانه زبان برنامه‌نویسی سطح پایین یا زبان برنامه‌نویسی کوتاه‌تراز (Low-level programming language) زبانی است که به مقدار کم یا هیچ انتزاعی نسبت به ریزپردازنده فراهم نمی‌نماید. عبارت سطح پایین به این معنی نیست که این زبان نسبت به زبان برنامه‌نویسی سطح بالا ارزش کمتری دارند بلکه به معنای عدم وجود انتزاع بین این زبان و ساختار ریزپردازنده است از این جهت گاهی این زبان‌ها را نزدیک به سخت‌افزار نیز می‌نامند. سطح بالا و سطح پایین نسبی هستند و یک برنامه‌نویس جاوا ممکن است زبان سی را سطح پایین بداند در حالی یک برنامه‌نویس سی زبان ماشین را در سطحی پایین‌تر از خود می‌داند.
زبان‌های سطح پایین را گاهی به دو دسته نسل اول و نسل دوم تقسیم می‌نمایند.

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

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

زبان برنامه‌نویسی سطح بالا
زبان برنامه‌نویسی سطح بالا یا زبان برنامه‌نویسی بلند‌تراز (High-level programming language) زبانی است که نسبت به زبان برنامه‌نویسی سطح پایین راحت‌تر قابل استفاده و قابل حمل بین سیستم‌های متفاوت و دارای انتزاع بیشتری هستند. چنین زبان‌هایی عموماً از عملیات CPU مانند مدل‌های دسترسی به حافظه و مدیریت حوزه دور هستند.

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

معنای نسبی
توجه به این نکته ضروری است که عبارت سطح بالا و سطح پایین نسبی هستند. در ابتدا زبان اسمبلی سطح پایین و زبان کوبول و سی و غیره بدلیل استفاده از متغیر و توابع و عبارات سطح بالا محسوب می‌شدند. با این وجود برنامه‌نویسان ممکن است سی را یک زبان سطح پایین محسوب نمایند چرا که امکان دسترسی به حافظه به صورت مستقیم و امکان دسترسی به کد اسمبلی را نیز فراهم می‌سازد. برای اطلاع بیشتر در این مورد وبسایت C2's page about high-level languages را ببینید

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

نمایش میانی در این زبان‌ها برنامه به یک نمایش میانی تبدیل شده و در ادامه می‌توان آن را بهینه سازی نمود یا ذخیره گردد بدون نیاز به خواندن مجدد فایل مبدا. نمایش میانی معمولاً به صورت بایتکد است.

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

زبان نسل چهارم زبان برنامه‌نویسی هسکل

هسکل (HASKELL) یکی از زبان‌های برنامه‌نویسی تابعی است. چیزی که اکثر دانش‌آموزان از زبان برنامه‌نویسی می‌دانند، عبارت است از مجموعه‌ای از توابع، کلاس‌ها، تایپ‌ها و یک محیط برای نوشتن یک برنامه. این زبان یک زبان‌ها برنامه‌نویسی تنبل و بدون اثرجانبی(side-effect) است. یعنی در ذات دستور ورودی و خروجی ندارد.


مشخصات

  • منبع: http://mprogrammer.blogfa.com/post/7
  • کلمات کلیدی: برنامه ,زبان ,نویسی ,برنامه‌نویسی ,زبان‌های ,ماشین ,برنامه نویسی ,زبان برنامه‌نویسی ,برنامه نویس ,زبان ماشین ,زبان اسمبلی ,زبان برنامه نویسی
  • در صورتی که این صفحه دارای محتوای مجرمانه است یا درخواست حذف آن را دارید لطفا گزارش دهید.

تبلیغات

محل تبلیغات شما
محل تبلیغات شما
عکس آقای خامنه ای

آخرین جستجو ها