プログラミングできるようになりたんですが、どうすればいいんですか?ってめっちゃ聞かれる
インターン行ってたり、アプリ出したりしてるとおんなじ大学の人とかによく聞かれたりする 相手が女の子の場合は(殆ど無いんだけど)、僕が教えてあげるよ!!ってめっちゃ丁寧なアドバイスしてしまいがちなんだけど、男女差別は良くないのでプログラミングできるようになりたい大学生へのアドバイスを書いておこうと思います
最初に断っておきますが、僕は生活が掛かっているわけでもなく、趣味、遊びでプログラミングしてます 意識は高くないです
初学者の人にはわからない単語みたいなのもたくさん散らばってると思いますが、多分やってればそのうちわかってくると思うので読み飛ばしてください
人によって俺はこう勉強したみたいなのもいろいろなので、いろんな意見のコメント下さい
みんなも気持ちよくなれるプログラミングしていきましょう
序論
どうしてプログラミングできるようになりたいの?マジな話ちょっとできてもモテないよ?
あなたはどうしてプログラミングできるようになりたいんですか?
- モテたいから
- かっこよさそうだから
- 稼ぎたいから
- おもしろそうだから
- 学校で必要だから
いろんな理由があるかと思います
実際僕もかっこよさそうだから、モテたいから、という理由で厨二病の盛りの時期に始めました 結論を申しますと、家に引きこもって薄暗い部屋でパソコンカタカタやってるの、かっこ良くはないですし、モテないです!!! めちゃくちゃできるようになったらモテるのかもしれませんが、僕はまだその境地が見えてすらいないので多分かなり遠いです
稼ぎたいから、という理由はどうなんですかね…?いい感じのところ就職できたら稼げるんでしょうか…?あんまわかんないんで教えて下さいエロい人!
いずれの理由で始めるにせよ、最終的にプログラミング楽しい!ってところに収束すると思うので、やり始めてプログラミング楽しい!もっと知りたい!もっと書きたい!って思えるようになったら向いてると思います 逆に、やっててもあんまり面白くねーなぁ…って思ったらあんまり向いてないので辞めたほうが良いと思います
そんなに甘くねえよ
全然プログラミングできない人が 「作りたいアプリがあるからJava勉強しよw今月中にプロトタイプ作りたい」 とか言ってるのを見かけるんですが
甘えんなカスって感じですね
実際、Javaを勉強して、Javaの文法をマスターしても普段つかっているようなアプリが作れるようにはなりません プログラミング自体はある程度のレベルまではそんなに難しいものではありません ですが、Androidアプリを1つ作るにしても、Javaはもちろんの事、AndroidのAPIやネットワークの知識、データ永続化、その他ライブラリ等々の使い方、原理をある程度理解しておく必要があります
実際、僕にプログラミングできるようになりたいです!オススメの本とか教えて下さい!って来た人の殆どが挫折してます (僕のアドバイスが悪かったのかもしれませんが、それならすいません)
大学生が空き時間でプログラミングの勉強し始めてから人に見せれるものができるようになるまでには、結構長い時間がかかります
一ヶ月そこらでサクッとアプリ作れるようになったりしません
数学だって最初は足し算引き算から初めて、積み上げていってやっと微分積分とかができるようになるんですから、そういうものだと思って、根気よく続けていきましょう
プログラミングできるといい事
プログラミングができて、プログラミングが楽しめるようになると、半自動的にITリテラシーも高まり、こんないい事があります
- パソコン一台で気持ちよくなれる
- めちゃくちゃ楽しく(仕事がアレば在宅でも)バイトできる
- ネット上にあるITリテラシーが低い人間を馬鹿にした情報に惑わされなくなる
- アナログな人間がコツコツやってる作業を自動化して、時間の節約ができるようになる
って感じです
もうプログラミングやるしか無いですね
本題
本題に入ります 独学でいけますか?って聞かれることがあるんですが、大丈夫です!僕も完全に独学です!(余談#自分語り)
ここからは独学でやっていくっていう前提でいきます
授業でやってる、身近に教えてくれる人がいるor教えてくれる人を作れる(余談#女エンジニアとその囲いたち)場合でも基本は同じです
初めてのプログラミング言語
世の中には様々なプログラミング言語(余談#いろいろなプログラミング言語)があります それぞれに特徴があり、状況によって使い分けられますが、殆ど一緒です
正直最初の言語なんてなんでもいいと思います どの言語でも教本の最後の項までやりきれば、それなりにスキルは身につくと思います
ですが、多くの初学者は自分で決めきれないと思うので僕は初めてのプログラミング言語にはC言語をオススメしています
人によってどの言語をオススメするかは様々だと思いますが、C言語の構文を受け継いだ言語が多く(似ているものが多いということ)、静的型付けであり、メモリについてなども軽く学べるからです
僕も一番最初に触ったのはC言語でしたし、C言語から初めて良かったと思います
正直教本はなんでもいいと思いますが、たまにびっくりするくらいカスな本があるので注意しましょう
本を探すときにも、本屋に行くよりも大学生協においてあるような本のほうがまともな気がしてます
僕はこれで勉強しましたが、環境構築等々の記述は無いのでC言語入門 - 開発環境の構築 - Webkaruなどを参考にすると良いかもしれません
幸い、今はネット上にIT関連の情報は山のようにあるのでそれをうまく活用していきましょう ネットには沢山の情報がありますが、古かったり、間違ってたりするという事は留意しておきましょう
僕はプログラミング言語の教本は↑のC言語入門以外読んでません。それ以外の言語はほぼネットの情報で勉強しました。
基本的に、わからない事があったら
という感じにしましょう
自分でちゃんと調べる事で、わからない事を探すスキルや、大量の情報の中から必要な情報を探しだすスキルが身につきます
というかいちいちしょうもないこと毎回毎回聞いてくんなググれカス
言語を勉強するにあたって、絶対にちゃんと書いてください(紙に書くんじゃなくてパソコンに打ち込むんですよ) 天才は別として、本を読んでるだけでは書けるようになりません
教本に書いてあるやつ、例題のプログラム、自分で考えたプログラム(←これが大事!)がちゃんと思った通りに動くかどうかなど、どんどん書いて書いて書きまくりましょう
自分で考えたプログラムが自分の思った通りに動いた瞬間は多分めちゃくちゃ気持ちいいと思いますし、僕もこの気持ちよさが辞められなくて毎日書いてます
次のプログラミング言語
僕がC言語をオススメして、C言語終わりました!次どうしたらいいですか!って言ってきた人はこれまでいません
最初のプログラミング言語が終わったら、次は自分が作りたい作品を作りましょう
やりたい事をやるためには何のスキルを身につける必要があるのかを自分で調べて、頑張って身につけてください!!!
よくある質問
- 資格は持ってますか?
持ってませんし、資格を持ってなくて不利になったこと無いです
PCってMacのほうがいいの?
- 僕はiOSアプリ開発をするからという理由でMacにしていますが、まぁ実際Mac(OS X)のほうがやりやすいですね…でも僕はLet's Noteが好きです
最後に
プログラミング楽しいからみんなやろう
プログラミングしてみたいって方で、これ読んで相談とかあれば是非どうぞ
みなさんの疑問点等々をどんどん追記していきたいと思います
余談
自分語り
僕が最初にプログラミング始めたのは、中2くらいで、まぁ厨二病です 家にC言語入門の本が落ちてたので、それをやって素数の出力とかして遊んでました
高校生の頃はあんまりやってませんでした
真面目にプログラミングし始めたのは大学生になってからで、Web開発やったりアプリ開発やったり、IT企業でバイトしたりし始めました
大学生になってから、PythonとかSwiftとかいろんな言語、いろんな技術に手を出し始めて、ガリガリ書いてたらすぐにモノを作れるようになりました
段々スキルも上がってきて hayashikun.hatenablog.com こんな感じなうです
女エンジニアとその囲いたち
プログラマは女子人口が少ないです その集団に女子が入ったらどうなるか、当然ながら「オタサーの姫現象」が生まれます
Twitterとか見てるとめっちゃキショいです
対してスキルが高くないわけでも無い女子に男が群がって、女子が獲得したスキルを称賛し、女子は調子に乗っている地獄みたいな世界が存在します
プログラミングできるようになりたい女子はこれを利用すれば、体の良いプログラミング教えてくれる先生が手に入り、承認欲求も満たされます
「◯◯さん凄い!私も勉強しよ!」とか言ってたらすかさず「教えてあげるよ!」ってリプライ来ますよ
普段から体の一部でも晒してれば効果覿面です
正直僕はこういうの嫌いですが… (女の子がプログラミングするのは大歓迎なんだけど、女を使って気持ち悪い馴れ合いするのはちょっと…)
べ、別に羨ましくなんかないんだからね!
いろいろなプログラミング言語
世の中にはいろいろなプログラミング言語があります (僕が知ってる中で)メジャーなプログラミング言語について軽く紹介します
C言語
静的型付けの手続き型言語 大学でも情報系の学部なら大体Cは触るんじゃないでしょうか
C++
C言語にオブジェクト指向が追加された感じって言うと怖いおじさんから殴られそうだけどそんな感じ 正直複雑で難しい
Java
静的型付けのオブジェクト指向言語 構文はCに似てる 「30億のデバイスで走るJava」って言われるくらいいろんなところで走ってる Androidアプリ開発するなら(今のところ)Javaでしょう
Ruby
動的型付けのオブジェクト指向言語 国産言語だけあってか、日本のWeb業界ではRubyがめちゃくちゃ多い
Python
動的型付けの言語 アメリカとかでは教育用に使われたりしてる 構文がちょっと特殊 日本ではRubyに押され気味
Swift
Apple謹製の静的型付けの言語 今のところiOSとかOS X向けアプリ開発くらいしか使うところないかもだけど、先日OSS化されたのでこれからWebとかでも使われるかも…?
JavaScript
キモオタがJSサワサワとか言ってる時、だいたいJavaScriptの事 動的型付けのオブジェクト指向言語 構文はCに似てる 主にブラウザでリッチな事するのに用いられるけど、最近Node.jsとかいろいろ出てきて最近Hot