来自:

www.techug.com

那些非程序员认为软件开发是非常困难的,确实如此,但这种困难不像那些外行人理解的那样。最近在 Quora 上的一次讨论,程序员分享了他们认为工作中的最大困难,在这里为大家精选出其中的 9 个。

一、

怎样才是最佳解决方案


任务描述:给你一系列的需求,你被要求设计和构造技术上的解决方案。这包括了设计数据结构,算法,逻辑上的封装等等,还要考虑到用户安全方面的因素。

挑战:确保你的设计可以满足客户需求,让客户认为合理。当然还要在项目时间允许范围内。

二、

写测试


任务描述:写单元测试,确保代码中每一个小部分的功能正确。这样做可以让你尽早发现 bug,让你后续的回归测试变得更容易。一些开发的方法论甚至鼓励开发者在编写程序之前就可以写好测试程序。

挑战:为每一部分进行测试是一件很枯燥乏味的事情,让人感觉是在做多余的事情。

三、

编写文档


任务描述:撰写文档,说明你代码的含义并解释应用的工作原理。这包括了独立的文档文件和代码注释,让更多的人理解你的代码。

挑战:这是一件耗时的工作,如果没有人去读它们的话就是纯属浪费时间了。相比于写文档,程序员还是更爱写程序。

四、

实现那些你不认可的功能


任务描述:有时候你会不得不去实现一些功能和特征,它们不是你的本意,你觉得它们不应该出现在这个项目里,但是客户一定要坚持如此。

挑战:你需要抛开一切个人的感觉和意见,把时间和精力专注于客户提出的功能需求。

五、

维护他人的代码


任务描述:有时候你需要维护和调试其他程序员的程序,或一部分代码。

挑战:你需要用尽一切办法理解前任开发者的意图,他是如何设计的这些代码。特别是当这些代码写得很差,也没有注释和文档可以帮助到你时,那就很糟糕了。

六、

与他人打交道


任务描述:作为开发者,你要从客户那里得到需求,向经理提交报告,和测试人员一起工作,更要和其他工程师讨论项目。

挑战:你需要向外行人解释技术上的事情,有时候你的工作会依赖于他人的认可或辅助。期间也会出现你和 QA 人员或其他工程师有不同意见的时候。

七、

预估项目工期


任务描述:项目一开始的时候,你要预估这个项目的完成需要多长时间。

挑战:一般情况下你要预估的是一个你之前没有做过的项目,而且你只能基于那些模糊的需求,再给未来可能发生的问题分配些时间。

八、

解释我的工作


任务描述:向周围的非程序员朋友,家人,同学解释你的工作是在做什么,不做什么。

挑战:你爱的那些人可能不理解你在做什么,而且你还不断的被问及计算机相关的一切问题。

九、

程序中的命名


任务描述:想出一些名字,为你程序中的变量、过程、函数、类、对象、数据库等命名。

挑战:即使是很小的程序或应用都需要给很多东西命名,你要想出那些适合的,简洁的,可以表达正确含义的一些名字。

你可以看到,写代码并不是最难的事情,如果你也在从事软件开发,看看还有哪些内容,你认为也是很难的

欢迎大家在文末留言分享,说出你心中最具有挑战性的事情。

最挑战程序员的9大任务,你都干过哪些?相关推荐

  1. 测试/开发程序员有8大好处,自我实现和自我超越......

    目录:导读 前言 一.Python编程入门到精通 二.接口自动化项目实战 三.Web自动化项目实战 四.App自动化项目实战 五.一线大厂简历 六.测试开发DevOps体系 七.常用自动化测试工具 八 ...

  2. GitHub的AI程序员“抄袭”算法大神代码,连原版注释都抄上了

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 本周GitHub官方和OpenAI联合发布了一款代码神器AI--GitHub Copilot,只需输入注释,即可自动生成代码,堪称一位&q ...

  3. 如何嫁给改变世界的男人:程序员理想女友大调查

    大家好,我是文文(微信:sscbg2020),今天给大家分享用户行为洞察研究院发布的报告<如何嫁给改变世界的男人:程序员理想女友大调查.pdf>,在分享报告前先代技术小哥们说段话呀: 尽管 ...

  4. 官方数据:程序员年纪越大越出色、越稀有

    导读:本文是从<It's official: developers get better with age. And scarcer>这篇文章翻译而来,译文来自外刊IT评论<官方数据 ...

  5. 新手程序员必备10大技能

    如果你已经有一段时间的编程经验,或者正准备学习编程,那么可能会考虑的是:怎样才能成为一名优秀的程序员?计算机专业的毕业生如何为软件开发和编程职业生涯做准备?职场对于初级开发人员有哪些期望?这是临近毕业 ...

  6. 越来越多的Java程序员转行Java大数据...

    JAVA的精密,强大,拥有其它语言不可替代的性能和可维护性,早已经是成为最受欢迎的编程语言之一,很多人想进入IT行业,首选的第一门语言就是JAVA. 但是,在未来肯定是大数据的天下,人工智能的爆发,将 ...

  7. Java程序员的4大就业方向

    学过 Java培训后,我想大多数人想找一个开发类的工作,但是Java程序员到底可以从事哪些职业呢?方向又在哪里呢?今天我们一起来看看Java程序员的4大职业方向: Java互联网方向 Java在互联网 ...

  8. 程序员面试资源大收集

    资源一:<crack the code interview>--谷歌资深技术面试官经典之作 本书的中文目录如下,大部分内容由Hawstein君原创翻译,部分缺失的由快课网Jay13补充. ...

  9. 程序员的十大级别--看看你是哪个级别

    [讨论]程序员的十大级别 - 看看你是哪个级别 第一级:神人,天资过人而又是技术狂热者同时还拥有过人的商业头脑,高瞻远瞩,技术过人,大器也.如丁磊,求伯君. 第二级:高人,有天赋,技术过人但没有过人的 ...

最新文章

  1. 17综合案例之淘宝轮播图布局
  2. Java 地位不保,落后已成定局 ?| 10月编程语言排行
  3. php手机底部菜单,html5手机web页面底部菜单
  4. 修改了/etc/systemd/system.conf以后必须使用daemon-reexec
  5. 今天闲来无事给我这老伙计A4L换个机油
  6. python中o_Python I/O与进程的详细讲解
  7. 【自适应盲均衡8】基于分数间隔的复数改进常模算法(FSE-MMA)的瑞利衰落信道盲均衡MATLAB仿真
  8. Python 进程间通信 Queue / Pipe - Python零基础入门教程
  9. 让TortoiseGit记住帐号密码方法
  10. Go语言操作MySQL的基础知识
  11. 拼多多回应被列入恶名市场:对此不能认同
  12. MySQL (一)(未完成)
  13. 普罗米修斯监控linux,Prometheus(普罗米修斯)搭建监控
  14. 那么问题来了,什么才是正确的?我们就是为问题而生的
  15. php正则验证邮箱、手机号、姓名、身份证、特殊符号等
  16. ios系统gps测试软件,GPS工具箱苹果版
  17. java培训靠谱吗?java培训机构哪个好?
  18. 随机森林和多元线性回归R语言实现代码
  19. Xilinx FPGA全局时钟和局部时钟
  20. 微信小程序自定义省市区下拉框

热门文章

  1. verilog仿真——$test$plusargs 和 $value$plusargs
  2. ABB RAPID 程序 WorldZone 归纳
  3. 【数据库学习】——windows、MySQL构建新闻管理系统(控制台版)
  4. python从date目录导入数据集_使用python划分数据集
  5. 120xa正反转参数_你知道变频器的“正反转死区时间”吗?它的“停机方式”有几种?...
  6. android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升
  7. navicat的安装
  8. HDU 2243 考研路茫茫——单词情结 求长度小于等于L的通路总数的方法
  9. 数据结构——各排序算法的比较
  10. 优秀HTML5网站学习范例:从“饥饿游戏浏览器”谈用户体验