プログラミング初心者に確実に押さえておいて欲しい文法一覧（技術面接対策用）

## はじめに

株式会社シンシアでは、実務未経験のエンジニアの方や学生エンジニアインターンを採用し一緒に働いています。

※ シンシアにおける働き方の様子はこちら 

https://www.wantedly.com/companies/xincere-inc/stories


シンシアでは、年間100人程度の実務未経験の方が応募し技術面接を受けます。
その経験を通し、実務未経験者の方にぜひ身につけて欲しい技術力（文法）をここでは紹介していきます。


この記事は

- プログラミングを学び出したばかりの人
- ポートフォリオは作ったけど、プログラミングに自信がない人
- これからエンジニアとして働こうとしている人
- （実務未経験者で、シンシアの技術試験を受けようとしている人）

向けの記事です。

シンシアで行われている技術試験対策の一貫でもあるので、ぜひ身についていなければしっかり勉強してみてください。

## 文字列について

文字列は、文字列データ（テキスト）を扱います。

https://naminori.xincere.jp/courses/3/lectures/18

よくある文字列操作でいうと、

### 文字列の連結

rubyの場合

```ruby
str1 = "Hello, "
str2 = "World!"
result = str1 + str2  # => "Hello, World!"

```

pythonの場合

```python
str1 = "Hello, "
str2 = "World!"
result = str1 + str2  # => "Hello, World!"
```

javascriptの場合

```javascript
const str1 = "Hello, ";
const str2 = "World!";
const result = str1 + str2;  // => "Hello, World!"
```

### 文字列の分解

文字列（Sとした場合）は通常、1文字目をS[0]、2文字目をS[1]などのように抽出します。

rubyの場合

```ruby
S = "example"
puts S[0]  # => "e"
puts S[1]  # => "x"
```

pythonの場合

```python
S = "example"
print(S[0])  # => "e"
print(S[1])  # => "x"
```

javascriptの場合

```javascript
let S = "example";
console.log(S[0]);  // => "e"
console.log(S[1]);  // => "x"
```

## 条件分岐

プログラミングにおける条件分岐とは、条件を満たす場合と満たさない場合で異なる処理を実行する場合に使います。

https://naminori.xincere.jp/courses/3/lectures/20

:::note info
**例**

「もしAが10以上なら、〇〇を実行し、それ以外の場合は××を実行する」といった形です。多くのプログラミング言語では、条件分岐を行うためにif文やswitch文などが使われます。
:::

rubyの場合

```ruby
number = 15

if number >= 10
  puts "10以上です"
else
  puts "10未満です"
end
```

pythonの場合

```python
number = 15

if number >= 10:
    print("10以上です")
else:
    print("10未満です")
```

javascriptの場合

```javascript
const number = 15;

if (number >= 10) {
  console.log("10以上です");
} else {
  console.log("10未満です");
}
```


### 条件の連結（且つ、または）について

条件の連結には「かつ（AND）」と「または（OR）」があり、複数の条件を組み合わせて判定を行います。以下に、Ruby, Python, JavaScriptでそれぞれ「かつ（AND）」と「または（OR）」を使った例を示します。

https://naminori.xincere.jp/courses/3/lectures/21


:::note info
**例の条件**


ここでは、変数ageとcountryが以下の条件を満たすかどうかをチェックします。

ANDの例：「ageが18以上 かつ countryが"Japan"」である場合
ORの例：「ageが18以上 または countryが"Japan"」である場合
:::

rubyの場合

- `&&`：AND条件の連結に使用します。
- `||`：OR条件の連結に使用します。

```ruby
age = 20
country = "Japan"

# AND (かつ) の場合
if age >= 18 && country == "Japan"
  puts "条件を満たしています（AND）"
else
  puts "条件を満たしていません（AND）"
end

# OR (または) の場合
if age >= 18 || country == "Japan"
  puts "条件を満たしています（OR）"
else
  puts "条件を満たしていません（OR）"
end
```

pythonの場合

- `and`：AND条件の連結に使用します。
- `or`：OR条件の連結に使用します。

```python
age = 20
country = "Japan"

# AND (かつ) の場合
if age >= 18 and country == "Japan":
    print("条件を満たしています（AND）")
else:
    print("条件を満たしていません（AND）")

# OR (または) の場合
if age >= 18 or country == "Japan":
    print("条件を満たしています（OR）")
else:
    print("条件を満たしていません（OR）")

```

javascriptの場合

- `&&`：AND条件の連結に使用します。
- `||`：OR条件の連結に使用します。


```javascript
let age = 20;
let country = "Japan";

// AND (かつ) の場合
if (age >= 18 && country === "Japan") {
  console.log("条件を満たしています（AND）");
} else {
  console.log("条件を満たしていません（AND）");
}

// OR (または) の場合
if (age >= 18 || country === "Japan") {
  console.log("条件を満たしています（OR）");
} else {
  console.log("条件を満たしていません（OR）");
}

```


## 繰り返し

プログラミングにおける繰り返し（ループ）は、同じ処理を複数回実行したいときに使用します。繰り返しを実現するために、Ruby, Python, JavaScriptにはそれぞれforループやwhileループなどの構文が用意されています。ここでは、forループを使って0から4までの数字を表示する例を示します。

https://naminori.xincere.jp/courses/3/lectures/22

https://naminori.xincere.jp/courses/3/lectures/23

:::note info
**例の内容**
0から4までの数値を順に表示する。
:::


rubyの場合

```ruby
for i in 0..4
  puts i
end
```

pythonの場合

```python
for i in range(5):
    print(i)
```

javascriptの場合

```javascript
for (let i = 0; i < 5; i++) {
  console.log(i);
}
```


## 関数

プログラミングにおける関数（またはメソッド）は、特定の処理をまとめておき、必要に応じてその処理を実行するための仕組みです。関数を使うことで、同じ処理を何度も呼び出せるようになり、コードの再利用性と可読性が向上します。

https://naminori.xincere.jp/courses/3/lectures/25


関数は「引数（パラメータ）」と「返り値」を持つことができます。

:::note info
**引数**：関数に入力する値で、関数の内部で使用される変数です。
**返り値**：関数が処理を終えた後に戻す結果の値です。
:::

rubyの場合

- **def**：関数を定義するキーワードです。
- **double**：関数の名前です。
- **number**：引数で、関数に渡される値です。ここでは「数値を2倍にする対象」を受け取ります。
- **return**：返り値を指定するキーワードです。number * 2の計算結果が返り値として関数の呼び出し元に戻ります。
- **呼び出し**：double(5)で関数を呼び出し、5を引数として渡しています。返り値がputsで表示されます。

```ruby
def double(number)
  result = number * 2
  return result
end

puts double(5)  # => 10

```

pythonの場合

- **def**：関数を定義するキーワードです。
- **double**：関数の名前です。
- **number**：引数で、関数に渡される値です。
- **return**：返り値を指定するキーワードです。ここではnumber * 2の結果が返り値です。
- **呼び出し**：double(5)で関数を呼び出し、引数5を渡し、返り値をprintで表示します。

```python
def double(number):
    result = number * 2
    return result

print(double(5))  # => 10
```

javascriptの場合

- **function**：関数を定義するキーワードです。
- **double**：関数の名前です。
- **number**：引数で、関数に渡される値です。
- **return**：返り値を指定するキーワードです。ここではnumber * 2の結果が返り値です。
- **呼び出し**：double(5)で関数を呼び出し、引数5を渡し、返り値がconsole.logで表示されます。


```javascript
function double(number) {
  const result = number * 2;
  return result;
}

console.log(double(5));  // => 10
```


## 練習問題

このあたりの実務的な問題もやってみてください。

https://naminori.xincere.jp/courses/3/lectures/26

https://naminori.xincere.jp/courses/3/lectures/27

## まとめ

今回の記事は、弊社の技術試験を多くの方を見てきて、これから実務をやるのに必要な文法をまとめました。

※ 少なくともちゃんと**使いこなせていたら**弊社では採用しています。

しっかり勉強をして、エンジニアとして就職し、日本のエンジニア不足を解消していきましょう！！！

https://naminori.xincere.jp/

## その他

上記の学習を終えて、転職活動用のポートフォリオを作るならこちらをよろしくお願いします。

https://portfolio.xincere.jp/