這樣compile/debug不會很痛苦嗎...
※ 編輯: ousapas (1.34.50.158), 12/01/2015 00:55:09
推 NTUCS5566: 工作桌超亂 一堆板子工具 HW跟妹子PM來要還找不到板子板子堆中還有不知道什麼時候的麥當勞番茄醬
上次還找到洋芋片 不知道誰丟在我座位的 媽的1F 12/01 01:28
推 amatt: 常常在vim, ctags, cscope, git 之類的。6F 12/01 08:24
推 Clain66: 樓上那個不用寫kernel也會常用7F 12/01 08:35
推 amatt: 常make, modprobe(rmmod, insmod), reboot, 看dmesg, pr_info().9F 12/01 09:09
推 askacis: printk
有時候寫到昏頭,在 userspace寫 printk,kernel 寫 printf11F 12/01 09:09
→ wens: 到底有多少人真的在寫 kernel 的東西 @_@16F 12/01 10:48
推 onlywig: 問我就對了XD 都在做些routine的工作居多 沒啥在寫code17F 12/01 11:55
推 WisdomOrLie: 桌上一堆板子一堆模組一堆線材一堆jumper一堆杜邦線一堆終端機畫面一堆開發介面 最後還有一堆BUG 幹20F 12/01 13:25
→ cha122977: 開發kernel和開發kernel driver差很多 是問哪一種?22F 12/01 14:56
推 HowLeeHi: 有開發kernel的強者出沒了...23F 12/01 17:20
推 synd: 現在連需要自己寫driver的機會都不多了24F 12/01 17:45
推 amatt: 台灣純kernel少(mm, scheduler, file system...),device driver較多。25F 12/01 19:42
推 alishaku: 我待過2間公司,剛好arm與x86平台各一間,2間公司都是開發單一專案,而部門下會分上層及底層team,甚至更多team來共同完成一個專案,大致上都是各司其職. 而底層的人員比較多時間會接觸到linux,不過就我知道,大都是修修改改code但是我覺得能修改到真正linux code的人都滿強的,而這類的人大都是資深工程師.
我剛指的linux code 是指kernel部分.27F 12/01 19:55
推 chuegou: 終極版的韌體工程師...我寫韌體已經開始滿桌板子線材電源還有示波器和電腦...已經不能用亂來形容了.要用崩潰34F 12/01 22:22
看板 Soft_Job
作者 onlywig (環島旅行ing)
標題 Re: [閒聊] Linux Kernel 開發者的生活
時間 Tue Dec 1 14:15:17 2015
應要求只好分享一下小魯的kernel生活
我只專精在linux for ARM..
所以可能會有些偏頗
剛畢業待在IC廠開發linux driver
比較花精神的地方就是自家IC的暫存器控制去做優化
儘量讓chip initial能快一點,還有就是CPU廠會每天跟你
吵說是你的driver拖累系統運算的時間
但driver架構呢??
嗯...沒錯 就是隨便抓一個範例來改啦XDD
結果我離職後這個driver竟然用到現在.......
之後就系統廠直到現在在一間假外商
在系統廠 kernel team (或稱BSP team)
要做的就是想辦法將公司從IC廠抄來修改的板子讓它動起來
改pin腳,移植OS跟driver每天必做的三件事!
缺點跟原PO說的一樣 東西不像userland可以所見即所得這麼有快感
有時找個bug真的都要找很久 即使你有kgdb...
因為有時候問題是出在硬體設計不良或是CPU體質不好XD
這不是說硬體工程師不好 而是遇到了雙方就要有一起解決問題的心~
另外就是大部份都是在改linux source code,很少在寫code啦!
優點嘛...當一個OS動起來都是我最感動的時刻!(昨天剛移植Android 5.1)
也是有嘗試過幫公司寫寫網頁 用python flask架個宣傳網站~
開發安卓APP, 用directFB畫畫UI
但 覺得底層還是比較輕鬆一點點...$$也比較多
另外要鑽深一點也是很博大精深的 kernel運作流程,怎麼跟userland做溝通~
全部弄熟也是要花個幾年啦!!(做solution的IC廠就是在做這些事 非常精實)
另外分享這個世界比較奇怪的現象
年輕人做底層的愈來愈少 都老屁股居多 (強國除外)
大概就是這樣 下台一鞠躬
像我最近想去香港找工作 都找不到底層的缺 有人可以介紹嗎XD
※ 引述《ousapas (komica123)》之銘言:
: 小弟是不才Web Application開發者
: 一直以來都很好奇Kernel開發者都是過著怎麼樣的生活
: 像是Web常用的PHP、Ruby、JS都是存檔就能馬上跑
: unit test也是裝了工具馬上就能測
: 開發Kernel的話就一定要寫C甚至是ASM
: 還要針對各種不同架構做測試(ARM, x86...)
: 這樣compile/debug不會很痛苦嗎...
: 想請版上前輩分享Kernel開發者都是過著怎樣的生活
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.75.190.57
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1448950521.A.E12.html
※ 編輯: onlywig (203.75.190.57), 12/01/2015 14:17:11
→ leolarrel: 請問貴公司kernel 還有缺人嗎? 我也專精在embedded linux1F 12/01 15:45
目前沒sorry
推 NCUking: 千萬別想不開去香港工作 去了會發現台灣上司其實很友善3F 12/01 16:19
我也想聽!薪資高很多不是?
→ wens: 想問有多少廠商開始用 device tree 了...5F 12/01 17:10
台廠好像還不多 我今年都在用喔(IMX6&7)~建議趕快學 比board file方便多了
※ 編輯: onlywig (203.75.190.57), 12/01/2015 17:18:37
推 amatt: 香港:殺人放火金腰帶,修橋鋪路無屍骸7F 12/01 17:21
→ wens: 我已經是某 arm port maintainer 了... 都是用 dt9F 12/01 17:43
前輩失敬了~感覺是linaro的高手XD
※ 編輯: onlywig (118.168.94.135), 12/01/2015 20:30:24
推 A4P8T6X9: 想學port android,不知從何下手11F 12/01 20:35
推 kain777: 也想學 無奈公司用不到13F 12/01 21:18
→ wens: 不... 我跟 linaro 一點關係也沒有... 工作也跟這無關14F 12/01 21:39
推 cyutjason: qualcomm平台用device tree二年了,快速換hw版本很方便15F 12/01 22:12
推 askaleroux: 完全不想學 大學碰過 覺得很沒成就感
死在哪裡也不知道17F 12/02 03:31
→ RouterHsieh: 說真的這就只是porting而已,說不上是開發吧...XD19F 12/02 05:12
久了會覺得自己像修車的黑手無誤XD
推 askacis: 有些 ic廠的 driver說實在的品質不是很好,拿來驗驗 IP可以,真的進系統做產品都要大修甚至重寫
不然怎麼死的都不知道 XD21F 12/02 09:13
同意 很多IC廠的driver都是給新鮮人去寫(我當初也是) 覺得很扯...
※ 編輯: onlywig (203.75.190.57), 12/02/2015 10:15:25
→ wens: 我覺得跟產品線太廣又趕出貨時間有關...24F 12/02 13:38
推 kking123: 覺得有這相關經驗的人不好找..對這工作有興趣的可私談~26F 12/02 15:15
→ badyy: 最重要的還是產品要能動不是嗎?27F 12/02 22:38
→ Knudsen: 三年多前就開始用dt, 現在應該沒有人不用的吧28F 12/06 21:21
看板 Soft_Job
作者 tuxoko (tux)
標題 Re: [閒聊] Linux Kernel 開發者的生活
時間 Wed Dec 2 17:40:34 2015
我不知道本魯該不該算是個 Linux Kernel 開發者
我只有 submit 過 2 個很小的 patches 到 mainline,而且都不是核心
總之我主要做的事情都是 out of tree 的
我一開始接觸這塊 是因為工作上要求而自幹了一個 remote filesystem
那個時候就靠從 fs 相關 syscall 開始 trace code 進 VFS layer
然後看他跟各個 filesystem operations 如何搭上
我大概花了一個禮拜的時間做出一個可以 mount 的 prototype
然後再慢慢的把剩下的 syscall 相關的 operation 補上
那段時間我過的真的蠻充實的
我從完全沒有 Kernel 開發經驗 到 VFS 由裡到外弄懂 (很舊的版本 現在又變好多QQ)
還弄懂各種 Synchronizaion: ticket spinlock, mutex, wait_queue, RCU
還有各種 Debugging 技巧: 看懂 oops/decodecode, Magic sysrq, kexec/kdump
這些基本上都是我自學的
總之我目前主要參與的是 ZFS on Linux (還是filesystem相關...)
我目前主要都是一些bugfix 和支援新版 kernel 相容性為主
我最大的貢獻是改進ZFS 的 memory management
那個pull request 已經一年多了還沒merge 進去QQ
另外我有幾個race condition 的bugfix 也是令我滿自豪的
比如有一個存在已久跟 mutex 相關的 race/memory corrution 大家都摸不著頭緒是
被我解掉的
另外發一下牢騷,ZFS 因為是從 Solaris/Illumos porting 過來的
很多 API 都要包裝過,用在Linux 上往往都會有一些小問題要work around
然後他們的Lock ordering 非常的 sloppy,而且沒有註解清楚這些 Lock 到底是要保護
什麼,導致常常會有lock inversion deadlock 出現。
我常常腦海裏面都有砍掉重練的聲音,可是 ZFS 實在是太龐大的QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 50.135.204.227
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1449049236.A.C5B.html
推 beemos: 你絕對是啊!1F 12/02 17:58
推 amatt: 這跟薪水只有間接關係6F 12/02 18:48
推 ggBird: 強者,可以分享deadlock 的除錯經驗嗎?7F 12/02 19:08
解 deadlock 也沒有什麼特殊技巧,就是運用現有的工具像 softlockup,
hardlockup detector, hung task detector,有了這些 deadlock 時多半會出現
問題 thread 的 call trace,再利用這些分析問題點在哪。如果沒有打開那些功能
也可以用 sysrq-l sysrq-w 之類的。
另外 Kernel 有內建強大的 Lock ordering 分析器 Lockdep。他可以動態建立各種
Lock class 之間的相依性,然後印出所有可能 deadlock 的地方。
可是因為 ZFS 沒有嚴謹的 Lock class ordering,所以一開 Lockdep 馬上就吐一對東西
出來,所以目前還沒辦法用在 ZFS 上。QQ
推 seebass: 實務上ZFS in Linux 還是不夠穩定,尤其在Ubuntu short term 版本上8F 12/02 20:49
推 raix852: 推強者 小魯只有研究兩個月就沒再碰了10F 12/02 20:57
推 onlywig: 跪求教我OOPS debug技巧12F 12/02 21:48
oops 也沒什麼特殊技巧,先把 "Code: 48 89 45 c8 0f ..." 這行
餵進 scripts/decodecode 就可以得到問題點的 assembly
對照到 source code,然後利用 register 的值就可以大概推出當時的 state。
剩下的就是根據問題的種類想辦法分析了
→ wens: 好強大...
不過pull request沒下文是怎樣 orz13F 12/02 22:50
也不算沒下文啦,這段時間我偶爾會更新一下,也有一些人有持續使用
只是說他動到的範圍太大,怕會影響跟 illumos 之間的流動性所以暫時還沒進去
這段 code illumos 也正在 porting 回去,所以應該可見的未來會進去吧...
話說你不是 maintainer 嗎? Maintainer 的等級不是比較高嗎?
推 RouterHsieh: 這種才是真正的kernel developer啊..XD15F 12/03 00:47
推 jily: 推強者!16F 12/03 09:46
→ dinos: 朝聖!17F 12/03 10:32
※ 編輯: tuxoko (50.135.204.227), 12/03/2015 13:49:40
→ zaqimon: Linux kernel神人才懂 尤其那組語絕對不會是一行一行跑各種不同CPU平台 各種硬體 各種memory barrier最佳化...19F 12/03 16:18
看板 Soft_Job
作者 jdward (321)
標題 Re: [閒聊] Linux Kernel 開發者的生活
時間 Thu Dec 3 10:29:53 2015
※ 引述《onlywig (環島旅行ing)》之銘言:
: 結果我離職後這個driver竟然用到現在.......
: 之後就系統廠直到現在在一間假外商
: 在系統廠 kernel team (或稱BSP team)
: 要做的就是想辦法將公司從IC廠抄來修改的板子讓它動起來
: 改pin腳,移植OS跟driver每天必做的三件事!
: 缺點跟原PO說的一樣 東西不像userland可以所見即所得這麼有快感
: 有時找個bug真的都要找很久 即使你有kgdb...
: 因為有時候問題是出在硬體設計不良或是CPU體質不好XD
: 這不是說硬體工程師不好 而是遇到了雙方就要有一起解決問題的心~
講這個我想起以前隔壁部門的在開發 Embedded Linux
有一個案子 Code 在公版上開發已經跑很穩了,
然後試產 10-20 片,
試產的板子上 burnin 2-3 小時就會 Crash 掉,
Crash 點每次都不太一樣...
當初就懷疑應該是 HW 的問題,
但 HW 就覺得 SW 要負責釐清是哪邊的問題?
至少要指出 HW 上大概是哪個部份的問題。
要不然上面東西這麼多怎麼找?
投了3-4個人找了快2周才發現是 DRAM 的問題,
DRAM 換掉或是調參數就好了,
DRAM 跟公版同牌子同型號但批號不同...
Schedule 壓很緊,又一直逼 SW 快快快...
然後負責這個案子 SW Leader 就爆氣了.
過不久人就跑掉了。
所以我想以前認識很多SW強者都不願意做 Firmware ,
就是這個原因吧。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.252.24
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1449109795.A.5AF.html
推 bcew: debug真的最怕這種長時間才會錯的狀況
遇過換電源插座就好,或是加散熱片就好的狀況1F 12/03 12:58
推 amatt: 所以作底層的要對platform有sense,不然一堆手機廠隨便拿外頭的便宜平台兜一兜就賣啦,還call chip vendor來support。3F 12/03 13:02
推 wuliou: 硬體錯誤真的超幹 還很難證明5F 12/03 16:24
推 final01: 講那麼多廢話,還是沒講到到底問題是啥啊…6F 12/03 23:02
推 locklose: 後面說dram阿,生產週期不同品質會不一樣
電池也有這種特性,不同時間產的內阻會改變7F 12/04 00:04
推 cobrasgo: 兩三個小時就會掛算好的了,跑兩三天才會掛的光是複製問題就搞死你
另外DRAM調參數那個可以分享一下細嗎?搞不好之後會遇到,謝謝9F 12/04 18:02
看板 Soft_Job
作者 askacis (ASKA)
標題 Re: [閒聊] Linux Kernel 開發者的生活
時間 Thu Dec 3 16:26:40 2015
最近剛好在看這個問題,提供一點自身的經驗分享XD。
我們也是大批量生產的時候系統極不穩定,
debug會發現出問題的時候有可能連主程式A process的main function都沒有進去,
可想而知連main都沒進去不是單純FW沒寫好的問題,
接著再看系統還有哪隻process也沒起來,發覺那隻process也是連main都沒起來。
於是乎比較了一下兩隻process所用的share library,計算一下各別library file的md5值
與正確的library相比,果然發現某個library file裡面錯了一兩個bytes造成系統有問題。
接著寫了一版Auto test的FW,讓rootfs跑initramfs,並在開機解完rootfs之後
把系統主要的程式與library files MD5都算過一遍再與本來正確的相比,
如果計算正確之後會再重開機繼續測試,一直到出現NG為止。
有了debug的工具,接著就是量DDR timing,果然發現我們DDR brust write參數太margin,
溫升之後會讓特定的版子出現DDR write fail的情況。
而當初這組參數會讓eyepattern張的很漂亮,小批量測試也都沒問題,
等到大批量生產這問題才炸開XD
說實在的,Embedded Linux做久了,有時候會不知道自己在寫程式還是在當柯南XD
※ 引述《jdward (321)》之銘言:
: 講這個我想起以前隔壁部門的在開發 Embedded Linux
: 有一個案子 Code 在公版上開發已經跑很穩了,
: 然後試產 10-20 片,
: 試產的板子上 burnin 2-3 小時就會 Crash 掉,
: Crash 點每次都不太一樣...
: 當初就懷疑應該是 HW 的問題,
: 但 HW 就覺得 SW 要負責釐清是哪邊的問題?
: 至少要指出 HW 上大概是哪個部份的問題。
: 要不然上面東西這麼多怎麼找?
: 投了3-4個人找了快2周才發現是 DRAM 的問題,
: DRAM 換掉或是調參數就好了,
: DRAM 跟公版同牌子同型號但批號不同...
: Schedule 壓很緊,又一直逼 SW 快快快...
: 然後負責這個案子 SW Leader 就爆氣了.
: 過不久人就跑掉了。
: 所以我想以前認識很多SW強者都不願意做 Firmware ,
: 就是這個原因吧。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.128.169.29
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1449131204.A.583.html
※ 編輯: askacis (220.128.169.29), 12/03/2015 16:31:26
※ 編輯: askacis (220.128.169.29), 12/03/2015 16:37:32
※ 編輯: askacis (220.128.169.29), 12/03/2015 16:45:30
推 hl4: ddr timing是怎麼量的啊1F 12/03 17:19
→ askacis: 請洽安捷倫或是泰克XD2F 12/04 10:14
看板 Soft_Job
作者 csfgsj (仙人異路)
標題 Re: [閒聊] Linux Kernel 開發者的生活
時間 Thu Dec 3 21:06:00 2015
※ 引述《askacis (ASKA)》之銘言:
: 最近剛好在看這個問題,提供一點自身的經驗分享XD。
: 說實在的,Embedded Linux做久了,有時候會不知道自己在寫程式還是在當柯南XD
當柯南為正,寫程式為副。正常現象
找可抄的程式為正,找不到只好自己寫為副。正常現象
打嘴砲為正,寫程式語言為副。正常現象
99%現有整合現有為正,1% 功能調校為副。正常現象
90%東摸西摸為正,10% 專心工作為副。正常現象
程式一下就寫完沒問題就永不再接觸,通通忘記為正
程式問題解不掉天天摸,所以記的很熟為副。正常現象
程式問題不斷才有工作可做為正
程式沒問題沒有工作做被裁員為副。正常現象
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.221.135
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1449147962.A.2E3.html
推 linba5566: 寫BIOS的一樣,都是當柯南摸魚為主...1F 12/03 23:43
→ wuliou: XDDDDDDDD7F 12/04 00:55
推 amatt: 內行的道出這個行業的生存哲學。 沒bug你要這些工程師靠什麼過日子?8F 12/04 08:48
推 rhapsodyjay: 我是做bios的 有個強者同事剛進來接第一個案子porting時就考慮到可能會出現的bug
於是仔細的porting 年終打考績 老闆依解掉的bug數來評筆 結果因為bug太少而考績很爛10F 12/04 08:55
推 amatt: 前公司以review upstream contribution 看能力。14F 12/04 09:25
推 LINGZ: 住巷子裡的!16F 12/04 10:50
推 Ekmund: 以解bug數當考績也太鳥...18F 12/04 11:04
→ wens: review upstream contribution... XDDD
好奇台灣有多少 upstream contribuion? 感覺都是幾家大公司19F 12/04 11:06
推 amatt: 其實upstream也有黑暗的political, 特別你是默默無聞小咖,沒巴庫的人,容易被忽略22F 12/04 12:31
→ badyy: 會有罵你commit是shit的嗎?!25F 12/04 13:04
→ wens: 對新手不太會,至少我還沒被罵過XD27F 12/04 14:26
推 amatt: 被罵還OK,Linus常對subsystem maintainer飆,大家習慣就好,反正他沒打你考績,臉皮厚點就過去了。28F 12/04 17:43
推 locklose: 我決定再推一次,這篇真的寫到要點阿XDDD31F 12/06 00:13
推 knme: 推...32F 12/06 13:07
看板 Soft_Job
作者 hizuki (入贅桧月家,我妻彩花)
標題 Re: [閒聊] Linux Kernel 開發者的生活
時間 Sun Dec 6 14:46:09 2015
※ 引述《csfgsj (仙人異路)》之銘言:
: ※ 引述《askacis (ASKA)》之銘言:
: : 最近剛好在看這個問題,提供一點自身的經驗分享XD。
: : 說實在的,Embedded Linux做久了,有時候會不知道自己在寫程式還是在當柯南XD
小弟之前是做二次開發的,買回來core board(SoC + RAM + Storage)自己開發底板。
硬體故障最討厭了,比如有次我的老闆讓人手工焊接出了一個底板(當然PCB是工廠打樣
的)。
一開始的時候連啟動開關都有問題,三次有一次boot mode不對,那位線路工程師永遠
都不知道究竟哪裡出問題了,反正就發回重焊。
後面就是USB出問題,實驗室的示波器採樣頻率太底,根本沒法用。反正最後又是發回
重焊。
幸好我沒用原本vendor給的的kernel,改用新的內核,支援dts,把mainline當中的dts改
一下,
就可以用在新的base board上。內核開發是沒什麼問題了。
然而你不能指望每個driver都是正確的,就算是mainline的,可能出一個新SoC,上游更
著update了,
這個上游還又可能是SoC廠商自己。不過這不能保證他們有在老平台測試過一遍。
信。
當然這不影響開發進度。
我還兼任userspace的開發,這就是另外一段故事了。
不過我因為開發的程度不深入,沒有使用過kgdb,我都是用dynmaic print來解決問題的。
我在學習的時候,上IRC請益debug的問題,被外國人虧幹嘛用那麼麻煩的工具,所以我到
現在還是不會用kgdb。
對我來說kernel driver沒有那麼可怕,反而bootloader和userspace的問題更多。尤其是
bootloader,
現在有些vendor的1st bootloader, 2nd bootloader搞的很麻煩,還要數位簽名。我最怕
去連
JTAG來debug了。
另外說一下,我的水準太糟,新的SoC platform必燒一次,而且經常是把USB port給燒壞
掉。
下,
這行對電子學要求高嗎?不會要求我們同時畫電路吧?
之前做二次開發的時候,總是去麻煩電子工程師來解決問題:P
--
蒙上主眷顧的網路工程師
With the mercy of God, I am a network engineer.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.77.80.246
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1449384385.A.599.html
推 csfgsj: gdb 沒用過,我都是用
printf("%s %d %s\n", _FILE_, _line_, _function_);
對可疑的地方(source)做地毯式的狂轟濫炸
我就不相信會炸不到Bug
Debug的小技巧很多,有機會下次再說吧1F 12/06 17:30
推 amatt: 用printf是必須重新compile再跑,gdb是直接run time設一些斷點來觀察。7F 12/06 17:49
推 askacis: 每次看到 soc廠提給kernel tree的版本裡面一堆 bug
SOC後來修改過的新版卻不提交上去就覺得用到有問題版本的人很衰9F 12/06 18:13
推 Killercat: ...kernel debug怎麼會用printf(/facepalm)12F 12/06 19:44
推 SkyFluid: 用printf來debug?!?!?13F 12/06 19:49
推 shortoneal: 系統壞了,這些code都沒跑到,你看都沒印東西14F 12/06 20:23
推 askacis: 二樓大大明明在反串XD15F 12/06 21:11
→ Knudsen: vendor送upstream可能有很多故事 支援不好或有問題是
很常見的事情 對upstream contributor也無可奈何16F 12/06 21:15
推 wesley234: gdb 的缺點是對環境的要求比較多
很多embedded 的環境無法使用
相對來說printf的條件單純多了
幾乎所有的平台都可以用18F 12/06 21:51
推 SuperTaco: 印象中 Linus 本人說過他只用 printk 來 debug XD
不過一般人畢竟不是天才,所以工具能用的還是用一下…22F 12/06 22:43
→ final01: 誰跟你linus只會printk...24F 12/06 23:28
→ Obama19: 樓上邏輯有問題? 只用不代表只會25F 12/07 01:29
推 csfgsj: #define printf printk 不就好了,小問題也在GGYY
忘了說:我寫程式從來不檢查,都是讓Compiler幫我看
業界跟學校不一樣,不要花精神在機器都可以代勞的事情上有參考資料、Google,我也從來不去背特別的語法與LIB
效率是靠方法,不是苦力
我始終覺得我們的學校教育的方式有問題
所以學生好像只會當苦力29F 12/08 19:56
--
※ 作者: terievv 時間: 2015-12-09 12:14:07