最能体现软件工程师基本功的是什么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
willwen
V2EX    问与答

最能体现软件工程师基本功的是什么?

  •  
  •   willwen 2015-01-16 06:3:45 +08:00 via iPhone 6869 次点击
    这是一个创建于 3921 天前的主题,其中的信息可能已经有所发展或是发生改变。
    好吧,我也不说程序员了。 有什么能用来区分功力深厚和浮躁骚年呢? 我先来:数学在开发中运用(不全是算法)。
    59 条回复    2015-01-17 09:37:31 +08:00
    EthanZ
        1
    EthanZ  
       2015-01-16 06:47:59 +08:00
    Make coffee and order take out :D . just kidding
    msg7086
        2
    msg7086  
       2015-01-16 06:54:59 +08:00
    要是数学的话起码一半的软工会被干掉。
    前几天刚刚被人问了个题目。
    说快速求第n个斐波那契数怎么求。n > 2^32。结果要求精确值。
    willwen
        3
    willwen  
    OP
       2015-01-16 07:08:22 +08:00 via iPhone
    @msg7086 fibo(n)=sqrt(5)/5*((1+sqrt(5))/2)-((1-sqrt(5))/2)
    willwen
        4
    willwen  
    OP
       2015-01-16 07:09:35 +08:00 via iPhone
    @msg7086 sorry,少了n次方
    msg7086
        5
    msg7086  
       2015-01-16 07:12:54 +08:00
    @willwen 精度不够……
    willwen
        6
    willwen  
    OP
       2015-01-16 07:17:02 +08:00 via iPhone
    @msg7086 高精度不如逼近?
    cnnblike
        7
    cnnblike  
       2015-01-16 07:20:26 +08:00
    @msg7086 二分快速幂?
    willwen
        8
    willwen  
    OP
       2015-01-16 07:24:19 +08:00 via iPhone
    @cnnblike 那西已不算是了吧?。。完全是暴力逼近得出的值
    okay, stop. 歪了
    cnnblike
        9
    cnnblike  
       2015-01-16 07:28:19 +08:00
    @willwen 二分快速幂+矩阵乘法啊……这不是基础么?我比较好奇你为什么要用浮点数去逼近一个整数数列,效率低下+处理不便。
    acdea4effdbb420d
        10
    acdea4effdbb420d  
       2015-01-16 07:30:45 +08:00
    IQ
    em70
        11
    em70  
       2015-01-16 07:35:51 +08:00 via Android
    debug
    silvernoo
        12
    silvernoo  
       2015-01-16 07:48:43 +08:00 via Android
    命令行算其中之一
    typcn
        13
    typcn  
       2015-01-16 07:51:03 +08:00
    数学盲,只会基础运算和常见算法
    msg7086
        14
    msg7086  
       2015-01-16 08:04:23 +08:00
    @willwen #9已经说得很明白了嘛。
    所以我说如果用数学来筛人的话得筛掉一大批了。
    7654
        15
    7654  
       2015-01-16 08:13:12 +08:00
    首先,你要会装电脑,然后各种报错要知道是什么并解决他们
    willwen
        16
    willwen  
    OP
       2015-01-16 08:13:53 +08:00 via iPhone
    @typcn 我得是用方恨少的西吧,你是15初中生?在?我建 ^_^

    @msg7086 是基本功吧,不一定要很害,但是起能在需要的候能游刃有比好。

    指:程哲或程言本原理的理解
    sanddudu
        17
    sanddudu  
       2015-01-16 08:16:23 +08:00 via iPhone
    发现问题 提出问题 分析问题 解决问题 的能力
    wohenyingyu01
        18
    wohenyingyu01  
       2015-01-16 08:36:35 +08:00
    希伯尔空间,傅立叶变换,泛函分析,blablabla.....all bullshit.
    willwen
        19
    willwen  
    OP
       2015-01-16 08:37:34 +08:00 via iPhone
    @em70 分度不啊
    @silvernoo pipe比切
    @sanddudu 分度也不太,打字都知道怎fix bug
    hcymk2
        20
    hcymk2  
       2015-01-16 09:00:20 +08:00
    软件工程师首先要是一名工程师,但是其实有多少的程序员能称之为工程师呢?
    vChrysanthemum
        21
    vChrysanthemum  
       2015-01-16 09:05:52 +08:00
    数学:分析、代数、离散?(加常见的数学模型,譬如常见的微分方程的建立与求解方法+基本概率模型?)
    计算机:操作系统、编译原理、网络、数据库、算法数据结构?
    英语
    vChrysanthemum
        22
    vChrysanthemum  
       2015-01-16 09:06:58 +08:00
    再加个几何,凑三分支
    sanddudu
        23
    sanddudu  
       2015-01-16 09:16:10 +08:00 via iPhone   2
    @willwen 问你个问题,为什么要去区分程序员的功力?
    每个人总有自己擅长和不擅长的地方(比如你找运维他不一定能给你用 shell 写个斐波那契数列出来),懂得取长补短,学会提升自己才是重要的。
    都是程序员,一定要拿个具体标准区分,甚至贬低别人来提高自己么。
    我比较同意一句话 "外行越学越有趣,内行越学越痛苦" ,为什么呢?
    sanddudu
        24
    sanddudu  
       2015-01-16 09:19:17 +08:00 via iPhone   1
    刚才没写完。
    因为入门总是容易的,但是深入总是痛苦的。
    特别是它还和你的工资挂钩的时候。
    另外即使是打字员也会写脚本给自己代劳的。

    最后,Javascript 是世界上最好的语言 XD
    有的话不是针对 LZ,不要在意
    Dongdong36
        25
    Dongdong36  
       2015-01-16 09:20:47 +08:00
    @sanddudu 同意
    willwen
        26
    willwen  
    OP
       2015-01-16 09:26:38 +08:00 via iPhone
    @sanddudu 你的,不於者,能靠的人共事是非常重要的。
    如果了性比招一看上去很牛逼的浮躁期打字,失去的是很大的值,比如成本。
    sanddudu
        27
    sanddudu  
       2015-01-16 09:35:39 +08:00 via iPhone
    @willwen 人是最大的不确定因素
    你去应聘都会碰上极品老板呢
    sanddudu
        28
    sanddudu  
       2015-01-16 09:37:42 +08:00 via iPhone
    @willwen 另外事实上老板需要的是成本最小化和利益最大化
    都想招个以一顶百的,只要付一份的钱
    simpx
        29
    simpx  
       2015-01-16 09:57:30 +08:00
    难道不是写文档之类的东西吗?
    要通俗易懂,非开发人员也能明白个大概意思
    但又逻辑严谨,对开发人员来说要有伪代码的效果
    Catstyle
        30
    Catstyle  
       2015-01-16 09:58:38 +08:00
    @sanddudu
    程序员大多都会有 文人相轻 这种习气

    没错,对于创业者来说,能够和一帮靠谱的人共事是一种幸福
    可是靠谱的定义不单单指 技术的功力
    处事的方式,工作的态度,成功的欲望,自我驱动的原动力
    种种这些,哪个不是创业者所不能或缺的?

    士别三日,当刮目相待
    ivenvd
        31
    ivenvd  
       2015-01-16 10:09:46 +08:00
    大部分编程都用不到数学吧……我觉得应该是逻辑能力、沟通能力(包括写文档)之类的吧……
    willwen
        32
    willwen  
    OP
       2015-01-16 10:13:50 +08:00 via iPhone
    @sanddudu @Catstyle 作老,在我看一靠的工程,如果能在技方面就熟,不浮躁,而且能在通(depends on exp)方面能成熟老到,那TA在事方式、待人接物方面大多都理得不差。

    我的每夥伴都是相靠的友,不一定技好,但是很能。策基本是公投的 ^_^
    mornlight
        33
    mornlight  
       2015-01-16 10:22:39 +08:00
    基本功难道不应该是快速学习新东西的能力吗。
    patchao2000
        34
    patchao2000  
       2015-01-16 11:08:21 +08:00
    打字速度
    otakustay
        35
    otakustay  
       2015-01-16 11:16:07 +08:00
    远比数学还重要的:逻辑拆解能力,即把一个问题变成程序化的逻辑分支和循环的能力

    我发现好多人这能力很差,这种人我都认为是扶不起的……
    ybh37
        36
    ybh37  
       2015-01-16 12:56:16 +08:00
    不觉得数学硕士毕业的同事比我编程能力强。
    不搞底层开发就不要动不动拿数学说事儿。
    besto
        37
    besto  
       2015-01-16 13:01:00 +08:00
    先回答歪楼的:计算机科学研究和软件工程师,是有本质区别的。

    再回答LZ的问题:设计能力,没有之一。
    拿到新需求,如果设计。
    vertion
        38
    vertion  
       2015-01-16 13:03:08 +08:00
    与人交往的能力
    emonber
        39
    emonber  
       2015-01-16 13:18:56 +08:00 via Android
    变量和函数的命名?目前最纠结这个了,既简短又清晰……
    willwen
        40
    willwen  
    OP
       2015-01-16 13:23:19 +08:00 via iPhone
    @ybh37 我做分析的,知比程更重要
    standin000
        41
    standin000  
       2015-01-16 13:41:15 +08:00
    盲打算一个
    lbp0200
        42
    lbp0200  
       2015-01-16 13:44:35 +08:00   1
    1-100的求和问题,我就难倒了好几个人,哈哈
    io
        43
    io  
       2015-01-16 14:18:40 +08:00
    懂不懂算法是软件领域中工程师和工人的分水岭
    madao
        44
    madao  
       2015-01-16 14:25:33 +08:00
    算法和数学只是基础吧,但是把这个当做银弹也是想多了。例如楼上讨论n个斐波那契数的例子。
    Geeker
        45
    Geeker  
       2015-01-16 18:08:00 +08:00
    debug 最重要
    h2ero
        46
    h2ero  
       2015-01-16 18:19:15 +08:00
    自己通过学习解决问题的能力吧。
    lincanbin
        47
    lincanbin  
       2015-01-16 18:34:25 +08:00
    赚钱的能力
    twd2
        48
    twd2  
       2015-01-16 20:02:58 +08:00
    自学能力
    Viztor
        49
    Viztor  
       2015-01-16 20:22:17 +08:00
    建模:
    软工的主要意义是解决实际问题。建立一个好的模型无疑是至关重要的第一步。
    如果连把问题转化成一个可实现模型的能力都无,何谈实现?
    更进一步:构建优秀的模型无疑可以降低软件开发的难度,从而逐步化解,分而治之...

    (以上纯属扯淡

    楼主说的毕竟是软件工程而非程序员。
    算法之类的不觉得有过于特别的意义。
    mxflove123
        50
    mxflove123  
       2015-01-16 21:50:15 +08:00
    好多人都在提自学能力,到底怎么才能区分自学能力的强弱
    willwen
        51
    willwen  
    OP
       2015-01-16 22:24:13 +08:00 via iPhone   1
    @mxflove123 自能力好比加速度,除了在於用力多少,在於之前的知的掌握程度。如果能已有的知中抽取通用的,概念性的西,就很可能在新的事物中得到用以融通。
    moroumo
        52
    moroumo  
       2015-01-16 22:30:36 +08:00
    Software Development Engineer = SDE = Someone Do Everything
    superalsrk
        53
    superalsrk  
       2015-01-17 00:09:32 +08:00
    斐波纳那个。。大概是用 “斯图特工具吧”, 而且感觉上没刷过一些oj几乎没机会碰到这种题。。个人认为:作为工程师,把算法文档拿过来,能能很优雅的进行建模,并通过所有的test case,水平已经相当高了。。。
    superalsrk
        54
    superalsrk  
       2015-01-17 00:09:46 +08:00
    斐波纳那个。。大概是用 “斯图特公式吧”, 而且感觉上没刷过一些oj几乎没机会碰到这种题。。个人认为:作为工程师,把算法文档拿过来,能能很优雅的进行建模,并通过所有的test case,水平已经相当高了。。。
    ytzong
        55
    ytzong  
       2015-01-17 00:32:04 +08:00
    会不会番羽墙
    Bitex
        56
    Bitex  
       2015-01-17 01:16:01 +08:00 via iPhone
    RTFM, STFW
    scusjs
        57
    scusjs  
       2015-01-17 01:42:45 +08:00
    最近发现,线性代数和概统很重要。。快疯掉了
    Epsil0n9
        58
    Epsil0n9  
       2015-01-17 07:44:53 +08:00
    基本功=IQ+记住有效的知识(合适的教材资料和他人自己的经验)。
    mxflove123
        59
    mxflove123  
       2015-01-17 09:37:31 +08:00
    @scusjs 考研狗表示so熟悉 哈哈
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1012 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 18:37 PVG 02:37 LAX 11:37 JFK 14:37
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86