Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

LL2017 プログラミング言語鑑定団 資料

5,607 views

Published on

Learn Language 2017 in ODC 「プログラミング言語鑑定団」セッションでの佐々木回答分をまとめた資料。

Published in: Software
  • Be the first to comment

LL2017 プログラミング言語鑑定団 資料

  1. 1. 2017/8/20 DMM.comラボ佐々木 健 Learn Languages 2017 in ODC 「プログラミング言語鑑定団」資料
  2. 2. この資料について ● Learn Language 2017 in ODC の 「プログラミング言語鑑定団」セッションでの 佐々木回答分をまとめたもの ● このセッションは、次に何の言語を勉強すれば良 いんでしょうか?、という、質問に対して4人の経 験豊富な鑑定人が答えていく、という形式。 ● 私以外の3名(鹿野さん、高橋さん、高野さん)は ガチのプログラマなのでまともな回答は彼らにま かせて、ネタに走るスタイルで攻めた。
  3. 3. 質問1 文系の大学4年生のときにプログラミングが好きに なり、独学で C と Java の初歩を学びました。卒業 後 Web 制作会社に入社し、HTML, CSS, JavaScript を習得しました。Web周辺だけでは将 来が不安なので、次に何を学ぶべきか考えていま す。アドバイスをいただけないでしょうか。
  4. 4. 解答1 Xamarin + C# そもそも独学で、C、Java を学んだけど、Web制作会社に就職、って 時点で微妙な気分になる。 そういう微妙な路線は継続していくべき。 これからはウェブを作ってても仕方ないので、アプリを作ろう。 とはいえ Swift、Kotlin とかのメインストリームっぽいのは微妙な生き 方には合っていない。 Xamarinなら、iPhone でも Android でも大丈夫だ。 「Xamarinするには、まず人脈♪」って、つぶやいてXamarin世界に飛 びこんでいこう。
  5. 5. 質問2 文系大学に通う学生ですが、昔からゲームが好き で、将来はゲームクリエイターになりたいと考えて います。そうはいってもプログラミングはまだでき ないし、特筆したスキルもありません。ゲームクリ エイターに関する書籍を読んで、将来こんなゲーム を作りたいと夢を膨らませています。私がゲーム開 発者になるためにはどの言語から学ぶのがよいで しょうか?
  6. 6. 解答2 HyperCard / LiveCode Unity と適当な言語で書くのはプログラミングできない人にはつらい。 プログラミングできない人には、HyperCard とかが良いんじゃないかな。 HyperCardって知ってる人、どのぐらいいる? (※結構いた!!) MYSTという有名なアドベンチャーゲームの最初のバージョンはこれで書かれてる。 最初に動くものを作るならこういうのが良いんじゃない? HyperCard はだいぶ古い処理系じゃないと動かないんだけど、ほぼ同じことができる LiveCode というものがあって、これは今の環境でも使える。 日本語化がいまいち、っていう話はあるけど、文系なら英語は大丈夫なはずだ。 あと、ゲームならコンピュータにこだわらくても良いじゃん。 ボードゲームいいよ。ボードゲーム作家やろうよ。 でも、常に100以上のアイデアがないと、コンスタントにゲームは出せないらしいけどね。
  7. 7. 質問3 Web制作会社でサーバサイドを開発しているソフト ウェアエンジニアです。現在使っているプログラミ ング言語はRubyでフレームワークはRailsです。最 近世の中でAIや機械学習がブームになっていて、 私もそちら方面のスキルを磨いてより高度な作業を できるようになりたいと考えています。AIや機械学 習を使いこなすのに最適なプログラミング言語は 何でしょうか?
  8. 8. 解答3 Prolog Prologって知ってる人、どのぐらいいる? (※結構いた!!) 今こそPrologですよ。 国家予算570億円を費した資産を生かすときが来ましたよ。 今の機械学習ブームはパターンマッチや分類機が使いものになることになったことによる。 そのへんがちゃんと使えるようになったら次は論理プログラミング言語の出番も来るは ず。 古い言語だと思うかもしれないけど、Pepper にも Watson にも使われてるぞ。 現役の実装もいろいろある。 今こそエキスパートシステムだよ。 第五世代コンピュータの時代はもうすぐだ。 あえて逆張りしてみようぜ。
  9. 9. 質問4 SIerとして大手案件の2次下請けを仕事にしていま す。主に使っている言語はJavaでフレームワークは Strutsです。噂ではStrutsにもSIerにも未来はも う無いそうで、転職して他の仕事もできるようにな りたいのですが、これまでJavaしか使ったことがな いのでどうしたら良いか分かりません。これから学 ぶのならば、なるべく長く役に立つ技術が良いと思 うのですが、何がよいでしょうか。
  10. 10. 解答4 Lisp 圧倒的に長く役に立つよ!!! 未来が無さそう、とか言ってるなら、過去を振り返ろうぜ。 問題は Lisp で転職できるかだけど、この会場には Lisp で仕事をして る人もいるんじゃないかな。 Lispエキスパートに言わせると、JavaはLispだし、PythonもLispだ し、JavaScriptもLispだ。 すべての言語はLispなのだ。 この方は人生に悩んでるような感じだけど、Lispを学ぶと悟り体験も 得られるぞ。
  11. 11. 質問5 プログラミング初心者です。Webサイト作成のた めにPHPの学習中ですが、他の言語にも興味があ ります。しかしなかなか難しいのもあって効率的な プログラミング学習法はないかと頭を悩ませている ところです。そこで、おもしろそうと興味を持てば 学習がはかどるのではと考えました。面白いプログ ラミング言語とその理由を教えてください。
  12. 12. 解答5 おっぱい言語 なでしこ / ひまわり / プロデル おっぱい言語、知ってる人います? (※意外と少ない!!) BrainFuck系の言語なんだけど、あー、会場に女子が結構いるんね。 失敗したか、好感度下ってしまったか。出すんじゃなかった。 でもまあ、こういうのを勉強して Tweet とかすると良いと思うんだよ。 なでしこ/ひまわりの作者は、「日本語プログラミングがはびこる悪の帝国を作りたい」とか言っ てるんだよね。 悪の帝国を作るってゾクゾクするよね。 飛びこんでみると面白いと思うんだ。 この言語はウィンドウを作るときに、「母艦浮上」!!、って書くんだよね。 これもグっとくるよね。
  13. 13. 質問6 インフラ運用エンジニアをしています。使える言語 はシェルです。仕事ではたくさんのOSSを使用して いますが、これらは書かれている言語が C,PHP,Python,Ruby,Node.js,Javaなど多岐にわた ります。最近は自動化がブームですが、OSSを使っ て自動化をやっていくために、どのような言語を学 ぶのがよいでしょうか。
  14. 14. 解答6 怒りに身をまかせよう 学ばなくたっていいんだよ、怒りさえあれば。 だいたいなんかトラブルが発生するとすぐインフラのせいにされるんだよ。 反論しようとすると、いろんなコードを読むはめになる。 怒りにまかせて行動してると気がつくと言語はいろいろ読めるようになるもんだよ。 怒り駆動学習。 あと、プログラマはだいたい友達が少ないので、ちょっと仲良くなると、勝手にいろい ろ教えてくれるので、フンフンって話を聞いてるだけで勉強になる。 プログラマの友達を増やそう。 ただ、安易に自動化とか言ってると、目的がないシステム化は見える化を阻害する、 と運用の偉い人にマジで怒られるので注意な。 怒るのは良いけど怒られちゃ駄目だ。
  15. 15. 質問7(会場から) 小学校3年生の子供がいます。Scratchは触らせて みたんですが、他に何の言語を勉強するのが良い のでしょうか?
  16. 16. 解答7 ボードゲーム (アセンブラカルタ) ボードゲームには、いろいろなルールやロジックがつまっ ているので、それをやるのが良いと思う。 ドイツに留学させましょう。 ゲームの中にアセンブラカルタをこっそり入れておけばア センブラも書けるようになりますよ。 (※基調講演で竹迫さんがアセンブラカルタを紹介してた)
  17. 17. その他回答に使わなかった言語等 ● 最近の格好良い言語、とか言われたら、F#、Nemerle、 あたりを推そうかと思ってた。 ● サーバ内で動かすなら、Go、Rust、あたりが無難だけど ネタ要素はない。 ● 量子プログラミング言語とか面白そうなんだけど回答に しにくい。 ● 仕様記述言語みたいなのはマニアックすぎる。Z言 語、UML とか。 ● バグで困ってる人には、定理証明支援系言語を勧めるの はアリか?。Coq、Agda とか

×