2ちゃんねる★スマホ版★■掲示板に戻る■全部1-最新50

学ぶ言語は「広く浅く」か「狭く深く」のどっちか [無断転載禁止]©2ch.net

1 :
デフォルトの名無しさん
2016/02/19(金) 19:29:03.86 ID:W+HaL2pw
初心者なんだが
使い道に応じて色んな言語があるしそれぞれの技術が必要に思えるが
一つを極めておけばあとで他の言語にも応用が利きやすいようにも思える
2 :
2016/02/19(金) 19:41:12.71 ID:JvPJIDd/
エンジニアリングには言語よりRDBとかネットワークみたいな個別の分野の知識が必要
言語はCとHaskellとLispやればいいよ
後はその都度使うはめになった時に勉強すれば済む話
3 :
2016/02/19(金) 19:45:15.93 ID:e01p+uw5
人を売る立場なら浅いけどなんでも知ってるほうがいい
作る立場なら特定のことのスペシャリストのほうがいい
4 :
2016/02/19(金) 20:56:20.69 ID:diF8GVSU
haskellとかlispやるぐらいならもっとメジャーな言語やった方がいい
情報量も多いしとっつきやすいから
それに一個身に付けてしまえば大抵あとから学ぶ言語もわかるから
だからCかC++,java,python,Rubyあたりがいいと思う
5 :
2016/02/19(金) 21:11:27.52 ID:wEwKzS1i
一つの言語は常に使うようにした方がいい
文法がCライクは絶対条件
今ならjavaがいいと思う。C#でもいい

pythonは好きだけど、あれ書きすぎるとセミコロンを忘れるようになる
phpはテキトー過ぎるし組み込み関数もなんか変。web志望ならphp一択だけど。
rubyは触ったこと無い
vbはウンコ
vbaは事務員になれる
6 :
デフォルトの名無しさん
2016/02/19(金) 22:38:56.71 ID:J8/smz0x
広く深く
7 :
2016/02/19(金) 22:48:26.65 ID:5tCYSr35
C++を深くやる
そうすれば他のメジャーな言語は3日で習得できる下地ができる
最初から浅く広くやろうとすると産廃コーダーが出来上がる
8 :
デフォルトの名無しさん
2016/02/19(金) 22:50:09.84 ID:GloZi6V2
深く理解するには広く知らなければならない
9 :
2016/02/19(金) 23:01:23.17 ID:wEwKzS1i
自信がないからそれっぽいことテキトーに言って教えてる気になったオッサンは害悪だよね
10 :
デフォルトの名無しさん
2016/02/19(金) 23:25:32.50 ID:DSX2hxXt
ふかいあなをほるには、ある程度ひろい面積がいる
同様に、いろいろ入門してから、奥義をきわめる
11 :
2016/02/19(金) 23:27:23.00 ID:TH2A1UYk
どっちでもいいけど、教えるっていうかきちんと自分の言葉でアウトプットしていかないと浅くみえる
12 :
2016/02/19(金) 23:32:43.09 ID:0emV9JHJ
どちらにしても大事なのは目的
C++ は手段が目的になりやすいので要注意
13 :
デフォルトの名無しさん
2016/02/20(土) 00:14:50.44 ID:OP8B1Nvx
C++で理解した気になるのが一番危険かもね
最も強力で非常に醜悪なキメラ言語だから
14 :
デフォルトの名無しさん
2016/02/20(土) 00:24:52.16 ID:omBvfY0y
>>13
C++だと自由すぎて、他の言語を使ったときにC++だとできるからという理由だけで、無理に変な実装をしようとするやつもいるからな。
15 :
2016/02/20(土) 00:37:13.32 ID:4dG40mdg
C++はテンプレートの特殊化が神がかりすぎててヤバい
まぁ.Net C#がいいんじゃないかな
Javaはautoとかvarに該当するものがないのがちょっと
16 :
デフォルトの名無しさん
2016/02/20(土) 00:39:34.05 ID:6H/PWXJj
C++はruby Python の前に独学でやると変な拗らせ方するからもし独学なら後にした方がいいと思う
17 :
2016/02/20(土) 01:11:59.00 ID:5dzdENdK
文法がCライクは必須、とか言ってるアホもいれば
haskellとかlispやるぐらいならもっとメジャーな言語やった方がいい、とか言うアホもいると
C++勧めるやつとか脳味噌腐ってんじゃねーのか

>>2がいちばんマシな回答してるわ >>1にできるかどうかは疑わしいが
18 :
2016/02/20(土) 07:52:25.45 ID:NxqHanh+
c++がいいよ
美しいオブジェクト指向の考え方が身に着く
低レベルだからこそイディオムやパターンの有り難みに気が付く
悪い習慣をコンパイルエラーにする事の重要さを学べる
他の言語では隠蔽される低レベルな資源管理方法を知れる
イミュータブル(const)である事の素晴らしさを強く体感出来る
邪悪だが便利なメタプログラムというパラダイムに馴染める
バイナリや中間コードやJIT結果を意識したコーディングができるようになる
c++を学ぶメリットは挙げればキリがないな
他の言語ではなかなか身に付かない
そしてできないと品質に大きく影響する
そういった類の知識を学ぶには最適の言語だ
此れ迄様々なプロジェクトでノベ数千人を超えるエンジニアと出会って来たがc++を経験してないプログラマは事実として漏れなく低品質だった
19 :
2016/02/20(土) 09:39:17.10 ID:UHxodCVP
C++はチームで開発するには向いてるけれど、個人で使うだけならCのほうが良いと思うよ。
20 :
2016/02/20(土) 10:34:04.34 ID:FYLTb0QX
仕事でいうならJavaとJavaScriptができれば後はどうでもいいな
21 :
2016/02/20(土) 10:40:24.76 ID:DHRk1KLO
>>18
まっとうな理解力のある奴ならな。
たいていの場合、普通にコンパイルして計算すりゃいいところでも
constexpr でコンパイル時に計算する!みたいな馬鹿が出来上がる。
22 :
デフォルトの名無しさん
2016/02/20(土) 12:19:16.65 ID:omBvfY0y
>>18
オブジェクト指向をどうやって身につけるんだよ?

独学でC++を勉強するとオブジェクト指向を理解するのに時間がかかると思う。
23 :
2016/02/20(土) 12:21:25.57 ID:wPRjv0ew
× 広く浅く
× 浅く深く
○ 広く深く、それが一番効率的
24 :
2016/02/20(土) 14:30:16.67 ID:1peKB6B6
数学を広く深く勉強しようとしてあきらめました。
東大理三レベルでもしょせん学生レベルだと思い知った。
25 :
2016/02/20(土) 14:41:42.04 ID:wpk3SneM
東大の理三って医学部だからな
数学なんか一般教養程度しか知らないだろ
26 :
2016/02/20(土) 16:08:48.51 ID:7iTe4rm9
広くと言っても、大きく分けたら、三種類位しか無いだろ。
27 :
2016/02/20(土) 16:43:49.69 ID:LyOsXfce
まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014

その後、この2冊を順に読む
たのしいRuby 第4版、2013
みんなのPython 第3版

この順番は、漏れが編み出した、
言語を学ぶための基礎で、最速メソッドです
28 :
2016/02/21(日) 13:07:13.31 ID:EyEptSoj
Cで基本的なプログラミング覚えて
C++でオブジェクト指向身につける
そうすりゃどんな言語にも対応可能
深くC++やって
浅くその他の言語仕様知ってればいいよ
29 :
2016/02/21(日) 13:20:32.11 ID:UfOP8/7O
>>28
>Cで基本的なプログラミング覚えて
>C++でオブジェクト指向身につける
>そうすりゃどんな言語にも対応可能

LispにもMLにもPrologにも対応できんのかそりゃ凄えな(鼻ホジー
30 :
2016/02/21(日) 13:21:37.59 ID:wRXUHbZp
C++も悪くないがみマルチパラダイム言語でオブジェクト学習するとオブジェクト指向モドキで終わってしまいそう。
オブジェクト指向は言語だけ覚えても意味がない。
分析、設計がオブジェクト指向であるからこそ、前行程との解離を少なくするためのオブジェクト指向言語なのだから。
31 :
2016/02/21(日) 13:26:08.73 ID:vvUk+ASg
C++でもJavaでもなんでもいいから、とりあえず基本的なforとかifとかの文法、classみたいな型の仕組みを知れ(1週間)
そっからSICPとか読みながら型システムやらリスト構造の原理をまなべ(3週間)

そっからさきは、2つの道がある
C#とかJavaでOOPっぽいクラスについて学び、インターフェースとは何かとかを知る。
C++のテンプレートについて学び、GenericProgrammingや関数型プログラミングを知る。
32 :
2016/02/21(日) 13:39:53.89 ID:UfOP8/7O
C++のテンプレートを知ると関数型プログラミングを知ったことになるとかどこの星の話なんだろう
33 :
2016/02/21(日) 13:59:26.42 ID:baKzG/Kz
初心者が心配することじゃないよ。
とりあえずなんでもいいからひとつの言語でモノを作れるようになることが先決で、言語云々はそのあとに考えること。
34 :
2016/02/21(日) 14:43:13.32 ID:vvUk+ASg
>>32
ごめん言葉足らず

非破壊、バインド、関数オブジェクト、再帰などを使うことになるから
段々と関数型プログラミングの知識が必要になってくるよくらいの意味でした
なのでそっから更に別途、関数型言語に傾倒していく人もいるよね
35 :
2016/02/21(日) 14:55:55.15 ID:QYluD5EN
>>29
Lispとかそういうのすぐだしちゃうやついるよなぁ
36 :
2016/02/21(日) 15:03:08.93 ID:UfOP8/7O
>>34
理解した。

オレは>>2だが、
ポインタと再帰と継続を理解すればプログラミングの基礎を理解したことになるので
CとHaskellとLisp(特にScheme)を勧める。
手続き型のトイ言語のコンパイラを関数型言語で書き、
関数型のトイ言語のコンパイラを手続き型言語で書く、というのがいい経験になった

あとC++は単独でやってわかるようになるような言語じゃないし、クラスベースの
オブジェクト指向が本当に再利用可能性に貢献するのは複数の大規模開発の
基盤整備時だけだと思っている。後は開発者のスタイルの趣味の問題にすぎない。
有名なstaticおじさんにも三分の理くらいはある。
37 :
2016/02/21(日) 15:03:50.86 ID:UfOP8/7O
>>35
そうか。まあ別にお前さんがLispやらんでもいいと思うからそれでいいんじゃないか。
38 :
2016/02/21(日) 15:07:18.08 ID:EyEptSoj
>>29
初めてc覚える
c言語からオブジェクト指向を覚える
そのハードルに比べたら
関数型とか覚えることなんて
たいしたことない(ハナホジー
39 :
2016/02/21(日) 15:08:59.52 ID:UfOP8/7O
あのC++を身につけることができたというのが本当ならばそうかもしれんねえ
羨ましいこった
40 :
2016/02/21(日) 16:22:48.55 ID:X8k91nqv
言語が抽象化されていくとアトム化が複雑になるだけで同じことをするにも直観的じゃなくなるんだよな。 ようするに
高階化が進むだけでトレードオフによってエントロピー自体が減ること表現能力は直行しているんだよな。残念なことに、
41 :
2016/02/21(日) 17:37:57.38 ID:ZcFOsFBW
神の領域に踏み込めるのはC++だけ
42 :
2016/02/21(日) 18:18:06.36 ID:MPr2aBz2
髪を増やすプログラムを書ける言語が知りたいのです
43 :
2016/02/21(日) 19:07:44.17 ID:YmVWQy/y
C++のテンプレートは学ばないほうがいい
44 :
2016/02/22(月) 14:16:39.75 ID:Tii+pDqr
>>42
C++なら何でもできるぞ
つまり
45 :
デフォルトの名無しさん
2016/02/22(月) 15:01:04.42 ID:NgJSo9K5
本番までできる!
46 :
2016/02/22(月) 15:26:57.51 ID:UK1ezJVe
テンプレートを学ぶと何もかもをヘッダーに書くようになる。
47 :
2016/02/22(月) 19:12:47.09 ID:CZjg5eTt
ヘダーフサフサの法則
48 :
2016/02/22(月) 20:09:53.47 ID:Prt5vswI
広く浅くだろ普通
狭く深くとは、1つ2つを深く掘り下げるまで他の言語学んじゃだめってことか?
49 :
2016/02/22(月) 22:05:57.58 ID:vTuPlmuE
>>48
なんだその理屈w
広く浅くだったら、それなりに有名な言語をひととおり触るまでひとつを深く掘り下げちゃだめなのか?
50 :
2016/02/23(火) 00:33:48.41 ID:3m1lH4/7
>>44
江添亮みたくプログラムの書けない人間になって終わりだろw
51 :
デフォルトの名無しさん
2016/02/23(火) 07:48:43.70 ID:7ZeaJq1H
海よりもまだ深く 空よりもまだ青く
あなたをこれ以上 愛するなんて
わたしには出来ない
52 :
2016/02/23(火) 11:08:32.63 ID:kuL2jg6t
SEだったら広く浅く、PGだったら深く
53 :
デフォルトの名無しさん
2016/02/23(火) 18:41:10.36 ID:TIMSmsEK
挿入
54 :
2016/02/24(水) 20:37:02.06 ID:+Fto/7Vh
C++を深くってすげー大変だよ。
やり過ぎると他の人間が理解出来ない。
55 :
2016/02/24(水) 23:15:21.98 ID:FZwg9VGX
独学でCとかやる前に
下地として必要不可欠な知識って何がありますかね?アセンブラ?というものは...?
ど素人ですみませんでも何でもするから御教授願いします
56 :
2016/02/25(木) 00:20:57.13 ID:QlNcu72E
下地は要らない。
やってみて足らないと思ったのを学んでいけば良い。
57 :
2016/02/25(木) 21:36:10.65 ID:42ZaYy4S
一番大事な下地は何かを作りたいという熱意と決して諦めない根性
それがあるといいけれど
58 :
デフォルトの名無しさん
2016/02/26(金) 15:33:29.94 ID:1qRder1a
>>19

和露多
59 :
2016/02/26(金) 18:55:20.37 ID:jCv12aZp
C を独学でやるのは無謀
おぼえることが多かろうと Javaからやるのが無難
あえてというなら C より先に アセンブラ
60 :
2016/02/26(金) 19:33:32.38 ID:yElcxIoI
Cをポインタのさわり位までやってから、JavaかC#。関数型言語なんてぶっちゃけどうでもいい。
61 :
2016/02/26(金) 19:45:47.90 ID:/JeqLChJ
一つの言語で何から何までやらなくて良いから最初は何でも良い。
でもアセンブラから始めるのは無いな。
62 :
2016/02/26(金) 22:28:39.80 ID:85tJGXi+
Cがいいんじゃないかね。
結局どんな言語やるにしてもまともに仕事するならメモリは意識せにゃならんわけだし。
参照、値渡しが明示的なのも取っ付き易いと思う。
63 :
デフォルトの名無しさん
2016/02/26(金) 23:20:05.47 ID:yiTr60/V
C++なんて新入社員にさわらせたら「キチガイに刃物」
64 :
2016/02/29(月) 17:19:10.62 ID:Jh4yxlk4
elispイジりながらSICPに写経で十分なんじゃね?
今どき、英語の読めないエンジニアなんてイラナイし
65 :
2016/03/01(火) 23:46:09.37 ID:RkDD9dZk
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# => フロントエンド向け
66 :
2016/03/03(木) 10:51:27.95 ID:I6qyCC4g
PHPとかJavaとかRubyみたいなオワコン言語以外なら何だっていいよ
67 :
2016/03/03(木) 12:35:46.44 ID:yxDXSlqx
>>66
ぼくにおすすめの言語教えて!
68 :
2016/03/03(木) 13:11:24.82 ID:FR6TWNiP
>>67
なでしこ
69 :
2016/03/03(木) 20:55:57.46 ID:ZVWs5o4k
やりたいことが具体的にないなら、C#でWindowsFormアプリがいいんじゃね。
Cとかから始めると、まず一週間で飽きるよ
70 :
2016/03/04(金) 00:37:14.60 ID:GMRSy9SY
c#でformでwebbrowserコントロール使って
エロサイトを巡回するプログラムを作ろう
71 :
2016/03/04(金) 23:05:15.35 ID:31QGXDw7
>>69
そのレベルでいいなら scratch でいいんじゃねーの。
72 :
2016/03/05(土) 01:44:28.79 ID:ZWXf8aPu
コンソールアプリなめんな
73 :
デフォルトの名無しさん
2016/03/06(日) 11:18:27.44 ID:5QcJgb/8
プログラミング自体初めてなら絵が動くものがいいだろ
コマンドラインで文字だけ標準出力されるもの作ってもすぐ飽きるぞ
74 :
2016/03/06(日) 11:23:45.22 ID:covgZswb
具体的にやりたいことが先にあるならそれに合わせて選べ

それがないなら英語学んだほうがマシ
75 :
2016/03/16(水) 17:56:22.11 ID:SWFG0n+i
学んでも使わなければ意味は何もないんだよ。
学ばなくても作れば意味がある。

俺は学ぶ前に作ってるよ。いつもそうだよ。
76 :
デフォルトの名無しさん
2016/03/22(火) 14:47:01.60 ID:C4G5sFnb
マジレスしてやる。
UNIXとC言語をやっとけばなんとかなる。
77 :
2016/03/24(木) 00:16:02.35 ID:wkeYhbUA
SICPの原著を読みながらemacsでelispとschemeを弄るぐらいが良い
プログラミング入門に必要な要素が一通りそろう
78 :
2016/03/24(木) 12:40:55.18 ID:tqP1fzhE
アセンブラだけは無くなることはない
79 :
2016/03/26(土) 13:23:00.62 ID:ZDevVvUe
CPUごとに勉強しなければならない
80 :
2016/03/26(土) 21:24:17.71 ID:NavqERCK
そんなのは字面だけ
81 :
デフォルトの名無しさん
2016/03/26(土) 22:40:47.13 ID:xe4PDZmZ
>>78
そう遠くない将来無くなるかもよ
82 :
2016/03/26(土) 23:22:06.48 ID:hdzb9fzE
アセンブラなんて1つ覚えたらほかも似たようなもんで
勉強なんてニーモニック表印刷したらほぼほぼ終わる。
かと言ってアセンブラが必要なシチュエーションなんてほとんど無いけどな。
83 :
2016/03/27(日) 14:45:28.55 ID:8QEEbRB+
>>81
バイナリ読んで動くCPUがある限りは不滅だろう
84 :
2016/03/27(日) 15:05:50.38 ID:UfnIJOXz
所詮は入力端子の電圧高低(1Vか4Vか)の組み合わせパターンに応じて、定められたとおりの電圧高低組み合わせパターンを出力端子側に現出させてるだけの回路だからなCPUは。
85 :
デフォルトの名無しさん
2016/03/27(日) 16:11:23.97 ID:zoaX/eYC
日経ソフトウェアとか読んで
プログラミング出来るようになったヤツっているんかなぁ?
(´・ω・`)
86 :
デフォルトの名無しさん
2016/03/28(月) 00:10:21.68 ID:s/DxY94V
>>83
そのノイマン型CPUが駆逐されるかもしれないという話だろ
87 :
2016/03/28(月) 00:14:06.44 ID:DAWyD0Vg
>>85
日経ソフトでWindows APIを研究した。
結果、ある程度Winアプリが書けるようになった。
88 :
2016/03/28(月) 07:52:20.83 ID:fj+UK6Es
>>86
可能性としては否定はしないけど
これだけ普及しちゃうと確率としてはかなり低いね
89 :
デフォルトの名無しさん
2016/05/01(日) 13:07:50.26 ID:tKi6j9CT
匿名通信(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的に分散され、特定のサーバーに依存しません
90 :
2016/05/25(水) 11:12:06.84 ID:ELsXwgVH
素で関数型のプログラムが動くCPUってどんな感じなんだろ

昔あった電子ブロックみたいに可塑的に閉回路みたいのを作っちゃうんだろうか
91 :
デフォルトの名無しさん
2016/05/27(金) 02:46:16.12 ID:SLUhrOqa
>>90
何を言ってるのかw
92 :
2016/05/27(金) 15:29:58.65 ID:XtdoK0jY
>>1
関数A 関数B 関数C → 共通処理関数Z
とあったとき、
A,B,Cの実行順序が任意になるアルゴリズムが必要

このアルゴリズムの研究が進むと
∞コアPCのスペックをフルに使うプログラミングが可能となる
(遅延評価の逆)
過早評価プログラミングがオススメ
93 :
2016/07/01(金) 16:44:02.32 ID:+SBpp/TF
>>92
関数型の世界へようこそ
94 :
2016/07/31(日) 17:02:52.60 ID:HfhW/0nQ
プレゼント
95 :
2016/08/03(水) 21:20:34.25 ID:tpuDUd8r
なんで、
広く深く
狭く浅く
は考慮しないの?
96 :
2016/08/05(金) 10:43:24.30 ID:DVDTMi5M
人生は有限だからだろ
そんな考えが通用しそうな実感があったら先人は「cを極めるには人生は短すぎる」とは言わないわ
97 :
2016/08/05(金) 10:44:22.19 ID:DVDTMi5M
狭く浅くは論外な
要は選択と集中よ
98 :
2016/08/05(金) 17:57:43.44 ID:X2/UvNWt
>>96
誰がそんなこと言ったんだよ。w
ちなみにリーナスはそんなこと言ってないよ
99 :
2016/09/10(土) 20:53:28.29 ID:6Jso3pzY
>>92
>>(遅延評価の逆)
即時評価だろ
100 :
2016/09/14(水) 17:29:41.01 ID:pL1sUi+r
101 :
2017/02/11(土) 19:00:59.32 ID:2PZ2/Gs1
まあC#辺り無難じゃないかな。
Haskellって言いたいけど、応用分野まだ限られるしね。
言語は割と何でも好きなもので良い。

一個の言語を深く。
と言うか、言語よりファイルのデータ構造とか、そういう周辺知識のが重要。
んで、そう言うのや最新の言語情報調べるのに英語が重要。
102 :
2017/02/12(日) 07:08:02.65 ID:NJx3JRTs
アセンブラやっとけばいいよ
アセンブラで書けないプログラムは無い
29KB

新着レスの表示

★スマホ版★■掲示板に戻る■全部前100次100最新50

名前:E-mail: