SgDotNet
Singapore Professional .NET User Group -For Cool Developers

Software Development Body of Knowledge, and (1) Joy of Cooking, or Tools of Trade

I'm pretty sure somewhere sometime someone has examined this topic in more depth and breath and volume than I attempted to (in a personal way) or ever could attempt to touch on. Eg your's best friend (besides google) wikipedia, IEEE's SWEBOK (http://www.swebok.org/), or numerical books.

But as I discovered that the most efficient of learning is to learn from others who could pass on digested information (ie: improved signal/noise ratio and demonstrated way of reasoning), I decided to put them down anyway: there might be someone who finds it useful, if any.

Neverthelessly, in a personal way, I value those bullets of topics (not intended to be elaborated) as an important asset to own if you know them and are using them, or to acquire if you are not familiar with, for being a long-term training roadmap (self-training, most of time :p), on the backdrop of either if you would just like to stay afloat in the software field or grow from inexperienced software engineer to master mind of crafting something pragmatic yet beautiful, without any prejudice, always considering software a serious engineering activity. I repeat, software is a serious engineering activity.

Skillsets are always composed of hard ones and soft ones. Depending on your personality, you would learn the hard skill easy way and learn the soft ones hard way, or vice versa. But, one thing is always true, they are two sides of a coin, the probability of requiring them at certain point of time along the path of growing pain is the same as if you toss a normal coin. Therefore, it is probably wise to find them, groom them before they find you. :)

You won't find the battling camp of windows or unix, c# or java, vim or emacs, firefox or IE, after all, they are the tools to build things upon, the knifes to cut things apart. There is such a known story...(sidetrack, best appreciated with the beautiful Chinese language :p. "记得梁羽生先生笔下有一位正邪兼修的高手,名曰“乔北溟”,一次此人与大侠张丹枫在一个庙中相遇,乔北溟随手操起香案上的香炉,张丹枫问他:“你的家伙称手吗?” ,乔北溟笑答:“以吾辈之见识,还在意手中之物是否为剑?”,张丹枫一愣,心中暗念,此人果然不同凡响……" -- from <<十年MFC经历认识的Microsoft技术>>)

Back to the main topic (after an Odyssey trip to the invincible)

I prefered to split the skillsets into the following categories.

(1) Joy of Cooking, or Tools of Trade
(2) Design Essential, or Art of War
(3) Construction Essential, or Tactics of Swordfighting
(4) Engineering of Software, or Management of Imprecise Engineering
(5) Advanced Engineering Topics, or We Are Engineers After All
(6) Art, or Rather Philosophy

The first part is Joy of Cooking, or Tools of Trade.

Text Manipluation
  text editing (vi, vim, emacs etc)
  text transformation
  code generation
Regular Expression (power of search)
  grep, find
"Uniquitous" Automation with Scripting
  Windows Shell (including VBScript)
  Unix Shell
  Portable Scripts
  JavaScript? (a regular expression engine is available)
  Perl (classic regular expression engine)
  Python, Ruby (fast prototyping)
Source Code Version Control
  Discipline against changes
"More Keyboard Shortcut, Less Mouse"
Time Management and Priority Setting


<to be continued>


Posted Nov 21 2006, 05:03 PM by blackinkbottle
Filed under:

Comments

BlackInkBottle's Ink wrote SDBoK Illustrated (1) Introduction and Text Manipulation
on 05-08-2007 5:42 PM

Said in earlier posts that I may not have the luxury of time to elaborate each bullet I have put down

Copyright SgDotNet 2004-2008
Powered by Community Server (Commercial Edition), by Telligent Systems