ノーモア普通のおじさん

ヒゲが濃ゆい30代普通のおじさんが、脱毛、資産運用、育て及び旅行について普通に綴ります。

普通のサラリーマンのプログラミング

私の遍歴

スペック

大卒理系電気工学系、プログラムは課目で少しあった程度

英語はプログラミングを本格的に勉強する前からある程度できた。

遍歴

2004年 大学1年でパソコンを初めて買う

2007年 卒研でC言語を取り扱う(主要テーマではない)

2009年TOEIC900点以上とる。

2010年 iPhone3GSを買う(以降ずっとiPhone)

2011年 たまにプログラムとかワードプレスの本買う、ただしほぼ未使用

2012年 ロリポップを契約してワードプレス開設、しかしほぼ放置

2015年 Progateで勉強開始

2016年 仕事で作りたいwebサイトのイメージが湧く

2017年 仕事でhtml,css,jqueryを使用した簡単なサイト作成

2018年 はてぶを開始

2019年 作りたいアプリ(モバイル)のイメージが湧く、本格的に開発開始

2020年 iosモバイルアプリ概成、androidモバイルアプリ作成開始

仕事で使うwebサービスのイメージが湧き、仕事で使うwebアプリ開発開始

2021年 仕事で使うLeafletを使用したwebサービスリリース(半年くらいで完成)

サーバーはまだFirebaseを使う程度の力しかありませんが、とりあえずはリリースできるくらいはできるようになりました。

勉強方法

初期(iPhone買った以降)

なんとなくプログラムとかそういったものが重要というのは分かるが具体的に何をすればいいか分からず。それっぽい本(ワードプレスとかPHPの専門書)を買って悦に入り、そのままほぼ読まずに放置してました。

実際にロリポップワードプレスサイトをサーバーに作ってみるも放置(環境設定だけしてほぼ終わり)

中期(progate開始)

初めて体系的に勉強しました。基礎から応用、簡単から徐々に難しくという通常教育の流れとしては普通の流れで勉強し始めました。

プログラムではないかもしれませんがhtmlとcssはよく分かるようになりました。

progateを夢中でして、この頃は仕事でhtmlとcssメインで一部jqueryで動きを持たせたwebサイトを作れるようになりました。

仕事では使いませんでしたが、Rubyなどプログラムのコースも一通り実施して、なんとなく分かる様になりました。

後段(モバイルアプリ作成)

アプリ作成を開始した時期になります。作成にあたり分からないことを勉強していったイメージです。

クラスとかMVCモデルとか、Progateで何となく勉強したけど、いまいち使い方がわからなかったものを実際に使っていって、理解を深めていったところでもあります。

主にUdemyを使って勉強し、最初はswiftを学び、次いでfirestoreを学びました。swiftは日本の動画でした。作りながら学んで行くタイプでしたが、イマイチ分からずでした。firestoreは海外動画で学びました。質が良く、これを見ながら並行して作成して行くことが出きました。

(Udemy)Firebase Firestore for iOS

ちなみに最初の当初見た日本の動画が微妙だったのは、関係ない話が多かったり、講師自体のプログラミング能力がそこまで高くなく、実はクラスとかモデルとか基礎をあまり理解していないのに解説していたからだと気付いたのは後からでした。

最初に見た日本の動画の評価はよかったのですが、実際は。。

いい動画で勉強しましょう。

なおUdemyで海外動画を見れたり、xcode、androidStudio、ターミナルなど全部英語で書いてあるものを苦もなく普通に使用できて、詰まったら、github、stuckoverflowなど日本語だけでなく英語サイトからも解決の資を得ることができたり英語を勉強していてよかったと思ったところでもあります。

 

futsu-ojisan.hatenablog.co 

プログラミングは難しい

さらっと書きてきましたが、プログラミング未経験者はプログラミングの難易度がイマイチ分かりません。

ただネットで溢れている3ヶ月でプログラミングをマスターとかその手の記事を見ていると「簡単じゃん、FP2級くらい?」と勘違いしてしまうかもしれません。

決してそんなことはありません。

感覚的には「英語ができるようになる」と似ていて、ある程度使えるようになるまでにも相当の時間を要します。

3ヶ月間昼夜問わず、集中して、プログラミング言語を絞った上でみっちりやればある程度使えるようになるかもですが、私のようなサラリーマンには無理です。

プログラミングは難しい、という正しい認識が重要です。

それなりの覚悟が必要です。

今だから分かる、プログラミング勉強(というか作成)方法

目標(作りたいプロダクト)を確立

難しいものほど目標がないときついです。

プログラミングは非常に難しいのでしっかりした目標が必要だと思います。

どうやって目標を作るか

私の場合、今ある仕事を真面目に取り組むことで目標が見えて来ました。こういうのがあればもっと効率化されるのに、と思った経験がある方は多いと思います。

それを作ろうとすると目標が見えて来ます。

しかし矛盾する様ですが、ここまで思いつくにもプログラミングでどんなことができるのかある程度のイメージが必要です。

とりあえずは難易度が低く、プログラムのための画面になれるhtmlとcssを勉強するのがいいのではないかと思います。そしてモチベーションを維持しつつこういうのをいじるためブログを書くのがいいのではないかと思います。webでもJavaScriptは触れるので、多少プログラミングの知識がつきます。

必要な勉強

目標ができたらそれに必要な勉強を始めます。何となく人気があるからpython、とか選んでしまってもモバイルでは使えません。

目標に合った言語を勉強しましょう。

とはいえ目標に合った言語の中にも複数の選択肢があります。

新しい言語だと、簡潔に記載できたりしますが、日本語の公式ドキュメントがなかったり、何か詰まった際に検索しても解決策が出てこなくて、自力で詳細に理解して解決しなくてはならないことがあります。

昔からある言語だと検索ですぐ出てきますが、長ったらしかったり、複雑だったり、やる気が削がれていく可能性はあります。

プログラミング

勉強を全部終わってか作成開始ではなく、ちょっと勉強してすぐに作り始めた方がいいです。作っていく中で障害にあたりますので、その時に色々調べて解決していくと知識、技能共についていきます。

まとめ

私のプログラミング勉強について紹介しました。本当にこれが正しいやり方かはわかりませんし、非効率かもしれません。

むしろ#駆け出しエンジニア、などと比べるとどうしようもなく非効率ですし、覚えの悪さが目についてしまいます。

ただしそれでも、とりあえずなんとなく作れる様にはなって、インプット型の人間からアウトプット型に変化できたと感じ、多少の充実感は得ることができています。

SNSなど身近によく見かける「数ヶ月で就職まで行ってフリーになってしまうような才能」がない人にとっては大変ですし時間もかかりますが、色々と活用できるので是非挑戦してみるといいと思います。

(リリースしたらここにリンクを載せたいところです。)