PyQオフィシャルブログ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

「プログラミングがなかなか上達した実感がありません。私には向いてないのでしょうか。」への答え

「プログラミングがなかなか上達した実感がありません。私には向いてないのでしょうか。」

このようなご相談をPyQサポートではよくいただきます。

ご安心ください。

プログラミングは一直線で理解できるものではなく、ほとんどの方が「なかなか理解できない」という段階を経るのです。

この理解度合いをグラフで現した プログラミングの学習曲線 をご紹介します。 プログラミング初学者のほとんどの方が「なかなか理解できない」という状態を誰しも一度は経験しますので、「プログラミングをなかなか理解できないなぁ」、「自分がダメなんじゃないか」と思わなく大丈夫です。

学習曲線

この学習曲線はプログラミング学習はある程度の学習時間を経て、理解度が高まる様子を表しています。たしかに我慢がいりますが、この上昇カーブに到達するとグンと理解が伸びます。この上昇カーブまで学習を続けることをオススメします。

f:id:kamekokamekame:20171213101758p:plain

プログラミングの学習の最大の敵は、わからない自分に自信をなくしてしまうこと、だと考えています。 わからないものを放っといて良いのかと自問されることもあったかと思いますが、理解には時間がかかるものですので、自分を責めないでください。 わかるときは、いつかやってきますから。 出典:独習Python入門(湯本堅隆 著)

gihyo.jp

写経、模範解答を見ることは悪いことではない

判定に正解することが重要ではなく、 役に立つプログラムを実装できる力を身につける ことが重要です。

  • プログラミングの型(書き方)を覚えるには、写経するのが近道です
  • 演習も5分ほど考えてできそうに無ければ、模範解答を見てください

学習した内容の量と理解度のギャップに残念な気持ちや劣等感を感じることもあるかもしれません。 でも安心してください。 学習時間が進むと、壁を乗り越えるように理解度が伸びる時期が出てきます。将来のできる姿を思い浮かべつつ学習を続けましょう。

f:id:kamekokamekame:20171213102059p:plain

学習する内容は徐々に難しくなっていきます。 一度、解こうとして挫折した問題も、多くの問題通していろいろなプログラミングの書き方を体感した後に振り返ってみると、理解できるようになった自分に驚くかもしれません。

さあ、プログラミングを学んでいきましょう!

参考記事

shacho.beproud.jp

PyQブログの更新は、SNSで告知しています。

その他リリース情報・Pythonお役立ち情報なども配信しています。 Python・プログラミング学習の情報に興味のある方は フォローしていただくと、最新情報をいち早く知ることができます。

PyQ公式Twitter

twitter.com

PyQ公式Facebook

PyQ

Pythonオンライン学習サービスPyQはこちら

pyq.jp

ついに、PyQのエディターに入力補完機能とショートカット機能がリリースされました

f:id:hirokiky:20171204145318p:plain

id:hirokiky です。とても長い間、待ちに待った機能をやっとリリースできました。 PyQ (https://pyq.jp/) に、 入力補完機能とキーボードショートカット機能をリリースしました!

pyq.jp

入力補完機能のリリース

PyQのエディター上で、入力補完ができるようになりました。 とてもたくさんご要望いただいていた機能です。ご要望いただいた皆さまありがとうございました。

エディター上で 文字の入力中にTabキーを押すと入力補完が使えます

  • 何度も入力する importopen などが補完されますので、 繰り返しタイプするストレスから開放されます
  • 変数名の補完が効きますので、 打ち間違いによるストレスやミスがなくなります
  • 「入力補完があると便利」というメタな知識の勉強になります

入力補完できる範囲

PyQのエディターで対応した入力補完は以下の範囲です。

  • Pythonのキーワード(import など)と組み込み関数(enumerate など)
  • 直近入力した変数や単語

一般的なエディターで対応されている範囲に対応しています。

Pythonの変数の中身を解釈するような動的な入力補完には対応しておりません。 プログラミングの学習プラットフォームとして、ストレスなく学習に集中できるようエディターも便利に作っていければと思います。

キーボードショートカット機能のリリース

エディターで入力中に キーボードショートカットを使って「プログラムの実行」や「判定」を行えるようにしました。 逐次、「実行」や「判定」のボタンをクリックしにいかずにエディターから実行できるようになりましたので、プログラムのトライアンドエラーを素早く繰り返せるようになりました。

また、 入力のやり直しプログラムの先頭に移動 などの、プログラミングでよく使うショートカットにも対応しています。

f:id:hirokiky:20171204150444p:plain

ショートカットの一覧はいつでも確認できます。

f:id:hirokiky:20171204154244p:plain

このキーボードショートカットを使いたい人は今後、よりストレスなくPyQで学習いただけると思います。

また、これまで使ったことの無い方、知らなかった方はPyQを通して「 入力補完やキーボードショートカットを使えばもっとプログラミングは便利になるんだ 」ということを知ってもらえれば良いなと思います。

実際にPyQ以外でプログラミングをする場合にも、入力の補完やキーボードショートカットでプログラミングのやりやすさは格段に向上します。

まとめ

PyQは今、よりストレスなく・挫折なく集中して学べるようにシステムや問題を改善しています。 プログラミングは苦痛、同じ文字の入力ばかりでつらいとならず、エディターを通してもプログラミングの魅力を伝えていきたいと思います。 より多くの人がプログラミング・Pythonの魅力と深みを知ってもらえるよう今後も開発してまいります。

せっかくのクリスマスと年末年始、このリリースがPyQからのクリスマスプレゼント(の一つ)になれば嬉しいです。

pyq.jp

PyQの使いやすさ向上と問題点を修正するリリースをしました。

id:hirokiky です。

今日は PyQ https://pyq.jp/ へのリリースのお知らせです。 学習するうえで小さなストレスとなっていた問題を改善しました。

現在PyQは学習するうえでの障壁やストレスをなくそうと積極的に開発しています。 大きな新機能やコンテンツのリリース、大型の販促やキャンペーンなどはありませんが、今お使いいただいているユーザーの方々が確実に満足いただけるような製品を目指しています。

PyQでより ストレスなく挫折なく 、集中してプログラミング・Pythonを学んでいただけるように取り組んでいます。

pyq.jp

リリースの内容

1 コースの「次のクエスト」を改善しました

「次のクエスト」で、直近に学習したクエストを考慮して「その次のクリアしていないクエスト」をオススメするよう変更しました。 クエストを飛ばして学習したときなども、そのさらに「次のクエスト」として考慮するようになりました。

f:id:hirokiky:20171128141209p:plain

2 「ターミナル」でスクロールできるように修正しました

Flake8のクエストなどで、ターミナルからflake8コマンドを実行したときに全文が見えない問題がありました

f:id:hirokiky:20171128141222p:plain

3 クエストのリセットをしたときに、問題のクリア状況もリセットするように修正しました

クエストをリセットしたときにプログラムはリセットされてましたが、クリア状況がリセットされていなかったのを修正しました。 復習の状況もどこまで復習したかが分かりやすくなりました。

f:id:hirokiky:20171128141238p:plain

4 フラッシュメッセージをクリックで削除できるように修正しました

「〜を保存しました」などのフラッシュメッセージの下にあるリンクを、消えるまでの数秒クリックできない問題を修正しました。

f:id:hirokiky:20171128141350p:plain

5 フォントサイズやデザインを調整して、より見やすく学習に集中しやすい画面に改善しました

フォントサイズを大きくしてプログラムを読みやすいように変更しました。 他にも細かな画面の幅や、一覧での表示をまとめるなどの改善をしました。

f:id:hirokiky:20171128142003p:plain

今後も ストレスなく挫折なく 、集中してプログラミング・Pythonを学んでいただけるように取り組んでいます。

pyq.jp

辞書のキーの長さを取るにはどうすれば良いですか?への回答とlenの解説

id:hirokiky です。 今日はPythonの便利な len 関数について、 PyQサポート で回答したことから抜粋してお伝えします。

Python公式ドキュメントlen関数: https://docs.python.jp/3/library/functions.html#len

ご質問と回答

辞書から d.keys() で dict_keys(['年齢', '身長', '体重', '視力', '名前']) を取り出せました。 このkeyがいくつあるかを取得することはできますか?どうすればよいですか? (この例では5)

はい。可能です! len という関数を使うことで、キーの数を取得できます。

d = {"年齢": 25, "身長": 165, "体重": 45, "視力": 0.1, "名前": "清原"}
keys = d.keys()

# 長さを取得して、表示する
key_length = len(keys)
print(key_length)

また、辞書のキーの数は辞書の要素数と同じ意味になります。 以下のように直接 len(d) としても同じ値が取得できます。

len(d)

len関数は他にも使えます

len(長さや数を測りたいもの) とすることで値が取れます。 他にも複数の値を持つものであれば len が使えます。

# リスト
l = ["A", "B", "C"]
len(l)  # リスト l の長さ 3 になります

# 文字列
s = "清原弘貴"
len(s)  # 文字列 s の長さ 4 になります

# 辞書
d = {"年齢": 25, "身長": 165, "体重": 45, "視力": 0.1, "名前": "清原"}
len(d)  # 辞書 d の要素の数 5 になります

keys = d.keys()
len(keys)  # 辞書 d のキーの数 5 になります(要素の数と同じです)

# 集合
s = {"a", "b"}
len(s)  # 集合 s の要素の数 2 になります

ですが、数値などには長さがありませんのでエラーになります。 「TypeError(型の間違いのエラー): int の型は len が無いよ」というエラーです。

>>> len(8)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()

ちょっと踏み込んで:lenってどういう仕組みなの?

少し難しい内容になるかもしれませんが、Pythonの深い部分のお話です。 len はPythonの色々な型(辞書、リストや集合)に対して使えますが、どういった仕組みで動作しているんでしょう。

清水川さん の「Pythonはどうやってlen関数で長さを手にいれているの?」というPyConJP2017年の発表が参考になります (初級から順に説明されているので、少し覗いてみるだけでも面白いです)。

以上です。

len はPythonのプログラム中でもよく使われる関数です。 ぜひ使い方を身につけておきましょう。

PyQのサポートでは「プログラムが動かない」という質問だけでなく「これって何なの?」や「意味の解説をしてほしい」などのご質問も受け付けています。 ぜひ、Pythonやプログラミングの疑問を解決して効果的にプログラミングを身に着けられるようになりましょう。

PyQブログの更新は、SNSで告知しています。

その他リリース情報・Pythonお役立ち情報なども配信しています。 Python・プログラミング学習の情報に興味のある方は フォローしていただくと、最新情報をいち早く知ることができます。

PyQ公式Twitter

twitter.com

PyQ公式Facebook

PyQ

Pythonオンライン学習サービスPyQはこちら

pyq.jp

「Pythonはじめの一歩」で「判定」結果を分かりやすくして挫折しにくい問題に改善しました

こんにちは、かめちゃんです。 ご要望の多かった「判定」の出力を改善したお知らせです。「Pythonはじめの一歩」部分のみですが、判定結果の表示を改善しました。

修正前

f:id:kamekokamekame:20171109112245p:plain

修正後

f:id:kamekokamekame:20171109112304p:plain

特に写経通りに書けずに判定がNGになっていた場合にどの場所が原因で判定がNGになっているか表示するようにしました。

f:id:kamekokamekame:20171109112315p:plain

合格時も「OK」と出ていただけのものを「実行結果」も表示されるようになりました。

修正前

f:id:kamekokamekame:20171109112241p:plain

修正後

f:id:kamekokamekame:20171109112319p:plain

PyQを開始してすぐに進めなくなり挫折してしまうと、学びたかったことが学べなくなってしまうので対応しました。 学習している内容のレベルに応じて「判定」の説明の丁寧さを調整しています。 最終的には実際のプログラミングの現場と同じようなエラー、テスト結果を読めることを目標としています。

今回のリリースで入った他の変更については、更新履歴 2017-11-14を御覧ください。

PyQ開発チームでは改善内容を決める時に皆様のフィードバック、ご要望にもお答えできるように常に議論しています。これからも良いことも悪いこともフィードバックください。皆様の学びがストレス無く、スムーズに行えるように今後もPyQは改善を続けて行きます!

pyq.jp

Copyright ©2017 BeProud Inc. All rights reserved.