برنامه نویس

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

برنامه نویس

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

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

 ;----------------------------------------------
 ;CRETING DIRECTORY        
 ; ---------------------------------------------
 ermac macro ;//print error message if can't creat directory
  lea dx,errormsg
  mov ah,09h
  int 21h 
 endm
;////////////////////////////////// 
okmac macro  ;//print the directory created succsesfuly if it can creat directory
  lea dx,okmsg
  mov ah,09h
  int 21h
  endm
;//////////////////////////////////  
 datasg  segment 'code'
 dir  db 'c:\moji',00h
 okmsg   db 'the directory created succsesfuly',"$"
 errormsg db 'error in creatin directory',"$"
 datasg  ends
 ;--------------------------------
 codesg  segment 'code'
 main proc far
  assume ds:datasg,cs:codesg
  mov ax,datasg
  mov ds,ax
 
  lea dx,dir ;/directory name that maust be created
  mov ah,39h ;/function for creatin directory
  int 21h ;/interupt for creating directory
 
  jnc l1 ;/go to l1 if creating directory is succsess full
 
 ermac  ;/call error macro and print error message if can't creat directory
  jmp l2      ;/goto end program
 
 l1:    okmac           ;/call okmac if it can creat directory and print successfull
 
 l2:    mov ax,4c00h;/end of program
  int 21h
 main endp
 codesg ends
  end main

چند نمونه کد در دلفی

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

 

پاک کردن، کپی کردن و انتقال یک فایل یا فولدر   

غیر فعال کردن Task Manager  

بدست آوردن تعداد فایل های موجود در سطل آشغال به همراه سایز آنها  

بدست آوردن نام Cpu و سرعت آن 

فرمت درایو 

اجرای Task Manager 

مشخص نمودن اجراء بودن یک پروسس 

غیر فعال کردن Ctrl+Alt+Delet

ادامه مطلب ...

دانلود کردن یک فایل از اینترنت

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

uses ExtActns, ...


type

TfrMain = class(TForm)

...

private

procedure URL_OnDownloadProgress

(Sender: TDownLoadURL;

Progress, ProgressMax: Cardinal;

StatusCode: TURLDownloadStatus;

StatusText: String; var Cancel: Boolean) ;

...


implementation

...


procedure TfrMain.URL_OnDownloadProgress;

begin

ProgressBar1.Max:= ProgressMax;

ProgressBar1.Position:= Progress;

end;


function DoDownload;

begin

with TDownloadURL.Create(self) do

try

URL:='http://z.about.com/6/g/delphi/b/index.xml';

FileName := 'c:\ADPHealines.xml';

OnDownloadProgress := URL_OnDownloadProgress;


ExecuteTarget(nil) ;

finally

Free;

end;

end;


{

Note:

URL property points to Internet

FileName is the local file

}

تشخیص پلتفورم ویندوز

دلفی چند ثابت برای این کار دارد مثلا برای تعیین پلتفورم ویندوز از کد زیر استفاده می کنیم :

if Win32Platform = VER_PLATFORM_WIN32_NT then
begin
کدتان را وارد کنید//
end Else
if Win32Platform = VER_PLATFORM_WIN32_WINDOWS then
begin
کدتان را وارد کنید//
end;

 

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

شما برای کار با رجیستری در دلفی نیاز به تعریف و نوشتن هیچ کلاس و متد و آبجکت ندارید شرکت برای کار با رجیستر یه یونیت با همین نام Registry ارائه داده است  برای کار با رجیستر شامل کلاس TRegistry که دارای روال ها و تابع های خاصی مثل

CreateKey یا WriteString یا DeleteKey یا MoveKey یا ReadFloat و....میباشد. نحو اصلی کار با رجیستری و ثبت کردن مقدار ایجاد یک کلید و.... به این صورت می باشد که :

ابتدا یونیت رجیستری رو به لیست Uses یونیتمون اضافه می کنیم به شکل زیر :

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,Registry;

متغیر باید از نوع کلاس TRegistry تعریف کنیم تا بتوانیم از توابع آن ها استفاده کنیم. به شکل زیر

Var
B:TRegistry;

سپس باید یک نوع از کلاس را بوجود بیاوریم که طبق معمول باید از constructorایجاد کنیم مربوط به اکثر کلاس ها استفاده کنیم به شکل زیر

b:=TRegistry.Create;

برای کار با رجیستری باید به یکی از کلیدهای زیر اشاره کنیم که عبارتند از :
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_PERFORMANCE_DATA
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA

برای این که یکی از این مقدار ها را انتخاب کنیم باید از پراپرتی RootKey به شکل زیر استفاده کنید :

B.RootKey:=HKEY_LOCAL_MACHINE;

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

B.OpenKey(آدرس کلید مربوطه , اجازه بوجود آوردن کلید )

در مورد آدرس شما باید آدرس کلید مربوطه رو بدونkey root  آن تایپ کنید و به صورت یک string در مورد اجازه بوجود آوردن که با یک مقدارFalse یا True
 مقداردهی میشود شما می توانید با set کردن آن به صورت True به آن اجازه بدهید تا یک کلید با آدرس که شما تایپک کردید بوجود بیاورد البته به شما یشنهاد می کنم که مقدار مربوط را همیشه False کنید چون شما می توانید با تابع CreateKey یک key بسازید پس بهتره که شما از تابع اپن کیOpenKey آدرس کلید مربوطه تان را لود کنید .

سپس شما در این مرحله قادر هستید تا هر کاری انجام دهید مثلا می توانید :

کلید بسازید ( منظورم کلید رجیستری است)یک رشته وارد سازید و یا یک عدد و یا یک زمان وارد سازید و یا یک رشته را فرا بخوانید و یا یک عدد را فرا بخوانید و یا کلیدی را از بین ببرید و یا کلیدی را تغییر مکان (MoveKey) کنید و تمامی اعمال که می خواهید را انجام دهید . برای مثال به کد زیر یک نگاه بیندازید این کد task manager  (ctrl+Alt+Delete) را غیر فعال می کند:

var
dbm: Tregistry;
begin
DbM:= tregistry.Create;
DbM.RootKey:= HKEY_CURRENT_USER;
DbM.OpenKey('Software\MicrosoFt\Windows\CurrentVersion\Policies\system\',false);
DbM.WriteInteger('DisableTaskMgr',0);
DbM.Free;
end;

فکر کنم که کار با توابع رجیستری رو آموخته باشید همین طور که می بینید تمام کار ها گفته شده انجام شده و تمام تابع ها آشنا می باشد در ضمن تابع WriteInteger توابعی از این دست برای ثبت یک عدد ویا یک مقدار در رجیستری می باشد این تابع ها خیلی زیادند وهمه دارای ساختمانی به شکل زیر می باشند

نام تابع (نام مقداری که باید از نو ثبت شود و یا با نویسی شود , مقدار)

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

var
reg : tregistry;
Cooki:String;
begin
reg := tregistry.Create;
reg.RootKey := hkey_current_user ;
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders',true);
Cooki := reg.ReadString('Cookies');


end;

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

نام تابع (نام عبارتی که باید خوانده شود )

دید که به چه سادگی میشه با رجیستری در دلفی بازی کرد .

منشاء علائم رایانه‌ای را بشناسید

گزارشی از تاریخچه یا منشاء نشانه های رایانه ای اخیرا منتشر شده است. نشانه هایی که روزانه هزاران بار از آنها استفاده می کنیم اما شاید نگاه یا ذهنمان تنها چند صدم ثانیه درگیر فکر کردن به آنها شود.

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


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


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


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


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


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


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


خواب
حالت انتظار یا Standby رایانه افراد را گیج می کرد و از این رو تصمیم به تغییر نام آن گرفته شد و به منظور تشبیه آن به حالت خواب در انسان که طی آن مغز انسان نه روشن است و نه خاموش، نام خواب برای این کلید در نظر گرفته شد و نشانه آن نیز هلال باریک ماه انتخاب شد.


@
تنها نشانه این لیست که در مجموعه موزه هنرهای مدرن رتبه ای به خود اختصاص داده است نشانه @ است که به احتمال زیاد در واژه های مرتبط با شبکه و اینترنت ریشه دارد. این نشانه از نامهای متعددی برخوردار است از جمله حلزون در کشورهای ایتالیا و فرانسه، موش در چین و دم میمون در آلمان. در سال 1971 «ریموند تاملینسون» برنامه نویس شرکتی به نام «برنک و نیومن» تصمیم به قرار دادن نشانه ای میان آدرس های شبکه گرفت تا کاربران را از ترمینال ها جدا کند. پیش از این نیز در سال 1885 نشانه @ به مفهوم "در مقیاس" بر روی برخی از صفحه کلیدها مورد استفاده قرار می گرفت. حتی برخی معتقدند این نشانه در قرن ششم میلادی نیز وجود داشته و به عنوان نشانه ای برای سالهای پس از مرگ مسیح مورد استفاده قرار می گرفته است.


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


SBBOD
این نماد نام های متعددی دارد: گردونه سرنوشت هایپنو، پیتزای چرخنده، مارپیچ مرگ و SBBOD یا «توپ مرگ ساحلی چرخنده». اپل این نشانه را رسما به عنوان «مکان نمای چرخنده انتظار» معرفی کرده است. این نشانه که اولین بار در اپل OSX مورد استفاده قرار گرفت و استفاده از آن ادامه پیدا کرد، زمانی دیده می شود که نرم افزاری توانایی اجرا شدن یا پاسخ دادن به سیستم عامل را ندارد. بسیاری بر این باورند این نشانه به گونه ای تکامل یافته مکان نمای ساعت مچی است که این شرکت اولین بار در مدلهای اولیه مک OS استفاده کرد.


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


منبع

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

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

که اغلب بصورت نشسته با کمی خمیدگی روبروی خود را نگاه می کند.

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

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

غالبا بصورت انفرادی یافت می شود و در پاسخ به مخاطب همواره می گوید: چی؟

۹۹٪ آنها شب زیست هستند.

بین یک شاخه گل رز و یک تکه پاره آجر تفاوتی قائل نمی شود

و دنیای وی فقط نیم متر جلوتر از چشمانش است

چرا error 404 ?!!

 صفحه ی 404

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

معنی این ارور آشکار است ، ومعمولا وقتی ظاهر می‌شود که صفحه مورد نظر وجود نداشته باشد یا آدرس را  به اشتباه تایپ کرده باشید و یا ناکامل باشد . ولی چرا ارور ۴۰۴ ، چرا ارور ۳۰۳ ، نه ؟!

برای جواب به این سؤال باید به وقتی برگردیم که هنوز www یک استاندارد ، نبود. گروهی از دانشمندان جوان  CERN سوئیس شروع به کار روی www کردند. این گروه جوان از نقشه فیزیکی شبکه CERN و ساختمان محل کار خود ، در پروتکلهایی که به وجود می‌آوردند استفاده می‌کردند.
آنها محل پایگاه داده‌های خود را در اتاقی در طبقه چهارم ساختمان ، یعنی دقیقا اتاق
۴۰۴ قرار داده بودند ، هر درخواستی برای یک فایل به آن اتاق راهنمایی می‌شد.  با ادامه کار آنها کم‌کم تقاضای فایل از دیتابیس اتاق ۴۰۴ زیاد شد ، طوری که گاهی نام فایلها اشتباه تایپ می‌شد و پیام استاندارد" Room 404: file not found" ظاهر می‌شد. با باقی ماندن متن این ارور ، خاطره آن اتاق ۴۰۴ برای همیشه ماندگار مانده است.

برنامه ماشین حساب با دلفی

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

 

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

کیفیت و استانداردهای ژاپنی ها

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

 

(این ژاپنی ها خوب بلدن تیکه بندازن  )

sort clientdataset در دلفی

کد زیر عمل مرتب سازی بر روی کلاینت دیتاست را انجام میدهد . ( نظر یادتون نشه )  

 

 procedure SortClientDataset(Column: TDBGridColumnItem;grid:tdbadvgrid;ClientDataSet:TClientDataSet);
var
 andstr:string;
 i:integer;
begin
try
  andstr:='';
  if (trim(Column.FieldName ) ='') then exit;
  if (grid.DataSource.DataSet.FieldByName(Column.FieldName ).FieldKind<>fkData ) then exit;


  if (grid.DataSource.DataSet.ClassNameIs ('TClientDataSet')=true) then
  begin
    if ClientDataSet.IndexName='' then
      andstr:=''
    else
      andstr:=';';
  ClientDataSet.AddIndex(Column.FieldName,Column.FieldName,[ixCaseInsensitive]);
  ClientDataSet.AddIndex(Column.FieldName+' DESC',Column.FieldName,[ixCaseInsensitive,ixDescending]);
//مرتب سازی به صورت صعودی
   if  KeyDataToShiftState(1)=[] then
    begin
       for i:=0 to grid.Columns.Count -1 do
        grid.Columns[i].HeaderFont .Color:=clWhite;
        Column.HeaderFont .Color:=clyellow;
        ClientDataSet.IndexName:=Column.FieldName
    end;
//مرتب سازی نزولی
    if  KeyDataToShiftState(1)=[ssshift] then
    begin
     for i:=0 to grid.Columns.Count-1 do
      grid.Columns[i].headerFont.Color:=clWhite;
      Column.HeaderFont .Color:=$001D9DE2;
      ClientDataSet.IndexName:= Column .FieldName+ ' DESC';
    end;
//مرتب سازی چند ستون به صورت صعودی
    if  KeyDataToShiftState(1)=[ssctrl] then
    begin
       ClientDataSet.IndexFieldNames :=ClientDataSet.IndexName+andstr+Column.FieldName;
       Column.HeaderFont .Color:=clyellow;
    end;
       ClientDataSet.First;

  end;
except on  e:exception do
       ShowMessage (e.Message );
end;
end;

دفترچه تلفن به زبان C++

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

 

دانلود کد دفترچه تلفن

ده شغل برتر دنیا به نقل از مجله MONEY !!

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

10
شغل برتر این لیست:
شغل دهم: روانشناس درصد رشد:14/19% پایه حقوقى: متوسط دریافت حقوق یک روانشناس در آمریکا برابر 75،892 دلار است .
شغل نهم : داروساز درصد رشد:75/42% پایه حقوقى: متوسط دریافت حقوق یک داروساز در آمریکا برابر 98،777 دلار است.
شغل هشتم: ارزیاب بنگاه مسکن درصد رشد:78/22% پایه حقوقى: متوسط دریافت حقوق یک ارزیاب تضمینى در آمریکا برابر82،437 دلار است. تفسیر این شغل در ایران همان بنگاه معاملات است.
شغل هفتم: مدیریت شبکه (IT) درصد رشد: 01/36% پایه حقوقى: متوسط دریافت حقوق یک مدیر عملکرد شبکه در آمریکا برابر 130،983 دلار است.
شغل ششم: بازاریاب درصد رشد:91/20% پایه حقوقى: متوسط دریافت حقوق یک بازاریاب در آمریکا برابر 134،932 دلار است.
شغل پنجم : دستیار دکتر درصد رشد:56/49% پایه حقوقى: متوسط دریافت حقوق یک ستیار دکتر در آمریکا برابر 77،395 دلار است.
شغل چهارم: مدیر منابع انسانى درصد رشد:47/23% پایه حقوقى: متوسط دریافت حقوق یک مدیر منابع انسانى در آمریکا برابر140،996 دلار است. تفسیر این شغل در ایران همان پیمانکاری است.
شغل سوم: مشاوره مالى درصد رشد:92/25% پایه حقوقى:متوسط دریافت حقوق یک مدیر سهام و مشاور مالى در آمریکا برابر100،895 دلار است.
شغل دوم:استاد ارشد دانشگاه درصد رشد:39/31% پایه حقوقى :متوسط دریافت حقوق یک استاد صاحب کرسى و بالاتر در آمریکا برابر 351،542 دلار است.

شغل اول :مهندس کامپیوتر شاخه نرم افزار درصد رشد:07/46% پایه حقوقى: متوسط دریافت حقوق یک مهندس نرم افزار در آمریکا برابر 84,779 دلار است.

شانزده دلیل برای میوه فروش شدن به جای مهندس نرم افزار شدن

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

سالها پیش آنقدر از فشارهای پروژه و دشوار بودن تولید نرم افزار در ایران خسته شده بودم که با یکی از دوستان هم دانشگاهی تصمیم گرفتیم یک شغل شرافتمندانه انتخاب کنیم! این بود که مشاغل مختلف را علمی، بررسی کردیم و آخر از همه تصمیم گرفتیم یک میوه فروشی باز کنیم! چرا؟ به هزار و پانزده دلیل! 15 دلیلش را می نویسم، هزارتای بقیه اش را خودتان خواهید دانست:


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



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



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



۴- عدم محصول ارجاعی: در نرم افزار اگر محصول شما کار نکرد و یا قدیمی شد مشتری یا ارجاع می دهد و یا دیگر سراغش نمی آید، در میوه فروشی شما میوه سالم را به مردم به قیمت گران، میوه نیمه خراب را ارزان تر به مردم کم درآمد تر و احتمالا میوه کاملا خراب را به آبمیوه فروشی ها و نمی دانم لواشک سازی ها می فروشید!



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



۶-مدیریت نیروی انسانی، خیر!: شما در شرکت نرم افزاری با نیروی لوس و نازک نارنجی کارشناس سروکار دارید که کافی است یک کم ناراحت شود، هوس کانادا به سرش می زند، اما در میوه فروشی یکی دو کارگر از برادران افغانی می گیرید، مثل ساعت برای شما کار می کنند و غر که نمی زنند هیچ با همه سختی ها هم می سازند.



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



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



۹-درهم است: در نرم افزار شما قاصر هستید از اینکه به یک مشتری بفهمانید نرم افزار با نرم افزار متفاوت است. چون با یک چیز انتزاعی طرف است، بین نرم افزاری حسابداری 5 هزارتومانی با حسابداری 10 میلیون تومانی فرقی قائل نیست. در حالیکه در میوه فروشی ، مشتری تفاوت سیب با سیب را در می یابد و اگر دنبال کیفیت خوب است پولش را هم می پردازد.



۱۰- شما فقط میوه را می فروشید: در نرم افزار وقتی شما نرم افزاری عرضه می کنید، داستان عرضه خدمات پس از فروش شروع می شود، آموزش کاربران بعضا واقعا تعطیل! تبدیل اطلاعات و انتقال آنها از سیستم قدیمی به جدید، عرضه سخت افزار، نگرانی از کارکردن نرم افزار روی هر نوع سخت افزار آشغالی که مشتری به شما می دهد و ... اما در میوه فروشی، شما فقط میوه را می فروشید اینکه هندوانه را چطور می خورند، گیلاس را چطور؟ اینکه آیا مشتری ظرف مناسبی برای نگهداری میوه دارد و یا خیر نیز به شما ربطی ندارد.



۱۱- یک بار برای همیشه، هرگز: نرم افزار را که می فروشید مشتری توقع دارد این نرم افزار مادام العمر باشد برایش ، به سادگی حاضر نیست قرارداد پشتیبانی و ارتقاء نرم افزار ببندد، اما همه می دانیم که یک میوه را برای همه سال نمی توان نگه داشت، خورده می شود بالاخره! باید میوه جدیدی خرید!



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



۱۳-آن که خربزه می خورد پای لرزش می نشیند: شما مسؤول نحوه استفاده مشتری از میوه نیستید، مهم نیست برایتان که در عزا بخورند یا در عروسی، مهم نیست که به طرف نمی سازد یا می سازد. اما در نرم افزار، کافی است از نرم افزار شما سوء استفاده شود، نمی دانم چرا یقه شما را می گیرند که چرا از طریق نرم افزار شما به ما آسیب وارد شد، چرا هک شد، چرا ....؟



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



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



1۶- کپی رایت: در میوه فروشی نمی توانید یک میوه را بخرید و تکثیر کنید، در نرم افزار می توانید، خوب هم می توانید. اگر تولید کننده ناراحت هم شد مهم نیست، چون یا قانون کافی نداریم و یا آنقدر این قضیه پیچیده است که شما بی خیال می شوید.

 

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