質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Elixir

Elixirは、並列処理や関数型に特化した、Erlang VM (BEAM) 上で動作する汎用プログラミング言語です。分散システム、耐障害性、ソフトリアルタイムシステムなどの機能を持ちます。

Q&A

解決済

6回答

2231閲覧

「プログラミング言語、完全に理解した」と言える上級者になるには

course_so

総合スコア59

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Elixir

Elixirは、並列処理や関数型に特化した、Erlang VM (BEAM) 上で動作する汎用プログラミング言語です。分散システム、耐障害性、ソフトリアルタイムシステムなどの機能を持ちます。

1グッド

0クリップ

投稿2021/08/09 10:10

編集2021/08/09 18:51

Twitterなどで、よく「Python完全に理解した」のようなことが書かれてあるのを見ますが、
プログラミング言語の中級者または上級者というのはどの程度のことを理解しているレベルなのでしょうか?

たとえば

  • Python、Rubyなどのスクリプト言語
  • C言語などのような汎用的な言語
  • Elixirなどの関数型言語
  • Linuxなどのシェル
  • Ruby on RailsなどのWEBフレームワーク
  • AWSなどのクラウドサービス

などで、何をどの程度理解していれば、中級者、あるいは上級者なのでしょうか?
どれか一つでも構いませんので、もし詳しい方がいらっしゃれば、学習ロードマップなどについて教えていただきたいです。
たとえば、「実用的なプロクラムが書ける」=「中級者」とするなら、実用的なプログラムとそうでないプログラムの違いは何になるのでしょうか。
これからの学習の参考にしたいと思っております。

なぜ自分が中級者や上級者を意識するかと言えば、それはプログラミング言語を使って何かを実装するときに、「まずググる」ということをやっているうちは学習効率が良くない気がするからです。自分にはコンピュータサイエンスのバックグラウンドはありませんが、書籍でコンピュータサイエンスをまなんだことはあります。しかし、それが役立っている感じがあまりなく、プログラミング上級者の人たちはどういうことを頭の中で描いているのかが気になるからです。

ご教示いただけることがあれば、よろしくお願いいたします。

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

course_so

2021/08/09 18:46

漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿をしたつもりはありませんが、追記させていただきました。
guest

回答6

0

ベストアンサー

(都合により削除)
イメージ説明

投稿2021/08/09 12:04

編集2021/10/08 21:33
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

course_so

2021/08/09 18:40

新しいプログラミング言語を作ることはそれほど難しいことではありませんが、実際にそれが使われるようになるには、ある一定のコミュ力や、哲学や、その人あるいは言語の魅力が必要であると感じます。 ライブラリを作ることも簡単にできますが、それが実際に多くの人に使われるようになるには性能の良さや持続的にアップデートが行われているかなどが大きく影響してくると思います。
Zuishin

2021/08/10 00:42

コレが質問の答えになっているというのが、何度読み返してもわかりません。 質問と回答をそれぞれ一言でまとめるとどうなりますか?
Zuishin

2021/08/10 04:15 編集

ちなみに私のまとめではこうなります。 「何を理解していれば中級者で、何を理解していれば上級者なのか? また上級者になるにはどうすれば良いか?」 「環境に恵まれた天才が上級者なので自分を雇ってほしい」
guest

0

Twitterなどで、よく「Python完全に理解した」のようなことが書かれてあるのを見ますが、

プログラミング言語の中級者または上級者というのはどの程度のことを理解しているレベルなのでしょうか?

は全く別物なので、同列に並べないでください。

前者は一般的に、初心者が感じる全能感を表しています。
一年も学習 or 実務をすれば感じるタイミングはあると思います。
参考2の曲線が有名です。

後者は非常に定義が難しいです。
いわゆる twitter 上で「チョットデキル人」を定義だとすると、その分野の第一人者にならなければ名乗れません。

参考1)IT技術の最高熟練度を表す「チョットデキル」に先行するプルシェンコの「スケートチョットデキル」を完全に理解した

参考2)The pilot learning curve

まぁ、学習の参考にはならない回答ですけど。

追記

質問が変化しましたね。

「まずググる」ということをやっているうちは学習効率が良くない気がするからです。

そうですね。一般的なプログラマはこんなことしません。
まず公式を確認し、公開されているようであれば issue として挙がっていないか調査。
そのうえで、その情報の深度を深めるためにやっとググる。です。

学習書気に必要なのは、「公式が読める程度」の用語に対しての理解です。
プログラミングの基礎は、正しい用語定義を理解することです。
これは適切な入門用の書籍で実現するのが手っ取り早いです。

中級でも上級でもなく、スタートラインに立つための準備の話ですが、参考まで。

投稿2021/08/09 10:25

編集2021/08/09 23:15
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Twitterなどで、よく「Python完全に理解した」のようなことが書かれてあるのを見ますが、

それはあくまで、「完全に理解した」と思い込んでいるに過ぎません。

「無知の知」というように、できる範囲が広がれば広がるほどできないこともより多く見えるようになってきます。

投稿2021/08/09 10:30

maisumakun

総合スコア145123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

  • 「プログラミング言語、完全に理解した」と言える

あるプログラミング言語について、文法、意味、事項論理、標準ライブラリに限っても、完全に理解している人は世界中にひとりいるかいないかというレベルでしょう。
Pythonでいうと、グイド・ヴァンロッサムさんでも完全に理解していない可能性があります。
ましてや、標準ではないライブラリ、numpyやらcv2をグイド・ヴァンロッサムさんが完全に理解していないことは断言しても良いでしょう。

  • 中級者または上級者というのはどの程度のことを理解しているレベルなのでしょうか?

使えるソフト開発者であるかそうでないかは、プログラミング言語の上級者であるかどうかということよりもずっと重要です。
単にプログラミング言語を詳しく知っていて蘊蓄をたれている人よりも、必要な機能を知らなければネットなり書籍なりを調べ、良いライブラリが見つからなければ、最適でないかもしれない方法でもとにかくでっちあげて動くソフトウエアを作って納期に間に合わせるひとが「使えるソフト開発者」です。
そういう「使えるソフト開発者」を目指していただきたいと思います。

したがって、質問への答えは、「そんなことはどうでも良い」です。

投稿2021/08/09 11:02

ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

course_so

2021/08/09 18:31

それは質問への答えにはなってはいないですね。
guest

0

個人的には、実用的なプロクラムが書ければ、中級以上ではないかと思っています。

Twitterなどで、よく「Python完全に理解した」のようなことが書かれてあるのを見ますが、

他の人も書かれているように、これは単なるネタまたは、勝手に思い込んでいるだけではないでしょうか?
SNSなどだと、多くの人に見てもらえる事が大事で内容は二の次、という事が往々にしてあるようなので。

多くのプログラミング言語がそんな簡単に完全に理解できるとは思えませんし、言語も日々、進化(変化)してます。仕様書を作成している/コンパイラを実装している、、なんて人でも全てを理解している人がどれだけいるか? もし、本気で「完全に理解した」という人がいたら、私は信用しません。
(まあ、ネタはネタで楽しいかも知れませんが)

投稿2021/08/09 11:08

pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

course_so

2021/08/09 18:59

回答ありがとうございます。たとえばプログラミング初級者は理解できてはいないけれど中級者(上級者)では理解できているはず、というようなことがあるでしょうか
pepperleaf

2021/08/10 12:02 編集

そんな分かり易いものは無いと思いますが、課題を人のサポート無しでの解決が出来ない(難しい)が初級者だと考えます。 あと、自称「上級者」は自分を売り込む時とか、試験とかで自分を鼓舞するものでしょう。 また、ここ(teratail)の回答者にも上級者と思われる方がいるのではないかと思います。そういう人を探すのもありかと。 (自分はせいぜい、中級)
guest

0

それは単なるネタなので真面目に考える必要はないです。
それから言語単体の理解をしているだけでは何の役にも立ちません。
言語は手段であって目的ではないからです。

私はRuby/Railsがメインなのでそれで説明しますが、
RailsだったらWebアプリケーションを作るのがメインのお仕事です。
スマホアプリのバックエンドで使うにしても、結局はJSONを返すWebAPI=Webアプリケーションに違いはありません。
実用的なサービスであれば管理画面を作ることもあるでしょう。

まともなサービスを作る上でこれは最低限知っておいたほうがいいだろうという事を箇条書きにするとこんな感じです。

  • HTML/CSS/JavaScript
  • SQL
  • データベース設計の基本原則
  • Rubyの基本的な文法の知識
  • オブジェクト指向の基本的な知識、デザインパターン
  • Railsでのアプリケーションの実装方法、設計方法全般の知識
  • 開発環境/本番環境を構築する知識全般(エラーが起きても自分で解決できる)

プログラミング言語1つだけ(Ruby,Pythonなど)だけ知っててもWebアプリケーション1つ作れません。
総合的な知識が必要となります。

あまり、中級者、上級者などという言葉に惑わされるのは良くないと思います。
あなたが作りたいと思ったアプリ、サービスが実現できるレベルになればそれで十分です。

投稿2021/08/09 10:20

mingos

総合スコア4025

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問