見出し画像

【新米エンジニアに送る】エンジニアになって半年で学んでよかったことまとめ


こんにちは。Ceccoです。

テレビ局のADを辞め、ソフトウェアエンジニアになって半年が経ちました。完全未経験からの転職だったので、そもそも何を勉強すればいいのかわからず、苦労をしました。しかし、最近はエンジニアとして徐々に結果を出せるようになってきたと思います。そこで、この半年間で僕が学んでよかったこと、どうやって学んだかをまとめておきます。

特に、この春エンジニアになったばかりの方は、新人研修が充分でなかったり、自宅で過ごす時間が多いと思いますので、参考にして勉強してみてください。

先輩エンジニアの方は、私含め新米に向けてアドバイスをください。

1.プログラミング言語

なんといってもプログラムが書けるようになると、仕事は楽しくなっていきます。言語はとりあえず仕事で使うものを学ぶべきですが、スクリプト言語1つ、コンパイル言語1つを学ぶといいと思います。私はC++とPythonを中心に学びました。

独習系は少し難しい気がしたので、全くのプログラミング初心者であれば、やさしいCから始めることをお勧めします。

クラスについてはこちらの書籍がとてもとてもわかりやすかったのでお勧めです。

Pythonについてはこれが一番簡単でした。こちらからプログラミングに入ってもいいかなと思います。また、Pythonは機械学習の分野でもよく使われる言語ですので、機械学習系の方は学んでおくとよいと思います。

ある程度コードが書けるようになると、「見やすい」コードを書く必要性を感じると思います。そこで以下の本を読むと「何がいいコードか?」を判断できるようになり大きなメリットがあります。僕も今でも定期的に見返しています。

2.テキストエディタと統合開発環境(IDE)

勉強かと言われると微妙ではあるのですが、エディタを使いこなせるようになると作業効率がグンと上がります。結果、試せる回数が多くなり、間違いは少なくなり、いいことづくめです。特に独学の場合は、書籍にテキストエディタについて書かれていることは少ないので、効率の悪いまま作業をしていたということになる危険があります。

近くにいる人の設定やツールをそのまま真似てみるのが近道ではありますが、僕のおすすめはVSCodeにVimのプラグインを入れることです。特に、Vimは初めは慣れるまではストレスフルですが、3日間我慢すれば相当速くコーディングできるようになるうえ、UNIXをいじる場合にも転用できるので便利です。

3.GitまたはSVN

GitやSVNはバージョン管理ツールと言って、複数人でたくさんのファイルを編集・管理するためのツールです。実際の現場では、一人で開発を行うことはほとんどないと思いますので、使い方を学んでおきましょう(例え一人で開発する場合においても、簡単に昔のバージョンに戻したりできるので便利です)。私はGitしか学んでいませんが、わかりやすかった書籍を紹介しておきます。

4.基本情報技術者試験

僕はエンジニアになって初めて気づいたのですが、プログラミング言語がわかっているだけでは、モノを動かすことはできないんですよね。僕のように未経験の方の場合、基本情報技術者試験の勉強をするよう先輩から言われたり、合格したら会社から報奨金が出る場合もあるかもしれません。合否に関わらず、この試験の勉強をしておくと、「先輩の言っている単語が大体わかる」ようになるのではと思いますので、強くお勧めします。書籍は以下のものが非常にわかりやすく書かれています。

5.アルゴリズムとデータ構造

ここからは少し発展的な内容になります。

同じ機能を実現しようと思っても、実装するには色々なやり方があるのが普通です。また、実装方法がわからない!と思ったときに、足がかりがあると非常に助かります。こうした場合に、アルゴリズムやデータ構造を知っていると便利な場合があります。先輩が、スタックやキューなどと言っている意味がわかるようになります。

いい本もいっぱい出ていますが、私は初めにYouTubeで勉強しました。こちらの動画は英語ですが、ゆっくりと話してくれますし、動画ですので巻き戻しが何度でも効きます。何より、動画の方がデータの動きが確認できるので、この分野に関してはわかりやすいです。このチャンネルは他にも役立つ動画が満載ですので、本より動画という人はぜひチェックしてください。

6.ネットワーク

現代は外部と全く繋がることなく動いているものはほとんどありません。こうして世界中のものが繋がっているのは、先人たちが色々なものを繋ぐための取り決めを作ってくれたからです。ネットワークの知識があると、サーバーにデータを送信するプログラムが書けるようになったりします。以下の書籍が非常にわかりよく、初心者向けでした。

7.SQL

SQLというのは、データベースにデータを貯めたり、データベースからデータを取り出したりするための言語で、これを使えるとたくさんのデータをプログラムで扱えるようになります。初めに読むのにオススメの本はこちらです。

8.UNIX, Linux

UNIXとは非常に歴史の古いOSですが、今でも現役バリバリで使われていますし、今後も世界中で使われ続けると言われています。僕のようにコンピュータにそれほど詳しくない方であれば、普段はいわゆるGUIでコンピュータを操作していたと思います。しかし、UNIX, Linuxでは、主に文字だけで、つまりCLIによって操作することになります。初めは面食らうかもしれませんが、これを使えると、特定の操作の自動化や遠隔からの操作において大きなメリットがあります。オススメの本はこちら。

9.Docker

環境構築と言って、ソフトウェアを開発したり、実行したりするための環境を整えるのは結構骨が折れます。「あれとこれをインストールして・・」と手動でやってもいいのですが、それをサッと済ませる便利な道具があります。Dockerというのは、そういった環境がコンテナというパッケージにまとめられる技術です。これを学べば、先輩や世界中の誰かの環境を簡単に自分の手元に持ってきたり、自分の環境を配布することもできるので、環境依存でプログラムが動かないという現象を防ぐことができます。入門書としてはこちらがやさしくてよかったです。

まとめ

以上、私がこれまで学んできた項目をまとめてみました。人によって学ぶべき分野は若干異なってくると思いますが、僕の場合は上記の分野を学ぶことで、大体現場でやっていけるようになりました。

エンジニアになりたての場合には、そもそも何を学んでいいのか、どんな分野があるのかわからないのではないかと思います。初めは僕も「エンジニア=プログラミングを学ぶ」と思っていましたが、現場でやっていくには、プログラミング以外にも学んでおくといいことがたくさんある、ということが伝われば幸いです。

僕もまだまだ初心者ですので、新米エンジニアの方は一緒にがんばりましょう!!

この記事が気に入ったらサポートをしてみませんか?