V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
willwen
V2EX  ›  问与答

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

  •  
  •   willwen · 2015-01-16 06:31:45 +08:00 via iPhone · 6172 次点击
    这是一个创建于 3360 天前的主题,其中的信息可能已经有所发展或是发生改变。
    好吧,我也不说程序员了。 有什么能用来区分功力深厚和浮躁骚年呢? 我先来:数学在开发中运用(不全是算法)。
    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   ·   我们的愿景   ·   实用小工具   ·   1386 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 23:42 · PVG 07:42 · LAX 16:42 · JFK 19:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.