有料コンテンツの購読
現在、Web上での有料コンテンツ購読機能は準備中です。
ご不便をおかけしますが、有料コンテンツを購読希望の方は
モバイルアプリ上で購読の手続きを行ってください
認証方法を選んでください
ご協力いただきありがとうございます。
いただいた情報は実名認証のみに使用いたします。
利用可能になる機能
コメントの公開範囲が
すべてのユーザーまで開放されます
フォロー中トピックスの投稿に対してコメント・返信ができるようになります
Facebookで認証を行う
LinkedInで認証を行う
名刺・学生証で認証を行う
お名前の変更には
再度実名認証が必要です
Facebookで認証を行う
LinkedInで認証を行う
名刺・学生証で認証を行う
名刺または学生証を利用して
実名認証を行いましょう
名刺または学生証をアップロード
※ 名刺等の情報は照合にのみ利用します
※ アップロードされた資料は公開されません
入力された情報に虚偽があった場合、認証が取り消されることがあります。
これに同意の上、下記のチェックボックスにチェックして登録を完了してください。
実名認証を行う
を利用して
実名認証を行いましょう
入力された情報に虚偽があった場合、認証が取り消されることがあります。
これに同意の上、下記のチェックボックスにチェックして登録を完了してください。
実名認証を行う
実名認証が完了しました
ご協力いただきありがとうございました。
一層のコミュニティ活性化に取り組んで参ります。引き続きNewsPicksをご活用ください。
利用をつづける
実名認証をして
コメントを発信しよう
現在あなたのコメント公開範囲は
フォロワーのみに限定されています
信頼性の高いコメントコミュニティをつくっていくために、実名認証にご協力をお願いします。設定を行うことでコメントの公開範囲が「すべての利用ユーザー」に開放されます。
実名認証を行う
あとで
学割プラン継続確認
学割プランは毎年4月に更新の確認を行っております。
4月以降も学割プランを継続されたい方は、
学生情報を更新してください。
学生情報を更新されない場合、
次回更新時に自動解約となります。
卒業される方等、プレミアムプランに移行される方には
1ヶ月無料期間をサービスいたします。
学割プランを更新されない場合
学生の場合
学生の間であれば、またいつでも学割プランにお申込み頂けます。
社会人になる場合
いま、アンケートに答えてプレミアムプランに移行すると1ヶ月無料の特典が受けられます。
ここで「更新しない」を選択すると、後からは1ヶ月無料の特典は受けられなくなりますのでご注意ください。
ようこそ、トピックスへ
トピックスは、「顔が見える」コミュニティを目指しています。オーナー・フォロワー同士で安心してコミュニケーションできるようプロフィールを入力していただき、トピックスをお楽しみください。
メール認証をしてください
ご登録いただいたメールアドレス宛に届くメールから
URLをクリックし本人確認をお願い致します。
届いてない場合、見つからない場合は下記から再送と認証をお願い致します。
再送設定する
閉じる
Open an app
Download an app
Close
発想を変えてみてはどうでしょうか。私もあえて3つに絞って、ポイントをお示しします。
・全体を一通り学んでからではなく、やりたいと思う事柄を決めてそれに向けて必要な知識を揃える
NPで何度も発言していますが、私が本気でプログラミングを学んだきっかけの一つが「たくさんの測定器類をパソコンで自動制御したい」でした。そのためには実は一般的なプログラミングテクニックだけではなくてネットワークプログラミングというちょっと特殊なテクニックを学ぶ必要があり、それは一般的な言語の教科書には書いてありません。けど、どうやら必要らしいからその部分だけやる、次にまた必要なことが出てくるのでそれをまた学ぶ、というのを繰り返しました。
・学ぶ=まねる
昔から言われていることです。いまはネットで検索するとたくさんのサンプルプログラムやブログが出てきます。0から自分で、ではなく先人たちの知恵を借りましょう。いま、私が自分でコードを書くとき、自分で書いている時間と検索している時間は半々くらいです。
・エラーへの対処の仕方を覚える
自分はプログラミングそのものよりも、その後出てくるバグつぶし、エラー対策が肝だと思っています。そこで実力の差も出ます。そのためには、まず検索して十分な情報が出てくるメジャーなツールを使うことです(無料だからとかいう理由でマイナーなものを使うと痛い目に会います)。近くに相談できる人がいると、なお心強い。遠慮せずにガンガン質問しましょう。それ以外に、プログラミング言語だけでなくそれに付随するデバッガとプロファイラの使い方も覚えると強力です。バグ取りや最適化の時間が大幅に短縮されます。これもプログラミング言語の教科書には書いてありませんが、とても重要な項目です。
まずは、触ってみては。
実際に触るのと同じ体験ができます。かなり手取り足取りガイドしてくれるので、ちゃんと時間だけとって取り組めば迷子にはならない。SQLだけなら無料でいけたはず。社内で推奨しているサイトです。
https://prog-8.com/
プログラミング言語を学ぶ上で大切なことは、「検索力」と「いかに覚えないか」の2つです。
「検索力」は、文字通り調べる力です。自分がわからなくて詰まっているところは、大抵同じように詰まっている人がいるはずなので、検索すれば大体解決します。わからないけど、とりあえず悩み続ける、は受験の心得としてありますが、なにも試験を受けているわけではないので、さっさと調べて解決するのが徳です。
「いかに覚えないか」も大切。今回登場したSELECTやGROUP BYなど、単語だけを一生懸命覚えようとする人が多いですが、ほぼ無意味です。先程も言った通り、試験を受けるわけではないので、わからなかったら都度調べ、その繰り返しで自然と覚えている、というのが1番だと思います。
以下、Excelに置き換えて自分が思うこと。
・「select」で指定するときは、自分がいらない列を隠す・削除するのと一緒
・「where」と「order by」は、フィルタ機能と一緒(これに該当するものだけを表示、この順序で表示)
・「group by」は記事にあるように「count」と併せたりするとSUMIFと一緒
・「join」(最初の鬼門!)は、Vlookupと一緒(他のと比べると「似ている」くらいの温度感か…何を使ってどこから引っ張ってくるかを指定してデータを取ってくる)
・「distinct」「count」「sum」あたりと組み合わせると、大体の数える系は出来る(selectと組み合わせることでSUMIF / COUNTIFなどになる)
Excelとの違いは、前回記事にあったように、超大きいデータ量が扱えること。
なので、とりあえずクエリの最後に「limit 100」とか入れて、一旦はデータベースの負荷が大きくなりすぎないようにする(ツールの設定とかで自動で入れるようにもできると思う)。
Excelの関数でも、少しずつ組み合わせて上手くいくか見ながらいじることが多い。そんな感じで、クエリを少しずついじって、結果を見ながらStep by Stepでやっていく。
上手くいかない時は、やりたいことがクリアになっていなかったり、そのステップがクリアになっていないことが多い。なのでクエリを書くより、手書きとかメモ帳に、どういうデータがあると何ができるみたいなのを「人間の言葉」で書いて、もう一回確認してから進めるなどをする。そうすると「課題が表現できているか」を自分でも確認できる。
昨日の記事:https://newspicks.com/news/7044727
ところでノーコードとかが出てきているこの時代、今からSQLを学んでハッピーになる人がどれくらいいるのかは気になりました。(エンジニアになろうとしている人以外で)
SQLって、実際にほしいデータや分析したい事項がないと書こうと思わないし、書く機会もない。なんならほとんどはアプリケーションの機能を通じてデータ抽出すべきであって、SQL直打ちなんて普通はさせてもらえない。セキュリティの観点で。あとバカみたいに重たいクエリを書いて全体パフォーマンスに影響するというリスクもある。
だからどういう人が欲している記事なのかは気になりました。
ところで、Nullは現場の会話ではヌルですが、本来の発音はナルかが正しいんですよねー
そして、統計うんぬんよりも、このデータを整理することこそ、大事だなあと日々実感しています。さらに言うと、ぼくは本当にこの辺りデータを整理するというのが苦手だったのですが(今は少しはできるようになったかな…)、これらが得意な人たちは、とても簡単なスキルかのように教えてくるので、その難易度感覚の違いみたいなものがあるかなあと思っています。
DBに負荷をかけないように書いたり、綺麗な構文を書いたり、考えるのが楽しかった時期があります。
でもSQLに抵抗感がある人もいるんでしょう。
その原因は、知識→実行 の順で学びたがる日本人のクセだと思います。
SQL好きの私でも、知識を詰め込む時間は眠たくなります。
実行→知識 の大切さを多くの人に知ってほしい。
1. 何の問題についてデータ分析するのか?: それは意義があるのか×そもそも解ける問題なのか
2. データ分析結果をどう解釈するのか?: 同じデータを見ても解釈は複数存在する場合がある
例えば、記事でも出てくるNP上の記事のpick数を用いた分析として、「ある人がpickすることによって記事のpick数に影響が出るのではないか?」という仮説を設定します。
ピッカーAがpickしている記事のpick数が様々な比較において明確に高く、ビッカーBがpickしている記事のpick数は様々な比較において明確に低かった場合、ピッカーAを優良ユーザーとして推奨し、ピッカーBはpick数に悪影響を与える存在として何らかの対処をするべきでしょうか。
上記1の観点では、そもそもピッカーAを推奨するorピッカーBを劣後させる手段が存在しなければ、アクションの取れない意味のない分析になってしまいます。
上記2の観点では、ピッカーAの数値の高さは因果関係なのか相関関係なのか分かりません。ピッカーAは単に世の中で人気のある記事に絞ってpickしている可能性もあります。一方で、ピッカーBのコメントは付け加えることがないほど素晴らしいものであるがゆえに、他の多くのユーザーはpickをせずにlikeだけすることで、ピッカーBがpickする記事のpick数が押し下げられている可能性があります。データ分析の結果が出た後だとその解釈にバイアスが入ってしまうので、事前に解釈の仕方まで定めておくことが肝要です。
例え話でイメージを描く、参考にしたいと思います。そういえば、先日福島第1原発に行ってきたのですが、その時放射性物質と放射線の例えとして懐中電灯を用いていました。懐中電灯そのものが放射性物質で、そこから出る光が放射線、というものです。日常生活にあるものでイメージを代替することは伝える上でとても効果があるなと思いました。
SQLについて構造的に記事で説明されているが、これだけでなく様々な領域においても、このような"構造化"と"図解化"によって学び易さを高める事ができる。記事構成自体に多くの学びあり。