PDA

View Full Version : مبتدی: کمک در مورد برنامه نویسی php



D4rk0n3
چهارشنبه 22 خرداد 1392, 11:59 صبح
عرض سلام و خسته نباشید

من به عنوان مبتدی برای برنامه نویسی پی اچ پی از کجا میتونم شروع کنم؟

کتاب های زیادی خوندم اما محتواشون برام نا مفهوم بود

از اصطلاحاتی استفاده شده بود توش اصلا نمیفهمیدم چی هستند؟

میشه یک کمکی بکنید ؟

ممنون

masato
چهارشنبه 22 خرداد 1392, 12:18 عصر
بهترین منبع آموزش پی اچ پیhttp://barnamenevis.org/showthread.php?269194-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%B1%D8%AD%D9%84%D9%87-%D8%A8%D9%87-%D9%85%D8%B1%D8%AD%D9%84%D9%87-PHP-%D8%A7%D8%B2-%D9%BE%D8%A7%D9%8A%D9%87-%D8%A8%D8%A7-%D9%85%D8%AB%D8%A7%D9%84
موفق باشید

D4rk0n3
چهارشنبه 22 خرداد 1392, 12:24 عصر
دادا من از همین قسمت استفاده کردم اما مشکل داشتم باهاش

مثلا گفتم که اصطلاحاتش خیلی برام عجیب غریبه

مثلا میگه متغیر . خوب میدونم متغیر چیه ولی توضیحی براش ندارم

و کلی اصطلاح دیگه

اصلا من هیچی حالیم نمیشه

در این حد

ممنون از پاسختون

Jarvis
چهارشنبه 22 خرداد 1392, 12:49 عصر
این سوال چندین بار در همین تالار پرسیده شده و جواب هم داده شده ... لطف کنید یکم جستجو کنید!

موفق باشید

milad_d993
چهارشنبه 22 خرداد 1392, 13:01 عصر
فیلم های مهرداد کیانیان خوبن
هر قسمتش تقریبا 5 دقیقه هست
"دانلود فیلم های php مهرداد کیانیان" رو گوگل کن...

Unique
چهارشنبه 22 خرداد 1392, 15:10 عصر
به نظر من php برای شما زوده و باید مبانی برنامه نویسی بخونین و از زبان های پایه مثل c و pascal که کتاب های مبتدیانه خیلی خوبی براشون هستند شروع کنید و بعدش بیاین طرف زبون های اسکریپتی ! این را هم بدونین که syntax (طریقه نوشتار) زبان php خیلی نزدیک به c هست و پیشنهاد میکنم برین اول مبانی بخونین و بعدشم c و وقتی که به syntax و کدنویسی متداول آشنا شدین بیاین سمت کتاب های php و چه بهتر که از منابع لاتین و خود سایت php.net و comment های خیلی خوبش هم استافده کنید.

ravand
چهارشنبه 22 خرداد 1392, 22:01 عصر
به نظر من php برای شما زوده و باید مبانی برنامه نویسی بخونین و از زبان های پایه مثل c و pascal که کتاب های مبتدیانه خیلی خوبی براشون هستند شروع کنید و بعدش بیاین طرف زبون های اسکریپتی ! این را هم بدونین که syntax (طریقه نوشتار) زبان php خیلی نزدیک به c هست و پیشنهاد میکنم برین اول مبانی بخونین و بعدشم c و وقتی که به syntax و کدنویسی متداول آشنا شدین بیاین سمت کتاب های php و چه بهتر که از منابع لاتین و خود سایت php.net و comment های خیلی خوبش هم استافده کنید.

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


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

eshpilen
چهارشنبه 22 خرداد 1392, 23:06 عصر
من تا حدودی با فیلم آموزش برنامه نویسی مخالفم . چون فیلم آموزش مال آدم های تنبله . آدم تنبلم بدرد برنامه نویسی نمیخوره . چون یه برنامه نویس باید پر حوصله باشه نه اینکه منتظر باشه حتما یک کلاس آموزشی براش برگذار بشه. طرف میتونه بره توی سایت w3schools.com بهترین آموزش های برنامه نویسی رو داره . دیگه نیازی به دانلود این همه فیلم رو نداره.
موافقم!

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

shahriyar3
چهارشنبه 22 خرداد 1392, 23:14 عصر
از قدیم گفتن کار نیکو کردن از پر کردن است
بشین از شب تا صبح اینقدر بنویس پاک کن و اینقدر این کار و تکرار کن تا پیشرفت کنی , کتاب و cd و فیلم و آموزش و سایت آموزشی و اینا همش در کنار زحمتی که میشی و تمرینی که میکنی

پ.ن : من واسه این میگم از شب تا صبح چونکه یه کتاب از Andi Gutmans دارم توش میگه وقتی برنامه نویس ها از شب تا صبح مشغول کار کردن بر روی ..... هستند!!

Unique
پنج شنبه 23 خرداد 1392, 03:09 صبح
چقدر سخت میگیری مهندس؟
من خودم به شدت با کار های تئوری و شیوه تدریس در دانشگاه مخالفم ! ولی معمولا کتاب های php روی مباحثی مثل شیوه نوشتار کد کار نمیکنند و معمولا توی مقدمه توضیح میدهند که باید یک پیش زمینه ای برای شخص وجود داشته باشه ! ایشون هم گفتند واقعا از چیزی سر در نیاوردند ! ببینید اگه کسی یک الگوریتم ساده با استفاده از if و for و ... را نتونه پیاده کنه به نظر من php براش زوده ! کتاب های c و pascal اصل را بر این گذاشتند که شما تازه داری با syntax ها آشنا میشی و حتی متغیر را ثابت و غیره را کامل توضیح دادند ! به همین خاطر چنین توصیه ای کردم و اگه مشکلشون در فهم مفاهیم غیر پایه بود به هیچ وجه این توصیه را نمیکردم !

به طور کلی هم برنامه نویسی را یک موضوعی نمیبینم که هر کسی بتونه به سمتش بیاد و برای خیلی ها ثقیل هستش‌! نه اینکه نتونند ولی اگه به زور هم بتونند به جایی نمیرسند. این را خود شخص خیلی زود متوجه میشه ! من اولین برنامه خودم را توی Visual Basic نوشتم ! اصلا نمیتونم براتون تشریح کنم چه کیفی داد وقتی یک form ساده را با زدن فقط یک کلید به عنوان یک برنامه اجرا کردم و به قول دوستمون تا صبح هم نتونستم بخوابم تا ببینم دیگه چه کار هایی میشه کرد ...

MMSHFE
پنج شنبه 23 خرداد 1392, 08:14 صبح
به نظر من یادگیری اصول برنامه نویسی (الگوریتم نویسی و طراحی و تجزیه و تحلیل منطق برنامه و مهندسی نرم افزار) لازمه تولید یک برنامه خوب و استاندارده. فکر میکنید چرا اینقدر برنامه های غیر اصولی و غیر استاندارد و پر از باگ توی ایران تولید میشه؟ دلیلش اینه که هر کسی از خونه قهر میکنه (منظورم فرد خاصی نیست)، میاد سمت برنامه نویسی. نزدیک به نصف برنامه نویسان موجود در ایران، اصلاً رشته تحصیلیشون کامپیوتر نبوده. یکم باید برای صنف خودمون ارزش قائل بشیم. چرا هرکی از راه میرسه پا تو کفش ما میکنه؟ چرا با دستای خودمون کاری میکنیم که وقتی قیمت واقعی یک محصول رو به مشتری میدیم، به خودش اجازه بده بگه: «حالا مگه چیکار میخوای بکنی؟ فوقش چند خط کد مینویسی دیگه»! دلیل چنین روندی اینه که اصول استانداردی نداریم و اگه داریم هم رعایت نمیکنیم. چرا هیچوقت یک بینایی سنج تجربی به پای یک متخصص چشم نمیرسه؟ درسته که برحسب تجربه، شاید نمره چشم رو خیلی دقیق و خوب تشخیص بده ولی هیچوقت نمیتونه وجود آب مروارید یا یک غده سرطانی در پشت شبکیه رو تشخیص بده چون علمش رو نداره. فرق یک برنامه نویس که اصول رو میدونه با کسی که همینجوری تجربی کد مینویسه، شبیه همین مسئله است. برنامه نویس، برای برنامه خودش منطق داره ولی کدنویس، هرچی دم دستشه میریزه توی برنامه و یک معجون درست میکنه که هرچند کار میکنه، ولی راندمان و کارآیی یک محصول استاندارد رو نداره. درست مثل ساختمان سازیه که یک معمار تجربی ممکنه حتی یک برج رو هم بتونه بالا ببره ولی تا وقتی که اصول کار رو ندونه، بهینه سازی نمیکنه و ممکنه یک مهندس معمار که اصولش رو خونده، همون برج رو با نصف هزینه و با همون استحکام بتونه تولید کنه. یکی میاد تمام فونداسیون رو با سیمان پر میکنه و یکی دیگه با کار گذاشتن چندتا ستون فلزی و محکم کردن اونها با بتن، استحکام لازم رو با نصف هزینه فراهم میکنه. فرق معمار تجربی و مهندس معمار در همینه که اولی همه چیز رو همینطوری سرهم میکنه ولی دومی، قبلش با برنامه هایی مثل SAP و... تحلیلهای فشار و نیروهای برشی و کششی و... رو انجام میده و حتی میدونه درصورتی که زلزله با فلان قدرت از فلان جهت به ساختمان وارد بشه، تغییر شکل ساختمان به چه صورتی خواهد بود. رشته کامپیوتر هم همینه. اگه اصول رو ندونیم، حتی نمیتونیم تصور کنیم اگه بازدید یک سایت بالا بره، چه مشکلاتی توی کوئریها به وجود میاد. اصلاً نمیفهمیم کوئری بهینه یعنی چی! حالا این که خوبه. بگذارین یک مثال بزنم تا فرق کسی که الگوریتم میفهمه و کسی که نمیفهمه رو در عمل ببینید. این دو برنامه، هر دو اعداد اول بین 1 تا 40,000 رو محاسبه میکنن ولی اولی نزدیک به 30 ثانیه زمان میبره و برخی موارد هم timeout error میده ولی دومی، دقیقاً همون نتیجه رو توی 3 ثانیه میده:

<!doctype html>
<html>
<head>
<title>My First PHP Page</title>
<meta charset="utf-8"/>
</head>
<body>
<?php
$start = microtime(true);
$c = 10;
$col = 0;
$color = '#ffff00';
echo '<table border="1" cellpadding="5" cellspacing="0" width="100%">' . PHP_EOL;
for($x = 2; $x <= 40000; $x++) {
$flag = true;
for($i = 2; $flag && ($i <= $x / 2); $i++) {
if($x % $i == 0) {
$flag = false;
}
}
if($flag) {
if($col == 0) {
echo '<tr align="center" bgcolor="' . $color . '">';
$color = ($color == '#ffff00' ? '#00ffff' : '#ffff00');
}
echo '<td>' . $x . '</td>';
$col++;
if($col == $c) {
echo '</tr>' . PHP_EOL;
$col = 0;
}
}
}
if($col > 0) {
while($col < $c) {
echo '<td>&nbsp;</td>';
$col++;
}
echo '</tr>' . PHP_EOL;
}
echo '</table>' . PHP_EOL;
$end = microtime(true);
echo 'Time: ' . ($end - $start) . '<br/>' . PHP_EOL;
?>
</body>
</html>


<!doctype html>
<html>
<head>
<title>My First PHP Page</title>
<meta charset="utf-8"/>
</head>
<body>
<?php
$start = microtime(true);
$primes = array();
$c = 10;
$col = 0;
$color = '#ffff00';
echo '<table border="1" cellpadding="5" cellspacing="0" width="100%">' . PHP_EOL;
for($i = 2; $i <= 40000; $i++) {
$flag = true;
foreach($primes as $prime) {
if($prime > (int) $i / 2) {
break;
}
if($i % $prime == 0) {
$flag = false;
break;
}
}
if($flag) {
if($col == 0) {
echo '<tr align="center" bgcolor="' . $color . '">';
$color = ($color == '#ffff00' ? '#00ffff' : '#ffff00');
}
echo '<td>' . $i . '</td>';
$col++;
if($col == $c) {
echo '</tr>' . PHP_EOL;
$col = 0;
}
$primes[] = $i;
}
}
if($col > 0) {
while($col < $c) {
echo '<td>&nbsp;</td>';
$col++;
}
echo '</tr>' . PHP_EOL;
}
echo '</table>' . PHP_EOL;
$end = microtime(true);
echo 'Time: ' . ($end - $start) . '<br/>' . PHP_EOL;
?>
</body>
</html>

eshpilen
پنج شنبه 23 خرداد 1392, 09:53 صبح
مسئله ای که در مثال شما نشون داده شده جالب بود، ولی بعنوان نمونه ای عملی بر استدلالهای شما بنظرم زیاد هم مرتبط نبود.
چون کاربرد مسئلهء مطرح شده از نوع ریاضی محض است و بهینه سازی انجام شده هم باز از نوع کاملا استوار بر دانش ریاضی، درحالیکه بخش بزرگی از برنامه های تجاری اینطور نیستن.

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

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

eshpilen
پنج شنبه 23 خرداد 1392, 09:58 صبح
راستی بنده تست کردم اگر بجای:

$prime > (int) $i / 2
بنویسید:

$prime > $i / 2
سرعت اجرا یک ذره بیشتر میشه.

آیا این کار مشکلی نداره بنظرتون؟

واسه چی اون Cast رو گذاشتید؟

MMSHFE
پنج شنبه 23 خرداد 1392, 10:06 صبح
برای اینکه فقط به خارج قسمت صحیح تقسیم نیاز داریم نه خارج قسمت اعشاری. یعنی اگه عدد 5 باشه، تا 2 باید جلو بریم. البته ضرورتی هم نداره چون یکی یکی جلو میریم و بعد از 2 میشه 3 و هیچوقت 2.5 نمیشه. اما بحث اصلی این نیست. مثالی هم که گذاشتم، فقط یکی از مثالهایی هست که میشه مطرح کرد و در ساده ترین حالت گذاشتم یعنی همون مسئله نمایش اعداد اول هم کلی راه اصولی و غیر اصولی داره. چه برسه به برنامه های تجاری پیچیده که اگه تجزیه و تحلیل درستی روش انجام نشه، راندمان برنامه به شدت تغییر میکنه. بحثهایی مثل نرمالسازی دیتابیس و جلوگیری از افزونگی اطلاعات و الگوریتمهای بهینه و کوئری بهینه و انتخاب سرور مناسب و کلی مباحث دیگه مطرح میشه که طبیعتاً تخصص بیشتری لازم داره و نمیتونیم بگیم همینطوری بیا بشین سایت بساز!

ravand
پنج شنبه 23 خرداد 1392, 10:34 صبح
مهندس ، من نگفتم یاد گرفتن الگوریتم کار اشتباهیه.
من گفتم باید عملی کار کنیم تا تئوری. گفتم میشه مسائل تئوری رو در عمل هم یاد گرفت و این به بهتر یاد گرفتن کمک میکنه.
شما ریاضی اول دبیرستان رو ببین. واقعاً افتضاحه! و خوندن کتابش اعصاب و روان بچه ها رو میریزه بهم. اگه بیان برای یه مسئله ی ریاضی یه کار عملی هم مثال بزنن. خودش کلی ارزش داره.
یک مثال ساده براتون میزنم:
105495
من با استفاده از این فرمول ساده یک نمودار برای نظر سنجی نوشتم. وقتی ریاضی رو در عمل استفاده میکنی خودت لذت میبری و یادگیری هم برات آسان تر میشه.