ぶっちゃけ始めるのにいい言語て何?
■ このスレッドは過去ログ倉庫に格納されています
フリーランスで月100万稼ぐ人が、初心者は(何でもいいんだけど)文法が簡単だから
とりあえずRubyで、と言ってたからRubyでいいんじゃないかな
要はC++とかじゃなければいいのではないか 将来性の無い言語5選に選ばれたRubyは無い
今から始めるならPythonがベスト フリーランスで月100万って本当に大したことないぞ?やってみりゃ分かるけども。
サラリーマン換算で月30万台じゃないか?ボーナスは含まず。
これで月毎に変動だぞ。 Ruby は可読性が高いから、紛れがない。
Python, JavaScript は、Ruby の3倍掛かる!
フレームワーク・Rails を使って、アプリを仕上げる。
アプリ製作の全工程を、Rubyで覚えるのが基本! 初心者がすぐにRailsに飛びつくのは勧められないが
Rubyから始めるのと学習効率が高いのは間違いない
20近くの言語を学んできたが
初心者に戻ってどの言語から学びたいかと聞かれれば
迷うことなくRubyって答える YouTube の雑食系エンジニア、KENTA も言ってる
将来、AI などを始めたいからと言って、Python から始めるのは間違いです!
初心者は、Ruby でプログラミングを覚えるべき
初心者は、言語の文法よりも、プログラミング自体を学ばなければならないから、
できる限り、可読性が高く、紛れがない言語を選ぶべき
そこでプログラミングのデザインパターンを覚えてから、他言語へ行くと、
他言語の文法だけに集中できる
アプリの作り方は、どれも同じだから >>137
キミすぐKENTAもーだよね
あの人の無感情トークキモくて無理 HTML/CSSをすでに理解してる人は
ブラウザでJavaScriptから学ぶのもいいと思う
JavaScriptでもNode.jsから始めるのは
Ruby/Pythonに比べると少しハードル高い >>133
その人は別にPythonを否定してはいないよ
RubyでPaizaの課題をやったら後は自分の都合に合わせて選んでね、というニュアンス 江添亮さんって職質食らって切れて裁判起こした人でしょ(笑)
人格的に問題抱えてそうな人の発言はちょっと微妙 >>1
Scratchだな
その目の前のブラウザさえあれば、何もインストールしなくても始められる >>142
他人の話を聞かずに独善的なタイプに見えるな。まあ人格と純粋な技術的な部分は切り離して、著書の中でもそいつの主観に関わらないところは参考にしていいと思ってる。 >>138
ケンタとやらは知らないけど、いろんなスレで迷惑かけて非難されまくってるのにまったく変わらない>>137はキモイと思う >>144
競合する言語がないからC++は安泰だろ 結局自分がやってる言語は将来があると思いたくなるけど、何も確かなことはないんだから、言語そのものの仕組みを勉強して新しい言語学ぶハードル下げたほうがいいよね >>40をブレイクダウンして
初心者向き言語に求められる特性を上げるとこんな感じ
将来性とかは正直どうでもいいと思う
1. 初心者がプログラミングとはどういうものなのかを効率よく理解するために必要な特性
- 初心者にとっての言語仕様の理解しやすさ
- チュートリアルのわかりやすさ
- リファレンスのわかりやすさ・探しやすさ
- 良質な情報の豊富さ、定番サイト/書籍の有無
- コーディング時の思考ノイズの少なさ・目的の達成しやすさ
- 付随して学ぶ必要がある知識エリアの少なさ
- コミュニティ/ユーザーフォーラムの親切さ
2. 自分にとって役に立つ小さなプログラムを繰り返し作って形式知を暗黙知化するために必要な特性
- 導入/環境構築のしやすさ
- REPLやパッケージマネージャなどの開発道具の使いやすさ/わかりやすさ
- エラーメッセージのわかりやすさ
- 特定のエラーに対する対応策の見つけやすさ
- デバッグのやりやすさ・テストのしやすさ
- コンパイル/ビルドの速さと容易さ
- 初心者が試すべき基本機能の使いやすさ(テキスト処理/コレクション処理/ファイルIO/Webアクセス等) 今日Pythonスレであった例だけど
v=[1,2,3]
[c=c+1 for c in v if c==1]
↑これを実行すると↓このエラーが出る
File "script.py", line 12
[c=c+1 for c in v if c==1]
^
SyntaxError: invalid syntax
文法エラーなのは分かるけどエラーメッセージからは
なんでinvalidなのかどう対処したらいいのかわからない
これだと初心者はリファレンスのどこを調べたらいいかわからないだろうし
エラーメッセージでググっても同じ原因でエラーになってるものを見つけるのも難しいと思われる
エラーメッセージの親切さは初心者じゃなくても重要なんだけど
特に初心者にとっては学習効率を左右する大きな要素なので
最初に学ぶ言語を選ぶ時はよく見極めたほうがよい まず既存のコードのメンテでそういう間違いのコードを見る機会はない
自分で書いたなら自分でそれくらいデバッグできんでどうすんの(「リスト内包」でググるくらいしろ)
自分で書いて急ぐ必要があるならfor文で書き直すことを考えろ
で、話は終わりだ たとえばエラーメッセージが親切な言語ってどんなのがあるん? >>153
その質問、質問者自信は内包表記に代入がかけないことは分かった上でこういうことはできないの?って質問だったな。
この例では構文エラーの位置を具体的に示してくれてるんだからエラーメッセージとしては十分分かりやすい方だろう。ユーザーの意図を正しく解釈して適切なメッセージを提示するのは限界がある。
C++のテンプレート絡みのエラーやかなりひどいが、それ以外ならどのメジャーな言語も大差ないんじゃね。 >>154
初心者が初級者になろうとして学習してる時に試行錯誤してるコードの話だよ
「リスト内包表記 代入」ってキーワードが思いつけば
代入はできないってことはすぐ分かるだろうが、なんでできないのかはすぐには分からないんじゃないかな
それにリファレンスを調べずにググってQiitaやブログの記事を鵜呑みにするのは
初心者に限らずダメなやつの調べ方で学習効率が低い >>156
エラーが出るから自分のコードが間違ってることは理解してるだろうけど
代入できないことを理解してたかどうかはわからない
少なくとも代入できない原因はわかってなかったんじゃないかな
テンプレートとかマクロ関連とかで
わかりにくいエラーメッセージしか出せない状況があるのは理解できるが
このケースはそうじゃないよね?
文法エラーでinvalid syntaxとだけしか分からない言語って
最近そうないと思うんだけど >>155
個人の感想で言えば
C#(その他.NET言語)、Ruby, Rust, Elm
静的言語のほうが有利な面はあると思う python 3.8から代入式使えるぞ!
:= だ。
勉強になったな! >>158
いや普通代入しようと思わんだろうし、あんなエラー踏むこと自体ねーよ。
コピペでプログラムしてもああならん。
本気であれを書いてなおかつ直せないんだったらプログラムをやるべきじゃない。
所詮は脳内で考えた素人コードだわ。 脳内で考えた素朴な素人コードが動かないんなら始めるのにいい言語ではないな RubyやPythonが簡単なのは間違いないけどだからと言ってJavaScriptを差し置いて初心者がやるべき言語とはならないだろ
特にRubyやPythonはIT初心者にとっては大事な要素であるWindowsと相性が悪いっていう致命的弱点があるからな
その点jsはブラウザさえあればすぐ動くしWindows化においてもGUIアプリ作れちゃうしな >>160
>>153のケースでは使えないよね
それにPythonの場合、初心者は1つ前のバージョン使うべき >>163
プログラム初心者にGUIのコーディングさせるつもりなのマジで草生えるんだが
初心者でどうしてもGUIが必要ならコーディングレス開発の一択だし
習熟目的ならCUIでやる以外の選択肢ないよ >>163
ブラウザのJavaScriptだと何か実用的なことをしようとすると
HTML/CSS/DOM/HTTPもほぼ必須で学ぶ必要があって
馴染みのない人にとってはそれが結構重い
逆にHTML/CSS程度はすでに理解してるという人はJavaScriptオススメ
RubyやPythonのWindows環境での使い勝手はWSL + Windows Terminalで状況変わって来てる
WSLすら難しいってレベルの人は
最初は簡単な入出力機能のあるオンラインエディタでもいいんじゃないかな Python は、Guido も批判しているように、内包表記で時間を取られる。
それと、引数に、self がついてまわる
それと海外では、Julia の認知度が100% だろ
SASS もそうだった。
海外で100% だった時に、日本では、ほとんど知られてなかった。
でも今は、50% ぐらい知られている
Python, JavaScript では、偽が10種類ぐらいある。これがやっかい。
空配列・空文字列とか、色々な型で、偽となるものがあるけど、
Ruby では、nil・false の2つだけ
Python, JavaScript では、関数の外側のローカル変数が、内側に入り込む
Ruby では入らない。
関数スコープは強固だけど、ブロックスコープには入り込む。
C のように、関数・ブロックという2つのスコープを持つ
Python では、高卒プログラマーの仕事がない。
高学歴のノンプログラマーが使うイメージ
プログラミングで、どうにかなる感じではない。
Rubyでは、OS を学んで、サーバー側へ行ける。
Go へ進んでもよいし Ruby でも、MSYS2/MINGW は、日本語でバグル・日本語入力できなかった。
それが、WSL では、日本語でバグらない!
WSL の登場で、次第に、Windows 版のRuby Installer は、使われなくなっていく
それに、VSCode の拡張機能、Remote WSL が出たから、
Windows 10 では、Ubuntu 18.04 が標準になる
rbenv という、Rubyのバージョンマネージャーを、Linux側にインストールする
rbenv のトップページを、Chrome で、日本語に翻訳して読む
https://github.com/rbenv/rbenv
Basic GitHub Checkout の所の、rbenv-installer のリンクから、rbenv-installer のページへ移動する
https://github.com/rbenv/rbenv-installer#rbenv-installer
rbenv-installer の説明通りに、以下を実行する
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash
このシェルスクリプト内では、Mac のHomebrew または、Windows なら、git を使っている
~/.bashrc に環境変数を追加して、
最後に、rbenv-installer のページのrbenv-doctor で、再チェックする
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash Rubyについて5chで質問すると、ボットみたいに同じ言動を繰り返しおかしな日本語で的外れな回答する奴に絡まれるから、初心者には勧められない >>172
いろんなスレで「Ruby では…」って突然Rubyネタ披露する人もそうだね
なんで必死にRuby推しするのか知らないけど却ってイメージ悪くしてるよ 大学行ってた頃、一般教養の情報の講義ではJavaを使ってた
その時は何でCをやらないんだろって思ってたけど、
今ならJavaにしてた理由がよく分かる
失礼、脱線しました > Python, JavaScript では、偽が10種類ぐらいある
また嘘吐いてんのかrubyキチガイ。
これでrubyは理解してんのかと思いきやrubyスレで初心者も吹き出すような質問してたりするからなこのカスw >>162
は?意味わからん。
存在しな架空の想定のために無駄な機能入れるとかクソSIerかよ。 浅井『プログラミングの基礎』を読みながら
OCamlを学ぶ >>174
参考までになぜCではなくてJavaでよかったのか教えてくれないか? >>179
もう15年以上前の話になるけど
CにはString型が無いので文字列の扱いが大変だということ、
scanfなどの入力関数の動作があぶなっかしいということ、
ポインタを使いこなすのが難しいということ、など 日本語?良い言語だよ。
一音一音はっきり発音する聞き手に優しい言語で、動詞が最後に来るっていう最高にクールな言語さ! 限らないだろ最後に来るとは。
よくないよそういう決めつけ。 大事なことは5ちゃんなんか見てないで
どの言語でもいいから入門書なり入門サイトなりで今すぐ勉強を始めること 正解。
こんなとこ見てるのはやらない理由を積み上げたいだけだからな。 そうですね
先入観を捨ててCOBOLから勉強するのが良いです >>106
>>88と比較するならtakeでなく‼︎使え。共通点も見えてくる。
あと、1行ならdoは要らん。
main = (print.fib) 9
fib = (fibs!!)
(fib n = fib!!nをカリー化で見た目の引数を省略)
fibs = 0:1:zipWith (+) fibs (tail fibs)
output:
>34
fibsはこう動く。
fibs
= 0:1:zipWith (+) fibs (tail fibs)
= 0:1:(0 + 1):zipWith (+) [0:1:...] [1:...]
= 0:1:1:zipWith (+) [0:1:...] [1:...]
= 0:1:1:(1 + 1):zipWith (+) [1:1:...] [1:...]
= 0:1:1:2:zipWith (+) [1:2:...] [2:...]
= 0:1:1:2:(1 + 2):zipWith (+) [1:2:...] [2:...]
.
.
. Haskellはいろんな概念を学ばないといけないのもあるが
声に出して読みにくいのが致命的に初心者向きではない 学んだら眼から鱗だけど、学ばないといけない訳じゃない。 >>188
なるほど、いいかも!
ライバルが少ないですもんね〜 >>188
ひねくれた答えを出したかったんだろうけれど、本人にやる気があるならそれもありだよ。
ただ初心者が自発的にコボルを選ぶことはないだろう。 ほんとの初心者ならVBAとかJS(chromeで打ち込む)でいいと思うけどな
コードいじる実感が沸いたほうが次に繋がる ヒューマンリソースマシンってゲーム評判よかったからやってみたけどガワ被せたアセンブリじゃねーか今どきこれは無いわ PC98時代って選択肢無いんじゃないの
ベーマガの時代だよ 中学の時にBASICでグラフィックの作品作るって課題があって、それが最初やな
これです
https://imgur.com/jfYiGh5 >>199
JavaScript+CanvaAPIでゲーム作り
右も左もわからん時に、HTML/CSSほとんど触らずに
プログラミングに集中できたのは良かった とある時代は深く考えずとも一択だった
でも今は10くらい選択肢がある
だからこういうスレがある
なのでオッサンに聞いても「始めるのにいい言語」という質問の意味自体が分からない
そして現役の今の奴らに聞いても十人十色なら、あとはアンケートの多数決で決めるしかない
その時代に自分が一番最初に習った言語を挙げるしかないなら、
当時の人気だけで「始めるのにいい言語」が決まる
そして当時の人気言語は今は大抵は廃れてるから、
「始めるのにいい言語」はどの世代であっても永遠に分からない
つまりオッサンに聞いてもわからないし誰に聞いても分からない
謎の人気でプッシュされてる言語をやるのがベター >>209
>謎の人気でプッシュされてる言語をやるのがベター
結論が唐突w
一番金になる初心者が興味本位で食いつきやすい言語がプッシュされる
初心者のためになるかどうかは知ったこっちゃない ……そういう言語であっても母数が多けりゃ正規分布の6σ外は必ず出るので
「わたしは○○を最初に学んだからプログラマになりました」という奴も必ず出る
つまり統計的には○○がなんであってもすごく出来る奴はどの時代も一定数出てくる 統計用語の「母数」の意味を調べよう。
…まあ、この訳つくった奴がセンス皆無という恨み節も聞こえるが… Hu-BASICから始めてマシン語ちょい勉強しその後30年以上プログラミングやってなく
一昨年からC言語触り出して今はコンソールでゲーム作ったりビットコ用のbot作ったりしてる 就職して使う言語勉強すりゃいいじゃん。そういう回答が嫌なんだろうけれど。 趣味でプログラミングやりたくて、いろんな言語に手を出したんだけど、
ほとんど三日坊主でダメだった。唯一ある程度使えるようになったのがLISPだった。
LISPってライブラリの少なさとか環境は良くないのかも知れないけど、
言語の習得というか、きれいでなくても動くものをつくるぐらいになるにはそれほど難しくないと思った。
と言うことで、LISPがおすすめ。個人的見解です。 set と setq の違いがわからなくて挫折する人がいるね >>89
プログラミングは数学では無いが、数学はプログラミング言語の一種だよ。
コンピュータが誕生する遥か前に誕生したプログラミング言語。
数学者はプログラマーと言える。
Haskell学べば学ぶ程そう思う。 こういう嘘を簡単に言う奴ほど数学を理解していないから困る。 >>22
人気がある→だからなに?
開発環境→なんだかんだでどれも簡単
書籍→主要な言語なら書籍たくさん
習得しやすい→どれも難しいしどれも簡単 シャドバとプログラミングって似てない?
言語→ドラゴン(Java)、ネクロ(PHP)、ネメシス(Scala)
ライブラリ(API含む)→フォロワー、スペル
クラス特性→文法
設計→構築やコンビを考える
要件→デッキのコンセプト。どういう勝ち方をしたいか
実装・実行→プレイング
ローテ→流行りの言語
ローテ落ち→古い言語
基盤のルール(守護疾走とか?)→Webやミドルウェアやらセキュリティやらの仕組み(インフラ系も?)
勝利条件→アプリの完成 ■ このスレッドは過去ログ倉庫に格納されています