コンチャース!!!
まんじです!
今回はぼく自身がプログラミングを0から始めて、ソフトウェアエンジニアでフリーランスなってまあそれなりの収入になる(技術力になる)ぐらいまでにやった勉強の手順というかやった勉強というか、そこらへんを書いていきたいと思います!!!
プログラミング0からフリーランスエンジニアでわりといけるんじゃね?ぐらいのレベル感はこんな感じで作れるぜ!ってことで、参考にしていただければ嬉しい限りです!
大学のゼミでプログラミングが必要になったので、とりあえずドットインストールでPythonの講座をやり始めました。
ぶっちゃけたところ、全然よくわかってなかったんで、この時はまじフィーリングでした。
あとhtmlとcssはやったようなやってないような・・・。
「Pythonの文法勉強したけど、一体これで何ができるんだってばよ!?」と思い、なんか適当に調べていたらrequestsなどを使ってサイトから情報を引っこ抜く(スクレイピング)方法を知りました。
スクレイピングには結構興味があったので、とりあえずググって出てきたコードをコピペして、それをCSVに保存したりして遊んでた、、、というよりかは「これはすげえ!自動化だ!」と当時は感動していました。
スクレイピングをしてるのも飽きてきたのと、「どうもフレームワークってやつを使うとウェブアプリが作れるらしいぞ!?」と知り、ウェブアプリをPythonで作ってみようということで、ウェブアプリを作り始めました。
選んだ本がこれです。
これを最初から真似していったらデータベースありのウェブアプリがとりあえずできました。
localhost起動したり、データベースをsqliteだけど接続したり、テーブル定義とかも雰囲気でここでなんとなく知れました。
次にやったのが、ハンズオンで真似してできたウェブアプリを本当にちょっとずつ改良していく作業です。
こういう機能を入れたい -> 調べて真似して実装する
↑この作業をひたすら繰り返していました。
ただ、データ操作とかそういった部分はPythonを普通に書いたりしていたので、一部の作業は自分で手を動かしてコードは書いていた、、、というイメージです。
調べて持ってきたものをとりあえず動かせる形にして、それをさらに自分でコードの意味理解して、求める形にしていった、、、といった感じです。
例)
ちなみに、調べてもどうしても無理なものは迂回したり、別の方法でいけないか試したりしていました。
Flaskでウェブアプリをとりあえず作りまして、調べていると「どうやらDjangoのほうが実務とかで使うっぽいぞ!?」と知りまして、Djangoでもウェブアプリを作ってみることにしました。
そんで適当にDjangoを起動して設定ファイルいじったりモデル定義(テーブル定義)とかも雰囲気でやって、Djangoでもウェブアプリを適当に作れました。
ちなみにその時のテーマが在庫管理アプリだったんですけど、無限に開発する場所があって「全然終わらない・・・」と途中から途方にくれ始めました。
FlaskとDjangoでウェブアプリを作ってポートフォリオっぽくなってきてから(プログラミングを0から始めてちょうど4~5ヶ月ぐらい?)、モチベーションが急激に落ちてきました。
なので、とりあえず実務に入ろう!ってのと、新卒就活も始めたくてコーディング試験が必要とコーディング試験で実際に落ちてから知って、Paizaの練習問題(月額1000円ぐらい)を1~2ヶ月ぐらい毎日3時間ぐらい解き始めました。
ちなみにPaizaはAランク止まりでSランクは無理でした。
あとPaizaの問題を解きまくってる時に、連想配列をようやくそこである程度理解しました。(遅い、遅すぎるぅぅぅ!それまで配列だけで気合いで書いてた。これが独学である。)
そんで毎日こんな感じにプログラミングをやっておりまして、
なんとか面接を突破して、高田馬場ベンチャーで長期インターンで働き始めました。
その頃のお話はここに書いております。
シンプルに実務で仕事してプログラミングというかソフトウェア開発をしていって、慣れていった、てきなことがやってたことです。
特に勉強っていう勉強はしてなかったんですけど、卒論で自然言語処理をPythonとかでちょっとやってたりはしました。
一応新卒(27歳の代だけど)で上場企業にソフトウェアエンジニアで入って、Java研修を2ヶ月やってやめてニートになりました。
Java研修してた頃は、業務時間に変なJavaの課題(springとかでフォーム送信画面作ろうぜてきな)をやってそれを上司に出して過剰に指摘されまくってムカついてました。
勉強内容は一応Javaだったんですけど、ぶっちゃけたところ、あんま勉強にはなってなかった気がします。
そしてニートへ。
ニートになってからはいっちょ個人開発で稼いでやるしかないぜベイベーということで、個人開発を始めました。
厳密には個人開発というよりかは、ウェブアプリを作ってマネタイズを狙っていくてきな活動を始めました。
この頃は(この頃も)高田馬場長期インターンで学んだことをベースにして、Next.js使ってReactでウェブアプリ作っておりました。
結果的に失敗して稼げなかったけど、React力は上がりました。
ラッキーでフリーランスエンジニアデビューをして、それからはそこのプロジェクトでひたすらタスクをこなしていきました。
フロントエンドはReactでサーバーサイドもTypeScriptで、ただひたすらにこれをしてました。
途中でまたウェブアプリ作って稼げるようになりたくなったので、個人開発を始めたんですけど、また失敗!しました。
その時は実務で8時間コード書いて、ウェブアプリ作成でも毎日3時間とかコード書いてたので、わりと疲れすぎて発狂しそうでした。
...ということで、ぼくがやってきた勉強はここまで・・・!
ぼくの場合は勉強したというよりかは、目的があって、そのために必要な知識を調べながら適当に量をわりと入れてやってました。
例えば成果物や達成したいゴール(仕事に入るなど)があって、そのために必要な勉強というか知識とかを調べて寄せ集めてなんとか作っていた、、、みたいな感じです。
なんか作ってる過程でちょい寄り道的に調べてればインプットも勝手に増えていっていたので、今振り返ってもなんか作るために調べながらなんとかするってのがなんだかんだで無難というかいいんじゃね?とは思ったりします。
あとはやっぱ途中から強い上司とかの指導のもとでプログラミングをやるようになって矯正がかかったような感じで、そこに量が入ったからまあまあ早く収入とか技術力とか上げれたのかもしれん!と思ったりします。
適当に1人でがんばってたらなんか途中から強めの人からの補正がかかって方向性が正されて、脳死で適当にやってたらなんか結構早めなペースで技術力というかその結果としてプログラミング労働収入アゲポヨしました!って内容でした。