「java」を含む日記 RSS

はてなキーワード: javaとは

2019-04-07

新卒入社したヤフー退職した

在籍期間は約2年。これは組織所属する期間として短いものかもしれない。

たった2年である。されど2年。鬱憤が溜まるには十分すぎる時間であった。

嘘つき

新卒採用ページの初年度年収は嘘である個人的に一番不満のあった点なので最初に触れておきたい。

ヤフー新卒採用ページを見ると以下のように書かれている(修士場合)。

約468万円(基準給与242,000円/月+25時間相当分の固定時間外手当47,266円/月+賞与等)

(2019/08/01 時点で修正されていました)

私の「初年度」という言葉に対する解釈4月〜翌年3月12ヶ月間」が正しいのであれば、この内容は誤っていることになる。

実態から言うと、初年度年収は468万ではなく410万あたりなのだ

重箱の隅をつつくような指摘と捉えられるかもしれないが、私としては見逃し難い点であったので深掘りしていく。

これが誤りだと主張するに足る最も大きな理由として、初年度の社員は年2回ある賞与のうち1度しかもらえない事が挙げられる。

ヤフーでは4月10月賞与月であり、それぞれ基本給の約2.5ヶ月分の賞与評価によって多少変動するが初年度の変動はなし)となる。

ただ、新卒社員4月にもらうことはない(仮に6・12タイプだとしても、通常6月にもらえるのはいわゆる寸志だろう)。

まり

(242,000 + 47,266 ) × 12 + 242,000 × 2.5 × 1 = 4,076,192

約410万円である

いかがなものだろうか。主観ではあるが、60万前後の差額は無視しがたい。少なくとも当時の私にとっては大きな額だ。

ではここで、上文に書かれている「賞与等」の解釈を変え、残業時間考慮している路線を考えてみる。

対象職種エンジニア

条件として、最初の4〜6月は全体研修残業が許されていないため、7月から3月の9ヶ月でできる残業時間対象となる。

また、残業時間が45時間を越えていいのは年6回まで、かつ上限は80時間である

加えて、初年度の1年間での昇給基本的になかったので、1時間あたりの残業代は固定とする。

これを踏まえた上で計算してみる。

「25時間相当分の固定時間外手当47,266円/月」とあるので、残業1900円/時となる。

80時間残業半年間続け、残りの3ヶ月は45時間残業をしたとする。

1900 × ((80 - 25) × 6 + (45 - 25) × 3) = 741,000 円/9ヶ月

これを先程の4,076,192円に加えると、4,817,192円である

なんと、468万を超えた。失敬。

新卒採用ページの初年度年収は嘘である。」と冒頭で言ってしまったが、嘘つきは私のほうだった。


さて、これを読んでどう感じただろう。

こんなことはよくある、で済ませていいとは思わない。

実現可能から誤りではない、というのは誠実さを欠いている。

(「残業80時間を年6回なら別に苦ではない、むしろこの業界なら当たり前では」といった類のコメントは一旦跳ね除けさせてほしい)

それに45時間を1度でも超えれば上長から指摘を受けるし、6回も超える事例が実際にあるのかと言われれば極めて少数派である

給与企業を選ぶ上で重要ポイントの一つだ。

このような書き方がされていれば新卒1年目にもらえる下限年収のように感じても不思議ではない。少なくとも私はそう感じていた。

これはいつだったか転職ドラフト炎上していたときと同じ流れだ。

[転職ドラフト経由でY社の内定貰ったけど](https://anond.hatelabo.jp/20160925170021)

正しい情報ミスリードなく伝えるのが企業としての在り方ではないだろうか。

THE 虚無研修

はい拍手!」「パチパチパチパチ」

社会に解き放たれて最初に見た異様な光景である

最初の2週間はビジネスエンジニアデザイナーの3職種合同で様々な研修を受ける。研修の内容は多岐にわたり、当然ビジネスマナー研修もあった。

研修中初期はPCを開くことを許可されておらず、みんな紙にメモをとっていた。自分メモをとらなかった。

6人で1つの机にまとめられ、座学の合間にやたらと個人ワーク・グループワークを要求される。特にグループワークが苦で苦で仕方がなかった。

グループワークは、都度いくつかのグループが話し合った内容を発表するよう当てられる。

話し終えると「はい拍手!」と司会役を務める人事の方が声をかける。そして拍手

約300人が回答者に向かって一斉に拍手するのだ。時代錯誤も甚だしい。

この研修を通して、付箋とペンに対してアレルギー反応を示すようになった人も多いと思われる。

グループワーク確定アイテムは勘弁願いたい。

人事の方の話し方もさながら小中学校教師を想起させる。

今年度でもその形式が続いているのであれば退職希望者を増やすだけなので早急にやめたほうがいい。

そして、全職種合同の研修を終えた後はエンジニアのみに用意された研修が続く。

内容は外部講師によるLinux研修Java研修・チーム開発と

ヤフーの用意したチーム開発、である

先に言っておくと外部講師による研修は残念すぎた。不要不毛。不服。

まずはじめにWindows PCを貸与され、それで戦うことを強要される。

一方で、ヤフーでの業務に使う貸与PCエンジニアならMacのみである。なんということだろう。

そして外部講師企画のチーム開発は「雑に集めたメンバーハッカソン」というタイトルが正しい(ここでもまだWindowsのまま)。

LinuxJava研修で学んだ内容を活かせる場面は決して多くなく、チーム内の優秀な人がひたすらにリードする形式だった。

チームによってはリードされる側は「なんかすごいのが出来上がっていく(が仕組みはよくわからない)」、リードする側は「この時間意味があるのだろうか」と誰得雰囲気が出来上がる。

その後、チーム開発研修についてもフィードバックする機会があったのだが、

とある同僚は

チームメンバーgitの使い方を教えないといけない場面があった。gitコマンドに初めて触れるような人をエンジニアとして採用するのはどうなんだ

というコメントを残していた。

なかなかに攻めているなと思ったものの、振り返ってみれば全くそのとおりである

gitコマンド触ったことない=初心者、が必ずしも成り立つわけではないがWeb業界エンジニアにはある程度当てはまるのではないだろうか。

そして未経験者を採用するメリットはよくわからない。

ここで、研修から採用についての言及シフトする。

同僚のコメントも受け、採用サイドに苦言を呈するのであればクックパッドの方の言葉をそのままお借りしたい。

クックパッドでは、新卒であってもプログラミング経験者は基本的エンジニアとしては採用しません。

なぜか?というと、学生のうちにプログラミングソフトウェア、あるいはサービスを作る事に興味を持ち、それを仕事にしたいと思っているのに、手を動かさな理由はないんですよね。

[クックパッド 星氏「新卒でも技術力を重視、尖ったエンジニアエキスパート枠として採用」《新卒エンジニア育成カイギ その5》 |](https://blog.codecamp.jp/engineer-training-cookpad-part1)

ここから主観意見が強くなることを先に断っておく。

また、ヤフーが「世界通用する tech company を目指す」と謳っていることも踏まえる。

今でも不思議しかたないのは、私の知る極めて優秀な後輩2名がエンジニアとの面接に行く前に落とされてしまたことだ(当時の面接フローは人事→エンジニア)。

もちろん、最初面接で受け答えがうまくいかなかったのかもしれないが、それならそれで持っている技術の良し悪しをはかる以前に「面接うまい人材」が重視されていることにほかならない。

技術さえあれば、コミュニケーションができなくていいと言っているわけではない。

一方で、面接で落ちたからと言ってコミュニケーションがとれていない、とも思わないが。

ことエンジニア採用に関して言えば、GitHubやホワイトボードコーディングで見られる技術に関する蓄積や瞬発力、

リサーチャー寄り(機械学習エンジニアなど)であれば関連領域論文実績等に比重を置いてもよいと思う。

もちろん、採用する側が手を抜いているわけでないことは重々承知している。

ヤフー含め、多くの企業採用に苦戦していることを鑑みると、採用のものがとても困難なプロセスであることは明らかである

加えて、GitHub等を見たとしても応募者の技術力を正確に測ることは難しい。

ただ「世界通用する tech company を目指す」 のであれば、まず人材技術力ありきではないだろうか。

ヤフーにはヤフー採用戦略があり、一個人が偉そうに言えるものではないので(十分語り尽くしているけれど)このあたりで大人しくする。

研修の虚無さについて書いているつもりが、いつの間にか採用云々についてヒートアップしてしまった。

無理やりまとめるならば、研修採用において間違った方向に舵が切られていると感じた次第である

悪名高きバリュ評価

人事評価永遠課題である

誰もが納得する適切な評価なんてもの不可能

ただ多くの人が納得のいかない評価制度直ちに改善されるべきであり、決して惰性で運用されてはならない。

ここではこの4月廃止されることになったバリュ評価に触れる

採用ページからバリュ評価に対する言及が消えていることは確認済み)。

廃止されたからこそ、この場を借りて言いたい放題言わせてほしい。

ざっくり言えば、ヤフーもつ5つのバリューに沿って360評価である

Japanese Traditional Big Company の実施する年功序列よりは億倍まともだし、360評価といえば聞こえはいいが、

このバリュ評価がきちんと機能していたかと言われれば疑問符が浮かぶ

まずはじめに、個人的にはバリューの内容自体が謎であった。

バリューはリンク先のピラミッド最下段にある5つの項目だ。

[Yahoo! JAPANミッションビジョンバリュー - ヤフー株式会社](https://about.yahoo.co.jp/info/mission/)

謎だ。

それぞれ自分なりの解釈を交えると以下のようになる。



やはりわからない。

重複しているようにも感じるし、「やりぬく」あたりはもう一つのパフォーマンス評価説明割愛)が担っているようにも感じる。

各々によって解釈も異なるはずである(もし社員認識が合っていたのであれば今すぐに全力で謝罪する)。

ゆえにこれに即した評価結果も際どいものであった。

評価された側も結局よくわからないのだ。

加えて、昇給額の上限がある程度決まっており、いくら成果を出そうと結局のところ全社的にはそこまで大きな差がつかないようになっていた。

本当にとびきり優秀でなければ従来の枠組みを越えることはない。

余談だが、給与を上げる方法はやはり転職である

先輩社員も口をそろえて言っていた。

給料を大きく上げるなら転職したほうが早い、そして数年経ったら戻ってこればいい、と(実際、自分場合は550万 → 700万の転職となった)。

これはおそらくヤフーに限った話ではなく、転職による給与ハックがWeb界隈全体に蔓延っていることに起因するので仕方ないともいえる。

閑話休題

いろいろな経緯のもと、この4月より廃止となったバリュ評価

今ではパフォーマンス評価のみになったが、やはり評価に対する不満の声はいくらでも聞こえてくる。いくらかマシになったのかもしれないがやはり難しい。

人事評価永遠課題なのである

部署ガチャ外せば待つの地獄


幸い、自分はこれに該当せず外野からコメントになる。

世はAI時代。院卒の新入社員は、多くがデータサイエンス部署なるものを志望していた。

学部卒でも志望している人は少数ながらいた。

しかし蓋を開けてみると、ほとんどはデータサイエンスに全く関係ない部署に配属となった。

データサイエンス部署に限って言えば、一番必要なのは東大もしくは京大を出ているか、そうでなければ運である

学歴である程度決められていたように感じるデータサイエンスに焦点を当てたが、ミスマッチという点でいえば他の領域でも多少は起こっていた。

本人の希望に合わない配属は誰も幸せにならない。

1ファイル数万行のphpファイル運用しているようなレガシー極まったハズレ部署に配属される可能性もある。

そうなれば待っているのは市場価値の大暴落

こればかりは巨大な企業なら日常茶飯事かもしれないが、現実を受け止めるにはどうしても時間がかかる。

人気アトラクションエレベータ

最後に、社外の人から見れば些細なこと、しかし多くの社員が日々思っていることであろう不満で締めてみたい。

何を隠そう、名物エレベータ行列である

毎朝絶えること無く形成される長蛇の列、まさに地獄絵図。阿鼻叫喚とも言える。

悲惨な状況を表す言葉ならいずれも当てはまるだろう。

ヤフーでの出勤の定義は「執務エリアに入り社内Wi-Fi下で打刻アプリを起動しボタンを押下」である

これを10:00までに行わないといけないのだが、入り口エレベータまわりでは9:40あたりから徐々に変化が現れる。

気づけば、建物に入ってから執務エリアに着くまで10分以上要することになる。

まり、この行列の待ち時間計算に入れて通勤しないといけないのだ。

スマホでも眺めながら行列が少しずつ進むのを待つ。

これを毎日経験するのは気が滅入る。ただでさえ電車通勤疲弊しているというのに。

もっと余裕をもって出勤すればいいのでは、という声もあるだろう。ごもっとである

しかし、時間をずらせばずらすほど電車密度は増加してしまう。

これもできるのであれば避けたいし、個人的にはエレベータ行列の方が鉄の箱にすし詰めされるよりマシであった。

あくま相対的な話ではあるが。

では、徒歩圏内に住むというのはどうだろう。

これも金銭面で相当にきつかった。

仮に自転車圏内だとしても、私の求めた最低限の生活風呂トイレに行きたいときにいける)を送るには80,000円を軽く超える。

家賃手取り月給の1/3程度が目安とよく言われているが、就職を期に上京してきた自分金銭感覚からすると家賃に80,000円を払う決断最後までできなかった。

そして近くに住んでいたとしても、電車通勤から解放されるされるだけで、早く出ないのであれば結局エレベータ行列に悩まされることになる。

少し主観意見(というか言い訳)が長くなってしまった。

ということで、この惨憺たる状況に対する企業側の動きにも触れておきたい。

結論から言うと、行列に対する直接的なアプローチは何一つ無かった。

社内チャットツール(≠slack)のどこかで議論されていたりもしたが「待ち時間に何か楽しめるものがあればいい」というのもあり、根本解決できそうにない。

うまくたとえられているかからないが、「料理が不味い」ときに「美味しく感じられるよう空腹にする」というものが近い。

唯一の救いは、月5回まで利用できるリモートワーク制度である

が、ヤフーリモートフレンドリーであってリモートファーストではないし、みんながみんなリモートワークに慣れ親しんでいるわけでもない。

加えて、エンジニアデザイナー職だろうとマネジメント業務を担い始めた途端にリモートワークは難しくなる。銀の弾丸ではないのだ。

話が発散しているが、エレベータ行列悲惨であった、言いたいことはただそれだけである

もちろん悪いところばかりではない

当然である。がポジティブな面は調べてもらえればいくらでも出てくるので割愛する。

様々な制度メディアで幾度となく取り上げられているし、給与についてもvorkersや有価証券報告書をみればだいたいわかる。

株価はさておき、業績だって順調。

優秀な社員もたくさんいるし、サービスの規模的にもやりがいを感じられる場面は多いはずだ。

そして、悪いところをずっと放置し続けるような企業でもない(と信じている)。

まとめ

結局、自身備忘録になってしまった。

まとめるにも思い思いに書きなぐっただけなので特にメッセージもない。

とある社員が不満を述べながら辞めていった、そのくらいで受け取ってもらえれば幸いである。

2019-04-06

anond:20190404210019

でも、著名なプログラマーでも、最初言語としてはJavaは向いてないと言う人おおいよ。

anond:20190404201516

その文章を見ると、Eric Raymond氏も最初に学ぶ言語としてはPythonが良くてJavaは薦められないとの意見ですね。で結局はCも学ぶ必要があると。

anond:20190405084225

Python拡張性がありすぎるからなあ。

外部ライブラリが果てしなくあり、


 ← それはPythonに限ったことじゃないでしょ。JavaでもRubyでもPerlでもCでも同様。主要言語はほぼそうでしょ。

似たような機能を実現する方法複数ある


 それはむしろ逆。Pythonスローガンは There's Only One Way To Do It で、これは Perlスローガン There's more than one way to do it. を意識したもの

https://wiki.python.org/moin/TOOWTDI



なお、個人的には C# は良さそうだなとは思うけど、Windows以外のプラットホームではどうなんでしょう。(よく知らない。) これは Visual Basic についても同様。

2019-04-05

anond:20190405130510

新しいことなんてないところに行けばいい。

今でもVB6やらピュアPHPやらJavaやらで作られたシステム保守したり

そんな化石のようなやり方で新規システムを作ってるところなんていっぱいある

anond:20190405101058

あなたもそうですがGOTOを知っていた上で微妙だと思っているわけです。

 ← いやいやw それは40年くらい前にBASIC言語プログラミングしてた頃の話w

その後、月刊ASCIIとかの雑誌構造プログラミングの事を知って、Pascalだのヴィルトだのダイクストラだのの名前を聞きかじって、大学Pascalを学んで、「やっとGOTO文無しでプログラミングできるぜ!」と喜んでたよ。

いざ「GOTOなんて知らない」という人たちが主流になったらビックリするのでは?

 もう既にそうなって来ているのでは? JavaですらGOTO文は無いし、最近言語も無いのが多い。

[]2019年4月4日木曜日増田

時間記事文字数文字数平均文字数中央値
007912205154.556
015010376207.545.5
023613542376.254.5
03136333487.249
0475028718.3956
05125202433.549.5
06133823294.1118
07265014192.839.5
0857224239.324
0981585572.352
101431336193.443
111421387397.752.5
1212113181108.945
131371142683.449
1481466157.540
1596861589.737
16125824365.925
1711516140140.340
1895838488.334
1910412440119.638
209311053118.848
2114922400150.331
2210012331123.342
238613074152.035
1日1961238802121.841

本日の急増単語 ()内の数字単語が含まれ記事

マルティナ(8), 男系(7), DQ5(8), Pascal(5), デボラ(8), 高橋洋一(4), 天空(8), ぱふぱふ(4), フローラ(12), 上皇(5), 母子手帳(4), 令和(29), リメイク(11), ゴーン(21), 勇者(13), Java(14), たつき(7), 令(9), ドラクエ(10), 何かと(8), けもフレ(11), Python(9), 孫(9), 出版社(10), 初代(7), 初心者(12), 声優(16), 元号(14), プログラミング(16), 言語(19), 借金(9), 肩(9), 息子(12), 監督(9), PM(12), AM(11)

頻出トラックバック先(簡易)

■こうすればプログラミング覚えられるよ【随時追記】 /20190404034812(16), ■ノリで豚バラブロックを買った /20190403210718(15), ■富士通退職した理由 /20190326233147(15), ■絶望している /20190403235507(10), ■俺は社会的JAXANASAけないぜ。 /20190404095147(8), ■俳優を使わず声優を使えとかいうの /20190404145540(7), ■IT業界不思議プログラマ /20190404003732(7), ■言ってくれないと分からない、なんで言わないと分からないの?問題 /20190404213809(7), ■過去元号に対するイチャモンまとめ /20190403184726(6), ■道端で人が倒れてたり苦しんでても無視するみたいな風潮 /20190404152553(6), ■ /20190404161254(6), ■いきなり味変する人が理解できない /20190403164100(6), (タイトル不明) /20190404100235(5), ■けもフレ2の監督イジメ /20190404044016(5), ■ /20190404133738(5), ■「令和」は「beautiful harmony」 /20190404083337(5), ■三つ子死亡家庭の夫が、夜勤だったと聞いて /20190404152110(5), ■日本政府提灯記事作成が壊滅的に下手 /20190404173109(5), ■anond20190404103434 /20190404103837(4), ■みんな政治の話って何処で誰と話してるの? /20190404154915(4), ■ゴーン容疑者の再逮捕 /20190404170231(4), ■納税の義務を課せられた奴隷 /20190404183344(4), ■anond20190404131849 /20190404133151(4), ■anond20190404164119 /20190404164704(4), ■anond20190404034812 /20190404131646(4), ■水割りをください 涙の数だけ /20190404183312(4), ■ /20190404110821(4), ■「限界女」とは私のことだ! /20190404135026(4), ■母親ポンコツという愚痴 /20190404030136(4), ■令和の令は命令意味じゃない /20190404191424(4), ■ゲームメーカーさんに切実なお願い /20190404133652(4), ■ジュニアに熱中してる女 /20190403214729(4), ■首都高の地下から東京駅地下街に出れる階段 /20190403232026(4), ■今後増えるだろう漫画家フリーライダー問題 /20190404091759(4), ■スーパーのカゴ・袋詰め問題 /20190402213330(4)

増田合計ブックマーク数 ()内の数字は1日の増減

6145545(3276)

2019-04-04

anond:20190404174248

プログラミングプロになるつもりなら、Pascal → C → PythonJava あたりでどう?

俺は今でも Pascalシンプルさと一貫性と融通のきかなさ(良い意味で)は初心者にうってつけだと思う。すぐ学べるし。

C と Python は知らないでは済ませられないだろうから必須

で、結局は Java もやることになるだろうし。

何が言いたいかと言うと、まずは構造プログラミングを学び、それだけでは収拾がつかなくなる場合があることを実感してからオブジェクト指向へ進むのが自然で納得できるだろうということ。

そして、最初オブジェクト指向の要素が無い言語を学べば、オブジェクト指向の要素を使いたくても使えないので、その方が却ってスッキリしてわかりやすいだろうという事。

現に今でもPascalAda最初プログラミングの授業をする大学もあるそうだし。

anond:20190404205605

そこまで行かなくても、とにかく何かできてしまうというのは却って混乱しやすくはないか

シンプルで縛りの多い言語の方が間違えたくても間違えられないみたいな面があるので、初心者が混乱する可能性が低くて良いように思う。

まあ、バリバリプログラマーになるつもりなら最初からJavaもいいと思うけど、何も手をつけた経験がないうちから自分の適性や将来の進路の方向まで見通すのは難しいだろうし。

anond:20190404205605

根拠はないけどJava叩いておけばわかってる感出るから

anond:20190404133151

Javaの何が複雑?単純だと思うけどな。流行ってることをやろうとすると複雑になるが元増田が想定しそうな人ならそこまで行かない。

anond:20190404131646

プロになるなら、Javaライセンスコストの兼ね合いも出てきたなあ。

anond:20190404131646

これホント同意、「オブジェクト指向」に入門したいと思うまではJavaC#コードを見せちゃならんと思う

anond:20190404133151

よくよく考えてみると自分最初にやった言語が思い出せない・・・

Javaは複雑だから学者がいきなりやっても意味不明挫折するかもしれないけど

あれぐらいお堅い方がお行儀の良いプログラマーになるのかも。

PHPは舐めた評価なっちゃうけど他の言語が出来てれば何となくで出来ちゃうんじゃね?(みんながそんな感じでやってるからそこら中に地雷の埋まった危険システムが出来上がっちゃうんだけど・・・

anond:20190404131849

結局はJavaPHPを使うにしても、最初に取り組む言語としては、どうなんでしょ。

Javaは複雑すぎない?

PHPはいいかげんというか融通無碍すぎない?

anond:20190404131646

Javamainメソッドすら何かのクラス内に書かなくてはならないかオブジェクト指向的にしか書けないと表現したよ。

anond:20190404034812

目的プログラミングで食っていくことで

仕事の中身が良いものか悪いものかを問わないんであれば

どれだけディスられてようとJavaとかPHPが悪い選択肢だとは思わないけどな

anond:20190404034812

Javaはやめとけ、ってのは同意。だけど、Java手続き型言語だぞ、と訂正は付け加えておくとく。

オブジェクト指向手続き型はセットでサポートしとる言語ほとんどじゃ。

こうすればプログラミング覚えられるよ【随時追記

プログラマじゃないけどプログラミング完全に理解した()おばさんが理解してる基礎知識書くよ。

追記 この文章プログラミング勉強をしたいけどその周辺にある基礎知識になかなか触れる機会がない人向けに書きました。これらの基礎知識があると、困ったときに調べ方すら分からないという状況は回避やすくなるはず)

まずLinuxUnix系OSの使い方。

ターミナル、いわゆる黒い窓からCUIコマンドユーザーインターフェース)でコンピュータを使う方法を覚えよう。これは大学コンピュータリテラシーで習った。MacOSXで復習すると捗った。(追記 すごく間が抜けてたけどMacOSXUnix系OSです)

まずはファイル操作Macターミナルを使って、cd Desktopって打ってからecho ohayou > aisatsu.txtって打ってみて、cat aisatsu.txtってやる。そうすると何が表示されるのか?とりあえずやってみよう。ここで>は増田の都合上大文字全角にしてるけど、ちゃんと半角にしてね。なんで増田の都合上半角がダメなのか、そのうち想像できるようになろう。(追記 ブコメ指摘感謝

そして、実際にデスクトップを見に行ってみると、aisatsu.txtってファイルがあるはずなんで、開いてみよう。これで何が起こったのか7割くらいはわかるはず。

こういうファイル操作の基本をまず覚えよう。これこそ空気みたいなものから

追記 ここも間が抜けてたけど確かにhogeって何かわからいね。直しました)

次に文字コードバックスラッシュの話。

最近は何も考えなければ文字コードはとりあえずUTF-8でなんとでもなるようになってるけど、バックスラッシュとかは環境設定で出てくるように設定しないと出てこないし、その意味合い、つまりエスケープとしての使い方を頭に入れておくと後々困らないと思う。あとEOF(エンドオブファイル)とか改行コードとかもそういうものがあるよ程度には覚えておこう。これ頭の片隅にはいってないと分からん殺し的な罠にはまることがある。

次にプログラミング環境の構築の仕方。

これは使いたいプログラミング言語公式サイトに行くと大抵書いてある。

でもMacだとだいぶ楽。とりあえずターミナルからgccって打ってみるとなんかCUIツールとか書いてあるものインストールしろって言われるのでインストールする。これだけでCとかC++とかRubyとかPythonとか一通り使えるようになる。もしかしたら最近はこのインストールすらいらないかもしれないけど。

あと、シェルコマンドとかプログラミング言語を実際に使うときはいろんなライブラリインストールする必要があるけど、そのライブラリ管理がすごく面倒なので管理をまとめてくれるコマンドがあったりする。aptとかhomebrewとかがそういうのだから、そんなものの使い方も覚えておこう。

追記 言語文法を追うだけなら環境構築なんてしなくてCloud9とか使ってもいいかもだけど、プロダクトを作ろうとした時にはまだまだ手元で環境作って必要ライブラリを入れてとやった方が後々応用がきくと思うのですよ。それにそうしていくとDockerの有り難みなんかも理解できるようになっていくのではと思います

最初勉強するプログラミング言語は、Javaだけはやめておけ。

なんでかっていうと、Javaオブジェクト指向言語ってやつなんだけどオブジェクト指向的にしか書けないから。古い人間だと言われそうだけど、最初手続き型言語から始めるべきだと思ってる。少なくとも、手続き型的に書ける言語から始めるべき。

なぜそう思うのかも含めて、とりあえずおばさんが理解しているプログラミング言語の発展の経緯を軽く解説する。

最初の頃のプログラミング言語は、手続き型と呼ばれるものが多かった。

この〇〇型ってのはプログラミングをするときの考え方によって名前がついているんだけど、手続き型はまず0を作って、0に1を100回足して、最後にその結果を表示してください、みたいな、上から書いた順番通りに動くのが基本のルールである考え方。プログラムは基本的にはこうやってデータアルゴリズムを使って変化させていって望む結果を得ている。でもこのやり方は問題も多かった。プログラム全体がひとかたまりになってしまっているので、数千行とかになるともう普通の人では手がつけられないし、人間ミスデータを間違って扱ってしまうことがバグの温床になった。

なので、この手続き型の考えに構造化という考えが加わって、関数というものが生まれた。関数っていうのは料理レシピに例えるとわかりやすいかも。

関数が無い状態だと、

1:玉ねぎをくし状に切ります

2:キャベツをざく切りにします。

3:豚こまに塩胡椒で味付けをします。

4:フライパンを火にかけ、油を入れて熱します。

5:豚こまを入れて色が変わるまで炒めます

6:玉ねぎを入れます

7:キャベツを入れます

8:野菜がしんなりするまで炒めます

9:火を消して8をお皿に盛り、野菜炒めの出来上がりです。

と書いていたものが、関数がある状態だと、

A:野菜を切ります

Aのやり方1:玉ねぎをくし状に切ります

Aのやり方2:キャベツをざく切りにします。

B:肉に味付けをします。

Bのやり方1:豚こまに塩胡椒を振ります

1:フライパンを火にかけ、油を入れて熱します。

2:Bを入れて色が変わるまで炒めます

3:Aを入れてしんなりするまで炒めます

4:火を消して3をお皿に盛り、野菜炒めの出来上がりです。

って書ける。ここではAとBが関数

この程度だとあまり意味を感じないかもしれないけど、これがもっと複雑なもの想像してみると、なんとなくありがたみが分かって来ないだろうか?こうすると、多人数でプログラミングをするときに、Aを書く人、Bを書く人、1〜4にまとめる人って感じで作業分担ができる。それに、バグが起きた時もAの領域バグったのか、Bの領域バグったのかとか、全体にまとめると上手くいかないのかとか、原因の切り分けがやすい。

でも、プログラムがとっても複雑化すると、これでも手に負えなくなる。料理の例えを拡大すると、料理店を運営することを考えるといいかも。

料理店でたくさんの料理をさばくときに、レシピを完全に1から作ることってないと思う。Aさんが野菜の仕込み担当、Bさんがスープの仕込み担当、というように各人に仕事が割り振られているはず。AさんもBさんもそれぞれの仕込みのレシピを持っていて、最終的に出てくる仕込みがちゃんとしてればAさんBさんの仕事の詳細までいちいちシェフが細かくチェックしない体制になっていると思う。大雑把にいうとそういう考え方をプログラムで再現したのがオブジェクト指向言語

なので、本気で料理初心者がいきなり厨房の仕切りを任されて上手くいくのは難しいように、構造プログラミングのありがたみすらわからない段階でオブジェクト指向プログラミングに手をつけても意味わからんだろうと思うのがおばさんの立場です。

追記 おばさんはRubyを勧めておきますオブジェクト指向言語ですが、手続き型的に書き下すことも出来るからです。一つの言語手続き構造オブジェクト指向、全部勉強できますメソッドも便利なのが一通りあるし、日本語を扱うのにも問題が少ないです)

次に問題を分解できるようになろう。

例えば、クイズゲームを作りたいと考えたときクイズゲームを作りたいです、って問題は大きすぎる。

クイズゲーム必要な要素は、問題文を表示する、回答を入力してもらう、正誤判定をする、正誤判定の結果を表示する、ということだなぐらいにまず分解する。

これを実際にプログラミングしようとすると、もっと分解できてさら問題が見えてくると思う。

コンピュータってのは創造的なことはできない代わりに、とても簡単なことをとても階層的に重ね合わせて大きな問題を解けるように作られてる。それを心するといいと思う。

からないことは調べられるようになろう。最後はこれ。

これ超大事プログラミングって本当に自分で1からものを考えなきゃいけないことってあまりない。大きな問題あなただけの問題かもしれないけれど、それを構成する小さな問題は大抵他の誰かが解いている問題なので、調べてみれば答えが見つかると思う。

エラーメッセージが出てきたらまずググってみる。翻訳しても初心者には意味がわからないし、ググったら誰かが解説付きで紹介してくれているのでその解説を読んだりしながらエラーメッセージとの付き合い方を覚えていけばいい。

メソッドの使い方がわからなかったら言語公式サイトに行ってみる。メソッドの使い方で大事なのは呼び出し方、返ってくる値の型とかそういうのだから、こういうところはググるよりも公式サイトに書いてあることをしっかり読んで理解する。

あと、アルゴリズム勉強もしてみるといいと思う。アルゴリズムデータ構造計算量の勉強大学学部レベル教科書ちゃんと読んでみると、例えばデータベースを操作するSQLというものを書くことになった時とかに効いてくる。あとは作ったプログラムが遅すぎてどうしようとかいうのを解決する時とか。

なんか深夜までいろいろ書いてしまったけど、あくまでもプログラマじゃないおばさんが書いたものなので、みんなでツッコミとか入れてくれると大変助かります

増田怖いよツッコミ怖いよ、もちろんおまんじゅうも怖い。

2019-03-29

anond:20190329022106

あのJavaのことを言っているのか、地理学的に適当言葉の使い方をガチで指摘しているのか

anond:20190328133339

Java ってのはねぇ、地名じゃなくてね、、、、、

anond:20190329004259

アセンブラは駄目ですか?

一般的には入門は上記あたりだと思いますが、どれが最強ですか?

2019-03-27

俺のボーダーライン

ネット見ていて(今日だとコインハイブ裁判とか、転職サイトとか)、いろいろな JavaScript表記自分なりの許せる/許せない。

JavaScript : みんなこう書く。俺もこう書く。

JaaScript : おそらく新聞社とかの表記ルールに従って、仕方なくこうしていそうなので許せる。

Javascript : 読みにくいけど、頭文字だけ大文字っていうルールだと思えば、気持ちはわかる。

Java Script : 同上

× ジャバスクリプト : おっさんなのでカタカナは苦手なんですよ。

× JavaJavaのことかと思って読み進めていたら JavaScript だったりするので、読んでいて疲れる。



我ながら かなり寛大だと思う。

ログイン ユーザー登録
ようこそ ゲスト さん