将来的にPGになりたいんだが、やっぱCから? [無断転載禁止]©2ch.net
でもC言語だけではきついだろ?あと何を学習すれば良いのだ? お前に推薦されて読みたいと思う奴がいると思うか?
少しは客観的に物事を考えろよ cが基本だとか、なかなか初心者を潰したがる人たちが集まるスレですね
本当にプログラムを書いてるのかも怪しい OSや言語処理系みたいな低レイヤへ向かっているなら王道だけど、そんなことしたいのか?
簡単なゲームやGUIアプリならpythonの方が入門には向いているし、
OSや言語処理系を書くような人たちにしてもスクリプト言語は習得している c#は業務アプリとunityぐらいしか適応できない
最初の言語にしては利点がない。 国内でも書籍リリースラッシュでノリに乗ってるオッパイソンさんで良くね? 初心者ならほとんどの人がWindows使い。
もしもWindows使いなら、
C#とCやっておくのが一番勉強になる。
Cで仕組みを知り、
C#でオブジェクト指向を学ぶ。
もちろんCをやってからC#をやった方がいい。
理想はな。
しかしCからの独学は、
しばしば挫折する人が出る。
C#で何かを作る経験をしてからCをやった方が、
モチベーションは維持しやすく挫折しにくいと思われ。 Cはつまずくよきっと
独習ASP.NETから始めればいいよ 自分がC言語やったことないと、他人に勉強されると自分を否定されている気になるのかも知れないけど、
C言語を一番先にやるのはいいことだと思うよ。
多分、一番いいだろう。
別にC言語覚えたら、他の言語ができなくなるってことはないから。
C#じゃつぶしが効かないとも思う。
本人が最初から方向性を絞るつもりならいいが、C#やってない会社も多いからな。 C#だと入る会社によっては覚えたことの大部分が無駄になるけど
C言語は基本だからどんなPGの仕事に就くことになっても知識の大部分が有効に使える。 ポインタとオブジェクト指向は、学んでおいた方がいい。
別にJavaとCの組み合わせでもいい。
C#とCでもいい。
Cをやればオブジェクト指向がわかるかっていうと、
残念ながらCにはオブジェクト指向がない。
まずは勉強用と割りきるとして、
オブジェクト指向が一番わかりやすい形になっていて学びやすいのはC#。
次にJava。
C++は、初心者にはわかりにくいだろう。
すすめられない。
しかしやがては、C++も身に付けて欲しい。
得られるものは大きいから。
仕事で使う言語は、仕事してからでも間に合う。
基礎ができていれば、他の言語は1週間もあればある程度までできる。
一番最初の言語は、文法を覚えるだけでも個人差はあれど、
周りの新卒社員で3ヶ月以上かかっている。
筑波大学や千葉大学や静岡大学の新卒社員で。
ソルジャーとして役立つまで半年はかかる。
しかしその半年を頑張れると、
新しく言語を覚えることになったとしても、
1ヶ月ぐらいでソルジャーになれる。
最初の半年間の勉強はとても大切。 オブジェクト志向覚えるためにも飯食うためにもJAVAからが一番良さそうな気もするけどね 今からPG目指す人にc薦めない人がいることに驚くわ
やって損がないどころか一番マトモに育つだろ 損はないが足りない部分が多いんだよ。
C言語にないもの
・クラス
・GC
・例外
・テンプレート
・クロージャー >>76
それをプログラミング言語入門の段階ですぐ覚えろというのはちょっと違うと思うよ。
長年やっている俺もそんなの知らないし。
C++使っている人はC言語の書き方しかしてない人も多いんだよ。
C++使っている人は小難しい新しい機能をみんな使っていると思っているのかも知れないけどそんなことないから。 >>77
長年やっててこんなのも知らないって…悪いことは言わんから、黙って勉強しなさい まあプログラマーと一口に言っても色んな領域があるわけで、
最終的にどういうことまで視野に入れるかで何をやっといた方がいいかは変わるよなあ
ハードウェアに近いところを一切触るつもりはないというのならCいらん気もする
逆にそういうのに興味があるなら早めに分かっといた方がいいだろうな 制御系とかUNIXは今もC言語が主流だよ。
8ビットCPUとかだとC言語しかないよ。
C++使っているプログラムも、コメントのダブルスラッシュ(C++の拡張構文)だけを使って他は全部C言語の範囲内で書いたプログラムは多い。
LinuxカーネルもBSDもC言語で書かれている。
今でもC言語はUNIXの標準言語だからな。
C++がこれだけ普及しているのはC言語の上位互換だからだ。
アップルのObjective-CもC言語の上位互換。
C++の拡張機能を用いてもいいが必要もないのに無理して使うものではない。
一人で作るならどう書いてもいいが、
会社などの複数人で作るプロジェクトのコーディングルールがC言語の範囲内で書けとなっていると従うしかない。
無理に書き方を増やすとメンテしにくい汚いソースになるからな。
君らにC言語を勉強しろとは言わないが、C言語がこれからも主流なのは変わらないということだ。 >>81
逆にCでオブジェクト指向的なことをやろうとして構造体に関数ポインタ持たせるとかいうのもたまにあるなw プログラミング言語よりも制御対象を理解することのほうが重要だと思うけどなぁ
オブジェクト指向にしてもきっちりモデル化しないと糞クラス量産で最悪の状態に
>>76
釈迦に説法だが
それをCでやるのが面倒だからC++ができたわけで
Cでできないわけじゃない 初心者にCを勧める人間の8割は
自分の若いころがどうだったかを忘れた老害
残りの2割は
見込みのない人間を容赦なくふるい落とし即戦力だけを求める鬼畜 俺が最初に触った言語はN88BASICだったな
次にQuick BASICを覚えて、その後がCだった >>66
業務アプリを書くにしてもLAMPに相当する知識は必要なわけで、
c#からアプリを書きだしたような人たちが使い物になると思えないんだけど
pythonからなら、linuxやDB、サーバに関するノウハウを緩やかに学習できる >>77
PHPを初めて1週間以内に覚えるような内容だぞ >>73みたいな営業や上司の居る会社でだけは働きたくないわ >>88
Pythonからやってみようと思ってるんだけどオヌヌメの書籍とかある?
環境はMacBook AirでOS XなんだがLinuxでやったほうがいいのかな?
あとDBや鯖を緩やかに学習できると言ってるけどそれはWEB系のプログラミングをやればってこと?
出来ればいま流行りの機械学習やらAIに興味あるしそっち方面のライブラリがPythonでは充実してるらしいから、この方面から攻めてみようと思ってる Macを触ったことがないから分からないけどlinuxでやる方が楽だと思う
オススメできる書籍は『Code Reading―オープンソースから学ぶソフトウェア開発技法』
『ふつうのLinuxプログラミング』 著者, 青木峰郎
ぐらいしかない。(システムプログラミングのためのcのコードは書かなくて良い)
後はもう入門用のチュートリアルと公式のドキュメントやStackOverflowしかない
ttp://www.diveintopython.net/
ttps://wiki.python.org/moin/BeginnersGuide/NonProgrammers cvsやsubversionの解説があったりツールの類は古くなってる
最近の入門書は知らないけど、ソフトウェア開発を志す人たちが入門時点で学ぶべきことは変わってないと思う
SICP、銀河ヒッチハイク、『いかにして問題を解くか』辺りを平均的な人たちが読んでいる >>91
Macなら標準でPython入ってるからそのまま始められる ただしPython2系で古いのでそのまま使うのはおすすめできない プログラミング始めて1年の中3なんだが、まだcはした事はない
頑張ってjava、c#は結構やり込んだが、javaから始めたからかc++のヘッダーファイルとかプロトタイプ宣言とかが面倒で投げた
後はソフト用HPの為にHTMLとcss覚えて、WEBアプリの為にPHP、jsもしたかな
今メインにc#使っているが、言語を覚えるなんてスタート地点だ
その後にはフレームワークの使い方を覚えて、アルゴリズムを考える。こっち大変だぞ
そして動的言語は無駄なエラーに悩まされてクソウザいからやめておけ もう進路は決まってるのかな、さすがに。
若いのになかなかすごいね。考え方は間違ってないと思うよ。
今や言語自体にあんまり意味はない。スタート地点とかそういう問題ですらなく、
用途に応じてペンを変えるようなもの。
とはいえネイティブコードの開発は少々敷居が高くなりつつあるけど。
自分も最近は .NET フレームワークでの開発ばっかりなんで、たまに遊びでネイティブコード書くと
メモリリークしまくりだわ。 >>97
知合いの中学生はlinux kernelのコミッタをして、
ocamlで分散型のOS開発に取り組んでいたよ 知合いの叔父さんはリーマンショックだかで、
勤め先の銀行のシステム会社をリストラされて出家していたよ
彼と話をしてみたけど、tomcatやapacheのマニュアルを読んだこともないみたい そりゃそうだろ
銀行の世界なら 免責事項? 何それ美味しいの? だろう >>100
OSの開発って・・・Linuxのソース読もうとした事あるけど10分で放り投げた・・・w 言語処理系作るとか競技コーディングが一時期はすごく流行ってたよね
総合的に考えると木をトラバースできたら十分なんじゃないだろうか Linux はモノリシックで肥大化し続ける悪い設計と聞く
本来OSカーネルなんてコンパクトで見通しのいい設計のはず Linux カーネルってモノリシックて言えるのか?アレ 最近のLinuxのコードってデバイスドライバが大半っていうじゃない?
そういう所がモノリシック何だと思うよ。
今後、ハードの種類が増えるたびにカーネルのコードが肥大化していく。 > 用途に応じてペンを変えるようなもの。
行く先や積み荷に応じて車種を変えるようなもので、
運転に慣れるのはそれなりに意味あるぞ C言語に入る前に基本情報の本でも買ってリスト構造とか配列、オブジェクト指向についての予備知識つけといた方がいいかもしれんよ いやー、やっぱそういうのは作りながらじゃないと身につかんと思うよ。 なかなか理解出来てなかったりするしな。
やってるうちに分かってくる。 C以外勧める奴のほうが無責任な老害。
老害だからいろんな言語触れるのだから。
もしくは、初心者。
Linux + C で始めるのが現状ベスト。
他にどんなツールどんな言語を覚えなければいけないか環境そのままに分るから。
逆にシステムの体系を知らずして、言語の中に環境を求めるような覚え方をしても、
何がなんだか分らない部分や、何故そうしてるのかなど、埋めれない知識の部分が多く、
見当違いな事ばかりしたり、変なツールや環境に永遠振り回されたりする。
Cをまともに書く為に覚える必須科目がドバーーーーっとある事を知るだろうけれど、
現状プログラミングってそういうものだからしょうがない。
そして触れる事になるツールも立派にプログラミングと言えると思うし、他の言語が
どうのこうの考えなくていいと思うよ。というか考える余裕がもてるかな。
まあそうなったらたいしたもんだよ。 >Cをまともに書く為に覚える必須科目がドバーーーーっとある
だからダメだっつってんだろ
何が足りないかすらわからなくて頓挫するのが C だろ だからLinux + Cと書いてる。
まずはシェルに触る事になるでしょうよ。 Windows上ならgcc入れてアルゴリズム辞典でもつらつら動かしてみればいいんじゃね?
Expressっての?ただのVisual Studioが手に入るんならそれでもいいし >>115
C + Win32API ではダメ?
Cといえば、確かにUNIX系の環境が基本だろうけど cは便利なライブラリとかないから、サボり脳が働かなくていいね。
勉強するには。 プログラマは怠惰であるべきだと思うから同意できないな Cに罠なんてないでしょう。
コンピュータの原理を理解していないから誤るだけで。
逆にCをやることでコンピュータの原理について嫌でも考えるようになる。
アセンブラならもっと深くコンピュータを知ることになる。
レジスタやアドレスさえ知らないでプロと呼べるのか。
ただし古い言語なのでネットワークや新技術に対する弱点は辛い。
ツール等の開発効率の面でも簡易言語の習得は必要だろう。
ネットも参考書さえも碌に無い時代を考えたらインテリセンスは神だよなぁ!? そうやってプログラミングを簡単にしてくれてきたプログラマはプログラマにとっても偉大ですね >>126
Cにあるのは罠というより
ミスしない集中力だねw
メモリリークしてないか。
バッファオーバーフローはしてないか。 スクリプト系クソ言語なら
変数のスペルミスで新しい変数(値0)が即座に得られて便利だよ 匿名通信(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的に分散され、特定のサーバーに依存しません cとasmとwinAPIあたりがPCの仕組みを知れて良いな。敷居も低いし
誰も何の保証もしないクラスを積み木のように組み立てるのが今の流行りなのかもしれんが ブラックボックスはありがたく使わせていただくのよ
Windows APIだって保証は無いでしょ ソフトウェアに限ってもCのコンパイラもOSも誰が何を保証するんだって話だしね まあブラックボックスなものをいじくるのは働くようになってからでもいいと思うし、
やっぱ C だよ。
>>134
C のコンパイルがおかしい場合はアセンブラ見ればたいてい分かるでしょ。
ループ処理を最適化しすぎてたりとか。
他の言語に比べたら C が保証する範囲なんて凄く明確というか分かり易い方だと思うよ。 >>135
おかしいことがわかれば保証されてる事になるの? >>136
保証はされてなくても直すことはできるでしょ。
なんでもかんでも保証されてなきゃできないってんだったら
そもそもこの仕事向いてないよ。 プログラマが保障すべき範囲と言語・OSが保障すべき範囲の乖離がでかすぎることは内緒
絶対に内緒 >>137
保証の有無の話をしてるのに直せる直せないに持ってくんだ。
そんな話だったらオープンソースのものなら簡単に直せるよね >>139
オープンソースなら簡単に直せるってマジで言ってるの?
ちょっとMinixを使いやすく直してくれよ。 >>140
なんでやりたくもないことしなきゃならんの? >>141
簡単に直せるがやりたくない。
その理由は? >>139
極論でいってやるが基本的に世の中は誰も何も保証なんかしてないよ。
だから直す話をしてやってるのになんでそういう突っかかる言い方するのかね。
そういう人間は向いてないよ。 最初はHTMLかエクセルのマクロでいいだろ
関心か必要があればそこからCまで行き着く ソースが公開されてるだから、直せるだろ?
逆になぜ直せないんだ? 直すことが理論上可能だって話と、
実際に、簡単に直せるって話をごっちゃにしてない? >>145
仕事で、これ出来ますか?って聞かれて出来ると答えて、
じゃあ期日までに宜しくって言われるやつだなw 結局何が言いたいのかわからん
オープンソースでも修正できないと言いたいの? オープンソースだと出来ない言い訳しにくいからクローズドソースの方がいいんだよ >>149
オープンソースだとしても、修正できないケースは幾つもある。
ソースが1000万行くらいあって修正箇所も修正方法も分からないとか(例:Linux)、
オープンソースだけどソースを購入するのに何万円も掛かるとか(例:昔のUnix)、
修正箇所が多すぎてスクラッチから書いた方がマシだとか(例:Mozilla)、
修正出来たとしてもライセンスの都合で修正版を公開できないとか(例:Minix)。 >>151
技量不足
一般的にオープンソースと言わない
それでも出来ない事はないし、0から書くより失敗例がある分マシ
修正内容を公開出来ない事と修正出来ない事に直接の関係はない >>152
(4番目について)確かに修正する意味が無いことと、修正出来ないことは違うね。
ごめんよ。
ソースが手に入る手段が用意されていることがオープンソースの定義であって、
それが無料である必要は無い。
「一般的にオープンソース」と呼ばれる概念は何を指してる?
君の才能が無制限に高いのなら1番目と3番目は撤回するよ。