Hatena::ブログ(Diary)

Akinekoの日記 RSSフィード Twitter

2010-02-21

プログラミングの勉強を始めて1年間で思ったこととか勉強方法とか

本のまとめに続いてプログラミングの勉強を始めて1年間のまとめとして感想とかどう勉強したのかとかそんな感じのまとめを書きたいと思います。

思いつくままにつらづらと書いて行くのでまとまりは全然ないと思いますがご了承をwつまり殴り書き注意!

ちなみに買った本のまとめの記事はこちら↓

http://d.hatena.ne.jp/Akineko/20100220/1266682148


えーと、まず簡単にプログラミングの勉強を始めた理由ですが、今の職場ではデザインよりの仕事をしているわけなんですが基本は既にデザインしてあるものの加工が多くあまりデザインの仕事はしてない感じなんですね。それでもいろいろと勉強したりはするものも自分センスないなーと思ったり、たまに回ってくるデザインの仕事も理不尽な理由で締切明日だとかやっつけでやる仕事しかなかったりするので、段々と今の職場ではデザインの勉強しても意味がないなーと思うようになったわけです。

でまぁただお決まりの日々を過ごすのも嫌なので考えたところ、今の職場にはシステム部はあるし高校の時の授業で好きだったプログラムについて勉強してプログラマになろうと思い勉強始めたわけなのです。

というわけで、なんか前置きが長くなりましたがそんな感じで始めた勉強のまとめです。

変な切り方ですが無理矢理にでも区切らないと変に長くなりそうだったのでwww


勉強する言語選び

始めるにあたってこれが一番悩みましたねー。有名な言語だけでもかなりありますし、どの言語にも良い所悪い所様々で結局どれがいいんだよ!って1ヶ月ぐらいこれを選ぶだけで悩んだかも知れません。

そんなこんなで選んだのがJavaです。選んだ理由としてはオブジェクト指向プログラミングを勉強するならこれが一番なのかなと思ったからです。個人的には選んで当たりだったなと思っています。当たりだと思う理由はAPIが豊富で、Webアプリデスクトップ・携帯など様々なものが作成できてそれらの勉強が出来ることや、Javaを使って書かれた技術書が多いからです。本に限らずやっぱ情報は多いですしね。

ちなみに個人的に今勉強を始める人に勧めるなら、JavaRubyPythonJavaScript・C#あたりになると思います。理由はなんとなくw


言語の入門書

勉強していてふと思ったのは極端な言い方をすると有識者が判断する良い入門書って実はないんじゃないかなと。理由としてはやはり入門書って詳細な説明を省略するのが必然になってしまうのでどうしてもおかしいところが出てきてしまうんですね。でまぁ、そういったところを知識のある人が読めばこれはダメって思ってしまうんですが、実際のところ入門書に限って言えば言語の文法・機能?さえわかればいいんじゃないかなと。なぜかと言うとちゃんと勉強する人なら入門書で終わらず、その後もちゃんと様々な本を読んで勉強していくと思うんですよ。例えばJavaの入門書なんかで継承を機能の追加的な説明してあっても*1その後ちゃんとオブジェクト指向についての本を読めばそんな使い方はダメだとわかりますしね。文法は文法、継承とかのちゃんとした使い方とかはまた別の知識みたいな。まぁ酷いにも限度があると思いますし、酷いと言われている本は避けてるのでどんなものなのか知らないで言ってるわけなので知らずに語ってごめんなさいですが。なんとなく一度書こうかと思ってた事をいい機会だと書いてみました。


読書法

最初の頃は最初から最後まで順番にまじめに隅々まで読んでました。読む時間なんかも読み始めて集中切れるまでというか集中力切れてきた時の次の区切りまでって感じで。

この読み方されてる方って多いと思うんですが今思えばちと効率悪いなと。理由としては、集中切れてきた前後の当たりは当然のごとく惰性で読んでるのであまり頭に入ってないんですね。読むスピードなんかもかなり遅くなってるので無駄に時間を消費してる部分が多いなと。いいとこはあまりないかもしれませんね。


で、次に始めたのが複数の本を同時に読むこと。読み方はちと変わっただけで気分的に飽きてきたら読む本変えたり、その日の気分で変えたりです。

利点としては、その時の気分に一番あった本を読むのでスピードがよく効率がいいこと。

欠点は、中途半端になり過ぎると結局前に読んだところを覚えてなかったりw


中途半端になり過ぎて忘れてるのが気になったので次に始めたのが、読むときは1章とかまとまりのいい小さい範囲を先に決めてから読み、その区切りがついたら一度本を読むのをやめて休憩なりをすること。本を変えるのもこの区切りで。

利点は、まとまった範囲で読むので知識も塊として入るし、区切り決めてるのでモチベーションが維持し易い。

欠点は、特に思いつかなかったので以降はこれがベースに試行錯誤してる感じです。


読書法についての本を読んだら付箋を使うのがよさげだったので使い始める。使い方としては本に書いてあったのとは違う使い方ですが、本の上に貼るのは重要だと思ったところ、横は読むのに詰まっりと難しく感じたところ、下は読む際の区切りって感じで使ってます。

利点は、重要だと思ったところも難しいと思ったところも理解しようと何回も読み返したりとペースダウンすることがなくなったこと。付箋があれば気になった時に直ぐに見返せますからね。特に難しいところは後の部分を読むことによって理解できたりもしますし。


「トニー・ブザンの頭がよくなる本」と「ザ・マインドマップ」を読んで読書法にマインドマップを取り入れ読み方も書いてあったものを取り込んでみる。読書法はいまいちまだ出来てないのですがマインドマップは少しずつ掴めてきていい感じですね。最初は半信半疑だったんですが上手く書けたものだと見るだけで直ぐに内容思い出せたりとかなり便利です。早くマインドマップを自分のものとして定着させたいなと思います。


勉強時間

最初の頃は仕事終わって帰宅後にご飯や家事など終わったら気のままにって感じで区切りも休みも遊びもめちゃくちゃな感じでしたw

でまぁ経過も何もあったもんじゃないので現状だけ言うと、まず平日は昼休憩の1時間にご飯を食べながら本を1章分読むようにしてます。最近だと1章+マインドマップ作成って感じですね。本は1章が短めの気軽に読める本を選んでいます。そして、会社から帰宅後はさっきと同じく家事とか終わらせてノルマとして1日1章分は最低でも読むようにって決めてます。最近は仕事忙しかったり体調悪かったりと守れてませんが^^;

土日は基本的に勉強会とか仕事とかで大体埋まってるんですが、空いた時は大手書店で本選びも兼ねて読みまくったり今回のように勉強したことをまとめたりしてます。


言語を一つに絞るか複数学ぶか

1つの言語に絞って学ぶ利点。複数勉強するよりも深い知識の習得が早い。つまり実用レベルにより早くなれる。

欠点はその言語しか知らないと固定概念が出来てしまって他言語を扱う際に大きな壁となったりする。


複数言語を学ぶ利点。それぞれの言語特有の考え方を知れるので柔軟な考えが出来る。

欠点はどっち付かずで結局中途半端な力しかない状態になってしまう。


なんとなく自分が思ったことです。ちなみに僕は最初ひたすら複数の言語触ったりしてたんですけど、今はJavaに絞って一定レベルに達することが出来るまでは極力他言語は触らないようにしようと思っています。うん、思ってるんだよ…?w

結局のところ何を勉強するかは個人の自由だとは思いますがねw何かのエキスパートになりたいのか、プログラミング自体を勉強したいのかとか。あと、仕事がプログラマの人は複数勉強しても仕事では基本一つの言語使うでしょうから問題ないように思います。逆にプログラマになりたいと思っている人は今は一つに絞って実用レベルに早く達する事が出来るようになった方がいいだろうなとも思いますし。


基礎からじっくりとor実用的なものを手っ取り早く

基礎からの利点。しっかりとした実力がつく。エラーなどの対処も基礎知識があればないよりも早く気づける場合が多い。応用技術の習得も基礎知識がないよりも早い。

欠点。基礎をどれだけ勉強するかの程度にもよるけど実用レベルの知識の習得はややスローペースになる。


実用的なものを手っ取り早くの利点(フレームワークの使い方からとか)。実用的なというか形になったものの作成が早く出来るようになる。

欠点。基礎がないだけに何かでつまづくと原因が全く予想出来なかったりする。出来たものも実は欠陥だらけだったりの可能性も高い。


質問系の掲示板なんかを見てるとよく基礎の勉強を全然してないなーと本当に驚くような質問がありますよね。このフレームワーク使っててこんなエラーが出たんですがって質問を見たらフレームワークまったく関係ない初歩的ミスだったり。とにかくまぁそういうのは嫌ですし、基礎あっての応用だと思うので僕はとにかくひたすら基礎からいこうと思ってます。*2


勉強会

今のところ参加しているのはわんくま勉強会とこの前参加したVim勉強会ぐらいなのですが、どの勉強会も楽しいのでもっといろんな勉強会に参加していこうと思っています。勉強会はやはり人による生の説明を聞けるので理解が早いですし、なによりもいい刺激になってモチベーションアップになっていいですね。自分の興味外だった知識も入ったりしますし。あと、つながりが出来るのもとてもいいこと。みんなも是非是非いろんな勉強会に参加しましょう!


Twitter

ついったー楽しいよ!みんなも是非ついったーやろう!自分みたいな変態がって思ってる人も大丈夫!みんな変態ばかりだから!www

冗談はさておきついったーはいろんな意味で本当にいいですよ。交流面では知る範囲で一番気軽にいろんな人と話したりとか出来ますしお話を聞くこともできますし、*3情報収集面でも本当に幅広い情報が最速で流れてきますし、ただひたすら独り言をつぶやくのも楽しいです。その独り言に興味を持ってくれた人がいてつながりが出来るのも楽しいです。技術面のちょっとしたお悩みもつぶやけば親切な方が自分の余裕のある時に教えてくれたりします。まぁ頼り過ぎには注意ですが。


アウトプット

よく言われますよね、勉強はブログなんかにアウトプットした方がいいと。これは僕もよくそうだなと思います。まぁ利点がわかりつつもあまりアウトプットしてない自分ですがw

利点。記事としてまとめる為に復習し、曖昧な部分もちゃんと学べる。または曖昧だった部分が認識できる。また、間違ってる部分があれば100%で反応があるわけではありませんが指摘も頂けます。より良いのは更新したって事をついったーなんかにつぶやけば周りの人から指摘して頂けます。反響があればモチベーションもより一層アップしますしね。

まぁ僕が言うなですがorz


情報収集

とりあえず最低限の日課としては、はてなブックマークコンピュータ・ITの人気エントリーをチェックして読むorブクマしてます。

あとは余裕があれば他情報サイトを巡回したりRSS読んだりと。RSSの登録ははてブでよく人気に上がるところとか、ついったーで知ったサイトだとかそういったものを。


これから

何よりもまずプログラマとして転職したいです!一応転職候補はあるんですがいろいろと悩み中。若干今の会社でプログラマに転向出来そうなきっかけ的なものが見えたんでそれを狙って勧めようかなとか。でも出来れば今の職場は離れたいしとウダウダと…。不景気な世の中って難しいですねw


勉強面ではスローペースですが最近ついったークライアントを作り始めてみました。とりあえずPOSTするのとメインTL・Reply・Directあたりを取得して表示&定期更新するまでは出来てるんですが、最近の体調不良とか忙しさで停滞中。読書とどちらをってのもありますね。

作成以外の勉強としてはひとまず先に書いた通りJavaに絞ってやってます。出来れば自宅サーバーもちゃんと体制整えてWebアプリなんかも作っていきたいなーとは思っているんですが、最低限読んで置きたいなと思ってる本たちもまだまだだったりwこういったバランスは難しいですね。


全然まとまりない感じですがひとまず1年間勉強して思ったこととか勉強法だとかのまとめです。何か聞きたいことあれば質問もコメント下されば書きますのでお気軽にどうぞです。


ついでと言ってはなんですが、いつもブログ勉強会やついったーなどでお世話になっております皆さんいつもありがとうございます。これからも頑張っていきたいと思いますので今後ともよろしくお願いします。

*1:いや、もちろん機能の追加とだけ説明してあったらひどいと思いますがw

*2:でも時々焦ったりもしますが…w

*3:返答を強制するなど絶対を求めたらダメですよw

ekafekaf 2010/02/22 12:15 pythonについてどう思いますか?偏見でお願いします。

AkinekoAkineko 2010/02/22 13:43 > id:ekaf さん
コメントありがとうございます。
Pythonは書籍は入門書を読んだだけでして、後は仕事のちょっとした作業を自動化する為にAPIのドキュメントを見ながら使ってるだけなんで、詳しくもありませんしPythonらしいコードも書けてないように思いますので勘違いがあるかもしれませんことをご了承下さい。
で、僕が感じたのは良く言われてる通りインデントでブロック構造を定義するようになっているので、見た目が読みやすく初心者なんかにもいい習慣になっていいなと思います。また標準APIも豊富なので勉強して何か作りたいって時に困らないのもいいなと。あと、関数がオブジェクトとして扱えるのとか__add__とかを定義して演算子の挙動などが変えられるのも上手く扱えるようになれればいろいろと面白そうで魅力的だなと。
逆にちょっとなぁと思うところは定数はやっぱ使いたいなーとか、クラスのメソッドのselfとかのクラス周りの書き方は微妙だなと思うところがあるぐらいですかね。
総評としてはシンプルで簡単なものは手軽に作れますし、凝ったものを作ることも出来る奥の深い良い言語だと思います。

aodagaodag 2010/02/22 14:48 C#について(ry

youandiyouandi 2010/02/22 15:12 C++に(ry

wakana0311wakana0311 2010/02/22 15:20 参考になりました!私はまだ勉強を初めてから半年も経っていませんが、特に本を読む時の付箋の付け方などを取り入れて見たいと思います。

ekafekaf 2010/02/22 17:20 コメントありがとうございます!またちょくちょくきます。

paselapasela 2010/02/22 18:52 すごいです。尊敬します><

bleis-tiftbleis-tift 2010/02/22 19:01 Hask(ry

pazpaz 2010/02/22 21:01 参考になりました!
と同時に、自分もちゃんと勉強しないといけないと反省しました。
素晴らしい刺激をありがとうございます!

nullynully 2010/02/22 23:32 PH(ry

perfect_bobperfect_bob 2010/02/23 04:45 Pa(ry

方言たくさん方言たくさん 2010/02/23 05:28 Li(ry

kaw0909kaw0909 2010/02/23 09:00 はじめましてkawと申します。
自分も今年からWebアプリ開発の勉強をしており、いい刺激をいただくことができました。

言語の絞り込みは悩ましい部分ですね…。
隣の芝が青く見える性格が災いしてるようで、
今もサーバーサイドの実装をJava・PHP・Rubyから絞り込めず、行ったり来たりしています。
まさにどっちつかずの状態です。

akinekoさんのエントリを参考にして、今一度絞り込みについては考えてみようとおもいました。

repeatedlyrepeatedly 2010/02/23 10:07 D(ry

syo-sa19820615syo-sa19820615 2010/02/23 13:35 Ru

n_isamn_isam 2010/02/23 14:22 初めまして!isamと申します。
1年半以上独学で勉強しながらプログラマーやっています。
うちの会社は特別かもしれないですが、WEBに限らずWinアプリまでやったりするので1つの言語に絞れないでいます。
記事を見てとても共感できる場所があったのでコメントしてみました。
頑張ってくださいね★

Twitter http://twitter.com/_isam_

andochinandochin 2010/02/23 16:14 C(ry

RiSKRiSK 2010/02/23 17:46 Scheme についてどう思いますか?偏見でお願いします。

AkinekoAkineko 2010/02/25 13:38 みなさんたくさんのコメントありがとうございます!

> id:wakana0311 さん
付箋の使い方は人それぞれだと思いますが付箋は便利だと思うので是非使ってみてください!
お互いにがんばりましょー!

> paz さん
こんな記事でもお役に立てたようでしたら幸いです><
いろいろと誘惑は多いですもんねーw
それに負けないようにお互い頑張りましょう!

> id:kaw0909 さん
こちらこそはじめまして。
そう言って頂けるとありがたいです><

言語の絞り込みは本当に悩みますよねー。
特に自分が悩んでるところがあの言語では簡単に出来るよって聞いたらもうw
僕もなかなか完全には絞りこめない状態ですが頑張ってください!

> id:n_isam さん
こちらこそはじめましてです。
そういう状況ですとなかなか絞るのは難しいですねーw
どうしても絞るんでしたら何かのエキスパートになるって心意気で絞るのもありなのではないでしょうか?w
応援ありがとうございます。お互いに頑張りましょう><

> id:ekaf さん
いえいえ、こちらこそ。
更新が少ないブログではありますがよろしくお願いします。

> id:pasela さん
paselaさんの方がすごいです!尊敬します><

> id:nully さん
入門書パラ読み&リファレンス見ながら一度簡単なWebアプリを作っただけの感想ということでお願いします。
簡単で小さいWebアプリをサクっと作るのにはいいなーと思います。セキュリティもあまり考慮しなくていいような。僕的には小規模向けフレームワークのような感じでしょうか。
嫌だなぁと思ったのはセキュリティは軽く調べた感じでもやっぱ弱いというかちゃんと作ろうと思うと大変そうなように感じましたし、個人的には大規模な開発には使いたくない言語だなと。


> id:aodag さん id:youandi さん id:bleis-tift さん id:perfect_bob さん 方言たくさん さん id:repeatedly さん id:syo-sa19820615 さん id:andochin さん id:RiSK さん
名前を知ってるだけで触ったことなかったり、まだ入門の半分ぐらいだったり、感想言えるほど知りません!無理です!
というかついったらーの人達は自重しろ!wwwwwwwwwwww

   2010/02/25 17:47 おまえらきもちわるすぎだろ

object Cobject C 2011/07/03 08:24 私はゲームを作っていまして、C言語で書いていますが、javaでゲーム書きますか?

AkinekoAkineko 2011/07/05 12:32 > object C さん
僕も現在オンラインゲームを作っている会社で働いておりC++で作成しています。
で、Javaでゲーム書きますかという質問なのですが僕はJavaでゲームを作成したことありません。
ですが、オンラインゲームのサーバー側なら十分選択肢になるなと思います。

ともとも 2011/09/13 21:16 勉強会って、どうやれば見つかりますか?ググってもなかなかみつからないです。

AkinekoAkineko 2011/09/14 16:47 >ともさん
僕の場合だと、「IT勉強会カレンダー」というのがあるのでここをたまに見て行きたいやつあるかなーと探したりしてますね。
そのまま「IT勉強会カレンダー」でググれば一番上に本家と本家を検索で絞り込めるサイトとが出てくるのでそちらを見てみてください。
あと、僕はTwitterでプログラマさんなんかをフォローしてるのでその人達が発信してくれる情報から知ったりしてます。

dasidasi 2012/07/03 16:07 参考になりました。
更新楽しみにしています。

masaonly1masaonly1 2013/07/20 19:47 初めまして、スミスともうします。
僕もプログラミングを勉強していて、日本にはなかなか良い勉強ソースがないことに驚きました。僕はUdemyというところで勉強したのですが、コース内容がとても良かったのでHTML, CSS, Javasctipt, PHP, MySQL, JSON, AJAX, XML, JQERY, HTML5, CSS3のコースを日本語に翻訳してみました。コースの内、何個かは無料で受けれるコースにしてあるので良かったら試してみてください。

HTML/CSSコース無料URL:https://www.udemy.com/xhtmlcss/?couponCode=Free-youtube

Javascriptコース無料URL:https://www.udemy.com/webjavascript/?couponCode=Free-Youtube

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証