• Sisyphus235
    2019-01-09
    程序语言是人和机器的沟通语言,和汉语英语等自然语言的工具属性是一致的。不同的是机器更容易被理解,确定性更强,我们也更可能精确理解二进制背后的逻辑,而与人沟通的不确定性更强,每个人都不同。前者是硬技能,后者是软技能。
    沟通是工作最重要的部分,与机器沟通先存储大量不变的知识再结合实际任务处理,与人沟通要理解对方的特点和当下的心境再共同完成任务。

    作者回复: 这个角度很赞👍

    
     21
  • pyhhou
    2019-01-09
    感觉自己的硬实力还是不太够,然后时间分配上也不知如何是好,小公司没有一个很好的技术框架,也没有经验丰富的前辈加以指导,对公司整体的业务也不太清楚只清楚自己手头的任务,而且自己的任务的需求一直都在变化,太多的技术都觉得可能需要用上,但是学起来却不知从何下手,有些时候知道需求,但是从来没做过类似的东西,不知道每一步具体该怎么实现会遇到哪些问题,写代码之前的学习时间都比任何一个环节都要多,学完了还得思考怎么去用,毕业工作不到一年,自己一直处在这种迷茫的阶段,望老师指点

    作者回复: 我们都是这么过来的。先从手头的小问题开始,一点一点的把学到的用上。 比如说,我们以后讲标识符的命名,学完了,你就看看手头的代码,命名是不是合理的,能不能改进。 在后面,我们还会讲这么编写安全的代码,比如检查外部数据的有效性,也是可以立即用上的。 每一篇,我们都有一个检查清单,你也可以对照对照自己的代码,看看自己什么地方做的好,傲娇一下;什么地方,还可以更好,改进一点。

    不用着急,每次进步一点点,很快就变成优秀的人了。 最怕的是,停下来,没好奇心了,没怀疑精神了。

    
     12
  • beiler
    2019-02-22
    您好,请问会讲一下包的名字划分解决方案和模块归类的方法吗?

    作者回复: 这个问题没有讲到。你可以参考JDK的包的命名和模块归类。包名可以使用倒置的域名加模块名,比如:java.net, java.lang, com.sun.net, sun.security.ssl。模块的归类大原则是按照功能划分,工具类的,放在util下,比如java.util。需要注意的是,公开接口和内部实现,尽量使用不同的包,这样便于管理。比如,javax.net.ssl是公开接口,sun.security.ssl是内部实现。

    
     4
  • 秦凯
    2019-01-10
    “解决现实的问题“的观点特别认同,个人也认为程序员应该具备的是用计算机解决现实世界问题的思维,将现实世界的问题转化为计算机可解决的具体方案。而将方案落地的过程应该是,使用计算机、编程语言、数据结构与算法、协议等底层抽象工具封装成一个具体的用户可使用的工具的过程,这个具体的工具本质上是对用户问题解决方案的一个封装。

    作者回复: 赞!

    要盯着用户有效需求。 我们后面还有一小节讨论需求问题。

    
     3
  • 轻歌赋
    2019-01-11
    才参加实习,公司比较小,没有质量管理,是的,没有。完全是代码能跑就行。来这已经3个月了,虽然项目代码都能写,而且时不时还能使用一些新学到的jdk的新工具包写代码,但是仍然感觉对自己写的代码的稳定性不敢保证,虽然很少错,可是还是很担心。想问问老师,如何在身边没有其他评审的情况下,提供一些自己检查代码逻辑bug的方法呢?而且对业务分析不熟悉,经常会出现建表少了某个字段的情况,请问老师有没有什么相对系统化的设计方面的知识可以学习呢?

    作者回复: 每一篇结束,我们都会总结一个检查清单,你可以使用这三个清单检查代码。 有了三个检查清单作为基础,你可以扩展这个清单,遇到好的经验就加上去,过上一段时间,你就能积累大量的好习惯。

    另外,认真检查编译器的警告和IDE的警告,这些警告,一般都是验证了的编码经验,你消除了警告,就学到了新东西。

    编码规范,也有IDE插件,比如阿里巴巴Java编码指南的插件。找找看有没有你喜欢的插件。

    专栏的小伙伴们,能不能帮着推荐些设计的书籍?

    
     2
  • Neal
    2019-03-10
    要做自己才能做的事情真是醍醐灌顶,项目中总是前后端兼顾,导致自己后台进度一直很慢,很累,现在我终于放下前端,专心于后端的迁移工作上,渐渐发现,前端没了我也没什么要紧的。

    作者回复: 我自己花了很多年,才懂的。

    
     1
  • 小文
    2019-02-14
    文中说解决现实的问题,如果一直沉浸于解决现实的问题,总是解决手里这一摊也不行,哪天干着干着突然发现自己岁数大了,可是本事没长进,还是会那些个技能解决着自己的一摊,万一领导给你个别人任务,或者跳槽了接触了其他的一些任务不会点技能是真不行啊,程序员还是不能停止学习啊,唉……

    作者回复: 解决现实的问题,不能沉浸于只解决领导要求的问题。程序员是一个要终身学习的职业。

    
     1
  • 刘滨涛(陆逾)
    2019-01-17
    优秀的程序员能在团队里正能量影响他人,协同他人一起创造价值。不仅仅解决业务需求,也能去创造或者开发一些对公众有益的东西。能力越大,责任也就越大。

    作者回复: 责任越大,意味着大家越需要我们。 这就是竞争力的一部分,对吧。

    
     1
  • 堵车
    2019-01-12
    这篇文章讲到优秀程序员的对工作的选择。我记得前两年,我的工作就是不断地写业务,改代码,满足领导的奇思妙想。称之为小步快跑,多版本试验,快速迭代。两年时间里,没有沉淀任何东西。所以这样的环境不适合成为优秀的程序员吧?

    作者回复: 环境很重要,我觉得更重要的,还是自己要有改进环境的意识。小公司的存在很多很多的问题,可是这些问题,也正是我们的机会。把问题解决掉,就是自己脱颖而出的机会。

    有时候,我们常说一句话,就是,每一次危机都不应该浪费。 什么意思呢,就是危机虽然让人头疼,但是危机来的时候,就是我们打怪升级的时候,就是我们学习应对危机的时候。 解决小公司的问题也是这样的。

    如果刚毕业,我们就从解决一些小问题开始,比如怎么把代码写的更漂亮,然后琢磨琢磨让其他的人代码也漂亮,然后再琢磨琢磨让整个团队的代码更漂亮,然后再琢磨琢磨让整个公司的代码都漂亮。然后,再解决更大的问题。

    
     1
  • 小峰
    2019-01-12
    突然发现我师傅就是一个这样的人。

    作者回复: 👍厉害了,你的师傅!

    
     1
  • Aliliin
    2019-01-10
    深刻体会到沟通的重要性。
    需求沟通不明确,提问都表达不清楚,,总是会把时间浪费在无用功上。

    作者回复: 哈哈,看来是受过需求折磨的。有个说法我比较喜欢,信息传递会损耗,多几道环节,就变样了。 软件开发,要设计好沟通过程,减少损耗啊。

    
     1
  • Kai
    2019-01-10
    有一本书 程序员的软技能,写得很好。其中就说到写blog一是个非常好地锻炼沟通,表达,提升知名度和整理思维的过程

    作者回复: 是的,有时间多写写blog。

    
     1
  • Dream
    2019-01-10
    优秀的程序员,还需要一个优秀的上司,我习惯每次在编码前把思路理顺,发现潜在的问题和风险,其实正在编码可能占用不到工期三分之一的时间,但是目前领导一看前期根本没在编码,就觉得比较闲,拼命的压缩工期和增加任务,有点疲倦了

    作者回复: 是的,团队的氛围很重要。😄过程而不是目标导向的上司太操心。

    
     1
  • 王智
    2019-01-09
    自我感觉没有一个满足,哭.
    第一点,掌握一门编程语言,对于Java,基础功学过了,当时记住了,过一段时间就忘了,难受.
    第二点,我赞同,我感觉程序员就是现实和网络的桥梁,就是把现实的问题映射到网络上进行解决.
    第三点,身为一名刚刚工作的程序员,没有这个胆量和能力.
    第四点,不能坦然的面对自己的问题,这点一定要改
    第五点,只要在我会的知识层面,还算是可以依赖
    第六点,哭泣,定的计划都很难完成,一旦有了任务,计划全乱了套了.
    还得继续磨练,加油加油
    展开

    作者回复: 我们都在修炼的路上😊,先有意识和目标。加油💪

    
     1
  • C J J
    2019-01-15
    熟练甚至精通一门编程语言,再横向拓展其它能力,毕竟要先保证不丢饭碗;公司不养闲人或者说不养贡献值低的人,我们要能够为雇主带来收益,为公司排忧解难;对于个人发展而言,我们要做时间的主人,把时间花在重要且有价值的事情上,学会说不甚至是减法;另外,我们要学会抱团,与队友友好合作,帮助别人成长,同时也成就了自己。

    作者回复: 是的,有多赢思维的,走的更快、更远。

    
    
  • 落叶飞逝的恋
    2019-01-14
    不管是否熟悉这个系统,但是遇到问题,能够快速定位系统问题所在,并提出解决方案。就是优秀的

    作者回复: 这是超优秀的了😄

    
    
  • 小田
    2019-01-12
    优秀程序员的特质小结
    # 硬指标
    - 优秀的编程技能
    - 解决问题能力
    - 认知和发现问题的能力
    # 软指标
    - 为高效推进目标进程,作出合适的权衡和妥协
    - 团队协调能力
    - 时间管理能力
    展开
    
    
  • 赌神很低调
    2019-01-09
    时间还是没管理好,同时带两个小项目,做开发做管理走流程,杂事正事都多,同时还要调研技术。搞得有时候心里很慌。

    作者回复: 流程做好,研发过程也多些自动化。

    
    
  • Being
    2019-01-09
    掌握一门语言,能够解决问题,定位问题,沉静的前行者,可依赖的伙伴,时间管理者。每一点都互相关联,相互推进,形成优秀品质的集合,融汇在优秀程序员身上。
    谢谢老师,获益匪浅

    作者回复: 不谢,总结的很好👍

    
    
  • 虢國技醬
    2019-01-09
    打卡
    时间和精力有限,提高自身技术判断力,选择好方向,深入的干下去

    作者回复: 加油💪

    
    
我们在线,来聊聊吧