学ぶ言語は「広く浅く」か「狭く深く」のどっちか [無断転載禁止]©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とかやる前に
下地として必要不可欠な知識って何がありますかね?アセンブラ?というものは...?
ど素人ですみませんでも何でもするから御教授願いします 下地は要らない。
やってみて足らないと思ったのを学んでいけば良い。 一番大事な下地は何かを作りたいという熱意と決して諦めない根性
それがあるといいけれど C を独学でやるのは無謀
おぼえることが多かろうと Javaからやるのが無難
あえてというなら C より先に アセンブラ Cをポインタのさわり位までやってから、JavaかC#。関数型言語なんてぶっちゃけどうでもいい。 一つの言語で何から何までやらなくて良いから最初は何でも良い。
でもアセンブラから始めるのは無いな。 Cがいいんじゃないかね。
結局どんな言語やるにしてもまともに仕事するならメモリは意識せにゃならんわけだし。
参照、値渡しが明示的なのも取っ付き易いと思う。 C++なんて新入社員にさわらせたら「キチガイに刃物」 elispイジりながらSICPに写経で十分なんじゃね?
今どき、英語の読めないエンジニアなんてイラナイし 1. C言語でメモリを意識したプログラミングを身に着ける
2. C++でオブジェクト指向を身に着ける(Java, C#でもよい)
3. C言語でオブジェクト指向してみる
4. Pythonでスクリプト言語に触れる(JavaScriptでもよい)
5. C言語でコードハックしてみる
6. Haskellで関数型言語に触れる(Common Lispでもよい)
7. C言語で関数型のように書いてみる
8. 適材適所で好きな言語で書いてみる
程よく抽象化している言語はC言語なんだよなぁ
今の言語はオブジェクト指向と関数型の思想を取り入れているから概念として知っておいた方が、新しい言語に触れた時に助けになるだろう
できるだけ速く動く実行形式が欲しければ、C言語やC++ => (動的)ライブラリ向け
できるだけ楽したければ、スクリプト言語 => バッチや捨てプロ向け
大規模開発になるならば、Java、C# => フロントエンド向け PHPとかJavaとかRubyみたいなオワコン言語以外なら何だっていいよ やりたいことが具体的にないなら、C#でWindowsFormアプリがいいんじゃね。
Cとかから始めると、まず一週間で飽きるよ c#でformでwebbrowserコントロール使って
エロサイトを巡回するプログラムを作ろう >>69
そのレベルでいいなら scratch でいいんじゃねーの。 プログラミング自体初めてなら絵が動くものがいいだろ
コマンドラインで文字だけ標準出力されるもの作ってもすぐ飽きるぞ 具体的にやりたいことが先にあるならそれに合わせて選べ
それがないなら英語学んだほうがマシ 学んでも使わなければ意味は何もないんだよ。
学ばなくても作れば意味がある。
俺は学ぶ前に作ってるよ。いつもそうだよ。 マジレスしてやる。
UNIXとC言語をやっとけばなんとかなる。 SICPの原著を読みながらemacsでelispとschemeを弄るぐらいが良い
プログラミング入門に必要な要素が一通りそろう アセンブラなんて1つ覚えたらほかも似たようなもんで
勉強なんてニーモニック表印刷したらほぼほぼ終わる。
かと言ってアセンブラが必要なシチュエーションなんてほとんど無いけどな。 >>81
バイナリ読んで動くCPUがある限りは不滅だろう 所詮は入力端子の電圧高低(1Vか4Vか)の組み合わせパターンに応じて、定められたとおりの電圧高低組み合わせパターンを出力端子側に現出させてるだけの回路だからなCPUは。 日経ソフトウェアとか読んで
プログラミング出来るようになったヤツっているんかなぁ?
(´・ω・`) >>83
そのノイマン型CPUが駆逐されるかもしれないという話だろ >>85
日経ソフトでWindows APIを研究した。
結果、ある程度Winアプリが書けるようになった。 >>86
可能性としては否定はしないけど
これだけ普及しちゃうと確率としてはかなり低いね 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
5 素で関数型のプログラムが動くCPUってどんな感じなんだろ
昔あった電子ブロックみたいに可塑的に閉回路みたいのを作っちゃうんだろうか >>1
関数A 関数B 関数C → 共通処理関数Z
とあったとき、
A,B,Cの実行順序が任意になるアルゴリズムが必要
このアルゴリズムの研究が進むと
∞コアPCのスペックをフルに使うプログラミングが可能となる
(遅延評価の逆)
過早評価プログラミングがオススメ 人生は有限だからだろ
そんな考えが通用しそうな実感があったら先人は「cを極めるには人生は短すぎる」とは言わないわ >>96
誰がそんなこと言ったんだよ。w
ちなみにリーナスはそんなこと言ってないよ まあC#辺り無難じゃないかな。
Haskellって言いたいけど、応用分野まだ限られるしね。
言語は割と何でも好きなもので良い。
一個の言語を深く。
と言うか、言語よりファイルのデータ構造とか、そういう周辺知識のが重要。
んで、そう言うのや最新の言語情報調べるのに英語が重要。 アセンブラやっとけばいいよ
アセンブラで書けないプログラムは無い 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
KNG0H >>103
江添になってドワンゴ入れる
ruby極めればpixiv入れる Ruby は、世界一巨大なRails で作った、クックパッドだろ
RubyVM を作った、笹田耕一が入社した >>82
RISC のアセンブラとか、GPU のアセンブラとかで書いたことないだろ。 学ぶなら手続き系(scala, swift, kotlin)と、smalltalk, prolog, haskell, sqlかな。 ■ このスレッドは過去ログ倉庫に格納されています