这种chaton是什么软件件

今日推荐类别:浏览器
可选择多款软件一键下载排行电脑最新推荐软件电脑软件常用推荐电脑软件教学软件安全软件行业软件系统工具应用软件网络工具多媒体图形图像输入法电脑游戏合作伙伴按首字母检索这种类型图片是什么手机软件做的_百度知道
提问者采纳
软件。玩图 中的 画中画 可以弄。
软件“玩图”
提问者评价
太给力了,你的回答完美的解决了我的问题!
其他类似问题
为您推荐:
其他4条回答
我晕。我刚删掉你等等。我找找。以找到软件名字BlurArt,请采纳哦,我在过任务呢
手机软件就不知道了!不过我现在是学平面设计师的!PS是可以做出来的!
我知道。我会做
手机软件的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁如何成为一个杰出的程序员或软件工程师?为什么牛人会比新手薪酬高那么多?
怎样的程序员才算优秀的程序员,他应该具备有哪些素质。
按投票排序
我不能算是一个很优秀的程序员,但这个问题我已经反复思考了五年了。跟大家分享一下我的看法:首先, 我认为答案绝对不是 "只要写很多年代码就好了“。我面试过不少有10年经验,代码却写的很糟糕的程序员。经验很保贵, 但只靠经验是不够的。就像下棋一样,假如你用心研究,复习,不断挑战自己,也许可以成为一名大师。但不断用懒散的方式去玩棋,下20年也只是一个"臭棋篓子“。我觉得比较有用的进步方式:1. 学会看代码大多数程序员都只愿意用自己写的代码,但高手一般可以轻易调用别人写的代码。表面看上去是工作习惯不同, 但实际上是能力上的差别。看代码要比写代码难很多倍。我建议上班时多给队友们作code review,下班后试着阅读github上的开源代码。2. 复习程序员一般都很忙, 手上有永远也做不完的活儿。但在某些公司里, 你只是在反复做同样的事。偶尔放下手上的活儿,留下一部分时间来分析自己的弱点,更改坏习惯,看新书, 或学习新语言。3. 做个人项目工作中的编程一般只能让你熟悉一部分技术, 导致漏洞的形成。这就好像你长期一个人在自己后院练习投篮, 但第一次打比赛才(在惨败中)发些原来还需要传球, 防守, 强篮板这些概念。Facebook喜欢雇佣所谓的 “full stack programmer”,就是一个人从设计,到交互,到html, css,javascript, server,sql, 架构,和数据统计都能做。成为full stack programmer最好的方式就是不断做个人项目。4. 问答网站问问题和回答问题都是很好的学习方式。 有的时候写出一个好问题, 比写出解答次问题所需要的代码还难。写问题可以帮你整理自己的思维逻辑。你可以试着每周在上问一个好问题或写一个好答案。5. 加入一个好团队最好的进步方式就是跟比自己强的人一起做事。高手都愿意聚在一起,所以很多会选择去优秀的早期创业公司。我在硅谷和创新工场创业时遇到了很多神人, 跟他们学了不少东西。
原作者: , 基础架构组工程经理日作为一名工程经理,我经常被同事和面试人问“作为一个Coursera工程师,我的职业生涯发展是什么?”尽管有些人更希望成长为经理,但我发现还有很多人对如何成长为独立贡献者( individual contributor)更有兴趣。所有在Coursera工程师共享同样的名称:“软件工程师”。你可能会认为这会导致模糊的职业发展,但我们相比严格的等级,更喜欢这种模式,理由如下。我们是一个小的,紧凑的工程组织下的创业公司,我们专注于一起工作,共同实现我们的使命:为全世界提供最好的教育而奋斗。每个人在没有被人为组织结构,职称和角色所羁绊下去发挥其最大的潜能。我们的文化体现着谦逊。杰出的工程师认可是被公认的贡献,领导力和态度,而不是他们的头衔。每个人都是领导者。我们的文化是非常开放的,包容的;一些最好的想法,往往来自刚毕业大学生或实习生。我们渴望帮助每个人在这里成长为技术带头人。作为技术人员,我们正不断努力改善我们的技能,帮助我们的工程师不断提高。我们希望在这里的工作,是我们自我变革的体验,并以同样的方式去改造公司的轨迹。为了指导我们的工程团队,我们列出由一些杰出高产的工程师都体现的品质列表。这些都是我们在Coursera,以及其他硅谷高科技公司同行,如LinkedIn,谷歌和Facebook所钦佩的优秀素质。我们分享这个列表,并希望激发其他工程团队去思考他们看重的素质,以及如何建立,培养和奖励优秀人才的企业文化。如何成为一个伟大工程师结果驱动伟大工程师产生了伟大成果。 Coursera重视工程师从开始设计,实施到交付一系列环节。这里的原因:对于任何重大项目,往往是在细节中出问题。比如产品推出,运营服务,产品功能。在交付和运营的服务或产品上体现主人翁意识,这是我们的核心价值观。结果会直接给业务增值。我们认为一个员工的贡献累计来自于如何衡量增加的价值。影响力可以来自于很多维度,包括增值,活跃度,收入,工程效率,网站稳定,可扩展性等等。显著影响力在交付MVP(最小核心价值产品)很少能够实现。在我们搭建的产品和需求中不断的迭代才能最大化我们的价值。我们的指导方针是“”的原则,我们赞赏能够平衡执行速度,编写可扩展组件和代码质量。我们也看重“10倍工程师”,即不仅能快速提供高质量的结果,同时也激励和指导别人更聪明地更快的工作。领导力领导者不一定是一个管理者。技术领导是说的你的工作方式。你把你的项目,团队,整个技术组服务好。最好的工程师显示至少其中的一些特质:项目领导:伟大的工程师们可以从不同的项目中担任技术负责人的角色,项目的范围从小到大,影响力从低到高。他们能驾驭好点子,阐明设计,排除阻碍,不断改进。他们跟产品组合作确立正确的产品上线顺序,他们知道在质量,完成度和速度如何权衡考虑。有时他们通过数据驱动决策保证项目完成。找出差距:伟大的工程师们能够广泛地思考面临的差距和问题。更重要的是,他们是第一次去发现我们从来不知道我们有的问题。他们更看重解决问题而不是抱怨 - 事实上,他们渴望保持手勤,用创造力和真正的热情应对面前的挑战。“向上看齐”:伟大的工程师们往往围绕比他们更好的工程师。他们是以身作则提高生产力,领导和激励他人。他们通过代码和设计评审来作为导师帮助大家。爱学习:伟大的工程师为了不断提高技能,他们热情地阅读技术文档,研究论文,和博客。他们喜欢上课,吸收别人的经验。组织存在感:伟大的工程师在整个组织中传承知识和经验。他们通过技术讲座,读书分享,Hack大赛去分享他们的工作。一个伟大的工程师可以在外部发表博客文章,会议演讲,或发表研究论文。影响力:伟大的工程师影响其他工程师采用新技术,架构,流程和标准。这可以通过他们能影响到的工作空间距离或者代码审核队列的大小来衡量。态度:像所有Coursera的员工,优秀工程师们关心队友和保持谦卑。他们认识到,每一个错误其实是有机会让他们做的更好。技术卓越伟大的工程师在技术上的优秀体现在很多方面:他们可以是厉害的产品黑客,算法高手,注重细节的基础架构工程师,或以上所有。我们重视在设计解决方案时深入思考,考虑复杂的产品和基础设施问题的工程师。伟大的工程师设计是强大的,直观的,可扩展的,灵活的,可维护,可操作性,可扩展性和高效的。他们努力质量和执行速度之间实现平衡。权衡除了业务目标的贡献,伟大的工程师通过提高工程团队的工作效率,构建可重用的组件,提供工具,使代码库更好管理这些都能整体性提升工程组织。这意味着构建抽象的服务或组件,使它们成为多个产品的需求或提高开发人员的生产力。这也意味着主动去构建工具,提取函数库,修复破碎的窗户,编写工程文档,或测试用例。这不是一个清单!伟大的工程师不一定擅长在上面列出的所有领域,但必须擅长一些。他们可能是非常全面的,或者在少数项目上极其突出。像下面的游戏人物,你不大可能就像塞西尔(左)全面高分;但你可能更像哥拉斯(右)更加均衡。在Coursera我们怎么使用这个列表?我们在内部表扬一些体现了这个标准中可以表率的工程师。独立贡献者使用这个文件来追踪他们事业上的进步,我们都添加注释,故事和例子,以便其他人可以了解谁做了了不起的事情。在Coursera工程经理使用此文档对团队成员在1:1会议,和绩效考核中去反馈评价。任何人当他们看到其他人做很棒的事情都可以直接说出来。这可以在发生在 1:1 (两个人的会议),全组大会,技术部大会,通过Slack频道(企业通讯工具),或通过电子邮件。最后的话在Coursera,我们为全世界提供最棒的教育资源。我们想把高质量的教育,不再只提供给精英,而是公平的环境。同样,在我们的工程组,我们想创造一个让每一个工程师能够实现伟大的环境。我们提倡透明制度和包容性,并提供质量为导向的这份列表,来帮助工程师继续改进。【快来看我回答的其他问题】关注我吧~~~
以下内容摘自博文“编程巨星的唯一秘诀”,中文翻译在此:只有一条真理决定了一个软件程序员的成功还是失败。由于坚持这个真理,一个资深的程序员能在一天的时间里学会一门新的编程语言,而由于不坚持这条真理,一个初级的程序员用十年时间也只能挣到一份糊口的钱、永远是来实现别人的设计、永远不够优秀而得不到晋升的机会。这条真理让你看清了差的程序员和好的程序员的不同之处,好的程序员和伟大的程序员的不同之处,伟大的程序员和能通过自己的技术创造出一个亿万美元价值的程序帝国的超级程序员的不同之处。不是什么复杂的道理,不是什么难懂的理论。不是具有什么天赋或“编程超能力“才能做到的事情。最终成为的是一个优秀的程序员还是一个很烂的程序员,这跟你的出身一点关系都没有。而真正的原因只有一个,唯一的一个:对所做的事情的理解越深,你就会做的越好。超级程序员跟那些平庸的、一般的程序员比起来,对自己要做的事情的理解要深的多的多。这就是原因。
参照 Quora 的答案:优秀的与伟大的软件工程师(似乎我们都说成程序员)的区别是什么? 第一名 2500+ 票:- 能够平衡实用与完美。 Able to balance pragmatism and perfectionism- 不怕调试和修复BUG。 Not averse to debugging and bugfixing- 健康的怀疑态度。 Healthy skepticism—— , former CTO & Co-founder, Yelp第二名 1500+ 票:1. 这不关于他们写了的代码,而关于他们没必要写的代码;2. 这不关于他们代码库增长有多快(依据于代码的行数或复杂度),而关于他们怎么将代码库缩小同时不丢失功能或特性;3. 如果你尝试去跟他们争辩“什么编程语言才是最好的”, 他们是微笑、又或者对这个厌倦,然后转移话题么?或者,他们布教么?如果他们布教,那他们不是一个伟大的工程师;4. 这并不关于那些代码或编程语言,也不关于他们的痴迷、技艺、天赋、或其它虚假的魔法形容词。最简单地,他们是否在代码之上的层面了解软件?他们是否在架构层面明白软件?还是说他们只能去想代码的行数?他们可以在抽象的数学问题和软件之间切换么?他们可以跟利益相关者一起工作并理解那些人对系统的需求,或者他们会不会开发一个他们想要开发的系统——他们认为你真的想要这个?一个人可以成为一个伟大的骇客或编码者或程序员,但那与一个伟大的软件工程师不一样。我并没有使用一个价值量表,一个伟大的程序员也是一个伟大的程序员……但是你不能要求一个焊接工去建一座桥。5. 他们能否“发现缺陷盲点”,当房间里其它所有人都正迷恋于一些解决方案或新玩意时?此外,还能解释这些基础的缺陷点、让房间里**所有的人**都对这个缺陷点有清晰的认识?6. 他们能否倾听?如果他们不能,那他们不是一位伟大的软件工程师。原第二名 340 票:- 有天分 Talent- 自律 Discipline- 有经验 Experience- 有商业意识 Business-awareness- 有社交意识(合作意识) Social-awareness—— , Founder at RethinkDB# 更新于原来第二名被排到好后面去了,虽然票数从193票上升到340票
我来回答后一个问题,关于薪水的。----------------------------------------------------------------如果你是个优秀程序员,挑大梁的,实际上,你一个人给足够的时间,你就可以完成完整的一个项目。从设计到实现到测试到发行。书上说软件工程,说teamwork没错,但是优秀的程序员是从头到脚啥都能干,都能干好的。能挑大梁,老板高薪保你一个人的忠诚度就可以保证技术团队的稳定,其他人都是外围,replaceable,所以他们只能拿零头,你服不?从一个方面,这样的人离职带走的就不是一个模块,而可能是整个产品线。尤其是中小企业,伤不起啊,所以高薪是必然的。股权也是可以考虑的。拿得比所有经理多,你服不?就算是大点的项目,优秀的程序员做上层的设计,功力稍微有一点不同,就可以造成整个项目开销上巨大的区别。高薪是值得的。在架构设计上节约钱,老板除非脑子进水。来了牛人,直接节省开支100万,发50万奖金,你服不?还有的程序员本身是博士出生,可以搞研究,兼具科研能力,直接搞定公司的核心技术壁垒。他们高薪你服不?要不就是跨专业的,跨度大,达到很奇葩以至于公司做某个项目时候非他不可,高薪,你服不?...-------------------------------------------------------------------所以你也就看到什么叫优秀了。标准很简单,随便你到哪里,离了你不行。不可替代
我觉得成为一个杰出的程序员最重要的是"创造性“,比如:他不时有好、新颖的想法出现,并且具备能把这些想法变成现实的能力;对于一般人习以为常的例行工作,他能想出更好更有效的方法方式去完成,他弄出来后,别人才感叹:这么简单,我怎么想不到呢?……至于代码写得漂亮,学习能力强,掌握多种编程语言,对技术理解透彻等等,那也是他的特征,但并不足以让他成为”杰出“的程序员。另外,”杰出“不”杰出“,是看他己经做出的事,不是看他能做出的事。
37条来啦——条条通往自由之路成为杰出程序员,意味着你将获得诸多自由:财务自由,时间自由,心灵自由。谁不向往自由——然而,自由的一面是必要的约束,比如下面你会读到的软件工程师能力自我评价表(37条)。软件工程的奠基人之一瓦茨.汉弗雷总结说,软件领域可以分为两个方面:一方面是技艺创新的大爆发;而另一方面是坚持不懈的工程工作,包括软件的改善、维护和测试等,这一方面占了90%-95%的比例。(详见第三章)绝大部分软件工程师都不是技术天才,但却都可以通过坚持必要的约束(训练),成为杰出的程序员(软件工程师)。最近我们出版的这本书得到诸多好评,比如:请看: (多看版已上线:)书中第三章的主题是“软件工程师的成长” ,作者邹欣老师结合中国软件行业的特点,归纳出在中国IT行业“好工程师”的要素,并做成一个自我评价清单:(37条)1.保持高标准,不要受制于破窗理论(broken windows theory)。当你看到不靠谱的设计、糟糕的代码、过时的文档和测试用例的时候,不要想“既然别人的代码已经这样了,我的代码也可以随便一点啦。”2. 主动解决问题。当看到不靠谱的设计,糟糕的代码的时候,不要想“可能别人会来管这个事情” ,或者“我下个月发一个邮件让大家讨论一下”。要主动地把问题给解决了。3. 经常给自己充电,身体训练是运动员生活的一部分,学习是软件工程师职业的伴侣。每半年就要了解和学习一些新的相关技术。通过定期分享(面对面的分享,写技术博客等)来确保自己真正掌握了新技术。4. DRY (Don't Repeat Yourself)——别重复。在一个系统中,每一个知识点都应该有一个无异议的、正规的表现形式。5. 消除不相关模块之间的影响,在设计模块的时候,要让它们目标明确并单一,能独立存在,没有不明确的外部依赖。6. 通过快速原型来学习,快速原型的目的是学习,它的价值不在于代码,而在于你通过快速原型学到了什么。7. 设计要接近问题领域,在设计的时候,要接近你目标用户的语言和环境。8. 估计任务所花费的时间,避免意外。在开始工作的时候,要做出时间和潜在影响的估计,并通告相关人士,避免最后关头意外发生。9. 图形界面的工具有它的长处,但是不要忘了命令行工具也可以发挥很高的效率,特别是可以用脚本构建各种组合命令的时候。10. 有很多代码编辑器,请把其中一个用得非常熟练。让编辑器可以实现自己的定制,可以用脚本驱动,用起来得心应手。11. 理解常用的设计模式,并知道择机而用。设计模式不错,更重要的是知道它的目的是什么,什么时候用,什么时候不用。12. 代码版本管理工具是你代码的保障,重要的代码一定要有代码版本管理。13. 在debug的时候,不要惊慌,想想导致问题的原因可能在哪里。一步一步地找到原因。要在实践中运用工具,善于分析日志(log),从中找到bug。同时,在自己的代码里面加 log.14. 重要的接口要用形式化的“合同”来规定。用文档和断言、自动化测试等工具来保证代码的确按照合同来做事,不多也不少。使用断言 (assertion) 或者其他技术来验证代码中的假设,你认为不可能发生的事情在现实世界中往往会发生。15. 只在异常的情况下才使用异常 (Exception), 不加判断地过多使用异常,会降低代码的效率和可维护性。记住不要用异常来传递正常的信息。16. 善始善终。如果某个函数申请了空间或其他资源,这个函数负责释放这些资源。17. 当你的软件有多种技术结合在一起的时候,要采用松耦合的配置模式,而不是要把所有代码都集成到一起。18. 把常用模块的功能打造成独立的服务,通过良好的界面 (API) 来调用不同的服务。19. 在设计中考虑对并行的支持,这样你的API 设计会比较容易扩展。20. 在设计中把展现模块 (View) 和实体模块 (Model) 分开,这样你的设计会更有灵活性。21. 重视算法的效率,在开始写之前就要估计好算法的效率是哪一个数量级上的(big-O)。22. 在实际的运行场景中测试你的算法,不要停留在数学分析层面。有时候一个小小的实际因素 (是否支持大小写敏感的排序,数据是否支持多语言)会导致算法效率的巨大变化。23. 经常重构代码,同时注意要解决问题的根源。24. 在开始设计的时候就要考虑如何测试 ,如果代码出了问题,有log 来辅助debug 么? 尽早测试,经常测试,争取实现自动化测试,争取每一个构建的版本都能有某些自动测试。25. 代码生成工具可以生成一堆一堆的代码,在正式使用它们之前,要确保你能理解它们,并且必要的时候能debug 这些代码。26. 和一个实际的用户一起使用软件,获得第一手反馈。27. 在自动测试的时候,要有意引地入bug,来保证自动测试的确能捕获这些错误。28. 如果测试没有做完,那么开发也没有做完。29. 适当地追求代码覆盖率:每一行的代码都覆盖了,但是程序未必正确。要确保程序覆盖了不同的程序状态和各种组合条件。30. 如果团队成员碰到了一个有普遍意义的bug, 应该建立一个测试用例抓住以后将会出现的类似的bug。31. 测试:多走一步,多考虑一层。如果程序运行了一星期不退出,如果用户的屏幕分辨率再提高一个档次,这个程序会出什么可能的错误?32. (带领团队)了解用户的期望值,稍稍超出用户的期望值,让用户有惊喜。33. (带领团队) 不要停留在被动地收集需求,要挖掘需求。真正的需求可能被过时的假设、对用户的误解或其他因素所遮挡。34. (带领团队)把所有的术语和项目相关的名词、缩写等都放在一个地方。35. (带领团队)不要依赖于某个人的手动操作,而是要把这些操作都做成有相关权限的人士都能运行的脚本。这样就不会出现因为某人休假而项目被卡住的情况。36. (带领团队)要让重用变得更容易。一个软件团队要创造一种环境,让软件的重用变得更容易。37. (带领团队)在每一次迭代之后,都要总结经验,让下一次迭代的日程安排更可靠。 参见: Jim Barksdale 是Netscape 公司的CEO, 他提出了Snake Rule,见到问题,就要解决问题,但是也不要沉溺于无法挽回的事情中。参见: 以及 附:
大家都想跟高手一块工作…高手也一样。那么,哪里才有菜鸟的机会?其实最关键的还是一点:你自己是否有足够的上进心。跟高手一起时,向高手学习,跟菜鸟一起时,指导菜鸟——其实指导菜鸟对自己也是一种进步,而菜鸟的进步也会推动你的进步。但要尽量远离没有上进心的人。如果身边没有这样的环境,那么参与到开源项目中去,那里碰到高手的概率比较高。
最近看了一些关于程序员的职业发展思考的文章,然后听了场公司一个写了10年代码的程序员的培训,工作后也和蛮多的程序员合作过,程序员的自我修养如何修炼,才能有比较好的职业发展路径,站在PM的角度谈下自己的想法仅供参考: 1.事情做得专业的前提是能关注到细节
我觉得细心谨慎是程序员最基本的修养和素质,逻辑能力啥的倒是更为上一层的事情。整天想好的算法和架构是没有用的,你知道当你跟产品经理说解了半天的bug是因为少了个分号的时候,产品经理心中鄙视的是多么的波涛汹涌么。
如果连这些代码基本的细节都不能注意的话,谈何其他呢2.尊敬每一个人就像尊敬代码一样
很多程序员是傲娇的,觉得产品就是自己做出来的,其他的人都是辅助的。所以很多程序员心里是看不上产品,测试的,也就造成很多沟通障碍。
首先上面这种人一定一辈子只能写代码,哪怕技术再牛。
我不太认同写代码只能写到30岁,但是程序员30岁之后,要想有更大的发展,那么做团队管理,要么做技术咨询,才能让自己的能力和积累的经验扩大化,那么这个时候,卓越的沟通能力往往成为关键。 3.用经验堆砌出你的产品技术全局观
这个就涉及到架构方面,产品经理提出需求,不仅仅想听到的是这个需求可以做还是不可以做这么简单,而是如果可以做,那么开发成本是怎样的,会对目前的系统产品模块造成哪些影响,有哪些的risk,如果不可以做,有没有好的替代方案或者简化方案。
如果在需求评估的时候,PM可以得到这些答案,一定会跪舔你的
当然,另一方面,如果在前期评估中,这些都没有想到的话,后期造成的种种后果也是需要程序员自己承担的。 4.做好情绪管理
理论上,程序员都是冷静的。但是现实中,情绪冲动的也是蛮多的,我不知道这样的性格会对写代码有何影响,但是因为情绪影响了判断就不好了,例如因为需求反复修改就索性说这个代码实现不了这种事情,终究会对自己的信誉造成很大影响的。这种事情我经常遇到。。。 5.技术要做到精益求精
编程语言那么多,多语言的程序员虽然抢手,但是如果是半瓶水的水平,估计也是没人愿意要的。
现在程序员非常多,是因为这个行业入门的门槛非常低,也就造成行业的水平参差不齐。做一个网站很难么,找个现成的框架,懂点数据库,建个数据表,前端再找个现成的模板,修修改改一个网站就出来了。
但是满足这样就完了?那么水平可能永远就是这样了,其实这其中每一个点都是可以研究的很深的,比如网站的大数据存储,如何提供程序并行运行的效率,,未来计算机行业的技术分工会越来越细,任何一个方面的专家都是相当有用的 6、职业规划,其实你没的选
听一个前辈讲,自己也对职业也很迷茫过,后来索性去创业了,但是失败的一塌糊涂,最后才明白,自己最会的还是写代码,最懂的还是Java,有时候其实你没的选 7.Stay hungry ,Stay Foolish
技术是永无止境的,好的程序员必须保持对于新的技术敏感度,保持学习的热情
同时看书学习可以更多的得到思维模式,可以在最快的时间发现问题的所在
如果没有好的思维模式,很多程序员遇到需求了,先百度,看看有没有相似的代码,遇到bug再去百度下,看看别人是怎么解的,这种永远只是码农而已
听说一本好的程序书籍至少要读12遍才能理解。。。
我是一路自学来的, 够不上"杰出的"程序员, 但是也有些不一样的东西分享. 自从我决定自学编程那刻起, 就碰到各种问题, 比如基础不够, 做什么行业等等. 我的做法很简单, 先确定目标, 我要做什么, 然后着手实现. 实现的过程自然很坎坷会遇到各种问题各种知识不够, 遇到一个就想办法解决/学习. 解决的问题越多经验就越丰富, 逐步增加目标的难度.
个人感觉比较重要的几点:1 兴趣, 做跟玩是处在两个层次的2 好奇心, 昨天面试了一个32岁的工程师,3年java经验,但不知道匿名类是怎么实现的,也不知道闭包是什么,说是精通网络,但是说不上tcp有哪些特性,c/c++也搞了5年,但是编程珠玑,编程之美之类的书都没看过,心中一个自认为比较经典的算法都没有。。3 打破砂锅问到底的精神,遇到问题很多人喜欢copy代码再改改,但是里面有多少坑他其实不知道,最后fix bug的时间加起来比自己写还多不少。。我的建议是copy当然可以,但是要理解,有时候copy还不如自己写,自己写一遍则永远会写,copy多少遍都仍然是一知半解。
如果你没有看过webkit,linux,glibc,gcc,llvm,binutils,gdb,hotspot,v8,里面60%以上的代码,永远都不是。
1)了解不同计算机语言的编程哲学,不要封闭在自己常用的某一种语言的狭小世界里。2)多阅读源码,深入了解其运行机制,摆脱对API的依赖。3)花更多的时间深入了解算法、数据结构这些与具体语言无关的技术。4)不要过分纠缠于细节,站在架构的角度看问题,培养大局观。5)多参与开源社区的讨论,多阅读技术社区高质量的文章,多与优秀的程序员交流。6)最后一点,无它:多做项目,多写代码!
层次化你的思维,学会类比,看到一个东西之后抽象它的机理(mechanism),然后推广,渐渐你就发现你的代码写好了。例子嘛, 有空再写吧,平时生活里有很多,但是现在马上让写居然一个也没有。。。人的工作,无非是创造和复制,如果无法创造,就多想想怎样才能复制的有水平。
一句话,晚睡早起,多写少撸,锲而不舍,必成大器啊。
上面这些回答说这么多,其实我觉得只在于你的核心竞争力,也就是不可替代性有多强。
我觉得优秀的程序员应该具备的素质:1、让客户或leader省心——功能尽量做的人性化,注意细节合理性。不要别人提一个问题,才改一个问题。2、规范的操作习惯、良好的文档书写习惯——如果不规范,调试改来改去,会做很多无用功、返工。大问题搞不定还可以了解,总犯低级错误就让人吐血了。3、解决问题的能力和创新能力!——这个是程序员的核心竞争力!怎么达到?多思考、多做项目、多总结、多观察....看到好功能,研究下怎么实现的遇到问题不要祈祷主管看不到、客户看不到,总回避问题其实也是害了自己
多写代码,多看代码,多讨论技术问题,多逛技术社区,多关注技术牛人,多购买技术产品……最关键的还是,要有激情,多写代码,写的代码有很多人在用。
如果你的目的是想做一个优秀的架构师,而不是把主要目的放在如何设计一个让用户【觉得】优秀的产品,那我觉得你只要在学习区里面持续不断地练习就好了。

我要回帖

更多关于 addr是什么软件 的文章

 

随机推荐