「関数型プログラミング」を含む日記 RSS

はてなキーワード: 関数型プログラミングとは

2019-03-02

オブジェクト指向.vs.関数型プログラミング

みたいな論争をしたがる人がいるけどPGの98%はどちらも理解できないから、めちゃくちゃ無駄だよな。

2019-02-28

Staticおじさんは正しい

関数型プログラミングなんてstaticおじさんじゃん

2018-12-11

岡部健先生の思い出に捧ぐ

数日前、技術ブログ: 30分でわかるJavaScriptプログラマのためのモナド入門 というエントリホッテントリました。

JavaScript関数型プログラミング圏論的肉付け。ほう。となってぱっと開いてざざっと読んで、うーんとなってしまった。unit-flat の話だったら設計上それ以上 flat作用させても不変のエンドポイントがないと不味いよねぐらいで設計できてしまう。

著者を見る。岡部 健。

あああ~。

関数型プログラミングに目覚めた!IQ145の女子高校生の先輩から受けた特訓5日間(合わせて読みたい 『関数型プログラミングに目覚めた!』のレビュー(Day-1)から始まる3篇の誠実なレビュー) で有名なあの岡部先生じゃないですか。

お元気そうで何より。

ところでブックマークコメント性質に関する現時点での事実なんですが、53あるブクマのうちコメントは4件のみ。興味深い話題なのでもっと感想なり議論なりをしても良さそうなもの

一番古いコメント

stq2050 id:beatdjam なにがやばいのか知らんが、その侮辱呼称たいがいにしとけ。とりあえず運営通報の上、コメント削除依頼した。

というもの、beatdjamさんブコメは見られないので自主的に消したか運営に消されたんでしょうね。まあ侮辱は良くないので仕方がない。だめですよ。

次に古いのが

techhack なぜ他のモナド解説はこのようにわかやす説明できないのかが逆に謎

なんでなんでしょうね。他の人達説明能力が低いんでしょうかね。あるいは説明が凡愚たる想定読者達に合わせて省略されたりしてるんでしょうかね。

言及したいのは以上2つのアカウントになります

何故かと言うと

http://b.hatena.ne.jp/stq2050/ を見ると本記事へのブクマが2ブクマめ。

http://b.hatena.ne.jp/techhack/ を見ると本記事へのブクマが3ブクマめ。

いやー。若々しいですね(アカウントが)。

非常に味わい深い。

2018-11-27

プログラミングの入門はPythonでOK?

これからプログラミング勉強しようと思う人は、その前にポール・グレアムの「ハッカー画家」という本を読んでみて欲しい。(一部はネットでも読める)

 

時間がなければ一部のエッセイだけでもいい。

エリックレイモンドはエッセイハッカーになろう」の中で、 他のいろいろなアドバイスに混じって、ハッカーになりたい人はどんな言語勉強すべきかを述べている。

まずPythonJavaから始めよ、学ぶのが容易だから

真剣ハッカーさらに、UnixをハックするためにCを学び、システム管理CGIスクリプトのためにPerlを学ぶべし。

そして本当に真剣ハッカーLispを 学ぶことを熟慮すべきだ。というのも:

 

LISPは、それをものにしたときのすばらしい悟り体験のために勉強しましょう。

この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。

たとえ、実際にはLISPのものをあまり使わなくても。

 

この意見を参考にするなら

  1. Python
  2. Java
  3. C
  4. Perl
  5. Lisp

という5つが挙げられる。

大事なことはいずれにせよ、1度はLisp関数型プログラミング言語)を学ぶべきだということ。

 

Lisp教科書

今ならこの本が分かりやすいと思う。

時間があれば、関数型プログラミング言語Lispの他にOCamlもやってみよう。

 

Lisp以外ならPython

Lisp以外のプログラミング言語も含めるなら

  1. Python
    1. スラスラ読める Pythonふりがなプログラミング https://www.amazon.co.jp/dp/4295003867/
    2. 独学プログラマー Python言語の基本から仕事のやり方まで https://www.amazon.co.jp/dp/4822292274/
    3. レトロゲームエンジン Pyxel でプログラミングを始めよう! http://b.hatena.ne.jp/entry/tkitao.hatenablog.com/entry/2018/11/24/185346
  2. SQL
    1. スッキリわかるSQL入門 第2版 ドリル222問付き https://www.amazon.co.jp/dp/4295005096/
    2. おうちで学べるデータベースのきほん https://www.amazon.co.jp/dp/479813516X/
  3. Lisp
    1. Land of Lisp https://www.amazon.co.jp/dp/4873115876/
    2. On Lisp http://www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/
  4. Prolog
    1. Prologへの入門 https://www.amazon.co.jp/dp/476490165X/

という順番にするとバランス良く学べるだろう。

 

時間がないなら消去法で

  1. Python
  2. Lisp

の2つでもいいだろう。

2018-11-18

関数型プログラミングに変えた方がテストが楽

関数型で副作用を分離=参照透過性を活用すれば、テストの組み合わせ爆発は避けられる。

変数をすべて定数にしてもプログラムは書ける。

2018-11-01

関数型プログラミングの教材は何を使ってますか?

プログラマー増田は、新人初心者)に関数型プログラミングを教えるとき、教材(言語書籍ツールなど)には何を使ってますか?

  1. まずは「Lisp」か「Scheme」を使ってみる。SchemeならRacket(DrScheme)で練習してみる?
  2. OCaml」で型を意識して練習してみる。
  3. Haskell」でコテコテ関数型をやってみる。
  4. その後、必要に応じて他の言語関数型プログラミングをやってみる。

2018-10-21

普通プログラマ関数型プログラミング絶対理解できない

実を言うと、普通プログラマオブジェクト指向以前のプログラミング理解できないんだけど、あれらはまだ手続き的な要素を内在してるから、そっちだけを受け取ることはできる。

それまで手続き的な要素+宣言的な要素だったプログラミングが、関数型プログラミングへと移行する時に手続き的な要素を切り捨てたのね。より純粋手法進化するために。

から、それまで手続き部分だけを受け取って喜んでた普通プログラマは急にわからなくなりヒステリーを起こした。

だけど、プログラミング上級者はオブジェクト指向以前にも宣言的な部分しか見てないか普通プログラマが何を騒いでるのかわからない。

普通プログラマって、部品化の凄いやつが関数型プログラミングになるとか勘違いしがちだけど(staticおじさんもその変奏)、全く質の違うもの

部品化って、重複コードをひすたらサブルーチンに括り出すようなもの副作用がある。

日本SIer(日立NEC富士通とか)って教養がない極東田舎者から副作用理解できない。すぐに「部品化」を持ち上げる。怖いんだろう。自分理解できないプログラミングが。モナドですら大多数は理解できないんだものあん教科書的なものですら。

とにかくアジアってIT後進国なのね。トップ日本ですらこうなのだから。"NTT"データHaskellレガシーシステム脈絡なく解析してホルホルしてるレベルもの

まず日本に生まれた時点で、関数型プログラミング理解するには圧倒的に不利。こんなこと言うと、「普通プログラマにもわかやす説明できるのが一流ダー」みたいな恥ずかしい駄々っ子が沸いてくるけど、プログラミングって歴史上一度も大衆相手にしてないので。

昔は研究機関IBMで、今はMSGAFA

OSS恩恵で、普通プログラマコンパイラ無料で使えるようにになっただけで泣いて喜ぶべき。

そしてあれは、将来のスポンサーコミッタ入り口としてやってるの。1000人に1人、将来コミュニティに貢献する人材いるかもしれないと信じて。

シリコンバレー住人にもOSSコミッタにもなれない普通プログラマはまあ、おこぼれで"文化的"コスプレしてQiitaでもやればいいんだと思うよ。

anond:20181021093430

2018-08-15

https://anond.hatelabo.jp/20180815005242

古いスター見られないから新しくスクリプト書いた。listStarURLs(ユーザ名, ページ数)で与えられたユーザブクマを与えられたページ数まで見て自分starを押したブコメリストアップする。

https://pastebin.com/4TLHvyQB

これで出てきたスター一覧を上のスクリプトと組み合わせれば与えられたユーザ自分がつけたスターをお手軽に全削除できる。

Qiitaかなんかで「JSではforは使わず関数型プログラミングが素晴らしいのだ!(ドヤァ」という記事に「いやいや逐次awaitしたいときそれじゃ困るんだよ(キリッ」みたいなブコメがついてて大変生暖かい気持ちになったことを思い出したのでfoldしてみたけどあのときブコメしていた関数()フロントエンド()プログラマー(笑)の皆さんは別に見てはないだろうなw

2018-08-10

anond:20180810151521

関数型プログラミング使ってないでしょ?

バリバリに使ってるが

実務でプログラム仕様検討なりレビューなりするときに、お前みたいなこと言いだすやつがいるとしたら邪魔しか無いが、関数型プログラミングで何作ってる人なんだ?

2018-03-19

anond:20180319171116

私がUNIX哲学を知ったのは、Elixirの本の冒頭に紹介されていたからでした。

UNIX哲学関数型プログラミング親和性が高いと思いました。

 

構造プログラミング関数型プログラミング対応

 

関数型の基本は、小さな関数をつなぎ合わせて大きな処理を組み立てること。これは関数型でなくても真似できると思います

とか?私も試行錯誤中。それでも以前よりは設計で迷うことが少なくなりました。

 

設計に関するノウハウカタログみたいな本だと、↓この本がわりとまとまっていました。(1つ1つの項目の解説は少しなので、詳細は元ネタを当たることになります。元々はブログを本にしたようでしたが、今は閉鎖されてます。)

2018-01-23

特技=コア・コンピタンスがないと、他に何をやってもダメ!?

器用貧乏に陥らないようにしたい。

まずは自分の特技を確立して、その周辺技術を固めると、鉄壁の城を築けるだろう。

自由プログラミングを学べる時間があるなら、関数型プログラミングをかじっておいて欲しい。

 

関数型プログラミング 学習カリキュラム

OCaml

関数型プログラミング言語はいろいろありますが、基本を学ぶために、良い教材がある「OCaml」がお勧めです。

この本は、独学で関数型プログラミングの基礎を学ぶのに最適だと思います

 

Elixir

関数型プログラミング言語で、実用的なアプリ作ってみたいですよね?

Webアプリを作るのに「Elixir」という関数型プログラミング言語を使ってみませんか?

 

Pleroma

Elixirの使い方を学んだら、Twitterのような「Pleroma」というSNSを設置して、カスタマイズしてみましょう。

 

Phoenix Framework

Elixir、Pleromaで遊んだら、PhoenixオリジナルWebサービスを作ってみましょう。

 

副業

プログラミングを学んだら、まずは副業を始めてみましょう。

英会話ができるなら、欧米企業リモートワークをやれば給料も良いです。

(参考)https://anond.hatelabo.jp/20180112130526

私も機械学習ではなくシリコンバレーで働くWebエンジニアだけど、年収は43万ドルくらいだ。日本円にすると4800万円くらいだろうか。

付記 

うーん、ここまで書いて、これは素人最初に着手するべき事柄じゃないなーと反省。消すのももったいないか投稿しておきます

 

最初にやるなら、やっぱPythonかな?(最近話題AIでも、バインディング言語としてPythonが人気だし)

 

本屋で分かりやす入門書を探して、「これなら自分でもできそう」と思える本があれば、それをやってみたら良いと思います

そこで得た知識を足掛かりとして、次のステップに進める?

 

ゲーム制作

最初テーマは、「ゲーム」を作ってみるのはどう?

遊びながら学べるからプログラミングが楽しめると思います

言語ゲームを作ってみよう!的な本はチラホラあるようだから、それでいける?

 

anond:20180117031306

anond:20180123190750

2018-01-14

SEに知っておいて欲しいこと

日本システムエンジニアが成長して、日本経済の発展に貢献して欲しい。

SEに役立つ知識を考えてみる。

勉強法

勉強は(1)興味、(2)教材、(3)時間、の3つがあれば誰でも一定の成果は出せる。(1)がなければ(2)(3)は宝の持ち腐れになる。

心理的安全性

社長リーダー仕事はお膳立て=メンバーが働きやす環境を整えること。「心理的安全性」を確保。

コミュニケーション

ステークホルダーと円滑な対応ができるように、アサーティブコミュニケーション、DESC法を体得。

プロジェクトマネジメント

段取り八分」=仕事ができるやつは段取りができてる。PDCA、OODAで計画を実行。

関数型プログラミング

組合せ爆発でテスト地獄に陥らないように、副作用を分離&管理しておく。

英語

ITの文献は英語が多いので、最低限英語ドキュメントはスラスラ読める程度に英語練習

事業の育て方

作る前、作る最中、作った後のプロセスを知っておく。

 

不勉強人とは一緒に仕事をしたくないからね?(足手まとい)

2017-11-24

再帰を使う理由

プログラミングには様々なパラダイム(考え方)があります

 

構造プログラミングでは

  1. 順次
  2. 分岐(if)
  3. 反復(for、while)

命令を並べます

 

同じことを関数型プログラミングでは

  1. 順次:(関数の)合成
  2. 分岐パターンマッチ
  3. 反復:再帰

で実現することができます

 

両者の違いは、代入の有無=参照透過性の有無の違いです。

関数型プログラミングでは基本的に代入なしで処理します。そのため反復回数をカウントする変数カウントアップを代入しなくても、終了条件を指定して再帰処理を行えば反復できます。(反復のカウント変数がない代わりに、関数型の「再帰」では必要に応じて「アキュームレーター」という仕組みを使って、途中の計算結果を保持することもできます。)

再帰で繰り返しを表現するのは、関数型プログラミングの側面を出した説明と言えるのでないでしょうか?

 

関数型プログラミング入門書として「プログラミングの基礎」という本が分かりやすいです。

https://www.amazon.co.jp/dp/4781911609

2017-11-05

Webフレームワーク選定の悩み

Webアプリを作るとき何を基準にしてプログラム言語Webフレームワークミドルウェアを選定していますか?

RailsCoC:convention over configuration)以外の手法活用して、開発を高速化するにはどうすれば良いでしょうか?

 

希望条件

  1. 素早いプロトタイピングscaffold機能など
  2. テストコスト削減:関数型プログラミングモジュール手法
  3. 性能:コンパイル型の言語

…こういう条件を備えていれば良いかな?

 

フロントエンド

  1. JSGUI作成Vue.js等のSPAフレームワーク

 

バックエンド

  1. データ永続化ストレージCRUD機能を用意できれば何でも良い?

 

試作

  1. Railsプロトタイプを作りデザインスプリント実践

 

本番

  1. 形が決まったらGolangGCPで作り直して本番投入

プロトタイプを作り直す手間を省きたい。プロトタイプと本番を同じツールで作りたい。)

 

サーバーAWSバックエンドElixir/Phoenixフロントエンド:Elmという組合せはあまり盛り上がっていないようなので、Rails代替手段は何が良いのか?気になります

2017-10-26

プログラマーのススメ

日本人は全員プログラミング勉強した方が良い。

プログラミング簡単だし、IT企業なら開業資金も少額で済む。(最初パソコン回線プリンターがあれば十分)

 

自己資金で数カ月で軌道に載せれるようなネタしかできない。

 

IT起業の道のりを教えてあげるよ。

  1. 下請け他人が作って欲しいものを作って納品する=資金を増やす自転車操業の段階。
  2. 自社開発:自分で作りたいものを作って売る=自転車操業からストックビジネスに移行する。
  3. レベニューシェア下請けと自社開発の中間ビジネスモデル

 

増田投稿できるってことは、パソコンぐらい持ってるんだろ?

本屋図書館に行って、自分に合った分かりやすプログラミングの本を探してみよう。

 

仕事を取ってくる方法は、ソニックガーデンのやり方を参考にしたら良い。 https://www.sonicgarden.jp/

プログラミング入門

最初に1冊だけ推薦するなら「プログラミングの基礎」という本をお勧めする。 https://www.amazon.co.jp/dp/4781911609/

買う前に、著者のサポートページを見てみると良い。

 

プログラミングパラダイム(考え方)には4種類ある。(【】内は基礎となる計算モデル

計算可能理論で見ると、どれもノイマン型のCPU上で動作する点で同じと言えば同じと言える。(優劣はない)

ただ、筋の良いプログラミング作法を身に付けたいなら、最初関数型を理解しておくことをお勧めする。

関数型の中で一番簡潔かつ強力なのはOCaml」というプログラミング言語だ。(HaskellをやりたければOCamlの次に学ぶスムーズ理解できる。)

関数型言語を学んだ後なら、手続言語はすぐに習得できるだろう。

WEB開発

WebサービスWebアプリを作るのは簡単

  1. HTML
  2. CSS
  3. JavaScript
  4. PHP
  5. MySQL
  6. Linuxサーバー構築)
  7. TCP/IPネットワークセキュリティーの基礎知識

を学べば作れるようになる。3か月勉強すればものになるよ?

 

Webアプリの特徴は、システム構造ネットワークを介して「サーバー側とクライアント側」に分割されていること。(REST - Wikipedia

Webアプリを作るってことは、一言で言えば、データベースラッパーCRUD)を作るだけの話。

アプリ開発

スマホアプリは、GUIの仕組みが分かれば簡単に作れる。

iPhoneアプリ

iPhoneの仕組みは糞だから後回しにしてもOK

XcodeじゃなくてAppCodeで作れるような段階に成熟したら手を出しても良い。

まあ、iPhoneアプリは金のためなら避けられない道だと思うので、苦労覚悟で取り組んでほしいw

Androidアプリ

Androidの中身はLinuxJavaアプリを開発できる。今ならJetBrainsIDEKotlinで楽々開発できる。

日本じゃAndroid貧乏しか使ってないので、あまり金にならないかも。

資金集め

お前偉そうなこと言うのなら、誰か起業してやろうというやつにガッツリ寄り添って手伝ってやりな。

俺はハゲタカじゃないから、無知な奴から搾取することはしない。

というか、自分のことで精一杯だから他人のケツ拭いまでやる体力・気力・理由がないw

 

他人から金をもらうと相手支配下に置かれる。だから資金調達お勧めしない。

自己資金で行けるところまで行って、ダメならまた社畜生活に戻ればいいだけの話。(パソコンインターネットがなくならない限り、プログラマーならIT業界で食っていける)

 

俺は、NPO法人とか社会起業しようとしてる奴だけ無償で手助けすることにしている。(プロボノ

社会起業家は、社会変革の担い手として、社会課題を、事業により解決する人のことを言う。

社会問題認識し、社会変革を起こすために、ベンチャー企業創造組織化経営するために、起業という手法を採るものを指す。

プロボノ(Pro bono)は、各分野の専門家が、職業上持っている知識スキル経験を活かして社会貢献するボランティア活動全般。また、それに参加する専門家自身

 

おまえが将来、社会起業することがあったら増田で呼びかけてくれ。

増田で返答できる範囲アドバイスするよ。頑張れ!

 

(追記)プログラミングパラダイムの4分類は「日経ソフトウェア」という雑誌説明表記しました。

ちなみにSQLチューリング完全なので、問合型言語でもプログラミング可能です。 https://qiita.com/utgwkk/items/20e887645da18e460fee

かに俺は理系だが情報学出身じゃない。独学でプログラミングを学びました。技術的な誤りがあったらブコメで教えてw(夜露死苦

 

(追記2)マイクロソフト関数型言語F#」は、OCamlベースにして開発されました。

現在マイクロソフトで開発中の量子コンピューターではF#が動く予定だそうです。(将来OCaml知識が役に立つでしょう) http://ascii.jp/elem/000/001/569/1569477/

 

(追記3 10/28ブコメレス全部拝見しました。様々なご意見・ご指摘をいただきありがとうございます。大変参考になりました。

「何か既視感があるな」と思ったら、最近ホリエモンが「保育士は誰でも出来る仕事」と言って炎上してたのと似てますね?→「プログラミング簡単」(プログラマーは誰でも出来る仕事

プログラミング学習や実務で苦戦されている方が多いようですね? だとすれば、それを改善支援するサービスニーズがありそう。

具体的にはディアゴスティーニ雑誌みたいに「週刊 プログラミングゲームを作る」みたいな教材があればいい。

https://deagostini.jp/

拝承いたしました。(微力ながら、皆様のお役に立てるよう作ってみたいと思います。)

 

(追記4 10/28OCaml関数型言語メリットについて

ちょっと前に岡部健氏(通称:毛の壁、kenokabe)が、関数型言語を巡りQiita等で論争を巻き起こしていましたが、俺は是々非々岡部氏の意見に一部賛同していました。(全部じゃない)

関数型言語を難しいものとして敬遠するのではなく、まずは使ってみて便利だったら嫌う必要はないと考えています

構造プログラミング命令型、手続型)との対応で言えば、関数型プログラミングは再代入なしでも、

で同じことができます。(優劣はない)

最初関数型プログラミング習得しておけば、参照透過性に注意を払う癖が身につき、テストときに「組合せ爆発」を少なくできます

関数型言語はたくさんありますが、OCamlが良いと思ったのは(自分にとって)分かりやすい教材が揃っており、学習コストが低いと思ったからです。

プログラミングを学ぶとき、独学ではなく、周りに聞ける人がいるなら他の言語でもOKです。

 

(追記5 10/28)「iPhoneの仕組みは糞」=storyboardが使いづらいと思いました。あくま個人の感想なので、Apple関係者信者の方はスルーしていただければ幸甚です。(Swift開発者クリスラットナー氏は、Appleからテスラ転職してしまいましたが、今後もAppleObjective-CからSwiftへの移行を押すのでしょうか?)

幸いiOSアプリ開発は分かりやす教科書がたくさんあるので、初心者でも心配無用です。iOSアプリ開発は(最初簡単なので)気軽に始めてみてくださいw

2017-09-11

まずは自分がプログラマーになってみよう!

山本五十六名言「やってみせ」

やってみせ、言って聞かせて、させてみせ、ほめてやらねば、人は動かじ。

話し合い、耳を傾け、承認し、任せてやらねば、人は育たず。

やっている、姿を感謝で見守って、信頼せねば、人は実らず。

まずは、あなた自身プログラマーになって、見本を見せることが第1歩です。

プログラマーに向いている性格

その後受託系の会社就職できたのだけど、人間関係がうまくいかなかったようで数ヶ月で辞めた。

鬱病気味になったみたい...。

どうやら、プログラミングという仕事の特徴について、あなた理解していないようですね?

 

プログラミングの特徴は、「コンピューター相手なので、嘘やハッタリが一切通用しない」ということです。

人間相手なら、適当に指示を出したり、いい加減な対応でも何とかなるけど、コンピューター相手だと1mmも融通が利きません。

 

従って、プログラマーに向いている性格は、

  1. 嘘をつかない
  2. 几帳面
  3. パズルを解くのが好き

という3点が必要です。

 

警察職務質問されて有名になった江添亮さんのブログ等を読んで、この方のようにネチネチと論理をこねくり回すのが好きなら、プログラマーに向いています

(例)本の虫: 麻布十番職務質問を受けた話 https://cpplover.blogspot.jp/2017/08/blog-post.html

関数型プログラミング

プログラムというのは、小さな部品を組み合わせて、大きなシステムが作られています

さな部品パズルピースに相当して、大きなシステムパズルの完成品です。

まり、大きな問題を小さな問題に分解して、1つずつ順番に問題をつぶして行く姿勢必要です。

 

プログラミングパラダイム(考え方)には、

  1. 命令
    1. 手続き型(Java等)
  2. 宣言
    1. 問合せ型(SQL等)
    2. 関数型(Haskell等)
    3. 論理型(Prolog等)

があります

 

命令型のプログラミング言語しか使えない人がプログラマーになると、テスト地獄に陥って、結果的鬱病発症やすくなるだろうと危惧しています

上述のように、パズルピースを組み合わせてプログラムを作るには、「関数型」の作法を身に付けておくと良いでしょう。

Haskell

関数型プログラミング習得するために、今なら「Haskell」または「OCaml」というプログラミング言語お勧めします。

HaskellOCamlは、良い参考書がたくさんあるので、本屋に行って実物を確かめてください。

 

Haskellを学んでみて、パズルピースを組み合わせる感覚理解できたら、あなたテスト地獄に苦しめられないプログラマーになれるでしょう。

もしも、Haskell理解できないようだったら、残念ですがプログラマーには向いていないかもしれません。

例外的に、あなたマゾで、テスト地獄残業徹夜楽しいと思える性格なら、Haskell理解できなくても大丈夫かもしれません。)

 

Haskellの教材(英語)を紹介するので、参考までに読んでみてください。

http://learnyouahaskell.com/chapters

(このサイトの内容は、日本語書籍「すごいHaskellのしく学ぼう!」として出版されています。)

 

Haskellは、順番に学べば必ず理解できるようになっています

もしも、Haskell習得できなければ、大きな問題を小さな問題に分解して解決していく作業には不向きな性格かもしれないので、他の仕事検討してはいかがでしょうか?

人生は一度きり。時間無駄にならないようにお気を付けください。)

 

あなたと友人が、無事Haskell習得して、テスト地獄を乗り超えるスーパーハッカーになり、日本IT産業を牽引されることに期待いたします。

 

(追記)

まずは、自分が作りたいアプリサービスを作ってみよう。

自分が作りたいプログラムすら作れない人が、他人希望するプログラムを作るなんてできっこいからねw

プログラマーが楽で簡単仕事だと思ったら大間違いですよ?)

 

(追記 その2)

関数型プログラミングマスターしておけば、OOPでも役に立つよ。(現実には、関数型もOOP必要に応じて投入するし)

iOS→「プロトコル指向プログラミング」「RxSwift」、Android→「RxJava」辺りのキーワードでググってみて。

別に皮肉とか宗教戦争で煽ってるわけじゃなくて、自分も苦労して辿りついた口だから、今から始める人には遠回りして、余計な苦労を味わって欲しくない。

 

(追記 その3)

他の人が書いてたけど、1人でプログラミングするんじゃなくて、2人(ペアプログラミング)や3人以上(モブプログラミングから始めたら良いかも。

Googleの「プロジェクトアリストテレス」で、仕事生産性改善するには「心理的安全性」が重要と分かり、プログラミング仕事もやり方が変わって来ています

ソニックガーデン倉貫さんの働き方が参考になると思います

https://kuranuki.sonicgarden.jp/2017/01/psychological-safety.html

 

(追記 その4)

記事が消えていたのでバックアップしておきます。(この投稿だけ読むと意味が分からなくなるため)

https://anond.hatelabo.jp/20170910205249

2017-09-10

■知り合いをプログラマにさせたいんだけど知恵を貸してくれ

プログラマって育休からの復帰しやすいだろうし、アルバイトよりは待遇いいし、勤怠ゆるいし、労力の割に楽ちんだと思うんだよね。

接客バイトで消耗するくらいなら、プログラマになればいいと思っているのだが、その知り合いは自身のことをプログラミングを不向きと評価しているらしい。私は、プログラミングに限らず物事時間をかければ習熟していくものだと思っているので、不向きではないと思うんだ。不向きというのは物理的に制限のある時だと思う。

その知り合いについて。

Vimはぎこちないけど使える。日常的にmacOSを使っていてターミナル操作はできている。cd, ls あたりは理解している。

趣味を含めてアプリケーションを完成させた経験はないが、ifやfor文などの基本構文は理解している。数年前にプログラミングスクールのようなところに半年間通っていた。その後受託系の会社就職できたのだけど、人間関係がうまくいかなかったようで数ヶ月で辞めた。鬱病気味になったみたい...。

何か成功体験があれば自然とのめり込んでと思うんだけどなかなかスイッチが入っていないみたい。

こちら側からは、プログラマーになれば?と直接は伝えてはなくて、素人でもプログラミングできましたみたいなネット記事シェアーしているくらい。(心理的リアクタンス避け)

知恵を貸して欲しい。

2016-05-25

http://anond.hatelabo.jp/20160521163144

ReactはJavaScript界隈の関数型プログラミング化の潮流で登場。

最近炎上している別の方面で、特にFRPと組み合わせると圧倒的なパワーを発揮すると一部では実例とともに指摘されている。

http://kenokabe-techwriting.blogspot.jp/2016/05/frptimeenginereactjsocaml.html

Reactは、関数型あるいは宣言型に書けるように用意されている。DOMは、「仮想DOM」として、JSJSX)上の「値」として統合されていて、それは自由に変形し、組み合わされ、リアクティブJSX上の仮想DOMからDOMリアルタイムマッピングされ描写される。

JQueryも、実DOM関数型で操作できるような拡張ではあるが、Reactのように宣言的に書くことは不可能

coffee scriptは、ES6登場までの過渡期の橋渡しみたいなもので、登場したのも消えたのも合理性がある。

React.jsは、関数型の潮流で登場したものでこれも合理性があり、この延長線上でさらに洗練された代替物が登場する可能性はあれど、このパラダイムが消えることはない。

2016-05-24

http://anond.hatelabo.jp/20160524120445

現実岡部氏を高く評価している特定の人たちも知っていますが、住井某その他の強弁に騙されるような馬鹿プログラマーばかりではないということです。

関数型プログラミングはまず考え方から理解しよう

http://qiita.com/stkdev/items/5c021d4e5d54d56b927c

とか、まさに岡部氏の路線のものじゃないですか。

Qiitaにこのような記事が登場するまで長い時間がかかりました。

なんとかFAQが参考になる、なんてもう誰も思ってないのでは?

2016-05-23

http://anond.hatelabo.jp/20160520110314

関数型プログラミング特権として考えていない前時代プログラマー

okabbe氏にGUIアプリ書けるのか?と詰め寄られてもなんともできない

もっとも裏では2ちゃんねるQiitaの裏アカウントで暗躍してるみたいだけど

2016-05-21

http://anond.hatelabo.jp/20160521163144

まずReactの特徴は、「状態データから変換してビューを生成する」スタイル統一されることにある。

これはjQueryをはじめとするDOM操作モデルでの、「初期状態ビューの作成」と「(イベントに伴う)状態変化からの部分ビュー変更」で構成するスタイルから脱却され、たとえば部分処理の積み重ねから想定外状態が生まれることを防ぐ。

SPAは、クライアントが自立した1プログラムとして状態管理する。サーバUIと同様の非同期なイベント発生源/イベント発行先の一つとして扱う。またReactとReduxの組は、データベースサーバサーバサイドページ生成のスタイルを、サーバブラウザでやるようにシフトさせたものともみなせるだろう。

そしてReact自体には、JSX構文もbabelもいらない。JSXタグを書くよりむしろReact.DOM.div({...},...)等で書いたほうがプログラミングでは扱いやすい。JSXサーバサイドページ生成のテンプレート言語利用文化に寄せた表現に過ぎないといえる。そして今ではbabelで変換する対象もES6 modulesのexport/importだけだ。これも分割ファイル対応のためにwebpackあたりを使うなら、ついでにbabelでES6 modulesも、といった程度のこと。

すでに一般に忘れられつつあるprototype, Dojo, Mooと同格であるjQueryのほうが五年後も活発にメンテされるのかどうか怪しいだろう。もちろん、レガシーものとしては残り続けるだろうが。

Reactのモデル関数型プログラミングモデルのものであって、そういう観点ではすでに何年も続いたものであり、React自体は消えたとしてもその手法は長く続くことになる。

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