1 仕様書無しさん :2009/06/12(金) 19:54:03
c言語だけ、理解していれば、プログラマーとして、大丈夫なのでしょうか?
マシン語は不要。
アセンブラは、「おれ業務系のプログラムだったらもう余裕。工数も機能を言われるだけである程度見積もれる」ってレベルになって
仕事にマンネリ化して、さらにもう一皮向けたプログラマになりたいと思ったら、マイコンと一緒に始めなさい
そういうレベルになっちゃうと、もうアセンブラ仕事なんか理解できないよ。
それはそれで幸せなことだw
知らないよりは、知ってれば有利。
今じゃほぼ無いと思うが、昔はコンパイラにもバグがあって、それを調べるのに重宝した。
むしろ言語を学ぶこと自体既に意味がなくなりつつ
なぜにC言語
言うのが20年ばかり遅くはないか
業種によるだろ。JK
ニーモニック表が読めればOK
ローカル変数やヒープ、関数の呼び出し規約、スタックの構造が想像できるようになると、デバッグ効率も全然違うから是非覚えておくべき。
というか、アセンブリ言語を経験していないブログラマは、セックスを経験していないホストのようなもの。見てくれだけで女を喜ばそうなんざ、
どだい無理な話だわな。
学生時代に経験したけどほとんど覚えてない
というかこれは憶える必要はない、と断言できるものってそうそう無い。
>>1が何系のプログラマーになりたいか、でその進路にアセンブラは必要か否か
ならまだ答えられるんだけど、プログラマーと漠然とした範囲なら
「おぼえておいてソンは無い」という当たり障りない答えになってしまうかと。
最低限、そのコードが動くマシンがどうなっているのかは知っているべきだし、
はき出すコードがおかしくないかどうか位は自分で見てわかるべき。(あんちょこ使って良いから。)
配列にマシン語いれといて自己書き換えとかC言語でも希に良くやる。
アセンブリ言語なんて、
計算機アーテクチャを知ってないと、自分が何やってるかわからんようになって
一発でやる気が無くなるのがオチ
最低でもタネンバウムのOS本は読んどかないとな
クラッキングのためだと思ったら、結構楽しく覚えられるんじゃね?
それは修羅の道
普通に勉強する方が遥かに楽
マシン語はさすがにおぼえなくていいよ
組込なら書けなくても読めたほうがいいよ。Cで書いたプログラムの動きが納得できないときに
コンパイラが吐いたアセンブラで机上デバッグするというのはよくやること。
汎用機からJavaに移植する仕事したときにアセンブラの解析やったなぁ
自分は8ビットでマシン語やってたからある程度理解出来たけど
他のプログラマはみんな業務系の人だったんで誰も読めなかった
そのプロジェクトってアセンブラ解析部隊のおじいちゃん集団がいたんだけど
ディスプレイの文字が小さくて読めないらしく、
17インチモニタなのにみんなSVGAでモニタあげてた
とりあえず、情報処理技術者試験のCASL2程度はやっとけ。
8086でもいいけど、要するにそのぐらいの基本レベル。
アセンブラを知らない組み込みプログラマは、モグリ。
大学でひととおり習ってるはず
ファイルからリードして標準出力へ表示ぐらい出来れば良いんじゃね。
ファイルでは敷居が高いから、キーボードから1文字リードしてTTYに出力の方がいいよ。
それならシステム関数使わないで全部まるまるっとアセンブラで組めるだろ?
シリアル入力→演算→シリアル出力
これならワンチップマイコンでも作れるからね。
ベーマガI/O世代はレベル高かったんだな
いや、当時は覚える範囲がすごく狭いから
プログラマーのスキル=どれくらい深く知ってるか=アセンブラ等のハードよりの技術
みたいな感じだった。今は目的に適した言語、ツール、書き方等、スキルの方向性も変わってきてる。
アセンブラを憶えると希少価値は上がるけど活用する場面は少なかった。俺の場合。
そのうちUVパイプやらRISCやらアセンブラに直訳するだけでは高速化すら難しくなり、今は必要なら読む程度。
同じ労力で>>1が別言語覚えるのと迷っているならそちらを進める。
9801以外の奴はBASICとマシン語しか選択肢なかったようなもんだからな
僕らの時代はC言語を覚えなきゃならないのが不幸だったとか言ってたな
個人的に技術追求するんじゃなかったら特定の高給言語だけできればいいんだよね
んなこたーない。
今は一つのシステム作るのに複数の言語・複数のプラットフォームを
使うのは当たり前になってきてる。
昔と違って「C言語さえできればプログラマとして一人前」みたいなことは無くなった。
そもそもプログラマに向いてない。
逆に、今の若い人は、Cもアセンブラも不要なので、習得が難しく、
ソフトウェアの本質を知らないまま突き進んで気の毒だと思うけどね。
最初がいきなりC言語だと挫折する人の方が多いから
そもそもソフト作れる人がほとんどいなかったって意味だろ
それで仕事になるなら知らなくてもいいことを知らないのは気の毒とは違うんじゃないかな
ソフトを作れる人を減らしていかないと
俺の仕事がなくなる
客の要求に応じたシステムを作れれば言語ひとつしか出来なくても一人前だと思うんだが。
複数言語使い分けてなんてのは技術者側の自己満足でしょ。
アーキテクチャやってる人なら複数言語使ってみて比較して使い分けてってのは必要だろうけど。
客の要求に応じたシステムを安く作るために、いろんな言語を使うんだよ。
一つの言語でやろうっていう方が、技術屋の自己満足。
いろんな言語使わんよ実際は
やったとしても上級PGがせいぜい似た感じの言語を2つ3つやる程度
例えばJavaとPHPとか、VBとVCとかみたいな
もちろんSQLやBASHやHTMLは1言語と数えないでね
沢山覚えてて当たり前なのか、必要な人だけ沢山覚えればいいのかって話じゃないの?
複数の言語を沢山覚えるのが当たり前ではないって反論なだけでしょ
そりゃいくつもの言語を使い分ける必要がある人はいるだろうよ
いや、言語一つだけでPGやっていけるっていう方が珍しいと思うぞ。
COBOLとかの特殊な世界は知らんが。
半数以上のPGは言語1つ2つでやってると思うが、
そんなにいろんな言語をやらんといけない業種って何?
CとC++とMakeとshellとSQLで5言語と計算とか無しな
WEB系だけどJavaとPHP以外は壊滅してるから殆ど使わんな。
ってかその中でもPHPが殆ど。
業界ではレアケースだったのかこれ。
業務系の請負でもライブラリはCのインタフェース触らないといけないものがあって、UIはJavaで運用スクリプトがPerlだったりするが。
もちろんSQLとshくらい普通に知ってる感じで。
あとは案件によって時々ABAPとか付いてきたりか。
仕事が来てから必要に応じて勉強しても間に合う話しなので
どうってことは無い事だけど。
アセンブラ必要なのは組み込み系だけじゃね?
業務系とかWEB系は高級言語レベルで動作が保証されればハードに近い所が何やってんのか知る必要無いからな。
(一つのプロジェクトで全部使うわけでもないけど)
マスタメンテなどの管理アプリ欲しいっていわれればC#あたりで作ることになるし、
会社としてはWEB系以外の仕事も請負ってるんで、そっちはまたべつの技術使うし。
そんなバラバラで作っちゃって、メンテナンスどうしてんの?
同じ言語や環境で揃えて、誰か辞めてもメンテナンス出来るようにしないと
のちのち面倒くさいだろ。
二次受けで元請けの言いなりみたいな会社だったらそうなのかもしれないけど、
自社開発の所は環境揃えるもんだぜ。
言語が違うくらいでメンテナンス不能になるようなことはないって。
新人でも一ヶ月くらいで新しい言語使えるようになるから。
おれも情報処理技術者試験のCASL勉強したけど全然覚えてない
でも先にこれやっとくとCのポインタが理解しやすかったと思う
つまり複数言語を沢山使う人は、みんな無駄に改行を入れるということですね。
わけねーだろ!
組み込みだと結構気にしますが。
関数の第一引数はint型であれば、レジスタ渡しを優先的に選択するマイコンとか。
知らないと損をすることがあるので違うマイコンをはじめて使う時は
このあたりのことから勉強してます。
それはマイコンがどうとか言うより、そのマイコンのCコンパイラの癖じゃないのか。
そうですね正確にはそういうことです
言語よりコンピュータで何ができるかわかってる方が大きい。
Cでもjavaでも.NETでもちょっとしたアプリなら誰でもできる。
でもスレッドをつかったプログラミングとか、異機種間通信で文字コードの違いを
頭に入れて作らなきゃいけないとかはまた別次元の問題。
大切なのは前者より後者
猛々しい男の人の声で有名な「伯方の塩」CM。そのCMの音声を使って面白いネタを演じてくれた動画なんだ。
■【種明かし有り】 トランプを使ったマジック3つを実演します
初歩的なトランプマジックを種明かし付でやってみたどうがなんだ。機会があったら友達に見せてあげるといいかもしれないね。
■水素ガス作ってみた。
水素ガスを作ってみた動画なんだけど、学生時代に理科の実験とかが好きな人であれば是非とも最後まで見てほしい、作ってみたシリーズの動画なんだ。
■スーファミのシューティングを手当たり次第にやってみる
メジャーからマイナーまで、25本以上のSFCのシューティングゲームをプレイした動画なんだ。
くぎゅうーっ!!く、くーっ!!クギュアーッ!!!ギュアーッ!!!!!
CV:釘宮理恵 CV:後藤邑子 CV:宍戸留美 CV:小清水亜美
麻雀のルールが分からなくても、萌えを愛する心があれば大丈夫!
どっちだよ
表などを参照せずにマシン語が書けるならそいつは人間コンピュータ。
ゲームプログラマなら(特にシェーダ組むとか)覚えておくに越したことは無いけど。
覚えたければ覚えれば良いし、覚えたくなくてそれで問題が出ないなら覚えなくても良いと思う。
マシン語に至っては基地外としか思えん
SEってワープアなの?
あ、NoDVD化とかのクラッキングでは必要な知識か
それならニーモニックとスタックフレーム、あと一部のWin32API知っておけばいいんじゃね
デスマが発生する業界では必要。
スレでは流石に誰も使わないことに当たり前ながらちょっと感動
レスに半分位しかついてけん。
皆すごいな
でもやる気ねーや
応用が利く。つうかチューリングマシンの概念を抑えていれば万全。
自分で言語を作るとき、VMを考えるときに参考になるぞ。
Cコンパイラはこんなコード吐いてるんだろうなって
イメージできるような状態になってから
C言語覚えた方が本当はいいと思ってます。
あー、10年前に気づきたかったなぁ。
仕事じゃ組込みやってるけど、必要なライブラリはクライアントが渡してくるからそれをCで使うだけ。
処理もそんなに重くないからアセンブラでチューニングなんかもやらないし、
数少ないアセンブラを使う機会はせいぜいスタックやらメモリの破壊やらを疑った時ぐらい。
そして組込みが終わると今度は社内ツール作成で、C/C++、C++/CLI、C#を使い、
Adobeやら3D系やらのスクリプトやらプラグインを書く日々。
狭く深くか、広く浅くかは仕事でも意外と多い。
マルチコアプログラミングたのしいです(^q^)
作る言語自体は言うほど問題ではない。
目的が達成可能ならVBでもPHPでもPerlでも良い。
VBやPHP等、言語自体を駄目だと主張する奴は間違いなく“出来ないプログラマ”。
言語に縛られるプログラマは三流。
ノコギリで釘を打つ奴はいないし、金槌で板を切る奴もいない。
とりあえずC言語万能すぎ。
アセンブリは必須とされないなら、他のこと覚えた方が良くないか?
三流は作れれば満足かもしれんが、二流以上は動作効率ってものを考えるんだよ。
あとは他の言語なんて方言レベルで吸収できる。
開発上の都合や仕様によってか、
あるいは好みで言語を選んで使えばいい。
覚えておかなくてもいいけど、ニッチな仕事してると、
アセンブラやバイナリで書くこともある。
コンパイラがバカで特定の命令セットに対応できてないときとかな。
ただ、それもコンピュータの動作原理と計算順序を
知っていればあとは命令仕様書片手になんとか組める。
なので、アーキテクチャは覚えておくべきだとは思う。
リアルタイムOSが乗るCPUでは、すでにいらないかも。
ただし、極限まで省エネに持って行きたいときは、内部の動きがわからないといけないので、アセンブラが必要。
一歩上の高みを目指すなら常識。
CPUの仕組みを理解するためには。
ただ、マシン語、アセンブリ言語なんて
CPUコア、アーキテクチャによって結構違うから
業務で使うとかでなければ特定の言語を覚える必要は無い。
それ以外の言語は必要なときに覚えればいい
とあるけど、なんでCだと挫折する人が多いの?
あと、他の言語ではその問題をどう解決しているの?
業務でWindowsプログラミングやるんならC++/CLIとかC#使えた方が便利じゃないかな。
VisualStudio2008の動作が重くて仕方ないが、GUIデザイナーの出来はMFCとは比べもんにならん。
M$は嫌いだが、あれと.NET Frameworkは素晴らしいもんだ。
特に新しいゲーム機はコンパイラレベルのバグも大石
OSのメモリ管理やCPUのニーモニック、スタックという基礎的な部分の
勉強を全くせずに取り組むからだと個人的に思うわ
ハードに何の関心もない奴がやるのは苦しい
今のご時勢であれば、習得するだけならめちゃくちゃ楽だよ
理系だの文系だの関係ないレベルだわ
逆に、20年とか前に独学で覚えた奴は凄ぇとも思う(文系なら尚更)
吐き出された命令が数%減っただけで射精しそうになる
あとSEに限って言うと、情報処理技術者試験なんか持ってても役には立たない。
まともな速度で動かないなら問題だが、速度は気にしない事も多いからな。
最近はメモリを気にしない事も多いし。
VBやPerlで十分な事は多い。
動作効率自体はどんな言語でも駄目なコード組んだらそこでおしまい。
スピードが要求されるようなモノ作らない限り、VBで組んでもVCで組んでも体感はわからない。
ただ、言語特有の注意点はある。
VBは(VCも)互換性、PHPはセキュリティに気をつける。とかな。
ポインタで操作したりをC#でやると、「何もC#でやらんでも」と思わなくもない
C#でメモリリークとか、悲しくなってくるw
その点VBは気楽でいいわ
良くも悪くも諦めがつく
無論、確認用のTPも流すけど。
それか授業サボってた奴だってパタヘネぐらい読んでるだろ。
その命令が値なのかアドレスを示してるのか分からないとわけわかめ
趣味としては少ないステート数で処理を書くのはパズル的で楽しい
プログラムに活かせるとは思う。しかし、最近の、大概の、プログラム言語の教育は、ほかのプログラムについての知識を前提としない場合が多いから、
それなりに対応できていると思いますよ。
ちなみにアセンブリ言語は、英語の発音を知らない日本人がいい始めたおかげで
こう定着しましたが、実際はアセンブル。
アセンブラ・・というと、それだけで常識を疑われたりもする・・。
まあプログラムさえ書ければ、理論も概念もへったくれもないんですがね。
まれに、コンパイル構成論だの、なんだのって講釈ばかり言って、プログラム
まったくかけない馬鹿もいるんで、実際、そんなの知ってて書けない気違いより
プログラム書けるキモオタ中学生のほうが社会では役に立つかもしれないね。


