はてなキーワード: objective-cとは
Objective-C やるよりぜんぜんマシなんだよなあ
最近QiitaとかでiOSアプリ開発の記事を見ると、大体コードはSwiftだ。
Objective-Cはレガシーだぜ〜
書いてもObjctive-Cじゃないと出来ないようなことだけだぜ〜
この期に及んでObjective-Cを書く奴はクソジジイだぜ〜
という雰囲気をビンビンに感じてる。
今年のSwiftアドベントカレンダーはもういっぱいで、よく見るアイコンのおじさんたちで埋め尽くされている。
意識の高い系企業の開発者ブログではもはやObjective-Cのコードを見ることは無いと言っていいだろう。
そんな雰囲気に釣られてか、よーしおじさんもSwiftで書いちゃうぜヘイヘイヘイと言ってお休みの日は色々と楽しんでいるのである。
でも実際仕事ではほとんど書いてないし、正直今はまだ書きたくない。
XcodeもAppCodeもだけどIDEの対応が微妙だし、言語仕様もコロコロ変わるからだ。
「まあ遊びなら良いよね〜実務ではあと数年は無理だわ〜」なーんて去年から同じ事を言っているんである。
でもまーまだ出て1年半くらいしか経ってないか〜。
でもでもSwift2がリリースされ、そろそろヒップスター感が抜けて案件としてもSwiftで行ったほうが良・い・の・か・な???なんて雰囲気も出てる昨今、皆さんいかがお過ごしなんだろうか。
Tehu君が中学の頃から積み重ねてきたセルフブランディング()が崩壊しつつあるんで、まとめておこうと思う。
彼が『天才』『秀才』『次代のリーダー』から『意識高い系(笑)』へ落ちていく様を振り返りながら、一体どこで間違ってしまったのか検証していくことにする。
彼はここでMacと運命的な出会いをする。当時はまだ、iPhoneが発売されたばかりで、彼は好奇心からXcodeを使い健康計算機というBMI値
を測定するアプリを開発する。機能的にはかなりシンプルでプログラム的にも初心者レベルのものではあるが、中学生がObjective-Cで開発を行い、
英語でアプリの登録申請を行いAppStoreに自分で作ったアプリを載せて、一時的にではあるが、日本語のアプリランキングで3位になったのだ。
これは本当にがんばったと思う。これから彼のセルフブランディングがスタートしていく。
周囲の大人達が彼を天才扱いし、いろんな大人達が彼に接触し始める。
TV、雑誌、新聞はもちろん インターネット系のメディアなどに顔を出してはメディアへの露出を高めていき、
彼はどんどん階段を駆け上がっていく。
そうしてセルフブランディングに成功した彼は周りの同級生が必死に受験勉強をするのとは反対に、AO入試というとても楽な方法で
大学の進路を決定してしまう。AO入試と言っても慶応義塾大学。
世間的には高学歴な部類に入るわけだから、これでセルフブランディング大成功!という考え方もできなくはない。
しかし、ここに至る過程の中で色々とやらかしてしまい、その隠していた傷が現在2chを中心としたネット民によって抉られることになる。
彼は様々な媒体でマルチなクリエーターとして自分自身を演出してきた。しかし、その実態はさほど言うほどの物ではない。
彼の主だった実績は以下のような具合である。
唯一の実績ともいえる健康計算機は日本語のアプリが少ない時に、中学生がアプリを作って申請したという点はまぁまぁ評価できるが、高校生・大学生となった今では黒歴史にしてもいいようなレベルの代物。現在、アプリは未公開。その後、プログラミングに関しては猛勉強することなくアプリ開発からも手を引いてしまう。
なし。
強いてあげるとすれば、問題になった小4なりすましサイト。彼がデザイン、コーディング、デプロイまで全て行ったかどうかは不明。
Tehu君自身がプロデューサーとしての実績として誇っているものに「なだいろクローバーZ」というものがある。
これは簡単に言えば、ももクロの衣装を着て、ももクロの曲を流して踊るだけのもの。
もちろん、Tehu君が女装をしたり踊ったりしたわけではなく、舞台に上がる主役は別の5人。
ネットではその5人の中のピンク担当の男子生徒のクオリティが高かったため、少し話題になった。
しかし、各所で指摘されているがこれはただの文化祭の出し物であり、灘高の女装企画はTehu君よりも前の時代からあった。
それに、なだクロの発案者はTehu君ではなく、彼はその企画に乗っかっただけ。文化祭なのでみんなで考えて、みんなでふざけただけの取るに足らない物なのだ。
にも関わらず、どういう訳か彼はそんな『なだクロ』を大きな成功体験として位置付けている。アイドル好きだった事もありアイドルのプロデューサー路線に道を見出し、華やかそうなイベントに顔を出し、演出家、クリエイティブディレクター、裏方などの肩書を名乗っては何かをやっているようだ。しかし、具体的に、彼が何をやっているのかは一切不明。
もはやTehu君の代名詞と言える人脈自慢。政治家、官僚、有名企業社長、経営者、外資系企業の役員、社員、女子アナ、アイドル、読者モデル、女子大生、女子高生、テレビ関係者、マスコミ関係者など幅広いジャンルの方々と知り合いだとTwitterで吹聴してきたTehu君。
知り合いの知り合いすなわち他人まで自慢していくTehu君のスタイルは人脈温泉と揶揄されるようになり、最近では「テフレ」「テフレ認定」なる言葉まで誕生してしまった。
語:テフレ 意味:Tehu君に知り合いまたは友達として認定されてた人。またはTehu君からなんらかの高い評価をもらった人。
しかし、人脈自慢もネット上などでバカにされているという事に気付いたようで、最近ではかなり控えめになり、温泉は一時期よりは冷たくなってしまった。
- 数年会わないうちに知り合いが某省の事務次官になってたことが判明、、、これで事務次官は3人目か、、、。偉いさん経験者の知り合いが増えることはいいことだ。
- 知人の知人が水樹奈々であると最近知ったので、ちょっと水樹奈々について調べてみる。CD聞いてみようかな。
- ミスiDのセミファイナリストに知り合い4人も居て笑うことしかできない
- 帰宅った!某有名企業からメールきてる。「この件については、内密に」だって
- 昨日慶應女子高で僕が身長150cm台の女子学生に袖を引っ張られながら連行される姿を複数のフォロワーが目撃していたようですが、我ながら恥ずかしい姿だったと自覚してます
- ※ただし、目撃ツイートなし
- 僕のこれまでのクラスメートに自分の基準を満たす美人はいらっしゃいませんでした。大人の知り合いになら基準を満たしてる人いらっしゃいますが。
- クールジャパン推進会議で必死にがんばってる方々には申し訳ない(知り合いもいる)けど、もはや国主導ではどうしようもないって。
彼は大物である。
- 大学生大学生しててチャラい感じの男大っ嫌いだわもう。話しかけんなクソが。
- 同世代の男たちの精神年齢の低さに辟易としています。
- ファッション感覚で起業しているのが丸見えな人たちが、慶応受かった直後からアプローチの嵐だぜ。結局先輩後輩関係で俺の人脈と経験使いたいだけだろ。。。
- 言い方悪いけど、やる気のない人とわざわざ話したり付き合ったりしていられるほど人生時間残ってないからなぁ。よろしくねとか今度遊ぼうとか言われてもな?
- まあわかっていたことではあるが、僕がもともと行くつもりだった東大に比べれば平均レベルは圧倒的に低い。それでも僕があえて慶応を選んだ理由は、 数%のぶっとんだ人間が、東大とは比べ物にならないからだ。だから俺は、その「数%の人間」としかちゃんとお付き合いはしませんので。
- 友達がFacebookにチャラそうな集団写真を上げてるのを見るだけで嫌悪感で画面閉じる程度にはそういうの嫌い。
こんなの嫌われます。好きになれっていう方が無理です。しかし、これらのツイートは自身や周りの大人達が「天才」とラベルを貼ってしまい、実像の彼をより大きな存在にしてしまった結果なのかもしれない。
そして、自分自身を「羨望の眼差しで見られる有名人」という設定にしてしまった彼は自分より下だと判断した人間をとことん見下すようなツイートをしてしまう。
おまけに、東大にはあえて行かなかったという書き方をしていますが、Tehu君は東大受験すらしていないという現実を無視しています。
それでも、ビッグマウスである事を貫いた彼は堀江貴文、茂木健一郎、乙武洋匡などの名のある人と接触、対談できるまでに彼のブランディングは成功していく。
しかし、最近は流石に本人もマズイと思ったのか一部問題のツイートを消すなどするが、2chやツイッターなどを中心としたネット民に魚拓やスクリーンショットを撮られるなどして葬りたい黒歴史がガッツリ残ってしまう形となる。
また自身のWikipediaの記事が特筆性の観点から削除が検討され始めたとき、Tehu君並に詳しい別人になりすまして削除申請を食い止めるというタブーを犯してしまう。
彼にとっても、Wikipediaもセルフブランディングの大事なツールなのだ。
しかし、そうした自演行為もすぐにバレてしまい、膨れ上がったWikipediaのページは今ではスリム化され、小4なりすまし事件の主犯という項目が目立つような人物になってしまった。
ネット民やSFC生などから嫌われ始めてしまったTehu君は、Tehu君関連スレッドにて、本人が否定したいような恥ずかしい噂が投稿される。
その噂に関しては、まとめサイトなどに掲載されているので、気になる人は確認すればいい。
しかし、その噂の真偽が大切なのではなく、なぜここまでネット民やSFC生から酷い仕打ちを受けるのか?
それを彼自身見つめなおすべきだろう。
日本テレビで放送されたバラエティ番組「ヒネクレ星雲 第4惑星 モノモース」という番組でTehu君が特集される。
今まで「天才」「秀才」として扱われた彼だがこの番組ではとことんバカにされる事になる。
おそらく、密着取材中もそんな節はあったと推測できるが、空気が読めない彼はそういったサインに気づく事ができなかった。
まさか、自分がテレビでバカにされるなんて夢にも思わなかった彼は、番組放送前のTwitterで以下のように宣伝しまう。
ラテ欄では"セレブ大学生"という謎なカテゴライズをされていますが、僕の生活に少しだけ密着してくれました。暇だったら見てください。
要はテレビ屋達に騙されたのだ。
そして、いざ放送が始まると酷い扱いでTehu君の言葉や行動をとことん弄りまくってバカにした。
放送終了後の彼は相当傷ついたらしく、
とかなり落ち込んでいる様子でプライドの高い彼のダメージは甚大。
数年前までは神童扱いだったが、とうとう一般的にも、イロモノ扱いになってしまった。
「灘=Tehu」と見られてしまう事を嫌った灘高生の複数のTwitterアカウントが彼へのヘイトを口にし始める。
Tehu君的に後輩から尊敬されていると思っていたが、在校生にはなんとなく見抜かれていたようだ。
しかし、これもスルーしておけばいいのにも関わらず、その事についてもTwitterで呟いてしまい、それもネットユーザーに拾われバカにされる。
自ら泥沼に足を突っ込んでいくスタイルだ。
単純な話、Twitterを控えればいいのでは?と思うだろうが、セルフブランディングでは必須のツールであるTwitterを彼が手放すなんて事は不可能なのだ。
こうして彼が中学、高校、大学とコツコツと積み上げてきたセルフブランディングは完全な崩壊へと傾いてく。
彼がやってしまった様々な過剰なセルフブランディングの結果、ネット上で彼に関することを検索するとネガティブな情報ばかり出てきてしまい、
彼が理想として思い描いていたような「カッコイイ自分」とは程遠いイロモノ意識高い系芸人として落ちていく事になってしまった。
彼は自身を必要以上に大きく見せ、時には他を貶めることで、ネット以外にも作る必要のない敵を自ら作りすぎてしまった。
そうして作り出してしまった敵が2chやTwitterなどのネットに流れ様々な情報を流し攻撃し、結果、大怪我をするハメになったのだ。
もし、今、有名になることに憧れてSNSなどで必死でセルフブランディングに励んでいる人はTehu君のような場当たり的でギャンブル的な言動は真似するべきではない。きっと大怪我する。
最悪の場合、家族や周りの友人たちにも迷惑がかかる。残念ながらインターネットとはそういうものなのだ。
ビルド時間死にすぎ。Objective-C++の方が100倍良い
大学四回生の夏、下宿の扉に「出入禁止」とチョークで大書し、親を呼ばれて精神病院に連れて行かれた。
パソコンを買ってもらったのは小学三年生の冬だった。今でも覚えている。1996年12月2日のことだ。Windows95発売で世間は揺れていた。インターネット回線がうちに来たのは翌97年の1月、これはそこそこ早い導入だったと思う。さらに翌々年の99年にはケーブルテレビで常時接続になった。親には先見の明があったが、しかしパソコンには詳しくなかった。PC-8001も確かそうだ。親はこれが次世代の必需品になると確信して買っていたが、買った一方で使い道が分からなくてオブジェとして放置していた。親はPC-8001をパソコンだと言っていたけれど、僕にとってパソコンはおっきなテレビが標準で付属しているものだったし、マウスもなかったので、それがパソコンだとは到底思えなかった。でも親は言った。今度来るのは違うんだ、オフィスも入っているパソコンなんだ。僕は聞いた。一太郎っていうやつは入ってないの?テレビで言ってたよ、と。親は答えた。オフィスってのは一太郎より機能がスゴイんだよ。僕はへぇ、とだけ言った。どちらにせよペイントは入っているだろう。ペイントなら親戚の家で使わせてもらったことがある。パソコンはお絵かきができるのだ。マウスをカチカチして、キーボードをカチャカチャするのだけが楽しみで、納品の日を一週間ひたすら待った。その頃、漢字の宿題提出が滞っていて、そのままでは居残りでさせられることになっていた。僕は久々に奮起した。いつもは踏み倒していた宿題を、全部一気に終わらせた。家に帰るとパソコンが電気屋さんの手で設置されつつあった。今は亡き、ニノミヤで買われたパソコンであった。
97年にインターネットを始めた。一日一時間まで。実のところ電話代の問題ではなく、一時間ほど使うとブルースクリーンが発生するからだった。一日一時間以上動かすと壊れるから。PC-8001をキッチリ買った親なのに、それぐらいの(?)ITリテラシーであった。ただ別にそれを責めるつもりはない。僕はすぐにアングラサイトに入り浸った。人に飢えていたのだ。普通のチャットには人がいない。テレホタイムにならないと、誰一人ログイン氏亡いのだ。でも、アングラサイトなら四六時中書き込みがある。僕は思う存分厨房行為を楽しんだ。煽り騙りなんかは、小学生がやっても大人がやっても大して変わらないものだ。You is a big fool manという文句をリアルタイムで目にした人は、多くても数百人だっただろう。何千、何万のツイッタラーが押し寄せ、ブクマが1000以上付くような今の炎上とはほど遠い暢気さだ。当時の匿名掲示板とはそういうものだった。誰一人本気で投稿しなかったし、しかし誰一人面白くない書き込みをしようとはしなかった。トイレでもネタを考え、思いつけばすぐに投稿し、ワラタが付くのを待ち続ける。あやしい、あめぞう、あやしい、2ch。人の多いところから人の多いところへ。ワラタが多くもらえる場所へ。気づいたらインパクが終わっていた。
その一方で僕は中高一貫の私立校に入学していた。高校受験がないことから、ネット依存はさらに加速した。しかし2000年を境にアングラ掲示板は衰退の一途をたどり、2ch一強時代を迎えていた。1ch.tvをボコったりするなど楽しいネタがないわけではなかったが、匿名掲示板はネタの宝庫と言うより、本気でちゃんと議論することもできる場所になり始めていた。ちゃんと議論しようとしたらすぐさま崩しにかかるのが2ch隆盛以前の匿名掲示板文化であったが、2003年頃を境にはっきりと潮目が変わっていったように思う。まあその辺はどうでもいい。アングラと非アングラの境目は消え始めていた。
その狭間に、僕は生きていた。
自分で掲示板を設置することにした。けれども何をして良いのか分からない。CGIレスキューに救援要請をして本も買った。Perlだ。Perlしかない。しかしPerlがどうして動いているのかは、全く分からなかった。何十行、何百行もの文字の羅列が、どこでどうなって、掲示板になるのか。インタプリタ?コンパイラ?訳が分からない。そもそもCPUがどうやって動いているのかも分からない。僕にとってプログラムとは、セットアップウィザードでCD-ROMをギュンギュン言わせながらインストールするものであって、掲示板というものは、Teacupで借りるものだったからだ。でもどうやらそうじゃないらしい。コンピューターに翻訳するのがコンパイラです。さっそくコンパイラを使ってみましょう……
お手上げだった。
コンパイラがないのだ。コマンドプロンプトにはない。Linuxを入れる?使い方が分からない。Vine Linuxが初心者にお勧めだった頃の話だ。ボケッとしててもGNomeぐらいは動かせる程度には簡単になっていたが、そこからターミナルを開いてgccでコンパイルするなんて想像も付かないことだった。Hello, Worldはなんとか表示できても、それをGUIで動かす方法が分からない。僕はデスクトップに「Hello, World」のポップアップウインドウを表示させたかったのに。全然訳が分からなかった。
プログラムが動いている方法を知らなければならない。プログラミングを学ばなければいけない。しかし全体像を把握するにはあまりにもほど遠い……。絶望感が支配し始めていた。Hello, Worldはできたけれど、その先が全くわからない。どの参考書を読んでも分からない。ググってもググっても分からない。ポインタで躓く初心者が多いです!……どの本にも書いてあったけれど、僕はポインタどころか、変数の種類がたくさんあるところでお手上げだった。int?char?long???意味不明の文字列が並び続ける。メモリ?メモリって、挿したらいいんじゃないの?確保?fopen????どんなプログラミング言語も、何一つ分からなかった。その頃インターネットは加速し始めていた。切るのが当たり前だったJavascriptが復権し、Ajaxと名を変えてやってきた。掲示板スクリプトもどんどん高機能化し、もはやPerlを知るだけでは何一つできないようになってしまった。苦痛の日々が始まった。どの言語も、全く分からなかった。分からなければならないという焦りが募っていった。
あるとき、一年間ほど、とりあえずお手上げのままにしておくことにした。大学受験が迫ってきたからだった。そして案外あっけなくそれは終わった。僕は某大学の情報科学科に入った。
教授がガイダンスで説明したとおり、情報科学科のプログラミング演習はそれほど多いものではなかった。一回生の時なんか、キーボードを目で追って人差し指で打っている人もいるぐらいだった。学校の授業はアテにならない。そして大学受験でいったん引っ込んだ、とにかく十代でなにかしないと、という焦りが復活してきた。
大学のキャンパスは広すぎた。何をして良いのか全く分からなかった。授業内容はひどくつまらなく、何が役に立つのかも分からず、ただただ苦痛で、キャンパスでサークル活動に打ち込んで楽しく過ごせるほど社交的ではなく、かといってオタク集団に混じる勇気も無く、とにかく、とにかくここで四年間、四年間で何かしないと、何かしないと就職に間に合わない、大学院進学に間に合わない、十代のうちに何か大きな事を成し遂げなければならない。日々研鑽に励み、日々プログラミングスキルを磨き、日々勉強会に参加し、日々コードを書き、日々環境設定をし、日々本を読み、そして日々コードを美しく書かなければならない、そういう焦りだけがどんどん加速していった。大学の生協で片っ端からプログラミングの本を買った。ド初心者向けのPerl本から、美しいコードは何か、みたいな本まで。でも、どれ一つ、僕のスキル向上には役に立たなかった。プログラミングスキルの向上=自分自身の地位=生活の保障、と思っていた自分には、悪夢のような現実だった。
とにかくインターネットと一緒に歩んできた僕にとって、ITスキルはすなわち力であり、むしろITスキル以外は何の価値も持たないもの、と思えるほど脅迫的な観念にとらわれていた。入ってくる情報はさらに増えていった。Cができるのは当たり前、Ruby on Railsがアツい、Java、PHPはもちろんできるよね、MySQLは当然使えるよね、もちろんHaskell、Scheme、Objective-Cもやらなきゃね……何一つできないのに、習得すべき言語だけがどんどん増えていく。加えて美しいコードを書け!という文句が飛んでくる。クソッタレが。何が美しいコードじゃ。goto使ってもいいだろ。好きなだけ使わせろクソッタレが。全部getsで書いてやる。クソが。アルゴリズムアルゴリズム勉強会勉強会ビューティフルコードMacMacMacジョブズジョブズジョブズ……???????????????
それでもなんとか、そう、なんとかなった。友達が優秀だったのだ。僕には到底できないような、きれいに整理されたコードを書く人だった。聞けば在学中から外注のプログラマをやっていて、それなりに稼いでいたのだという。性格はちょっとアレで、風俗に勇気を出して行こうかどうしようか迷ったけどその金でオナホ買ってシコってオナホを床に叩きつけたみたいなヤツだったけれど、そいつからもらったコードを、わざと汚く成形し、変数名も汚らしくし、提出し、なんとかなった。結局自分で最初から最後までプログラムを作ることはできなかった。丸々コピペはしなかったけれど、コピペがなければ卒業は無理だっただろう。
そうして三回生の終わり、試験がどっと押し寄せてきた。一月のことだった。機械学習と……なんだっけ?そういう感じの試験が、2月の初日、行われることになった。三回生はただでさえ試験が多かったが、その大トリこそが機械学習だったのだ。
まるで意味が分からなかった。推論、それは分かる、機械学習?機械に学習??やっていることは数式だしベイズがどうの……まるで分からない。泣きそうだった。三年間必死こいて勉強したり勉強会に行ったりプログラミングスキルを上げようとしたり本を読んだり色々したのに、何一つ得るものは無かったのだ。僕はあやしいわーるどでオマンコ連呼していた頃から、何一つ成長出来なかったのだ。そしてそれは、間違いなく、疑いようがなく、自分のせいだった。自分の頭が悪いせいで。自分の勉強不足のせいで。自分のせいで……コンピュータとともに、十何年も育っていた僕にとって、コンピュータに関するスキルこそが、全ての力の基準だったのに、その全てを否定されたような気持ちだった。プログラミングができなければ、死ぬ。だって、友達はみんな就職して、SEになったりSIerで働いたりネットワーク管理者になったりしてるのに、僕はなんで、こんなところに。そいつらに取り残されるのに。みんな勉強会に出てMacを持ち寄ってハッカソンしてるのに。泊まり込みでプログラミングしたりしてるのに。なんで僕は、fgetsすらマトモに使えず、getsとscanfだけであなたの名前を入力してください オマンコ オマンコさん、こんにちは!みたいなプログラムしか書けないんだ。
大学四回生になった。研究室を選択する必要があったがしなかった。しないでは困るとのことで、適当に書いたらその一番上に配属された。でも一切研究せず、下宿に引きこもって何もしないをした。今日の輪講はここまで進みました!という報告が毎週回ってくるが、まるで研究室では日本語でなくアラビア語が公用語になっているのではないかと思えるぐらいの光景だった。この頃、近所の人の証言によれば、言動がおかしく、訪ねてきた人に暴言で返し、殺す殺すなどの声が聞こえ、時折モノを投げつける音が聞こえたりしたそうだ。まあよく知らない。僕は普通に何もせずぼんやりネットを見ていただけのような気がするけど。
それからしばらく経った。
結局僕は中退した。そして別の大学に入り直した。今度は、工学じゃない別の場所に。みんなキーボードの文字を読みながら指先でキーを叩いている。安心する光景だった。僕らはプログラミングを習わなくてもいい。これから習う必要も無い。タッチタイピングだって、できるに超したことはないだろうけど、できなくてもいい。ただ、そこにある便利なモノを使えば良いだけなのだ。Chromeを使っていて、うっかり開発者向けコンソールを開いてしまっても、何も分からなかったことにして閉じて良いのだ。きっとマクロを書けば、楽ちんに勝手にやってくれるような作業を、人の手で何度もやる。それでいいんだ。マクロを考えるために必死になる必要なんか無い。マウスで右クリック、コピー、ペースト。それでいいのだ。キーバインドすら覚えなくて良い。メモ帳を使ってもいい。viやEmacsのキーバインドを覚えなくてもいい。マウスも使えないようなエディタと格闘する必要は無い。Macを買っても、XCodeやportsを入れる必要は無い。iTunesでiPhoneを同期させて、音楽を聴くだけでいいんだ。
僕はもうプログラミングしないでいいんだ。
それが分かったとき、全てから解放されたような気がした。僕を苦しめ続けたプログラミングというものは消えてなくなった。パソコンでやる作業は、昔と一緒、匿名掲示板にオマンコと書き込むだけだ。それ以上のことをしなくてもいいんだ。勉強会に出てハッカソンする必要は無いんだ。プログラミングスキルを錬磨しないと死ぬなんてのはウソだったんだ。美しいコードを書かないと天罰が下るというのはウソだったんだ。毎日毎日はてブのホッテントリを見てると、プログラミングでマスターしなければならないこと、何何する方法、開発者必須スキル、便利ツール、Macでのアプリ開発、セキュリティ、通信、データベース、勉強会、ハッカソン、そういうもので溢れている。苦しくないのか不思議で仕方ない。もちろんプログラミングをしていて楽しい人もいるんだろう。けれど、僕みたいに、プログラミングという行為が苦痛で苦痛で苦痛でしかない人もいる。たとえ1000回の同じ操作でも、人力でやる方がマクロを書くよりも楽だという人も、ここに存在するのだ。そしてそのような人の存在も当たり前に肯定されるのだ。みんな苦しまなくて良いんだ。誰かが勝手にやってくれればいい。できる人にお金を渡して、僕らはそれを享受するだけで良いのだ。ここでプログラミングという言葉を連呼したけれど、コーディングという言葉との違いとか、そういうのを気にするような人とおつきあいする必要は無いのだ。いずれプログラミングは必須スキルになるとか言われて何年も何年も苦しみ続けてきた。けれど、そんなことをする必要は無いんだ。
それでぶっちゃけここからが本番なんだが、十代でなんとかしないと、という焦りはこないだの青木君の小四なりすましの話に似ている。僕もそうだった。僕らの世代だと登大遊氏なんかが結構輝いてて、ああいう感じにならなきゃ、と思っていた節はある。十代の時になにか成し遂げないといけない、そのためには誰かに認めてもらわなければならないという焦りは、どれくらいの「大人」に理解してもらえることなのだろうか?誰かの承認を得たいという承認欲求を、同じ世代の誰かを使って満たすことができず、むしろ同じ世代の誰かを一緒に引き連れて、承認欲求を満たしてくれる「教祖」にすがりつく。NPOの大学生が「承認」を欲し、政治家が「承認」を与えているのだ。AO入試用の作文?図?みたいなものも見かけたが、「私はリーダーシップがあります!」とか実にくだらないことしか書いていない。しかしそういうものでさえ、学生団体とやらは「承認」してくれる。結局、オウム真理教が丸ごと開けたポジションに、バラックが建ち並び闇市が行われていて、コミュニケーションで自然と得られるはずの承認欲求が、法外な札束で取引されている、そんな感じのような気がする。
意外にブクマが増えていた。PC-8001は俺が産まれる前に買われたもので、ずっとオブジェだったのだ。動くかどうかもわからない。テレビに接続するコードがなかったから。
やってきた言語はPHP、Python、Rails、JavaScript、Node.JS、Objective-C、Javaあたりだろうか
やってきた言語はPHP、Python、Rails、JavaScript、Node.JS、Objective-C、Javaあたりだろうか。
23歳でWeb業界に入り6年目、ついに年収が1000万円を超えた。
他の高給な仕事に比べれば大した額では無いが、エンジニアとしてはブラックという程には悪くはない数字だと思っている。
目標を達成できた事は素直に嬉しいし、今のところ満足している。
大学卒業後は東京のベンチャー企業にエンジニアとして新卒で入社。
初年度の年収はわずか350万円だった。それを思えばここまで結構頑張ったと思う。
基本的にはずっとWeb畑を歩いてきたが、時代の移り変わりで今はiPhoneやAndroidも案件によっては書いている。
やってきた言語はPHP、Python、Rails、JavaScript、Node.JS、Objective-C、Javaあたりだろうか。
もともとコードを書くことは好きだったので、案件に応じてなんでもやった。
会社ではマネジメント業務をそろそろやれと打診されているが、まだ技術の現場にいたいので断っている。
6年目ともなると決まって難しい案件が回されてくるが、今のところは役職も無いヒラのエンジニアだ。
ITはブラックだとか、Webは薄給だとか、巷では色々と言われているが、ああいうのは殆ど嘘みたいな物だと思っている。
極端に酷いサンプルが、ゴシップ的に取り上げられているだけだろう。
慎ましやかに生きる分には、実際に業界にいる身としては今のところ悪くはない。
理由くらい書けよ糞が
他のWindowsプログラムがやっていて、多くの方が「できて当然」だと思っていることは、7割くらいであれば.NET(フレームワーク名)を叩けばできます。
.NET対応言語はC#、VB.NET、J#、F#、JScript.NET、C++/CLIなどがあり、実際の開発においてはこれらの中から自分に合った言語を選ぶことになります。
個人的な感想ですが、この中で最もゆとり仕様なのはC#です。StackOverflowなどのノウハウが一番蓄積されているのもC#だと思います。
「頻繁なアップデートを追跡しないといけない」「Visual Studioが必要」という問題はありますが、がんばってください
なお、.NETはメモリを食うので、数値計算みたいなことをしたいのであればC++が現状一番まともだと思います。がんばってください
昔のMacのプログラムのGUIはCarbonというライブラリで作っていました。今はCocoaというライブラリで作っています。
残念なことに、どちらも言語はObjective-Cです。がんばってください
ブラウザアプリは、ユーザのWebブラウザ(Chrome、Firefox、Opera、Safariなど)上で動作するシステムと、遠隔のサーバ上で動作するシステムが連携して成立します。
従って、ブラウザアプリを作る言語は、サーバ用言語とクライアント用言語の2種類を考えなければなりません。めんどくさいですね。
ひとたびそのめんどくささを突破してしまえば、Webブラウザさえあればどこでも動くようになります。素晴らしいですね。
クライアント用の言語は、まぁ、JavaScriptしかないと思います。がんばってください
JavaScriptも(正直なところ)あまり褒められた言語ではないので、近頃ではもうちょっとまともな言語を作って、それをJavaScriptに変換する方法が取られたりします。CoffeeScript、TypeScript、Haxeとかですかね。がんばってください
JScriptとかいう、名前が紛らわしい上にゴミブラウザ上でしか動かないゴミ未満言語もありますけど、そんなもんで作っても私の環境では動かせませんので悪く思わないでください。
そもそも選択肢が全くありませんので仕方がないです。がんばってください
Xamarinがあるじゃないかって?まぁそういうのもあるかもしれませんね。がんばってください
私の勉強不足で、Java以外の選択肢は知らないです。Java以外にあるんですかね?
Perlは使い捨てスクリプトを作るのに適しています。CPANクライアントは昔から安定して動きません。だいぶオワコン化してます。がんばってください 私は鞍替えしました
PythonはPerlより見た目がすっきりしたPerlです。easy_install・pipはすごく安定していてびっくりします(Windows除く)。3系とかいう邪念は捨てて2系教の悟りを開きましょう。がんばってください
RubyはPerl(の処理系のソースコード)より(処理系のソースコードが)綺麗なPerlです。私の手元のUbuntuで「ruby」と入力すると「Command not found.」と返ってくることからも解るとおり、多くの*NIXではOS標準でインストールされておりません。昔のgemは何故あんなにすごい時間をかけてrdocを作っていたのでしょうか。日本人が作ったのでムラ意識の強い日本人の仲間が大勢います。他の国は知りません。がんばってください
これ以上言語を増やすのはやめましょう。バベルの塔で大勢の人間が不幸になったのに、それを人間が自ら引き起こしてどうするんですか。
言語処理系を作るのであれば、BNFという言語で文法を定義して、yacc・bisonというツールに食わせればひな形ができます。ぶら下がりelseとの格闘が待ってますが、がんばってください
1からOSを作った方もいますが、デバイスドライバの流用などを考えると、だいたいはLinuxやBSDのソースコードを改変するお仕事だと思います。
昔はCGIと言っていました。所詮は80番ポートでlistenするだけのプログラムであり、BSDソケットをlistenできるライブラリを有する言語であれば何でもいいのですが、いくつかの宗教があります。
PHPはバンドネオンと同じくらい習得が困難な言語なのに、宣伝の仕方を間違えたために「自分はできる」と勘違いしたプログラマが暴徒と化し、イスラム教と同じくらい不当に低く評価されている言語です。きちんと勉強して使う分には、悪くない選択肢だと思います。がんばってください
Javaは、Eclipse・Netbeansといった超重量級IDEを起動して、Java EEやSpringといった超重量級ライブラリに依存したwarを、Jboss・WebSphereなどの超重量級アプリケーションサーバ上で動作させるため、メモリが貧弱な環境ではIDEとサーバを同時に起動すらできません。サーバのメモリが潤沢であれば悪くない選択肢だと思います。がんばってください
C#は、選択肢が全くないことを除けば、状況はJavaとあまり変わりません。Microsoftがお好きな方、何かの間違いでWindowsサーバを使わざるを得ない方であれば、悪くない選択肢だと思います。がんばってください
「何が」と簡単には断定出来ないが、元増田には色々と不足していたところがあるからこういう結果になってるんだろうと思うよ。
転職エージェント経由での書類選考とか、落ちる方が難しいわけで……。
その書類選考でこれだけ大量にお祈りされているということは、よっぽどエージェントの腕が悪いか
元増田の経歴が信じられないくらいしょぼいかのどちらかであろう。
指標として自分のスペックを書く、転職回数などで元増田と共通項があるので
ある程度参考になるかも知れない。
・転職4回
・社会人8年目
・Java、PHP、Python、Javascript、Objective-C
・ブログは少し書いている
・Linkedin や Facebook、公開しているメールアドレスにたまに企業から直接アプローチあり
上記のようなスペックで、グリーとかコロプラ、DMM.com ラボ辺りからは内定が簡単にでた。
もし、元増田がこれ以上の経歴で落ちまくってるなら人格に問題があるのかも知れない
そうでなければ、大手の方が決まった時のバックが大きいので、数打ちゃ当たるの運勝負で色々受けさせられている可哀想な人っぽいので
大手ばかり狙うのはやめた方が良いかもしれない。
■http://anond.hatelabo.jp/20120229223543
■http://anond.hatelabo.jp/20120926165407
■http://anond.hatelabo.jp/20120904230532
"Hello world!"じゃねえよw
■http://anond.hatelabo.jp/20120721222138
言いたい事は分かるが増田やってる嫁に言われたくねぇよな、旦那も
■http://anond.hatelabo.jp/20120128180913
こんなしょうもないエントリーにブックマークが沢山つくって事は
■http://anond.hatelabo.jp/20120319033827
■http://anond.hatelabo.jp/20131208133925
ドラクエのような一本道のゲームやるくらいなら一本道 - 入会料金と安全性みるわw
■http://anond.hatelabo.jp/20120517210430
当たり前だろデブw
■http://anond.hatelabo.jp/20121208223959
■http://anond.hatelabo.jp/20120127061544
「動かぬ者は去れ」
■http://anond.hatelabo.jp/20120229231027
就活負け組になりたくなかったら無内定速報-就活2chまとめでも見て情強となれ
■http://anond.hatelabo.jp/20121013200056
エクセルとObjective-Cだけは勘弁してくれ、疲れるわ〜
■http://anond.hatelabo.jp/20131220031000
■http://anond.hatelabo.jp/20120110101235
自分が逮捕されそうになったからステマ叩いて世論操作して政府に媚び売りたかったんだろ
その努力が実って実刑は免れ、めでたく書類送検。ちゃんちゃん♩
■http://anond.hatelabo.jp/20121021153158
10年前とかならCを最初に学ぶ理由も分かるけど、今の時代に初めての言語でCを推す奴は社会悪でしかない。
Cなんて、導入しづらい、分かりにくい、実用性ないの3ないでクソすぎる。
Androidを使っていればJava,iPhoneを使っていればObjective-C,ウェブサービスに興味があるならRails、この3択しか現代にはないだろう。
C#とかPerlはまだいい。Cを推す奴がどう社会悪かと言うと、Cで作れる簡単なソフトウェアがなさすぎて初心者が脱落するからだ。
黒い画面にカレンダーを出すだけのC言語なんかより、馴染みのあるスマホアプリや、ブラウザ上で動くアプリの方が明らかに発想も広がるしモチベーションも上がるから、結果的に開発スキルが伸びる。
そういうことも考えずに、「プログラムの基礎はC」とかドヤ顔で初心者に対して教えてる奴は、日本の未来の技術者のために居なくなって欲しい。
フリーのデザイナーをやっていたのだけれど、子供が大きくなってきたので本格的に進学用の資金、老後の貯蓄を考えて、30代中盤から2年ほどかけて勉強し、プログラマーに転身した。
最初にPHP、そしてRuby、その後、それぞれのフレームワークを1日30分くらい勉強。最初にプログラマーとしてお金をもらえたのはアンテナサイトの構築。そんなに難しくなかったので数日で構築して納品したところ、デザイナー時代と比較してはるかに少ない労力で高単価の仕事ができていたことに気づき愕然とした。
その後、いろいろと自前でもサイトを作るようになり、毎月何もしなくても家賃程度は払える収入は得られるようになった。大型の案件を受注しないとなかなか厳しかったデザイナー時代とは違い、安定して収入が得られるようになったので家で不安そうな顔をする機会が減り、子供も元気に育っている。
30台中盤という今後のキャリアを考えた時に、プログラマーを選んで本当に良かった。今度はJavaかObjective-Cを勉強してアプリを作ってみる予定。子供が独り立ちするまで不自由はさせないよう、頑張ります。
いやObjective-Cは、厳密にはネイティブ言語じゃねーだろ。
あ、まず前提として、
はたして貴女を幸福にするかどうか、それはまた別問題だけれど。
IT系の超かしこい男なども多く、
多くっつーかIT系でないのにプログラミング大好き男っていうのは超かしこい学生(まぁこれは有望株)か研究者系なんか、
あとはまったくかしこくもないクセに頭いいつもりして「Lispやってます(キリッ ハローワールドくらいですが」とか言っちゃうアホしかいないわけで、
したがって、釣り師たる女たちにとっては、
なかなかあなどれない釣り場です。
では、プログラミング大好き男に「どの言語が好き?」と訊ねられたとき、
まず最初に、その男がCOBOLのようなタイプのレガシーコードと
あとはC/C++、そして(TechEdに参加するほどではないけれど)VisualBasicが大好きな、
貴女はかれの目を見て、微笑みとともに質問など無視して、こう言いましょう、
「わたしが、仕様書を作ってあげる♪」
これこそまさに必殺の答えです。
そこでプログラミング大好き男が、えへへ、とやにさがったならば、
貴女は、ひそかに、「コピペ量産しやすい技術的ポイントを抑えた仕様書」あたりを
ひそかに練習しておきましょう。これで成功まちがいなしです。
しかし、ここでは、もう少しハイブロウな(?)いわゆるプログラミング好きの男の
落とし方をお伝えしましょう。
「わたしは、JVM上のScalaが好き。
型推論もあるしラムダ式やクロージャもスクリプト言語みたいに書けるの、豊富な組み込みのコレクションメソッドはいつも便利だし、
XMLリテラルもCaseクラスによるパターンマッチもTraitベースのMixi-inも、大好き♪」
もしも貴女がそう答えたならば、
かれの貴女への恋心は、
20%増量になるでしょう。
なぜって、Scalaは、
コンパイルは遅いながらも、そこがまた
ちょっぴりメモリを多く積めばいい富豪プログラミングみたいなふんいきをかもしだしていて。
質高くふるまっていて、なおかつ、
JVM上で動くくせにJavaが「やるやる」と言ったまま実装してなかったラムダ式と仮想拡張メソッド、型推論を実装した功績もあって。
したがってScalaこそは、
本来なんの接点もないまったく縁もゆかりもない別々の世界に生きている、
インタプリタ言語大好きな綺麗系OLと、玉もあれば石も混じっている、そんなプログラミング大好き男たちが、
この世界で唯一(いいえ、JVM系列のJRuby、Clojure と並んで唯三)遭遇しうる場所です。
●
では、参考までに、危険な回答を挙げておきましょう。
プログラミング大好き男に「どの言語が好き?」と訊ねられたとき、
「MicrosoftのVisual Basic for Applicationが好き♪ 週3回は Excelでコーディングするの。」
特にOfficeは平凡ながら、ま、無難にまとめてあるものの、
しかし、「新UIのリボンUI!」「メトロUI対応!」とかなんとか無意味な自慢を吹聴し、
VBAはさらにプログラミングについての謬見を撒き散らした罪がありますから、プログラミング大好き男にとっては天敵なんです。
ティーガー戦車乗りのオットー・カリウスは「ティーガー乗りなら誰でも片側の履帯がはずれ僚車に牽引されて帰ってきた経験を持つはずだ」 って言ったけど
社内SEかSIerなら誰でもクソみたいな前任者が書いたクソみたいなExcel-VBAコードを直した経験があるはずなんです。
また、もしも貴女が「PHPが大好き♪ あたしが書いたPHPのWebサイトが、さくらサーバに7件あるよ♪」
と答えたとしても、同様の効果をもたらすでしょう、
なぜって、PHPは、1990年代にはWeb系を目指す人にとっては簡単で要件を満たすWebサイトが簡単に作れる輝きの道だったものの、
しかし2000年代そうそうから、セキュリティ関係の問題で転落し、
いまや、あの貧弱な言語能力では、Rubyの魅力に遥かに及びません。
(注1)
「わたし、.NET FrameworkのC#が好き、フォームアプリでも書くけど、
最高に好きなのはASP.net♪ SQLServer連携も、ajax control toolkitもすっごくおいしいの。」
と、答えたとしたらどうでしょう?
なるほど、貴女の趣味は高く、
たしかに.NET Frameworkは、C# が cool であるのみならず、
.NET Framework上で動く F# や IronPythonやIronRuby、マネージJScriptも最高においしいんですけれど、
しかし、貴女の答えを聞いて、プログラミング大好き男はきっとおもうでしょう、
(なんだよ、MS信者な女だな、カネかかりそう)って。
(注2)
貴女が、プログラミングが大好きで、言語の名を挙げるにしても、
たとえば、JavaScript(node.js)ならば安心でしょう、
なぜならば、JavaScriptは、かけだしのプログラミング初心者にもマニアにもともに愛されるめずらしい言語で、
貴女がその名前を挙げても必ずしも、(jQueryがやっとの初心者と思われることはあっても)あなたがプログラミング言語おた宣言をしているとは受け取られないでしょう。
むしろ「へぇ。ちゃんとprototypeは使ってる?」と聞かれたら「当たり前じゃない。むしろnode.jsでいいMVCフレームワークが分からないんだけど…」と話を振ってみましょう。
男は嬉々として、30個くらいのnode.jsのフレームワークを教えてくれることでしょう。(まぁどれもどれで帯に短し襷に長しなんですが)
あるいはRighno上で動かしたコードをnodeへ移植する話とか、CoffeeScript、甚だしきはClojureScriptを振ってみてもいいかもしれません。
しかし、たとえば、世界が(つーか竹内先生とポール・グレアムが)誇る超絶関数型言語の名作、Common Lispにせよ、
selfと書きまくることと海外で使われてることに定評のあるPythonにせよ、
バージョンアップごとに言語仕様が変わり、かなり素敵なものではあるもののobsolatedな罠にはまりやすいRubyにせよ、
まったく読めない$_だらけで頭悪い仕様をリセットしてPerl6にする(そしてまた全く読めない)Perlにせよ、
気さくなクジラ飛行机さんがふるまう素敵においしい日本語プログラミング言語のひまわり・なでしこにせよ、
基地外トリッキー言語の代表BrainFxck・Glass・Missa・WhiteSpaceにせよ、
ましてや貴女が、「Haskellが大好き♪ わたし、プロジェクト・オイラーの問題もうほとんどHaskellで、解いちゃった♪」
と答えたならば、どうでしょう?
これはかなり博打な答え方で、
なるほど、Haskellは、純粋関数型でありつつも副作用のある操作が行える超絶名言語ゆえ、
あなたがそう答えた瞬間、プログラミング大好き男がいきなり超笑顔になって、
「へぇ、やっぱりHaskellなら大抵の問題は4行以内くらいで解いちゃった?」とか言いながら
鼻の下がだら~んと伸びちゃう可能性もあるにはありますが、
しかし、逆に、(なんだよ、この女、プログラミングおたくかよ)とおもわれて、どん引きされる可能性もまた大です、
なぜって、必ずしもプログラミング大好き男がプログラミング大好き女を好きになるとは、限らないですから。
男たちは、女を導き高みへ引き上げてあげることが大好きゆえ、
もしも貴女が、「Haskellが大好き♪」なんて言ってしまうと、
そこにはもはや、男が貴女に圏論のモナドを教育する余地がまったく残されていません、
したがって貴女のその答えは、
プログラミング大好き男の貴女への夢を潰してしまうことに他なりません。
ま、ざっとそんな感じです、貴女の目にはプログラマーたちはバカでスケベで鈍感に見えるでしょうが、
しかし、ああ見せて、プログラマーはプログラマーで繊細で、おざなりに扱われると傷つきやすく、ローカル変数の名前一つにも気を使い、女と自分の将来に夢を持っています、
貴女の答え方ひとつで、プログラマーの貴女への夢は大きくふくらみもすれば、
一瞬で、しぼんでしまいもするでしょう。
●
では、スキットを繰り返しましょう。
「わたしは、JVM上のScalaが好き。
型推論もあるしラムダ式やクロージャもスクリプト言語みたいに書けるの、豊富な組み込みのコレクションメソッドはいつも便利だし、
XMLリテラルもCaseクラスによるパターンマッチもTraitベースのMixi-inも、大好き♪」
そして、その瞬間、プログラミング大好き男の目がらんらんと輝いたなら、
貴女はこう重ねましょう、
「それからね、いま、わたしが使ってみたいWebアーキテクチャは、
Play Framework、素敵なリアルタイム嗜好のアーキテクチャって噂を聞いたから。
あなたのお暇なときがあったら、わたしをPlayへ連れてって♪」
これでもう完璧です。
PlayFrameworkと、Play(遊ぶ・じゃれる)のダブルミーニングでかれの股間も刺激しちゃえます。
そうなったらこっちのもの、
デートの日には、ペアプロ用に Happy Hacking Keyboard をばっちり決めて、かわいい下着をつけて(注3)、
github.comの通販で売ってるoctcatのTシャツか、facebookの「いいね!」ボタンがムネのところにあるTシャツ、 あるいは初音ミク(ないし彼のお気に入りのアニメキャラ。北米ならMyLittlePonyで鉄板なんだけど)のコスプレを着てゆきましょう。
その日から、プログラミング大好き男は貴女の虜になるでしょう。
注1:
(と、書いたもののPHPの現状をよく知りません。グローバル変数だらけになるのとか旧ASPみたいなもんなのかなぁ。count($array); とか書くのアホと思うがpythonも同じだった)
(あと、マジで単機能とかTwitter連携とか診断メーカー的なのでもPHPで7つも作ってる女子居たら付き合いたい)
注2:
もっとも。objective-Cなんていう言語をやることに比べれば個人で行う程度なら金のかからない手法もなくはないのですが。
注3:
プログラマーにとっての「かわいい下着」と、女性にとっての「かわいい下着」の定義にずれがあるので注意。
半数くらいのプログラマーはしましまぱんつが可愛いと思ってる気がするので、妙齢の女性が着用するには抵抗あると思うが、ボーダー柄のコットンショーツ(ただしキャラ絵のは除く)とか、
過度でないていどにフリルがついたものがオススメ。また、色は、レッドだとプログラミング大好き男は引いてしまう(だってそれはコンパイルエラーのときの色だ)ので、薄ピンクかホワイト、薄ブルー、せめて黒(に差し色でピンクとか)あたりに留めたい。
補記:
元ネタ: http://tabelog.com/tokyo/A1301/A130101/13002457/dtlrvwlst/3464106/
補記2:
「プログラマー」か「プログラマ」かの問題については、特に意味は無いが前者を採用した。
補記3:
言うまでも無いけど、ネタです。
先日「飲み会版ソーシャルランチをつくってみた」を書いた者です。
上の記事では、僕がつくった「飲活」というサービスの説明が大半で、どうやってつくったのかとか説明が少なかったので、今回はそれについて書いてみようかと思います。
僕は「「飲活」」を作るまでも、iPhoneアプリを開発したり、webサービスのメンテナンスをしたりとプログラミングをしておりました。
しかし僕も何度かwebサービスの立ち上げを挫折しております。4回くらいかな。
最初はxoopsを使って、ツイッターで登録企業の広告をつぶやいたらポイントをもらえるサービスでした。
なんとxamppで門前払いされました。ローカル環境すらつくれませんでした。「くそ初心者は時間を無駄にするだけだから辞めろ」と言われた気分でした。
xamppだけに2日くらい朝まで格闘してしまい本当に時間を無駄にしました。当時はapacheの設定とかなんぞや状態ですからね。
次にやろうとしたのが、大学受験生向けのサイトで、受験生に教科ごとの講義をするのではなく、勉強のやり方を教えるよ!ってサイトです。
ほとんどhtmlでできそうなのですが、phpでメールを送ることができず挫折しました。
レンタルサーバーを借りたのですが、レンタルサーバーのphpの設定をしないといけないのを知らなかったり、やっと解決しても日本語化けに悩まされて止めた覚えがあります。これほど母国語が英語だったらどんなに楽かと思った時はありませんよ。プログラミングしてると今でもたまに思います。
次が、キックスターターのようでそうでないクラウドファンディングサービスをつくろうとしました。
ここでjavascriptと出会いました。いや、ちゃんと交際を始めたと言うべきか・・・。それまでjavascriptとすれ違っても虫を決め込んでいたのですが、いざ必要になって呼び止めてみると意外と良い奴でした。
しかし、ajaxにつまづいたり、サイト構成やディレクトリ構成、データベース構成や、デザインの調整などで複雑で面倒になり挫折してしまいました。
こうして書くと、僕がすごい諦めの早いやつで勉強もまともにしないやつみたいに思えますが、半分正解。諦めは悪いけど「ググればいける」という考えで勉強を怠っておりました。
だいたいプログラミング言語はどれも根本は似ているので、先述の3つ以外のプログラミング言語をやりたいと思ってる人でも参考になると思います。
また、以下の内容は、わけわからんけどwebサービスをつくりはじめる方を前提にしています。
まずは開発環境を整えましょう。
開発環境とは、自分の書いたプログラムをローカル(自分のパソコン)でのみ動作させる環境です。
つまり、自分がつくっているものを外部に見られることはありません。
です。
まずはこれらをインストールしてください。設定などの説明は割愛します。
僕はphpを使いました。
僕もそうでしたが、素人は当然プログラミングの全体像を想像できません。やりたいことを思いついても、どういうコードを書いたらいいかなんてすぐに想像できませんよね。
これも当然ですがその原因は、そもそもプログラムでなにができるか知らないからです。
なので、POSTやSESSION、配列などの基本的なものの存在を知りましょう。そしたら、「このページにはこの機能が必要だろう」というのが、"なんとなく"わかります。書き方はこの時点で別に覚えなくて大丈夫です。
例えば、オブジェクトを格納することが出来る「配列」という存在を覚えます。
この時点では、配列の作り方のコードとかは覚えなくていいですよ。「配列という存在を知る」ことが重要です。
基本的なことを学ぶときはネットではなく本を使う事を薦めます。
本は情報が体系的にまとめられていまうので、ネットよりも学びやすいです。
プログラミングは10年以上基本部分は変わっていませんので、「古いものを覚えちゃわない?」という無駄な心配はなくて大丈夫。
一方、発展的なことではネットで学びましょう、というかわからないことがあればネットで探しましょう。
どんなことを実現したいのかというゴールがないと必ず途方にくれます。
なので、まずはゴールを設定します。
例えば「「飲活」」なら、
などなど...。
その後に、各ページ毎に必要な機能と大まかなそのページのやることを決めます。
ログインページには、ユーザーが入力するフォームと送信ボタンがあって、なにも入力されずに送信ボタンが押されたらエラーメッセージを出そう。エラーがなくログインに成功したら、会員専用のエロビデオを見せよう。
とか。
例えば、しっかり考えず適当に、登録ユーザーのプロフィール画面を開発していて、ユーザー名、生年月日、出身大学を表示させるプログラムをつくったとします。
しかし、プロフィール画面が完成した後にメールアドレスも表示させないといけないことに気がついた場合、少しプログラムの変更が必要になります。
最初から、どのデータが必要なのかを決めていれば、こうした効率の悪さは回避できます。
実際は奇麗に開発できることは少ないですが、何も考えずに開発するよりは効率的です。
大まかな機能(ログイン)→具体的な機能(ログインページの機能)→具体的にログインページがやること→必要とするデータ
という流れでサイトの機能を決めることで、自分のやることが明確になりますし、勉強すべき内容も最小限に抑えられます。
ここで、どういうデザインにするのかを決めればもっと後で楽になります。
webサービスには必ず必須となるデータベースについて知る必要があります。
僕は、mysqlを使いました。
サーバーはさくらインターネットのレンタルサーバーを使ったので、さくらインターネットのデータベースを利用しました。
各ページで必要な機能とやることを決めたら、それを実現してくれる方法を本やネットで探します。
先述のとおり、必要な機能を決めていればそれを実現してくれるもののみを探せばいいので効率的になります。
見つけたら、あとはそれを使ってやりたいことをやるだけです。
具体的にはサンプルコードやAPI、フレームワーク(ライブラリ)を探すべきだと思います。
プログラミングに慣れるまではフレームワークを使うと上手く組み込めず、それが挫折の原因にもなりそうなので、主にサンプルコードを探せばいいと思います。
プログラミングってなんのためにあるかというと、人々の生活を楽にするためです。
人々を楽にするプログラミングで、わざわざ辛いやり方をするのは最悪です。
なので、どうぞ堂々と怠けてください。他人のつくったコードを使ってください。API、フレームワークを使ってください。
プログラムを書いたらデバッグしたり、ブラウザ(htpp://localhost)で見てやりたいことができているか確認してください。
特にこのサービスには特別なことや難しいことはやっておらず、正直phpの基本がある程度わかっていれば、このサービスの基本的部分は作れてしまいます。
デザインをつくりましょう。
僕は一から自分でデザインを考えたわけではなく、他の素敵なサイトを参考にさせていただきました。
また、サイトの見た目をつくるにはhtmlとcss、時にはjavascriptを使う必要があります。
オススメなのは、twitter社の提供するTwitter Bootstrapです。
http://twitter.github.io/bootstrap/index.html
ちなみに、「飲活」は、html、css、javascript(jQuery)を使っています。
つくったサイトをみんなに見てもらうためには、外部とネットワークのあるコンピュータにアップロードしなければなりませんし、ドメインもなければいけません。
コンピュータにはIPアドレスがあり、ネットワーク上の住所となっています。これにアクセスすると、「飲活」の住所とか「はてな」の住所とかあったりするわけです。これは数字でできており、これを人間が読みやすいものにしようというのがドメインです。
hatena.jpとかnomikatsu.comとかですね。これを取得しましょう!
自分で作ったり、VPSを使ったりすることもできますが、自分で管理をしなくていいという点で楽なので僕はレンタルしています。
僕は、さくらインターネットでレンタルしています。
僕のようにドメインの管理会社とサーバー会社が別だといろいろと設定をしなければなりません。
DNS(ドメインネームサーバ)というのがあり、「このドメインのあるサーバーはこれ、IPアドレスはこれ」と教えてくれるものです。
お名前ドットコムで取得したnomikatsu.comは、さくらインターネットのサーバにあるよと設定する必要があります。
実際には、さくらインターネットのネームサーバ情報を知り、お名前ドットコムでnomikatsu.comはこのネームサーバだよと設定してあげるのです。
これで、数分から数時間でnomikatsu.comにネットからアクセスすることが出来ました。
あとはサーバーにファイルをアップロードすれば、インターネットで自分のつくったサイトを見れます。
ファイルアップロードの仕方ですが、FTPクライアントを使います。
僕は、filezillaを使いました。
filezillaからホスト名やユーザー名などを設定してサーバーに接続します。
接続できたら、指定のディレクトリにファイルをアップロードすればOKです!
とにかく作り始めましょう。
僕は、本が書いてあるサンプルコードをそのまま勉強としてやるのはオススメしません。
だって、つまらないですもん。あれは、プログラムを書いていて基本がわからなくなったときに見返せばいいんです。
最初はまず作りたいものを決めて、PHPで何が出来るのかをざっくり勉強して、それを実現するのに必要なコードややり方を見つけて、実際に動くものをつくっていってください。
やりたいことをやらなきゃ飽きますし、本のサンプルコードよりも実際にwebサイトをつくった方が覚えます。
やったことがない人が勝手に難しいと思い込んでいるだけで、意外とやってみれば難しくありません。
簡単とまでは言えませんが、正直誰でもできます。
僕の場合は何度かプログラミングを挫折しましたが、こうして一つのものをつくることができるようになりましたし、iPhoneアプリなども会社では開発しています。
こんなやつでもできるので、諦めなければできます。
そんで、とても楽しいです。
本当につくりたいものがあるのなら、一度やってみる価値はありますよ。
明記してありますが、僕は初心者ではありません。初心者の方が勉強がてらサービスを作る一つのやり方というか流れを紹介したいと思って記事を書きました。
僕自身、なにもわからずプログラミングをはじめたときは、どう勉強したらいいかわからず辛い思いをしました。
素人がわけわからずプログラミングを始めると挫折しやすいと思いまして、僕が素人の時を振り返り、そして勉強してきた経験を使って、素人の方にサービスをつくっていく流れを書いたら素人の方も挫折しにくいかと思いました。
なので、僕は初心者ではありませんが経験者として素人がサービスをつくっていく方法を書きました。
また、飲活をつくった実際の流れと書きましたが、飲活をつくった流れを利用して、初心者がサービスをつくる流れを説明したかったんです。
英語圏ではかなり前からPerlで開発し続けることのリスクについて語られていたが、いよいよ具体的な弊害が出て来ているようなので、かいつまんでメモ。日本でもそう遠くない未来だと思う。
Objective-Cのように需要が逼迫しているのに人材の供給が増えず需給ミスマッチが起っているわけでは無く、需要も供給も減るという状況下でわずかだが需要が上回っているとう性質の悪い状況がPerlに起きている。特に深刻なのは安価な若手エンジニアの採用が絶望的に難しいという現実だ。Rubyが台頭して数年経ちPythonがメインストリームの先頭を突っ走る2013年において新しくPerlを勉強しようとする若者はよほどの物好きしかいない。30~40歳のPerlエンジニアを雇うのはそれほど難しく無いだろうがコストがかかる。安価な20代前半の若手エンジニアを雇いたいという企業の思いとは裏腹にPerlを新たに学ぶ若者は絶滅寸前だ。
とても優秀な若者を雇用できるチャンスが巡って来た。採用担当者はこう尋ねる。「Perlは習得していますか?」「もちろんC/C++/Pythonはお手の物です。Javaもある程度可能です」「もう一度伺いますがPerlは習得していますか?」「申し訳ございません 未習得です」
悲劇だ。
もう何年もPerl界隈で新しいモノが生まれたと言う話を聞かない。こんな事を言えばPerlハッカーは激怒するかもしれないが、しかし現実にRubyやPythonやJavaに比べればこの10年の間にPerlから生まれたものは微々たるものだ。何かしらのライブラリにしてもwebフレームワークにしても、ハッカーが新しいモノを試す土俵にはいつもPythonやRubyやJavaが選ばれて来た(もちろんC/C++もね)。
最低の理由ではないだろうか。
10年前にPerlで開発していた企業は最先端を走っていた。迅速に自らのアイディアを具現化するツールとしてPerlは最適だった。それが今やどうだろう。自分たちの書いたコードを保守し続けなければいけないという理由「のみ」でPerlを使い続けている。他に理由など無い。Perlで開発する理由は自分たちの過去の仕事を保守しなければならないという理由のみだ。
控えめに言っても、そういう企業に未来は無いと思う。過去とは決別し、10年後の自分たちにとって最適な選択をすべきだ。今すぐにだ。本当に手遅れになる前に。
オープン系のデスクトップアプリ開発、Webプログラミング、システムプログラミングを仕事にする人向けとして考えてみた。
学習環境はUbuntu Linuxで、デスクトップ上のターミナルか、WindowsからTeraTermでsshログインして行うことを想定。
なので前提知識としてLinuxのabcくらいは教えておくとして、もし来年度やるならこんなもんかな。
結構分量多めだけど、これでも基礎の基礎に絞った感じ。
おまけ:Pythonで学ぶ関数型プログラミング
なお、上述のカリキュラムでやらない言語(VB、javascript、C++、Objective-C、C#、PHP、Rubyなど)やWebフレームワーク(Django、Ruby on Railsなど)は、全てこれらの応用で覚えられると思うので、基礎教育終了後に各現場にてOJTで習得してもらう。
IDEも使わないけど、はじめの一歩で軽量エディタ+コマンドラインをやり込んでいれば正直どうにでもなるので省略。
あと最後がおまけ扱いな上にLISPで学ばないのは、要するに「リストすげー!超すげー!!」という感動を胸に今後も頑張ってもらうのが狙いなので(だって現状使う機会殆ど無いし)、最初にやって一番手に馴染んでいるツールで、理解のコアになる部分にサクッと触れて欲しいということ。