作者:
qrtt1 (有些事,有時候。。。)
2014-05-22 12:48:10我是聖藍科技的 Alan,目前有一個 Java 程式設計師的職缺。
下面的連結是公司的首頁,有相關產品的介紹:
http://www.muzee.net
技術需求:
1. JavaSE
具備 Java 程式語言概念,儘可能了解 Java 特性,
並能利用 Java 處理日常事務。
基本要求為:
1. 標準函式庫如基本的 IO,字串處理的知識、Socket
與 HttpURLConnection 相關的 Network Programming 的會使用
2. JDBC 知曉如何使用,並知道 Connection Pool
與會使用 Commons DBUtils 或 lwdba 等 library 進行資料查詢。
具有使用過其他 3rd-party library 經驗。
有熟悉的開發工具(IDE 建議為 Eclipse)與認識常用的 build tool,
例如 Ant 與 Gradle。
2. Java Web (JavaEE 與實作前端頁面所需技術)
對 Web Application 具有概念,能區分一個頁面中各種內容處理的順序。
例如一個頁面中同時有 javascript
與 jsp scriptlet 混合的情況知曉如何判讀。
無需了解最新的 framework,但對於後端 Web 技術:
Servlet/JSP 的實作需有紮實的經驗。
目前產品的 codebase 有點年代,所以使用的 Web 技術 stack
停在 Struts 1.x 年代。
前端部分,需能寫純 javascript 並略通 css 寫法,
能不依賴 jQuery 等 javascript library 實作出期望的功能。
尚有些舊有實作是純 javascript 寫的,未來期望漸漸改善它。
以目前產品的情況,無需考慮跨不同瀏覽器的問題,
只需在 IE 上能運作即可。
工作內容:
維護公司產品與維運輔助系統。
公司產品主要的技術為 Java Web 與 Android
(Android 不是必備需求,但會寫有加分)。
維運輔助系統以 JavaSE 為主,多半是放在 Server Side 上的程式,
保持產品內容品質的穩定。
工作環境:
地點可選擇台北市(靠近捷運善導寺站)或新竹(距高鐵新竹站不遠處)
薪資範圍落在 50k ~ 60k 之間 (保障 13 個月),實際需要面議上限可調。
工作時間:9 AM ~ 6 PM
工作時間的例外情況:
1. 參與的專案出包了
2. 公司外國參展,得排定輪班配合當地時區,
進行上線支援 (一年約 3 次以內)
3. 個人工作進度安排不當。
由於公司沒有加班的風氣,儘可能在一日八小時內發揮穩定的效能
聯絡信箱:
履歷請寄到 alan.chan@muzee.net,我會儘快與您聯絡。
將請您實作一個小題目,
讓我們評估實作速度、品質與 coding style。
題目專案位置:
https://github.com/muzee-git/LabVideoDownloader
==============================================================
網頁版:
http://goo.gl/KTAeMX
相關的 Q&A 也會補在網頁裡
對於工作內容方面的疑問歡迎來信 (可站內或 email)
================================================================== 求職者 Q&A
1. 為何不能使用 jQuery
我們對於前端的需求是「能」在不依賴 jQuery 的情況下,
使用 javascript 實作出期望的功能。
這個要求主要是期待具有參與維護舊 code 的能力。
因為舊的程式碼有不少是沒有使用 jQuery 這類方便的 library 輔助開發的。
當要加新東西時,是能使用 js library 輔助讓開發更加簡潔、易懂。
2. 有沒有使用 Framework,例如 Spring 與 Hibernate
這問題相似於 javascript 的情況,
這 Web 端的程式碼由 2000 年初就有 commit 記錄。
那個年代的開發,國內還沒盛行這樣的應用程式框架。
唯一有含框架的是使用 Struts 1.x。
其他的需求都是由當時的團隊寫出需要的工具。
在維護的情況,我們儘可能保持專案內技術範圍的一致性,
不重複引用多種同質性的 Framework。
除非是完全全新的應用,例如 NoSQL 部分就是直接加進來。
對於新技術或架構設計有熱情的朋友,機會在新專案或新任務的情況。
獨立專案的情況,主要看專案持有者的決定,但得稍為可慮一下可維護性。
避免選用品質不良的第 3 方專案,或團隊內太少人掌握的技術。
(太少人掌握的情況,建議先找些同好與你一同研究,增加瞭解的成員)
3. 關於 IE 與 javascript
首先,我先說明一下為何只支援 IE。
有一部分的產品它是給 Windows 使用者用的,簡單地說是 IE + ActiveX,
而 ActiveX 有實作我們自己的 player 或 reader 無法以純 javascript 達到的事。
由於它是運用 ActiveX 技術實作的,所以這款產品是 IE only。
(另一組平行的給 MacOS 使用的,也是相似的架構,但目前沒有繼續開發。)
而 IE 要支援到幾版,主要由產品會議決定的,最新的自然得要支援。
而舊版到多舊考量的因素有:
1. 微軟目前支援到哪?使用者版本分佈
2. QA 測試的主要版本為何
3. 近期由客服系統反應的問題對對的版本
目前,主要支援的版本是 IE 11,若沒有特別請 QA 要特額外的版本,就只會測這版。
依產品規劃與 QA 協調過,最低支援到 IE 8,但不會是主要測試版本。
4. 人員篩選門檻為何
關於是否有限制新人或具有經驗的人?可以回顧一下對於人員需求的描述。
我們只針對能力加以描述,並且著重在相關的基礎知識。
在第一階段是線上自我測驗,需完成一個小型的專案。
專案的範圍恰好是我們徵人要求的部分,也是日常工作可能接觸到的一隅。
只要專案有完成,東西可以動就算拿到面試門票。
面試主要確認具有完成該專案的能力,
對於公司的方向是否有與其個人價值觀相左之處,
並由大家親眼確認未來的工作夥伴的頻率是否接受。
5. 使用的技術都這麼老舊嗎?
在每日的工作中,維護工作佔比是最大的,也就是本篇徵人技術需求描述部分,
但我們著重於基礎的實作能力。
除非正接下新的任務要開發完全新的功能。
這可能是某個產品會議新的 idea 或自己提出的想法,
得做個 proof of concept 出來讓大家玩玩。
全新的專案或概念實作並沒有太大的限制需要使用哪些技術。
但考慮到日後維護的問題,我會建議把範圍限縮在 Java 相關。
(其實總共可以接受的是 Java、C、C++ 與 Python)
先來談一下維運的部分:
維運的主要考量是什麼呢?當東西上線後,若需要做故障排除。
正好負責的人放假去了,我們的做法是儘可能由還在工作現場的人處理並記錄。
只有搞不定並且無法推遲到 owner 上班日時 (連 word around 都沒效果),
透過各種聯絡方式請 owner 上線解決。
這也是為什麼強調要導入新東西前,先培養你的使用者。
為何徵人需求內沒有新技術:
要填新技術其實有蠻多能填寫的,像是這幾年比較潮一點的雲端運算。
不過,這單純只能吸引對新技術興趣大於工作本身的人。
也許這樣的結果是徵人的描述略顯樸素了些,但我們著重在問題的本質。
就像人得先求得溫飽才有餘力想一些吃得飽等級以上的事情。
若增加新的戰力,無法分擔維運的基本需求。
就沒有餘力做些讓公司賺錢之外,更有趣的 idea。