2024/12/25

入園須知: 易春木軟體面試筆記

筆記轉型成部分不對外開放。
閱讀請繳交3,280元,您就會收到授權一年的邀請函Email,以及紙本重點筆記郵寄給您!

匯款帳號請來信詢問, 站長信箱:eeepage@gmail.com
匯款後,請告知您的帳號後三碼與您Gmail作為帳號,易春木會寄出權限開啟之邀請函,三個工作日內可開啟權限。
(或透過蝦皮賣場:易春木《軟韌體工程師面試重點與考題》筆記)
軟體/韌體工程師《面試重點與觀念複習》 
* 使用C, C++, C#, JAVA, Python 透過筆試題目建立資工腦 
* 資料結構, 演算法, 作業系統, 程式語言, 計組硬體, 網路 

目前已陸續遷移移至 http://eepsw.blogspot.com/ 
* 不定期陸續發布新文章, 增加軟體方面的knowledge 
* 近期規劃: 線上閱讀版將陸續新增 AI 內容(deep learning / model training / AI inference ..etc) 


--------- 
謝謝鄉民PTT發文推薦, 小編戰戰兢兢持續維護品質 持續加入更多程式設計的面試重點!
任何問題或考題都歡迎討論研究, 祝大家求職順利!!

2017~陸續更新:

整理得很棒喔,獲益良多! 感謝分享及整理!!!

感謝重點整理, 拿你的東西複習很好用!

感謝版主,獲益良多!! 尤其是bit operation的部分!

恭喜Daniel 錄取Garmin, 也十分感謝您的分享喔!
--------------------------- 
您好,
非常感謝您的網站讓我複習OS跟演算法,並且順利找到自己喜歡的工作。 這裡是我的工作面談一系列的心得文,供您參考! 

------------------------------
恭喜Cinnating好多間公司Offer Get, 也十分感謝您的分享推薦喔!!!
工作面試心得(QNAP、緯穎、正文、 工研院、啟碁、全景、智易、CHTTL) 

------ 
 * 增加更多作業系統:多程序與多執行緒的觀念與實作控制觀念, 這部份真的很常問, 測試對於OS作業系統與多執行緒的熟練程度, 順便知道面試者的程式設計整體思路 
 * 回應學員問題&更新考題內容 *增加撲克牌的基本發牌/出牌排型程式碼, 現場考試或上機考會常問到, 建議應知道演算法邏輯! 

 2017.07 
Q: 在第三題時做strcmp函式那題中,如果兩個參數char a[] 和 b[] 是使用如下宣告: char a[4] = "1234",這樣的話就不一定會有'\0'在array的最後面,請問這樣的話該如何處理? 
 A:本題是要比較字串, 所以基本上字串結尾必須要有一個「\0」字元作為結尾 如果不是字串的話, 則不適用strcmp 若要比較array不是比較字串的話, 也就是說沒有「\0」字元作為結尾 改寫為
len_a = sizeof(a)/sizeof(char);
if(i == len_a){
    printf("a[%d] is out of array length.\n", i);
    break;
}
但其實已經偏離題目的基本設定, 共勉之 


 Q: 第40題中的第二個while loop是否是多餘的呢~? 
A: 不是多餘的喔! 

 Q: 您好 : 下面這題的解答似乎怪怪的 
1.2 32-bit machine用C語言對位址 0x00005000 的第三個bit設成0,第五個bit設成1。 
A: 謝謝提醒!! 已修改 

 Q: 你好,第十題中的資料型別表 unsigned char 數值範圍是 0~255吧?(非0~256) 
A: 謝謝提醒!! 已修改 


 2017.10 
 補充一題: 超微公司題目 
Q: 假設有一計算機有48KB記憶體,若第一個記憶體的位址為0000(16進位),則最後一個記憶體的位址為何? 
A: 48KB → 48*1024 = (2^5+2^4)*2^10 = 110000(2)*10000000000(2) = 1100000000000000(2) = 0xC000(16) 所以最後一個是0xBFFF 0xC000 -1 = 0xBFFF 


 補充一題常問的Python問題: 
Q: 請問 Pthon程式語言的 list 與 tuple 有什麼不同? 
A: 這兩者最主要的不同: tuple 是無法被修改的。 
串列list是一連串順序性的元素組成, 可以被新增,刪除,修改! 補充一題mutex互斥鎖問題: 

Q: Windows driver 怎麼做到基本的mutex 互斥鎖? 
A: 最簡單的方法是使用Event方式, Threads是常見的並行處理, 但多threads之下有時候必須做好同步, 否則會出現異常! 

第一種情況: 兩個threads 共用某一資料, 但同時間只能一個thread存取 
第二種情況: Thread_1 要使用 Thead_2 處理完成的資料, 所以必須要等待Thead_2 

以下舉例兩個thread之間的作法 (from Neeraj Vaidya): 
可以手動修改程式碼安插這些API: 
 CreateEvent: 建立一個Event 
 SetEvent:設定Event使其狀態為set, 用以表示完成 
 ResetEvent:清除Event使其狀態為Reset, 用以表示未完成 
 WaitForSingleObject()函數: 在必須等待的地方, 停在此處等著Event被設為set狀態
#include <windows.h>
#include <iostream.h>

/*************GLOBALS************/
HANDLE hThread1 , hThread2;
HANDLE hEvent1 , hEvent2;
int  g_nShared = 0; /* Global variable which is 
        going to be accessed by both Threads */

DWORD WINAPI Thread1(LPVOID lParam)
{
 while(1)
 {
  WaitForSingleObject(hEvent2,INFINITE);   
  ResetEvent(hEvent2);
  cout << "Thread1()::g_nShared = " << ++g_nShared << endl;
  SetEvent(hEvent1);   
 }
 return 0;
}

DWORD WINAPI Thread2(LPVOID lParam)
{
 while(1)
 {
  WaitForSingleObject(hEvent1,INFINITE);  
  ResetEvent(hEvent1);
  cout << "Thread2()::g_nShared = " << ++g_nShared << endl;
  SetEvent(hEvent2);  
 }
 return 0;
}

void main()
{
 // The Events which synchronize the 2 threads
 hEvent1 = CreateEvent(NULL,TRUE,FALSE,"Event1");
 hEvent2 = CreateEvent(NULL,TRUE,FALSE,"Event2");
 
 // Signal both the Events...so that they're up for grabs before 

 // the threads are born!!
 SetEvent(hEvent1); 
 SetEvent(hEvent2);
 
 // The Threads are Brought to Life !

 hThread1 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&Thread1,NULL,0,0);
 hThread2 = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&Thread2,NULL,0,0); 
 
 while(1); // Don't let the Main Thread Die 

}


2018 ~ 
引用心得推廣 by: 
  HC 分享: 整理面試題目:易春木題庫類 軟韌體工程師面試重點與考題 
 mropengate 分享: 易春木 - 軟體/韌體工程師面試重點與考題- C語言,資料結構,演算法,以及OS作業系統..等題目(筆試考題) 
  zmcx16 分享: 專業知識複習:軟韌體工程師面試- C語言與OS作業系統 常見題目(筆試考題) 內容很豐富,因為資工的東西真的很多,裡面的內容可以幫你快速複習OS以及C語言相 關。 RTZU 分享: 這個網頁整理了很多面試時會遇到的不管是筆試/面談常常會被問到的問題 基本上很多考古題和計結資結OS演算法基本概念 這邊都整理得十分清楚了 推薦要去面試之前可以靠這邊的筆記惡補一下 


 2019/05~ 
感謝諸位支持,沒有再逐一列出,邀請函已陸續發送。小編也收到來自海外華人轉職的需求(美國科技業界),出乎小編意料之外,其實軟體科技公司不分台商日商美商歐商,都是同一系統的 Computer Science and Information Engineering. 先恭喜與祝福順利轉職。 

 2019/08~ 
恭喜 chi****ing, 雖然非本科生 在準備面試的時候覺得需要這樣一個系統的整理XD 謝謝! 謝謝易春木筆記,後來有找到喜歡的職缺了,感謝你! 

 2019/10~ 
如果是windows的 kernel mode driver開發, 務必熟記 windbg的指令與細節!! 

 2019/11 恭喜GJ順利錄取理想職缺, 心得分享如下:
來信試想告知目前已經順利得到這家公司的工作-香港商司亞樂科技亞太有限公司台灣分公司公司 https://www.104.com.tw/job/6kgem?jobsource=pda 之前的講義幫忙許多,也有另外拿到像是 QNAP、中光電、神準口頭offer等。總之感謝您的幫忙! 另外也寫了一篇medium的blog,告訴大家如何準備面試: 我是如何面試軟體工程師 若有人需要的話可以分享,為了也是回饋給大家,謝謝 GJ 2019/11/23
2019/12 ~ 為方便閱讀, 程式碼區改為預設密封, 只要點擊一下就會展開! 2020/02 恭喜Sak***順利拿到offer!!
版主您好 : 去年底已順利面試進入一線IC廠,感謝您詳細的筆記分享 !
2020/05 恭喜順利拿到offer!!
您好!謝謝你整理的考古題,幫助很大!此波面試有拿到以下公司的職缺:威達高科、安邁、致茂、聯陽等
2020/10 恭喜順利拿到offer!!
謝謝你的筆記,我已經順利拿到我想要的offer了,真的很感謝,裡面的資料結構那些講得很詳細,也剛好有被考到!
2021/06 恭喜順利拿到offer!!
我是前些日子有和您購買筆記的同學,很感謝你整理的內容,讓我在準備上有更好的方向! 我目前還剩幾個一兩個面試,但算是告一段落了,目前有錄取 synology、synopsys、MTK,都是我很理想的公司跟職缺。 不知道未來有沒有緣份在工作上遇到,再次感謝您!
2022/02 收到回應:
"謝謝版主,這幾天看了您的網站收穫良多,年後如果面試有上,會再分享心得" 加油加油! 
 
2022/04 
筆記與考題等基本功扎實, 建議可以多刷leetcode練習, 對面試當中的coding測試很有幫助! 

 2022/6 
收到回應:“最近面試告一段落,拿到工作offer,這陣子真的不是很好面試,機會都有但感覺審核的門檻變得很高,感覺錯過去年混亂的時間點,但我運氣不錯,一直都有面試機會。安霸,一面視訊,二面現場+考試,二面一路面到總經理最後offer get。整體考試,除了安霸考的很廣很雜,其他公司的考試內容與易大整理的相似真的受益良多。” 

 2022/6 
收到回應:“您提供的筆記很有幫助,讓我可以很快就把之前所學複習完。從今年4月開始投履歷後,結果拿到了聯發科、聯詠、群聯的SW offer,跟您分享。” 

 2022/7 
收到回應:“非常感謝您的筆記和協助唷,後來運氣很好拿到多家很好的offer,最後選擇聯發科的軟體部門!真的很開心呢!”


2023

新增了Complexity Analysis複雜度分析, 與binary tree內容, 純軟體公司會很重視! 新增C語言基本功, 韌體工程師必備 新增心態準備 新增5題面試考題於直接列出考古題1

新增C++考題關於STL於深度討論考古題2
新增Python教學
新增Leetcode實戰討論

——————–
* IBM, 趨勢科技, 微軟, Google, Amazon, ..等軟體開發公司都要線上考試 * 緊急寄出支援快要面試的學員!
* 小編從收到各位大大的來信, 就會著手整理印刷然後到郵局郵寄, 需要一定的時間, 請大家耐心等候喔, 謝謝大家不催好棒棒!
* 新增英文履歷範例檔, 讓大家快速簡便完成自己的英文履歷!

——————–

有學員提到若本身背景不是資工系所,該如何準備,是否需要找專題實作呢?

我覺得可以雙管齊下,韌體程式設計師的內功實力在於我們的這一整套教材,含演算法/作業系統/程式實作等,是重要的基本功,像是基礎,有了這塊才能幫助日後往上堆積更多技能。

而搭配硬體的專案經驗也是非常加分的部分,透過基本硬體經驗可以幫助在面試時與主管產生一種特別的共鳴,有點像『原來你也是這樣過來的』的感覺。

至於專案的選擇可以到天龍挑書本有附小電路板的,主題有8051單晶片設計or類似arduino的C語言實作,可以現場挑比較知道自己要什麼唷。共勉之~

--- malloc() 回應學員的說明: 不論有沒有加上強制轉換碼, malloc() 都是回傳被安排的記憶體位址 對, 它就是強制轉換型態, 依照底下的定義可以發現, 預設的回傳指標是 void* , 但是根據每次需要的型別不同就必須要轉換型別! 原始定義 : The C library function void *malloc(size_t size) allocates the requested memory and returns a pointer to it. void *malloc(size_t size) 參數: size − This is the size of the memory block, in bytes. 回傳值: This function returns a pointer to the allocated memory, or NULL if the request fails. 

 Q: Link-list範例第32-33行的過程,多建立一個結構指標是否可以省略,直接使用list結構指標來做即可?
       LL_NODE *p = list;  
       while( p->next != NULL){ p = p->next; } // 取得最後一個節點   
       p->next = node;  
A: 這裡會再新建一個p指標, 是因為要保留 list 作為 link-list的Head指標, 所以不希望list移動, 所以也有人把 list 取名為 Head, 就更易閱讀了, 表示這個指標就是這一串列的頭, 不會更改


 Q: 請問第12題設置a 的 bit3 或是清除a 的 bit3 #define BIT3(0x1<<3) /*二進未表示:00001000*/ 這樣是否是會改寫到第4個bit??
 A: 你說的沒錯, bit3即是第4個bit  



 2022/10 更新: 
回答學員來信討論的問題, 收到回應 "非常感謝,看了你解說,讓我茅塞頓開

"  問題(1) 關於link-list章節部分, 為什麼是回傳list而非tmp ? 
A:畫了以下三個時間點的指標狀態圖, 需要先了解各指標的用途: - list 用來回傳整條串列, 所以會固定不動指向第一個node - tmp 用來逐步移動, 將新的節點加入串列 - newNode用來指向最新的節點
所以為什麼要傳list而非tmp, 因為只有加入第二節點時候list與tmp指向一樣位置 之後就不同了 


  問題(2) 為什麼list 指向的位址沒有被更新呢? 
從代碼看起來, 你做空間配置的malloc是在 CreatNode(), 所以要回傳list這個指標才OK, 因為此處非call-by-address, 如果你要做到call-by-address的更新指標方式, 則必須在main就已經配置空間, 可以參考筆記的這張圖(程式碼內的變數與function pointer 在記憶體中的配置情況), 由main()內做malloc()動態分配記憶體, 如此一來 main()才知道變數p, 如果你是在別的函式作malloc得到的變數p, 這樣main()不會知道的, 除非你把別的p回傳assign給main()裡面的p 2023/05 補充: 趨勢科技有線上測驗可以選各種語言線上考, 大家可以多練習寫 leetcode 程式碼, 邊寫邊改, 有error再改! 自己練習時可以計時倒數感受看看! 


 --- 考考大家, 假設今天面試過程, 主管突然請您寫出 Linked list 基本功能: 
1. 資料結構宣告 
2. 空間配置 
3. 建立新node於list後面 
由於是當場考試, 不可能有機會再上網查, 只能憑印象寫出來, 趕快現在練習試試看吧! 

 --- 考考大家, 基本功處理字串的函式夠熟嗎? 
e.g. C語言的 sprintf() 怎麼使用呢 

 2024/12 更新: 
 補充: 怎麼透過一行指令做到字串的搜尋與取代 ? 
 可以使用 linux s//g 
(1).在vi編輯器: 檔頭到檔尾用str2取代str1
:1,$s/str1/str2/g 
(2). 指令輸入:
sed "s/str1/str2/g" -i FILENAME
補充: 
static function 是什麼意思? (常被問到, 請留意喔!) 
 靜態函數僅在同一文件中可見, 在編譯過程中如果編譯器發現function前有加static關鍵字, 經過編譯後會被隱藏在該檔案的 obj file, 所以之後 linker 找尋 symbol 時, 會忽略這個funciton, 所以別的檔案也就看不到!



2024/11/14

存股筆記 6768 志強-KY 全球最大足球鞋供應商

志強-KY以代工知名國際品牌(如adidas、Nike、PUMA等)之鞋類產品製造為主要業務,銷售市場以歐美為主
志強股本不大19億多,
工廠不在大陸也許是個優勢,
組球鞋龍頭

心得記錄:

  • 2024/11/29 股價138.5, 飆股的故事/志強迎景氣復甦 營運喊衝 | 集中市場 | 證券 | 經濟日報, 但這隻我還沒建倉就飆起來, 所以有點不想追蹤 XD
  • 2023/08/28 股價 62.9, 上半年EPS 1.51元, 有點低, 觀望
  • 2023/05/29 股價 69.2, 觀察近年的低點約在65-64元, 公司表示第二季是傳統旺季, 估第四季開始回溫, 觀望
  • 2022/11/20 股價 78, 世界盃組球開踢 期間為 11月20日–12月18日, 觀望
  • 2022/09/16 股價 91.6, 近年的高點

志強上半年EPS 1.51元 客戶調整庫存 訂單仍不明朗 下季可望回溫

2023/07/21 23:11:44 經濟日報 記者宋健生/台中報導
足球鞋製造龍頭志強-KY(6768)昨(21)日公布上半年自結合併損益,受到客戶調整庫存影響,稅後純益2.95億元、年減63.5%,每股稅後純益1.51元;志強表示,儘管目前訂單仍不明朗,但預期第4季可望逐步回溫。

志強表示,女子世足賽已於日前在紐西蘭開打,加上世界足球巨星梅西轉戰美國足球大聯盟(MLS)的邁阿密國際,而下一屆世足賽,三年後將在美國、加拿大及墨西哥同步舉行,可望刺激北美足球市場消費力,對於整體消費市場將是一大利多。

法人則指出,預計明年登場的巴黎奧運,相關效應可望在半年前發酵,換言之,運動鞋及足球鞋明年第1季有機會看到明顯的拉貨效應。

志強自結第2季合併損益,合併營收38.63億元、年減18.8%,營業毛利6.56億元,毛利率17.0%,較去年同期21.4%減少4.4個百分點,稅後純益2.50億元、年減44.7%,單季每股稅後純益1.28元。

志強上半年合併營收72.29億元、年減15.2%,若以功能貨幣美元計算,上半年合併營收2.36億美元,更較去年同期減少20.1%;營業毛利11.25億元,毛利率15.6%,較去年同期減少6.5個百分點,稅後純益2.95億元、年減63.5%,每股稅後純益1.51元。

志強不諱言,目前客戶下單仍不明朗,能見度約3到6個月,與過去營運高峰時期的一年到一年半相距甚遠,整體稼動率則在七成上下,預期隨著客戶持續去化庫存,第4季可望看到回溫。

志強去年受惠世足賽帶動,營運表現亮眼;今年雖無全球賽事及累積訂單挹注,但法人認為,志強印尼新廠預計第4季完工投產,可望推升跑鞋等新鞋種出貨量,擴展足球鞋、棒球鞋以外鞋種的出貨基礎,也為營運挹注新成長動能。

志強營收占比中運動鞋占57%,休閒鞋占40%。目前,集團在越南以及柬埔寨設有生產基地。

客戶包括NIKE、adidas、BROOKS、PUMA、DECATHLON等品牌大廠,產品主要銷往歐洲及美洲,占比約有八成。

志強今年保守看 估Q4回到正常水準

鉅亨網新聞中心 2023年5月19日
製鞋廠志強 – KY (6768-TW) 今年首季受品牌客戶調整庫存影響,波及營收、獲利,展望後市,公司認為,今年仍保守看待,第三季將是傳統淡季,預計第四季回到正常水準。志強 3-4 月營收回溫,公司指出,部分與過往季節性需求有關,第二季是傳統旺季,只是今年 3 月就開始反應,不一定與庫存去化完畢有關,整體來看,今年還是保守看待,第三季預計不如去年同期表現強勁,第四季才會開始回到正常水準。

志強 4 月營收 15.64 億元,月增 8.7%、年增 4.6%,累計前 4 個月營收 49.31 億元,年減 6.3%。 志強第一季營收 33.66 億元,季減 29.5%、年減 10.7%,毛利率 13.9%,季減ㄉ 9.6 個百分點、年減 9 個百分點,營益率 1.1%,季減 11.3 個百分點、年減 10.2 個百分點,後純益 4300 萬元,季減 87.5%、年減 87.7%,每股純益 0.23 元。

志強-KY去年EPS翻倍賺9.22元 發5元股息、殖利率近7%

2023-03-10 17:24 非凡新聞 / 編輯周美娟 / 綜合報導
▲志強-KY受惠世足賽商機,去年獲利創下新高。
全球最大足球鞋供應商志強-KY公布去年營運成績單,在世足賽加持下,足球鞋類產品銷售暢旺,2022年EPS高達9.22元,創下新高水準;董事會通過每股擬配發5元現金股利,若以今(10)日收盤價72元換算,現金殖利率達6.94%。

志強-KY表示,公司去年擺脫越南疫情干擾,營運回溫,加上世足賽商機挹注,2022年全年營收達185.24億元,較前一年成長50.1%,毛利率達23.13%,較前一年增加3.4個百分點,營益率則為12.16%,較前一年增加5.71個百分點,稅後純益為18.08億元,較上一個年度大幅成長179.3%,每股盈餘(EPS)則達到9.22元,較2021年的3.42元大增1.6倍以上。

志強-KY以代工知名國際品牌(如adidas、Nike、PUMA等)之鞋類產品製造為主要業務,銷售市場以歐美為主;展望2023年,志強-KY表示,客戶庫存持續調整中,下單相當謹慎,最後出貨仍會有變數,因此公司對上半年營運看法仍偏保守,第1季進入傳統淡季,第2季雖有望好轉,但仍保守看待;下半年則有機會回溫,準備迎接2024年奧運商機。

志強-KY董事會9日通過去年盈餘分派案,決議擬每股配發現金股利5元,是歷年來最高水準,盈餘配發率54.2%;公司並決議訂於5月30日召開股東常會。觀察志強-KY股價,其已於71元至74元間上下盤整長達2個多月,今日股價相對抗跌,以小跌約0.6%作收。

2024/03/04

Python與 C C++比較

C與python
https://cloud.tencent.com/developer/article/1461198

C++與python
https://medium.com/appworks-school/most-popular-programming-language-for-first-time-learners-54b7da125e3c

各程式語言排行

【比較】2024 程式語言排名與分析,該學習哪一種程式語言?