willwen
V2EX  ›  问与答

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

  •  
  •   willwen · Jan 16, 2015 via iPhone · 7307 views
    This topic created in 4155 days ago, the information mentioned may be changed or developed.
    好吧,我也不说程序员了。 有什么能用来区分功力深厚和浮躁骚年呢? 我先来:数学在开发中运用(不全是算法)。
    59 replies    2015-01-17 09:37:31 +08:00
    EthanZ
        1
    EthanZ  
       Jan 16, 2015
    Make coffee and order take out :D . just kidding
    msg7086
        2
    msg7086  
       Jan 16, 2015
    要是数学的话起码一半的软工会被干掉。
    前几天刚刚被人问了个题目。
    说快速求第n个斐波那契数怎么求。n > 2^32。结果要求精确值。
    willwen
        3
    willwen  
    OP
       Jan 16, 2015 via iPhone
    @msg7086 fibo(n)=sqrt(5)/5*((1+sqrt(5))/2)-((1-sqrt(5))/2)
    willwen
        4
    willwen  
    OP
       Jan 16, 2015 via iPhone
    @msg7086 sorry,少了兩個n次方
    msg7086
        5
    msg7086  
       Jan 16, 2015
    @willwen 精度不够……
    willwen
        6
    willwen  
    OP
       Jan 16, 2015 via iPhone
    @msg7086 高精度還不如逼近?
    cnnblike
        7
    cnnblike  
       Jan 16, 2015
    @msg7086 二分快速幂?
    willwen
        8
    willwen  
    OP
       Jan 16, 2015 via iPhone
    @cnnblike 那東西已經不算是數學範疇了吧?。。完全是暴力逼近得出來的值
    okay, stop. 別歪樓了
    cnnblike
        9
    cnnblike  
       Jan 16, 2015
    @willwen 二分快速幂+矩阵乘法啊……这不是基础么?我比较好奇你为什么要用浮点数去逼近一个整数数列,效率低下+处理不便。
    acdea4effdbb420d
        10
    acdea4effdbb420d  
       Jan 16, 2015
    IQ
    em70
        11
    em70  
       Jan 16, 2015 via Android
    debug
    silvernoo
        12
    silvernoo  
       Jan 16, 2015 via Android
    命令行算其中之一
    typcn
        13
    typcn  
       Jan 16, 2015
    数学盲,只会基础运算和常见算法
    msg7086
        14
    msg7086  
       Jan 16, 2015
    @willwen #9已经说得很明白了嘛。
    所以我说如果用数学来筛人的话得筛掉一大批了。
    7654
        15
    7654  
       Jan 16, 2015
    首先,你要会装电脑,然后各种报错要知道是什么并解决他们
    willwen
        16
    willwen  
    OP
       Jan 16, 2015 via iPhone
    @typcn 我覺得這是用時方恨少的東西吧,聽說你是15歲初中生?沒在讀書?我建議補補課 ^_^

    @msg7086 數學是基本功吧,不一定說要很厲害,但是起碼能在需要的時候能游刃有餘會比較好。

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

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

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

    士别三日,当刮目相待
    ivenvd
        31
    ivenvd  
       Jan 16, 2015
    大部分编程都用不到数学吧……我觉得应该是逻辑能力、沟通能力(包括写文档)之类的吧……
    willwen
        32
    willwen  
    OP
       Jan 16, 2015 via iPhone
    @sanddudu @Catstyle 作為老闆,在我看來一個靠譜的工程師,如果能在技術方面駕輕就熟,不浮躁,而且能在團隊溝通(depends on exp)方面能成熟老到,那麼TA在處事方式、待人接物方面大多都處理得不差。

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

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

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

    (以上纯属扯淡

    楼主说的毕竟是软件工程而非程序员。
    算法之类的不觉得有过于特别的意义。
    mxflove123
        50
    mxflove123  
       Jan 16, 2015
    好多人都在提自学能力,到底怎么才能区分自学能力的强弱
    willwen
        51
    willwen  
    OP
       Jan 16, 2015 via iPhone   ❤️ 1
    @mxflove123 自學能力好比加速度,除了在於用力多少,還在於之前的知識的掌握程度。如果能從已有的知識中抽取通用的,概念性的東西,就很可能在新的事物中得到運用以融會貫通。
    moroumo
        52
    moroumo  
       Jan 16, 2015
    Software Development Engineer = SDE = Someone Do Everything
    superalsrk
        53
    superalsrk  
       Jan 17, 2015
    斐波纳那个。。大概是用 “斯图特工具吧”, 而且感觉上没刷过一些oj几乎没机会碰到这种题。。个人认为:作为工程师,把算法文档拿过来,能能很优雅的进行建模,并通过所有的test case,水平已经相当高了。。。
    superalsrk
        54
    superalsrk  
       Jan 17, 2015
    斐波纳那个。。大概是用 “斯图特公式吧”, 而且感觉上没刷过一些oj几乎没机会碰到这种题。。个人认为:作为工程师,把算法文档拿过来,能能很优雅的进行建模,并通过所有的test case,水平已经相当高了。。。
    ytzong
        55
    ytzong  
       Jan 17, 2015
    会不会番羽墙
    Bitex
        56
    Bitex  
       Jan 17, 2015 via iPhone
    RTFM, STFW
    scusjs
        57
    scusjs  
       Jan 17, 2015
    最近发现,线性代数和概统很重要。。快疯掉了
    Epsil0n9
        58
    Epsil0n9  
       Jan 17, 2015
    基本功=IQ+记住有效的知识(合适的教材资料和他人自己的经验)。
    mxflove123
        59
    mxflove123  
       Jan 17, 2015
    @scusjs 考研狗表示so熟悉 哈哈
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   986 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 161ms · UTC 19:49 · PVG 03:49 · LAX 12:49 · JFK 15:49
    ♥ Do have faith in what you're doing.