プログラマーって何?プログラミング初心者が学習前に知っておくべきこと.jpg

プログラミング

プログラマーって何?プログラミング初心者が学習前に知っておくべきこと

「プログラマーはリモートワークできるし、スキルさえあれば面倒な人間関係も不要だからやってみようかな。」
「でもプログラマーの具体的な仕事内容はよくわからないし、何から始めればいいかしら...」

元々私も全然別の仕事をしていましたが、プログラマーになってすぐに年収は1.5倍になりました。
可能性のある職業なので、ぜひとも色んな人におススメしたいと思っています!

しかし、冒頭の悩みを抱えている状態だと、具体的に何をすればいいかわからず、時間を無駄にしてしまうかもしれません...

最近は副業としてプログラミングを学んだり、仕事に不満がある人がプログラマーを目指す話を聞くことが多くなりました。
AIや機械学習などIT技術の話をさかんに聞くようになり、勉強してみようかなと考える人も多いのではないでしょうか。

実はプログラミングと一口にいっても、その内容は多岐にわたります。
職人といっても、家具を作る人、大工、庭師、ガラス職人など、様々な分野があるのに似ています。

プログラミングをこれから始める人こそ、何ができるかを知っておくと効率的な学習ができます。
この記事では、プログラマーとはどんな仕事か、プログラミングで何ができるかを解説していきます。

私は最初、プログラミングを独学で勉強しましたが、何を作るか、目的地点を全く決めておらず、早々に挫折。
プログラミングスクールに通うまでの1年間を無為に過ごすことに..
何をやるにも知識、戦略が大事ですね。

プログラマーとは

プログラマーの定義は以下の通り。

プログラマ: programmer)とは、コンピュータプログラムを作成する人全般を指す。プログラマーとも表記される(#プログラマに対する呼称参照)。

wikipediaより

これだとイメージが湧きづらいですよね。もう少し説明します。

コンピューターソフトウェアの設計から開発、テスト、保守に至るまで、プログラマーの役割は多岐にわたります。
シンプルに言うと、ユーザーのニーズを満たすためにITを使った解決をする人です。

プログラマー、システムエンジニア、ITエンジニアと色んな呼び方があります。
一般的にはプログラマーは開発、テスト、保守。
システムエンジニア、ITエンジニアは、もう少し広い範囲を担当する人というとらえ方が主流です。

しかし、最近はITでできる範囲は拡大しており、役割は横断的になってきています。

プログラマーといっても、働き方はかなり幅があります。
役割が厳密に決まっていて、設計者の作成した仕様書通りに開発するという意味でのプログラマーもいれば、
アプリケーション利用者と直接対話しながら、アプリケーションの新規開発・保守するプログラマーなど。

自分のスタイルにあった働き方を選択していく必要があります。

プログラマーの分類

こちらではプログラマーの主な分類を説明していきます。
プログラマーの分類は技術や業界によってさまざまであり、もっと細かく分類も可能です。

今方向性が決まっていない人には、"フルスタックエンジニア"を目指すことを強くおススメします。
スキルを身に着ける向上心のある人は、時間の自由やもっとお金を稼ぐことを考える人が多いはず。
私自身もお金をもっと稼ぎたいというシンプルな動機でこの業界に入りました。

"フルスタックエンジニア"は覚えることが多くて、大変と思うかもしれません。
その通りですが、最初は広く浅くでOKです。
一つのことに超詳しくなるより広く浅く覚える方が実はコストも少ないです。
全体像が見えて学習効率も良く、仕事をしているうちに各分野に詳しくなっていきます!

フロントエンドエンジニア

フロントエンドエンジニアは、ウェブサイトやウェブアプリケーションのユーザーインターフェースを開発します。
HTML、CSS、JavaScriptなどの技術を用いて、ユーザーが直接触れる部分の設計と実装を行います。

バックエンドエンジニア

バックエンドエンジニアは、サーバーサイドの開発に関わります。
データベースの管理、APIの設計と実装、セキュリティの確保などを行います。
Python、Java、Rubyなどの言語を使用します。

フルスタックエンジニア

フルスタックエンジニアは、フロントエンドとバックエンドの両方を担当します。
全体のシステム設計から実装までを一貫して行います。
フロントエンドとバックエンドの間の情報のやり取りをスムーズにするための役割も果たします。

データサイエンティスト

データサイエンティストは、大量のデータから有用な情報を抽出し、ビジネス上の意思決定に役立てます。
統計学や機械学習などの手法を用いて、予測モデルの作成やデータ解析を行います。

組み込みシステムエンジニア

組み込みシステムエンジニアは、家電製品や自動車、医療機器などの組み込みシステムの開発を担当します。
リアルタイムOSやマイクロコントローラーを用いて、特定の目的に合わせたプログラムの開発を行います。

DevOpsエンジニア

DevOpsエンジニアは、ソフトウェアの開発(Dev)と運用(Ops)のプロセスを効率化する役割を果たします。
自動化ツールを使用して、開発からテスト、デプロイ、運用までの一連の流れをスムーズに進めます。

プログラマーに必要な特性とスキル

プログラマーには、論理的思考能力や問題解決能力が求められます。
また、常に新しい技術や言語を学び続ける好奇心も重要。
チームで働くことも多いので、協調性やコミュニケーション能力も必要となります。

というのが一般的に言われていることです。
”そんな能力ない、コミュニケーション不安だ...”と思うかもしれませんが、心配無用です。

プログラマーの一番いいところは、自分の特性に合った働き方ができることです。
例えば、コミュニケーションが苦手であれば、できるだけスキルを身に着けることでカバー可能です。
圧倒的スキルがあれば、あなたの意見を尊重するように周りが動きますので、コミュニケーションで悩むことはなくなります。
Chatでの会話のみ、電話不可のエンジニアが存在します。(ほとんど仙人みたいな感じ...)
ポジションさえ作れれば、それも可能です。

プログラミング言語以外に必要な技術スキル

データ構造やアルゴリズム、システム設計などの基礎的なコンピューターサイエンスの知識も重要と言われています。
これらは様々な問題を解決するための道具となりますが....

いきなりここに取り組むと挫折するのでおススメしません。

ピアノを習うときに、ピアノの歴史、ピアノの構造、音楽理論から習い始める人はいないですよね。
簡単な楽譜に従って、まずは演奏から始めます。
演奏しながら、音楽理論を肌で感じるようになっていき、本格的にやるとなった時点で理論を学びます。

プログラミングも同じで、実際に作ってみたり、手を動かしていきながら、データ構造やアルゴリズムの具体例を学びます。
具体的なやり方がわかってから、抽象的な概念を理解する。
この順序が何人か教えてきた感触からも、一番挫折しづらいです。

プログラマーのキャリアパス

プログラマーのキャリアパスは、自分のスキルセットや興味、個々の目標によって変わります。
将来どんなことができるか把握しておいて、早いうちから準備できるとよいので、いくつか紹介していきます。

いずれも転職、フリーランスの選択肢をきちんと選べば、年収1000万円は十分到達可能です。

シニアデベロッパー/エンジニア

このパスでは、プログラマーは技術スキルを磨き続け、より難解な問題を解決するために知識と経験を深めます。
シニアデベロッパーは一般的に、複雑なシステムの設計や、新しいテクノロジーの採用に責任を持ちます。

プログラマーとして順当に経験を積むと、自然とこの位置づけになります。

チームリード/マネージャー

このパスでは、プログラマーは人材のマネジメントスキルを身につけ、チームのリーダーシップを担います。
チームリードやマネージャーは、プロジェクトの計画と進行を管理し、チームが目標を達成できるように支援します。

これも順当に経験を積んで、多少トークスキルがあると任されます。
というか押し付けられます。
この働き方を望まない場合には、きちんと態度で示していきましょう。

アーキテクト

アーキテクトは、システムやソフトウェアの全体的な構造を設計する役割を果たします。
彼らは大規模なシステムの設計や、システム間の統合に重点を置き、テクノロジーの選択や実装戦略を決定します。

ここからは、狙っていく必要があります。
自身で勉強会に出たり、会議に積極的に参加するなどの立ち回りが必要。

プロダクトマネージャー

プログラミングスキルを持つプロダクトマネージャーは、製品開発の全体的な戦略と方向性を設定します。
彼らは、ビジネスとテクノロジーの橋渡し役として、製品の要件定義、開発スケジュールの作成、市場への製品投入を担当します。

コミュニケーションスキルがとにかく重要です。
こちらも狙って、勉強する必要あり。
飲み会の幹事、合コンのセッティングが苦も無くできるタイプはいけるはず。

データサイエンティスト/データエンジニア

プログラミングスキルを使って、データの操作と分析が可能ですが、こちらは特化型です。
データサイエンティストやデータエンジニアは、大量のデータを取り扱い、それを有益な洞察や予測に変える役割を果たします。

こちらは専門スキルとして、追加の学習が必要です。
数学的な知識も求められるので、理系の人が選択しやすいですね。

ちなみに私はプロダクトマネージャー以外は全て経験があります!
しかし、月収100万なので交渉に失敗していますね...
もっと上を目指したいところ。

目指すべき目標が決まったら、後は実践あるのみ

目標は決まりましたか?
決まっていても、決まっていなくても、人生を変えるためにプログラマーになりたいのであれば、走り出しましょう。

私の場合、仕事のできないスポーツジムスタッフで、このままじゃまずいなと思い、いきなり仕事を辞めてスクールに通いました。
プログラマーになれなかったらどうしようと不安でいっぱいでしたが、元ニートからは考えられないくらい良い待遇で働いています。

20代であれば、かなり転職に有利なので、無料相談でもいいのでとにかく動くことをおススメしています。
プログラミングスクールについては、以下で説明しています。

スクールはちょっと敷居が高い,,,もっと別の選択肢で可能性を模索したい場合は、PyQをおススメしています。
私の知人もPyQで勉強して、プログラマーになった人がいたぐらいですので、うまく使いこなせばこれ一本でもいけます。

-プログラミング
-, , , , ,