作者watz0n (watz0n)
看板Soft_Job
標題Re: [請益] 只會 C 的人應徵其他語言的工作
時間Sun Sep 28 21:44:52 2014
※ 引述《iWRZ ()》之銘言:
: 又是我這位問 AS400 的嚕蛇
: 還在等那家公司的練刀時間
: 也去看看其他家公司
: 也遇到出題滿滿都是瑕疵的公司......
: 看到遊戲龍頭公司徵程式設計師
: 但是看到前輩們的經驗......我還想要命!
: 我心中一直有個疑問
: 本人比較愛寫 C 或很 C 的 C++
: (意思是說表面上是 C++ 但是完全不用 C++ 的物件導向)
: 會寫 Java 但是對 Java 有綁手綁腳的厭惡感......
: 簡單來說:從大學第一次接觸 OOP 以來,從來沒感受到 OOP 對我有什麼方便
: (前輩們別鞭我)
OOP是為了避免使用資料超過預設規劃的設計,
在C++上算是不嚴謹的限制, 不小心內部資料宣布public就有可能管理有效範圍失效.
Java強制所有東西都要應用OOP, 包含宣告變數, 所以很多操作都要indirect reference
好幾次才能找到所需要資料而降低效能, 但執行期間能確切的檢查出來資料存取異常.
所以就要劃分是由單人處理或多人合作分配功能在一個程式上,
一個人開發時資料的流動與配置都是全部掌握在手上, 所以出問題也能馬上找到問題點.
但是多人的話則會因為設計程式的風格或是演算法設計不一致, 如果資料的處理沒有規範
,
很有可能會因為存取超過配置的矩陣邊界而有風險, 會大量執行累積Leak-Memory後當掉.
所以就有人設計OOP的方式來確保每個人處理自己資料上是安全的,
要傳遞資料時要盡量檢查傳送資料大小與複製資料副本的行為確保每個區塊都是獨立.
但是在需要大量Input/Output的狀態下會造成效率低落與占用大量記憶體.
所以都是在軟體OS具備Virtual Memory狀態下才能大量使用這模式開發.
而且某些特定需要速度區塊還需要用Structured Programming的設計模式來加速應用.
所以需要知道公司程式開發是為了"移植與維護性"與"高效能"這兩點分別,
來選擇是要使用OOP或是Structured Programming開發.
當然, 也看過OOP跟Structured混用造成大爆炸真的看多了...
: 對 php 有興趣(很大一部份原因是因為不用它的 OOP 也可以寫出東西來)
: 有時無聊會載 Wordpress 的原始碼回來看一看
: 純粹只是為了自己想開發的東西
: 網路上找到的職缺清一色都是要會 HTML / CSS / SQL / JavaScript / php
: 但是本人除了 HTML 和 php 之外完全沒接觸過
: 請問這類工作除非先自學,否則從此無緣嗎?
就目前觀察就業市場應該真的沒機會, 因為在Github風行之後,
Front-End網頁開發者不但能讓人看原始碼知道你設計結構與程式基礎,
並且還能直接線上預覽網頁呈現樣子.
這代表跟學過並上傳作品的大學生比起來, 缺乏能證明自己真的會應用技術外,
年資比他們高而要高薪(?)聘請.
這樣如果不能證明設計結構更簡潔或是能縮短開發時程的情況下,
業主通常會挑年輕細皮嫩肉的...
: 順便問一下
: 純 C 開發通常都會在那些職缺上出現?
: Embedded Linux Driver?
純C通常是跟硬體底層開發相關工作, 因為在Bare-Metal情況下,
應該是要用Assembly來寫相關工作比較穩定, 但是Ansi C提供了很好的移植性與
異常良好的CPU Instruction Set的對應方法, 再加上太多人(1980~90)學過C來開發,
才出現Firmware幾乎都是C語言的天下.
所以目前印象純C開發的職缺有:
1. Linux Kernel (BSP)
2. Linux Kernel Driver
3. Windows Platform API (Win32API)
4. Firmware Programmer (8051/ARM Cortex M0~M3)
5. Xilinx Vivado HLS Application
6. Digital IC Algorithm Engineer (C Model)
如果還有多的, 就請版友幫忙推文補完了.
Many Thanks,
watz0n
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.116.65
※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1411911895.A.8E7.html
推 johnnyne: 詳細給推!! 學到不少知識 09/28 22:47
→ PoorLoser: 太多人學過C來開發(淚) 09/28 23:39
推 rock913343: 回覆詳細 09/29 07:25
推 monoceros629: 好文 09/29 09:06
推 typepeter: 推 09/29 12:46
推 iWRZ: 大推 菜鳥受益良多 09/29 13:35
推 bigshawn: 推詳細 09/29 13:42
推 ticks: C還有一個特點是其他語言辦不到(或支援不好)的就是 09/29 23:30
→ ticks: (算了當我沒講,一兩行打不出來又懶得發文囧) 09/29 23:39
推 gomi: 樓上大大別講一半 發個文吧 09/30 12:28