Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

【JavaScript】テンプレートリテラルを簡単に解説

f:id:ShotaNukumizu_1000:20211114052320p:plain

おはようございます。Shotaです。

今回の記事では、JavaScriptのテンプレートリテラルについて詳細に解説します。



テンプレートリテラルとは

テンプレートリテラルとは、文字列の中に定数や変数などを埋め込んだり、改行を入れたりすることで文字列の操作を楽にしてくれる非常に便利な構文です。

テンプレートリテラルを使えば、文字列を連携する際に+を使う必要はありません。そのため、JavaScriptの構文全体がスッキリして見やすくなり、初心者でも理解しやすくなります。


テンプレートリテラルの使い方

使い方は非常に簡単です。テンプレートリテラルでは``(バッククォート)を用います。

構文そのものはそこまで難しくないので、ここからはテンプレートリテラルでできることを見ていきましょう。


改行ができる

テンプレートリテラルでは\nを使わずにそのまま改行できます。

let value = 'Hello\nJavaScript'

let value1 = `Hello
JavaScript`

console.log(value)
console.log(value1)

▼出力結果

Hello
JavaScript
Hello
JavaScript


変数の値を文字列に組み込む

${value}(valueは変数)と表記することで、文字列の中に直接変数を埋め込めます。

let value = 'Hello JavaScript'

console.log(`output: ${value}`)

▼出力結果

output: Hello JavaScript


式を文字列に組み込む

変数だけではなく、式を文字列に埋め込めます。

console.log(`3 + 4 = ${3+4}`)

▼出力結果

3 + 4 = 7


まとめ

今回の記事では、JavaScriptでテンプレートリテラルを使う方法を簡単に解説しました。

今回の記事を参考に、JavaScriptに対する理解を深めていただければ幸いです。

今回の記事はこれで終了です。

【参考サイト】

it-biz.online

developer.mozilla.org

プログラミング学習を無駄にしないために|理由と対策を徹底解説

f:id:ShotaNukumizu_1000:20210924065330p:plain

おはようございます。Shotaです。

プログラミング学習には、ある程度まとまった時間が必要です。プログラミングで稼げるようになるためには、少なくとも数ヶ月~数年単位で勉強が必要です。

そのため、「プログラミングの勉強が無駄になってしまうだろうか...?」と懸念する人も少なくないでしょう。

そこで、今回の記事ではプログラミング学習が時間の無駄になる理由6個とその対策について徹底解説します。せっかくプログラミングを勉強するなら、時間を浪費したくないですよね。

それでは早速、本題に入りましょう。



プログラミング学習が時間の無駄になる理由6個

f:id:ShotaNukumizu_1000:20220107073143p:plain

本章では、プログラミング学習が時間の無駄になる理由を6個紹介します。

  • 目的が曖昧

  • 楽しさを見いだせない

  • アウトプットをしない

  • 他にも注力したいことがある

  • わからない点が多くて学習が進まない

  • 勉強を習慣化できない


それぞれ順番に解説していきます。


目的が曖昧

本記事を読んでいるあなたは、「プログラミングを勉強する理由」を明確に答えられますか?なんとなくで勉強していませんか?

せっかくプログラミングを勉強しても、目的が曖昧のまま途中で勉強をやめてしまっては時間の無駄になりかねません。

プログラミング学習を有意義なものにするためには、「プログラミングを勉強する理由」を明確に持つことが重要です。


楽しさを見いだせない

プログラミングを勉強する人の中には、プログラミングそのものが楽しいと思っている人も少なくないと思います。プログラミングを楽しいと感じられないと、プログラミングそのものをやめてしまうこともあると思います。

プログラミングは実際、コードを書くという単純作業です。これは非常に地味なので、「楽しくない」と感じる人も少なくないでしょう。そうなると、続けるのが難しくなります。

最終的には勉強としても仕事としても継続できず、勉強してきた時間が水の泡になってしまうことも否定できません。


アウトプットをしない

なにか勉強する時、ずっとインプットばかりしている人っていますよね。

しかし、勉強で重要なことはインプットだけではなくアウトプットも行うことです。インプットだけでは実力が身に付かず、時間の無駄になってしまいます。

特にプログラミング学習ではアウトプットが重要です。様々な情報を駆使しながら、自分でコードを書くことを意識しましょう。


他にも注力したいことがある

プログラミング学習の他にも注力したいことがある場合、時間を浪費してしまう可能性が高いです。

プログラミングを勉強するには時間も集中力も必要なので、他の物事と同時進行で勧めるのは非常に効率が悪いです。(ただし、本ブログのようにプログラミングを通して学んだことをアウトプットする場合は例外)

プログラミングを習得するためには、学習に集中できる環境や生活習慣を整えることは必要不可欠です。


わからない点が多くて学習が進まない

プログラミング学習では専門用語やエラーが頻出するので、わからないことがたくさん出てきます。わからないことがたくさんあると勉強が進まず、時間を浪費しやすいです。

わからないことを自分で解決するために調べることは一番大事です。しかし、時間が立ってもわからない場合は分かる人に質問しましょう。

プログラミング学習では、わからないことを質問できる環境を整えると、時間を無駄にせずに済みやすいです。


勉強を習慣化できない

プログラミング学習を継続できないことも、時間を無駄にしてしまう人の特徴です。

誰でも、最初はやる気や意気込みがあります。しかし、次第に学習する時間が減っていつの間にか全く手を付けていない状態になることはないでしょうか?

プログラミング学習では「継続」が何よりも重要です。継続できなければ、最初にいくら勉強しても無駄になりやすいです。


プログラミング学習を無駄にしないための対策

f:id:ShotaNukumizu_1000:20220103130058p:plain

本章では、プログラミング学習を無駄にしないための対策を6個紹介します。

  • 目的を明確にする

  • 目的にあった言語を選ぶ

  • 小さな目標を達成する

  • 短い時間でも毎日勉強する

  • 質問できる環境を作る

  • 情報発信をする


それぞれ順番に解説していきます。


目的を明確にする

まずは、プログラミングを勉強する理由を明確にしましょう。例えば、以下のようなものが挙げられます。

  • 今よりも働きやすい会社に転職する
  • 副業を始める
  • 独立して自由度の高い生活を手に入れる


このように、プログラミングを勉強することで何を得たいのかを明確にします。目的が明確になることで、学習に躓いた時も再度モチベーションを維持するきっかけになります。


目的にあった言語を選ぶ

目的を明確にしたら、目的にあったプログラミング言語を選びましょう。

あらゆるプログラミング言語を比較して、自分の目的にあったものを選びましょう。

最初はPythonPHPJavaScriptのような学習コストの低い言語から勉強すると学びやすく、効率的に習得できます。


小さな目標を達成する

プログラミング学習を進めていくためには、小さな目標をいくつも設定して達成するといいでしょう。

スモールステップで目標達成を継続することで、モチベーションを保ちながら学習を継続しやすくなります。

また、小さな目標に向けて1つひとつ着実に積み重ねられるので、充実して勉強できるでしょう。


短い時間でも毎日勉強する

プログラミングを勉強する上では、「継続」することは非常に大事です。たとえ5分でも10分でもいいので、必ず毎日勉強しましょう。

短い時間でも毎日勉強するようになると、学習を習慣化しやすくなります。

プログラミングを無駄にしないために、たとえ短い時間であっても着実に習得することも大事です。


質問できる環境を作る

プログラミングを継続できるためにも、質問できる環境を見つけることも非常に大事です。

やり方は非常にシンプルです。以下のサイトに会員登録しましょう。これらのサイトは、わからないことを気軽に質問できるので非常におすすめです。ぜひ有効活用してください。

teratail.com

ja.stackoverflow.com


情報発信をする

プログラミング学習と同時に情報発信をすることも、時間を無駄にしない対策としておすすめです。

プログラミングの情報共有サイトやSNSなどで、学習内容や成果物について発信しましょう。 情報発信を続けていると、次第にあなたの学習する様子に興味を持つ人が増えていきます。プログラミングの学習仲間を見つけ、学習会や作業会などのイベントに参加する機会を得られるようになりますよ。

また、長期的な学習の積み重ねや成果物を評価して、あなたに仕事をオファーする会社が現れる可能性もあります。

学習段階からの情報発信は、将来的にも非常に有益です。これはすぐにできることなので、ぜひやってみましょう。


まとめ

今回の記事では、プログラミング学習を無駄にする理由とその対策を解説しました。

今回の記事を参考に、今後のプログラミング学習の見直しや改善に役立てていただければ幸いです。

長くなりましたが、今回の記事はこれで終了です。

【参考サイト】

millioninvest.biz web-camp.io

【Python】lambdaとmapをそれぞれ徹底解説

f:id:ShotaNukumizu_1000:20220104152603p:plain

おはようございます。Shotaです。

今回の記事では、Pythonにおけるlambdamapを徹底解説します。



無名関数lambda

無名関数lambdaは、Pythonで簡単な関数を作る際によく使われます。これを使うだけで、関数を予約語defを使わずによりシンプルに関数を定義できます。

# 通常の関数
def func(val):
    print(f'Hello {val}')

# lambda
func = lambda val: f'Hello {val}'


組み込み関数map

Pythonの組み込み関数mapは、listtupleのような複数の要素を持つデータ型に対して、それぞれの要素に同じような処理を行うための関数です。

mapを使うことで、forを使わずに簡単に複数要素を持つデータ型に対して処理を行えます。


lambdamapの使い方

from math import copysign

values = [-3, 7, 13, 5, -18, 9]

# リストの中の数値と同じ符号で、数値だけを2乗する
values = list(map(lambda x: int(copysign(x**2, x)), values))

print(values)
# 実行結果 -> [-9, 49, 169, 25, -324, 81]


これを普通の関数を使って書くと以下のようになり、少し冗長になってしまいます。


from math import copysign

values = [-3, 7, 13, 5, -18, 9]

def func(n):
    return int(copysign(n**2, n))

values = list(map(func, values))
print(values)

あと、lambdaには名前と得点をtupleとして持っているlistを得点でsortしたいときにも十分に活用できます。

score = [
    ('Ken', 100),
    ('Makoto', 55),
    ('Reina', 71),
    ('Taro', 41),
    ('Takashi', 88)
]

score.sort(key=lambda x: x[1])
print(score)
# 実行結果 -> [('Taro', 41), ('Makoto', 55), ('Reina', 71), ('Takashi', 88), ('Ken', 100)]


まとめ

今回の記事では、lambdamapの使い方をそれぞれ徹底解説しました。

今回の記事を参考にして、lambdamapの使い方を理解してもらえたら幸いです。

今回の記事はこれで終了です。

【参考サイト】

qiita.com

techacademy.jp

【JavaScript】アロー関数を徹底解説

f:id:ShotaNukumizu_1000:20211114052320p:plain

おはようございます。Shotaです。

Javascriptを勉強している人にとって、アロー関数は馴染み深い関数だと思います。Javascriptを勉強している人の中には、

🤔「Javascriptにおけるアロー関数の使い方を知りたい」

🤨「アロー関数がわからない」

このように考えている人も少なくないでしょう。

そこで、今回の記事ではJavascriptに登場するアロー関数について詳細に解説します。

それでは早速、本題に入りましょう。



アロー関数とは

アロー関数とは、Javascriptの関数の一つで、普通の関数に比べて非常に構造がシンプルです。

▼通常の関数

function func(arg) {
    return `output: ${arg}`
}

▼アロー関数

let func = (arg) => `output: ${arg}` 

アロー関数ではfunctionを省略し、代わりに=>を使います。functionが不要なので、よりシンプルに関数を表現できます。

引数がない場合は、()の中身を空白のままにします。ただし、()を省略できないので注意してください。

let func = () => console.log('Hello Javascript')

引数が一つの場合は、()を省略できます。

let func = arg => `output: ${arg}` 

アロー関数のreturnが一行だけなら、{}returnを省略できます。

let func = (x, y) => x * y


アロー関数と普通の関数の違い

アロー関数は既存の関数を簡略化するために導入されたので、「書き方が短くなっただけ」と思われがちですが、通常の関数とはまた別の挙動を起こします。


thisの固定化

アロー関数の一番の特徴は、通常の関数と「this」の扱いが異なる点です。

そもそも「this」とは、読み取り専用のグローバル変数のようなものであり、どこからでも参照が可能です。

通常の関数では、呼び出し元のオブジェクトを参照し、また、スコープや状況によって、thisの意味も変化します。しかし、アロー関数では定義された段階でthisが固定化されます。

▼通常の関数

color = 'dark' // グローバル変数としてcolorを用意

let func = function() {
    return this.color
}

console.log(func())

let obj1 = {
    color: 'white',
    func: func
}

let obj2 = {
    color: 'gray',
    func: func
}

console.log(obj1.func())
console.log(obj2.func())

▼実行結果

dark
white
gray

▼アロー関数

color = 'dark'

let func = () => this.color

console.log(func())

let obj1 = {
    color: 'white',
    func: func
}

let obj2 = {
    color: 'gray',
    func: func
}

console.log(obj1.func())
console.log(obj2.func())

▼実行結果

undefined
undefined
undefined

このように、アロー関数では関数が宣言された時点でthisが確定されます。thisの内容を都度変更したい場合は、アロー関数の使用を極力控えたほうがいいかもしれません.


コンストラクタがない

コンストラクタは、関数を使って定義されたオブジェクトです。通常はnewでオブジェクトを生成できます。アロー関数ではコンストラクタを定義できないので注意しましょう。


argumentsを持たない

argumentsは関数内のみで利用できるオブジェクトです。

通常は配列のようにarguments[i]という形で関数に渡された値をすべて取得できます。

▼通常の関数

let func = function(a, b, c) {
    for (let i = 0; i < arguments.length; ++i) {
        console.log(arguments[i])
    }
}

func(1, 2, 3)

▼実行結果

1
2
3

しかし、このargumentsはアロー関数では使えないので十分に注意してください。


まとめ

今回の記事では、Javascriptで汎用性の高いアロー関数について詳細に解説しました。

今回の記事を参考に、アロー関数についての理解を深めていただければ幸いです。

今回の記事はこれで終了です。

【参考サイト】

tcd-theme.com

ja.javascript.info

Djangoが実際に使われているWEBアプリ5つを紹介

f:id:ShotaNukumizu_1000:20211205071412p:plain

おはようございます。Shotaです。

Djangoは世界中のバックエンド開発で利用されているPythonのWEBフレームワークです。

🤔「Djangoが実際に使われているサイトにはどんなものがある?」

🤨「Djangoで具体的にどんなサイトが作れるのか知りたい」

このように考えている人も少なくないでしょう。

そこで、今回の記事では実際にバックエンドでDjangoが使われているWEBアプリを5つ紹介していきます。



Djangoとは

f:id:ShotaNukumizu_1000:20210619110155p:plain

Djangoとは、PythonのWebフレームワークで世界中のバックエンド開発で利用されています。フレームワークの中では学習コストが比較的小さく、かつWEBアプリの開発に必要な機能がデフォルトで備わっているのが最大の特徴です。

Djangoについて詳細に知りたい方は以下の記事を参考にしてください。

▼おすすめの記事

shotanukumizu-1000.hatenablog.com

shotanukumizu-1000.hatenablog.com


Djangoが使われているWEBアプリ

本章では、Djangoが実際に使われているWEBアプリを5つ紹介していきます。

Djangoが使われているWEBアプリには主に以下の5つがあります。


それぞれ順番に解説していきます。


YouTube

f:id:ShotaNukumizu_1000:20220104140117p:plain

YouTubeは世界で20億を超えるユーザを持つ動画を共有するためのWEBアプリで、Googleについで2番目に人気のある検索エンジンです。(Monocubed 調べ)

YouTubeは、PythonDjangoを使った動的なWEBアプリの典型的な例です。初期のYouTubeはバックエンドにPHPが使われていましたが、Djangoに移行しました。

Djangoを使ってWEB上の送受信されるデータ量やデータの密度を処理し、毎日何百万ものデータアクセスを簡単にしています。


Instagram

f:id:ShotaNukumizu_1000:20220104140142p:plain

Instagramはユーザが画像を共有するためのSNSプラットフォームです。このアプリのバックエンドにもDjangoが利用されています。

Djangoは外部のプラグインやアドオンを必要としないので、すぐに使えるInstagramのようなWEBアプリを素早く開発するのに最適だからです。それだけではなく、Djangoは数多くのプラットフォームに対応している(「マルチプラットフォーム」と呼ばれる)のもDjangoが採用された理由になります。


Pinterest

f:id:ShotaNukumizu_1000:20220104140209p:plain

PinterestもバックエンドにDjangoが使われているWEBアプリの一つです。Pinterestのアクティブユーザ数は約2.5億人で、安全に運用するためには高速かつ安全な高性能なWEBサイトを開発する必要があります。Djangoはそのようなサイトを効率的に開発できるためバックエンドに採用されたと思われます。

PinterestDjangoを使って数千人のユーザを同時に処理し、フォロワーやボード、ピン、投稿の管理を行っています。


Spotify

f:id:ShotaNukumizu_1000:20220104140232p:plain

Spotifyは複数のデバイスで作業し、ユーザが音楽をダウンロードして聞くことができる世界最大の音楽配信サイトです。

Spotifyにある「プレイリスト」や「あなたのおすすめ」に表示される音楽には、Python機械学習が利用されています。Python機械学習を数百万人のユーザに正常に起動させるために、Djangoの高速で処理するバックエンドが利用されています。

これはあくまで個人の予測に過ぎませんが、Python機械学習を最大限に利用するためにDjangoをバックエンドとして採用したのではないかと思います。


Dropbox

f:id:ShotaNukumizu_1000:20220104140253p:plain

Dropboxは世界最大のクラウドストレージサービスの一つです。実はこのWEBアプリのバックエンドにもDjangoが採用されています。

DropboxではDjangoを使って、ユーザの履歴にアクセスしたり、ファイルを共有したり、複数のデバイスでデータを同期したりすることを実現しています。


まとめ

今回の記事では、Djangoが実際に活用されているWEBアプリを5つ紹介しました。

今回の記事で紹介したアプリは5つになります。


今回の記事を参考に、Djangoが実装できる機能や得意なことについて理解を深めていただければ幸いです。

今回の記事はこれで終了です。

【参考サイト】

www.softformance.com

www.monocubed.com