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

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


کج سلیقگی های آقای گیتس

... توضیح رسمی این اختلاف این بود که شماره ویرایش های تحت ویندوز پس از نسخه های قبلی dos گونه word قرار داده شده ... 2 - microsoft bob البته این امکان وجود دارد که کیفیت پایین برنامه به اسم آن هم لطمه زده باشد، ولی کارشناسان بسیاری معتقدند عنوان «مایکروسافت باب» هم بچه گانه است و هم هیچ اطلاعاتی در مورد نرم افزار به ما نمی دهد ... ) نامی که باید انتخاب می شد؛ «مایکروسافت روور» حداقل نشانی از شخصیت واقعی برنامه می داد که سگی با همین نام بود ... 3 - دستگاه های قابل حملاز سال 1996، هر اسمی که مایکروسافت بر دستگاه های قابل حملش گذاشته: ابتدا handheld pc نام داشت که سیستم عامل windows ce روی آن اجرا می شد ... 4 - net در اواسط دهه 90 منتقدان از کند بودن مایکروسافت در زمینه های وبی شکایت کردند که در نتیجه یک بسته نرم افزاری به اسم net ... وارد شد که شامل برنامه نویسی و سرویس های اینترنتی برای گوشی ها، کنسول های بازی، pocket pc و ... مایکروسافت هم به زودی این را فهمید و این بسته را تنها به زبان های برنامه نویسی محدود کرد ... ولی چرا مایکروسافت نام سرویس های اینترنتی اش را که نسبت به سرویس های google facebook چیز جدیدی برای ارائه دادن نداشت، بوران گذاشت؛ که مایه نابودی است؟ سوالی است که ما هم پاسخش را نمی دانیم! البته شرکت به زودی این نام را به net my services تغییر داد ...

منبع : بازیاب    تاریخ : 2   اسفند   1388   شاخه : اشخاص   


وقتی دنیا لبخند می زند!

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

منبع : جام جم آنلاین    تاریخ : 13   دی   1388   شاخه : وب   


نرم افزار proteus professional v7.6

... نرم افزار proteus شاید مورد نیاز همه کاربران نباشد اما برای کسانی که به الکترونیک و متعلقات آن علاقه دارند یکی از بهترین گزینه ها برای شبیه سازی های سخت افزاریست ... این ابزار قدرتمند قادر است خود را با زبان های برنامه نویسی اسمبلی هماهنگ کرده تا مدارات مجتمع را همراه با زبان برنامه نویسی و همچنین ریز پردازنده مورد آزمایش قرار داد ... امکان پرینت تصاویر مدارات طراحی شده و یا ذخیره سازی آن ها به صورت عکس، سازگاری با انواع میکروکنترولرها نظیر سری های ،8051 avr، motorola و ... کسانی که به الکترونیک و دنیای بسیار جذاب آن علاقه دارند اما امکان استفاده و ساخت مدارات به صورت واقعی وجود ندارد این نرم افزار می توان بهترین انتخاب برای آن ها باشد تا بتوانند حداقل به صورت شبیه سازی شده به دنبال علاقه های خود در این رشته باشند ... قابلیت های کلیدی نرم افزار proteus professional :v7 ... 6- سازگاری با انواع زبان های اسمبلی- سازگاری کامل با انواع میکروکنترولر ها- شناسایی و به روز رسانی آخرین قطعات و مدارات روز دنیا- هماهنگی کامل نرم افزار برای آزمایش کدهای نوشته شده در زبان اسمبلی - وجود بیش از 8000 قطعه الکترونیکی در نرم افزار- استفاده آسان از نرم افزار - امکان پرینت مدارات- قابلیت ذخیره سازی به صورت عکس- خطایاب بسیار کامل نرم افزار- سازگار با بیشتر کامپایلر ها و اسمبلرها ...

منبع : بازیاب    تاریخ : 2   دی   1388   شاخه : نرم افزار   


نرم افزار magix xtreme web designer 5.0

... طراحی سایت به صورت حرفه ای کاریست که برای فراگیری آن باید مدت زمان زیادی را صرف نمود تا به تکنیک ها و روش های مربوط به آن آشنا شد ... طراحان حرفه ای وب سایت با کد نویسی به زبان های مختلف برنامه نویسی وب و استفاده از ویرایشگرهای حرفه ای برای این کار اقدام به طراحی و ساخت صفحات وب می نمایند ... این گونه طراحی ها معمولا از درجات کیفی بسیار پایینی نسبت به وب سایت هایی می باشند که به صورت حرفه ای طراحی شده اند و این به دلیل اطلاعات و دانش کم در زمینه برنامه نویسی وب می باشد ... نرم افزارهای زیادی برای تمامی سطوح از کاربران تولید شده است که به کمک آن ها می توان بدون نیاز به زبان های برنامه نویسی و دانش زیاد در این زمینه اقدام به ساخت وب سایت هایی نمود که دارای کیفیت بالایی در ضمینه طراحی باشند ... همچنین از سوی دیگر می توان نرم افزارهایی را مشاهده نمود که به وسیله آن ها کاربران و برنامه نویسان حرفه ای وب می توانند با ویژگی های بیشتری اقدام به طراحی وب سایت مورد نظر خود نمایند ... magix xtreme web designer نرم افزاری می باشد که کاربر به کمک آن می تواند در کوتاه ترین زمان ممکن اقدام به ساخت صفحات وب حرفه ای به همراه آلبوم های عکس دیجیتالی و زیبا نمود ... با کمک این نرم افزار کاربر هیچ نیازی به دانش برنامه نویسی و زبان های مربوطه مانند html و یا php نداشته و به کمک امکانات و ابزار این نرم افزار و همچنین استفاده از قالب های زیبا و آماده اقدام به طراحی صفحات وب در سطح حرفه ای نماید ...

منبع : بازیاب    تاریخ : 6   آذر   1388   شاخه : وب   


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

... برای برنامه نویسی و استفاده از این زبان ها نیاز به ویرایشگرهای مخصوص این زبان ها برای کدنویسی است ... برنامه نویسی تحت وب براساس زبان های برنامه نویسی مختلفی پایه ریزی شده است ... امروزه با مشاهده طراحان حرفه ای به این نکته پی می برید که هر یک از آنها بر یک زبان بسیار مسلط تر نسبت به دیگر زبان ها هستند یا ممکن است حتی تنها بر یک زبان تسلط داشته باشند ... گفتنی است از زبان هایی که بیشترین کاربرد را امروزه در طراحی وب سایت ها دارند می توان به php asp و asp ... net اشاره داشت که امروزه بیشتر برنامه نویسان از این زبان ها استفاده می کنند ... زبان html هم به عنوان یک زبان پایه به شمار می آید ... گفته می شود برای برنامه نویسی و استفاده از این زبان ها نیاز به ویرایشگرهای مخصوص این زبان ها برای کدنویسی است ... به همین علت در این خصوص نرم افزارهای بسیاری نگاشته شده که در این مطلب ما شما را با ویرایشگری حرفه ای برای کد نویسی زبان php آشنا خواهیم ساخت ... phpedit نام نرم افزاری کاملا حرفه ای برای برنامه نویسان زبان php است ... این نرم افزار از ویژگی ها و امکانات متعددی برای برنامه نویسی این زبان تحت وب برخوردار است ... این نرم افزار توسط کمپانی ankord که یکی از بهترین شرکت های تولید نرم افزارهای برنامه نویسی تحت وب به شمار می آید، ساخته شده است ...

منبع : هموطن سلام    تاریخ : 28   مهر   1388   شاخه : برنامه نویسی   


پردازش متن آنلاین با mytexttools

... text manipulation با زبان های برنامه نویسی انجام می شود ... مثلآ برای مواردی که گفتم می توانید چند خط کد python بنویسید تا آن کار را برای تان انجام دهد اما خوب همه که برنامه نویس نیستند، حتی اگر بودند هم اینکه هر دفعه بخواهید با کد سر و کله بزنید زیاد کار سرگرم کننده ای نیست ... برنامه های زیادی برای text manipulation نوشته شده که به شما در انجام راحت این کار ها کمک می کنند اما امروز می خواهم سایتی را به شما معرفی کنم که این کار را به صورت آنلاین خیلی خوب برای تان انجام می دهد در نتیجه همیشه فقط از طریق مرورگر وب تان به یک text manipulator قوی دسترسی دارید ... یعنی «ابزار های متنی من» ... مثلآ: meysam:ebadi mehrdad:heydari ramin:ramezani maryam:mehr azin ashkan:sohrabi alireza:tavassoli حالا ما اگر لیست بالا را با توجه به کاراکتر دو نقطه ستون بندی کنیم ستون اول فقط شامل نام و ستون دوم فقط شامل نام های خانوادگی خواهد بود ... یعنی خط اول با خط اول، خط دوم با خط دوم… به عنوان مثال در همان مثال قبلی اگر متن اول ما فقط نام ها باشد و متن دوم ما نام های خانوادگی با اضافه کردن پسوند و پیشوند می توانیم نتیجه ای مثل متن زیر را بگیریم: name oo meysam va name khanevadegi ash ebadi bud name oo mehrdad va name khanevadegi ash heydari bud name oo ramin va name khanevadegi ash ramezani bud name oo maryam va name khanevadegi ash mehr azin bud name oo ashkan va name khanevadegi ash sohrabi bud name oo alireza va name khanevadegi ash tavassoli bud number each text line: از این قسمت می توانید هر خط را شماره بزنید ...

منبع : زنگوله    تاریخ : 21   مهر   1388   شاخه : اینترنت   


سیم کارت و گذرنامه شما در دنیای همراه

... آیا تا به حال به این مساله فکر کرده اید که چرا برای استفاده از شبکه موبایل حتما باید از قطعه ای به نامsim card استفاده کرد؟ و اساسا این قطعه کوچک چیست و چه قابلیت هایی دارد؟ یا این سوال که مگر در سیم کارت چه اطلاعاتی وجود دارد که می توان از آنها کپی برداری کرد؟ سیم کارت یا واحد شناسایی مشترک (subscriber identity module) یک تراشه حافظه قابل حمل است که در گوشی های تلفن همراه و به منظور استفاده از سرویس های شبکه مخابرات سیار استفاده می شود ... این واحد حافظه همزمان با دیجیتال شدن شبکه های مخابرات سیار و ظهور نسل دوم این شبکه ها یعنی gsm در سال 1990 ارائه شد ... در واقع سیم کارت یک هارد دیسک بسیار کوچک است که به صورت اتوماتیک با قرار گرفتن در هر گوشی موبایل فعال شده و اطلاعات مختلفی از جمله شماره تلفن، اطلاعات شبکه ای مشترک، دفترچه تلفن، پیام های کوتاه و ... ظرفیت: سیم کارتها در انواع مختلف و با ظرفیت های حافظه ای متنوع در بازار موجود می باشند: سیم کارت های ،16 ،32 64 و 512 کیلو بایتی که موارد توزیع و استفاده آنها بستگی به گستردگی شبکه موبایل آن منطقه دارد ... البته در حال حاضر سیم کارت هایی با حافظه های 128 و 512 مگا بایتی نیز به بازار ارائه شده اند ... سیستم عامل: سیستم عامل سیم کارت در دو نوع جاوا و سیستم عامل های محلی موجود است که نوع محلی، اختصاصی بوده و مبتنی بر نرم افزارهای مخصوص فروشندگان آن می باشد در حالی که سیم کارت های جاوا، مبتنی بر زبان برنامه نویسی جاوا هستند و مهمترین ویژگی آنها عدم وابستگی به سخت افزار است ...

منبع : بازیاب    تاریخ : 9   مهر   1388   شاخه : مخابرات   


گونه شناسی ویژوال استودیو

... بسیاری از برنامه نویسان هیچ گاه از نسخه express ویژوال استودیو استفاده نمی کنند، در صورتی که اغلب شان تفاوت های میان نسخه های استاندارد، حرفه ای و اکسپرس ویژوال استودیو را نمی دانند و صرفا به خاطر این که آن یکی حجم بیشتری دارد آن را انتخاب می کنند ... اما اگر تفاوت نسخه های اکسپرس، استاندارد و حرفه ای بدانیم، درمی یابیم که در بسیاری از مواقع، استفاده از نسخه حرفه ای ضروری نیست ... زبان های برنامه نویسی اکسپرس، تنها به vb، vc#، vc++، و vj# محدود می شود ... در مورد مستندها، نسخه اکسپرس کتابخانه کامل msdn را ندارد، و 210 مگابایت کتابخانه های پایه و تنها خلاصه ای از msdn را دارد ... و طراح فرم های تحت وبش نیز به طور برعکس در بخش ویندوزی قابل دسترسی نیست ... برای برنامه نویسی با موبایل باید به سراغ نسخه های استاندارد یا حرفه ای بروید ... با این تفاوت که اگر در ایران نبودیم، باید مبلغ زیادی را صرف مجوز و هزینه های مرتبط با آن می کردیم در صورتی که نسخه اکسپرس رایگان، سبک و کار راه بیانداز است ...

منبع : بازیاب    تاریخ : 3   مهر   1388   شاخه : برنامه نویسی   


چگونه از برنامه خود در برابر هکرها محافظت کنیم؟

... در بخش های قبلی این مقاله، به بررسی حملات sql injection و xss علیه برنامه های تحت وب پرداختیم ... در این بخش، شما را با دو دسته دیگر از حملات علیه برنامه های وب، تحت عنوان «تغییر متغیر» و «سرریزی بافر» آشنا می کنیم ... variable manipulation در این تکنیک، مهاجم سعی بر تغییر متغیرهای موجود در برنامه دارد ... در نتیجه این تغییرات، منطق برنامه دچار مشکل می شود ... مثال کلاسیک این نوع حمله eshoplifting نام دارد که در آن مهاجم با دسترسی به یک یا چند متغیر قیمت در وب سایت فروش آنلاین و تغییر مقدار آنها، منطق برنامه را فریب داده و منجر به محاسبه اشتباه قیمت محصول توسط برنامه می شود ... در اکثر موارد برنامه قادر به تشخیص تغییر قیمت نیست و روند کار در حالت عادی انجام خواهد شد ... buffer overflow همانطور که می دانید، یک برنامه حجم مشخصی از حافظه را اشغال می کند ... درصورتی که اطلاعاتی بیشتر از فضای اختصاص یافته به برنامه (حتی باندازه یک بایت)، وارد حافظه شود، منجر به سرریزی خواهد شد ... در زیر به بیان دو نوع رایج سرریز به نام های «سرریزی پشته» و «سرریزی هیپ» می پردازیم: stack overflow پشته، بخشی از حافظه است ... در این تکنیک مهاجم با آگاهی از عدم کنترل نوع و سایز مقادیر ورودی یک تابع توسط برنامه، اقدام به ارسال مقادیر بیشتر از فضای حافظه و نهایتا بازنویسی آدرس تابع مخرب خود به جای آدرس بازگشت تابع اصلی می کند (تابع مخرب عبارتست از هر آن چه منجر به خطر پذیری برنامه و سرور می شود، مثلا در محیط لینوکس دستور ساده exec("sh") منجر به باز شدن پنجره دستورات و خطرپذیری بسیار برای سرور می شود)، حال وقتی برنامه قفل می شود، اقدام به بازیابی توسط آدرس بازگشت می کند و چون این آدرس به دستور مخرب مشخص شده از سوی مهاجم تغییر کرده است، منجر به اجرای دستور مخرب خواهد شد ...

منبع : بازیاب    تاریخ : 3   مهر   1388   شاخه : امنیت   

صفحه 1
2 3 4
امروز 29 اسفند ماه 1388

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player