学ぶ言語は「広く浅く」か「狭く深く」のどっちか [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
初心者なんだが
使い道に応じて色んな言語があるしそれぞれの技術が必要に思えるが
一つを極めておけばあとで他の言語にも応用が利きやすいようにも思える エンジニアリングには言語よりRDBとかネットワークみたいな個別の分野の知識が必要
言語はCとHaskellとLispやればいいよ
後はその都度使うはめになった時に勉強すれば済む話 人を売る立場なら浅いけどなんでも知ってるほうがいい
作る立場なら特定のことのスペシャリストのほうがいい haskellとかlispやるぐらいならもっとメジャーな言語やった方がいい
情報量も多いしとっつきやすいから
それに一個身に付けてしまえば大抵あとから学ぶ言語もわかるから
だからCかC++,java,python,Rubyあたりがいいと思う 一つの言語は常に使うようにした方がいい
文法がCライクは絶対条件
今ならjavaがいいと思う。C#でもいい
pythonは好きだけど、あれ書きすぎるとセミコロンを忘れるようになる
phpはテキトー過ぎるし組み込み関数もなんか変。web志望ならphp一択だけど。
rubyは触ったこと無い
vbはウンコ
vbaは事務員になれる C++を深くやる
そうすれば他のメジャーな言語は3日で習得できる下地ができる
最初から浅く広くやろうとすると産廃コーダーが出来上がる 自信がないからそれっぽいことテキトーに言って教えてる気になったオッサンは害悪だよね ふかいあなをほるには、ある程度ひろい面積がいる
同様に、いろいろ入門してから、奥義をきわめる どっちでもいいけど、教えるっていうかきちんと自分の言葉でアウトプットしていかないと浅くみえる どちらにしても大事なのは目的
C++ は手段が目的になりやすいので要注意 C++で理解した気になるのが一番危険かもね
最も強力で非常に醜悪なキメラ言語だから >>13
C++だと自由すぎて、他の言語を使ったときにC++だとできるからという理由だけで、無理に変な実装をしようとするやつもいるからな。 C++はテンプレートの特殊化が神がかりすぎててヤバい
まぁ.Net C#がいいんじゃないかな
Javaはautoとかvarに該当するものがないのがちょっと C++はruby Python の前に独学でやると変な拗らせ方するからもし独学なら後にした方がいいと思う 文法がCライクは必須、とか言ってるアホもいれば
haskellとかlispやるぐらいならもっとメジャーな言語やった方がいい、とか言うアホもいると
C++勧めるやつとか脳味噌腐ってんじゃねーのか
>>2がいちばんマシな回答してるわ >>1にできるかどうかは疑わしいが c++がいいよ
美しいオブジェクト指向の考え方が身に着く
低レベルだからこそイディオムやパターンの有り難みに気が付く
悪い習慣をコンパイルエラーにする事の重要さを学べる
他の言語では隠蔽される低レベルな資源管理方法を知れる
イミュータブル(const)である事の素晴らしさを強く体感出来る
邪悪だが便利なメタプログラムというパラダイムに馴染める
バイナリや中間コードやJIT結果を意識したコーディングができるようになる
c++を学ぶメリットは挙げればキリがないな
他の言語ではなかなか身に付かない
そしてできないと品質に大きく影響する
そういった類の知識を学ぶには最適の言語だ
此れ迄様々なプロジェクトでノベ数千人を超えるエンジニアと出会って来たがc++を経験してないプログラマは事実として漏れなく低品質だった C++はチームで開発するには向いてるけれど、個人で使うだけならCのほうが良いと思うよ。 仕事でいうならJavaとJavaScriptができれば後はどうでもいいな >>18
まっとうな理解力のある奴ならな。
たいていの場合、普通にコンパイルして計算すりゃいいところでも
constexpr でコンパイル時に計算する!みたいな馬鹿が出来上がる。 >>18
オブジェクト指向をどうやって身につけるんだよ?
独学でC++を勉強するとオブジェクト指向を理解するのに時間がかかると思う。 × 広く浅く
× 浅く深く
○ 広く深く、それが一番効率的 数学を広く深く勉強しようとしてあきらめました。
東大理三レベルでもしょせん学生レベルだと思い知った。 東大の理三って医学部だからな
数学なんか一般教養程度しか知らないだろ 広くと言っても、大きく分けたら、三種類位しか無いだろ。 まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
その後、この2冊を順に読む
たのしいRuby 第4版、2013
みんなのPython 第3版
この順番は、漏れが編み出した、
言語を学ぶための基礎で、最速メソッドです Cで基本的なプログラミング覚えて
C++でオブジェクト指向身につける
そうすりゃどんな言語にも対応可能
深くC++やって
浅くその他の言語仕様知ってればいいよ >>28
>Cで基本的なプログラミング覚えて
>C++でオブジェクト指向身につける
>そうすりゃどんな言語にも対応可能
LispにもMLにもPrologにも対応できんのかそりゃ凄えな(鼻ホジー C++も悪くないがみマルチパラダイム言語でオブジェクト学習するとオブジェクト指向モドキで終わってしまいそう。
オブジェクト指向は言語だけ覚えても意味がない。
分析、設計がオブジェクト指向であるからこそ、前行程との解離を少なくするためのオブジェクト指向言語なのだから。 C++でもJavaでもなんでもいいから、とりあえず基本的なforとかifとかの文法、classみたいな型の仕組みを知れ(1週間)
そっからSICPとか読みながら型システムやらリスト構造の原理をまなべ(3週間)
そっからさきは、2つの道がある
C#とかJavaでOOPっぽいクラスについて学び、インターフェースとは何かとかを知る。
C++のテンプレートについて学び、GenericProgrammingや関数型プログラミングを知る。 C++のテンプレートを知ると関数型プログラミングを知ったことになるとかどこの星の話なんだろう 初心者が心配することじゃないよ。
とりあえずなんでもいいからひとつの言語でモノを作れるようになることが先決で、言語云々はそのあとに考えること。 >>32
ごめん言葉足らず
非破壊、バインド、関数オブジェクト、再帰などを使うことになるから
段々と関数型プログラミングの知識が必要になってくるよくらいの意味でした
なのでそっから更に別途、関数型言語に傾倒していく人もいるよね >>29
Lispとかそういうのすぐだしちゃうやついるよなぁ >>34
理解した。
オレは>>2だが、
ポインタと再帰と継続を理解すればプログラミングの基礎を理解したことになるので
CとHaskellとLisp(特にScheme)を勧める。
手続き型のトイ言語のコンパイラを関数型言語で書き、
関数型のトイ言語のコンパイラを手続き型言語で書く、というのがいい経験になった
あとC++は単独でやってわかるようになるような言語じゃないし、クラスベースの
オブジェクト指向が本当に再利用可能性に貢献するのは複数の大規模開発の
基盤整備時だけだと思っている。後は開発者のスタイルの趣味の問題にすぎない。
有名なstaticおじさんにも三分の理くらいはある。 >>35
そうか。まあ別にお前さんがLispやらんでもいいと思うからそれでいいんじゃないか。 >>29
初めてc覚える
c言語からオブジェクト指向を覚える
そのハードルに比べたら
関数型とか覚えることなんて
たいしたことない(ハナホジー あのC++を身につけることができたというのが本当ならばそうかもしれんねえ
羨ましいこった 言語が抽象化されていくとアトム化が複雑になるだけで同じことをするにも直観的じゃなくなるんだよな。 ようするに
高階化が進むだけでトレードオフによってエントロピー自体が減ること表現能力は直行しているんだよな。残念なことに、 テンプレートを学ぶと何もかもをヘッダーに書くようになる。 広く浅くだろ普通
狭く深くとは、1つ2つを深く掘り下げるまで他の言語学んじゃだめってことか? >>48
なんだその理屈w
広く浅くだったら、それなりに有名な言語をひととおり触るまでひとつを深く掘り下げちゃだめなのか? >>44
江添亮みたくプログラムの書けない人間になって終わりだろw 海よりもまだ深く 空よりもまだ青く
あなたをこれ以上 愛するなんて
わたしには出来ない C++を深くってすげー大変だよ。
やり過ぎると他の人間が理解出来ない。 独学でCとかやる前に
下地として必要不可欠な知識って何がありますかね?アセンブラ?というものは...?
ど素人ですみませんでも何でもするから御教授願いします ■ このスレッドは過去ログ倉庫に格納されています