こんばんわ。
仕事でプログラミングをすることになったのですが、現在は現場で使えるレベルではないので
どうにかしてスキルアップを図りたいです。
そこでプログラマのみなさんはどのようにトレーニングしましたか?
私の現状としては、インターネットを参考にしながら
.NET frameworkで約1200ステップの1対1ソケットプログラムを
0から作成するのに1か月半かかりました。
(恥ずかしながらコメントも含んでいるのでソースのみだともっと少ないです)
ステップ数をスキルの目安にするのは賛否両論あるようですが、
ほかに目安になりそうなものがなかったので記載しました。
また、次の目標としておすすめの例題などありましたらアドバイスいただきたいです。
言語はJAVA・C#・C・VBAなどの中から選ぼうと思います。
例)5000~10000ステップくらいで作成可能な日常で使うツール・ゲームなど。
以上よろしくお願いします。
No.6ベストアンサー
- 回答日時:
質問やお礼を拝見して、プログラムの前に
仕事に、パソコンをどのように活用していくか?
ということろがまだ見えていないのではないかなと感じました。
既に回答者方々のアドバイスにあります様に、擬似的なシステムを一度
自分で作ってみることをお勧めします。
一番の事例と思うのが、ご自身が販売店の経営をしているとして
仕入から販売、売り上げ管理をするシステムは一度、チャレンジしてみるべきと思います。
基本は
1、商品一覧のデータベースを準備
2、取引先一覧のデータベースを準備
3、1と2を利用して、日々の注文、売り上げを入力して、出荷品に対して
必要な納品書など自動作成
4、毎月の請求書の作成、入金管理など月次ベースの処理
ほとんどの企業ではすでにシステム化されていると思いますが、どこにでもある基本中の基本です。
この夏休みを利用してレベルアップしたいというのであれば
エクセルVBAは、簡単で紹介しているサイトも沢山あります。
業務用というのであれば、以下のサイトを上から順に目を通してみてはいかがでしょうか。
最初のほうは、簡単ですらすらでしょうが、奥へ進むにつれて難易度があがります。
http://www.asahi-net.or.jp/~ef2o-inue/top01.html
私も、若い人に色々と指導をしていますが、プログラミングをマスターすると同時に
自分の仕事について、前工程、後工程を含めて全体を知ってシステムを作成しろと
よく言いますね。
とにかく、一から百まで指示しないとシステムが組めないようではダメです。
こんなもんがあれば便利だね、と一言言ったらすべてが出来る社員が良いですね。
出来れば、何も指示しなくても、ああしたい、こうしたいとイメージができる社員が
ほしいです。
>一番の事例と思うのが、ご自身が販売店の経営をしているとして
仕入から販売、売り上げ管理をするシステムは一度、チャレンジしてみるべきと思います。
とても具体的な例題ありがとうございます。
参考になるURLまで張っていただいてほんとに助かります。
受け身ではなく、自分から提案できるSEになることが大事なんですね。とりあえず今回はデータベースのひな形を決めてそれらを組み合わせて帳票をつくるプログラムを作ってみます。
ありがとうございました。
No.5
- 回答日時:
> 知識が乏しくてすみません、疑似業務システムとは具体的にどういうことでしょうか?ちなみに私の身の回りで日々の決まったルーチンワークなどは思い浮かばないので…
SE経験があると書いてあったのですが、業務のシステムは未経験のでしょうか?
それを簡略化したものを作ったら?と言う提案なのですが。
要件分析とかも未経験なのでしょうか。
なかったら、コンビニのレジのシステムとかでっち上げれば良いんです。一日の売上計上とか、売れ筋分析とかね、色々思いつきませんか。
これが出来ないSEが心配です。
> 画面処理というのはGUI上での操作ということでしょうか?
WEBでもVBでもお好きな方で。
と言うか、業務システムは操作しないと始まりませんよね?
返事遅れてしまってすいません。
回答ありがとうございます。
未経験なので名ばかりのSEなんです。
それにしても基本的なことがわからなすぎですね。。
コンビニのレジですか。ちょっと考えてみます。
No.4
- 回答日時:
すくなくともゲーム開発の組み方とシステムの組み方は違うので、システムの組み方を勉強したほうが良いでしょう。
SEだったのなら知っている知識から簡易的な擬似業務システムは作れませんか? データベースや画面処理やらのイメージはありますよね?
>SEだったのなら知っている知識から簡易的な擬似業務システムは作れませんか?
知識が乏しくてすみません、疑似業務システムとは具体的にどういうことでしょうか?ちなみに私の身の回りで日々の決まったルーチンワークなどは思い浮かばないので…
> データベースや画面処理やらのイメージはありますよね?
簡単なSQLくらいならわかります。DBも次の作成する例題に組み込めたら面白いですね!DBについても実践で学びたいです。
画面処理というのはGUI上での操作ということでしょうか?
No.3
- 回答日時:
トレーニングというわけではないですが、その作られたプログラムの見直し(クラスやメソッドの構成に不適切なところはないかとか、よりよくならないかとか、無駄がないかとか、数ヶ月後に見直して理解できるかなどなど)や単体テスト(ユニットテスト)を導入してみるとかはどうでしょうか。
なるほど。クラスやメソッドの構成はある程度見直しましたが、テストについてはあまり考えていませんでした。漠然とテストすると言ってもどの粒度でどこに重点を置いて何項目テストすればいいのかもわからないので調べてみます。
ただ、やはり作成の数をこなしたいという思いがあるのでもう1つなにか作ってから考えようと思います。
No.2
- 回答日時:
>仕事でプログラミングをすることになったのですが、
それなら「作るものネタ」はあるんですよね
ネタがあるならそれを作ることです
ただし,ハードルが高いならば
そのハードルを分析して分解することです.
「困難は分割せよ」(デカルト)は至言です.
プログラムというと言語の側面に目が行きますが
実際は,
対象を分析して,
実現可能な小さな単位に分割して,
入力と出力の形式を整理して
その小さな単位がうまく連続動作するように
構築することのほうが大事だと思います.
ぶっちゃけ,言語の種類なんかはどーでもよくって
パーツで要求されるものが簡単に書けるものであればいいです
私なんかだと,状況に応じて
既存のツール,エディタのマクロ,Perlの自作スクリプト,VBSなんか
を連結させます.
プログラムそのものが仕事の目的ではなく
それを使って仕事をすることがメインのときは
「車輪の再開発」の暇はないですから.
ちなみに主観ですが
日常的に使う「自作ツール」なら
コンパイル不要のスクリプト系言語で作るほうが
圧倒的に便利だと思いますよ.
>それなら「作るものネタ」はあるんですよね
ネタがあるならそれを作ることです
いいえ、今までは名ばかりのSEをしていたのですが、プログラミングの基本がわからないとまとめる立場にもなれないと思うので、とりあえず次に降りてくる製造の仕事をさせてもらうことになりました。なのでどんなものをどれくらいので期間作成するかもまだきまっていません。それまでにPGに慣れておきたく、何か面白い題材がないかとアドバイスを求めて質問させていただきました。
>日常的に使う「自作ツール」なら
コンパイル不要のスクリプト系言語で作るほうが
圧倒的に便利だと思いますよ.
そうなんですか。スクリプトについてもう少し勉強してみようと思います。ただ、仕事で使っているのを見たことがないのでやはり質問で挙げた言語メインで勉強しようと思います。
No.1
- 回答日時:
トレーニングと聞いて、プログラミングし始めたころにやってたことと言えば
『自分が面白そうだと思うものを、汚くてもいいから完成するまで諦めずにやる』
次に
『作ったものに対してどれだけ綺麗なプログラムにまとめられるかを突き詰めて
リファクタリングする』
今はネットもあるし、昔に比べたら比較的悩まずにものづくりが出来ると思います。
でもコピペは絶対にしない。
真似たコーディングをするならば、その部分のみを動作させるアプリケーションを
作って、何をしているかを全て理解する。
やれと言われてやるより、自分が楽しめる手段で学習するのが一番です。私は。
>『自分が面白そうだと思うものを、汚くてもいいから完成するまで諦めずにやる』
そうですね。そこで私は今回ソケットを用いたチャットプログラムを作成してみたんですが、次に何かいいアイデアがないかと考えているところです。
>『作ったものに対してどれだけ綺麗なプログラムにまとめられるかを突き詰めて
リファクタリングする』
こちらも自分なりに実施してみました。最初は1つのメソッドの中にすべての機能を入れていたのですが、機能ごとにメソッドやクラスを分割して少しは見やすいプログラムにしたつもりです。
>でもコピペは絶対にしない。
そのとおりですね。コピペは身に付かないと思っているので仕組みを理解することを意識するよう心がけています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MS-DOSで作ったBASICプログラム...
-
API、OCX、DLLって何でしょう?
-
Timerイベントについて
-
EXCEL-VBAのプログラムを移植し...
-
C言語のHP-UXからLinuxへのポ...
-
OSとCPUの関係について
-
小中学校でプログラミングなん...
-
Perl5とActivePerl
-
VisualBasic.NETとVisual C++....
-
Visual Basic と VC++ のちが...
-
プログラミングのスキルを上げたい
-
PHPとHTMLの違い(運営・管理?)
-
コンソールアプリでファイル選...
-
私は23歳です 新たにプログラ...
-
あるプログラムの制作を依頼し...
-
Webプログラムを外注した場合の...
-
機能拡張しやすいプログラムの...
-
プログラムとは理系ですか文系...
-
プログラミングでどうしてもよ...
-
VBプログラムをEXCEL VBAに移植...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
API、OCX、DLLって何でしょう?
-
VBプログラムをEXCEL VBAに移植...
-
Ryzen 3700(無印)はWin11に対応...
-
SNMPトラップ情報をC#.netで作...
-
UNIX環境でのCプログラム上でC...
-
このプログラミング誰か教えて...
-
Cプログラムの解析(関数の呼び...
-
VBS:コンピュータ名を取得し、...
-
VB.net エラーメッセージを英文...
-
Sleep命令で指定した待機時間が...
-
C言語でSMTPを使ったプログ...
-
C言語のHP-UXからLinuxへのポ...
-
i,j,k
-
コンソールアプリでファイル選...
-
stdio.hのバッファについて。
-
プログラミング言語の覚え方習得法
-
DLLってなに?
-
ランチャーの作り方について教...
-
機能拡張しやすいプログラムの...
-
NASMが動かない。
おすすめ情報