嗚嗚喔學習筆記

搜尋此網誌

2016年7月13日 星期三

C# - Ref Out

Ref , Out 都傳遞位置參考
Ref 一定要事前給值
Out 一定要 function 離開前給值

程式碼:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int number = 100;

            Console.WriteLine("number = {0}",number);

            TestRef(ref number);

            Console.WriteLine("number = {0}", number);

            TestWithoutRef(number);

            Console.WriteLine("number = {0}", number);

            int outNumber ;

            TestOut(out outNumber);

            Console.WriteLine("outNumber = {0}" , outNumber);
            

            Console.ReadLine(); //Pause

        }
        
        private static void TestOut( out int nubmer )
        {
            nubmer = 1001;
        }

        private static void TestRef( ref int number )
        {
            number = number + 1;
        }

        private static void TestWithoutRef( int number )
        {
            number = number + 1;

            Console.WriteLine("In TestWithout number = {0}", number);
        }
    }
}

結果:

重結果可以推論出 都是傳參考值

2016年7月12日 星期二

好文連結分享

Design pattern - 工廠模式
https://rongli.gitbooks.io/design-pattern/content/chapter1.html

C#委託事件
http://blog.xuite.net/autosun/study/32614006-%5BC%23%5D+%E4%BA%8B%E4%BB%B6%E8%88%87%E5%A7%94%E6%B4%BE%EF%BC%88Delegate%EF%BC%89

2016年6月13日 星期一

Mac 刪除 ./MoblieBackup 救回你的容量

step 1.

打開終端機(terminal)


step 2.
輸入指令:
sudo tmutil disablelocal
step 3.
輸入密碼:  一般來說會是你的開機密碼

step 4. 重新開機

2016年5月31日 星期二

2016 面試紀錄

2016/5/30 ~ 2016/6/9 開始面試紀錄~~
私校大學畢業 大學都在玩 讀書時間大概1/4吧
目前的年資 1.5年 玩過的東西範圍比較廣 
Android , Asp.Net MVC 5 , Corona , OpenCV 
(學而不精啊~~)

1. 元細胞 遊戲工程師
進去先考Unity的基本語法 跟 資料庫 演算法(英文考題..)
因為我碰Unity 才不到一個月時間
所以語法根本沒記
都GG 一堆不會寫
有實戰經驗的人
應該會是頗簡單的~

考完試直接打槍我 連面試都沒有哈哈~

當場被拒

2.TutorABC ASP.NET MVC
有點忘了考啥
記得有考機械公敵裡 機器人的條約 做一些申論邏輯的題目
面試問問專案經驗
專案多大資料庫多大之類的
感覺應該不會上...

無聲卡

3. 匯豐國際資產 ASP.NET MVC
面試沒有考試 基本是只是在聊天 介紹公司之類的~~

Offer Get N+5

4. 天空數位有限公司 ACER ASP.NET MVC (駐點工程師)
直接去Acer 面試
面試題算很簡單 簡單的排序 之類的題目
無聲無息~

5. 天空數位有限公司 知名旅遊業ERP (駐點工程師)
面試過程 主管看起來蠻怕的 覺得剛出社會的人不好用之類的~
聊完之後 禮拜一去 試工 一到兩個禮拜 再決定要不要給Offer
有點抖抖的....
後續來電說不用試工了

Offer Get N+14

6.知名旅遊業 軟體工程師
跟上面同一間公司面試....
看來是他有外包專案出去的樣子
做一些性向測驗 比較特別是 題目 1,4,9,10
然後中間填入 5 ,3, 9  就是填入個位數的答案
之後等通資一個禮拜吧~

無聲卡

7.緯德科技 JAVA初階工程師
這天我遲到了 半小時 ...
後來一個女生面試我 我感覺得出來他想要請我離開
大概隨便說一下 JAVA的經驗 我是沒有很多
大概10分鐘後 就被請走了...

當場被拒

8. 事必得 Android 工程師
來這邊看了一下裝潢 感覺很好很漂亮
重點是: 我看到 IMAC 電腦好多台 覺得很厲害~
主要也是聊聊天 感覺他們老闆看起來很年經有朝氣 
好像成立兩年多而已吧
總之印象還不錯 我開了 N+8 的條件 保13
等禮拜一的通知會不會上了~

無聲卡

9.瑞訊智能 Android 工程師
我在去之前要查地址 結果發現已經結束徵才了...
但我還是去面試了 之後就聊聊Android經驗
他們介紹自家產品 然後開個價他們說要再討論
然後就結束了~

無聲卡

10. 鈊象電子 遊戲軟體工程師
一大早去面試 差點又遲到...好遠
一進去先筆試 性向測驗 考邏輯測驗 作業系統 類似計概的感覺 
C++ C 有考一些指標 迴圈之類的..
一整個考超爛 後來問問我之前做過什麼 
我說我寫lua 他們說他們不缺lua 
後來聊到大致上分 技術面 跟 遊戲面 
技術就偏底層 C 語言要熟悉 
遊戲方面就是 Unity C#要熟悉 
後來面試說我兩邊都不行 .. >< 
過程中還提到我邏輯測驗考不好 100分大概60幾分及格邊緣..
然後就掰掰了 連第二面都沒有 ~

當場被拒

11.磁力線上股份有限公司 遊戲程式設計師
一早去一如往常又差點遲到...
一進去環境是我所有面試裡面最好的~ 一整個超心動!!
很像大學的感覺 有一些公共空間 很多的小間會議室~
然後人資也很NICE~
再來就寫基本資料 (筆試一小時)
筆試我覺得考題出得最好的就這家了
基本上都是考物件導向的觀念 (C#) 還有偏 "設計模式" 的考題 
而不是在考語法問題(我很討厭筆試考語法...因為我很容易忘記...)
(EX: 這段代碼有哪些可能隱藏的錯誤 請說明跟舉例 
基本上這些代碼是可以執行的 但就是設計模式的觀念跟問題) 
在實戰上很用得到的東西(全英文出題~)
這家很特別是沒有考邏輯測驗 性向測驗 智力測驗
後來主管來面試我 就聊天 基本上都是問觀念的東西 還有我多熟悉這樣
最後面試結果是說 我程式的基本觀念還行 但沒有到很熟悉
會再請人資通知我薪資福利的部分

過了很久大約兩個禮拜的時間
Offer get N+1 保14

12.台灣安麗莎醫療器材科技 Android App Developer
位在南港區 考試很特別面試官直接請我上機考
不過折騰了一下 最後還是用口說 筆寫的方式考
題目主要 C 資料結構 指標 這些東西 
是說我根本爛到有剩... 中間過程還聊了很久 
面試官也給了我很多程式的建議 人真的很好QAQ 
面試官比較特別是 很看重 大學CS的基本工
還問到我學校專題的東西
因為我是用OpenCV lib 來寫 Code 所以沒什麼難度
但就結果來說看起來還行 只能說lib強大....
這裡很收穫觀念的是說 我可以 Call lib兜出專題 
但沒有實作lib的能力
經過這場面試 讓我想到鈊像電子的面試一樣...
簡單說 C 去老老實實的從頭讀一遍吧....
不要再用Google寫程式了 這樣真的很不扎實

當場被拒

-------------------------------------------------------------------------

整整面試差不多兩個禮拜的時間,做些結論
中大公司: 筆試一定有 性向 智力 程式 有的沒的
      喜歡培養有潛力的新人(程式基礎好的人)
小公司:有時連筆試都沒 基本是就是要即戰力 對框架有多熟 語法多熟 有沒有作品

另外我對於學習新的框架 跟語言有新的看法

之前啥都碰
記得以前學校老師說的 要快速學會新技能
還是專精一點好 什麼都會 => 什麼都不會

以前我是直接先訂定目標 再去找方法來實作 多半是Google到底
之後學習過程 應該要先把基礎打好 範例程式打過一遍 把有什麼元件看掃過一遍
再來開始做專案 會比較扎實 不然面試真的會一直碰到鐵板 0.0


2016年1月25日 星期一

Sample Lua OOP(1)

創建一個
簡單的類別
功能包含

public function 
private functionc
constructor

程式碼:

程式碼: main.lua
local dog = require "Dog" --引入類別

local BigDog = dog.New( "Apple" , 10 ) --創建物件 

local SmallDog = dog.New( "Orange" , 4 )

BigDog:Bark()
BigDog:PrintAge()
SmallDog:Bark()
SmallDog:PrintAge()



程式碼: Dog.lua
local Object = {}

-------------------------------------------------
-- GLOBAL
-------------------------------------------------

function Object.New( name , ageInYears )-- constructor
 local self = 
 {
  name = name ,
  age = ageInYears 
 }

 -------------------------------------------------
 -- PRIVATE FUNCTIONS
 -------------------------------------------------

 local function GetDogYears( realYears ) -- local; only visible in this module
  return realYears * 7
 end

 -------------------------------------------------
 -- PUBLIC FUNCTIONS
 -------------------------------------------------

 function self:Bark()
            print( self.name .. " says \"woof!\"" )
 end

 function self:PrintAge()
     print( self.name .. " is " .. GetDogYears( self.age ) .. " in dog years." )
 end

 return self 

end

return Object

輸出結果:

1月 26 01:14:56.748: Apple says "woof!"
1月 26 01:14:56.748: Apple is 70 in dog years.
1月 26 01:14:56.748: Orange says "woof!"
1月 26 01:14:56.748: Orange is 28 in dog years.




2016年1月6日 星期三

產生唯一碼(GUID , UUID) (Lua 版本)


Guid 

主要能夠產生唯一碼 的原因就是樣本數夠大
有 2^128 種可能 

在真正隨機產生亂數的情況下 
幾乎不可能產生同樣的編碼

程式碼:

---------------------
--產生GUID
--範例:
--[[
 local guid = require( "Tool.Guid")

 print("guid.NewHex" , guid.NewHex())
 print("guid.NewLong" , guid.NewLong())
]]--

---------------------

local M = {}

--樣本數為 2^128
function M.NewHex()
    --隨機種子
    local d = io.open("/dev/urandom", "r"):read(4)
    local template ="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    math.randomseed(os.time() + d:byte(1) + (d:byte(2) * 256) + (d:byte(3) * 65536) + (d:byte(4) * 4294967296))
    return string.upper(string.gsub(template, "x", 
        function (c)
            local v = (c == "x") and math.random(0, 0xf) or math.random(8, 0xb)
                    return string.format("%x", v)
            end))
end

--樣本數為 2147483647
function M.NewLong()
    --隨機種子
    local d = io.open("/dev/urandom", "r"):read(4)
    math.randomseed(os.time() + d:byte(1) + (d:byte(2) * 256) + (d:byte(3) * 65536) + (d:byte(4) * 4294967296))
    return math.random( 1 , 2147483647 )
end
return M


2015年12月28日 星期一

三元運算子(Lua)

C 版本: (a>b) ? true : false 
Lua 版本 (a>b) and true or false

程式碼:

local a = 10
local b = 20 

print("a>b" , (a>b) and true or false )
print("a<b" , (a<b) and true or false )
print("a==b" , (a==b) and true or false )

輸出結果:
a>b false
a<b true
a==b false