回答編集履歴
1
校正
test
CHANGED
@@ -2,7 +2,21 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
この1
|
5
|
+
この1行でフロントエンドとバックエンドの違いが分かってない事が読み取れます。
|
6
|
+
|
7
|
+
ちゃんと調べてください。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
と思いましたが、もしかして貴方は2年目のフロントエンジニアさんなのですか?
|
12
|
+
|
13
|
+
「やはり、JavaScriptから(Node.js使いになる選択肢)が良いのでしょうか?」と補うことで意味が通じます。
|
14
|
+
|
15
|
+
その場合、どの程度JavaScriptに精通しているのかが基準になるでしょう。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
---
|
6
20
|
|
7
21
|
|
8
22
|
|
@@ -10,31 +24,125 @@
|
|
10
24
|
|
11
25
|
|
12
26
|
|
13
|
-
その3択ならばPHPし
|
27
|
+
その3択ならば、PHP一択でしょう。
|
28
|
+
|
29
|
+
しかし、RubyやPythonが選択肢から削られた理由がわかりません。
|
30
|
+
|
31
|
+
有力だと思いますので調べて検討しなおしてみてください。
|
14
32
|
|
15
33
|
|
16
34
|
|
17
|
-
|
35
|
+
> PHP
|
18
|
-
|
19
|
-
jQueryにおんぶ抱っこの状態だから脱却し、それなりに実力のある人間ならばJavaScriptからNode.js使いになるルートは残されていますが、ゼロからバックエンドエンジニアになる場合は勉強量がまるで違うのでオススメは出来ません。
|
20
36
|
|
21
37
|
|
22
38
|
|
23
|
-
|
39
|
+
バックエンドエンジニアの仕事の半分はWebサーバの構築です。
|
24
40
|
|
41
|
+
Apacheのおまけでポンと動かせるPHPは身軽で良い選択肢の一つでしょう。
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
しかし、もう半分はLinuxを弄り回す仕事です。
|
46
|
+
|
47
|
+
PHPはHTMLを簡素な記述で素早く作って返す事に特化しているので、
|
48
|
+
|
49
|
+
RubyやPythonといったWebサーバに特化していないスクリプトの方がLinuxOSを弄り回す事に向いています。
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
つまり、バックエンドエンジニアとして大成するならばPHP1本で最後まで通す事は困難です。
|
54
|
+
|
55
|
+
PHPを選ぶ場合、コンパイル言語でもなんでも良いので第二言語を持っておく事をオススメします。
|
56
|
+
|
57
|
+
(因みにBashも立派なスクリプト言語でLinuxの操作が最も得意な言語と言えるので、役割分担がしやすくオススメです)
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
> JavaScript
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
JavaScript(以下JS)はそもそもブラウザ上で動くフロントエンドの為の言語です。
|
66
|
+
|
67
|
+
jQueryにおんぶ抱っこの状態から脱却した実力のあるフロントエンドエンジニアならば
|
68
|
+
|
69
|
+
JSの知識を活かしてNode.js使いになるルートが残されています。
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
しかし、JSを一通り扱える事がNode.jsの条件なので、
|
74
|
+
|
75
|
+
ゼロからバックエンドエンジニア目当てに始めるのは中々辛い所があります。
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
軽くJSの歴史に触れますが、JSは登場後慎ましい変化で生きてきました。
|
80
|
+
|
81
|
+
AjaxやNode.jsが普及して多数のエンジニアがJS使いになりましたが、
|
82
|
+
|
83
|
+
あまりにJSの言語仕様の糞ぶりにエンジニア達の不満が爆発。
|
84
|
+
|
85
|
+
[2015年以降、毎年新しい構文が追加される](https://ja.wikipedia.org/wiki/ECMAScript)ようになりました。
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
ES2015という新仕様の実装でJSはイケてる構文を大量に仕入れました。
|
90
|
+
|
91
|
+
ES2016は比較的穏やかな進化でしたが、ES2017のasync/awaitも大概歴史が変わりますし、
|
92
|
+
|
93
|
+
ESNEXTとして提案されている物に全てのコードが過去になる程の革命的な構文がいくつも眠っています。
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
構文増えただけで良いことじゃん!いやいや、そう単純ではありません。
|
98
|
+
|
99
|
+
既存の書籍やブログ記事ので紹介されているコードがすぐに過去のものになり、
|
100
|
+
|
101
|
+
新しいブログ記事でこの書き方はバグを呼び込むので辞めましょうと説かれる始末。
|
102
|
+
|
103
|
+
古い書き方してる不勉強や老害は○ねとか思われちゃうわけですよ。
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
JS、ES、Node.jsの世界を行ったり来たりして勉強し続ける必要があり、
|
108
|
+
|
109
|
+
記事(と対象のJSのバージョン)によって書いてある事がまるで違うので勉強は捗らないでしょう。
|
110
|
+
|
111
|
+
この辺の事情がバックエンドエンジニアとしてNode.js使いを目指した時のツラミとして出て来るでしょう。
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
> Perl
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
PerlはWebサーバとしての利用は廃れているのでオススメ出来ません。
|
120
|
+
|
121
|
+
2000年以前は動的なWebサイトを構築する場合、Perl+CGIという構成が一般的でしたが、
|
122
|
+
|
123
|
+
2000年に楽天がPHPを採用した辺りから一気にPHP人気に火が付き、その役目はPHPに取って代わられました。
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
別にWebサーバ利用でPerlという言語が他のスクリプト言語に劣っているわけではありません
|
128
|
+
|
129
|
+
(前の回答で劣っていると言いましたが訂正しておきます)
|
130
|
+
|
131
|
+
Sinatraクローンから成長したWebフレームワークは存在しますし、案件も探せばボチボチあります。
|
132
|
+
|
25
|
-
|
133
|
+
ただし、多くのベンチャー企業やSIerなどなど…新卒エンジニア向けでPerlを教える企業はほぼ皆無といって良いでしょう。
|
134
|
+
|
135
|
+
ゼロから覚えてバックエンドエンジニアを目指すとすれば向いていないと判断せざるを得ません。
|
136
|
+
|
137
|
+
|
26
138
|
|
27
139
|
第二言語としては良い選択肢でしょうね。
|
28
140
|
|
141
|
+
コマンドの出力結果をパイプで繋いで、ワンライナーのperlで加工する凄腕エンジニアが居ますが、その人の生産性は群を抜いています。
|
29
142
|
|
30
143
|
|
31
|
-
さて、RubyやPythonが選択肢から削られた理由はなんでしょう?
|
32
144
|
|
33
|
-
WebサーバとしてApacheのおまけでポンと動くPHPは楽ですが、バックエンドエンジニアの仕事は他にもスクリプト言語としてLinuxを弄り回す仕事があるので、
|
34
|
-
|
35
|
-
|
145
|
+
---
|
36
|
-
|
37
|
-
(まぁスクリプト言語はPHPのみ、それとは別にコンパイル言語としてJava・C・Go等を覚えているという人ならば大丈夫でしょうね)
|
38
146
|
|
39
147
|
|
40
148
|
|
@@ -48,21 +156,23 @@
|
|
48
156
|
|
49
157
|
もし一つの言語が飛び抜けて優れているならその言語以外はすっかり廃れているはずでしょう。
|
50
158
|
|
51
|
-
|
159
|
+
実際にはちょっと得意不得意が違う程度の団子状態です。
|
52
160
|
|
161
|
+
そもそもスクリプト言語というのはすぐ動作させて確認出来る、1つの用途に特化している言語です。
|
162
|
+
|
53
|
-
一つの言語
|
163
|
+
それ以外のモノに当てはめて何でもかんでも一つのスクリプト言語で頑張るのは無理があります。
|
54
164
|
|
55
165
|
|
56
166
|
|
57
|
-
また、メジャーな言語には
|
167
|
+
また、メジャーな言語には当然オススメ出来るメリットがありますが、
|
58
168
|
|
59
|
-
マイナー言語にも
|
169
|
+
マイナー言語にも何人ものエンジニアが崇拝するだけの意味がちゃんとあります。
|
60
170
|
|
61
|
-
|
171
|
+
ただ、その分マイナー言語はマイナーである原因、例えば難解で学習コストが高いといったデメリットは存在します。
|
62
172
|
|
63
173
|
|
64
174
|
|
65
|
-
例えばPerlはマイナー言語の代表で、覚えるべき記号やお約束ごとが多すぎる言語で
|
175
|
+
例えばPerlはマイナー言語の代表で、覚えるべき記号やお約束ごとが多すぎる言語です。
|
66
176
|
|
67
177
|
しかし、Perlをマスターした人間はこの大量の記号を駆使して簡素なコードで表現でき、「えっ、PHPで20行のコードがたった5行!?」みたいな実力を発揮することもあります。
|
68
178
|
|