• 締切済み

プログラミングをはじめるための心構えについて

ITエンジニアです。 仕事でプログラムを書くことがあまりなく、UNIX、ネットワーク、セキュリティの知識が求められることが多いです。 ただ、ITエンジニアである以上、プログラムが書けないことは恥ずかしいことだと思ってます。 担当業務が異なるにせよ、調べればある程度作れることは必須だと思ってます。 これまで、何度かプログラミングをやろうと思って書籍を買いました。 しかし、最初の50ページくらいのif文の書き方などの超基本的な文法はある程度理解しておりますが、恥ずかしながら動くモノを作ることをやっていません。文法以外にフレームワークや書籍に書いてあるバージョンとPCに入れた環境が異なると操作方法が違うことがあり、面倒に感じてしまいます。 Twitterやブログなどを拝見すると、プロのプログラマーは普段から趣味でプログラミングをやっているなど、モノ作りへのモチベーションが非常に高いと感じます。 そこで相談なのですが、 1.プログラミングの勉強方法 あまりプログラミングが得意で無い人は、書籍にあるサンプルコードを理解しながら 写して実行することを繰り返す方法で良いのでしょうか?そこで楽しさを感じる人はプログラミングとの相性がいい、センスがあると思って良いのでしょうか。 2.何を作るか 書籍などではショッピングサイトなどのサンプルコードが多いと思いますが、 特に何を作るか決めてない人は、サンプルにあるようなショッピングサイトで十分なんでしょうか? いわゆるプロのプログラマーは「何を作るか」をどのように決めているのでしょうか。

みんなの回答

  • kaoaru
  • ベストアンサー率33% (42/127)
回答No.8

1.プログラミングの勉強方法 書籍にあるサンプルコードを理解しながら まずはそこからはじめるのですけど、たかだか2000~3000円程度のクラスの書籍にあるようなサンプルでよろこぶ人はそんなにいないと思いますよ! ただ、いろいろやっていくうちに「これとこれをくみあわせるとこれができる?」とかいう発想ができるようになったしめたものです。 つまり、最初から「大きな崖を目指さない」ということです。プログラミングに限ったことではないです。楽器の練習と同じです。 「小さきことから始めよ!」ということで、いかに継続できるか?が習得できるかどうかの分かれ道です。 2.何を作るか いわゆるプロのプログラマーは「何を作るか」をどのように決めているのでしょうか。 これは意識の問題なんで、どのようにやってきたか?がものすごく影響すると思うんです。MIDIプログラミング(MIDIデータを作るほうではないですよ!)に興味もったらその方向にいっちゃうだろうし。 でも、職業プログラマになるためだったらそうしないですよね?MIDIプログラミングで飯は食えませんから。 だから、根本的に「本人の意識の問題」だと思うんです。 まぁ、興味がまったくなかったら身につかないかもしれませんね!私も、もとは「ハードウェア設計」なんで「プログラミングの勉強法の悩み」はよくわかりますけど・・・結構時間(というか期間)かかります。 もともとマイコン屋さんだったので、どっちつかずのこともあったのですけど・・・。

  • multi_pon
  • ベストアンサー率40% (240/589)
回答No.7

No.6です。 ふと思ったのですがフローチャート書いたことありますか? 基本的な文法はわかるけど具体的にどうやったら動くのかわからないという方は プログラミング言語でいきなり書き始めるんじゃなくて フローチャートを書いて、どの順番で何をどう動かすのかという 論理思考を身に着けるとよいかもしれません。 私も新人の頃はそうしていました。 慣れればいきなり書けますが、ソースにコメントを入れるなどして 流れを押さえます。 初めからフローチャートを描くのが難しい場合は、出来合いのソースから フローチャートを起こしてみてください。 いきなり大規模な(たとえばショッピングサイト)などではなく、 並べ替えとか、利息計算とか、合計と平均値を求めるとか Excel使えば簡単にできちゃいますが、基礎訓練になりますので 基本的なものが良いですよ。

  • multi_pon
  • ベストアンサー率40% (240/589)
回答No.6

SE兼プログラマー現役です。 エンジニアになりたての頃は楽しくて週末もプログラミングに勤しんでいました。 当時はMS-DosでWindowsのようにあらゆるソフトがある時代ではなかったですから 自分が必要なもの、欲しいものは自分で作るしかありませんでした。 今はたいていのものは揃ってしまいますが、自分が必要なものはやはり自作します。 プログラミングの基本は他人の作ったソースを直すことです。 ネットにはたくさんのサンプルコードがありますし、書籍もありますが書き写す必要はありません。、 コピペしてしまえばいいので(^^ それよりもそれを自分流に直して、使ってこそ覚えられます。 自分流に直すことによってソースを読んだり、何をどう処理しているのかがわかるわけです。 「自分ならこうする」「こういう方が使いやすい・便利だ」というのを常に考えて直す、あるいは 今作っているものに合わせて改造するというのが近道です。 >そこで楽しさを感じる人はプログラミングとの相性がいい、センスがあると思って良いのでしょうか。 それはちょっと違うと思うんですよね。 単にコピーしてきて実行する→結果がわかる だけならそれで終わっちゃうんです。 プロとしては、物事を抽象・一般化する能力とか、効率的に物事を考える力とか、 何よりも技術資料を調べて進めることが多いので開拓精神がないとやっていけないんですが、 それとは別に、プログラミングの究極の楽しさは目の前のコンピュータを思うように動かしてやりたいという「征服欲」なんじゃないかと思うんです。 どういうことをしたらコイツは思いどおり動いてくれるのかと考え、調べ、プログラミングする。 思い通り動かすことに楽しさを感じられるならセンスがあると言えるんじゃないでしょうか。 それからアイデアが浮かぶかどうかとプログラミングの素養は別物です。 プログラミングはできないけどアイデアはいっぱいあるという人は大勢います。 逆にプログラミングはできるけどアイデアがないとか、そういう人も普通にいます。 けれどNo.3さんと矛盾するわけじゃないんです。 日頃出来合いのソフトの操作性やら見た目やらを職業上観察する癖をつけたり、パソコンであんなことが できたらいいなぁ~なんていうことを日々めぐらしていけばアイデアはでてきます。 Excelのマクロかなんかから初めてみては? 環境作りもあまり意識しなくてよいし、VBAならある程度のことが出来るので 一通りのプログラミングはやれてしまいます。 Perlで何か作ってもいいし、JavaScriptだって結構いろいろなものが出来ます。 日頃の業務で困ってること、面倒なことを洗い出したり、単純なところで考えれば万年カレンダーとか HTMLのフォーム処理+Perlとか、メニューソフトとか、業務や読書の記録帳とか、やれそうなものはないでしょうか。

mochang
質問者

お礼

回答ありがとうございます。 「あったらいいなぁ」を大切にして、便利ツールを作りたいと思います。 VBAいいですね。ただあれもどういう作り方がいいのか、functionやclassなどいろんな作り方で迷ってしまってしっくり来ませんでした。 実際に動けば正解などないのかもしれませんが。

  • itou2618
  • ベストアンサー率26% (319/1208)
回答No.5

定年までSEをしていた隠居爺です。 私も、新人のころに何本かプログラムを作りりましたが、プログラム作成環境の進歩についていけなくなって、仕事で動くプログラムを作ったことないです。 最近の言語は分かりませんが、古い言語(COBOL、PL/I、アセンブラなど)でしたら、プログラムを解読できます。 バンキングオンラインシステムの開発や維持フォローを担当していたので、実務でプログラムの解読することを覚えました。 勉強がてら、BASICでプログラムもどきを作ったことありますけど、実務で使うことなかったので身に付きませんでした。 私は、SEは設計とテストの検証ができればいい、という考えでしたので、プログラム作成を意図的に避けてました。 システムテストで不良が出て、業務プログラムまで追いかけないといけない、となったら嫌でも覚えます。 設計通りにプログラムが作られているかという視点で、仕様書とプログラムを見比べていると、だんだんと分かるようになります。

回答No.4

正直、ネットワーク系の業務を行っているなら、プログラミング知識は プログラマーたちに比べて劣っても構わないと思います。 何1つできないっていうのはダメですけど。 1. 繰り返し写したところで、楽しさは感じません。ただの作業になってしまいます。 楽しいならよしですが、それがセンスに繋がるわけではありません。 基礎以降は、やりたいことをピンポイントでコードを調べながら作る方が 苦労する分、覚えがいいと思います。 思いつくことがなくてサンプルコードをやるしかない場合、ただ書き写すのではなく、 書き写した後に解説を理解し、理解の有無に限らず、多少時間をかけて、その時点で 書籍に載っていない内容で自ら改変してみるというのが効果的です。 写しただけじゃ絶対身につきません。 2. プライベートでのお話なら、ふと思いついた、やりたいことをやれば良いでしょう。 くだらない、実用性のないものでも、やり遂げた実績、必要になった コード方法を学べればいいのです。 忘れても、やった記憶があるならば、コードを漁ればいいわけですから。 ショッピングサイトは、個人的にはあまりおすすめしません。 いくつかの内容について学ぶことは出来ますが、別にショッピングサイトである 必要性もないですし、個人情報の観点上、個人では公開し辛いです。

  • mekuriya
  • ベストアンサー率27% (1118/4052)
回答No.3

アイデアが浮かばない人は見込みがないです。こんなことができたら面白そうだな。これを使えば、あんなこともできそうだな。いろんな着想、発想が生まれて、それを具体化しようという意欲が無い人には何もできません。趣味でプログラミングをやっている人というのは、そういうアイデアが浮かぶ人なのです。方向性は違うけど、ウイルスを作るような人もそうなんです。アイデアを形にする、結果を出す。それがモチベーションになるのです。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

>仕事でプログラムを書くことがあまりなく、UNIX、ネットワーク、セキュリティの知識が求められることが多いです。 でしたら… シェルスクリプトとかperl辺りから手を付けていくのがよろしいかと。 >1.プログラミングの勉強方法 >あまりプログラミングが得意で無い人は、書籍にあるサンプルコードを理解しながら >写して実行することを繰り返す方法で良いのでしょうか?そこで楽しさを感じる人はプログラミングとの相性がいい、センスがあると思って良いのでしょうか。 ただ漠然とサンプル動かしているだけでは身につかないかと。 私の場合、最初のとっかかりはファミリーベーシックで、サンプルのプログラムを書き換えてみてどう動くか? というトライ&エラーで始めましたね。 # まがりなりにもベーシックなので、変なコードにしたからといって壊れるコトもなかったですし。 あと…サンプルだと実用にするには省略されている部分がある。というコトも。 # 特にエラー処理などの「正常系以外」の処理は省略されやすいですねぇ。 高校の頃の友達はMSX2のベーシックの命令は理解したけど、「どう組み立てればプログラムが出来るのか」は理解できない。と言っていましたね…。 >2.何を作るか 「何をやりたいか」からかと…やりたいこともない状態だと、調べる方向性も出てこないと思います。 仕事で必要に迫られて…とかって場合もあるでしょう。 UNIX関連触っているのであれば仕事で定型作業なのに手作業でコマンド打ち込んで……とかいうシーンの1つくらいはないでしょうか? そういう作業をシェルスクリプトやperlスクリプトで一気にやれたら…とか、そういう辺りからの発想はありませんか? # もっとも…パイプやフィルタなどでサクっとやってしまってシェルスクリプトにするほどでもない。なんてことはあるかも知れませんが。

回答No.1

>1.プログラミングの勉強方法 習うより慣れろ、が基本。 サンプルコードはあてにならないので、書き写ししても無駄。 >2.何を作るか 必要なのは「何を作るか」ではない。 必要なのは「今、不便に思っていること」である。 ソフトが無い、あっても使いにくい、などで不便に思っている事があれば「自分で作るしかない」のだ。 完成すれば「不便を解消できる」ので実用になるし、実用になるレベルの物が書けなければ意味が無い。 何を作るか先に決めてしまうと、完成しても実用にならなかったり、使っても不便だったりする。 たいていのプロジェクトが「不便の解消」ではなく「これが作りたい」でスタートしちゃうから、完成しても実用にならなかったり、使っても不便だったりするのは、貴方が経験した通りです(まだそういう経験が無いなら、ITエンジニアとしてラッキーだったか、ITエンジニアとして経験不足)

関連するQ&A

専門家に質問してみよう