はてなキーワード: Vimとは
http://b.hatena.ne.jp/entry/anond.hatelabo.jp/20160418101157
を使うのがスキルがあるみたいな思想の人が大量にいて頭痛が痛くなるわ。
低レベルのレイヤーがお釈迦様の手のひらとか、IDEよりバイナリエディタをいじってるのがすごいみたいな。
低水準の技術は、高水準のレイヤーとは独立した技術で、基礎とか土台ってわけじゃないけど、それを理解できない。
以前も「初心者はCから始めろCが基礎だ」みたいな与太話をしてる人がいたらから「CのベテランがJavaの現場にきたらひどいコードを書いてた」という反例をだしたら「そのベテランがダメなだけだ。Cをやっていればオブジェクト指向プログラミングも自然に身につく」とか言い出すのな。
若者の成長曲線は半端なく、おじさんエンジニアは日々恐怖を覚えます。
出る杭はちゃんと打っておきましょう。
Emacs, VIM, zsh, tmuxなど…設定のいじりがいのあるツールは理想の環境を追い求めても終わりはなく、コンフィグはどんどん膨れ上がるばかりです。
それらを「一流のプログラマは、一つの道具にこだわりとことん使い尽くすもんだぜ」とでも言って、ずっとDotfilesのリポジトリばかりいじるようになってくれれば、彼らがプログラミングに費やす時間は減るはずです。
いくらアプリケーションが作れても、低レイヤのことが分からないとダメだと刷り込みます。
「プログラムがどうやって起動するか分かってる? えっ、mainを書けばそれが呼ばれる? あのなぁ、_startというのがあってだな…」
無駄に低レイヤに詳しいおじさん力を活かして、あたかも高水準言語でオレすげーしてるのは、お釈迦さまの手のひらの孫悟空みたいなものだと、思わせていくのです。
そうこうして、若者たちバイナリエディタを眺めて、「ふむふむこのファイルは〇〇だなっ」などと口にするようになったら儲けものです。高機能なIDEを使うよりも、バイナリエディタを愛用しそこに時間を使うようになるでしょう。
安定したプロダクトは、あっという間に習得してしまい、我々おじさんたちが安定するまで四苦八苦して身につけたノウハウは、「あっ、いまはそんなことしなくても大丈夫っすよ。昔は大変だったんすねw」と一笑に付される恐れがあります。
Javascript界隈など、安定しないプロダクトを積極的に使わせるように導きましょう。そこでGitHubにIssuesを上げまくるようになれば、時間を費やさせることができるでしょうし、さらには「このプロダクトはいつまでたってもクソだから、オレがもっとイケてるやつを作ることにしましたよー」なんて方向に向かわせることができれば、しめたものです。
若者の作業スピードの向上はかなりのものです。おじさんたちの体力と作業スピードでは到底かないません。
そこで、「若いんだからそんなこと手作業でやるんじゃない。ツール作っておけば、次からは一瞬で済むようになるだろうっ」と言ってやりましょう。若者がツールを作っている間に着々と作業すませてやるのです。
プレゼンというのは慣れてないと、激しく時間を使います。若者にはイベントの登壇機会を積極的にあたえ、そこで時間を使わせてやりましょう。
「ここで、〇〇って質問きたらどうする? えっ、考えてなかった? いやー、じゃあこれも調べておかないとねぇ」
なんて、いいながらレビューしてあげて、どんどん深みにはめてやりましょう。
「便利だから使う」と「それが世の中に嫌なほど浸透してないから少し優越感を感じる」の組み合わせだよね。
「変わったことをしたい」からvimを触るんじゃなくて、便利だからまず使い始めるんでしょ。そのあとにIDEとかでせっせと頑張ってる人見て、「vim勉強してよかったな」って感じて、vim推しになる。
そういう意味だと「スタバでMacbookを使う」は昔はそうだったかもね。今は色んなイメージが付随してしまってるし、おしゃれで使う人が増えたから違うだろうね。おしゃれでvim使う人はいないでしょ。「DreamCast〜」はちょっとわからん。
:echo 1 / 0 :echo 0 / 0
2147483647 -2147483648
きっしょwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
他の言語もチェックしてみるか
package main import "fmt" func main() { fmt.Println(1 / 0) fmt.Println(0 / 0) }
echo 1 / 0; echo 0 / 0;
PHP Warning: Division by zero。
print 1 / 0 print 0 / 0
ZeroDivisionError: integer division or modulo by zero
print(1 / 0) print(0 / 0)
ZeroDivisionError: division by zero
nodejsだと1/0と0/0で異なるメッセージが表示された。
console.log(1 / 0);
Infinity
console.log(0 / 0);
luajitだとnodejsで表示されたメッセージの短縮形で表示された
print(1 / 0)
print(0 / 0)
main = do print(1 / 0)
Infinity
main = do print(0 / 0)
public class Test { public static void main(String[] args) { System.out.println(1 / 0); } }
public class Test { public static void main(String[] args) { System.out.println(0 / 0); } }
Exception in thread "main" java.lang.ArithmeticException: / by zero at Test.main(Test.java:3)
#!/bin/bash echo $((1 / 0)) echo $((0 / 0))
test.bash: 行 4: 1 / 0: 0 による除算です (エラーのあるトークンは "0") test.bash: 行 5: 0 / 0: 0 による除算です (エラーのあるトークンは "0")
haskellとnodejsとluajitはエラーにならないけどまあいい。
Vimはやべえよ。
ニコ生のほうが見てくれる人多いと思うし。
若い人にとってはustreamよりかニコ生のほうが実況しやすい。
詳しい内容
+---------------------------------+
+---------------------------------+
とにかくkaoriya先生の顔に泥を塗ってしまった事をまっさきに詫びたい。
https://twitter.com/kaoriya/status/715743835377111041
https://twitter.com/kaoriya/status/715774856474857477
とりあえず参考になりそうなページ
その他、個人的に引っかかる所。
実は個人で有料チャンネル解説してる人たちって皆企業のバックアップで申請してたりする。
ドワンゴさんだって無料で技術系チャンネルを開設したんだからいいじゃないですか。
http://ch.nicovideo.jp/dwango-engineer
AtCoderチャンネルだって瞬殺で開設が認められたんですよ。
http://ch.nicovideo.jp/atcoder
価値のある活動をしているvim-jpが認められないのはおかしいんですよ。
なんで風呂配信で金玉出した横山緑とか、チャンネル取得後1回目の放送でカメラに向かって放尿した野田草履がチャンネルを持てて、vim-jpがダメなのかドワンゴの中野運営長に問いただしてみたい所だ。
http://www.lancers.jp/work/detail/953274
【月額単価】①~60万(スキル見合い)②〜70万(スキル見合い)
【備考】
・PHPができてRuby on Railsを学びたい方歓迎
・新しい技術が好きな方歓迎
↑
でも地雷の臭がするんだよなあ。
これrailsができる人じゃなくて学びたい人まで範囲を広げて募集してるんだよね。
いやあ怖いわああああ。
単価も釣りだろう。
railsでIDE強制されたりしたらどうしよう。vimしか使えない。
つうかランサーズって派遣の求人出したらアウトなんじゃなかったっけ?
クラウドソーシングって他で相手にされないようなレベルの仕事を依頼して、無知が提案する。
月8000円で募集しているのですが、作業量に比べて安すぎるでしょうか。
http://crowdworks.jp/consultation/threads/4349
こういう裏技を使えばタダで納品物を手に入れられるという事例↓
https://www.lancers.jp/consultation/detail/1144
そもそも有名なクラウドソーシングサイトでは仮払い制度というのがあるのだが、仮払いされて無くても納品できてしまうというシステムがおかしい。
仮払いする前に作業するなじゃなくてシステム側で仮払しないと納品できない、納品物を確認できないようにするべきだ。
これは運営側の怠惰である。この欠陥システムによって報酬が支払われずに泣き寝入りしている人達がいるっていうのに。
業務委託とはいえ、自分でその単価で出来もしないようなことを他人にやらせようとする人の神経が理解できない。
厚生労働省も本腰で何かしらのルール作りをしたほうが良いだろう。
クラウドソーシングでお仕事をしなくても相談室を眺めるだけでニュースにはならないネタが流れてくるのでチェックすると話のネタにはなる。
ランサーズの相談室 http://www.lancers.jp/consultation
2013年のShougo君の記事が1ページ目に表示されたから見たけど、2016年のVimのテストフレームワーク界隈ってどうなの?
変わってないの?
誰か詳しい増田くん教えて
https://github.com/Shougo/vesting/wiki/Test-framework-for-Vim-scripts
コマンドラインからVim ファイル名(該当ファイルなければ新規作成してくれる)
Escでノーマルモードに入る
ノーマルモードで:wで保存
保存して終了ならノーマルモードで:wq
保存せずに終了ならノーマルモードで:q!
nanoってUbuntuなんかで標準になってるエディタだよね?
Firefox の Vimperator っていうアドオンで、ブラウザの操作をすべて Vim にしてネットサーフィンした
vimにそこまで幼稚な奴はついていけない、それだけの話
正直「未経験でも数ヶ月でエンジニアに!」という記事自体がハズレがほとんどという印象があるけど、プログラミングに興味を持ってくれているのは嬉しい。
ただ、あの手の記事はPR目当てなことがほとんどなので、あまり当てにしない方がいいと思う。
「プログラマが知るべき10の〜」といったものもあるけど、ひとつも知らなくていい。少なくとも初心者の頃は。
vim は非常に良いエディタだと思うが、初心者向きではないのでお勧めしない。
無料で使えるものとしては atom あたりがいいんじゃないかと思うけど、好きなエディタがあるならそれでいい。
git や github は確かに超重要なんだけど、これもまともにプログラム動かないうちは手を出さなくていい。
プログラムに限らないけど、何かの学習ってのはひとつのことがとりあえず満足にできるようになるまで手を広げない。これが重要。
参考書もあれこれ買ってしまう人がいるけど、せいぜいひとつふたつに絞ってじっくり何周も繰り返した方が良い。
それと、他人は関係ないので成長の早い他の誰かのことは気にしない。
運動神経良くてどんなスポーツでもすぐこなせる奴ってクラスに一人はいたよね?彼と増田は違う人なので、比べても仕方ない。
実際のプログラミング学習では、かなりの人がファーストステップで脱落する。
増田のように、情報の取捨選択が出来ないし、今出来ないことを調べるためのキーワードがわからないので検索できない。
なので、本当の意味での完全独学ってかなり難しい。
じゃあどうすればいいかっていうと、実際にメンター役がいてプログラミングを教えてくれる環境がやはり一番。
有料のスクールはさすがにそうそう手が出ない値段だけど、無料や薄謝で開催している初心者向け勉強会もある。
独学じゃなくなるけれど、セカンドステップやサードステップまで一気に行けるとだいぶ楽。
あとこれはRuby on Rails 限定になるけど、Rails Girls という 不定期開催のワークショップで使われている教材を使うのもいい。
「もっと効率のいい学習法があるんじゃないの?」「もっと簡単にマスターできるんじゃないの?」と思って情報漁っているのなら、
今すぐそれをやめて、プログラミングの勉強だけに時間を割いた方がいい。
もちろんモチベーション維持のために目先を変えたりするのは構わないんだけど、初心者のうちは新しい情報仕入れても活かせないし、混乱するだけだからね。
増田のように苦労しながらも頑張っている人をみると、すごいな、と思うよ。
こちらは仕事だから当たり前にやっているけれど、増田はそうじゃないからね。
応援しているので頑張って欲しい。
人が少ないのか荒れないので質問と回答が成り立っている。
ム板のJavaスレやらWindows API系のスレは荒れまくってる。
もはや何のスレなのかわからないほどに荒れまくって過疎ってしまった。
どんな分野でも使える人が多くなるとやっぱり荒れる。
今はコミュニティーの多様化によって、2ちゃんねるでプログラミングの話題をする時代ではなくなった。
Yahoo知恵袋ってさ人を見下すような喧嘩腰の回答者いるよね。
ひどいカテゴリはPHP、Linuxかな。他はあんまり覗いてないからよく知らない。
初心者がびびってるのか面倒くさいのか無理やりベストアンサーにしてるケースとかもあるよね。
ただの説教とか、ググレカスとか、こんなものは回答じゃないんだよ。
回答になってない文章を世の中に出荷しないでほしい。
無理に回答でもない文章を書き込まなくてもいいんだよゴミになるだけだから。
飽きたからもう見てないけどさ。
人が増えればコミュニティーも荒れるだろう。
荒れたら閉鎖的にならざるを得なくなる。
「未経験でも数ヶ月でエンジニアに!」とかいう記事をよく見るわけで。
初心者向けweb開発記事のブックマーク数を見ていても人気なのが目に付く。
やはり何だかんだで「面白そう!」とか「こういう仕事やりたい!」っていう人が沢山いるんだなと実感する。
就職する事を目的にしていなくとも、趣味でプログラミングを習得しアプリ開発をしている人も多数目に付く。
素直に「凄い」としかいえない。
当人の勉強方法が優秀なのか、はたまた開発者との繋がりがあったりするのか検討も付かないが、まったくの素人なのにあれよあれよと成長し作り上げてしまう彼らの速度に驚かされる。
情報さえ得られれば未経験でも簡単にスキルが身につくのかと思いきや、実際そんな甘い話では無いわけで。
自身も興味はあったので、動画学習サイトなどを参考にウェブサイトを作成してみたのだが、しょうも無いところで動作が不安定になってしまったりと全くといって良いほど成長が無い。
つい先日もvimについての記事を見て、「将来的にはこのエディタを選んでいた方がいいのか」とvimの操作練習で数日過ごしていた。
未だにエディタの選び方で右往左往している自分は何をしているんだと思ってしまう。
サービスなんかでもそうだ、「GitHubとかいうのも知らないといけないのか!?」と登録はしたものの利用はしていない。
自分に必要な情報と、覚えなくてもいい情報の取捨選択が出来ていない。
膨大な情報に目を通して、「あれはやっておいた方が良いのか!」と時間を取ってしまう。
「ある程度」のレベルに達すれば、必要な知識を持ち合わせているから解決方法を推測して円滑に進められるようになるんだろう。
そこまで達するための、初速が上がらない。
必要な場所が理解できている初心者は、数ヶ月で形となるモノを作り上げる程の力が発揮されているのだろうなと。
ましていとも簡単に成し遂げている彼らを見てしまうと、同時に虚無感が襲ってくる。
人のやり方しだいで可能性が広がる作業だからなのか、その膨大なやり方に自分は翻弄されている。
確かにプログラミング自体は楽しいし、作りたいモノがあるからそこを目指しているわけだけども、そこに到達するまでの手段を得ることが目的になっている。
はたまた、実際のプログラミング学習はこんなものなのだろうか?
予想以上の助言の数々に衝撃を受けた。
まずはこのような発言に反応していただいた事に感謝を申し上げます。
コメントなどからざっくりと判断すると次のような改善策が浮かんだ。
・目標を明瞭化する。
・むやみな情報収集をやめる
・小さな完成を積み重ねる。
・有識者との繋がりを持つ。
学習においては初歩的な事なのだろうが、地に足が着かない状態で学んでいた自分にとって指標となる部分が出来た。
独学という部分に特段こだわりがあったわけでは無いので、これからはどうにかこうにか交流の道も増やしていこうと思う。
一番の問題は大量の情報にとらわれ、学習難易度を自分で上げていた部分かと。
まずは最小限の作業環境に絞り、必要に応じて継ぎ足して行く事を心がけよう。
最初から全篝火最大にして巡回しているようなものだなと。人間性が足りなくなるのも納得。
そうすれば、以前よりも大量の情報に飲み込まれず、自身の望む情報を得られる状態に進化している。
という形で良いだろうか。
語るだけなら簡単だが、現状闇雲に勉強するよりは可能性が感じられる。
この形で行動を起こしてみよう。
現状、プログラミング以前の学習態度すら未熟な部分があるが、今回の皆様からの意見で気付かされた点、参考になる知識は多数あった。
思い違いを起こしている部分もあるのかも知れないが、今までの不明確な道筋よりはずっと進みやすそうだと。
何気ない発言のつもりだったが、わざわざ記事をまとめてくれた方まで居たのには驚いた。
自分に合った情報提供者がいる事が、これ程大きい事なのかと実感致す。
言葉足らずではあるけれど、本当に皆様忙しい中ありがとうございました。
ぼくの場合はオムニ補完とコードチェックとコメントアウト機能の3タイプが必要だ。
コードチェックはVimでやらなくてもいいんだけどquickfixでさくっとエラーの場所に飛びたいのでsyntasticは外せない。
補完についてはtern for vimとかjava-complete2など特定の言語に特化したもの。
補完自体の機能はVim本体で十分強力だからneocompleteもyoucompletemeも入れてない。あいまい検索ができるのは便利だと思うけどね。なくても困らない。
そして次の優先度としてVimにバンドルされているVimファイルでは物足りない機能を補強するプラグインをインストールしている。
pythonの場合だと標準のインデントではへんなインデントになるのでhynek/vim-python-pep8-indentを入れている。
プラグイン管理の楽がしたいのでvim-plugを使用している。
syntax系はこだわりがないので一切入れない。
大切なことはそのプラグインを入れなければいけない理由が言えるかどうかってこと。
パフォーマンスに影響ないなら気にせずにどんどん入れてもいいと思う。