zoukankan      html  css  js  c++  java
  • Software engineers should write

    1. Reference

    http://www.shubhro.com/2014/12/27/software-engineers-should-write/

    2. src

    In elementary school, there were “math kids” and there were “English kids”. You were classified by the other kids’ impression of your prowess in each subject.

    I was a math kid. So I majored in computer science and set off to be a software engineer. Along the way, though, the “math kid”/”English kid” designation never really wore off. If anything, it got stronger. The engineers I meet today cringe at the thought of writing an essay. And the writers I meet cringe at the thought of writing code.

    What a shame! An engineer who writes code should also write essays.

    Software engineers should write because it promotes many of the same skills required in programming. A core skill in both disciplines is an ability to think clearly. The best software engineers are great writers because their prose is as logical and elegant as their code.

    Code and essays have a lot more in common. Both begin as a blank slate and an idea, then end as a discrete product for an intended audience. The product is a sequence of logical statements, bundled into modular units– whether it be functions or paragraphs. Like good prose, good code is concise (think "expressive"). Bad code wastes CPU cycles; bad essays waste brain cycles. The writer’s draft is the engineer’s prototype.

    When closing in on a finished product, the engineer feels the same uneasiness as the weary writer. As with essays, software never quite feels “done”. It nudges for more of the engineer’s time: another feature to be built, another module that needs refactoring. He/she’s afraid it won’t be the best representation of his/her work. Oh well. Ship it.

    Software engineers should write because our craft is increasingly collaborative. Open source projects invite worldwide participation, while industry products often require an army of engineers. (Google Maps has 1100 full-time employees! ) Good writing– whether it be in a GitHub comment, code review, or technical documentation– facilitates clear, concise communication for projects like these to move forward.

    Even if a project doesn’t require communication, writing about software in general promotes learning and important discussions. We don’t have to learn from RFC specs and technical manuals, thanks to tutorials written by other engineers. In technical discussions, only so much opinion can be stuffed into a Hacker News comment or a tweet. The rest begs to be channeled into a blog post.

    On the topic of blog posts, put some time into them. Good writing takes time. It’s natural to write a “sloppy copy” off the bat, then improve the quality over serveral revisions. If you feel too busy to blog, at a loss for topics, or worried about your opinion being on the public record, give Steve Yegge’s You Should Write Blogs ten minutes of your time. Even if it doesn’t convince you, I think you’ll enjoy the read.

    Software engineers should write because they might actually enjoy writing. Many of us are motivated by the potential for our software to have “impact”, to make a difference in people’s lives.

    In the same way, writing is a powerful vehicle for impact. The blog post on management helps a manager invigorate his team with motivation. The tutorial on programming sparks a student’s interest in computer science. The essay on career advice inspires a graduate to pursue a new career path.

    Even if nobody reads your essay, writing it will make an impact on you. It will clarify your opinion on a topic and strengthen– or even weaken– your beliefs. The process alone of putting jumbled thoughts into concrete words is valuable.

    Writing offers the same sense of impact that motivates an engineer to write software. Combine this with how it promotes skills useful in software engineering and facilitates collaboration, then suddenly writing appears to be a worthwhile activity.

    Even for the “math kids”.

    3. Words

    prowess

     ['praʊɪs]

    n. 英勇;超凡技术;勇猛

    set off

     [,set 'ɔf]

    v. 出发;引起;动身;

    designation

    [dezɪg'neɪʃ(ə)n]

    n. 指定;名称;指示;选派

    wore off

    磨损;逐渐消逝

    cringe

    [krɪn(d)ʒ]

    vi. 畏缩;奉承;阿谀

    prose

    [prəʊz]

    n. 散文

    concise

    [kən'saɪs]

    adj. 简明的,简洁的

  • 相关阅读:
    GitLab用户权限管理
    类似vant中的tab实现
    Gitgitee/github/gitlab账号分离
    Vim操作
    partition by 用法
    crontab执行feat_gen.sh时,报错找不到pyspark
    SQL同一个字段出现null和0值,有何区别,原因是什么?left join导致null值出现,case when导致0值出现
    linux 定时任务crontab的用法
    卡方检验
    ROC与AUC
  • 原文地址:https://www.cnblogs.com/aqing1987/p/4192899.html
Copyright © 2011-2022 走看看