ラベル コーディング の投稿を表示しています。 すべての投稿を表示
ラベル コーディング の投稿を表示しています。 すべての投稿を表示

2013年6月28日金曜日

初心者のためのプログラミング特集 その2

基礎からのPHP







最近「プログラミングの考え方」について学習しています。
各言語の文法だけを覚えても、そもそもの考え方が身に付かないと、
学習効果が低いのじゃないかなぁと思って。そこで対策として、こんな本を見つけてきました。




Karen, an example of a computer programmer / skyfaller





ソフトバンククリエイティブの「基礎からシリーズ」





「何言ってんだこれはマニュアル本じゃないか!」とお思いの方も
いらっしゃるかもしれません。言われてみればその通りなのかもしれません。



ただ読んでいる途中で、非常に素朴な問題ですが、初心者にとっては
かなり頭をひねらないといけない練習問題が出てきましたので、取り上げてみました。
後ほど、ご紹介しましょう。



もっとも、ソフトバンク・クリエイティブの「基礎からシリーズ」は、
どれも400ページ近くの分厚さで字がみっちり書きこまれているので、
初心者は、腹をくくって頭を総動員しなければ読み切れないものが多いと思います。




1から100までの数字で素数を書き出してみよう(繰り返し構文)




では問題です。興味のない人は飛ばしてください。
また、もっと分かりやすいコードが書ける!とおっしゃる方は、ぜひ教えください!


例題)
1から100までの素数をすべて書き出し、「1から100までの素数は○個あります」
と個数も表示させるスクリプトを作成し、実行してください(P68)



答え)

//初期化
$yaku = 0;
$sosu = 0;

//素数の書き出しと個数のカウント
for($i=1; $i<= 100; $i++){

for($j=1; $j <=$i; $j++) {
if($i % $j == 0) {
$yaku += 1;
}
}
if($yaku == 2) {
print $i." ";
$sosu +=  1 ;
}
$yaku = 0;
}
print "<br>1から100までの素数は".$sosu."個あります";



【関連エントリ】


初心者のためのプログラミング特集 その1



【参考文献】


西沢夢路
基礎からのMySQL 改訂版 (プログラマの種シリーズ SE必修! )
ソフトバンククリエイティブ





高橋のり
基礎からのWordPress (BASIC LESSON For Web Engineers)
ソフトバンククリエイティブ









2013年6月27日木曜日

初心者のためのプログラミング特集 その1

プログラムの考え方がおもしろいほど身につく本








最近「プログラミングの考え方」について学習をしています。
各言語の文法だけを覚えても、学習効果が低いのじゃないかなぁと思って。
そこで対策として、こんな本を見つけてきました。





Programmer / CEThompson





C++を別のプログラミング言語に書き換えてみる






本書は、マニュアル本やリファレンス的なサンプル集の特集ではなく、
一見複雑そうな問題をどうやって切り分けて考えるか?
ということを懇切丁寧に説明しています。



言語そのものはC++で書かれていますが、初心者の人は今流行りの
PHPやJavaScriptに書き直して考えるだけでも、相当な勉強になるはず。
同一の言語を「写経」するよりも、頭が刺激されます。



(管理人の使い方)

  1. C++の初歩知識をぐぐる
  2. PHPで書き直す
  3. 分からないところはGoogle+のプログラミングコミュニティサイトに質問




繰り返し構文(forループ)でひし形を書いてみよう






興味のない人は、ここから先については読み飛ばしてください。


例題)
繰り返し構文を使い"#"(ハッシュ記号)"-"(ハイフン)で以下の出力をしなさい(P71)


---##---
--####--
-######-
########
########
-######-
--####--
---##---


答え)
以下の通りです。
なお、もっとクールなコードを書ける方がいらっしゃいましたらぜひ教えてください!


//1段目から4段目
for($row=1; $row<=4; $row++){
for($num=1; $num<=abs($row-4); $num++){
echo("-");
}
for($num=1; $num<= 2*$row; $num++) {
echo("#");
}
for($num=1; $num<=abs($row-4); $num++){
echo("-");
}
echo"\n";
echo"<br/>";
}

//5段目から8段目
for($row=1; $row<=4; $row++){
for($num=1; $num<=$row-1; $num++){
echo("-");
}
for($num=1; $num<= 2*(5-$row); $num++) {
echo("#");
}
for($num=1; $num<=$row-1; $num++){
echo("-");
}
echo"\n";
echo"<br/>";
}





【関連エントリ】


コーディングを支える技術 成り立ちから学ぶプログラミング技術






2013年5月27日月曜日

コーディングを支える技術 成り立ちから学ぶプログラミング技術

「なぜ」という視点で共通の知識を身につける






管理人は最近、初心者としてプログラミングを学習しています。
その学習で人の説明を聞いたり、参考書の解説を読んでいると、
よく、次のような「枕詞」に出会います。



  • 「これはおまじないの言葉として…」
  • 「お約束の一文なので…」
  • 「そういう決まりごとで…」



例えば、PHPというプログラミング言語で、MySQLデータベースに接続するために、
おまじないとして、次のようなコードがあります。



$dsn = "$dbtype:dbname = $dbname;host = $sv;
$conn = new PDO($dsn, $user, $pass, $options);



まったくの初心の方が、それぞれの意味を理解しようとしても、
何のこっちゃさっぱり分かりません。とりあえずこれらは、「おまじない」として覚えてしまい、
「写経」するのが、学習の第一歩となります。





Coding w/ Gedit / Matrixizationized




「写経」は学習の第一歩なのだが…






「写経」とは、文字通り参考書のコードをエディタソフト(メモ帳ソフト)に
書き写すだけのことです。何回か、同じコードを「写経」しているとそんなものかと、
思い始めて、タイピングをするのもラクになってきます。



何せ全くの初心者(管理人)は、英文タイプも全くできないし、";"(セミコロン)や"."(ドット)の
脱字も頻繁に起こります。それが「写経」を何回か繰り返すと、コード全体の字面が、
見慣れてきて、綴りミスや記法ミスなどの初歩的なミスが減ってきます。




人間が作ったコードには意図がある





しかし、その「写経」が良いことばかりではありません。
「写経」に没頭しすぎると、デメリットもあるように思います。



  • タイピングに集中するあまりコード全体の流れを読まなくなる
  • 「決まり文句」や「お約束」を当たり前のことと受け止め疑問をもたなくなる




このデメリットを放置しておくと、せっかく何かの言語を習得しても
トレンドの早いプログラミングの業界では、そのスキルはすぐに使い物にならなくなるそうです。



本書では、プログラミング言語がもつ諸概念が、「なぜ」存在するのかを解説します。


"本書のテーマは、その「なぜ」を理解することです。そのために本書では、言語設計者の視点に立ち、複数の言語を比較し、そして言語がどう変化してきたのかを解説します。いろいろな概念が「なぜ」生まれたのかを理解することで、なぜ使うべきか、いつ使うべきか、どう使うべきかを判断できるようになるでしょう。そして、今後生まれてくる新しい概念も、より一層理解しやすくなるでしょう"

(裏表紙より)


【関連エントリ】


Webサービスを始めるためのPHP特集
ブログじゃないWebサイト制作について WordPress特集