読者です 読者をやめる 読者になる 読者になる

Knooooooooob

雑な自己満足を残していくブログ 年度によってテンションが違うっぽい

jsのmap関数

['10', '10', '10'].map(parseInt);
>>> [ 10, NaN, 2 ]

ってなるのはわかったんだけど mapがparseIntにどんな風に引数を渡してるんだろうって思って3分ちょっと手を動かしただけの話です

['a', 'b', 'c'].map( (a,b,c) => { 
  console.log(`${a} ${b} ${c}`); 
});
>>> 
a 0 a,b,c
b 1 a,b,c
c 2 a,b,c
[ undefined, undefined, undefined ]

ちなみに4つ目の引数は undefined でした. developer.mozilla.org 読んだけどよくわからなかったのでわかっていきたい, あともうちょい効率の良い知る方法あったんじゃないかなとか

大学生から始めるプログラミング,技術系バイト

この記事は UEC Advent Calendar 2016 の14日目の記事です!昨日の記事はimaha_sleepのソシャゲの課金 でした!

imaha1213.hatenablog.com

www.adventar.org

初めに

この記事の対象読者は

電通大に何かしら技術的なもの(ex. プログラミングに興味があってやってみたい!)

を求めて来たけど

「何すればいいの?」「"興味はあるけど"自分には到底無理だ...」

とか考えてる 学部1~2年生 ぐらい向けの記事です!(3年以降はよく知らないけど何が必要とかぐらいはわかっていると思ってます)

あくまでプログラミング歴も技術力も無い,しがないエセプログラマ学生が書く記事なのでっょぃ人は温かい目で見たり間違ってたら めっちゃ優しく 指摘していただけると嬉しいです:pray::bow:

かなり読みにくいですがよろしくお願いいたします.

プログラミングについて

短いです.

正直言うとどうやって学べばいいのか僕にもわかりません...(誰か教えて)

ですが,何とかいい感じの道筋を見つけるための手がかりになればと思います.

人の使い方

知ってる人から教わるのが一番早いと思うのでここではプログラミングを自分より知ってそうな人にどうしたら聞けるかについて書きたいと思います.ただし聞き方があって

「プログラミング教えてください!!」

よりも

「Python教えてください!!!」

とかの方が断然いいです.

つまりは具体的にどういう所で詰まっているのかっていう質問をしろってことですね.UEC Advent Calendarだし基礎プロで触れたことぐらいはあると思うので本当に初めに一歩とかは省略します.

目標設定

例えば「Twitterクライアント作りたい!」とか「Webサイトを作りたい!」とか具体的な目標があると捗ります.

ただ,何をするにしても基礎的な概念(変数,型,配列,クラス,for,if,etc...)は必要なのでそこは好きな言語で学びましょう.

C言語で言うならポインタ前ぐらいまでは入ってると理想的です.そうですね,具体的に言うとここの13番くらいまで理解してると良さそう.

何をするかにもよりますが,大抵はオブジェクト指向言語(Java, PHP, Javascript, Python, Ruby etc...)でやるんじゃ無いかなと思ってるので別途クラスとかも学んでください.

マーケティングをするわけじゃないんですけどこの本とかわかりやすかったです.

スッキリわかるJava入門 第2版 (スッキリシリーズ)

スッキリわかるJava入門 第2版 (スッキリシリーズ)

windymelt.hatenablog.com

Pythonはいいぞ.

プログラミング関連知識

コンピュータリテラシーの内容ぐらいのコマンドは知ってるといいです.sshできますとか言うともう大丈夫です.

gitとかはcloneとかpushとかしかできないにしろ知っておくに越した事はないです.

分からないにしても「あ,このツールの名前は聞いたことある」とか「何するかなんとなくは分かる」とかあるだけでも面接相手を「オッ」と言わせることはできます.

未経験者向けの技術バイトの探し方

思ったよりも電通大生にそもそもプログラム書いてバイトしたいって人が少ないかもなので需要あるかどうか分かりませんが勝手に書きます.

1. コネ

安定ですね,情報を聞いて軽く面接して即入社2コマとかもよくあります.が,これだと身もフタもないので...

2. 自力で探す場合

探すと言っても生協前の求人を見たりマイナビを見たりして応募をするので他のバイトと何が違うんだって話ですね. careerbaito.com だと色々見つかる気がするのでオススメです(マーケティングじゃない(2回目)) .

以下は自己解釈会社判定tipsです.

  • 高い時給を出すからといってレベルの高い内容を要求するわけでもないし,むしろ会社としてキッチリしてるところがあったりするので日和らずに.

  • Slack or gitを導入してない企業には気をつけましょう.(知り合いがクソクソ言ってた)

  • 幅広いことができる <-> 専門の人手不足なので自分にかかる仕事量が多い(長所短所あり)

リモート勤務可の所は最初は止めておいた方がいいかなぁとは思います.家でもバイトできるのはものすごいメリットですが,例えば

  • バイト時間外にいきなりSlackから連絡が来て対応してくれ(突然の作業なのでタイムカード云々の邪念が混じる)
  • わからない所が出てきた時に気軽に聞けない

前者は企業によりますが, 後者はこの記事を参考にしようかなーって考える人には厳しい所があるのではと思っています.

いい面接について

バイトにおいて雇われるかどうか一番の鍵である面接についてです.「終わりよければ全てよし」というように面接よければ大体受かる気がします.

「自習で何かしらのプログラミング言語チュートリアル触ってるけど,サービスとかを作って公開したこと無い人」を想定しています.

サービスを作って公開してたら受かると思います.

さて,「自習で何かしらのプログラミング言語チュートリアル触って文法とかはわかるけど,サービスとかを作って公開したこと無い人」はどうするかについてなのですが想定される質問から考えましょう.

まず自己紹介からですね,ここが一番大事です.

大学3〜4年生を雇う際には何ができるかを重視しますが,1〜2年生だとやる気重視の所が多いです.

未経験でも可みたいなバイトを選ぶと思いますが尚更で,それまでプログラミングやったことありません!みたいな人でも雇われる事が正直あります.

将来どんな事を目標にしてるか,とかも聞かれると思うので想定しておいてください.

接客業とかではないので面接中に緊張とかはしても多分大丈夫ですが,素で話せるとお互い仕事してみたら「こんなはずじゃなかったのに...」って事が減るので素で話せるようにしましょう.

分からないことは分からないってキッチリと答えましょう.変に見栄を張ってもしょうがないです.分からない事をちゃんと面接中に伝えずに実務に取り組んでも積み重なるだけです.素直に答えましょう.それで落とされるなら業務中にもいつかクビとかそんな感じのことになります.

あと,触ったことの無い言語についての業務になるケースも多々あると思いますがここまで読んだ人ならきっと身につけるお気持ちはあると思うのできっちり表明していきましょう,未経験は気合で押し切るのが大事です.

受かったら

おめでとうございます,あなたのこれから書くコードはきっと金になる価値があるものです.自信を持って仕事に取り組みましょう.

分からない事がたくさん出てきてググって英語を読む機会が生まれると思うので諦めて読みましょう.

StackOverFlowとかteratailは意外と捨てたもんじゃ無いです.詰まったら聞いてみるのも良さそう.

いきなり本格的な業務をドーンってくるケースはそうそう無いです,どこでも1ヶ月くらいその言語やフレームワークに慣れるためのお勉強時間をくれるのでしっかり学びましょう.学んでるのにお金が降ってくるっていう早々ないケースに出会えます.(すごい)

あと無理はしないようにしましょう.この業界のバイトはシフトの急な変更にも対応してくれる会社が多いと思うので(体感), 中間テストがあって〜とかなら前日休むとかしっかり単位を意識しましょう(1敗)(再々履)(別にバイト先が悪いわけじゃ無い)

バイト,プログラミングについての自分語り

以下,自分のアルバイトとプログラミングヒストリーです.

高校1年の時からコンビニバイトをやってて「プログラミングにほんのちょっと興味はあったけどネトゲの方が5億倍楽しいい〜〜〜〜〜〜〜〜」ってなってたので技術には一切触れませんでした.

まあそんなこんなで電通大のK課に入学してから新しいバイトを探し始めました.(家からちょっと遠かったので高校のときやってたバイトは卒業と同時にやめました)(あと3月に電通大落ちてK課程に受かるまでの間も1個始めて1ヶ月で辞めた)

K課は知っての通り(?)夜間主なので時間が合わないバイトが多く,1年生の5月で10回ぐらいバイトの面接をして全部落ちたとかありました.めっちゃ履歴書かきました.

そこで大学になってから知り合った技術強いマンの某同輩が 「手書きの履歴書大変そう」「技術系のバイトは時給1xxx円もらえるよ」 みたいな事を言われて「絶対技術系バイトするからな〜〜」ってこの辺りで強い意志を固めたのもあります.

f:id:Knium:20161213225728p:plainf:id:Knium:20161213225931p:plainf:id:Knium:20161213225732p:plain

燃やす.

まあそんなこんなでコンビニバイトに受かってMacBookを買ってから本格的にプログラミングを学び始めた気がします.

学んでいくうちにコンビニで働いてる時間でプログラミングしたいなーってなったのでちょうど1年前ぐらいに技術系バイトを探し始めました.

最初はRubyを書いてて基礎科学実験のレポートを書く際にf:id:Knium:20160123223609p:plainf:id:Knium:20160123224538p:plain LaTeXのコードを計算して標準出力させるコードを書いてたっぽいです.なんかRubyの割に長いし汚くない?????

これを基礎科学実験の教科書とか持って行って面接行ったら気合枠で採用された記憶があります,懐かしい.

そして色々あって(なかった)そこと掛け持ちして今のメインのバイト先へ,技術バイトの経験があるとすんなり受かるケースが多いように見受けられます.

まあそんなこんなあって最初の技術バイトをやめて今2社掛け持ちして来年の時間割を組んだらどっちも時間合わねえってなってどうしようというお気持ちです.

いいお仕事募集中.最近,逆に二郎でバイトしてみたいけど絶対某巨大掲示板とか青い鳥で有名なSNSとかでヘマしたら晒されそうで怖くね??って気持ちありなので今のバイト先どっちか融通効かないかなぁとか思いながら毎日なんとなく頑張ってます.

終わり

明日, 15日目のUEC Advent Calendarは36kyoの「わくわくしようぜ」です.

12月1日に勢いで立てたカレンダーですが,埋まってよかったです.みなさんの記事をワクワクしながら毎日過ごしてます.

駄文の積み重ねでしたが読んでいただきありがとうございます.

www.adventar.org

We Are UEC !!!

この記事はUEC Advent Calendar 2016の1日目の記事です.

最初は みんな知らない電気通信大学 ってタイトルで投稿する予定でしたが電車内でカレンダーを見てて,全然埋まってない事のまずさを感じたので アドベントカレンダーとは について書いていきたいと思います.ちなみに参加するのは初です!!

アドベントカレンダーとは

アドベントカレンダー - Wikipedia

クリスマスまでの期間に日数を数えるために使用されるカレンダーである。アドベントの期間(イエス・キリストの降誕を待ち望む期間)に窓を毎日ひとつずつ開けていくカレンダーである。すべての窓を開け終わるとクリスマスを迎えたことになる。

電通大生が無事にクリスマスを迎えれるのだろうか....?てか来ないのを望んでるの多くない...?

アドベントカレンダーは、窓を開くと写真やイラスト、詩や物語の一編、チョコレートなどのお菓子、小さなプレゼント等が入っていることが多い。

チョコとかはもらないけどふぁぼイイネとRTがもらえるので,ご気軽に参加お待ちしてます!

偉大なる過去のUEC Advent Calendar

www.adventar.org www.adventar.org www.adventar.org

1日目の記事は以上です,明日はneotasoさんの記事です!

最近の頭の中を無理やりにでも図にして整理したい

自分のための記事です. f:id:Knium:20161130004744p:plain f:id:Knium:20161130004750p:plain

2枚目とか本当にひどくていつも考えてコロコロ変わってる気がする,自分が焦っていてすぐに結果を出そうとしていて勉強してみるとすぐ集中が切れてよくわからない. 頭痛いので風呂入って寝

普通に日記

なんかSwift書いた f:id:Knium:20161115231338p:plain f:id:Knium:20161115231349g:plain Xcode難しいしSwift難しい

あとUSBを何故か認識しないラズパイをマウスなしでセットアップしようとした

Raspberry Pi3 Model B にNOOBSを使ってRaspbianをディスプレイ無しで自動インストールしてみる。

録画サーバ欲しいなぁって思ってたので前に3TBのHDDを買っていい感じに作ろうかなぁって思ったのにUSB認識しないなら外付けのHDD意味ないじゃんって気づいたので負け

しんどい

Swift3始めました

なんかiOS開発をやることになったっぽいので忘備録

 日本語の記事少なくない?

なぜ

  • 某社で某々あったらなんかSwiftをやる話になった

覚えておきたいこと

引数名無しで渡したい時は_をつける.

func squareArea(_ width:Int, _ height:Int) -> Int {
  return width * height
}

squareArea(3,4)

関数名が同じでも引数名が違うとオーバーロードになる.(オーバーロードする?オーバーロードできる?)

func calc(a:Int, b:Int) ->{
  return a + b
}

func calc(c:Int, d:Int) ->{
  return c * d
}

こういう時無駄にどうでもいいことばっか思い浮かんで実験したくなっちゃうよね f:id:Knium:20161113005734p:plain

ジェネリクスな関数というものがある.

ジェネリクス | Swift言語を学ぶ

わかりがあった

func bigger<T>(val1: T, val2: T) -> T {
    return val1 > val2 ? val1 : val2
}

でTが型を指すらしい,例えば Int のbigger()とfloat()版のbigger()をオーバーロードさせずにこれで同じことができるっぽい,すごい

これでも遊んでみたかったけどf:id:Knium:20161113011021p:plain って怒られてググったけど

stackoverflow.com

よくわからないけどジェネリクスな関数で引数に対して演算子を使う時はちゃんとそれが適しているかどうかコンパイル時にはわからないからできないってことはよくわかったのでそのうち理解していきたい

クロージャは名前のない関数のオブジェクト, 未だによくわからず

 5.. <10 # CountableRange(5..<10)
Array(5..<10) # [5, 6, 7, 8, 9]

辞書は当然キーにも型が決まる.

ねむいおやすみ

f:id:Knium:20161113024145j:plain

おいしかった

Falcon punch!!

PythonでfalconというWebフレームワークを始めました.

日本語での資料なくてしんどいけどドキュメントの英語自体は平易なので読める気がする.

RESTとかWSGIとかわからないけど,なんとなくかける気がする.

 $ curl knium.net:8000
{
  "remote_addr": "122.133.212.52",
  "protocol": "http",
  "user_agent": "curl/7.43.0"
}

こんな感じのよくありそうなのを返す奴を雑に作りました.

JSONとかで返すのとかは向いてるけどHTMLをレンダリングして返したりとかはないので普通のWebAppを作りたいときは素直にDjangoやFlaskを使おうねって知見を得た.

import falcon
import json

class Ifconfig(object):

    def on_get(self, req, resp):
        status = {
            'protocol': req.protocol,
            'remote_addr': req.remote_addr,
            'context_type': req.context_type,
        }
        resp.body = json.dumps(status, indent=2)
        resp.status = falcon.HTTP_200

api = application = falcon.API()
content = Ifconfig()
api.add_route('/', content)

あと先週土曜に藍井エイルのライブの「Eir Aoi 5th Anniversary Special Live 2016 ~LAST BLUE~ at 日本武道館」へ行ってきました.

f:id:Knium:20161111222831j:plain

オタク棒初めて買ったり調布祭以外でやるライブに初めて参加したのでめっちゃ楽しかった〜〜〜〜

欲しい