みんなのプログラミング学習方法

業務でITに携わり、個人でも受注を取っているプログラマに聞いてみた

業務でITに携わり、個人でも受注を取っているマルチなプログラマにプログラムや業務について聞いてみました。
使用経験のある言語はphp,Scala,Python,javascript,java,C言語,F#と多岐に渡ります。

大阪をメインに活躍されている、24歳の方です。

プログラミングについて

%e3%83%92%e3%82%b1%e3%82%99%e3%83%95%e3%82%9a%e3%83%ad%e3%82%af%e3%82%99%e3%83%a9%e3%83%9e

どのくらいの期間、プログラミングを学習して就職(もしくは最初の案件)ができましたか?
ベンチャー企業を立ち上げた先輩の影響を受けてプログラムに興味を持ち半年程度は書籍で学習する→先輩やその会社で働く人に疑問点を解消してもらう、という流れを繰り返しました。

半年が過ぎある程度の開発が出来るようになった時点でプログラマとしてそのベンチャー企業でアルバイトを始めました。

が、すぐには自分でプログラムを書くような案件には携われませんでした。

結局、実際にプログラムを書くようなバイトが始まったのは採用されてから3ヶ月後でしたので実質9ヶ月間はプログラムを書く練習に費やしました。

ベンチャー企業はWebアプリケーションベンダーであったため、まずはphpとjavascriptの学習に興味を持ちました。

特にWeb系のオープンソースが主力になり始めた(安価でそれなりのものが手に入ることが世の中に知れ渡ってきた)時代でしたので、業務での利用も見込めることから先輩にも推奨されました。

どんな方法で就職先(もしくは最初の案件)を見つけましたか?
前述のとおり最初の案件はベンチャー企業でバイトすることにより得ることが出来ました。

大学生になりその会社とは別に自分で仕事を請け負うようになった際にはmixiなどのコミュニティで仕事を探しました。

オープンソースを多く扱っていましたので(WordPressなど)、これに関わる仕事の依頼がないかを探し回り条件が合うものが見つけ出しました。

残念なことにオープンソースのカスタマイズは単価が低いものだと思われており、コミュニティなどでやりたい仕事が見つかっても単価が噛み合うことがなかなかありませんでした。

自分の見積もりの悪さもあったとは思いますが、結局依頼を探す→提案しているを2ヶ月ほど繰り返しやっと数十万円規模の仕事を受注するに至りました。

また現在はベンチャー企業からいただく仕事は請負とし、別の企業で正社員として働いております。

就職の際にはIT企業に固執せず、どんな企業に就職しようともIT部門はあるはずだ、の気持ちで就職活動をしました。

その結果、プログラマからは少し離れてしまいましたがヘルスケア関連のITコンサルをしたりシステムの維持運用に関わる企業に就職することになりました。

今までの知識が無駄になることがなく、なおかつITベンダーという括りだけではなかなか出会えなかったであろう企業でありITという言葉を多角的に捉える必要性を感じました。

就職(もしくは最初の案件)をしてみて自分に足りないと思った知識・技術はありますか?
プログラムの作成ばかりしていると機能面には強くなりますが、それがどのようにお客様が使うかは考えないことが多くなってしまいました。

実際には使用するお客様の業務を第一に考え、それを元にどのようなシステムを構築するかを考える必要があります。

就職し、維持保守にも関わるようになってころでお客様の業務を考えながら仕事をする能力が自分には不足していることを痛感しました。

一緒に働いている人(働いたことがある人)はどんな方法でプログラミングを学んだ人が多いですか?
独学で本やインターネットで基礎知識を身につけ、その後学校などの友人やし就職した職場の研修で知識を身に付けている人が多いです。

逆に、スクールなどお金を払って学ぶようなところで学んできた人はほとんど一緒に働いたことがありません。

オンラインで完結するスクールなどの歴史はまだ浅いので、今後、スクールなどで学んだ経験のある人と一緒に仕事をすることが増えるかもしれませんが、昔からあるプログラム系のスクールでは、講師に実務経験が無い人がいたり、レベルが低い場合があると言うのを聞いたことがあります。

スクールを選ぶ際には現役のエンジニア・プログラマやそれに近いスキルを持っている講師がいることをしっかり確かめて入学した方が良いと思います。

プログラミングを学ぶために何から手を付けるべきでしょうか?
まずは具体的に作ってみたいもののゴールを作ることが大切です。

このときになるべく身近であまり難しくないものを選ぶとよいですが、難しくないかの判断をすることは出来ないと思いますのでそこまで重要ではないです。

プログラムは実際に動いて初めてやりがいを感じます。

プログラムを書く前に本を読み知見を高めることは大切ですが、まずは何を作ってみたいかを考えなければ言語も決めれません。

自分がやってみたいことを実現しやすいプログラミング言語は必ず存在しますので、まずは何を作ってみたいかから決めることが大切です。

プログラミングの学習のコツを教えてください
とにかく手を動かして実際にコードを書いてみることです。

文章で読んだ知識は何かの拍子に忘れてしまいます。

コードを書かなければこの忘れたことにさえ気づかないままどんどん学習を進めてしまうことになります。

また、失敗したり一度忘れたことを再度を学習しなおすとより記憶に定着しやすい面もあります。

コードを書くことに少し慣れたら、紙などプログラムの構造をざっくりと記述してからそれを実際にコーディングしていくことでより理解が早まります。

お勧めの言語はありますか?
C言語です。

世の中には高級言語と呼ばれるすでにいろいろな関数が作られている言語も存在します。

しかしながら、このような言語ばかり扱っているとその裏側で何が起こっているのかを知らないままです。

知らなくてもよいと言えばそこまでですが私は学習の最初であればあるほど、どのようなコードが書かれているのかを知っておくべきだと考えています。

そういう意味でC言語は必要以上に多くの標準関数やライブラリは提供されていません。

つまり、複雑なことを実装しようと思うといつでもプログラムを自分で考えコードを書いてみるしかないのです。

これを繰り返しておくとプログラミングのパターンや知見が増えていきますので最初はC言語に取り組むことをおススメしています。

 
個人的には、業務・趣味ともにphp,Scala.Python,javascriptを使用しています。

phpの案件は近年少し単価が下がってきましたが、Scala.Pythonはまだエンジニアが少ないこともありWebアプリケーション開発の中では高単価を誇っています。

また、言語の仕様としてもPythonは機械学習や集計分析処理に数多くのライブラリを所有しています。

これらのライブラリはWebアプリケーションの開発にとどまらず昨今人気のビッグデータ解析や人工知能的な仕様にも適用されていきますので更なる伸びが期待できるのではないかと考えています。

おすすめの学習方法を教えてください
最低限の知識は身に付けた状態で、どんどんとコードを書くことです。

このときコンパイルできる言語(C言語など)を利用することをおすすめしています。

少しずつでもコンパイルをしてみることで自分の進捗度合いも感じることができます。

書いてみる、コンパイルする、修正してみる・分からなければ調査するのサイクルを繰り返せば確実にプログラミング能力は高まっていきます。

おすすめの書籍やWebサイトを教えてください

Web

苦しんで覚えるC言語:http://9cguide.appspot.com

新・明解C言語 入門編

解きながら学ぶC言語

詳説 Cポインタ

Mac,Winどちらを使用されてますか?理由も教えてください
主にWinを使用しています。

最近はお客様の業務アプリを開発・運用することが多いのでお客様の環境に合わせてほとんどWinを使用しています。

個人で受注している仕事の開発ではほとんどMacを使用しています。

こちらはWebアプリケーションが多いためエディタやエミュレータなどが充実しているMacを中心に使用しています。

色んな著名人がプログラムを学ぶべきと言っていますが、ぶっちゃけプログラムは学ぶべきだと思いますか?
仕事で出会ってきた人の中にはプログラマに向いてないなと感じる人もいます。

私はプログラムを書いたりソフトウェアができあがることが楽しいと思えていますがそうでない場合は学んでまで仕事にしたりする必要はないと思います。

最近では子供向けにプログラミングを指導するスクールなども増えていますし、学校教育でも取り入れることが決定されていますがそこまでして学ぶ必要はないのではないのかというのが正直なところです。

プログラミングの学習で挫折する人が多いと聞きますが、挫折はありませんでしたか?
楽しんでやっていたため完全に挫折したことはありませんでした。

ただ、有名なプログラマの方が書いたソースコードやオープンソースのコードを読んでいるとその技術力の高さに圧倒され自分には向いていないのではないかと考えることは多々ありました。

挫折したとき、挫折とは言わないまでもうまくいかなかったときの対処法はありますか?
変にやりきろうと力まないことです。

分からないことはどんなに悩んでも分からないままのことだってあります。

まずは少し距離を置いて頭を冷やすことが対処法です。

また、同じ悩みを持った人が居ないかをネットで調べてみることもひとつの手です。

同じ壁にいろんな人がぶつかってきたことを知ることで、自分ひとりではない安心感を得ることが出来ます。

プログラマとしてプログラミングの技術以外にあったほうが望ましいことはなんでしょうか?
お客様が何を欲しているのか、自分は何に困っているのかを伝えるコミュニケーション能力が必要です。
こんなプログラマと一緒に仕事がしたい!こんなプログラマとは一緒に仕事はしたくない!というのがあれば教えてください
プログラミング技術はもちろんのこと、しっかりとプログラム中に「コメント」を入れる方は一緒に仕事をしたいです。

また、高い技術力をお持ちの場合そういったものを提供してくださる方も仕事をしたいと思えます。

逆に、わけの分からないコードを書くのにコメントを入れない人など、他人がコードを読む可能性を考えない方は仕事がやりにくいです。

インタビューは以上です。
追加でのインタビューも検討しています。
もし、プログラミングに関することで聞いてみたいことがあれば、コメント欄に書き込んでいただくか、お問い合わせからメッセージをください。

聞くは一時の恥聞かぬは一生の恥

ここまで記事を読んでいただきありがとうございます。

ここまで記事を読んでくれたあなたは、プログラミングを勉強中、もしくはプログラミングの勉強を始めようと思っている方ではないでしょうか。

何か解決したい問題を持って当サイトに訪れたかもしれません。

当サイトの情報であなたの問題が解決できていれば、嬉しいですが、もし、解決できていない場合はteratailで質問してみませんか?

当サイトの情報であなたの問題が解決できてiれば、嬉しいですが、もし、解決できていない場合はteratailで質問してみませんか?

プログラミング学習で意外と大切な「質問力」

プログラミングはわからないことだらけ。

どんなにベテランプログラマーでもわからないことは多く、日々、わからないことを調べています。 むしろ調べている時間の方が長いときさえあります。

ただ、調べても欲しい情報がないときや、聞いた方が早いと感じた場合は、さっさと質問します。

さっさと質問をした方が良いと思っても、独学している方は難しいですよね。

そこでぜひ利用して欲しいのがteratailです。

プログラミングスキルを上達させるには

  • 自分の中のスキルのストック
  • 検索するスキル
  • 人に質問するスキル

が必要だと思っています。

人に質問するスキルはteratailで磨いてみませんか?解決も早いですし、かなり便利ですよ!

teratailで質問すると1時間以内に回答がつくこともあります。

私自身も何度か質問していますが、今の所24時間以内に回答がつかなかったことはありません。

簡単な質問ほどつきやすい気がします。

おそらく、答えられる人が多いからだと推測しています。

初学者にぴったりのサービスです。

Leave a reply

*
*
* (公開されません)

Return Top