こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

プログラミングのスキルを上げたい

こんばんわ。
仕事でプログラミングをすることになったのですが、現在は現場で使えるレベルではないので
どうにかしてスキルアップを図りたいです。

そこでプログラマのみなさんはどのようにトレーニングしましたか?

私の現状としては、インターネットを参考にしながら
.NET frameworkで約1200ステップの1対1ソケットプログラムを
0から作成するのに1か月半かかりました。
(恥ずかしながらコメントも含んでいるのでソースのみだともっと少ないです)
ステップ数をスキルの目安にするのは賛否両論あるようですが、
ほかに目安になりそうなものがなかったので記載しました。


また、次の目標としておすすめの例題などありましたらアドバイスいただきたいです。
言語はJAVA・C#・C・VBAなどの中から選ぼうと思います。

例)5000~10000ステップくらいで作成可能な日常で使うツール・ゲームなど。

以上よろしくお願いします。

投稿日時 - 2013-08-09 22:15:54

QNo.8213071

すぐに回答ほしいです

質問者が選んだベストアンサー

質問やお礼を拝見して、プログラムの前に
仕事に、パソコンをどのように活用していくか?
ということろがまだ見えていないのではないかなと感じました。
既に回答者方々のアドバイスにあります様に、擬似的なシステムを一度
自分で作ってみることをお勧めします。
一番の事例と思うのが、ご自身が販売店の経営をしているとして
仕入から販売、売り上げ管理をするシステムは一度、チャレンジしてみるべきと思います。
基本は
1、商品一覧のデータベースを準備
2、取引先一覧のデータベースを準備
3、1と2を利用して、日々の注文、売り上げを入力して、出荷品に対して
  必要な納品書など自動作成
4、毎月の請求書の作成、入金管理など月次ベースの処理
ほとんどの企業ではすでにシステム化されていると思いますが、どこにでもある基本中の基本です。

この夏休みを利用してレベルアップしたいというのであれば
エクセルVBAは、簡単で紹介しているサイトも沢山あります。
業務用というのであれば、以下のサイトを上から順に目を通してみてはいかがでしょうか。
最初のほうは、簡単ですらすらでしょうが、奥へ進むにつれて難易度があがります。

http://www.asahi-net.or.jp/~ef2o-inue/top01.html

私も、若い人に色々と指導をしていますが、プログラミングをマスターすると同時に
自分の仕事について、前工程、後工程を含めて全体を知ってシステムを作成しろと
よく言いますね。

とにかく、一から百まで指示しないとシステムが組めないようではダメです。
こんなもんがあれば便利だね、と一言言ったらすべてが出来る社員が良いですね。
出来れば、何も指示しなくても、ああしたい、こうしたいとイメージができる社員が
ほしいです。

投稿日時 - 2013-08-14 12:03:04

お礼

>一番の事例と思うのが、ご自身が販売店の経営をしているとして
仕入から販売、売り上げ管理をするシステムは一度、チャレンジしてみるべきと思います。

とても具体的な例題ありがとうございます。
参考になるURLまで張っていただいてほんとに助かります。
受け身ではなく、自分から提案できるSEになることが大事なんですね。とりあえず今回はデータベースのひな形を決めてそれらを組み合わせて帳票をつくるプログラムを作ってみます。

ありがとうございました。

投稿日時 - 2013-08-27 21:06:32

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.5

zwi

> 知識が乏しくてすみません、疑似業務システムとは具体的にどういうことでしょうか?ちなみに私の身の回りで日々の決まったルーチンワークなどは思い浮かばないので…

SE経験があると書いてあったのですが、業務のシステムは未経験のでしょうか?
それを簡略化したものを作ったら?と言う提案なのですが。
要件分析とかも未経験なのでしょうか。

なかったら、コンビニのレジのシステムとかでっち上げれば良いんです。一日の売上計上とか、売れ筋分析とかね、色々思いつきませんか。
これが出来ないSEが心配です。


> 画面処理というのはGUI上での操作ということでしょうか?

WEBでもVBでもお好きな方で。
と言うか、業務システムは操作しないと始まりませんよね?

投稿日時 - 2013-08-11 10:34:56

お礼

返事遅れてしまってすいません。

回答ありがとうございます。
未経験なので名ばかりのSEなんです。
それにしても基本的なことがわからなすぎですね。。

コンビニのレジですか。ちょっと考えてみます。

投稿日時 - 2013-08-27 20:57:34

ANo.4

zwi

すくなくともゲーム開発の組み方とシステムの組み方は違うので、システムの組み方を勉強したほうが良いでしょう。
SEだったのなら知っている知識から簡易的な擬似業務システムは作れませんか? データベースや画面処理やらのイメージはありますよね?

投稿日時 - 2013-08-10 15:19:13

お礼

>SEだったのなら知っている知識から簡易的な擬似業務システムは作れませんか? 

知識が乏しくてすみません、疑似業務システムとは具体的にどういうことでしょうか?ちなみに私の身の回りで日々の決まったルーチンワークなどは思い浮かばないので…


> データベースや画面処理やらのイメージはありますよね?

簡単なSQLくらいならわかります。DBも次の作成する例題に組み込めたら面白いですね!DBについても実践で学びたいです。
画面処理というのはGUI上での操作ということでしょうか?

投稿日時 - 2013-08-11 01:15:06

ANo.3

トレーニングというわけではないですが、その作られたプログラムの見直し(クラスやメソッドの構成に不適切なところはないかとか、よりよくならないかとか、無駄がないかとか、数ヶ月後に見直して理解できるかなどなど)や単体テスト(ユニットテスト)を導入してみるとかはどうでしょうか。

投稿日時 - 2013-08-10 11:30:33

お礼

なるほど。クラスやメソッドの構成はある程度見直しましたが、テストについてはあまり考えていませんでした。漠然とテストすると言ってもどの粒度でどこに重点を置いて何項目テストすればいいのかもわからないので調べてみます。

ただ、やはり作成の数をこなしたいという思いがあるのでもう1つなにか作ってから考えようと思います。

投稿日時 - 2013-08-10 11:56:11

ANo.2

>仕事でプログラミングをすることになったのですが、

それなら「作るものネタ」はあるんですよね
ネタがあるならそれを作ることです

ただし,ハードルが高いならば
そのハードルを分析して分解することです.
「困難は分割せよ」(デカルト)は至言です.

プログラムというと言語の側面に目が行きますが
実際は,
対象を分析して,
実現可能な小さな単位に分割して,
入力と出力の形式を整理して
その小さな単位がうまく連続動作するように
構築することのほうが大事だと思います.

ぶっちゃけ,言語の種類なんかはどーでもよくって
パーツで要求されるものが簡単に書けるものであればいいです
私なんかだと,状況に応じて
既存のツール,エディタのマクロ,Perlの自作スクリプト,VBSなんか
を連結させます.
プログラムそのものが仕事の目的ではなく
それを使って仕事をすることがメインのときは
「車輪の再開発」の暇はないですから.

ちなみに主観ですが
日常的に使う「自作ツール」なら
コンパイル不要のスクリプト系言語で作るほうが
圧倒的に便利だと思いますよ.

投稿日時 - 2013-08-10 09:30:00

お礼

>それなら「作るものネタ」はあるんですよね
ネタがあるならそれを作ることです

いいえ、今までは名ばかりのSEをしていたのですが、プログラミングの基本がわからないとまとめる立場にもなれないと思うので、とりあえず次に降りてくる製造の仕事をさせてもらうことになりました。なのでどんなものをどれくらいので期間作成するかもまだきまっていません。それまでにPGに慣れておきたく、何か面白い題材がないかとアドバイスを求めて質問させていただきました。


>日常的に使う「自作ツール」なら
コンパイル不要のスクリプト系言語で作るほうが
圧倒的に便利だと思いますよ.

そうなんですか。スクリプトについてもう少し勉強してみようと思います。ただ、仕事で使っているのを見たことがないのでやはり質問で挙げた言語メインで勉強しようと思います。

投稿日時 - 2013-08-10 11:49:12

ANo.1

トレーニングと聞いて、プログラミングし始めたころにやってたことと言えば
『自分が面白そうだと思うものを、汚くてもいいから完成するまで諦めずにやる』

次に

『作ったものに対してどれだけ綺麗なプログラムにまとめられるかを突き詰めて
リファクタリングする』


今はネットもあるし、昔に比べたら比較的悩まずにものづくりが出来ると思います。
でもコピペは絶対にしない。
真似たコーディングをするならば、その部分のみを動作させるアプリケーションを
作って、何をしているかを全て理解する。



やれと言われてやるより、自分が楽しめる手段で学習するのが一番です。私は。

投稿日時 - 2013-08-10 03:12:36

お礼

>『自分が面白そうだと思うものを、汚くてもいいから完成するまで諦めずにやる』

そうですね。そこで私は今回ソケットを用いたチャットプログラムを作成してみたんですが、次に何かいいアイデアがないかと考えているところです。


>『作ったものに対してどれだけ綺麗なプログラムにまとめられるかを突き詰めて
リファクタリングする』

こちらも自分なりに実施してみました。最初は1つのメソッドの中にすべての機能を入れていたのですが、機能ごとにメソッドやクラスを分割して少しは見やすいプログラムにしたつもりです。


>でもコピペは絶対にしない。

そのとおりですね。コピペは身に付かないと思っているので仕組みを理解することを意識するよう心がけています。

投稿日時 - 2013-08-10 11:38:19

あなたにオススメの質問