• Skip to main content
  • Skip to primary sidebar

プログラミング入門ナビ

プログラミング学習初心者のための情報メディア

You are here: Home / Archives for 初心者

初心者

初心者がスマホアプリを開発するには?iOSとAndroidの両方について必要なスキルを確認しよう

2020-05-26 By プログラミング入門ナビ編集部

スマホアプリ

はじめに

スマホアプリ

スマホが世の中に浸透して早10年余り。毎日の生活で、必ず1つは何かしらのアプリを使っているのではないでしょうか?

すっかり馴染み深くなったスマホアプリですが、自分で開発できたら自信にもつながりそうですよね。

実は簡単なものならば初心者でも作れるのです。

この記事では、スマホアプリの2つの主流であるAndroidアプリとiOSアプリについて開発に必要なスキルを紹介します。

アプリにもいろいろ

スマホアプリというとまず思い浮かぶのはSNS、カメラアプリといったところでしょうか?実はスマホアプリは開発手法によって大きく3つに分類されます。

どんなアプリを作りたいかによって適切な手法が異なるので、まずはその分類を確認してみましょう。

ゲームならばUnityがおすすめ

スマートフォンゲームでの対戦

ゲームが好きで、よくスマホのゲームアプリをプレイする方もいらっしゃるのではないでしょうか。もし、最初からゲームアプリを作ってみたい!という気持ちが強ければ、Unityで作ってみることをおすすめします。

Unityはスマートフォンや据え置き型ゲームなど、様々なプラットフォームの垣根を超えて開発及び実行ができるゲーム開発環境兼ゲームエンジンです。

この後紹介するAndroidアプリやiOSアプリの開発スキルを用いてもゲームアプリを開発することは可能ですが、それぞれAndroidとiPhoneでしか動かせないアプリになってしまいます。

Unityで開発しておけば、同じゲームでも様々なハードウェアへ簡単に移植することができ大変便利です。

Unityについてはこちらの記事でも解説していますので参考にしてください。

Unityエンジニアになるには?未経験でもなれる?スキルの身につけ方を解説!|プログラミング入門ナビ

ハイブリッドアプリ

オンラインショッピング

例えばFacebookやAmazonなど、比較的大規模なWebサービスのスマホアプリはハイブリッドアプリと呼ばれ、スマートフォン自体が持つ機能(GPSやカメラ等)と、Web技術(HTML5・CSS・JavaScript等)を組み合わせて開発されています。

簡単にいうと、AndroidやiOSのWebViewという機能上でWebアプリを実行し、スマホに最適化して表示するわけです。

Webアプリと、スマホが持つ機能と、それらの橋渡しを行うCordovaというフレームワーク など、様々な機能を使いこなさなければならないため、こちらは上級者向けといえます。

初心者からのスタートならば、次項のネイティブアプリ開発にチャレンジするのがおすすめです。

ネイティブアプリ

時計とスマホ

ここでのネイティブとは、スマートフォン本来の機能、という意味で使われています。

例えばToDo管理アプリを思い浮かべてみましょう。タスクを入力するのにスマートフォンのキーボードやタップの入力機能を使用し、期限が近づいたタスクを知らせるにはスマートフォンのアラーム機能を使えば良さそうですね。

このようにスマホ本来の機能で完結することが多いため、ネイティブアプリならば比較的簡単に開発することができますが、AndroidとiOS向けで必要なスキルは全く異なります。

将来的にはどちらも開発できるようになるのがベストですが、まずはどちらでもいいからスマホアプリを開発したいということであれば、自分が持っている端末に合わせると実機で確認できるのでおすすめです。

Android向けスマホアプリ開発に必要なスキル

androidスマホ

ここからまずはAndroidアプリ開発に必要なスキルを見ていきましょう。

言語(1):Java

次に挙げるKotlinの登場まではAndroidアプリの開発言語としてJavaが主流でした。JavaはJVM(Java Virtual Machine:Java仮想マシン)上で動くのが特徴で、その環境用のJVMさえあればどんな環境でも動かせることから、Androidに限らず多くの用途で活用されています。

言語(2):Kotlin

Javaが抱える課題(コードの複雑化・互換性問題等)に対処できる言語としてAndroidのデベロッパーであるGoogle社から2017年にサポート開始され、2019年には正式に推奨言語にすると発表されたのがKotlin(コトリン)です。

シンプルで使いやすい言語であることからエンジニアからの評判も高く、案件数も増加傾向にあるのでぜひこの機会に学んでみることをおすすめします。

開発環境:Android Studio

Android StudioはGoogle社が提供する公式のAndroid専用開発ツールです。

Android開発に特化しているため、作業効率化に役立つ機能がたくさんあります。開発現場では使わない手はありませんのでこれを機会に使い方に慣れておくと良いでしょう。

iOS向けスマホアプリ開発に必要なスキル

macとスマホ

次にiOSアプリ開発に必要とされるスキルを見てみましょう。

言語:Swift

従来、iOSアプリの開発言語はObjective-Cが主流でしたが、2014年にSwiftが発表されてからはこちらが主流となりました。

従来のObjective-Cとも共存できるとされているので、古いコードとの互換性もあります。

開発環境:XCode

XCodeはApple社が提供する開発ツールで、iOSアプリを開発するために便利な機能を多く持っています。開発現場ではiOS開発のスタンダードツールとなっているので、将来iOSアプリ開発の案件に携わりたい方は早いうちから使い方を覚えておくと良いでしょう。

Macbookでしか使えない点には注意が必要です。

まとめ

オフィスで働く女性

スマホアプリを開発するために必要なスキルについて説明しました。

簡単なネイティブアプリならば初心者の方でも開発しやすいですし、自分のスマホで動かせるものが作れると自信にもつながるのでおすすめです。

なお、ProglusでもAndroidアプリ開発コース・iOSアプリ開発コースの開講を検討しています。ぜひお楽しみに!

動画で学ぶプログラミング入門

オンラインスクールProglus(プログラス)でプログラミングを学んで、創れる人になろう!

在宅学習応援!今なら複数の基礎コースが無料!!

今すぐ詳細を確認する

Filed Under: プログラミング入門 Tagged With: Android, iOS, アプリ, スマホ, 初心者, 開発

競技プログラミングとは?初心者にもおすすめの理由を解説!

2020-05-26 By プログラミング入門ナビ編集部

はじめに

オフィスで足を投げ出す女性

プログラミング学習、継続できていますか?

教材でしっかりと基礎を学ぶのはもちろん大切ですが、それだけでは何となくモチベーションが続かない…

そんな方は「競技プログラミング」にチャレンジしてみてはいかがでしょうか。

「でも、競技プログラミングって凄腕エンジニアの人たちが参加するんじゃないの…?初心者レベルが参加したって歯も立たなそう…」と思われるかもしれません。

確かに、少し前まではそのような風潮がありましたが、プログラミングを学ぶ人口が増えるにつれ初心者でも楽しく参加できるような仕組みが整ってきています。

この記事では、競技プログラミングをおすすめする理由と初心者の参加方法について説明します。

競技プログラミングとは

たくさんのディスプレイに向かってコーディングする女性

競技プログラミングとはその名の通り、プログラミングの技術を競うコンテストです。

同じ問題を解き、コーディングにかかる時間や完成したプログラムのパフォーマンスを競います。

Googleやドワンゴ等の有名なIT企業が主宰したり、インターネット上の競技プログラミング特化サイトで定期的に開催されることが多いです。

近頃では新卒学生のスキル判定基準として採用に用いられることもあります。

初心者が競技プログラミングをするメリット

上級者だけのものと思われがちな競技プログラミングですが、初心者にこそおすすめの理由があります。

期待できる主なメリットは下記です。

モチベーションの維持

ステップアップ

競技プログラミングにはレーティングというものがあり、初心者レベルからスタートして上位に入ることで上がっていきます。

単に課題を解いていくのとは違いゲーム感覚で続けられるので、モチベーションを保つうえで良い刺激になるでしょう。

もし解けなくても、どうすれば解けたのか?の答え合わせをするだけで良い勉強になります。

実行速度やメモリ使用量を意識できるようになる

基盤上のCPUとメモリ

プログラミング学習を始めたばかりの時はとりあえず動けば良いという考えになりがちですが、競技プログラミングでは実行速度やメモリ使用量のことも意識しつつ、パフォーマンスの高いプログラムを組まなければなりません。

教材で取り扱うような初歩的なプログラミングでは規模が小さいので、多少のコードの違いではパフォーマンスに大きな差は出ませんが、実際のエンジニアが働く現場では大規模なシステムを取り扱います。

この時に少しでも効率の悪いコードを入れてしまうとシステム全体のパフォーマンスに関わるため、早いうちからこれを意識できるようにしておくのは重要なことです。

就職でアピールしやすい

就職活動の面接

近年は企業の採用活動でも競技プログラミングに注目する動きがあり、有名なコンテストで良い点を納めているというだけで内定が決まる例もあります。

そこまでは目指せないとしても、競技プログラミングサイトに参加してレーティングは○○を持っている、というような話ができればアピールになります。

初心者ならばなおのこと、実務経験でのアピールができない分、こういったものを活用してスキルレベルを提示するのも良いでしょう。

高いスコアである必要はなく、プログラミングに関わりを持とうとする姿勢も評価対象になり得ます。

参加には注意点も…

先述の通り、初心者が競技プログラミングに参加するのは大いにおすすめなのですが、いくつか注意点もあります。

自分なりの目標を決めてチャレンジすること

目標設定

競技プログラミングでは、頂点に近づけば近づくほどやはり初心者にとって縁遠い世界となっているのが事実です。

世の中には天才エンジニアと呼ばれる人々がいて、初心者に限らず、エンジニアを何年もやっているような人でも敵いません。

競技プログラミングで良い順位を取ることが目的になってしまわないよう、自分なりの目標を立てて参加しましょう。

順位に一喜一憂して振り回されることなく、「エンジニアへ転職すること」等、自分が定めた最終目標に到達するための手段として楽しむことを心がけてください。

あくまで競技用であると意識すること

画面を挟んで向かい合うビジネスマン

競技プログラミングで「良い点を取れるコード」が、実際のエンジニア現場にとって「良いコード」とは限りません。

この2者では目的が違っているためです。競技プログラミングではコーディングの速さや実行速度・メモリの使用効率の良さが最優先とされます。

そのため、業務現場で重要とされる再利用性や、誰が読んでも分かりやすい可読性等は一切無視され、何をやっているコードなのか非常に分かりにくいことが多いです。

ハイレベルに近づくほどこの傾向が高くなりますので、初心者レベルでは問題にならないことが多いですが、上級者のコード等を参考にする際は、この点を意識するようにしましょう。

代表的な競技プログラミングサイト

ここで、多くの人が参加する代表的な競技プログラミングサイトを紹介していきます。

AtCoder

atcoderのTOP画面

AtCoderは、日本初の競技プログラミングサイトです。登録者数は20万人近くに上り、そのうち半分が日本人です。

毎週末にコンテストが開催され、レベルごとに分かれているので初心者でも参加しやすいのが特徴です。

また、日本の名だたるIT企業が主宰するコンテストもAtCoder上で開催されることが多く、優秀なエンジニアと企業の橋渡しの場ともなっています。

Google Code Jam

Google Code JamのTOP画面

Google Code Jamは、Googleが主宰するプログラミングコンテストで、2003年から開始されました。

4万人近くが一挙に参加する年に1度の大きな大会です。数ラウンドに分かれており、勝ち進んだ25名により最終決戦となります。

この一歩前のラウンドで残った1,000人には特製Tシャツが贈られ、エンジニアの中では勲章のように扱われるようです。

Topcoder

TopcoderのTOP画面

Topcoderは、60万人が参加する世界最大規模の競技プログラミングサイトです。

このサイトでトップレベルのレーティングを持つユーザーは「レッドコーダー」と呼ばれ一目を置かれる存在となっています。

競技プログラミングに参加するには?

競技に参加する人

では、初心者が競技プログラミングに参加するにはどうすれば良いのでしょうか。

基本的な言語スキルを身につける

ほとんどの競技プログラミングサイトでは、同じ問題について複数の言語で回答できるようになっています。

例えばAtCoderを例にとればC言語、C++、Python、Java、JavaScript等様々な言語での回答が可能です。

言語の性質の違いから、競技プログラミングで本格的に上位を目指したい場合はC言語やC++が有利ですが、そうでなければ長い目で見て使い道の多いJavaScriptがおすすめです。

まずは言語を決めて一通りの基本スキルを身につけましょう。

まずは登録してビギナー問題を解いてみる

ある程度基本を身につけたら、早速上記で紹介している競技プログラミングサイトや、その他自分がやってみたいコンテストに登録してみましょう。

ビギナーレベルであればかなりシンプルな問題が多いので、最近プログラミングを始めたばかりの方でも練習問題代わりに解くことができるでしょう。

解けない問題が出てきたら学習を深めるチャンスです。そこで投げ出さず、プログラミング学習に使っている教材なり、書籍なりを確認して解き方を確認しましょう。

この往復活動がモチベーションを保ちつつ楽しく学習を進めるコツです。

まとめ

画面を覗き込む仲間たち

競技プログラミングの魅力と初心者へおすすめする理由を説明しました。

ある程度以上のレベルでは数学的知識が無いと十分に競えない問題もありますが、ここで負けじと数学の学習を始めてスキルを磨くも良し、見切りをつけてまたプログラミング学習に専念するも良しです。

モチベーション継続の場としてうまく活用し、プログラミングのスキルアップにつなげていきましょう。

動画で学ぶプログラミング入門

オンラインスクールProglus(プログラス)でプログラミングを学んで、創れる人になろう!

在宅学習応援!今なら複数の基礎コースが無料!!

今すぐ詳細を確認する

Filed Under: プログラミング入門 Tagged With: プログラミング, 初心者, 競技, 競技プログラミング

AIプログラマーになるには?仕事内容や初心者からの目指し方を紹介!

2020-05-26 By プログラミング入門ナビ編集部

AIのイメージ

はじめに

AIのイメージ

人工知能(AI:Artificial Intelligence)が近年注目を集めています。

高齢化による労働力不足や働き方改革といった社会的懸念を解決できる期待感から、ある調査によればこの分野の市場規模は近年のうちに3900億ドルを超えると予測されているほどです。

これに伴い、人工知能を用いたアプリケーションやシステムを構築するAIプログラマー人材の需要が高まると見られています。

人材不足や業務内容が複雑であることから、年収も高く1,000万円台を超えることもあるようです。

この記事では、AIプログラマーの仕事内容や、初心者から目指す場合にやるべきことを紹介します。

AIとは?

疑問を抱く男性

人工知能(AI)と一言にいっても、様々な定義があります。

アメリカの哲学者ジョン・サールが提唱した「強いAI」「弱いAI」という分類によれば、前者は自意識を持った人間の代わりになるようなもの、後者は人間が持つ知性の一部を有し特定の仕事を行うものを指します。

近年ビジネスへの応用事例が増えているのは後者ですね。前者が映画に出てくるような人工知能のイメージですが、世の中に出てくるのはまだ先のことになりそうです。

以降、この記事では後者の「弱いAI」を指して「AI」や「人工知能」という用語を用います。

AIを実現する肝の技術は機械学習とディープラーニングです。この単語も耳にされたことがあるかもしれません。

本記事では詳しい説明を省きますが、簡単にいうと膨大なデータからとある特性に基づいて傾向を学習し分類や予測を行うための技術です。

この「とある特性」を人間が予め選定する必要があるのが機械学習、人工知能が自分で「とある特性」の選定まで行うのがディープラーニングで、さらにこれらも学習方法の違いによりいくつかの種類に分類されます。

AIの応用技術

AIの基本機能はデータの分類や予測ですが、これらは一体どのように応用されるのでしょうか?

こちらも実に様々ですが、主に下記のような用途に使用されています。

画像認識

顔認識

画像の中から人間の顔が写っている部分を検知する顔認識技術や、どんな物が映り込んでいるかを予測する物体認識などの用途に使用されます。

顔認識はカメラのオートフォーカス機能や撮った写真の分類等に欠かせない技術となりました。物体認識は自動運転等の分野で活用されていますね。

音声認識

音声認識

音声信号を分析して話している言葉やその話者を認識します。スマートスピーカー等に搭載されていますね。

あくまで音声信号から語を抽出する部分が音声認識によって担われており、その意味を分析するには次に挙げる自然言語処理が活用されます。

自然言語処理

言語処理

テキストデータの羅列からその意味合いを理解します。SiriやAlexaに代表されるAIアシスタント機能や検索エンジン、翻訳機能等で活用されていますね。

スマートスピーカーやスマートフォンでのAIアシスタント活用が広がることで学習データがどんどん集まり、さらなる発展を遂げている過程です。

AIプログラマーが活躍する業界は?

それでは、どのような業界でAIプログラマーが活躍しているのでしょうか。

モビリティ

自動運転

自動車の自動運転やドローン・ロボットの自動制御には人工知能が欠かせません。モビリティ本体に取り付けられたカメラや様々なセンサから入ってくる情報を瞬時に処理して次の動きを判断し、その通りに動かすために活用されます。

スピードと正確性が何より重要なので、様々な機械学習アルゴリズム知識に熟知していること、ある程度のハードウェア知識も求められるでしょう。

金融システム

金融システム

金融商品の価値予測を行い、投資者へのアドバイスまたは代理運用まで行う用途への注目が高まっています。従来、熟練した人間が行っていた業務を人工知能が行うことでコストを下げることができるためです。

同様に保険商品の価値判定や、消費者金融の金利判定にも応用され始めています。

こうした金融商品の分野で活躍するエンジニアには、統計や確率等の数学知識を求められる場面も多いです。

医療システム

医療システム

医療現場はデータの宝庫です。大量の症例・レントゲン写真やカルテなどの情報から、治療方法や新薬を見つけるための応用が始まっています。

また、個別の患者の症状やレントゲン写真から病名を予測したり、遺伝子情報から将来発生し得る病気と対策を提案するサービスもあり、こちらも人工知能の活用事例の一つです。

適切な生活習慣・運動習慣を提案するアプリが人気を集めている通り、ヘルスケア分野での活用も期待されています。

初心者がAIプログラマーになるには?

まず、AIの研究者とプログラマーは別物と考えましょう。研究者の目的は最新の人工知能技術を探究し、自社のシステムにどう取り込めばより良いものにできるかを考えることです。

実際の設計を誰が行うかは案件により異なりますが、AIプログラマーはこの設計に基づきコーディングを行うのが役割です。

もし研究者を目指したい場合は、今のところは大学に入り人工知能分野を専攻するほか道がありません。

初心者の状態からAIプログラマーになるにはもう少しハードルが低いです。主には下記のことに取り組むのが良いでしょう。

機械学習の基礎知識を身につける

AIの中核をなすのが機械学習なので、この基礎知識がなければ現場で会話が成り立ちません。

まずは初心者でも入り込みやすい書籍を読んで知識を身につけましょう。

おすすめは下記です。

人工知能は人間を超えるか(松尾豊、角川EPUB選書)

人工知能は人間を超えるか

AI研究の第一人者である松尾豊氏による「いま人工知能ができること、できないこと、これからできるようになること」を初心者にもわかりやすく説明した本です。

まずは人工知能と自分との距離を縮めるための導入としておすすめです。

見て試してわかる機械学習アルゴリズムの仕組み(秋庭伸也ほか、翔泳社)

見て試してわかる機械学習アルゴリズムの仕組み

機械学習にも様々なアルゴリズム(処理の考え方やその方法)があり、用途により向き不向きがあります。どのようなアルゴリズムがあって、動きがどう違うのかを説明した本です。

これは実際にプログラムを書きながら学ぶ前提となっているため、次項で述べる「Pythonスキル」を身につけた後に取り組むのが良いでしょう。

Pythonのスキルを身につける

言語を学ぶ人

GitHub公式ブログによりますと、GitHubで機械学習(”machine-learning”)というトピックでタグづけされたリポジトリのうち、最も多く使用されている言語はPythonです。

これは、多くの機械学習や統計処理に関する人気ライブラリがPythonのものであるためと想定されます。

C言語やJavaなどでも人工知能の実装は可能で、それぞれライブラリもありますすが、もはや人工知能といえばPythonというスタンダードが定着しているというのが業界の共通認識です。

そのため、新しく人工知能のための言語を学ぶならばPythonをおすすめします。

なお、ProglusでもPythonの講座を準備中です。受講可能となり次第、こちらでもお知らせいたします。

AI分野の資格を取得する

資格の獲得

必須ではありませんが、AI分野の資格を取得しておくとAIプログラマーの職を得るにあたって知識をアピールしやすいです。

E資格

E資格は、日本ディープラーニング協会が運営している認定試験です。同協会のAI資格にはもう一つ「G検定」がありますが、そちらがジェネラリスト(ビジネス寄り)向けの試験なのに対し、E資格はエンジニア向けの試験となっています。

受験には同協会が実施するJDLA認定プログラムの受講が必須です。

受講料やプログラムの受験料は決して安くはありませんが、AIに関して広く学びつつ資格も取りたい場合にチャレンジすると良いでしょう。

Pythonエンジニア認定データ分析試験

Pythonソフトウェア財団のスポンサーである一般社団法人Pythonエンジニア育成推進協会が主宰予定のPythonエンジニア認定データ分析試験は、Pythonを使ったデータ分析の基礎や方法を問う試験です。

まさに業務内容に直結したスキルのアピールになりますね。

現時点で試験はまだ準備中のため、要綱や実施時期については公式ページにて適宜確認してください。

まとめ

学習に励む女性

AIプログラマーの仕事内容と、初心者からAIプログラマーを目指すためにやるべきことについて紹介しました。

決して簡単な道ではありませんが、人材不足が深刻視されている分野ですので、チャンスは大いにあります。

次から次へと新技術が開発されるため、新しいことを楽しく学べる方にはおすすめの職業です。

我こそはという方は、ぜひチャレンジしてみてください。

動画で学ぶプログラミング入門

オンラインスクールProglus(プログラス)でプログラミングを学んで、創れる人になろう!

在宅学習応援!今なら複数の基礎コースが無料!!

今すぐ詳細を確認する

Filed Under: エンジニアへの道 Tagged With: AI, Python, プログラマー, 人工知能, 初心者, 機械学習

  • Go to page 1
  • Go to page 2
  • Go to Next Page »

Primary Sidebar

Twitter

Follow @programmingnavi Tweets by programmingnavi

Facebookページ

プログラミング入門ナビ

メルマガに今すぐ登録!

ブログの更新情報やお得なクーポン情報などをお知らせします。

登録はこちらから。

人気の記事

まだデータがありません。

最近の投稿

  • 【7/9更新】Udemyプログラミング入門講座等の割引クーポン配布
  • JavaScriptの「this」は呼び出し方によって値が変わる?違いを徹底解説!
  • JavaScriptのfor文で配列要素の足し算をするとNaNが出るのはなぜ?原因と対処法を解説!
  • プログラミング学習を成功させるポイントを3つお送りいたします
  • 初心者がスマホアプリを開発するには?iOSとAndroidの両方について必要なスキルを確認しよう

カテゴリー

  • エンジニアのしごと
  • エンジニアへの道
  • ツールの使い方
  • ニュース
  • プログラミング入門

タグクラウド

AI AWS AWS Cloud9 Bootstrap Cloud9 CodeWing CSS Git GitHub Heroku HTML JavaScript Linux macOS MySQL MySQL Workbench node.js Nuxt.js Proglus Python Ruby Ruby on Rails SQL Udemy Vue.js Web開発 Windows Windows10 エラー エンジニア オンライン学習 サーバ サーバー スクリーンショット セキュリティ セール データベース プログラミング プログラミング入門 プログラミング学習 ユーデミー 初心者 未経験 機械学習 開発環境構築

アーカイブ

  • 2020年7月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年11月
  • 2019年9月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月

検索

Copyright © 2025 · programmingnavi.com ・About・プライバシーポリシー