❶ 本人程序员刚进一家公司,半个月了,现在写代码写不出来怎么办
我没有做过程序员,但稍稍会点简单的(自学)。我感觉一个成熟的程序是系统工程,初接触者:无从下配厅败手个人感觉很正常!
经常在网站上看到公司骂老的离职程序员代码烂。我认为有二个原因:
1、培颤新入职的员工看不懂,自己不懂但骂骂别人,可以转嫁风险,让离职的背锅,为自己争取时间过渡或重建。
2、程序代码易读性太差,相关伏含说明文档缺失。虽然实现了功能,但别人接手太难(普遍情况)。新入职除了重建,要么深入读懂每个逻辑结构(比重建难,要跟着前一程序员思维走)。
以上二点你大概也清楚什么意思了。不知道你是维护老代码呢,还是新项目?
如果是维护老代码,多看文档、查资料、了解程序思维,反正有工资拿,也不急。
如果入职的是新项目,说明你技术还不成熟,那就加紧学呗。我个人预计:程序员这行,边学边卖的占总比90%
个人见识有限,错误难免,重在交流交流!
❷ 如何看待程序员日均写7行代码被开除,大家对此事件有什么想说的呢
不是我不明白,这世界变化快。俺当年入职时,一些公司的确会问代码量。当时的标准大约是每周40到400行代码,可以少,但不能多——换句话说,平均来说,每周多于400行代码的可能得不到工作机会。因为你的代码质量和工作态度让人家心里发毛。当然,也没人太较真。功能点完成了、代码质量可以(bug少、代码逻辑清晰、文档齐全),多点少点无所谓。
先后在多家公司担任技术专家;平均来说,每周代码量也就200行上下。当然,也搞过一次一天写了2000行代码的壮举,结果是之后一个多月脑袋嗡嗡响,眼花,恶心。这个东西我事先花了一周多做设计、写文档,然后第二周的某天一气呵成,写完bug;然后累伤了,一个多月没法工作。换句话说,相当于还是花了6周;平均下来,仍然是每周300来行代码。
公司在与李某某签订劳动合同时并没有约定一定要进行深度学习识别算法代码编写,3D点云算法和多摄像头联合算法代码编写的具体工作内容,所以没有指明非要编写这些代码;拿什么同级别同行业的平均每日编写代码的统计数据来作为考核的依据,没有法律根据,任务不同,编写难度不同,不能以编写条数作为考核的依据;
至于工作内容,作为程序员并一定非要整天的在编写代码,也有可能在设计新的方案,或是对数据进行统计分析和总结等,不能以什么编码工作没有做,就认为李某某没有做出“成绩”;作为刚来才两个多月的程序员,前期的准备和熟悉是需要一个过程的,随着对公司的熟悉和项目的了解,编写代码的速度必然会提高,而不能在刚来两个月就以其他老员工的标准来进行考核;在发出解聘通知书后,马上将其办公电脑进行收回,这是严重的不尊重人,这属于单方面强制辞退,没有给李某某一点申辩的余地。以上,公司理应对李某某进行赔偿。
❸ 对程序员来说最难的是写代码吗
谢邀。我是一名Java后台开发,还是一名工作没多久的“码农”。写代码作为工作的一部分其实不算难,甚至程序员写代码的时间比其他事情花的更少。我就分享一下咱们Java后端开发的小体会吧:
初级程序猿大部分都是写增删改查的业务代码,增删改查最需要技术含量的是查,归根结底都是写SQL语句,有的业务逻辑复杂一点就SQL语句复杂一点,或者数据库里不好处理就在Java代码里处理。只要数据库学的还行,MySQL比较会用,Java功底有一定基础,基本上都能胜任敲代码的工作。
文|热心哥哥宇文笑
文|热心哥哥宇文笑
业务复杂
,有的系统尤其是一些toB的系统,比如一个上市公司的超市人力管理系统,这是非常复杂的,人事组织,薪资社保,还要针对不同地区分公司不同类别的员工进行不同的代码处理。
业务复杂
需求变动频繁
,有些项目的顾问或者产品经理没把控好,导致需求被客户拖着走,搞产品的可能觉得也就变化一点点东西,实际上有的功能代码需要后端重写,数据库的表结构一变,那改动也是得跟着变。咱们敲代码的朋友最不喜欢的就是返工,我们宁愿去接受更多的开发新任务也不想再去重写自己以前写的代码。(不用说什么重构,这些业务代码重构其实并没有什么技术上的突破)
需求变动频繁
代码优化
,其实比较难得住人得,尤其是难住我们这些刚入行的程序员。有的业务数据量庞大,就得先考虑数据库优化,代码多线程优化,总之优化代码倒是一件比较进阶的拆事,比敲代码难。
代码优化
来说说,作为程序员的你,最难的什么呢?
❹ 为什么程序员把程序代码写的那么复杂 知乎
一个优秀的程序员,代码永远都不会复杂化。当然,如果是作为才入门的或是还未入门的程序员,对熟手编写的程序也会感到十分吃力,所以造成理解上的"复杂"。编程风格四大规则:
文档化
节简化
简单化
模块化
❺ 为什么有的程序员的代码结构混乱
程序员都有一颗工程师的心,所以当他们到一片新的场地想做的第一件事就是,将旧的一切推倒重来。是的,他们决不会满足于简单的增量劳动。
或许这种微妙的心理定位可以解释:为什么程序员进入新项目组后宁愿丢掉旧代码重新写,也不愿意修修补补。他们认为旧代码简直一团糟。
但是,事实上真是这样吗?你之所以认为旧代码一团糟,其实是由编程的一个基本定律决定的,那就是:写代码容易,读代码难。
为什么你觉得旧代码异常混乱?因为读代码更难。
这大概就是代码Reuse难以实现的原因。 这就是你组里的每个人都喜欢用不同的功能将分割的字符串转换成一个数组。比起猜测旧的功能是怎样实现的,重新写一个自己的功能要简单和有趣多了。
作为这个公理的推论,你可以问问身边的程序员他们正在奋战的代码怎么样?“简直是一塌糊涂!”他们肯定会这样说。“我简直想推倒重来!”
为什么认为代码这么糟糕呢?“额,看看这个功能,竟然有两页长!完全不知道这些东西为什么在这里!完全不知道这些API是干什么的。”他们会这样回答你。
漫画:读别人代码是一种怎样的体验?
曾经,Borland的创始人 Philippe Kahn当初就是向记者们吹嘘:Quattro Pro会比Microsoft Excel要好用得多,因为它是从头开始编写的,全部都是新的源代码!
但是,认为新代码比旧代码好简直就是荒谬。旧代码是已经运行过的,测试过的。无数的bug在被发现前都上线运行过,发现之后程序员们可能在花了好些日子才修复了这些bug。这种修复可能是一行代码,也可能是几个字符,无数的时间和精力都花在了这些bug修复上。
当你决定抛弃这些旧代码从零开始的时候,你也丢掉全部前任努力的结果。
新代码一定比旧代买好?NO,重写可能会带来更大的风险。
对技术领导者来说,重写项目的代码也是一个异常艰难的决定。因为从公司层面说,重现代码甚至会威胁产品的市场竞争力。一旦决定重写代码,那么与竞品相比,你可能落后了2~3年——在软件行业,这时间可够长的。
你理想中的新代码会带来产品功能的提升▼
但事实上,即便重写的新代码可以实现旧代码的所有功能和需求,但是为产品带来的市场竞争力只有边际提升。因为重写用的新技术、新语言、新框架并没有给产品带来质的飞跃。
更不用说在重写的漫长过程中可能会遇到一些意外情况,比如:
1、缺钱:资金链的断裂▼
2、缺人:核心程序员离职
最终导致效果不佳:达不到原产品应有的所有功能和需求,白白浪费了时间和金钱,也丢掉了市场竞争力。▼
所以重写代码意味着,你在把自己置身于非常危险的境地,可能几年后你也写不出比以前更好的代码。你只是花了一大笔钱把已经存在的代码又写了一遍。
当你觉得眼前的旧代码很烂时,该怎么办?
你觉得旧代码写的很烂,那又怎样呢?它们已经上线,已经在实际运行中经受住了考验。所以当你发现前任留下的代码乱七八糟的时候,不妨冷静下来,从以下三个方面入手理解代码、改善代码:
1、代码的结构有问题
如果一段网络代码突然弹出了自己的对话框,应该是UI代码需要被处理。这些问题可以被解决掉,你要一次次小心地移动代码,重构,改变接口。还需要一位细心的工程师立马仔细地检查这些改变是否有问题,从而不打扰到其他人。事实上,甚至比较大的结构变化也可以不扔掉代码来完成。
大牛程序员Joel Spolsky回忆说,曾经在某个项目中,他和他的团队花了好几个月重新架构在一点上:把代码动来动去、清理、创建有意义的基类,并创建了模块之间的完美接口。但是他们始终非常小心翼翼,并没有产生新的bug、也没有丢掉任何旧代码。
2、代码的效率不高
曾经,Netscape的渲染代码被传非常缓慢。但事实上,这只会影响该项目的一小部分,这部分是你可以优化甚至重写的。你完全不必重写全部代码。优化速度的1%工作量,会让你获得99%的爆炸性提高。
3、代码写得很丑
有些代码真的写的很丑,比如Joel曾参与一个项目,开始用下划线做开始的成员变量约定,但后来改用更标准的“M_”。所以一半的功能用“_”开始,一半用“M”开始,这看起来真的很丑陋。但这个问题5分钟就能解决,而不用从头开始写全部的代码。
最后,你要记住,从头开始再写一遍并不意味着你会写出比以前更好的代码。因为你没有参与到上一个版本的创建,所以你其实根本就不算有经验。一旦你准备推倒重写,你可能会再犯一遍版本一犯过的错,甚至会产生更多的新问题。
一个总结:
面对糟糕的旧代码,Keep Calm & Carry On !
在大型商业项目中,推倒重来是非常危险的行为。当然,如果你是在做实验,想到新算法可以随时重写。