2018-05-05

[分享] CODER、PROGRAMMER、DEVELOPER、ENGINNER這些名詞有什麼差異?

前言

常常有人說I'm coder、I'm programmer、I'm developer、I'm engineer,
但不確定這些名詞的差異,因此在Qoura搜尋一下發現也有類似的問題,參考連結整理如下:

Coder

純粹把程式寫出來可以正常運作,但程式碼也許不是這麼漂亮、或者可能有bug與效能不佳的問題。通常比較適用於程式初學者。 (不確定這邊是否有貶義)

Programmer

比Coder能夠熟悉某一種程式語言開發,並且有能力可以完成工作上交付的任務(Task), 但是需要有人去引導要用什麼樣的方式完成任務,若下次遇到同樣的問題之後便可以自己去解決。

Developer

可以寫出健全有彈性程式,同時能聯繫、解決客人對於產品特定的程式需求。

Enginner

通常是指可以用不同程式語言設計和建構出從無到有的程式產品,還可以針對現有的問題提出改善的方法,思考程式設計的觀點也比較全面。

總結

  • 這幾個腳色似乎有些部分是會重疊在一起的。
  • 團隊裡面會有人同時扮演多種腳色,或者與其他腳色互補。
  • 這邊自己想法是,可以透過產品的開發需求來定位自己的所扮演的腳色。例如今天我負責開發產品某一小部分的功能,並且只能用狹隘的觀點來看待此產品,那我的定位比較趨向Programmer;但我今天如果可以針對現有產品重要的功能可以設計出高彈性並且可重複利用的,定位就會比較趨向Developer。
GJ 2018/05/05 in Taipei

2018-05-01

[心得] 如何IT寫作? 讓自己的知識穩紮穩打

# 前言

---

可以讓自己的知識share出來提供給別人參考是一件不錯的事,因此我寫IT文章的習慣,會先想好以下三個要點:


  • 為什麼我要寫這篇文章
  • 這篇文章能解決什麼問題
  • 讀者可能有其他的疑問


## 為什麼我要寫這篇文章
通常我們對於自己腦袋中的知識深信不疑,很容易陷入一種迷思,覺得自己知識是完全正確但實際上是漏洞百出的,殊不知等到請你解說你的知識時,才發現描述的不夠實在、正確。舉例如下:

Q: 解釋 process 與 thread 的不同?
A: process所需要建立的資源成本較高,但是它對於資料獨立性保護較佳;而thread所需要的建立成本較低但是資料獨立性保護較差。

以上的舉例就很容易透露出我對process與thread差異根本不是很熟,因為我不能進一步描述這兩者間的差異性。假如今天面試官進一步詢問建立process與thread注意事項,我百分之百無法應對。

因此為自己撰寫一篇知識文章,既可以確保自己知識是有系統化的,也比較不怕被別人挑戰。而文章是自己寫的,就像老師自己編教材一樣,才能胸有成竹地去教學生。

~更重要的是方便日後查詢!~



## 這篇文章能解決什麼問題
既然花了時間寫文章,就要提出優點來,才能說服別人看到文章標題時,讓他產生一種想法: 這篇文章也許可以解決我目前的問題...

因此在撰寫文章前,要在文章開頭特別註明你的文章是解決什麼樣的問題? 例如我今天要寫一篇對於:process與thread差異

那我就會特別說,這篇文章可以提供process與thread差異之外,還可以:

  1. 在撰寫程式的時候可以考量到底是要用process還是thread
  2. 可以回答面試官的問題XD (通常面試官常問此類型問題)
  3. 可以了解process與thread創建過程
適時提出優點可增加閱讀文章的動力,畢竟要顯現優點才有被閱讀的價值。



## 讀者可能有其他的疑問
很多人在寫文章時,通常會犯了一個錯誤,例如今天撰寫一篇文章叫做:
How to create & use Dynamic Shared Objects
這邊就拿我最近的文章當例子How to create & use Dynamic Shared Objects

在某個小節,其中介紹編譯dynamic shared object 指令如下:

gcc -shared -o lib_addition.so lib_addition.c
在寫這個指令的時候,重點要告訴讀者這樣做就會產生lib_addition.so就可以了,

請不要一個個詳細解釋-shared 與 -o 還是其他指令的意義,因為我們今天文章的標題叫做:
How to create & use Dynamic Shared Objects
而不是
Explanation of gcc command parameters
因此我習慣把指令參數的意義放在Q&A就可以了,這樣才不會讓文章失焦。

---

# Conclusion
說到底我本來就不太相信大腦記憶,因此要有系統地去整理自己的知識,並寫出來公布在網路上,因為網友們也許會發現文章不足的地方而提供建議。另外也可以給自己一個壓力:
貼出來的東西是不能誤人子弟的
才能確保自己的知識是完整且無懈可擊。

GJ 2018/05/01 in Taipei