محل لوگو
  • عنوان اسلاید
  • عنوان اسلاید
  • عنوان اسلاید

تعریف کسب و کار اینترنتی


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

در ابتدا باید اصلا معنی و مفهوم کسب و کار رو بدونیم و بعد این که این موضوع مشخص شد به سراغ مدل آنلاین یا اینترنتی آن بریم.

کسب و کار چیست؟

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

نظر بزرگان در مورد تعریف کسب و کار:

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

(پترسن و پلومن) بر این باورند که هر تبادلی که در آن خرید و فروش صورت گیرد، کسب و کار نیست، بلکه کسب و کار، هر نوع تبادل تکراری و تجدید شونده ی خرید و فروش است.

پروفسور (اون)، کسب و کار را یک نوع کاسبی می داند که طی آن کالاها یا خدمات برای فروش در بازار تولید و توزیع می شوند.

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

کسب و کار اینترنتی:

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

مزایای کسب و کارهای اینترنتی:

  • ارزان بودن
  • انعطاف پذیر بودن
  • از کار کردن لذت می برید
  • زمان در اختیار شماست (یعنی هر زمان که دوست دارید میتوانید کار کنید)
  • عدم محدودیت در زمان و مکان
  • شانس نامحدود برای پولدار شدن
  • با کسب و کار اینترنتی رئیس خود باشید
  • می توانید همزمان دارای چند شغل باشید
  • نیاز به سرمایه کلان، مدرک و یا حتی شرایط سنی ندارید
  • هزینه های اضافی مثل هزینه رفت و آمد به محل کار حذف می شود
  • سرمایه اولیه برای راه اندازی کسب و کار اینترنتی:

    سرمایه اولیه کسب و کار اینترنتی نسبت به کسب و کارهای فیزیکی خیلی کمتر است. و شما با کمترین هزینه و ریسک کسب و کار اینترنتی خودتون رو شروع کنید. البته کسب و کارهایی هم هستند که ایده های جدیدی دارند و اکثر این کسب و کارها به سرمایه های بیشتری برای راه اندازی احتیاج دارند. ولی در کل برای راه اندازی کسب و کار اینترنتی سرمایه ناچیزی لازم است.
    مثلا برای راه اندازی یک فروشگاه ساعت فیزیکی باید حداقل بین ۵۰ تا ۱۰۰ میلیون سرمایه داشته باشید (اگر ساعت اورجینال بفروشید باید بین ۳۰۰ تا ۵۰۰ میلیون سرمایه داشته باشید) ولی در حالت آنلاین یا اینترنتی با هزینه بین ۵ تا ۱۰ میلیون میتوانید یک فروشگاه آنلاین فوق العاده راه اندازی کنید.

انتشار : ۲۹ شهریور ۱۳۹۶

الگوریتم برنامه نویسی چیست؟


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

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

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

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

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

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

واژه الگوریتم از کجا آماده است؟

الگوریتم نام های دیگری مثل الگوریتمی، خوارزمیک یا خوارزمی دارد. واژه الگوریتم از نام ریاضیدان و ستاره‌شناس و جغرافی‌دان نامی ایرانی، ابوجعفر محمد بن موسی خوارزمی (الخوارزمی)، گرفته شده است.
در قرن ۱۳ میلادی واژه الگوریسموس(algorismus) به معنای (سیستم شمارش عربی (دهدهی)) (یعنی اعداد ۱ تا ۹ به علاوه صفر، و نیز مفهوم اعشار) بود؛ که هنوز هم یکی از معانی واژه الگوریسم(algorism) است. معنای دیگر الگوریسم «حساب کردن با کمک اعداد عربی» است؛ یعنی فن انجام أعمال حسابی پایه، مانند جمع و ضرب، با قرار دادن اعداد در زیر هم و إعمال قواعدی خاص، که جایگزین به کارگیری اعداد رومی و استفاده از چرتکه شد. حتی روش انجام دستی تقسیم و جذر گرفتن (رادیکال) هم الگوریسم نامیده می‌شود. در قرن ۱۹ این کلمه در فرانسوی به algorithme تغییر شکل پیدا کرد، البته معنایش ثابت ماند. طولی نکشید که این کلمه به شکل algorithm وارد زبان انگلیسی شد؛ ولی فقط در اواخر قرن ۱۹ میلادی بود که معنای عام‌تر امروزی‌اش را یافت، و به «هر مجموعه قواعدی برای انجام یک رویه محاسباتی یا روال رایانه‌ای به کار رود» الگوریتم گفته شد.

تبدیل نام الخوارزمی به الگوریسم و سپس الگوریتم احتمالاً تحت تأثیر واژه یونانی arithmos (به معنای عدد) و arithmetic (به معنای محاسباتی) بوده است. برخی منابع هم کلمه لگاریتم را هم در تبدیل الگوریسم و الگوریتم بی تأثیر ندانسته‌اند.

خصوصیات یک الگوریتم

تمام الگوریتم‌ها باید شرایط و معیارهای زیر را دارا باشند:

  • ورودی:
    یک الگوریتم باید هیچ یا چندین پارامتر را به عنوان ورودی بپذیرد؛
  • خروجی:
    الگوریتم بایستی حداقل یک کمیت به عنوان خروجی (نتیجه عملیات) تولید کند؛
  • قطعیت:
    دستورهای الگوریتم باید با زبانی دقیق، و بی‌ابهام بیان شوند. هر دستورالعمل نیز باید انجام‌پذیر باشد. دستورهایی نظیر «مقدار ۶ یا ۷ را به x اضافه کنید» یا «حاصل تقسیم پنج بر صفر را محاسبه کنید» مجاز نیستند؛ چرا که در مورد مثال اول، معلوم نیست که بالاخره چه عددی باید انتخاب شود، و در خصوص مثال دوم هم تقسیم بر صفر در ریاضیات تعریف نشده‌است.
  • محدودیت:
    الگوریتم باید دارای شروع و پایان مشخصی باشد، به نحوی که اگر دستورهای آن را دنبال کنیم، برای تمامی حالات، الگوریتم پس از طی مراحل شمارا و متناهی خاتمه یابد. به علاوه، زمان لازم برای خاتمه الگوریتم هم باید به گونه‌ای معقول، کوتاه باشد.

  • مفهوم الگوریتم

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

    نکته جالب: در بعضی کشورها، مثل آمریکا اگر تعبیه فیزیکی الگوریتمی ممکن باشد (برای مثال، یک الگوریتم ضرب که می‌شود آن را در واحد محاسبهٔ یک ریز پردازنده تعبیه کرد) می‌شود آن الگوریتم را به ثبت رساند.

    نکاتی که باید هنگام نوشتن الگوریتم در نظر داشته باشید:

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

      • شروع
      • بیدار شدن از خواب
      • شستن دست و صورت
      • خوردن صبحانه
      • پوشیدن لباس مناسب
      • برداشتن وسایل مورد نیاز (کتاب و …)
      • خروج از خانه
      • رفتن به دانشگاه
      • ورود به کلاس
      • پایان

      همانگونه که مشاهده میکنید این دستورات باید به ترتیب انجام شوند، در غیر این‌صورت امکان بروز خطا وجود دارد.

انتشار : ۲۹ شهریور ۱۳۹۶

بازاریابی یا مارکتینگ از نگاه دیگر


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

قبل از اینکه سراغ تعریف بازاریابی برویم ،میخواهم به برداشت اشتباهی که عموم مردم به مفهوم بازاریابی دارند اشاره کنم. اغلب افراد تا همین که کلمه بازاریابی را می شوند فکر می کنند بازاریابی (Marketing)، یعنی این که بروشوری را در دستمان بگیریم و بریم به صد جای مختلف و التماس کنیم که از ما چیزی بخرند! و یا اینکه فردی را در ذهن تداعی می کنند که کنار خیابان و با نگاه معصومانه منتظر هست که مردم از او برگه تبلیغاتی بگیرند!!

و چه زیادند افرادی که همین که در جواب سوال چه شغلی داری می گویی: مدیر بازاریابی (Marketing Manager)،فکر می‌ کنند که مسئول چند بازاریاب هستی که می روند و می فروشند و تو هم پورسانتی از فروش آن‌ها به جیب می زنی!

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

بالاخره میگی بازاریابی چیه یا نه؟!!
به دنیای مهیج بازاریابی خوش آمدید! بحث را با یک سوال ساده آغاز می کنیم؛

بازاریابی چیست؟

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

هدف دوگانه بازاریابی، جذب مشتریان جدید با ارائه ارزش بالاتر و حفظ مشتریان فعلی به وسیله جلب رضایت آنها است.

اگر بخواهیم بازاریابی را از نگاه فیلیپ کاتلر پدر علم بازاریابی نوین؛تعریف کنیم به همان تعریف اولیه که در ویکی پدیا آمده و اول مقاله به آن اشاره کردیم می رسیم:
بازاریابی به عنوان فرآیندی مدیریتی-اجتماعی تعریف می‌شود که به وسیله آن، افراد، گروه‌ها و سازمان‌ها از طریق تولید، عرضه و مبادله کالا (و خدمات) با یکدیگر، به تأمین نیازها و خواسته‌های خود اقدام می‌کنند.

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

بصورت خودمانی:
بازاریابی فرایندی است که در آن برای مشتری ارزش ایجاد می کنیم و رابطه مستحکمی با او برقرار کنیم تا بتوانیم در عوض از مشتری ارزش دریافت کنیم.(یه بده بستونه که به برد برد برسیم:)-)

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

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

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

کسب و کار شما ، باید یکسازمان حرفه ای تبلیغاتی باشد که بداند چطور ارزشهای مورد نظر مشتری که تبدیل به رابطه عمیق و دائمی با مشتری می شود را ایجاد کند. شما بهتر از هر کسب و کار دیگری باید به طرفدارانتان گوش دهید و چیزی که آنها طالبش هستند را در اختیارشان بگذارید. در عوض، طرفداران و حامیان کسب و کار شما ، آن را ارج نهاده، عمیقاً به آن وفادار بوده و سود دائمی را برایتان فراهم می کنند.

***بعضی از صاحبان کسب و کار اگر یاد بگیرند بجای سرکیسه کردن مشتریان (عذر مرا برای رک صحبت کردنم پذیرا باشید) ،به فکر رضایت مشتریان باشند ، شاید با این کار سود و یا مشتری امروز را از دست بدهد ولی آنرا برای فردا همیشگی حفظ می کند.

شرکتهای موفق امروزی، همه در یک نقطه مشترک هستند: آنها شدیداً متمرکز بر مشتری و کاملاً ملزم به بازاریابی می باشند. این شرکتها، همگی برای برآورده کردن هرچه بهتر نیازهای مشتری در بازار مقصد تلاش میکنند. آنها سعی می کنند انگیزه لازم جهت ایجاد ارزش مورد نظر مشتری را در تمامی افراد زیر مجموعه خود ایجاد کنند. برین مارکوس، یکی از بنیانگذاران فروشگاههای هوم دپوت تأکید می کند که: “همه افراد ما متوجه هدف نهایی مقدس ما هستند . آنها می دانند که نقطه پایانی برایشان وجود ندارد؛ همیشه باید با تمام وجود و با علاقه به نیازهای مشتری توجه کرد.”

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

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


یک مدل ۵ مرحله ای برای فرایند بازاریابی به تصویر درامده است:

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

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

انتشار : ۲۹ شهریور ۱۳۹۶

حداقل سیستم مورد نیاز برای برنامه نویسی


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

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

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

  • برنامه نویسی وب
  • برنامه نویسی موبایل
  • برنامه نویسی دسکتاپ

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

برنامه نویسی وب جز برنامه نویسی های سبک هستش مثلا برای نوشتن و کدنویسی طرف کاربر (منظور کدنویسی HTML , CSS) احتیاج به سیستم قوی ندارید و یک سیستم با حداقل امکانات میتونه کار شما رو راه بندازه. در برنامه نویسی های مثل PHP میتونید داخل یک ویرایشگر مثل نوت پد هم بنویسید اما اگر از فریم ورک ها و نرم افزار ها استفاده کنید حداقل باید ۲ یا ۴ گیگ رم داشته باشید و یک سی پی یو core i5 یا core i7 خوبه، گرافیکم زیاد درگیر نیست و می تونید یک گرافیک معمولی استفاده کنید. چون فشار رو سرور است نه سیستم خود برنامه نویس و احتیاج به سیستم آن چنانی ندارد. البته این رو بگم که برنامه هایی مثل phpstorm واقعا به سی پی یو و رم بالایی نیاز دارد چون خیلی سی پی رو درگیر میکند.

توجه: phpstorm یک ادیتور بسیار قدرتمند برای طراحی صفحات وب میباشد که از اکثر زبان های برنامه نویسی مثل html ، css ، java script ، php و … پشتیبانی میکند و با قابلیت های فراوانی که دارد کار برنامه نویسی و طراحی را بسیار ساده میکند.

برنامه نویسی موبایل:

یکی دیگر از برنامه نویسی ها، برنامه نویسی موبایل هستش که با حداقل منابع هم می شود نرم افزار های آن رو نصب کرد حتی روی یک netbook قابل استفاده هست. اما مشکل اینجاست که وقتی حجم سورس کد بالا میره و انتظار دارید که خیلی سریع بتونید تو چند هزار خط کد، بچرخید، نیاز به رم بالا مثلاً ۴GB دارید. همینطور برای اینکه Emulator سریعتر کار کنه نیاز به سخت افزاری دارید که Virtualize رو ساپورت کنه که معمولاً پردازنده های Intel در این مورد قویتر از AMD عمل می کنند.
کارت گرافیک هم در Emulator اصلی خود اندروید کاربرد خاصی نداره ولی اگر بخواید از GenyMotion استفاده کنید، کارت گرافیک بسیار بسیار مهم خواهد بود. اما مهمتر از همه اینها چشم شماست. وقتی به LCD های نوت بوک نگاه می کنید یا دیگه بدتر (نت بوک) چه انتظاری از چشمتون دارید؟ انتظار ندارید که ۴ ساعت براتون نوشته های ریز رو با Contrast پایین و بازتاب صفحه نمایش بتونه تحمل کنه. پس تو فکر یک مانیتور بزرگ (مثلا بین۲۲ تا ۲۷ اینچ – مدل های اچ پی خیلی خوبن) و با Contrast بالا باشد.

Emulator چیست؟ با کمک برنامه های Emulator می توان یک دستگاه مجازی به وجود آورد. یعنی مثلا برنامه های یک سیستم عامل (اندروید) در سیستم عامل دیگری (ویندوز) اجرا کرد. این برنامه ها تلاش می کنند تا توانایی سخت افزار را به وسیله نرم افزار اجرا کنند.

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

با یکی از اساتید برنامه نویسی اندروید (چند ماه دیگه در سایت سورس ایران دوره برنامه نویسی اندروید برگزار میکنند) صحبت کردم و در مورد سخت افزارهای مورد نیاز برای اجرای مناسب Android Studio سوال کردم و تقاضا داشتم حداقل سیستم برای برنامه نویسی موبایل با Android Studio رو بهم بگه که در کنار مقاله خودم در سایت منتشر کنم.

حداقل سیستم مورد نیاز اندروید استودیو (Minimum System Requirements) :

پردازنده (CPU):

در مدل های دسکتاپ: AMD Phenom II X4 یا Inte Pentium Processor G3250.

در مدل های لپ تاپ: پردازنده های فعلی کلاس لپ تاپ از AMD فاقد امکانات لازم برای کارکرد صحیح این برنامه هستند، لذا تا پلتفرم آینده این برند و عرضه پردازنده های Bristol Ridge و AM4 قادر به استفاده از این نوت بوک ها نخواهید بود. پردازنده های اینتل نیز در مدل های i3 و i5 های سری Ultra Low Voltage را پیشنهاد می کنیم.

حافظه رم (RAM):

در مدل های دسکتاپ: حداقل ۴ گیگابایت در نمونه های DDR3 با فرکانس ۱۳۳۳ مگاهرتز و در مدل های DDR4 در فرکانس ۲۱۳۳ مگاهرتز.

در مدل های لپ تاپ: حداقل ۴ گیگابایت در نمونه های DDR3L 1333 و DDR4 2133 مگاهرتز.

کارت گرافیک (VGA):

در مدل های دسکتاپ: قادر به اجرای برنامه با پردازنده گرافیکی مجتمع شده در پردازنده های کمپانی Intel هستید. همچنین می توانید از APU های AMD نیز در این زمینه بهره مند شوید.

در مدل های لپ تاپ: کارت گرافیک Nvidia GT610/620 یا AMD Radeon R9 M275

سیستم عامل (OS): در هر دو پلتفرم نیازمند استفاده از سیستم عامل های ۶۴ بیتی خواهیم بود. سیستم عامل های ۷، ۸٫۱ و ۱۰ را برای اجرای مناسب پیشنهاد می دهیم.

حافظه ذخیره سازی (Storage Device):

در زمان فراخوانی متریال و فایل های اولیه، شاهد استفاده بسیار زیاد از درایو ذخیره ساز هستیم. در نتیجه نیازمند یک هارد دیسک با یک بافر ۳۲ مگابایتی و دور موتور ۵۴۰۰ RPM هستیم.

سیستم پیشنهادی برای اندروید استودیو (Recommended system) :

به مانند دیگر نرم افزارهای تخصصی موجود در بازار، پس از معرفی حداقل سخت افزار مورد نیاز به سراغ معرفی سخت افزارهای مناسب به منظور اجرای صحیح و مناسب نرم افزار خواهیم رفت.

پردازنده (CPU):

در مدل های دسکتاپ: پردازنده Intel i7-6700 یا AMD FX-8320.

در مدل های لپ تاپ: پردازنده Intel i7-6700HQ

حافظه رم (RAM):

در مدل های دسکتاپ: ۸ الی ۱۶ گیگابایت حافظه DDR4/DDR3 در فرکانس های ۲۱۳۳ الی ۳۲۰۰ مگاهرتز.

در مدل های لپ تاپ: ۸ الی ۱۶ گیگابایت حافظه DDR4/DDR3 در فرکانس های ۲۱۳۳ الی ۲۴۰۰ مگاهرتز.

حافظه ذخیره سازی (Storage Device):

در هر دو پلتفرم، پیشنهاد ما به شما استفاده از حداقل یک درایو SSD 2.5 یا M.2 است. این ذخیره سازها می توانند از اینترفیس های SATA III و یا PCIe استفاده نمایند. استفاده از یک درایو SSD تاثیر بسیار زیادی در سرعت عملکرد این نرم افزار دارد.

برنامه نویسی دسکتاپ:

یکی دیگر از برنامه نویسی ها، برنامه نویسی دسکتاپ هستش مثل سی شارپ (البته سی شارپ چند منظوره هست، علاوه بر دسکتاپ میشه برنامه نویسی موبایل و وب هم انجام داد) یا به صورت کامل بگم نرم افزارهایی مثل ویژوال استودیو که معمولا جز نرم افزار های سنگین هستند که برای نصب به حداقل ۱۰ گیگابایت فضا نیاز دارند. البته هر چی سیستم سریعتر باشه کارایی بالاتر میره! ولی درکل نرم افزارهایی مثل ویژوال استودیو روی سیستم هایی با حافظه۱+ ، پردازنده ۲٫۵Ghz+ & MultiCore، کاراییش بد نیست!

اما بهترین کار اینه که هر سیستمی دارید مهم نیست، بیشتر سعی کن ویندوزت ۷(به بالا+) و x64 باشد و دیگر این که سعی کن اجزا هایی که در ویژوال استودیو نیاز نداری رو نصب نکنید.

حداقل سیستم مورد نیاز برای اجرای این مدل نرم افزارهایی:

  • پردازنده: ۱٫۶ گیگاهرتز
  • رم: ۱٫۵ گیگابایت
  • کارت گرافیک: ۲۵۶ مگابایت
  • فضای هارد دیسک: ۱۰ گیگابایت
در بخش پایین چند مدل سیستم رو معرفی کردم:

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

حداقل سیستم مورد نیاز برای برنامه نویسی :

  • حافظه ( RAM ) : یک یا دو گیگابایت
  • پردازنده ( CPU) : دو هسته هسته ۱ گیگاهرتزی
  • فضای هارد ( HDD ) : میزان ۱۶ گیگابایت فضای خالی
  • گرافیک ( VGA ) : میزان ۲۵۶ یا ۵۱۲ مگابایت با پشتیبانی DirectX9.0 ( برای فعال شدن Aero)
  • درایو نوری ( ODD ) : دی وی دی رام
  • شبکه ( Network ) : اتصال به اینترنت برای دریافت به روز رسانی ها

سیستم خوب برای برنامه نویسی :

  • حافظه ( RAM ) : میزان ۴ گیگابایت
  • پردازنده ( CPU) : چهار هسته ۳گیگاهرتزی
  • فضای هارد ( HDD ) : میزان ۱۶ گیگابایت فضای خالی
  • گرافیک ( VGA ) : میزان ۲۵۶ مگابایت با پشتیبانی DirectX9.0 ( برای فعال شدن Aero)
  • درایو نوری ( ODD ) : دی وی دی رام
  • شبکه ( Network ) : اتصال به اینترنت برای دریافت به روز رسانی ها

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

  • حافظه ( RAM ) : میزان ۴ گیگابایت به صورت ۲ کانال
  • پردازنده ( CPU) : چهار هسته ای ۲/۴۴ گیگاهرتزی ( مثل Intel Q6600)
  • فضای هارد ( HDD ) : میزان ۲۰ گیگابایت فضای خالی
  • گرافیک ( VGA ) : میزان ۷۶۸ مگابایت مستقل با پشتیبانی DirectX10.1
  • درایو نوری ( ODD ) : دی وی دی رایتر
  • شبکه ( Network ) : اتصال به اینترنت برای دریافت به روز رسانی ها
  • توجه: سیستم هایی که بیشتر از این مدل آخری هست، دیگه خوبه و در کدنویسی هایی که حجم کد بالا میرود بهتر عمل میکند.

    در صورتی که همچنان از یک کامپیوتر و یا نوت بوک ضعیف در اجرای این نرم افزار استفاده می کنید، آخرین راه باقی مانده تخصیص دستی منابع بیشتر سخت افزاری به آن است. برای این منظور محیط Task Manager را اجرا کرده و در تب Details به دنبال فایل اجرایی نرم افزار باشید. سپس بر روی آن کلیک راست کرده و در قسمت Set priority گزینه High را انتخاب نمائید.

انتشار : ۲۹ شهریور ۱۳۹۶

دیباگ کردن در برنامه نویسی


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

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

انواع خطا در برنامه نویسی:

  • خطاهای سینتکسی
  • خطاهای سمنتیک
  • خطاهای منطقی

خطاهای سینتکسی:

به نوشتار کدهای یک زبان برنامه نویسی Syntax گفته می شود. گاهی اوقات برنامه نویسان در حین نوشتن برخی دستورات، غلط املایی مرتکب می شوند. مثلاً به جای نوشتن دستور print، می‌نویسند pritn. در برخی زبان‌ها مثل HTML و CSS مرتکب شدن چنین خطاهایی خیلی مشکل ساز نیست اما برخی از دیگر زبان‌ها مثل PHP و Python با خطاهای سنتکسی خیلی مشکل دارند و برنامه هرگز اجرا نخواهد شد.

خطاهای سمنتیک:

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

خطاهای منطقی:

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

توجه داشته باشیم که اصطلاح Debug کردن یک نرم‌افزار در دهه ی ۴۰ میلادی رواج پیدا کرد زمانی که برنامه نویسی به نام Grace Hopper یک حشره را از داخل یک سیستم کامپیوتری که منجر به اختلال در کار آن شده بود خارج کرد. کلمه ی Bug به معنی حشره است.

تفاوت نسخه Debug و Release در برنامه نویسی:

یک موضوع دیگر که خیلی از کاربران می پرسند تفاوت نسخه Debug و Release در برنامه نویسی هستش و میخواهند بدونند تفاوت این دو چی هست.تفاوت نسخه های دیباک و ریلیس در برنامه نویسی (مثال سی شارپ ویژوال استودیو) این تعریف یک تعریف کلی بوده و برای همه کامپایلر ها صادق است.

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

تفاوت Release و Debug :

Debug:

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

Release :

این نسخه ، نسخه بهینه یا به اصطلاح Optimize شده برنامه است که ازعلاوه بر پایین تر بودن حجم از سرعت بالایی هم برخوردار است پس حتما دقت کنید بعد از اتمام پروژه های خود، حتما نسخه Releaseرا به مشتری ارائه دهید.

نکته: در تصویر بالا در نسخه ویژوال استودیو من علاوه بر دو مورد Release و Debug چند مورد دیگر هم فعال شده اند این موراد به دلیل فعال سازی پروژه سیت اپ در ویژوال استودیو میباشد.

انتشار : ۲۹ شهریور ۱۳۹۶

همه چیز در مورد بیزینس پلن BP


شاید بارها نام بیزینس پلن یا به اختصار BP را شنیده باشید و حتما در مورد آن مطالعه داشته اید اما به شخصه یک مقاله مدون و پیوسته در موردBP ندیده ام که به صورت دقیق و دور از کلیشه، در مورد بیزینس پلن صحبت کرده باشد. در این مقاله سعی میکنم به صورت دقیق و درست مبحثبیزینس پلن رو باز کنم و تمام داشته هایم را در مورد بیزینس پلن در این مقاله بیاورم. پس همراه من باشید، مطمئنا نکات و اطلاعات خوبی کسب خواهید کرد.

بیزینس پلن :

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

خاطره: یکی از دوستان به من مراجعه کرد و گفت جایی رفتم ازم BP خواستند این BP چیه؟ براش توضیح دادم چی هست و چطور نوشته میشه.

نتیجه اخلاقی: لطفا این قد تو جلسات از کلمه BP استفاده نکنید یا بگید Business Plan یا طرح کسب و کار!

طرح کسب و کار یا همین BP

انتشار : ۲۹ شهریور ۱۳۹۶

تعریف برنامه نویسی


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

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

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

نکته: دقت کنید که برنامه نویسی باید به گونه ای انجام شود که کامپیوتر دستورات شما را متوجه شده و آنها را به درستی اجرا کند.

توجه: برنامه نویسی هنر تبدیل کردن خواسته های بشر به زبان قابل فهم برای ماشین (کامپیوتر) است.

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

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

نکته: زبان های برقراری ارتباط با کامپیوتر یا همان زبان های برنامه نویسی بسیار متنوع هستند، مهم این است که شما مفاهیم برنامه نویسی و تبدیل کردن خواسته های خودتان به دستورات کامپیوتری را متوجه شوید.

برنامه یا Program چی هست؟

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

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

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

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

خوشبختانه برنامه نویسی مهارتی است که الزاماً نیاز به دانشگاه رفتن ندارد و هر کسی که صرفاً علاقمند به یادگیری آن باشد می‌تواند ظرف مدت چند ماه (نهایتاً یک سال) به یک برنامه نویس در حوزه ای که به آن علاقمند است مبدل شود.

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

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

انتشار : ۲۹ شهریور ۱۳۹۶

چرا باید برنامه نویسی یاد بگیریم ؟


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

دلایل یادگیری برنامه نویسی :

  • کسب درآمد خوب
  • قدرت پیاده سازی ایده های خود در حوزه فناوری
  • تبدیل شدن به یک تولید کننده ی فناوری
  • تغییر دید مثبت ، افزایش درک بهتر از محیط ، مغز و ذهن فعال و خلاق
  • کسب درآمد خوب با یادگیری برنامه نویسی :

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

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

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

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

    قدرت پیاده سازی ایده های خود در حوزه فناوری :

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

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

    تبدیل شدن به یک تولید کننده ی فناوری :

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

    تغییر دید مثبت ، افزایش درک بهتر از محیط ، مغز و ذهن فعال و خلاق :

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

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

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

    سخن بزرگان: میشل رسنیک (دانشمند علوم کامپیوتری در دانشگاه آم آی تی آمریکا) عقیده ی جالبی دارد؛ وی اعتقاد دارد که در عصر حاضر (یعنی قرن بیست و یکم) هر کسی که اصول کدنویسی را بلد نباشد بی‌سواد است! به عبارت دیگر، کار با کامپیوترها به صورت یک مهارت خیلی عادی درآمده و بلد بودن کار با کامپیوتر اصلاً کار عجیب و غریبی نیست بلکه ما علاوه بر آن، می بایست نحوه دستور دادن به کامپیوترها (که از طریق یادگیری Coding یا برنامه نویسی امکان‌پذیر است) را نیز بلد باشیم.

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

انتشار : ۲۹ شهریور ۱۳۹۶

یادگیری برنامه نویسی را از کجا شروع کنیم


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

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

تاثیر تایپ در برنامه نویسی :

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

دلایل یادگیری تایپ سریع در برنامه نویسی :

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

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

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

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

اگر هم به دنبال یادگیری تایپ سریع یا ده انگشتی میگردید پیشنهاد میکنم به دو سایت زیر یه سر بزنید واقعا میتوان گفت راحت با این دو سایت تایپ سریع رو یاد میگیرید :
www.wetype.ir
www.typingstudy.com

تاثیر زبان انگلیسی در پیشرفت برنامه نویسی :

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

از جمله این دلایل می توان به این نکته اشاره کرد که یک برنامه نویس برای این که همواره به روز باشد و از آخرین پیشرفت ها در زمینه برنامه نویسیمطلع باشد می بایست با زبان انگلیسی آشنا باشد چرا که تولید علم در دنیا به این زبان صورت می گیرد. از سوی دیگر Documentation یا اسناد زبان های برنامه نویسی کاملاً به زبان انگلیسی نوشته شده است و برای خواندن آن ها ما می بایست با زبان انگلیسی آشنا باشیم. یکی دیگر از مواردی که دانستن زبان انگلیسی در آن به کمک ما می آید مکاتبه با دیگر برنامه نویسان در سرتاسر دنیا است. به طور مثال وب سایت Stack Overflow این امکان را به ما می دهد که سؤالات یا مشکلات خود به همراه کدی که نوشته ایم را به اشتراک بگذاریم و از نظر دیگر برنامه نویسان پیرامون آن آگاه شویم.

اگر بخوایم چند دلیل برای تاثیر یادگیری زبان انگلیسی بر برنامه نویسی ارائه دهیم میتوانیم به دلایل زیر اشاره کنیم :

  • فهم راحتر کدهای برنامه نویسی
  • نوشتن راحتر کدها
  • منابع بیشتر برای آموزش
  • تبال اطلاعات با برنامه نویس های خارجی
  • حل راحتر مشکلات با رجوع به سایت های خارجی
  • و . . .
    خودم شخصا از تعداد زیادی از اساتید زبان در این باره سوال کردم که کسی که زبان نمیدونه باید چه کنه پایه اش قوی تر بشه و وضعت بهتری داشته باشه پیشنهاد میکنند لغات پر کاربرد مورد توجه قرار گیرد. من هم با تحقیقی که کردم بین این همه لغات زبان انگلیسی (بیش از یک میلیون) بین ۲ تا ۴ هزار لغت پر کاربرد وجود دارد که دانشجو برنامه نویسی بهتره از این لغات شروع کند. در بخش پایین دو هزار لغت پرکاربرد زبان انگلیسی رو آماده کردیم که میتوانید دانلود کنید.

دانلود ۲۰۰۰ هزار لغت پر کاربرد زبان انگلیسی

حالا اینا که ارائه دادیم ۲۰۰۰ کلمه و لغت پر کاربرد انگلیسی بود ، برای کامپیوتر و آی تی لغات تخصصی وجود دارد که باید یاد بگیرید و بیشتر تمرینتون رو این لغات باشد. این کتاب که آماده کردیم شامل لغات تخصصی کامپیوتر به همراه تلفظ می باشد. که میتوانید از بخش زیر دانلود کنید. پیشنهاد میشه رو این کتاب بیشتر وقت بذارید.

دانلود کتاب لغات تخصصی کامپیوتر و آی تی

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

– آشنایی نسبی با اینترنت: تأثیرات مثبت اینترنت در زندگی روزمره ی ما بر کسی پوشیده نیست و جالب است بدانیم که برای یک برنامه نویس، اینترنت و برخی سایت‌های اینترنتی -همچون گوگل و استک اور فلو- به منزله ی بهترین دوست می باشند. فردی که قصد ورود به دنیای برنامه نویسان را دارد می بایست بتواند وارد اینترنت شده و یک چیز خاص را در اینترنت سرچ کرده و نتیجه را به دست آورد، در برخی سایت ها ثبت نام کند، استفاده از ایمیل را بلد باشد و …

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

دلایل پیشنهاد زبان برنامه نویسی سی شارپ :

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

پیشنهاد میکنم برای یادگیری و آموزش برنامه نویسی سی شارپ مقاله چگونه متخصص سی شارپ شویم ؟ را مطالعه کنید. البته زبان های دیگر هم هست ولی برای ابتدای کار به نظرم سی شارپ گزینه مناسب هست. البته زبان های برنامه نویسی تحت وب داریم که اگر علاقه دارید سریع برید سراغ وب میتونید مقاله چگونه متخصص ASP.Net MVC شویم ؟ را مطالعه کنید.

انتشار : ۲۹ شهریور ۱۳۹۶

بروکر پاکت آپشن

بروکر پاکت آپشن

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

دریافت فایل : بروکر پاکت آپشن

تمام حقوق مادی و معنوی این وب سایت متعلق به "" می باشد

فید خبر خوان    نقشه سایت    تماس با ما