為せば成る

フリーターだった三十路女がプログラマーになって海外起業するはなし

プログラムは読む力も大切

f:id:svalueng:20190211022150j:plain

カンボジア シェムリアップの飲み屋街

※これは2013年で今はもっとギラギラしてます

プログラムは誰でも書けるんです

今はインターネット上に情報が沢山あるので

 

大抵のプログラムの事は調べれば丁寧な解説とサンプルコードが出てきます

 

しかし、ある程度の規模のプロジェクトのプログラムを読んで理解するには結構大変

 

以前、読めないプログラマーさんと仕事したときに私の書いたプログラムを丸っと書き替えられたことがありました

 

彼は私の書いたプログラムが読めなかったので似たような処理が書いてある他の人のプログラムを丸っとコピペして貼り付けたようで

 

私がソース管理から最新取得したら自分が書いたコードがまるっきり無くなってました(笑)

 

1行だけ書き換えれば良いだけのバグ修正でファイル差し替えした状態です

 

聞くと初心者

 

私が書いたプログラムじゃないので「続きはそちらでどうぞ」とお渡ししました

 

プログラムを読めないとこういう事が起こります

 

小さいプロジェクトだったのでよかったのでしょうが

 

ピリピリした現場だと大問題になりかねません

 

コピペ君を卒業したかったらプログラムを読みまくって

 

「自分じゃない誰かが書いたプログラム」を理解できるようになると

 

ピンポイントのプログラム改修や機能追加なんかを

 

適切に出来て、どこに行っても重宝されるでしょう

 

 

プログラミングセンスを磨くには

「プログラミングセンス」って聞いたことありますでしょうか

 

洋服のセンスとか会話のセンスとかと同じく

 

プログラミングにもセンスがあって

 

「適切な処理を適切な場所に簡潔に書ける人」

 

が私の中で勝手にプログラミングのセンスの良い人となっていますが

 

そういう人っておそらく

 

「プログラムを理解しながら沢山読んでいる人」

「アルゴリズムを適切に組み立てられる人」

「持って生まれたもの」

 

 なんだと思います

 

以前一緒に仕事をした人でセンスが良いなと思った人が一人いましたが

 

やはりその人は朝から晩までプログラムの事ばかり考えて

 

昼間は普通にベンチャー企業でプログラムの仕事して

 

帰ってからは家でゲームを作ったりするような人でした

 

そこで思ったのが、プログラミングスキルやセンスを磨くには

 

「書きまくり読みまくるのがやはり一番」

 

当たり前のこと言ってすみません(笑)

 

やはり近道はないのですよ

 

スキルの差もこういうことから出てくるのでしょうね

 

同じ1年でも

 

「会社でしかプログラムに触れない人」1日8時間

「会社と家の両方でプログラムに浸かってる人」1日8時間+α

 

このひとすげぇなっていうエンジニアになりたい人は

 

3年~5年どっぷりつかってみてください

 

まとめ

  • プログラムは読む力も相当大事
  • 読んで意味の分からないプログラムはコピペしてはならない
  • プログラムの構築はお弁当作るのに似ている
  • アルゴリズムが知りたければ「ピタゴラスイッチ」

 

 

 

 

 

プログラム学習方法

 f:id:svalueng:20190206012215j:plain

興味を持ったらやってみる

エンジニアになると決めてからはもちろんフリーランスになった今も
 
ずーっとずーっとプログラムの勉強は続きます
 
技術の進歩は早いですし、新しいものはやはり面白そうなのが多い
 
とはいえ私はプログラムの勉強という意識があまりありません
 
日々プログラムの事で検索とかしていると
 
面白そうなものがどんどん出てきます
 
そんなの見つけてチュートリアルやってみたりしてます
 
エンジニアなりたての時は
 
なんでも知りたくて
 
常駐1ヶ月で手も足も出せずに終わった現場がLAMP環境だったんですよね
 
この時の記事に撃沈話がのってます
どうやら私はできなかったのがとてつもなく悔しかったらしく
 
ボロくなったノートパソコンにVine Linux
 
というLinuxサーバーを作り
 
サーバーの勉強をします
 
さらにPHPの事を調べるとHTMLとCSSとJavaScriptの事が出てきます
 
そのままPHPの開発環境を作ってみたりします
 
今はXAMPPとか使ってますが
 
その当時XAMPPは業務では使うもんじゃない
 
一つ一つインストールして動くようにしないとダメみたいな感じだったので
 
PHPとMysqlとApacheとtomcatと…
 
とか一個ずつインストールして環境作ったりとか
 
休みのたびに引きこもってそんな事やってました
 
本当に楽しかったです
 

 

無駄なことなどない

C#.netの開発現場ではHTMLとか触る事があまりなかったのですが
 
とあるベンチャー企業に派遣で入った時に
 
C#.net MVCというのをやったんですが
 
感動しました、楽しくて(笑)
 
CakePHPもそうですがMVCは始めトンチンカンで迷走しますが
 
覚えるとかなり楽しいです、そして便利
 
画面デザインはデザイナーさんがほとんどやりますが
 
プログラム側からじゃないといじれないHTMLとかも出てきます
 
そうなると当然HTMLとCSSとjavascriptとかの知識も必要になってきます
 
それまではオープン系システム開発を主にやっていましたが
 
この仕事をきっかけにWeb系の仕事をするようになります
 
だんだん何でも屋になってきましたね(笑)
 
私個人のプログラムの勉強としては
■「まず書いてみるHello world!」
 私がHello world!した言語は、COBOL、C、C++、C#、JAVA、PHP、Pythonかな?後はHTML、css、javascript(jQuery、Ajax)
 本読んでとかの座学はあまり意味ない気がします。
 技術書はそのものに実際触れてみて疑問が出たら技術書を見るという用途
 技術書についてるDVDを実際にやるというのは有効かもしれません
■「慣れてきたらこねくり回してみる」
 今はインターネットでほとんどの情報が手に入ります見たサイトやブログで気になるデザインがあったらブラウザーの開発ツールとかでHTMLやらcssを見てみるとか気になる機能(メニューにょろーんとかね)どうやってるのか自分で調べて作ってみるとか
 ■「プログラムを読みまくる」
 私個人としてはプログラムは誰でも書けると思うんです、今は情報が多いので誰でも何かは作れる。ですが、人の書いたプログラムを読むのって書くより難しいんです。
という話を次回書きます(笑)。
 
 

 
 
 
 
 
 

フリーランスになってからの仕事

f:id:svalueng:20190203012326j:plain 

プログラムを書かなかった

個人事業登録してエージェントさんに仕事を探してもらっていました

 

紹介された仕事は。。。。

 

エンドユーザーさん(IT業界では「エンドさん」とかいうかな)側の仕事で、

 

出来上がってきたシステムを検証して

 

仕様と違ってたりバグってたりしたら突っ込みいれる

 

みたいな仕事でした

 

何事も経験と思ってやることにしたんですが。。。

 

プログラム書かなかったんですよね

 

 事前に聞いてはいましたが

 

「これじゃプログラム忘れてしまう!」

 

と危機感を感じた私は2か月でプロジェクトをやめることに

 

その後、とあるSESの会社から

 

100人規模の大きいプロジェクトに参画することになります

 

 

面談はコツがある?!

面談行ってくださいと言われて某駅へ行くとどこかの会社の営業さん

 

数名が次々名刺をくれます

 

この頃になると「もう慣れてるから大丈夫ですよね」とか言われて

 

自社の人間は誰もついてきてくれません(雑っ)

 

面談ですが、求職活動ばっかりしてただけに結構上達しました

 

上達しすぎて本音が出ます、いけませんね

 

ある時の面談での質問で「プログラム書くのに煮詰まったらどうしていますか」

 

というのがありました

 

お手本の答えはおそらく「できるまであきらめないでやり続けます!」

 

とか「コーヒーでも飲んでリフレッシュします!」

 

とかなんとかでしょうが

 

私の答え「家に帰ります」と答えました(笑)

 

お手本の答えではないですがこれは事実です

 

プログラムで煮詰まったら家に帰ってビール一本飲んで早く寝るのが一番です

 

もちろん帰る途中の電車やその他寝るまでロジックのことを考えてますが

 

私の場合は意外と帰りの電車の中で解決策を思いつくのが多かったです

 

そうすると次の朝一で問題は解決します

 

話は脱線しましたが

 

この時の面談ではプロジェクトの説明をしていただいて

 

「C言語とかC++とかやってるので大丈夫ですね、質問ありますか」

 

で終わりました(笑)

 

そんなこんなで100人規模のプロジェクトに入ったわけですが

 

それくらいの規模になるとSlerがプロジェクトを仕切っていて

 

大きいシステムのほんのちょっとの部分を担当させられます

 

DBなんか見ないくらい(笑)

 

一つのプロジェクトはこんな感じにわかれてるのかな

  • プロジェクト仕切る人(プロジェクトマネージャー:PM)
  • プロジェクトの分散化されたチームのリーダー(プロジェクトリーダーPL)
  • システムの設計する人(SE:システムエンジニア)
  • プログラム書く人(PG:プログラマ)
  • できたプログラムのテストする人(テスター)

 

などがありますが

 

こっからさらにプログラマーだと〇〇機能のここの部分みたいに言われます

 

このプロジェクトの時はすごくしんどいのに達成感もあまりなくて

 

 「私。。。。何作ってんだろ」と思いつつ作業してました

 

ほどほど作ったところでやめました

 

ぜーんぶ終わってやったーっていうところまでいれば達成感は得られたのかもしれないですけどね

 

この時は月40万+交通費くらいになってたかなと思います

 

このころから私は残業しないエンジニアになっていきます(笑)

 

私個人の考えですが

■「ある程度できるようになるとプロジェクト変わるたび報酬が上がる」

■「一つのプロジェクトに長くいるほうが次の仕事が得られやすい。がしかし、長すぎるとスキルが上がらない」難しいですね

■「残業は無理です♪」と言えるメンタルを作る

 ※エージェントさん経由とかだと事前にエージェントさんに言っておくと残業少な目とかで探してもらえます

 

 

 

 

フリーランスはお金の管理も自分

 

f:id:svalueng:20190131005350j:plain

カンボジア帰りに撮ったスカイツリー

ただプログラムを書いていればよいわけではない

さて、契約社員を辞め個人事業としてやろうと思い

 

役所に個人事業登録をしに行きました

※確定申告で青色申告すると控除あるのでフリーになるならやったほうが良いと思います

 

今までは言われたことやって給料もらってればよかったですが

 

個人になったら個人事業の登録、確定申告、営業等

 

全部自分でしなければなりません

 

営業はエージェントさんにお任せして

 

問題は確定申告

 

いちお全商簿記検定という高校生が取得する簿記検定の2級を持っていたので

 

なんとなくの知識はあったものの

 

なんかめんどくさそうだな~と思いつつ

 

「お金のことは知っておいたほうが良いかもしれないのかな」と

 

毎月の経費等「エクセルでまとめればいいか~」

 

なんて思っていましたが

 

それだと売上、経費、保険なんかの情報から

 

税金の計算するのが本当に眩暈

 

青色申告になると提出書類も増えますし

 

科目ごとに記入する場所も違ったりします

 

間違ってればやりなおしだし

 

さてどうしたもんか。。。。。

 

と「確定申告」と検索すると

 

なるほど会計ソフトかぁ

 

と、会計ソフトを使ってみることに

 

 

会計ソフトを使ってみて

次の日早速、大きな家電量販店に行き

 

大量にある会計ソフトを物色する

 

あまりにも多すぎてどれでもいいような気がしてきますが

 

選んだ基準は

  1. 個人事業である(小規模)
  2. 入力が簡単
  3. どういうロジックが組まれているのか興味がある
  4. 一発で必要な書類が作成できる
  5. みんな使ってそう

ソフトなんか使うとこれどういうロジックなんだろとか妄想するの楽しいですよね

 

さて、この5つの条件をクリアしたのが

 

やはりこれ

 

2013年に日本を出てしまったので2013年までの事しかわかりませんが

 

お世辞抜きで本当に使ってよかったです!

 

確定申告時期に一緒に働いていたフリーランスの人たちはこぞって一週間休みました

※まぁかこつけてたんだろうけど(笑)

 

私は土日で提出書類作れてたので、確定申告のために仕事を休むのは提出しに行く時くらい

 

会計ソフト使う前に

 

仕事用の口座を作成して仕事に使用するものはその口座だけを使う

※当たり前か(笑)

 

家賃、光熱費なんかもその口座から引き落としとかする

 

そして会計ソフトに口座の情報を登録して口座の情報を読み込むと帳簿にとぅるとぅる~っと入っていきます

※読み込んだ後の確認は必要

 

なので、入力作業も手元にある領収書くらいなので

 

月に数枚とかかな私はほとんど交通費でした

 

領収書の整理だけきちんとしておけば本当にすぐ確定申告の書類ができちゃいます

 

なので、エクセル管理とかしてる方は試してみてもよいかもしれません

 

そのほかでは

  • 「会計士さんに頼む」※お金の行き来が多い方は良いかもですね
  • 「いまはエージェントさんも会計サポートとかやってるはずなのでそれを利用する」

とかでしょうか

 

カンボジアでの個人事業でも経理関係は最初は自分でやろうと思ってます

 

カンボジアって毎月書類提出して毎月税金払うんですよ

 

なんでかな(笑)

 

 

 

 

運も実力のうち⁈

f:id:svalueng:20190130020431j:plain

エンジニアへの道はこんなにまっすぐではない※実家近くの一本桜

私は運が良かった

こうしてプログラミングを手伝うことになったわけですが

 

簡単なところから手伝いはじめて

 

数週間経つと1機能丸ごと任されるようになりました

 

毎日毎日楽しくて楽しくて書きまくりました

 

システムは大体出来上がりましたが

 

その後、色々あって会社がつぶれてしまいました

 

受託開発は危険です(笑)

 

修羅場も見ましたがいい経験になったと思います

 

ここでは1年8か月C++を実務でやったことになります

 

そしてまた、求人情報とにらめっこの日々が続き。。。。

 

ませんでした!へっへー

 

その後はエンジニアのエージェントに登録しまくって

 

並行で正社員とかも応募して小さなSESの会社に入り

 

すぐC#.netのプロジェクトに入ることができました

 

がっしかーし

 

まだまだエンジニアとしてはひよっこ

 

そんなにとんとん拍子にはいきません

 

現状に満足すると人は成長しない

作業自体は問題ないというか問題なくこなせましたが

 

同じプロジェクトに初心者君がいて苦肉の策で

 

「パソコンのマザーボードが壊れて」とかなんとか

 

とにかくパソコンが動かなくなったといって作業が滞りました

 

見てみたらほんとに画面真っ黒でパソコン死んでました(笑)

 

おそらく無限ループでもこさえてメモリぶっ飛んだとかだったんだと思いますが

 

なんとその仕事が私に回ってきたではありませんか

まーじーかー

そんな破壊力ある機能私に作れるのか?!

 

なんて思いながら説明を受けました

 

結果難しかったですがちゃんと納品できるものが作れたので

 

仕事自体は問題なかったのですが

 

では何が問題だったのか

 

ズバリ!

 

報酬です

 

270時間働いたのに残業代が1円も出ませんでした

 

そういう契約でしたが、このままだといいようにされると思い

 

契約期間3か月終了後の帰社日に辞表を提出しました(笑)

 

ちなみに契約社員で基本給30万+交通費でした

 

この会社を退職した後はフリーランスになります

 

自信もついてきたしC#.netという武器もできたし

 

年数もまぁまぁになってきたし

※この時点でエンジニアになると決めてから4年くらいたってるかな

 

■「SESの会社は正社員募集と書いていても実際は契約社員からとか言われる」

■「残業代出さない会社は論外」※エンジニアで残業無しなんてないから(笑)でも面接で「残業代出ますか」と聞くと落とされる

■「報酬の話をきちんとしない会社はそもそもやめたほうがよい」※面接で報酬の話一切しない会社もありました

■「わいわい楽しく開発したい人はweb系へ行ったほうが良い」

 

 

 

 

自分で行動しなければ道は開けない

f:id:svalueng:20190127152912j:plain

実家の窓からの夕焼け

武器を持て

フリーになって常駐1か月でボロが出て、どん底に落ちた後

 

これ以上落ちることはない

 

結局、「人に頼りきったからこんなことになったんだ」と思い

 

また、自分で仕事を探し始めました

 

やはりこんな丸腰でフリーでは無理がある

 

なにか武器を身につけなければ

 

その時点で私の経歴書には

 

研修分も実際に稼働していることにしていて

 

C言語、JAVA、PHPが数ヵ月ずつ常駐したことになっていた

 

その後、SESの会社、受託開発の会社等

 

未経験の時より面接は楽にできた

 

しかし、みんな口をそろえて

 

「で、何が得意なの?」

 

そりゃそうだ意外と難しい言語をちょこちょこやってるってことは

 

何もできないのと同じ

 

C言語が好きだったので、C言語が得意とは言いましたが

 

全く説得力無し(笑)

 

またしてもことごとく面接に落ちまくる日々

 

そこで、ちょっとシステム開発に関連している仕事から攻めようか

 

と、路線変更する、とにかくどこかに潜り込まなければと思いついたのが

 

「ヘルプデスク」

 

プログラマーに応募しつつヘルプデスクにも応募してみる

 

すると、とある小さな会社から面接に来て下さいとの連絡が来る

 

この時点での全財産300円、東京で一人暮らし、無職!34歳干物女

 

さて、ここからどうやって売上年1000万になったのか

 

 

正社員もなかなか良い

連絡があった小さな会社に面接に行くと

 

おじさんが二人ニコニコと座っていました

 

缶コーヒーをもらい

 

「うちの会社はね~」と会社のことを聞いたり

 

色々と雑談していたら

 

おじさんA「じゃあ働いてもらおっかな、いつからこれる~?」

 

!えっ、いいんですか?(ていうか軽っ)

 

おじさんA「うん、給料35万くらいでいいかなぁ、ねぇ社長」

 

社長「そうだねぇ~」

 

かーみーさーまー

 

ブラックだろうがなんだろうがいい!私は働く!

 

こうしてめでたく正社員としてシステム会社に入ることができました

 

主な仕事は受託開発したシステムの使用方法や設定をお客さんのところに行ってやったり取扱説明書みたいなのを作成したりだったんですが

 

私が入社した時点でまだシステムが出来上がってなく開発者もメインでやっている人が一人という状態で

 

しばらくはPM補佐と雑用をしてました

 

入社後パソコンの設定を親切に教えてもらい本当にいろいろ教えてもらいました

 

そんなこんなしていると、

 

「一人じゃ無理、間に合わない」という言葉が聞こえてきました

 

そうなんです、開発者が一人なので色々予定に間に合わない問題が出てきていました

 

一斉にみんな私を見る

 

「C言語やったことあるんだよねぇ」

 

まさか。。。。

 

そうなんです、私がプログラムを書くお手伝いをすることに

 

こうして私はプログラマーへの第一歩を踏み出すのでした

 

■「得意な言語を持つと自分を売りやすい」

■「一つの言語を習得するとほかの言語も意外とできてしまう」

■「あきらめない」

 

 

 

フリーランスは儲かる?!

f:id:svalueng:20190124022748j:plain

ガンダムはリアルタイムな年齢(笑)

フリーランスという誘惑

初めての常駐先が終わり自社に戻ってしばらくしたらトップ営業マンから

 

「俺が仕事回してやるからフリーになりなよ、給料上がるよ」

 

というあま~いあま~い言葉が囁かれました

 

ちなみにその時点の給料は基本給15万+交通費でした

 

東京で基本給15万てほんと暮らせない主食は5食入り袋ラーメン¥298でした(笑)

 

まだまだエンジニアと呼べる状態ではない私は

 

迷いつつもその言葉を信用して会社を辞めました←バカ

 

しかし、研修して一度常駐しただけなのでスキルは無しに等しい

 

待てど暮らせど次の常駐先の話などやってきません

 

そしてついに連絡が来ました面談と言われる顔合わせ?に来てくださいとの依頼があり

 

行ってみると。。。。。。

 

そこには誰のものかもわからないエンジニアの経歴書がありました

 

なんかいい感じになってきましたね(笑)

 

そうなんです、経歴書が勝手に変えられていたんです

 

私は経験数年あるweb系のエンジニアになってました(笑)

 

 

経歴詐称は当たり前?!

C言語好きがweb系!驚愕しました

 

全くスキルマッチングしてない!

 

C言語の案件がない+経験不足なので仕方ないといえばそうなんですが

 

 知識も何もない状態で面談したので

 

「決まらないだろう」

 

と思っていたらじゃあいつから来ますかみたいになってしまい。。。。

 

うそ~ん(笑)ムリムリムリ

 

これからどうしたら。。。。と絶望してもいられないので

 

 説明を受けたワードでいろいろ検索して予習しまくりました

 

家に帰ってからも仕事してるような状態です

 

しかし、ボロはすぐ出てしまい一か月で終わりましたチーン

 

開発環境ってドキュメントに使うツールとかまとめてあって、それ設定すればいい感じに開発環境作れるように大半のプロジェクトがなってる気がしますが

 

この常駐先はおじさんが口頭でべらべらしゃべって終わりだったんです

 

わからな過ぎて吐き気したのでviエディタでプログラム書いてたら

 

みんな口半分あけて「えー?」みたいになちゃって(笑)

 

もうね、トラウマ

 

毎日毎日冷や汗たらしながら言われてることが全くわからなくて

 

時間だけがどんどん過ぎていきます

 

ギブアップしたいけどそれもどうしてよいかわからない

 

もう地獄でした

 

フリーランスは儲かると思います、私もフリーになってエージェント経由で常駐+受託で、最終的に売上1000万は稼げましたので

※エンジニアになる時年売上1000万を目標にしてました

 

私個人の意見ですが

■「スキルが高ければフリーランスで結構稼げる」

■「 一人でプロジェクトに放り込まれても平気♪」となるまではフリーはお勧めしません

■「プログラムは書く力より読む力が大事」 

■「コミュニケーション能力は無くてもそれをカバーするスキルとオタクネタがあればいける」

 

こんな感じでしょうか