تهیه کنند:سعید شیرزاد

الگوریتم اصلا چیست؟

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

  1. به آشپزخانه برو.

  2. کتری را از آب پر کن.

  3. کتری را روی گاز بگذار.

  4. گاز را روشن کن.

  5. صبر کن تا آب جوش بیاید.

  6. چای را درون قوری بریز.

  7. قوری را از آب جوش پر کن.

  8. قوری را روی کتری بگذار.

به همین سادگی! ما معمولا جواب مسائل را میدانیم. فقط بلد نیستیم چطور آنها را به الگوریتم تبدیل کنیم. تعدادی مثال واقعی تر:

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

  1. اولین عدد را بگیر.

  2. دومین عدد را بگیر.

  3. عدد اول و دوم را با هم جمع کن و حاصل را در حافظه نگه دار

  4. حاصل را چاپ کن.

فرض کنید میخواهیم برنامه ای بنویسیم که مربع هر عدد را حساب کند. مربع یعنی عدد به توان ۲:

  1. یک عدد را بگیر.

  2. عدد را در خودش ضرب کن و حاصل را در حافظه نگه دار. (هر عدد به توان ۲ یعنی آن عدد در خودش ضرب شود)

  3. حاصل را چاپ کن.

دقت کنید که تنها کاری که انجام میدهم، شکستن مسئله به مراحل کوچک تر و ساده تر، و نوشتن آنها به صورت امری است. همین و بس.

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

ما جواب این مسئله را میدانیم. اما نمیدانیم پطور باید الگوریتم آنرا بنویسیم. من و شما میدانیم که هر عددی بر دو بخش پذیر باشد، زوج است. به همین سادگی.

  1. یک عدد را بگیر

  2. آن عدد را بر دو تقسیم کن و باقیمانده را در حافظه نگه دار

  3. اگر باقی مانده صفر است (یعنی عدد ما بر دو بخش پذیر است) چاپ کن: “زوج”

  4. اگر باقی مانده صفر نیست، چاپ کن: “فرد”

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

نکته مهم: شاید با این قبیل الگوریتم های وحشتناک مثل محاسبه ترانهاده ماتریس و محاسبه فاکتوریل چند عدد و سری فیبوناچی و … مواجه شده باشید. بگذارید خیالتان را راحت کنم. بعد از ۱۰ سال برنامه نویسی و حتی تجربه بستن نرم افزارهای مالی و محاسباتی، هیچ وقت به چیزی بیشتر از ۴ عمل اصلی ریاضی، احتیاج پیدا نکرده ام. اگر میخواهید برنامه نویس تجاری باشید، و استاد شما دارد به شما این الگوریتم های وحشتناک را یاد میدهد، استاد شما یک برنامه نویس نما است!

و اما تمرینات:

  1. برنامه ای بنویسید که دو عدد را تفریق کند.

  2. برنامه ای بنویسید که نمره دو تا از درس های دانش آموزی را گرفته، و معدل آن دو درس را بدهد. (معدل=مجموع نمره ها تقسیم بر تعداد آنها)

  3. برنامه ای بنویسید که یک عدد را بگیرد و مشخص کند آیا بر ۵ بخش پذیر هست یا خیر؟ (راهنمایی: از باقی مانده استفاده کنید.)

  4. برنامه ای را بنویسید که اول یک عدد بگیرد. سپس عدد دوم را بگیرد و مشخص کند عدد اولی بر دومی بخش پذیر است یا خیر (راهنمایی: از باقی مانده استفاده کنید.)

اگر در حل تمرین ها مشکلی داشتید، کامنت بگذارید. اگر شک داشتید که مسئله را درست حل کرده اید یا خیر، کامنت بگذارید تا شما را راهنمایی کنیم.

باور کنید نوشتن الگوریتم همین قدر ساده است!


برنامه نویسی

تهیه کننده:سعید شیرزاد

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

CodefriendCodefriend

 

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

  1. کارفرماهایی با شناخت سطحی از برنامه‌نویسی همیشه مشکل این شغل هستند، کارفرمایی که فقط به رسیدن به پول و کارکردن سیستم فکر می‌کند و ساختار و محاسبات پایه سیستم برایشان از اهمیت کم تری برخوردار است و به همین دلیل اکثراٌ چنین سازمان‌هایی با مشکل از دست دادن نیروی متخصص مواجه می‌شوند.
  2. توهم برنامه‌نویسی در بعضی افراد مشکل بعدی این حرفه است، توهمی که ناشی از دانش و توانایی کم و نگاه سطحی به برنامه‌نویسی است. آیا یک برنامه‌نویس که نتواند کد ایجاد شده خود (کپی شده‌ی خود) را توضیح دهد یک برنامه‌نویس است!؟
  3. ضعف دانشگاه ها : این مورد را همه قبول دارن که دانشگاه های ایران اکثرا مدرک گرا هستن و دانشجو با حفظ کردن جزوات فقط باید ترم را پاس می کند! دانشگاه ها مهمترین مکان برای تربیت برنامه نویسان در دنیاست و جای تاسف دارد که در دانشگاه های ایران زبان های برنامه نویسی ضعیف به بدترین شکل ممکن آموزش داده میشود و آن هم الان از زبانهای 2010 به قبل مانند c , c++و…که سالهای قبل جای خودشون رو به زبانهای پیشرفته و شی گرا داده اند در کلاسهای آکادمیک تدریس میشود.
  4. تحریم : به خاطر مسائل ی و تحریم های صورت گرفته علیه ایران و البته کم کاری در حوزه فناوری اطلاعات در ایران ، متاسفانه دسترسی به سایتهای عظیم علمی و پژوهشی میسر نمیباشد و برنامه نویسان باهوش و حرفه ای ایرانی مجبورند به شرکتهای اروپایی مهاجرت کنند.
  5. بی توجهی به استعداد ها : فعالان در حوزه رایانه و برنامه نویسی اکثرا در شهر های تهران ، اصفهان ، مشهد و نهایتا شیراز و یزد حمایت میشوند در صورتی که استعداد های بزرگی در سایر شهر های ایران هستند که بدلیل نبود امکانات و …حمایت نمیشوند.
  6. عدم سرمایه گذاری : برنامه نویسی یک کار پر هزینه است در صورتی که در ایران کسی حاضر به سرمایه گذاری در این حوزه نیست ، دولت و ادارات نیز هیچ حمایتی به عمل نمی آورند.اما در زمان حال این موضع یک مقدار با گذشته فرق کرده و به برنامه نویس و شغل برنامه نویسی دید بهتری پیدا شده است.

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

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

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

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

بررسی حقوق برنامه‌ نویس:

در بروزترین تحقیق صورت گرفته در اواخر سال 1395 توسط تعدادی از متخصصان شغلی کشور، گروه‌های مختلف شغلی که در سازمان‌ها وشرکت‌ها استخدام بودند، از نظر درآمد مورد بررسی قرار گرفته‌اند. بر این اساس متوسط حقوق و درآمد متخصصان حوزه فناوری اطلاعات و کامپیوتر در سمت های مختلف شغلی و در رده های مختلف سازمانی (کارشناس، سرپرست و مدیر) استخراج شده است.

میانگین حقوق 50% برنامه‌نویسان عادی بین 1.5 تا 3 میلیون تومان می‌باشد، که به طور کلی میانگین حقوق 2 میلیون را دارا می‌باشند

میانگین حقوق 50% برنامه‌نویسان ارشد بین 2 تا 4.5 میلیون تومان می‌باشد، که به طور کلی میانگین حقوق 3 میلیون را دارا می‌باشند.

میانگین حقوق 50% مدیر فنی (مدیر برنامه‌نویسان ارشد) بین 2.5 تا 5 میلیون تومان می‌باشد، که به طور کلی میانگین حقوق 3.7 میلیون را دارا می‌باشند.


برنامه نویسی

تهیه کنند:سعید شیرزاد

الگوریتم اصلا چیست؟

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

  1. به آشپزخانه برو.

  2. کتری را از آب پر کن.

  3. کتری را روی گاز بگذار.

  4. گاز را روشن کن.

  5. صبر کن تا آب جوش بیاید.

  6. چای را درون قوری بریز.

  7. قوری را از آب جوش پر کن.

  8. قوری را روی کتری بگذار.

به همین سادگی! ما معمولا جواب مسائل را میدانیم. فقط بلد نیستیم چطور آنها را به الگوریتم تبدیل کنیم. تعدادی مثال واقعی تر:

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

  1. اولین عدد را بگیر.

  2. دومین عدد را بگیر.

  3. عدد اول و دوم را با هم جمع کن و حاصل را در حافظه نگه دار

  4. حاصل را چاپ کن.

فرض کنید میخواهیم برنامه ای بنویسیم که مربع هر عدد را حساب کند. مربع یعنی عدد به توان ۲:

  1. یک عدد را بگیر.

  2. عدد را در خودش ضرب کن و حاصل را در حافظه نگه دار. (هر عدد به توان ۲ یعنی آن عدد در خودش ضرب شود)

  3. حاصل را چاپ کن.

دقت کنید که تنها کاری که انجام میدهم، شکستن مسئله به مراحل کوچک تر و ساده تر، و نوشتن آنها به صورت امری است. همین و بس.

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

ما جواب این مسئله را میدانیم. اما نمیدانیم پطور باید الگوریتم آنرا بنویسیم. من و شما میدانیم که هر عددی بر دو بخش پذیر باشد، زوج است. به همین سادگی.

  1. یک عدد را بگیر

  2. آن عدد را بر دو تقسیم کن و باقیمانده را در حافظه نگه دار

  3. اگر باقی مانده صفر است (یعنی عدد ما بر دو بخش پذیر است) چاپ کن: “زوج”

  4. اگر باقی مانده صفر نیست، چاپ کن: “فرد”

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

نکته مهم: شاید با این قبیل الگوریتم های وحشتناک مثل محاسبه ترانهاده ماتریس و محاسبه فاکتوریل چند عدد و سری فیبوناچی و … مواجه شده باشید. بگذارید خیالتان را راحت کنم. بعد از ۱۰ سال برنامه نویسی و حتی تجربه بستن نرم افزارهای مالی و محاسباتی، هیچ وقت به چیزی بیشتر از ۴ عمل اصلی ریاضی، احتیاج پیدا نکرده ام. اگر میخواهید برنامه نویس تجاری باشید، و استاد شما دارد به شما این الگوریتم های وحشتناک را یاد میدهد، استاد شما یک برنامه نویس نما است!

و اما تمرینات:

  1. برنامه ای بنویسید که دو عدد را تفریق کند.

  2. برنامه ای بنویسید که نمره دو تا از درس های دانش آموزی را گرفته، و معدل آن دو درس را بدهد. (معدل=مجموع نمره ها تقسیم بر تعداد آنها)

  3. برنامه ای بنویسید که یک عدد را بگیرد و مشخص کند آیا بر ۵ بخش پذیر هست یا خیر؟ (راهنمایی: از باقی مانده استفاده کنید.)

  4. برنامه ای را بنویسید که اول یک عدد بگیرد. سپس عدد دوم را بگیرد و مشخص کند عدد اولی بر دومی بخش پذیر است یا خیر (راهنمایی: از باقی مانده استفاده کنید.)

اگر در حل تمرین ها مشکلی داشتید، کامنت بگذارید. اگر شک داشتید که مسئله را درست حل کرده اید یا خیر، کامنت بگذارید تا شما را راهنمایی کنیم.

باور کنید نوشتن الگوریتم همین قدر ساده است!


برنامه نویسی

تهیه کننده:سعید شیرزاد

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

CodefriendCodefriend

 

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

  1. کارفرماهایی با شناخت سطحی از برنامه‌نویسی همیشه مشکل این شغل هستند، کارفرمایی که فقط به رسیدن به پول و کارکردن سیستم فکر می‌کند و ساختار و محاسبات پایه سیستم برایشان از اهمیت کم تری برخوردار است و به همین دلیل اکثراٌ چنین سازمان‌هایی با مشکل از دست دادن نیروی متخصص مواجه می‌شوند.
  2. توهم برنامه‌نویسی در بعضی افراد مشکل بعدی این حرفه است، توهمی که ناشی از دانش و توانایی کم و نگاه سطحی به برنامه‌نویسی است. آیا یک برنامه‌نویس که نتواند کد ایجاد شده خود (کپی شده‌ی خود) را توضیح دهد یک برنامه‌نویس است!؟
  3. ضعف دانشگاه ها : این مورد را همه قبول دارن که دانشگاه های ایران اکثرا مدرک گرا هستن و دانشجو با حفظ کردن جزوات فقط باید ترم را پاس می کند! دانشگاه ها مهمترین مکان برای تربیت برنامه نویسان در دنیاست و جای تاسف دارد که در دانشگاه های ایران زبان های برنامه نویسی ضعیف به بدترین شکل ممکن آموزش داده میشود و آن هم الان از زبانهای 2010 به قبل مانند c , c++و…که سالهای قبل جای خودشون رو به زبانهای پیشرفته و شی گرا داده اند در کلاسهای آکادمیک تدریس میشود.
  4. تحریم : به خاطر مسائل ی و تحریم های صورت گرفته علیه ایران و البته کم کاری در حوزه فناوری اطلاعات در ایران ، متاسفانه دسترسی به سایتهای عظیم علمی و پژوهشی میسر نمیباشد و برنامه نویسان باهوش و حرفه ای ایرانی مجبورند به شرکتهای اروپایی مهاجرت کنند.
  5. بی توجهی به استعداد ها : فعالان در حوزه رایانه و برنامه نویسی اکثرا در شهر های تهران ، اصفهان ، مشهد و نهایتا شیراز و یزد حمایت میشوند در صورتی که استعداد های بزرگی در سایر شهر های ایران هستند که بدلیل نبود امکانات و …حمایت نمیشوند.
  6. عدم سرمایه گذاری : برنامه نویسی یک کار پر هزینه است در صورتی که در ایران کسی حاضر به سرمایه گذاری در این حوزه نیست ، دولت و ادارات نیز هیچ حمایتی به عمل نمی آورند.اما در زمان حال این موضع یک مقدار با گذشته فرق کرده و به برنامه نویس و شغل برنامه نویسی دید بهتری پیدا شده است.

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

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

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

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

بررسی حقوق برنامه‌ نویس:

در بروزترین تحقیق صورت گرفته در اواخر سال 1395 توسط تعدادی از متخصصان شغلی کشور، گروه‌های مختلف شغلی که در سازمان‌ها وشرکت‌ها استخدام بودند، از نظر درآمد مورد بررسی قرار گرفته‌اند. بر این اساس متوسط حقوق و درآمد متخصصان حوزه فناوری اطلاعات و کامپیوتر در سمت های مختلف شغلی و در رده های مختلف سازمانی (کارشناس، سرپرست و مدیر) استخراج شده است.

میانگین حقوق 50% برنامه‌نویسان عادی بین 1.5 تا 3 میلیون تومان می‌باشد، که به طور کلی میانگین حقوق 2 میلیون را دارا می‌باشند

میانگین حقوق 50% برنامه‌نویسان ارشد بین 2 تا 4.5 میلیون تومان می‌باشد، که به طور کلی میانگین حقوق 3 میلیون را دارا می‌باشند.

میانگین حقوق 50% مدیر فنی (مدیر برنامه‌نویسان ارشد) بین 2.5 تا 5 میلیون تومان می‌باشد، که به طور کلی میانگین حقوق 3.7 میلیون را دارا می‌باشند.


برنامه نویسی

تبلیغات

آخرین ارسال ها

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

دانلود نرم افزار سرخطی سهام برای اندروید MSG1300 فروش فلزیاب | 09100061386 دانلود فیلم جوکر 2019 دانلود فیلم و سریال رایگان معرفی کالا فروشگاهی همراه با آی تی من •|پَروازِ بـــى اِنتِها|•