「言語」を含む日記 RSS

はてなキーワード: 言語とは

2018-10-20

若手交流会で疲れた

自分は、20代後半だが、参加者20代前半の人が大部分だった、

から、人と接するのが恐ろしく苦手だった、今回の交流会でもあまり人と話せず、年下の優しい人が話しかけてくれて、年下に気をつかわせてしま自分が情けなかった

話題をふったりとかもして見たけど、2、3言で話が終わってしまう、とても気まずい、苦手だな。

とりあえず、自分はこういう交流会でも、基本あまり人と喋らないし、名刺交換の流れにも乗れないと自虐で笑いをとって見たりしてみた

僕にしてはそこそこウケたんじゃないか

中学生の時からみんなとワイワイする席で誰とも喋れず一人で食べてることが多かったので、さすがにそれが辛いという感情は今はほとんどなくなった。

辛いことがあってもユニセフ募金したり、献血に行ったりして、自分社会の役にたってると思うことで辛い体験から自衛する方法自分の中では確立しているし。(この方法は結局辛いことから逃げているので成長できないのだけど)

ただ、やっぱり僕と話しててつまらないなと感じてる周りの人の顔を見るのが申し訳ない。

交流会の席で綺麗な女の人がいたが、僕と同じ席で気持ち悪い思いをさせなかっただろうかと不安になる。

僕のことをあまりよく思ってない、同じ会社の人も出席していたが、僕が周りの人と打ち解けることに嫉妬させることになったら気まずいな。(この不安はいつも杞憂なんだけど)

僕は傷ついてもどうしようもない人間だけど、僕のせいで周りの人が嫌な思いさせてしまうのがとても嫌だ。助けて。

世の中には僕よりも辛い思いをしている人が山ほどいるのはわかっているけど、辛いときはやっぱり辛い。情けない。

最近勉強しているプログラム言語の話をしてみたりしたけど、なんか交流会という感じにはならない、自分の方ができるんだぞ、自分は分かっているんだぞというマウント合戦になってしまう。

僕はマウント取るために勉強してたわけじゃないのに、昔、宮沢賢治雨ニモマケズに感動して、褒められもせず苦にもされず、そういうものになるために僕はただ好きなことを勉強していこうと思ってただけなのに、あの時の自分気持ちはなんだったのか。いつの間にかマウンティングゴリラになってしまって人間交流会に迷い込んでしまった。人間に戻りたい。

交流会が終わったら、1時間ぐらい歩いて家まで帰った、帰り道がいつもより寒かった。地球温暖化してんじゃねーのかよ、冬なんかなくなったらいいのに。

悪いことは重なるもので、甘いものでも食べて元気出すかと、グミを食べてたら、なんか銀歯が取れた。歯?

自分に何か非があって天罰でも当たっているのではないかと、思いを巡らせて見る。

そういえば、ここ数ヶ月、最近、母さんが僕に何も言わずに毎月1万円ずつ振り込んでくれている。母さんは僕がそのことに気づいていることにまだ、気づいていない。

正月実家に帰った時に文句を言ってやろうと思ってたんだ。こんな感じで。

「母さん僕は、昔から友達ほとんどいないし、特に取り柄もないし、ダメ人間で、形容するならネズミのような人間で、いつも人にバカにされていたんだ。

から今僕が自分で働いてて、自分の金で生きている、そのことが僕の自信につながっているし、楽しみでもあるんだよ。

からお金なんか振り込まれたら、そんなの自分の金で生きてることにならないし台無しなんだ、だからお金を振り込むのはやめてくれ。」

そう言おうと思って。でもよく考え見ると、僕が募金をするのは、人のためではなく、自分のため以外の何物でもないし、母さんがお金を振り込んでくれるのも同じ理由なのかもしれない。

ならばこのまま気づかないふりして好きにさせてあげるべきなのでは?まあいいやまた明日考えるか。まあお金絶対使わないけど。

最近、嫌なことがあっても、時間が経つと、その経験自体結構好きになってしまう。

悲しいことも辛いことも全てがそのこと自体面白かったな。

でもそう思えるのは、本当にどん底まで経験してないからこそツラミも旨味と、そう思えるわけで。そう思えるうちが幸せなんじゃないかとも思う。末長く続きますように。

若手交流会で疲れたから明日ラーメンでも食べに行くか。

家の近所に美味いラーメン屋があるが、雑誌か何かで紹介されたのかいきなり人気店になって昼時はいつも行列ができている。

チッ。近所にいつでも食べに行けるラーメン屋があるというのが、僕にとっては重要で、味なんか60点で良かったのに。

もう少し離れたところにあるラーメン屋はラーメンライス必須でついてくるんだよな、ラーメンライスなんか合うわけねーじゃん。

さらに離れたところにあるラーメン屋は、30点ぐらいの味なのでちょっと歩いてまで行く気にならない。

んーどっか遠出して行ったこと無いラーメン屋に行って見るか。

なんか色々考えてしまって、今日は寝れない。

明日献血にも行くか。自分が世の役に立っているという自己満足を満たしていると思わせて、実はそれは照れ隠しで本当は人のため、と、思ってもらって、自分自己顕示欲承認欲求を満たすために行ってきますか。はー注射怖いな。おやすみなさい。

2018-10-19

anond:20181019192937

アメリカとか南の方はスペイン語が第2公用語みたいなもんだけどな

日本斜陽国家のクセにいつまでも言語鎖国を続けてられるんだろうか

増田プログラマー養成講座 その7 OOPの仕組み(前半)

前回は「オブジェクトとは何か?」を説明した。

今回はオブジェクトの使い方=オブジェクト指向プログラミングOOP)で用意されている仕組みを見てみよう。

とりあえずPHPで仕組みを学習してみよう。(PHPJavaより簡単なので理解やすい)

OOPでは用語概念がたくさん出てくるので、まずは用語意味を押さえよう。(英単語ばっかだね。日本語にして欲しいね。)

 

注意点:文字化けエスケープ)について (修正済)

以下の説明で、半角文字の「>」(不等号の記号)が「>」という表示に変わってしまっている。

「->」となってるところは「->」(>は本来は半角文字)なので、読み替えてください。

 

ドットインストールPHP入門でOOP学習

 

元増田は、もう一通り全部見てくれたかな?

OK、それじゃOOP関係してる#18から#24を一緒に見てみよう!

 

#18 クラスインスタンス理解しよう

動画でこんな用語が出て来た。

 

 

クラスとは?=オブジェクト定義

クラスベースOOPJavaPHPなど)は、オブジェクトを作るときに、「クラス」という仕組みで用意する。

プロトタイプベースOOPJavaScriptでは、「プロトタイプ」という仕組みで用意できる。=別の機会に使ってみよう)

 

クラスベースOOPで「オブジェクト」と言った場合クラスインスタンスの両方を指し示すことができる。

 

 

クラスメンバー

クラスには「プロパティー」(データ)と「メソッド」(処理)を入れられる。

も作れる。

クラスの中に入っている「プロパティー」や「メソッド」のことをまとめて「メンバー」と呼ぶ。

からメンバーってのは、クラス構成員だね。プロパティーやメソッドメンバーになれる。

 

// クラスオブジェクト設計図オブジェクトデータと処理をまとめて入れられる箱。

class クラス名 {

 // プロパティー(データ)の部分

 public $name = ''; // 名前 // ※「public」の使い方は後で説明

 public $age = ''; // 年齢

 // メソッド(処理)の部分

 public function get_name() { // 名前を取得する

  return $this->name; // ※「this」の使い方は後で説明

 }

 public function set_name($new_name) { // 名前を設定する

  $this->name = $new_name;

 }

}

 

コンストラクター

コンストラクター」は特別メソッドで、クラスからインスタンスが作られるときに、自動的に呼び出される。

コンストラクターを使えば、インスタンスを作るとき自動的に実行しておきたい処理(下準備=初期化とか)をやらせられる。

class User {

 // プロパティー(データ)の部分

 public $name = '';

 public $age = '';

 // コンストラクタークラスからインスタンスを作る(new)とき自動的に実行される特別メソッド

 public function __construct($name, $age) { // PHPコンストラクター名は「__construct」と書く。

  $this->name = $name;

  $this->age = $age;

 }

 // メソッド(処理)の部分

 public function get_name() {

  return $this->name;

 }

 public function set_name($new_name) {

  $this->name = $new_name;

 }

}

 

デストラクター

説明には出てこなかったけど、コンストラクターと反対に、デストラクターという仕組みもある。

 

インスタンス

インスタンスクラスオブジェクト設計図から作ったオブジェクトの(具体的な)実体のこと。

インスタンスは「new」で作る。

$taro = new User('taro', 20); // name='taro', age=20コンストラクターでセットしたい。

これで「太郎」(顧客の1人)という具体的なインスタンスが、User利用者クラスから作られた。

太郎($taro)というインスタンスを作った後は、これで太郎に関するいろいろな操作ができるようになる。

 

アロー演算子

インスタンス太郎」の中にあるメンバープロパティーやメソッド)を使いたい場合アロー演算子「->」(矢印)で指定する。

 

echo $taro->name; // 太郎nameを表示せよ

$taro->name = 'yamada taro'; // 太郎nameを「yamada taro」にせよ

$taro->set_name('タロウ'); // 太郎のset_nameメソッドで「タロウ」という名前を設定せよ

等という操作ができる。

 

#20 クラス継承してみよう | PHP入門

動画でこんな用語が出て来た。

 

 

extends(継承

OOPでは、あるクラスオブジェクト設計図から、別のクラスを作りだすことができる。これを「継承」と言う。

 

// 元にするクラス

class User {

 // プロパティ

 public $name;

 public $age;

 // メソッド

 public function hello() {

  echo "Hello, " . $this->name;

 }

}

// 継承して新しく作るクラス

class Special_user extends User {

 // プロパティ

 public $point; // 特別会員のポイント

 // メソッド

 public function your_point() {

  echo "あなたポイントは".$this->point."点集まりました。";

 }

}

 

上記の例だと、基になった「User」が親クラスUser継承して新たに作った「Special_user」が子クラスとなる。

 

オーバーライド

オーバーライドとは「上書き」という意味

継承して新しい子クラスを作るとき、親クラスにあるメソッド機能を一部改造したい場合がある。そんなときは上書きして、中身を入れ替えることができる。

オーバーライド簡単で、単に同じ名前メソッドを用意すればいいだけ。新たに用意したメソッドで中身が上書きされる。

 

// 元にするクラス

class User {

 // プロパティ

 public $name;

 public $age;

 // メソッド

 public function hello() {

  echo "Hello, " . $this->name;

 }

}

// 継承して新しく作るクラス

class Special_user extends User {

 // プロパティ

 public $point; // 特別会員のポイント

 // メソッド

 public function your_point() {

  echo "あなたポイントは".$this->point."点集まりました。";

 }

 // 親クラスにあったメソッドと同名のメソッドを用意すれば、上書きして中身を変更できる。

 public function hello() {

  echo "こんにちは、".$this->name."様";

 }

}

 

final

オーバーライドして中身を変更されてしまうと困るメソッドがあった場合オーバーライドできないように設定しておくこともできる。

その場合は、メソッド名の前に「final」と書いておけば、最終的な決定形となり、オーバーライドで中身を変更できなくなる。

その他、finalの使い方はマニュアルも参考にしてください。

 

#21 アクセス権について理解しよう

OOPでは「カプセル化」といって、オブジェクトの中にあるメンバープロパティーやメソッド)を外から見えない(操作できない)ようにすることができる。

 

隣の家の窓を想像して欲しい。

カーテンによって、3段階で覗けるようになっている。これと同様のことがオブジェクトメンバーにも設定できる。

 

メンバーアクセス権を設定してやれば、オブジェクトの外からの見え方を設定できる。

 

大雑把に言えば、オブジェクトカプセル化プロパティー(オブジェクトの「状態」)は見えなくして、メソッドオブジェクトの「操作」)は見えるようにしてやれば、だいたいうまく使えます

これは「副作用(予期せぬ変化)の隠蔽化」といって、「オブジェクトの中身を外部から守る」という考え方です。

アクセサー」(ゲッターセッター)という「オブジェクト操作用のメソッド」を用意してあげて、中身の操作制限を加える方法があります

 

区切り

まずは、ここまでの内容をドットインストールサンプルコードなどを実際に動かしてみて、仕組みをよく理解するようにしてください。

#22から#24は、今の段階では「こんな機能も用意されているのか。へー」ぐらいでもOKだと思います

 

多分、素朴な疑問として、「OOPのために、こんな仕組みが用意されているのは分かったけど、何が便利なんだろ?」と訝しく見えるだろうと思います

OOP基本的文法機能を知った後、実際にOOPを使ってみる演習をやってみれば、使いどころや便利さが分かるようになると思います

次回は、残りの#22から#24までの説明を見てみましょう。

 


anond:20181015215004経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

プログラミング初心者が一番最初に使うべきプログラム言語

今どきC言語を勧めますかね?

ポインター操作で混乱しませんかね?

モダン言語は、ポインターを隠して、ガベージコレクション提供してますよね?

 

どうしてもCが好きなら、ベターCの1つであるGoとかでも良くないですか?(Cを作った連中が作った言語だし)

Goだけ見ると、これ初心者きじゃないよね?

 

プログラミング学習の前に、情報処理試験ITパスポートなど)の教科書を読ませるのは良いと思います

高校の「情報」の授業程度の予備知識があれば、ないよりまし?)

 

外国語

言語系のML入ってたけど、そこでミ・アモーレ話題になったな。

参加してる人たちの使える言語総合すると英独仏羅希西葡典露伊中日蘭あたりだったけど、確かスペイン語イタリア語ちゃんぽんの謎外国語ということで落ち着いたかな?

2018-10-18

プログラムの実行環境の用意(paiza.io)

PHPの実行環境として、XAMPPを用意してもらったけど、これは後でデータベース練習をすることも考えてチョイスしました。

MySQLを使って「SQL」(問合型言語)の練習をするため。

だけど、PHPJavaを単体で動作確認するだけなら、オンライン上の実行環境提供してくれているサービスがあるので、それを使ってもOKだと思います

自分パソコンで実行環境を用意する作業も、初心者だと分かりづらくて面倒かもしれないからね。)

 

paiza.io

「paiza」はプログラミング学習や、プログラマー就職支援してるサービスです。

 

https://paiza.io/ja

このURLブラウザーで開いて、左上にあるプルダウンメニューで、「PHP」とか「Java」を選択したら、短いコード断片をテストできます。 

 

…っていうか、月額600円の有料会員に登録して、paizaのプログラミング講座を受講した方が、俺の下手な説明を読むよりも、ずっと分かりやすいかもwww

 

まあ、俺だったら、新しいプログラミング言語習得するときは、自分で本を買ってきて、自分パソコン動作させながら学ぶけど。

でも、プログラミング勉強する一番最初なら、こういう講座で質問しながら進めてもいいと思う。せっかく選択肢としてあるのだからね。

(俺はpaizaの回し者じゃないので、念のため)

 

anond:20181015215004

anond:20181017191404

いい加減テキストエディタプログラムを書く悪習はやめた方が良い

今はコードを書く苦労がIDE支援によって軽減されている。

MS製のVisual Studio Codeを使えば、MS言語TypeScriptも苦労せずに済む。

 

http://www.atmarkit.co.jp/news/200711/07/techday.html

Emacsは30年前には、すばらしいものだった。しかし、Emacs消滅すべき。現在Emacsが30年前のものと似ているのを見るのは、何だか寂しい」。

Javaの生みの親であるジェームスゴスリング氏は、UNIX上で標準的に用いられてきたテキストエディタEmacs開発者としても知られている。

ゴスリング氏は最近コンパイラや開発環境進化について触れ、「もうテキストエディタを使ってはいけない。NetBeansを使ってほしい」と語りかけた。

viIDEがない環境での緊急手段

 

anond:20181018101849

anond:20181017141813

性別の要素」って書いてあるけど、何が「性別から分離しているんだろう?「人間」かなあ?

個人的性別っていうのは動物植物レベル存在して、言語依存しないというか、言語の中にどうこう言う対象ではなく、むしろ使用者側の性別言語に表れてくるだけ、

ととらえているんだけど、逆に言語性別規定しうると見ているのかな?

派遣PGネストが深まる毎に底辺度が増す

しかし伝えられる実力は上位に派遣される毎に増えるという

言語職業訓練で触った→言語初心者言語上級者→バリバリエキスパート

anond:20181018100228

TSのことを「JSと大差ないのに記述量だけ多くなる言語」みたいに思ってるのかな。

anond:20181017141813

文法じたいがどっぷりと男性女性形に縛られている言語あるよね。

2018-10-17

Twitter推しユーザーとの距離感が難しくなってしまった

 顔も本当の名前も知らない。でも、話していることや文字から伝わる人柄に無意識に惹かれることがある。

 本の作家記事記者のような存在に対して感じる気持ちを、私はあるTwitterユーザーに抱いている。

 まず、私自身のことを述べておく。

 主に二次元作品を好んでいるオタクだ。現場もちょくちょくあり、日々好きなコンテンツのことについて見たり聞いたりして人生を充実させてる、よくいるタイプの奴だ。

 ただ、周りに同じ趣味を持つ人がいない。周りの友人の好きなコンテンツが(次元的に)真逆であることが多く、普段好きなコンテンツについて話すことがあまりないので、Twitterは「自分と好きなものが同じ人の呟きが眺めるもの」として利用していた。

 そんな時に上記のような方、いわゆる「推しユーザー」に出会ってしまった。

 きっかけは、その方が描いたイラストだった。

 自分の好きなキャラを描かれている絵を見かけて「素敵な絵だな」と思い、推しキャラが同じならまた見れるかも、という位の気持ちフォローボタンを押した気がする。

 それからその人のツイートを見てみたら、どえらい面白い!!

 めちゃくちゃ面白かったのだ。

 自分にはない言語センス自然文体だけど伝えたいことがバリバリ伝わってくるツイート。絵がお上手な方はツイートも達者なのか!?と思ってしまうくらい面白かったのだ。今までフォローしていた方のツイートも好きだったのだが、その方のは何と言えば良いのか…なんかすごくツボにきたのだ。

 それから、その方のツイートが流れてくる度にちょっと嬉しい気持ちになった。

 さらにその方は、親しみやす雰囲気からか、よくTwitter上で他ユーザーさんと会話をしていた。その様子がタイムラインに流れてきたときも、楽しそうな雰囲気を感じて無関係自分暖かい気持ちになっていた。

 漫画みたいな例えをすると、憧れの人の様子を物陰から覗いて見ている気分だった。

 だが、Twitterであるもの流行し始めたことがきっかけで、私の気持ちが揺らいでしまった。

 質問箱やマシュマロといった、匿名メッセージサービスだ。

 なんと、それにメッセージを送ると設置者に匿名メッセージが届くのだ。

 友好的なその方は、是非にと、その箱を設置してくださった。普段話したりしない人からコメントも歓迎している旨もツイートしてくださった。

 最初、私はそのサービスを知って凄く嬉しかった。

 その方がメッセージに回答しているのを見たり、自分から質問やその方のイラストが好きだといったメッセージを送ったりするのが楽しかったし、その方との距離が少し近づいたような気持ちになった。

 今振り返ってみると、ここで少し「あれ?」と思った。

 匿名サービスあくまでもこちら側は匿名で送っている。だから、受け取り側からは、誰が送ってきたのかは基本的に分からない。

 でも、送り主からしたら「自分相手」が成り立っているような気分になってしまうのだ。実際の自分は、実態を持たない霧のようなものなのに。

 そりゃそうだ、だって自分が送った内容がどんなのかは知ってるから。だから自分メッセージとして認識している。

 何回かメッセージを送っていた当時の私は、いつからか眺めているだけで満足出来なくなってしまっていた。

 そして、思ってしまった。

「見ているだけじゃなくて、話をしてみたい」

 と。

 単に一人のユーザーとして関わってみたいだけならまだ良かったのかもしれないが、匿名サービスという段階を経てしまったせいで、勝手こちらは相手に対して親密な立場になっているのではないかという幻想を抱いてしまったのだ。相手からしたら、全然知らない人なのに。

 そのことに気づけていなかった私は、後悔をする出来事を起こしてしまった。

 先述の通り、私が好きなコンテンツ現場(イベント)が定期的に行われているジャンルだ。

 色んな媒体で盛り上がる系のコンテンツにハマったことがないので分からないのだが、ファン内でしばしば(どちらかというと主観的な)暗い話題がされていることもある。

 私は閉鎖的なオタクなので元のツイートが届くことは(運良く今までに)ないのだが、その方には届いてしまっているらしく、その話題について悲しんでいることがよくあった(そういう話に対して肯定的姿勢でないところも良い人だな…と思う)。

 それがたまたま続いてしまった際に、このようなツイートを見た。

「近頃悲しい話ばかりで寂しい。もっと楽しいことを言って欲しい」

 その時に、私は行動を起こしてしまった。本当なら、物陰から覗き見しているような私でなく、その方と親しい方がアプローチしてくださるのを待つべきだったのに。

 匿名サービスを使って、励ましとその方への感謝気持ち文字制限ぴったりになるくらいの分量で送ってしまったのだ。

 普段近くに話す知り合いがいないから、深い事情は分からない。

 でも、私はあなたイラストが好き。

 普段話しているツイートも好き。

 あなたイラストや呟きが私のエネルギーになることも沢山あった。

 こんな感じのことを送った。今思うと重すぎる。あまりに重すぎるラブレターだこれ。しかも我ながら、匿名なのめっちゃたちが悪い。

 これでスルーしてくれたらまだ良かったのだが、その方から返答が返ってきた。

 そこには、そのメッセージが嬉しかったということが書かれていており、まさかの返事に私は舞い上がってしまった。

 思わず追加で送ってしまった。そしてこれが、私の後悔である

「いつか現場でお会い出来たら、感謝気持ちを直接言わせてください」

 送った後に気がついた。

 これは、送ってはいけなかった。

 匿名であることで敷居が下がったから気軽に書いてしまったけれど、これはこのサービスを通して書くことではなかった。

 そんな私の気持ちとは逆に、その方は「こちらこそ是非」といった優しい言葉を返してくれた。誰かも分からない私に対して。

 それが、すごく申し訳なく感じてしまった。

 ここでの後悔は、匿名であるにも関わらずその方へ近づこうとしてしまたことだ。

 せめて、リプライをする勇気を持てていたら、こんな気持ちにならなかったと思う。

 でも、知らない人から急にリプライなんて来たら驚かせてしまうだろうし、やっぱり出来ないというのが心情だ。

 もし今後、本当に現場でお会いする機会があったら、私は「あの時のメッセージの者です」と言えるのだろうか。

 今の私は言えそうにない。

 きっと、話せても「Twitter見てます」くらいしか言えないのだろうな。

 せめて、「あなたイラストツイートが好きです」くらいは言えたら良いな。

 それか、あのメッセージのことだけは、忘れて欲しいと思ってしまっている。

 そんな私は、やっぱり見ているだけの方が良いのかもしれない。

 Twitter推しユーザーとの距離感が難しくなってしまった。

増田プログラマー養成講座 その6 OOPの種類、PHPの準備

前回は、オブジェクト説明をした。

今回は、オブジェクトの使い方=オブジェクト指向プログラミングOOP)を学ぼう。

 

OOPの種類

オブジェクト指向プログラミングには、

  1. クラスベースJavaC++など)
  2. プロトタイプベースJavaScript、Ioなど)

などの分類があります

ここではクラスベースOOPを取り上げる。学習時間を短縮するために、Javaよりも簡単PHPOOPの基本を勉強してみよう。

 

PHPとは?

PHP (プログラミング言語) - Webページ作成のために用いられることの多い汎用プログラミング言語一種

PHPは誰でも手軽に使えるように工夫された、軽量なプログラム言語です。

 

PHPの準備

WindowsパソコンPHPを使うために、XAMPPというソフト無料)をインストールしよう。

 

XAMPPはいくつかバージョンがあるけど、ここではUSBメモリに保存できる「ポータブル」を使ってみよう。

↑このページにある「xampp-portable-win32-7.2.10-0-VC15.zip」をダウンロードして、ZIPファイルを展開します。

解凍して出てきた「xampp」をCドライブ直下コピーしてください。

これでPHPの実行環境XAMPP)の準備は完了です。

 

XAMPPの起動

Port(s)が「80,443」と表示されたら、XAMPP上のApacheWebサーバーソフト)が起動して、PHPが使える状態になってます

Apacheを止めるときは、「Stop」ボタンクリックします。)

 

PHPスクリプト作成

phpとは - はてなキーワード http://d.hatena.ne.jp/keyword/php

↓こんなかんじのサンプルコードがあるよね。

<?php

print("Hello, world!");

?>

プログラムソースコード増田に直接書くと、エスケープされて違う文字になるので、上の例では一部文字を置き換えてある。)

上記の表示の中で、全角文字の不等号「<」「>」を半角文字の不等号に置き換えて下さい。)

増田プログラムコード貼付けられないのか。不便だな!)

以上で、PHPプログラミングの準備と動作確認ができた。

 

PHPの基本文法

PHPの教材は、本やネット上の記事動画などたくさんある。自分で分かりやすものを探して読んでみよう。

ここではドットインストールPHP入門を参考にしてみよう。

 

3分程度の動画が30個=90分。最初は内容を理解できなくてもいいから、とりあえず全部一通り見てみよう。(1巡目は雰囲気だけつかめOK

 

「つまづきノート」の作成

2巡目以降は分からないことがあったらノート等にメモして、後で1つずつ解明していこう。

著者あとがき

 

私はGitを学ぶのに、実はとても苦労しました。それと同時に、「きっと同じように困っている人が他にもたくさんいるはずだ」と考えました。「理解するのに数日かかることを、短い時間でパパッと学べるコンテンツを作りたい」そう思いつき、「マンガでわかるGit 第1話」個人サイトにて公開したところ、いきなり、はてなブックマークで800ブックマークされました。

 

“つまづきポイント”を先回りするために

私は、Gitを使い始めて以降、わからないことがあったら「つまづいたこノート」に書いてきました。なお、本書の執筆にあたっても、日々勉強しながら解説を書くという形でした。わかばちゃんが「なんでこうなるの?」と疑問に思う部分は、私が過去につまづいた部分です。

 

ドットインストール PHP入門
(1) PHP利用の準備

 

(2) 構造プログラミングの基礎知識

 

(3) オブジェクト指向プログラミングの基礎知識

 

(4) その他、Webサイト作成一般的知識

 

(今回は、PHPの準備、PHPの基本文法理解までで終わってしまったorz

URLリンク10個以上貼ると、日記が書き込めないみたいなので、増田では記事を分割せざるを得ない。)

次回は、OOP関係している内容(#18~#24)を一緒に確認してみよう。

 


anond:20181015215004経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

sizeof(32)を見逃したので、C言語に限っては静的解析ツール必須だと感じた。

あれは、年寄りにつらい言語ですな。

増田プログラマー養成講座 その5 オブジェクトとは何か?

今回は、手続プログラミングの後半となる「オブジェクト指向プログラミング」(OOP)について学ぼう。

OOPは内容が多いので数回に分けて説明してみます。(説明が下手だったらフォローお願いしますw)

 

オブジェクトとは何か?

オブジェクトobject)はオブジェクト指向プログラミングにおいて、プログラム上の手続きの対象抽象化する概念である

 

オブジェクト指向プログラミングパラダイムでは、関連するデータを束ね、代入、演算手続き(関数メソッドなど)を介した受け渡しといった操作対象にでき、またメッセージ受け手になれる実体オブジェクトと呼ぶ。

多くの場合オブジェクトは他のオブジェクトを要素として格納することができ、複雑なデータ構造表現できる。

 

Wikipedia説明は分かりづらいね。(初心者だったときの私が読んだら意味理解できないと思う)

 

増田プログラマー養成講座 その2 https://anond.hatelabo.jp/20181016164341説明した「プログラム構成要素」を思い出して下さい。

プログラムは、

  1. データ
  2. 「処理」

の2つから成り立っている。

プログラミング歴史は、この「データ」と「処理」をどうやって使いやすくするか?の試行錯誤になってる。

 

Java入門書にも、データ構造について説明があっただろ?

 

構造体の発展=オブジェクト

複数データをまとめて入れておく箱は便利な道具なので、だいたいどのプログラミング言語でも用意されている。

この講座では、複数データをまとめて入れる箱を「構造体」と呼ぶことにしよう。

 

構造体の各箱には、普通データ」を入れておくんだけど、データだけじゃなくて「処理」も入れておけると便利だ。

データ」も「処理」も保管できるように拡張した構造体に、「オブジェクト」という名前を付けた。

オブジェクトとは、言い方を変えれば、「データ」に「処理」をくっ付けたものなんだ。

 

このWebページ最初の方に「図: オブジェクトフィールド(データ)とメソッドを一つにまとめたもの」という説明図があるだろ?

この図で、オブジェクトの中に、いくつか箱があるけど、

なんだ。

オブジェクトそれ自体特別ものじゃなくて、ただの箱でしかない。データ構造一種であることが分かっただろうか?

今の段階では、難しく考えなくていい。

ややこしくなるのはこの後だ。オブジェクトを使うときに「なんでそんな使い方するの?」という段階になってからだ。(気を緩めないように、ちょっと脅しておこうw)

 

クロージャ

が「オブジェクト」なら、その反対に、

もあるんじゃないか?と思ったそこのキミ。正解!

「処理」に「データ」をくっ付けた仕組みもあって、「クロージャー」と呼ばれてる。

 

クロージャ(closure)、関数閉包はプログラミング言語における関数オブジェクト一種

いくつかの言語ではラムダ式無名関数で実現している。

引数以外の変数を実行時の環境ではなく、自身定義された環境(静的スコープ)において解決することを特徴とする。

関数とそれを評価する環境ペアであるともいえる。

オブジェクトインスタンス変数とは、オブジェクトインスタンスではなく関数の呼び出しに束縛されているという点で異なる。

この説明文読んで、クロージャーの仕組みがスパッと理解できる初心者っていねーだろ?(いたらビビるw)

Wikipedia説明は「何言ってるか分かんない」状態だけど、サンプルを動作させてみれば、仕組みは簡単に分かります

 

第1級オブジェクト

ここまでの説明で、「プログラミング言語は、機能自由拡張できる」と分かっただろう。

から、「データ」と「処理」の扱い方を工夫する歴史の中で、「オブジェクト」という仕組みを閃いちゃった奴がいたんだねw

 

オブジェクトの特徴をもう一度振り返ってみよう。

普段は「データ」をぶち込んでおく箱の集合体に、処理も入れられるように改造しちゃったのが「オブジェクト」だったね?

…ってことは、処理とデータ水と油みたいに別々のものじゃなくて、実は処理もデータと同じように扱えるものだってことになるよね?

そうなんです!

実は「データ」と「処理」は全然別なものじゃなくて、同じようなものとして(扱おうと思えば)扱えるんです!

それで、このデータとして扱えるような「処理」に名前を付けてあげて、「第1級関数」とか「第1級オブジェクト」と呼んでます

(「第1級データ」という呼び名が使われてないのは、データデータとして扱えるのは当然なので、わざわざ第1級データという呼び名を付ける必要がないから)

 

第一オブジェクトファーストクラスオブジェクト、first-class object)は、あるプログラミング言語において、たとえば生成、代入、演算、(引数戻り値としての)受け渡しといったその言語における基本的操作制限なしに使用できる対象のことである

ここで「オブジェクト」とは広く対象物・客体を意味し、必ずしもオブジェクト指向プログラミングにおけるオブジェクト意味しない。第一オブジェクトは「第一データ型に属す」という。

言語によって異なるが、第一オブジェクトは概ね次のような性質もつ

上記説明文の中で「制限なしに使用できる」って部分が重要

 

第一関数(first-class function、ファーストクラスファンクション)とは、関数第一オブジェクトとして扱うことのできるプログラミング言語性質、またはそのような関数のことである

その場合その関数は、型のある言語では function typeなどと呼ばれる型を持ち、またその値は関数オブジェクトなどになる。

具体的にはプログラムの実行時に生成され、データ構造に含めることができ、他の関数引数として渡したり、戻り値として返したりすることのできる関数をいう。

上記説明文の中で「データ構造に含めることができ、」って部分が重要

 

フリーパスでどこでも入れちゃうVIPみたいだからファーストクラス(第1級)と称されてるんだね?

ドラえもんの「オールマイティーパス」を持ってる奴みたいなのが、「第一オブジェクト」「第一関数」ってわけ。

ドラえもんオールマイティーパスは、どこでも入れる通行証です。

これを係員に見せるだけで、どんな交通機関でも無賃乗車できて、どんな有料施設でも無料入場できます

通常なら入ることの許されない立ち入り禁止区域でさえ入れます

 

 

オブジェクトまとめ

 

混乱するようなら、上記説明で、クロージャー以降の話はとりあえず無視してください。

 

参考

オブジェクト説明をどうしようか?と考えるとき、参考にしたページも紹介しておきます

 

 

次回、オブジェクトの使い方=オブジェクト指向プログラミングについて学びましょう。

 


anond:20181015215004経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

ポンコツおっさんSE転職事情

ハイスペックな人のエントリだったり、さらにいやいや君もずいぶんすごいね

というエントリだったので、本当に普通な感じで埋もれているエンジニア転職した時の話をしようと思う。

現在私は同業界大手企業で働いている。転職結果としては年収も大きく上がったし、

職場環境も申し分ないので成功したと思っている。

 

スペック転職時)

 年齢:39歳

 

 <前職>

 中堅の独立系SI企業WEBSierもやってるような感じ)社員600名程度

 に所属していた。勤続は7年目

 

 <技術力>

 技術力はほんとに並の下程度。

 JavaとかPHPとかやっていて、PHPがメインだったかな。主にWEBサービスを作ったり、社内WEBシステム作ったりしてた。

 プログラミングの基礎はあるし、SQLやその他DB知識もそれなりにある。サーバー知識あんまりないし、

 Linuxコマンドは正直ちょっと苦手だし、AWSとか触ってないし、なんならApacheだってそんなに詳しくない。

 ググっていつも解決する。フルスタックエンジニア?なんだそれ?こちサーバーサイドエンジニアだ、文句あんのか?

 

 新しい技術言語は基礎があるので飲み込みは早い方だと思う。なので対応力はある方だ。Rubyでもpythonでもコード見れば読めるし、

 大抵のことは理解できると思う。でも業務では使ってない。JQureyもまぁ普通に使えるけどJSコードとかたぶん汚いと思う。

 

 色々と新しい技術をググって記事見たりして「わかった気になるタイプ」だと思う。36歳くらいでやっと「デザインパターン

 知らないとやばいんだ。勉強しないと!と焦って本だけ一応読んで「わかった気」になった。

 

 ここまで読めばわかると思うけどエンジニアとしてはだいぶ「ポンコツ」だ。

 でも仕事のためにやってるエンジニアとか結構こういう人が大半な気もするんだよね。

 立ち位置は開発リードとか設計とか上流も少しやってた。年齢のせいもあると思うけど、

 まぁうまく立ち回って仕事してた感じだと思う。コミュ力はそれなりにある方だと思う。

 もうエンジニアとかお前が名乗るなよとか言われそうだな。。。すまん。

  

転職活動の経緯

転職理由

 このまま、今のポジション仕事を続けてたら永遠に新しいこととか他の言語を使って業務をすることができそうになかったから。

 嘘だ、人間関係だ。ほとほと同僚、後輩、パートナーに愛想が尽きたからだ。それと上司やその上の部長にもだ。

 客先で顧客と一緒に仕事をしてたが顧客側の人はほんとにまともで良い人ばっかりだった。転職する時にそれだけ、ちょっと寂しくなったな。

 ポンコツながらプロジェクトでは納期を守り何とかやり抜いてきたが、全く評価されない現実もあり、それも嫌だった。あと、給料安い。

 表向きはいろんな理由があるだろうけど、転職する人の理由はきっとこれが現実だと思う。

 

概要

 転職を決意

 ↓

 とりあえずビズリーチよさそうねとか何も吟味せず登録

 ↓

 エン転職にも登録(以前使ったから)

 ↓

 DODAリクルート系は良い思い出が一切ないので登録してない。

 ↓

 ギークリーというところからビズリーチ経由で勧誘

 ↓

 一応そこの担当面談してギークリー利用

 ↓

 ビズリーチギークリーとエン転職転職活動

 ↓

 ビズリーチ経由でA社で外資強めの転職エージェントに会う。

 ↓

 ビズリーチ経由でB社で金融ITに強めの転職エージェントに会う

 ↓

 最終的にA社で3社応募して、2社内定をもらい転職した。

<詳細と雑感>

 転職しよう!と思ってからとりあず動けーーー!って感じで動いた感じです。

 総応募数は覚えてないけど30~50社くらいだったと思う。書類で超落ちる。年齢のせいも大きい。

 エン転職スカウト全然ダメだった。めぼしい企業がなかったし、年齢のせいか知らんけど、

 タクシーちゃんとかトラック運転とかそういうのも来てた。

 ギークリーから応募したのが一番多いと思うけど、とにかく手あたり次第に紹介してくる。

 よさそうな企業もあったけど、面接まで行ったのは4社程度ですべてお祈りだった。

 2次や最終までは行くが、いまいち紹介された企業自分志望動機を合わせる作業がどうにも苦手でうまく行かなかった。

 ギークリーはほんとに求人が多いから、たくさん見て選びたい人には向いてると思うけど、自分には向いてなかったな。

 他にもビズリーチ経由で4社くらい直接カジュアル面談があったけど、有名なY社とか、運輸系のY社のシステム会社とか、

 印刷系のD社の子会社とか、どれも最初カジュアル面談で、それ以後連絡なかったなぁ。

 カジュアルと言いながらガチ面接なこともあったな。

 

 そんな感じで行き詰って2か月。心機一転また別のところ!というのと、

 自分でもう一度ポンコツなりに職務経歴書を頑張ってブラッシュアップし、面接対策もして、改めてA社とB社とつながった。

 B社からの紹介はとても面白い会社だったし、一次面接もかなり好感触だったのだが、なぜかその後に論文筆記があり、

 書いて出したら、落ちた。どうやら思想が合わなかったらしい。

 A社から紹介されたのが、医療系のWEBサービスの会社と誰もが知ってる大手企業

 どうやら大手企業とは結構つながりのあるエージェント会社だったみたい。

 自分大手に行けるか半信半疑だったが、面接対策結構しっかりしてくれて助かった。

 同じ質問面接でされたので、うまく答えることができたと思うし、職務経歴書も一緒に見てくれた。

 そして、2か月でこの医療系の会社大手から内定を頂いた。転職活動は実質4か月くらい。

 どちらも良い会社だったので、本当に迷ったが、大手の方にした。

 断るのもエージェントがやってくれるのでこれも結構気持ちが楽だった。

 

<振り返って思うこと>

 ポンコツなりにアピールできるポイントがあれば、それをしっかりアピールするような職務経歴書を作ったり、

 私の場合は3回目の転職だったので、今までの経歴をきちんとよどみなくアピールできるような練習有効だった。

 転職活動初期は全然対策してないこともあって、やっぱり落ちたのかなと思う。

 だんだんエンジンがかかって、面接にも慣れていき、最終的に大物ゲットできた感じだ。

 そして、面接ではやっぱり自分はできる奴だ!ということをちゃんアピールした方がいいと思った。

 謙遜かいらないし、こういう職務なんですができますか?と言われても、普通に全然問題ないです。くらいに言ってもいいと思う。

 

 ハイスペックエンジニアかいやいや十分すごいですわ的なエンジニアは、自分活動して、普通に交渉もして、

 自分がより有利な環境を手に入れることができると思うけど、私のようなポンコツ普通にエージェント使って、

 普通に応募して、面接対策しっかりして、志望動機ちゃんと頑張ってたくさん考えて、ちゃんと喋る練習して、それで行けば結構いけると思う。

 落ちるのはやっぱり職務経歴書がまだちゃんと練れてないのと、面接練習や、志望動機が甘いんだと思う。そこを頑張れば良い環境転職できると思う。

 

 おススメのエージェントとかは特にいかな。自分に合ったもの自分転職活動しながら、見つけるのが良いと思う。

 1つ言うならエージェントを1つに絞らないことかな。忙しくなるけど、いろんな所と付き合って、自分に合うところを見つければいいと思う。

 そういう意味ではビズリーチは大小さまざまなエージェント会社があり、そこから連絡がバシバシ来るので登録しておくとよいかもしれないです。

 

<まとめ>

こんな感じだ。読み返すとあんまり参考にならないかもしれない。。。

私は前の会社全然評価されなかったが、今の大手に移ったら、普通に評価が上がって、給料もしっかり上がった。

環境次第で人の評価って全然変わるし、所詮評価する側のフィルターをかけた評価なんてやっぱり気にしなくていいんだと思った。

実際前職の部長退職の旨と転職先の話をした時に「子会社ですか?」とか言われたし、「いえ、本体です。」と答えたら「マジで?」という顔をしてた。

部長フィルターでは自分評価はそんな感じだったんだなと実感した。

ももちろん良いフィルターをかけて評価してもらっていると思うけど、自分にとってどっちが良いかは明白だし

その良いフィルターが本当になるようにもっと努力したいと思う。

 

今の市況ならほんとに転職すれば年収上がるくらいの状況だし、勤続3~5年以上で、

自分の現状に不満があるなら、いっちょやってみるのも良いかもしれません。

誰かの参考になれば幸いです。

C言語malloc()はエラーチェックいる?

https://qiita.com/hamichamp/items/7b7a7ee091a6856ac900

この記事ブクマ集めていて思い出したけど昔からの疑問。

RubyなりJavaなり、ほかの言語だとメモリが足らないのをハンドリングしてエラー処理しろなんて言われないのに、なんでCだけ言われるんだろう。

普通out of memoryなんて、例外キャッチしないでただ落ちるだけだよね。

Rubyとか現代的な言語でも、巨大なデータを扱うときメモリのことを意識するだろうけど、ちまちました文字列操作ときメモリが足らなくなるかもなんて考慮する人いないよね。

2018-10-16

プログラミング言語って何個あるんだろう

GitHubで分類されてるプログラミング言語は480ある。ただそれはGitHubによって認識されてる分だけであって、よりマイナーものを考えればもっとあるだろう。

まり毎年世のオタク研究者学生たちが新しい言語を作ってるのを加味すると、

毎年平均1000言語程度は生み出されてるんじゃ無いだろうか。

そのスピードは昔ほど衰えてるだろうけど、大体今までで1万個くらい作られてるんじゃ無いだろうか。

anond:20181016204948

独自言語独自設定盛り沢山だから付いていくの大変なんだよね。

最高に面白いけど。

増田プログラマー養成講座 その4 子ども向け教材「Scratch

今回は、子ども向けプログラミング学習教材「Scratch」(スクラッチ)を使って、一番簡単構造プログラミング手法を学んでみよう。

 

Scratchとは何か?

Scratch (スクラッチ) は、MITメディアラボが開発したプログラミング言語学習環境である

初心者最初に正しい構文の書き方を覚えること無く結果を得られる、遊び心のある実験インタラクティブアニメーションゲームなどの製作を通してさらなる学習のやる気を起こさせることを意図している。

 

 

タイルプログラミングとは何か?

プログラムのパーツをブロックで並べて、プログラムを作る方法

スクラッチタイルプログラミング一種

プログラミング視覚的に理解やすいので、初心者お勧めです。

 

オンライン版のScratch

スクラッチオンライン版とオフライン版がある。

ここではインストール不要で、ブラウザー上で動作するオンライン版を使ってみよう。

(※オフライン版を使いたい場合は、「Scratch インストール」で検索すれば、インストール方法が紹介されている。)

 

構造プログラミングのパーツを並べてみる

順次(上から下へ並べた順番に処理を実行していくこと)

10歩動かす」などのパーツを上から下へ順番に並べてつなげればOK

 

反復

オレンジ色の「制御」のところにある「10回繰り返す」というパーツを使えばOK

Javaの「for」に相当する機能

 

分岐

オレンジ色の「制御」のところにある「もし[ ]なら」というパーツを使えばOK

Javaの「if」に相当する機能

 

スクラッチの遊び方

Scratch 使い方」で検索すれば、スクラッチの使い方がいろいろ紹介されている。分かりやす記事YouTube動画を探して、いろいろ練習してみよう。

 

参考書

Amazon.co,jpで「本 Scratch」を検索すれば、いろいろ参考書が出てくる。

日本Scratch第一人者と言えば阿部和広先生だろう。とりあえず彼の本を読めばScratchの使い方は理解できるはずだ。

 

まとめ

 

以上で、構造プログラミングの基本である順次」「反復」「分岐」の使い方が理解できた。

次回は、手続プログラミングの後半であるオブジェクト指向プログラミング」を学習してみよう。

 


anond:20181015215004経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

増田プログラマー養成講座 その3 構造化=順次、反復、分岐

それではさっそく、一番簡単手続プログラミング言語の使い方を学んでみよう。

 

今回学ぶこと

 

順次」「反復」「分岐

構造プログラミング」でGoogle画像検索すると、分かりやすそうな図があった。

 

  1. 順次:上から下へ向かって、処理を並べた順番に実行していく動作
  2. 反復:同じ処理を決められた回数や、一定の条件の間繰り返す動作。→プログラムでは「for」「while」などで書く。
  3. 分岐:条件によって、別の処理を行う動作。→プログラムでは「if」「switch」などで書く。

 

買物のメモ

買物を例に挙げて、「順次」「反復」「分岐」の3つの動作を使ってみよう。

  1. 順次:(1)スーパーマーケットに行く。(2)カゴを持つ。(3)売り場に行く。(4)商品をカゴに入れて、最後レジで精算する。
  2. 反復:(4)牛乳を1本取る。これを3回繰り返して、カゴに3本入れる。
  3. 分岐:(5)卵が特売で150円未満だったら買う。150円以上なら買わない。

このように構造プログラミングは、人間動作と同じだ。やることをズラズラ書いていけばいいだけだ。

 

準備

要件定義

プログラム目的をハッキリさせておこう。

「最低限これだけはないとダメ」という項目を箇条書きにしておこう。

買物プログラムなら、

などが必要だろう。

 

フローチャート

単純なプログラムだと処理が少ないので混乱しないが、複雑なプログラムだと処理が多くて混乱するだろう。

あらかじめ、処理を図に書き出しておくと混乱せずに済む。その図が「フローチャート図」だ。(フローチャート図の書き方は自分で分かりやす説明検索してみてくれ。説明省略)

 

実務では納品時の成果物としてフローチャート図の提出を求めらていなければ、面倒なので作る必要はない。自分のための図なら、ノートにチャチャっと落書き程度に流れ図を描けば十分だろう。

 

疑似コード

フローチャート図を基にして、実際のコードを書く前に、人間言葉で「疑似コード」を書いてみよう。

 

擬似コード(pseudocode)とは、アルゴリズムなどを、架空の非常に高水準なプログラミング言語(擬似言語)で記述したものである

擬似コード:

if クレジットカード番号が有効

  番号と注文で取引をする

else

  エラーを表示する

end if

 

計画ができあがったら、詳細を考えます

個人的に最良だと思う方法は、プロジェクトの各パートにおいてなにが求められるのかを具体的に書き出すことです。

このとき、まだコードを書かずに言葉だけで記述するのがカギです。

これはpseudocode(疑似コード)と呼ばれます

pseudocodeなら構文を気にすることなく、プロジェクト動作だけに思考を集中できます

 

カウントダウン時計場合なら、書き出した内容は次のようになるでしょう。

 

内容を書き出したら、次は以下のように、各パートごとに小さく分解していきます

いったんロジックを書き出してしまえば、コードを書くのが格段に楽になります

 

要するに「擬似コード」とは、人間意味が分かる言葉コードっぽいものをあらかじめ書いておき、後でそれを具体的なプログラムコードに書き換えていく方法だ。

いちいち面倒だけど、最初慣れないうちは、こうすれば間違えにくいだろう。

 

文芸プログラミング

擬似コードと似た方法として「文芸プログラミング」という方法もある。

面倒なので実務では使わないが、このような補助的手段もある、と紹介しておく。

 

アノテーション

Java関係する点で考えると、Javaには「アノテーション」(注釈)という機能がある。

プログラムに「注釈」となる記述をちょこっと書いておくと、プログラム動作について細かな指示が出せる機能だ。(学習が進んでから、後で「Java アノテーション」を検索して学んでみよう)

 

次回は、子ども向けプログラミング教材「Scratch」を使って、実際に構造プログラミングの3つの動作練習してみよう。

 


anond:20181015215004経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

増田プログラマー養成講座 その2 プログラムデータ+処理

プログラムとは何か?

プログラムは、コンピューター電子計算機)に与える指示書のこと。

人間プログラムコード)を書いてコンピューターに与えると、コンピュータープログラムに書かれている命令を実行する。

 

コンピューター電気仕掛けの召し使いだ。いくらコキ使っても誰にも文句を言われない。パソコンを10台持っていれば部下が10人いるようなもの。こいつらに仕事やらせれば人間様は遊んで暮らせる。どうだ?命令してみたくなっただろう?

しかし、こいつらはアホだ。正確に命令を出さないと、ほんの少しでも間違っていれば、間違ったなりの動作しかしない。融通が利かない頑固者だ。命令するときバグ(間違い)がないように注意しよう。(命令するのも一苦労なんだよな~w)

 

プログラム構成要素

プログラムは、

  1. データ
  2. 「処理」

の2つから成り立っている。それ以外の要素はない。基本はたったの2つだけなら、シンプルで分かりやすいだろ?

 

問題は、この「処理」をどうやって書くか?なんだ。

「処理」の書き方を巡って、人類試行錯誤を繰り返し、いろんな書き方を編み出して来た。

現代の主な書き方(プログラミングパラダイム)には、主に2つの流派がある。

 

命令型と宣言

  1. 命令プログラミング - Wikipedia https://ja.wikipedia.org/wiki/%E5%91%BD%E4%BB%A4%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
  2. 宣言プログラミング - Wikipedia https://ja.wikipedia.org/wiki/%E5%AE%A3%E8%A8%80%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0

 

さらに細分化すると4つある。

  1. 手続型:C、Javaなど
  2. 関数型:LispHaskellなど
  3. 問合型:SQL
  4. 論理型:Prolog

 

手続型は命令型に属する。関数型、問合型、論理型は宣言型に属する。)

これら4つは見た目がちょっと違うけど、「チューリング完全」と言って、計算できることは同じと保証されている。(同じ計算能力がある)

頭の悪いプログラマーはそれぞれの優劣を論じて宗教戦争をやってるけど、賢いプログラマー必要に応じて全部使えるようにしているので、どれを使っても問題ない。

まずは、直観的に分かりやすい「手続型」で練習してみよう。その後、問合型(データベースの操作)、関数型(参照透過性の活用)を練習してみよう。


(ここまでの話は、歴史用語、全体を俯瞰した地図の話だから、今の段階で理解できなくてもOK

 

手続プログラミング言語学習項目

次の2ステップに分けられる。

  1. 構造プログラミング - Wikipedia https://ja.wikipedia.org/wiki/%E6%A7%8B%E9%80%A0%E5%8C%96%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
  2. オブジェクト指向プログラミング - Wikipedia https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0

 

この2点を理解したら、Javaコードを書ける。

次回、この2つを見てみよう。

 


anond:20181015215004経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

https://anond.hatelabo.jp/20181016081733

まあ少なくとも今回のケースではググって出てくる言語だろ

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん