• 締切済み

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

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/1209)
回答No.5

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

回答No.4

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

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

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

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

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

  • chie65535
  • ベストアンサー率43% (8481/19299)
回答No.1

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

関連するQ&A

  • プログラムとプログラミングとプログラマ

    の言葉の意味や違いは プログラマは人で コードがプログラムで プログラマの人がプログラムを書くことを プログラミングと言えばいいのでしょうか?

  • プログラミングへの危機感

    プログラミングへの危機感 プログラミングへの危機感 こんにちは。 私はC/C++/Javaでプログラミングをしています。 中学2年生でもあります。 実際にはコンソロールアプリや.NETを使用した、ごく簡単なプログラムをしかつくれない初心者見習いプログラマーです。(プログラマーと言ったら本物のプログラマーに失礼かもしれませんが) プログラミングの概念は理解しています。 本題ですが、私はプログラミングへの将来に不安があります。 なぜかというと、今現在、私のように中学生でプログラミングをしている方は少ないと思いますが、ほとんどの家庭にPCがあり、これからプログラミングというものは小学生でもでき、義務教育として導入され(もう導入されてますがまだ中学校で習うプログラミングはPCは用いません)、レベルの高いものではなくなってしまうのではないかと思ってるんです。 つまり、プログラマーというのはそれほど高い存在ではなくなってしまうのではないかという危機感を抱いております。 行き過ぎかもしれませんが、就職でも必須になるような存在になるのではと... 私自身も1ヶ月間、本を読みプログラミングというものを理解できました。(実際はそれから何を作れるかが一番難しいのですが) なぜ高い存在になると危機感を感じるかというと、私自身プライドが高いことや、将来に不安を感じることがあげられます。 みなさんはどうおもわれますでしょうか。 皆さんの意見をきき、これからプログラミングと、どう付き合っていくか考えたいと思っています。 僕はプログラマーに憧れています。 夢はプログラマーしか考え尽きません。 大学も工学系を考えています。 プログラミングは大好きなのですが、一般の社会人や、自分の他の中学生も私よりレベルの高いプログラムを作っているのを見て、今の状況に危機感を抱いておりまして... コンピュータサイエンスの世界ではプロミング言語は手段であり、IT企業でもプログラマーの存在は重要ではないと言います。

  • プログラミングができる人に聞きたいことってあります

    プログラマ以外の人が、プログラミング(ソフトが作れる人)ができる人に聞きたいことってありますか? ブログのネタにしようと思いまして。 ただし、プロじゃないので、給料とか聞かれても困るんですが。

  • ホリエモン プログラミング勧めるが稼げなそう??

    ホリエモン  プログラミングを勧めますが 調べると稼げないようですが? 本当に人手不足? SEだった人、弟は忙しすぎて やめました 20年以上前の話ですが 3時とかまで仕事して、手取り20万も いかなかったと思います _________ ホリエモンは、 優秀な人は楽して稼げるよ」と回答。 「プログラマーほど優劣の差が激しい職業はないね」 できる人はとにかく実力があり 、逆にできない人は全くできないと いうのがプログラミングの世界らしい。 一度成功してしまえばそのまま軌道に 乗れるのもプログラマーの特徴。 「例えば、一度世界で10億人が使うアプリを作っちゃえば、あ れこれ手を出さずにずっとそれだけやってればいい」 と成功者がとにかく強い環境であることを示す。 https://weblog.horiemon.com/100blog/38380/ プログラミングなんか勉強しても、稼げないに決まってる https://mackeichi.com/programming-can-not-make-money/ プログラミングが稼げないと思う理由はふたつ。 プログラマーの高待遇が続くとは思えないから 稼げる人は上位1%で、それ以外の人は雑用しか与えられないから それでは詳しく見ていこう。 今はプログラマー不足だから稼げる。でも、それっていつまで続くわけ? そもそもの話をさせてもらうが、ここは日本である。 「社畜」とか「過労死」とかが蔓延している国で、高待遇を求める時点でアホだろう。 量子コンピューターの天才に年収500万円以下しか渡さない国に希望を持っちゃダメ。 「プログラマー」と「量子コンピューターの天才」だったら、量子コンピューターの天才のほうがはるかに不足している。 しかし500万しか支払わない。 これとか日本のIT人材不足の深刻さをアピールしているが、そんなのどうでもよくないか? 日本にできる人がいないなら、外国人にやってもらえばいいじゃん。 プログラミング言語に国境なんてないのだから、インターネットでやりとりすればそれで済む話である。 インドや中国みたいなIT先進国に依頼すればすぐ解決する。 じゃあなんで日本政府は必死こいて日本人プログラマーを増やそうとしてるわけ? それは安く使える奴隷がほしいからです。 不足しているのは「IT人材」ではない。「安くこき使えるIT人材」である これがよくわかる求人がこちら。 応募資格 学歴 理数系大学入学以上で、高度な計算能力または医療知識を有していること。 時給 1,000~1,600円(所内規定に基づき、経験・能力を考慮して決定する) 理研 医科学イノベーションハブ推進プログラム STAP論文でやらかした理研、まったく反省してねえな。 上で太字にした部分がプログラミング技術を発揮する場面だろうけど、これってプログラマーならだれでもできるのか? 「高精度の予測」とか「機械学習などの人工知能技術」(←AIを作るってこと?)とか「深層学習」とかあるが、これ簡単にできるもんなのか? 私はプログラミングのこと知らないが、これが奴隷案件ってことはわかるぞ。 そして見落とされがちなのが「コミュニケーション能力がある方」ね。 おい! 94.2%のプログラマーがAIに仕事を取られるってことは、 5.8%の人しか稼げないじゃねーか! じゃあ生き残れる5.8%って優秀な人 プログラマーって、社会不適合者でもできるような静かな仕事かと思ってた。 でも実際には円滑なコミュニケーション(しかも英語で)が必要って、選ばれしエリートの職業じゃん。 時給1000円の仕事じゃねえよ。 プログラマーって、社会不適合者でもできるような静かな仕事かと思ってた。 でも実際には円滑なコミュニケーション (しかも英語で)が必要って、 選ばれしエリートの職業じゃん。 時給1000円の仕事じゃねえよ。 「プログラミングを学べば一生困らない。 IT人材が不足してるから」←これマジ? 100歩ゆずって、 「プログラミングは儲かるもの」だとしよう。 なぜプログラミングが儲かるのか といえば、需要に対して供給が 足りてないからである。 希少性があるから価値が生まれているのだ。 でもそれっていつまで続くわけ? これからもずっとプログラマーが不足して、 チヤホヤしてもらえる? そりゃないだろう。 需要のあるコンテンツについては、 敷居を低くするようなテクノロジーが必ず生まれる。 たとえば、インターネットなんかは まさにそれである。 昔のインターネットといえば、 頭のいい人しか扱えないものだった。 しかし需要のあるコンテンツなので、 今では子どもでも扱えるような簡便な サービスとなっている。 プログラミングの勉強をすれば高収入に なれると思ってる人の愚かなところ→ 「才能による差を考慮していない」 プログラマーを目指しているヤツが 必ずいうセリフ「プログラミングは高収入」 がある。 彼らによれば、プログラマーの平均年収 は800万円だという。 常識的に考えれば、プログラマーに も格差があり、稼げる者と稼げない 者がいるはずである。

  • ゲームプログラミングの学習について

    ゲームプログラミングの学習の進め方についての質問です。 最近ゲームプログラミングを始めたばかりで、現在サンプル付きのゲームプログラミングの本を見ながら、学習を進めています。 基本的な関数も覚え、サンプルとして付いていたミニゲームのコードを見ても、大体は理解できます。しかし、何も見ずにゼロからミニゲームをつくってみろと言われれば無理。という状態です。 そこで質問なのですが、 ・自力で全部作成できるまで繰り返し学習するべきでしょうか。 それとも ・こういう動作をさせたいときは、こういうコードがあるということだけ覚えておき 知識の幅を広げていくことを重視すべきでしょうか。 (大まかな仕組みだけを理解しておき、細かい内容の記憶はパソコンにまかせる。という感じです) その他、お薦めの学習方法がありましたら、是非をよろしくお願いします。

  • プログラマーとネットワーク・エンジニア

    全くの未経験者ですが、現在32歳でIT業界を志望しているものです。 本来JAVAなどを習って、プログラマーになりたかったのですが、ハローワークや、ITスクール、またIT企業に勤めている知人に聞いたところ、この年齢で一からプログラマーを目指しても採用してくれるところはなく、まず無理という話でした。これは、本当でしょうか。 しかし、ネットワーク・エンジニアであればこれからでもなんとか可能だと聞きました。 そこで、伺いたいのですが、プログラマーであれば、ある程度パソコンに向かって黙々とプログラムを組んでいくイメージは想像しやすいのですが(コミュニケーション能力も大事でしょうが)、ネットワークエンジニアというのは、今ひとつ具体的な仕事の場面が思い浮かびません。プログラミングなどは多少あるのでしょうか。 プログラマーとは本質的に異なる職種ですか? プログラミングはほとんどないとしたら私としては、かなり幻滅してしまうのですが・・・ それとも、ネットワーク・エンジニアは例えば、配線をしたりなどかなり体力的な肉体作業の面もつよいのでしょうか。外回りが多く、作業服を着ての仕事であるとか。 自分なりにネット上でさまざま調べてまして、ネットワークの構築、運用、管理をするとのことですが、それぞれ、どんなさぎょうなのかもよくわかりません。 多忙であるとか、最新技術の勉強の連続であるとかは覚悟しており、がんばる気はあるのですが、仕事内容がよく理解できず、踏み込めません。どなたか、アドバイスをよろしくお願い致します。

    • ベストアンサー
    • Java
  • 昔よりプログラミング難易度は低くなった??

    昔よりもプログラミングは取っつきやすくなったのでしょうか? 敷居がさがったというか、馬鹿でもそれなりのものを簡単に作れるように なったのでしょうか? アドバイス頂けると幸いです。 自分は、プログラミングを勉強したことがあるのですが、 勉強したのですが、何かカタチにして作ったという感じまでいったことが 一度もないです。 書籍などのサンプルプログラムをいじって何かやるぐらいで 普段なにかやっていてこういうプログラムがあったらいいなぁーとか 思っても解決できずにいます。 どうしたらいいでしょうか? アドバイス頂けると幸いです。(`・ω・´)

  • HEWでのプログラミングについて

    秋月のH8-3052(USB開発キット)を使っています。 開発環境はルネサスのHEWです。 USB通信を行うプログラミングを作りたいと考え、参考書やサンプルプログラムのコード、電子工作室(PICFUN)のサイトなどを見て学んでいます。 だいたいの手順は理解できたのですが、そのプログラムを自分で書くとなると???となってしまい困っています。 電子工作室では『基本デバイスプログラム』というプログラムが公開されていますが、HEWでそれと同じことをするにはやはり基本デバイスプログラムの流用では駄目なのでしょうか?

  • 個人プログラミング

    現在コンピュータメーカーにてエンジニアをしています。私の希望は開発ですが、一度も開発に触れたことはありません。 ソフトウェア開発等のプログラミングの資格は持っているのですが、実際にプログラムはかけません。 つい先日、面倒なエクセルでの処理がある事を友人に相談したのですが、彼は簡単なプログラムを作り、処理を代行してくれました。 私はただただ見ているしかなかったのですが、羨ましいと思いました。 プログラマーの方は基本的に簡単な事はプログラムを書いて実践できるものなのでしょうか? またそのレベルにいくまでは何年ほど実践を積んでいるのかなど、 参考に教えて頂きたいと思います。 よろしくお願い致します

  • プログラミングについて

    私は、プログラミングを始めて1年未満ですが、プログラムを一から作ったことがありません。ある人のソースを渡されてそれを参考に組んでいます。 会社では一から作らせてくれないので、最近、これでいいのか!?と思います。 そこで、みなさんにお聞きしたいのですが、プログラマーの皆さんは実際に会社等ではどんな感じなのですか?一から作るってことはあまりないのでしょうか? できれば詳しく教えて頂ければ幸いです。 宜しくお願いします。