Sunday, July 24, 2016

Notepad++ PLSQL Language Syntax Highlight

Ref: http://dwh-consult.de/wp-content/uploads/2016/02/userDefineLang_xml.txt

<NotepadPlus>
 <UserLang name="PL-SQL" ext="pkb pks">
  <Settings>
  <Global caseIgnored="yes"/>
  <TreatAsSymbol comment="yes" commentLine="yes"/>
  <Prefix words1="no" words2="no" words3="no" words4="no"/>
  </Settings>
  <KeywordLists>
   <Keywords name="Delimiters">'00'00</Keywords>
   <Keywords name="Folder+">BEGIN IF</Keywords>
   <Keywords name="Folder-">END</Keywords>
   <Keywords name="Operators">( ) . ; | + &lt; = &gt; :</Keywords>
   <Keywords name="Comment">1/* 2*/ 0--</Keywords>
   <Keywords name="Words1">ABORT ACCEPT ACCESS ADD ALL ALTER
AND ANY ARRAY ARRAYLEN AS ASC ASSERT ASSIGN AT ATTRIBUTES AUDIT
AUTHORIZATION AVG BASE_TABLE BEGIN BETWEEN BINARY_INTEGER BODY BOOLEAN
BY CASE CAST CHAR CHAR_BASE CHECK CLOSE CLUSTER CLUSTERS COLAUTH
COLUMN COMMENT COMMIT COMPRESS CONNECT CONNECTED CONSTANT CONSTRAINT
CRASH CREATE CURRENT CURRVAL CURSOR DATABASE DATA_BASE DATE DBA
DEALLOCATE DEBUGOFF DEBUGON DECLARE DECIMAL DEFAULT DEFINITION DELAY
DELETE DESC DIGITS DISPOSE DISTINCT DO DROP ELSE ELSIF ENABLE END
ENTRY ESCAPE EXCEPTION EXCEPTION_INIT EXCHANGE EXCLUSIVE EXISTS EXIT
EXTERNAL FAST FETCH FILE FOR FORCE FORM FROM FUNCTION GENERIC GOTO
GRANT GROUP HAVING IDENTIFIED IF IN INCREMENT INDEX INDEXES INDICATOR
INITIAL INITRANS INSERT INTERFACE INTERSECT INTO IMMEDIATE IS KEY
LEVEL LIBRARY LIKE LIMITED LOCAL LOCK LOG LOGGING LONG LOOP MASTER
MAXEXTENTS MAXTRANS MEMBER MINEXTENTS MINUS MISLABEL MODE MODIFY
MULTISET NEW NEXT NO NOAUDIT NOCOMPRESS NOLOGGING NOPARALLEL NOT
NOWAIT NUMBER_BASE OBJECT OF OFF OFFLINE ON ONLINE ONLY OPEN OPTION OR
ORDER OUT PACKAGE PARALLEL PARTITION PCTFREE PCTINCREASE PCTUSED
PLS_INTEGER POSITIVE POSITIVEN PRAGMA PRIMARY PRIOR PRIVATE PRIVILEGES
PROCEDURE PUBLIC RAISE RANGE RAW READ REBUILD RECORD REF REFERENCES
REFRESH RELEASE REMR RENAME REPLACE RESOURCE RESTRICT RETURN RETURNING
REVERSE REVOKE ROLLBACK ROW ROWID ROWLABEL ROWNUM ROWS RUN SAVEPOINT
SCHEMA SEGMENT SELECT SEPARATE SESSION SET SHARE SNAPSHOT SPACE SQL
SOME SPLIT START STATEMENT STORAGE SUBTYPE SUCCESSFUL SYNONYM TABAUTH
TABLE TABLES TABLESPACE TASK TERMINATE THEN TO TRIGGER TRUNCATE TYPE
UNION UNIQUE UNLIMITED UNRECOVERABLE UNUSABLE UPDATE USE USING
VALIDATE VALUE VALUES VARIABLE VIEW VIEWS WHEN WHENEVER WHERE WHILE
WITH WORK</Keywords>
   <Keywords name="Words2">ACOS ABS ADD_MONTHS ASCII ASIN
ATAN ATAN2 AVERAGE BFILENAME CEIL CHR CHARTOROWID CONCAT CONVERT COS
COSH COUNT DECODE DEREF DUAL DUMP DUP_VAL_ON_INDEX EMPTY ERROR EXP
FALSE FLOOR FOUND GLB GREATEST HEXTORAW INITCAP INSTR INSTRB ISOPEN
LAST_DAY LEAST LENGTH LENGHTB LN LOWER LPAD LTRIM LUB MAKE_REF MAX MIN
MOD MONTHS_BETWEEN NEW_TIME NEXT_DAY NEXTVAL NLS_CHARSET_DECL_LEN
NLS_CHARSET_ID NLS_CHARSET_NAME NLS_INITCAP NLS_LOWER NLS_SORT
NLS_UPPER NLSSORT NO_DATA_FOUND NOTFOUND NULL NVL OTHERS POWER
RAWTOHEX REFTOHEX ROUND ROWCOUNT ROWIDTOCHAR RPAD RTRIM SIGN SIN SINH
SQLCODE SQLERRM SQRT SOUNDEX STDDEV SUBSTR SUBSTRB SUM SYSDATE TAN
TANH TO_CHAR TO_DATE TO_LABEL TO_MULTI_BYTE TO_NUMBER TO_SINGLE_BYTE
TRANSLATE TRUE TRUNC UID UPPER USER USERENV VARIANCE VSIZE</Keywords>
   <Keywords name="Words3">BFILE BLOB CHARACTER CLOB DEC
FLOAT INT INTEGER MLSLABEL NATURAL NATURALN NCHAR NCLOB NUMBER NUMERIC
NVARCHAR2 REAL ROWTYPE SIGNTYPE SMALLINT STRING VARCHAR
VARCHAR2</Keywords>
   <Keywords name="Words4"/>
  </KeywordLists>
  <Styles>
   <WordsStyle name="DEFAULT" styleID="11" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
   <WordsStyle name="FOLDEROPEN" styleID="12" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0"/>
   <WordsStyle name="FOLDERCLOSE" styleID="13" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0"/>
   <WordsStyle name="KEYWORD1" styleID="5" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1"/>
   <WordsStyle name="KEYWORD2" styleID="6" fgColor="FF8000" bgColor="FFFFFF" fontName="" fontStyle="1"/>
   <WordsStyle name="KEYWORD3" styleID="7" fgColor="FF8080" bgColor="FFFFFF" fontName="" fontStyle="1"/>
   <WordsStyle name="KEYWORD4" styleID="8" fgColor="800040" bgColor="FFFFFF" fontName="" fontStyle="1"/>
   <WordsStyle name="COMMENT" styleID="1" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
   <WordsStyle name="COMMENT LINE" styleID="2" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
   <WordsStyle name="NUMBER" styleID="4" fgColor="FF8000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
   <WordsStyle name="OPERATOR" styleID="10" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
   <WordsStyle name="DELIMINER1" styleID="14" fgColor="0000A0" bgColor="FFFFFF" fontName="" fontStyle="0"/>
   <WordsStyle name="DELIMINER2" styleID="15" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
   <WordsStyle name="DELIMINER3" styleID="16" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0"/>
  </Styles>
 </UserLang>
</NotepadPlus>

Sunday, July 17, 2016

Oracle PLSQL Array - Build Column Names For Query

CREATE OR REPLACE PROCEDURE DOARRAY AS
    PREFIX VARCHAR2(1) := 'a';
    q_str varchar2(2000) := '';
    total_cols integer ;
    /************  only change this : define a new array *******************/
    type col_array IS VARRAY(5) OF VARCHAR2(100);
    col_nms col_array := col_array('name', 'resrce_id', 'addr', 'home_phn', 'mobile_phn');
 
BEGIN
    total_cols := col_nms.count;
    FOR i in 1 .. total_cols LOOP
      case
        when (i=1) then
          q_str := PREFIX || '.' || col_nms(i) || ',';
        when (i=total_cols) then
           q_str := q_str || PREFIX || '.' || col_nms(i);
        else
           q_str := q_str || PREFIX || '.' || col_nms(i) || ',';
      end case;
   END LOOP;
   dbms_output.put_line('Query String: ' || q_str);
END DOARRAY;

Monday, July 4, 2016

Tennis

网球拍拉线(专业电子网球拉线机)

本人是个网球发烧友,打网球十几年了,自己有一台专业电子网球穿线机,6向支撑,10点拍面固定,电子拉线器,提供网球拍拉线服务,方便广大球友。可根据要求横弦竖弦不同拉力分穿,或穿子母组合弦。

穿线费:$10
电  话:647-308-8855(Mark Liang)
地  址:近 Sheppard/kennedy

吸汗带(OverGrip): Dry Feeling(蓝色, 纳米材料干爽舒适) $1

网球弦(含穿线费):

Eagnas Felling 17G(1.25mm 无芯多股高韧纤维缠绕防肠弦,提供近似天然肠弦的超级舒适性、弹性和控球性)$22
Signam Pro Plasma 17L(1.23mm 等离子纳米聚酯弦,提供动态力量和绝佳控球性、耐打性、绝不走弦)$22
Eagnas Nano 17G (1.25mm 纳米材料聚酯弦,手感、 耐打、力量、控球皆好、不走弦)$20

Eagnas Synthetic Gut 16G/17G(1.25/1.30mm 高强度芯和双缠绕高韧度纤维外层防肠弦,手感舒适,控球性,力量和耐久极好)$18
Eagnas Thunder Force 17G(1.25mm 高强度芯和双缠绕高韧度纤维加光纤外层防肠弦, 舒适性,力量, 控球和弹性皆好)$18
Tecnifibre Polyspin 17G(1.25mm 双缠绕高韧度纤维防肠弦,控球和弹性皆好)$18
Prince DuraFlex 17 (1.28mm 双缠绕高韧度纤维防肠弦, 手感舒适控球好)$18


强烈推荐组合弦(Hybride String):

1. 竖弦/横弦:Signam Pro Plasma 17L/Eagnas Synthetic Gut 16G (提供动态力量和绝佳的舒适性、控球性和耐打性、不易走弦)$25
2. 竖弦/横弦:Eagnas Nano 17G/Eagnas Sythetic Gut 16/17G(提供绝佳力量、手感、控球性和耐打、不易走弦)$20
3. 竖弦/横弦:Eagans Tunder Force 17G/Tecnifibre Polyspin 17G(提供绝佳的控球性、力量、手感舒适)$20
城市:Scarborough
联系人:Mark Liang
联系方式:647-308-8855

WebFocus Users

1. SYSTEMTEC Greensboro, NC :
WebFOCUS dashboards, SQL Oracle and DB2,Front end web development and mobile device web development
2. Plantation, Florida
3. Fidelis Care - New York City Regional Office -Agile development environment
4. Dallas, TX - Data Solutions & Technology Incorporated
administrative support:implementations, upgrades, and migrations. 
create user accounts, administration, monitor server tasks
installation, configuration, migration, tuning, and administration.  g command scripts in Windows and shell scripts
5. Princeton, NJ - UNIX, Shell Script, stored procedures, triggers,WF 8.0, Report Assist
6. Plant City, FL
7. Cincinnati, OH
8.Minneapolis, MN
http://www.careerjet.com/webfocus-jobs.html
Apex System,Thomasville, NC
CRG - Winston-Salem, NC
Kelly IT Resources - South Jordan, UT
Genesis10 - Kansas City, MO
U.S. Bank - Richfield, MN
Northrop Grumman - Woodlawn, NY - Maryland
Woodlawn, NY
GDI Infotech - Mason, OH
Enterprise Solution inc - Plantation, FL
Next Level Business Services, Inc. - Plantation, FL
Kelly IT Resources - South Jordan, UT
Apex Systems - Thomasville, NC
CRG - Winston-Salem, NC
ITech US, Inc. - Denver, CO
Dearborn, MI
Dublin, OH
Power I.t., Llc - Kansas City, MO
Econosoft Inc - Detroit, MI
UNICON International, Inc. - Dublin, CA
Hanover, MD
--------------------------
Company : ITech US, Inc.
Website : http://itechus.net
Posted By : Hitesh Rai
Phone : N/A
Lucid Jobs ID : 88Y9RU619X
Type : Contract
-----------------------
https://www.jobisjob.com/webfocus/jobs
Industry : Others

https://www.jobisjob.com/webfocus/jobs
WF JOB

9 Job Density on MAP:
http://www.robertmanduca.com/projects/jobs.html






Sunday, July 3, 2016

Oracle - Using Cursor to Insert Record from Remote Database Link With Hint

/********************Using Procedure**************/

CREATE OR REPLACE PROCEDURE INSERT_BY_FETCH AS
l_num_rows number := 10000;
l_row   yc64.test%ROWTYPE;
CURSOR test_cur
  is
  select Name, addr
  from yc64.test
  where rownum< 20;
BEGIN
  open test_cur;
  LOOP
      FETCH test_cur INTO l_row;
      EXIT WHEN test_cur%NOTFOUND;
      DBMS_OUTPUT.put_line(l_row.name );  
      insert into T_INSERT values l_row;
   END LOOP;
  CLOSE test_cur;
END INSERT_BY_FETCH;

/********************Using View**************/
--create view
CREATE VIEW yc64.v_test AS
SELECT a.* FROM yc64.test a WHERE rownum < 2000;
COMMIT; 

--create a table
create table yc64.t_insert as
SELECT a.* FROM yc64.test a WHERE rownum < 2000;
commit;

insert into yc64.t_insert 
select * from yc64.v_test;

select count(*) from yc64.t_insert ;




Monday, May 30, 2016

Using Windows PowerShell to Start Service Which Stopped

#Start all non-running Auto services
#C:\Users\duke\Documents
#taskschd.msc

#Step 1: Run One Time
#Set-ExecutionPolicy -Scope LocalMachine Unrestricted

#Step 2: Create a batch file like:  PowerShell -noexit -file "C:\Users\duke\Documents\rstart.ps1", add to windows Scheduler
$Computer = “WIN-36TFBPF3FHK”
$ServiceName = 'webclient'
#stop-service $ServiceName
#get-service -name $ServiceName
Get-WmiObject win32_service -ComputerName $computer -Filter " state != 'running' AND name = '$ServiceName'" | Invoke-WmiMethod -Name StartService
#get-service -name $ServiceName

Friday, May 27, 2016

业务技术专家-业务管理

多与人相处,寻找团队合作的机会,因为这是管理者必需的基础能力


任何团队协作都涉及到任务分工
任何技术团队都涉及到代码规范、合并和管理

一个技术人员的职业发展过程大致是这样的:

实习期
还在学校学习,之前从未涉及过真实工程或项目,实习期间通过阅读项目代码,修复bug等开始积累经验,每天都会觉得自己收获很大,时间不够;


应届毕业
经验不多,参考项目其他模块代码后,能独立完成小功能需求,能胜任小模块开发,也能维护项目代;


工作2-5年
能胜任任何功能模块开发,并开始做模块设计和系统设计,设计的东西自己能用,做得好也许还能给别人;


工作5年以上
负责整个项目的架构设计,实现项目的基础和核心模块。



误区:大甩手就失去控制能力,要插入进去,要控制核心,不失去核心
前三个阶段的思维方式都是考虑自己怎么做,怎么实现功能,怎么完成任务。到第四个阶段,就会开始涉及到管理相关的工作,因为,首先,你的东西再也不是你一个人用的,你需要跟别人讲解和沟通;其次,你的架构和核心模块出来以后,你需要把剩下的任务合理分配给合适的成员来开发。



重心:架构模式设计只做不讲,只分配任务,只做核心

我认为,从技术岗位转型为管理岗位,更多的不是能力的变化,而是思维方式和心态的改变。


作者:李攀
链接:https://www.zhihu.com/question/26830960/answer/64604579
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

管理者三大核心职责如下:

确立团队的目标。
不论项目大小,一定要有目标,有目标才能让所有人明确方向,知道每天工作的意义在哪儿,工作是不是朝着团队的目标在一步步靠近。 纯技术人员的执行者思维应该切换为宏观思维,因为现在个人的成功已经不叫成功,团队成功才是成功,如何让团队产出高的绩效才是你应该思考的问题。

离达成这个目标我们还缺哪些资源。
这点主要涉及到统筹规划能力。在项目初期,你就需要非常清楚明确地知道目前团队的能力以及你能调配的资源,这样才能保证后期不会因为资源不足导致目标无法达成。

我们如何朝着目标迈进。
这一点穿插在整个过程中,是最重要,也是我这两年在聚会玩的团队管理中看到和亲身体会最深的,它囊括了技术管理的方方面面。

如果某件事一个人做需要m个工时来完成,那么n(n>1)个人来做,理论所需工时是m/n,但是实际的时间一定比这个多,结果是(m/n)*α(α>1),α就是协作成本。技术管理者要做的,就是尽量降低协作成本,包括以下方面:

任务分配
之前你一个人能把事情做得很好,现在怎么保证团队一群人把它做好?任务分配包括如何把任务合理地分配给适合的人,能达到最好的结果,即人的价值得以体现,产出质量也高。这就要求管理者对任务的了解要全面深入,对团队每个人的能力了解也要准确。
全局观
技术人员工作时都需要专注,反过来,作为技术管理人员,要防止过度专注。多去了解项目各方面的进展和存在的问题, 对项目和团队的任何细节了如指掌,出现任何大大小小的问题都能迅速定位和分析解决,不会因为专注于技术细节而失去对全局控制。
沟通能力
以前每天和机器沟通,现在切换为和人沟通。以前的桀骜不驯和不屑是因为技术能力强,现在应该切换为更耐心,更注意语气和用词的沟通。另外,更多的去主动发现问题,然后通过沟通技巧来解决问题。
协调调度能力
项目过程中一定会遇到一些无法预期的技术问题导致项目被block,如果问题已经持续未被解决,这时需要及时调度有能力的人来参与解决,防止项目一直处于不确定状态。当多个功能或者项目并行进行时,由于人力资源有限,可能需要不断地根据项目进展来动态调整各项目优先级来保证整体的进度。优先级调度和调整是一个很复杂的过程,但记住一点,我们永远只做优先级最高的事情,最高优先级事情完成以后,优先级第二的事情自然会升级为优先级最高的事情,在这个升级的过程中,我们也许还需要和产品等相关部门进行一次优先级动态调整或者评估。这也涉及到项目管理的负反馈,让每一个阶段的结果反馈给新的阶段,保证最后的结果更接近我们的目标。
时间管理能力
时间管理是每个团队都头疼的事情,直接体现在项目进度上。时间管理看起来很难,实际很简单。每个任务拆分一定要足够细可量化,2天以上的任务都是不合理的。而且过程中需要严格控制好每一个量化好的时间节点或里程碑,保证每个节点的质量和时间点无误是保证最终结果的最好方式,出现任何一处delay都需要强制想办法及时补救,避免积少成多,这样才能防止项目最后出现不可能预期的延期。
放权和培养
亲自去解决具体的技术问题,做代码审核看代码哪些地方存在不规范,和测试人员讨论具体的测试用例是否合理,这些工作现在需要做,但是,它们已经不再是你关注的重点,你应该更多的放权让其他人去做,在这个过程中一定不需事事亲为,在这基础上,你应该更加注重对成员的培养,培养他们的学习能力,思考能力和解决问题的能力(这三个能力是我对技术人员的基本要求),让成员快速进步和成长,独当一面。
倾听
不管以前技术多牛,多恃才放旷和桀骜不驯,作为管理者,需要背负团队的使命和绩效,所以应该在任何时候主动听取团队核心成员的意见,做一个好的倾听者。倾听一定要做到多维度听取,然后再分析和做决定。
学习能力,思考能力和解决问题的能力(这三个能力是我对技术人员的基本要求),让成员快速进步和成长,独当一面。

带领团队来看最为重要的方法是以身作则

开复:做管理的工作最重要的是要有服务的意识,好的管理不在于驾驭他人,而在于有足够的管理智慧。
      S :那么,我该如何得到这种智慧呢?
      开复:首先要得到下属的尊敬和信任。
      S :那我又该如何得到他们的信任呢?
      开复:学会团体合作,学会为下属着想,只有将心比心,才能赢得信任。
      S :该如何得到他们的尊敬呢?
      开复:你要做一个优秀的人,一个有理想、有抱负、有能力的人。这样才能够得到他人的发自内心的尊敬。
      S :那么,我又该如何找到理想、获取抱负、得到能力呢?
      开复:要有良好的素质、习惯和态度。但最重要的是,你必须是一个好人,一个讲诚信的人。惟此,你才有可能成为一个成功的人。


强调责任还应在团队成员身上加以落实,不断倡导对于所承诺的事应努力达成,形成一种务实的团队作风。请记住,责任重于“面子”,不重视责任就是牺牲团队每一个人的利益,无人能逃

高效开会。我发现不少技术管理者有开长会的毛病,有的将开会当作是“team building”,或者同样的问题一遍又一遍地“炒”。开长会通常是团队责任缺失的一种表现、是集体无能的反映、是一种“合理”与奢侈的浪费。


我们团队在开发上做到了每周一次迭代,两周一次版本发布

适合一对一沟通的内容有很多,包括:
不成熟的看法
迫在眉睫的问题
精彩的想法
倾诉焦虑
抱怨

也介绍了一些适合用来引导的问题:
当前产品还有哪些可以提高的地方?
我们部门的最大问题是什么,为什么?
如果有,你觉得工作中有哪一点令你感觉不舒服?
你觉得谁的工作最优秀,为什么?
我们的产品哪方面不尽如人意?
我们错失的最大机遇是什么?
哪些是我们应该做而没有做的?
你自己希望未来在哪些方面能有提高?
有什么我能为你做的事情?

尽量招靠谱的人,那么在管理技术上的工作就只需要遵守「尽量授权」的原则来就可以了


做技术主要有几个方向:
http://chuansong.me/n/306570051751
1. 技术专家

2. 架构师

3. 业务专家


技术专家路线:

技术专家就是通常称为某个领域或者某项特殊技术的专家,举个例子说,你是一个Java专家,那么从Java基本的语言特性到内部机制,JVM虚拟机等等,你无所不知无所不晓,或者是Oracle专家、MySQL专家,就是你所精通的这个子领域你是非常非常专业的,而且这个子领域学习门槛非常高,不是轻易简单可以弄通的,那么你就成为了这个领域专家,自然,你从学习技术中获得乐趣,也从别人膜拜和处理别人没法处理的问题获得快乐,当然,只要这个你擅长的技术领域一直存在,你的职业就会高枕无忧!当然,需要时刻更新自己的知识。技术专家的核心就是:深入而精通!


架构师路线:

架构师就是对某一个技术领域的各个知识点,各种工具都很了解,能够依赖掌握的知识和经验,在做新技术或者是搭建某些业务的时候给出最有效的架构指导,或者在比如性能出现瓶颈的时候迅速可以给出良好的解决方案。架构师的概念很宽泛,软件架构师和互联网体系架构师所需要掌握的技术是完全不同的。举个例子说,你是一个LAMP架构师,那么你会了解Linux、Apache、MySQL、PHP的整套工具组合,你也了解相关网站知识,知道各种开源技术,了解各种碰到问题的解决方案,并且你不局限这些,你还能够通过目前掌握的知识,能够延伸解决更复杂的问题,或者在遇见复杂问题的时候给出最有效的建议和方案。架构师的核心就是:技术能力广、经验丰富、解决问题能力强、思路视野比较宽广。


业务专家路线:

业务专家更多在软件行业,比如说各种ERP系统,或者是某些信息管理类系统,都会存在不同行业的业务差别巨大。比如烟草行业和电信行业就不是一个业务模型,而且这些模型不是随便一个人就可以了解的,别人可能需要花费1年或者好几年才能去深入了解各种业务差别和细节,所以你就是整个了解技术和业务的专家,随便不能被取代,实际表现的职位可能是需求工程师或者是架构师的角色出现,实际掌握的技能是偏业务的,但是整个角色跟一般的市场、产品经理角色不同,而是了解技术的业务专家!只要行业不挂,该类软件需求存在,自然饭碗可保!
从上面来看,其实架构师是很多人追求的,技术专家就需要个人性格和对计算机技术的非常热爱才行,业务专家一般在软件行业,各个业务不同,需求和差别也是很大的。

管理路线:

管理路线跟技术路线要求的技能是完全不同的,一般我们说的管理会偏向于技术管理,但是如果越往上走,可能针对某个领域的管理能力就会越弱化,比如你之前是技术总监需要关注一些大方面的技术方向,等你变成副总裁以后,可能对技术方面的要求就会完全弱化了,更多只是管理能力了。
我们从技术管理角度来看,至少要求懂技术、会管理,这都是宽泛的概念,不同公司对管理的定义不一样,比如有些公司的技术管理角色可能只是一个架构师的角色,或者是一个项目分配的角色,这些都是偏颇。

一般的技术管理来说是能够懂技术,在某些重大技术决策上面会有一些个人的见解,另外就是懂管理,比如很多软素质,沟通能力、向上汇报向下传达能力、团队管理能力、人员培养能力、上下游部门合作把控能力、业务需求沟通能力、在重大问题的决断能力、长远目标和规划能力、执行力等等。我觉得最基础的能力是沟通能力、判断力、执行力、推动能力等,沟通能力渗透到每一个地方,不论是上下游合作,业务和需求讨论,还是团队成员思想教育,都需要沟通能力,管理非常重要的就是沟通能力。另外一个就是判断力,比如你需要能够判断某个业务的重要程度、某个成员的个人能力情况、某个业务需求的合理和实现成本等等,这些是建立在经验或思考后进行准确判断的基础上面。执行力是我们对业务的支持,或者是对上级老板下达工作要求的快速行动,都是执行力的范畴。

综合来看,管理能力跟技术能力的要求差别还是比较大,所以对岗位要求也是不同,实际对人的性格等要求也是不同的