在我看来,编程行业正在步入低谷。如果我们采取以下做法:
- 不花时间实施最佳实践
- 尽可能使用他人的代码(将自定义代码作为责任)
- 使用越来越高级的语言来提高生产力
- 基于GUI的开发“工具”,极大地简化了“编程”,并且不需要人们了解代码背后的内容
这些事情对我来说意味着我们正在努力变得像其他上班族一样。不需要技能(更容易更换)且需要预先建造的东西(较少的项目时间)符合雇主的利益。
我的意思是:a)技能与雇主的经济利益是否不符?b)如果存在,您如何减轻它以执行专业标准?
在我看来,编程行业正在步入低谷。如果我们采取以下做法:
这些事情对我来说意味着我们正在努力变得像其他上班族一样。不需要技能(更容易更换)且需要预先建造的东西(较少的项目时间)符合雇主的利益。
我的意思是:a)技能与雇主的经济利益是否不符?b)如果存在,您如何减轻它以执行专业标准?
Answers:
我想你问了一个非常刻薄的问题。
创建GUI编码工具会使程序员失业,就像机器人使流水线工人失业一样。我认为,虽然失业,但下一份工作的位置也发生了变化。
完成任务的技术发生了变化,但是任务仍然需要完成:仍然需要制造/组装汽车才能驾驶;仍然需要将代码/业务逻辑放在一起才能使应用程序正常运行。
技术的变化为程序员提供了选择:学习基于GUI的编程或程序GUI工具……或……其他完全的东西。
员工的技能与雇主的利益之间可能会产生不一致,但这种偏差不会持续很长时间,尤其是在雇主精明的情况下。因此,追求对双方都有利的东西符合雇主和雇员的最大利益。但是,一个必然会领先于另一个。希望是你(-:
最好的祝愿,
KM
在您提到的趋势中,我会再添加一个,恕我直言解释了它们:
需要或包括编程的任务数量在不断增加,并且其速度甚至超过了程序员的数量。如今,普通汽车中有几种微芯片。在5年内,您的冰箱和烤面包机中可能会有碎屑。在10年后,您的内衣??而且有人需要生产所有这些软件才能使它们正常工作。因此,将尽一切可能的努力来使任何可自动化的东西自动化,并提高“生产率”(无论如何定义)。越来越多的新鲜大脑被招募。
这意味着当今大多数活跃的程序员对他们的工作没有经验和/或准备不足。要获得足够的经验水平需要花费几年的时间,并且需要不断学习才能使自己始终如一。最重要的是,越来越多的编程工作变得越来越困难。但是对于任何正在寻找挑战的人来说,挑战仍然足够。
让我与上面的观点打一下恶魔的拥护者:
不花时间实施最佳实践
很多人没有,很多人这样做。十年前,当我第一次发现单元测试和敏捷方法时,我的任何一个同事都不知道它是什么。如今,这几乎是大学的标准教材,因此许多应届毕业生已经了解了。
尽可能使用他人的代码(将自定义代码作为责任)
相对于什么?重新发明轮子?还是使用其他人的代码来避免这种情况?
我认为重要的是要注意,我们(大多数情况下)得到解决问题的报酬,编写代码并不是目的,而仅仅是达到目的的手段。如果不编写任何代码就可以解决问题,那么仍然会让客户满意。尤其是通过这种方式,我们设法更快,更便宜地提供了更可靠的解决方案。我认为没有任何问题。
使用越来越高级的语言来提高生产力
而不是对汇编中的所有代码进行编码?;-)
基于GUI的开发“工具”,极大地简化了“编程”,并且不需要人们了解代码背后的内容
恕我直言,任何工具都可能被滥用。这并不是说GUI生成器一定是完美的,甚至不是很好-它们中的大多数(或至少一些)在其范围内可用。但是,如果有人不知道这些限制,那么这是该工具或其用户的问题吗?
总的来说,我相信(尽管没有证据可以证明),在打孔卡和机器代码时代,现有代码的比例大约和现在一样可怕,只是两者
少得多。
现在,借助Internet和Daily WTF,我们每天都在面对最糟糕的情况。这就像在观看有关恐怖主义和地震以及与名人离婚的所有新闻,并大喊这个世界变得多么危险和不道德。
您正确地总结了情况,但是完全误解了含义。
随着软件功能越来越强大,其任务也随之扩展。可以肯定的是,当您可以使用Access时,如今不必成为数据库程序员来创建电话联系人数据库。当您只需使用wordpress时,可能不必成为Web程序员来建立博客。但是,尽管15年前必须要做一个程序员来做这些事情,但程序员现在要做的工作要比15年前做的要大几个数量级。
让我这样说,从现在开始100年后,建立一个像facebook或google这样复杂的系统将是微不足道的。我不是说他们的网页,而是他们的数据中心。任何人都可以做到。假设我们甚至仍在使用它们,它将内置在电话中。但是,仍然会有程序员,尽管他们可能会在100年后不再在这样的“琐碎”系统上工作,但他们将在更加复杂和复杂的系统上工作,以至于这里没有人甚至无法理解他们的范围和内容。规模。而且那些系统,就像现在的系统,对于普通的上班族来说将是遥不可及的,因为有些人被称为程序员,他们将选择专注于将那个时代的技术推向极限。
我已经读了四十年了,但我还没有开始进行预测。还没有发生。
COBOL是旨在消除业务程序员需求的原始开发工具,并且是比汇编程序更高层次的语言。代码库(以避免不得不编写自己的代码)具有类似的上古时代。
每隔一段时间,就会出现一些事情,使非程序员可以做更多的事情,例如编程工作。有1980年代的“第四代语言”,诸如Excel的精美电子表格,报告生成器等。如果成功,他们统一完成的工作就是从编程中删除一些繁琐的工作,并允许程序员做其他更有趣的事情。
这种模式不会永远持续下去,但是我需要的不仅仅是理论论据和预测,还不足以使我确信编程确实在走下坡路。
从COBOL到现代开发工具,问题在于它们不能替代采用不精确规范并将其转变为精确而有用的功能的能力。那是程序员的基本能力,也是为什么我们很长一段时间都不会离开。
当结构化编程和广泛的解释器出现时,汇编和FORTRAN程序员可能会说相同的话。
归根结底,软件是一种创造,旨在使以前手工完成的事情自动化。一家中等规模公司的会计部门以前需要数十个人,现在所有工作都可以由一两个人完成。结果,目标职位已经转移,我们现在期望会计师能够提供额外的功能标准。
皮克斯制作电影的时间比以前更长。尽管计算速度大大提高,但动画师仍要求其场景中的复杂性和细节不断增加。像1995年一样,Toy Story口径动画在2010年是不可接受的。由于工具的先进性,功能和期望也不断提高。
当拖放或其他编程方法变得司空见惯时,世界将要求解决方案以应对更具挑战性和更复杂的问题,并且他们将需要程序员使用那些较新的高级工具来解决这些问题。球门柱将移动。
尽管我同意大多数答案,但指出仍然有大量工作要做,但我将给出不同的答案供您考虑:
是的,应该
我在这里设计解决其他人无法解决的问题的解决方案。工具集中任何花费我大量时间解决问题,处理如何实现设计的小细节的事情都是浪费。
我担心使用高级语言或更简单,更抽象的工具的唯一原因是,这些工具通常会做出妨碍我的假设,并且需要我花一些时间来应对这些假设才能获得所需的实现。
总比有好的问题解决者要解决的问题要多。即使整个开发链变得如此简单,学龄前儿童都可以使用它,但大多数设计的解决方案仍将不足或效率低下,因此人们会为更好的解决方案付费,因为大多数人都不愿看到针对所有极端情况下的问题的正确解决方案以及需要考虑以提供良好解决方案的假设条件。
我们的工作是要比其他大多数问题更好地解决问题,工具链的复杂性在全局视图中并不十分相关,只要它能够避免干扰并让您构建并构建出好的东西即可。
无论您可以实现自动化还是现成的,大多数打包软件都可以分为两类:
我想我忘了第三种了,它是标准的生产力软件(电子邮件,浏览器,word proc等)。第一类软件导致企业雇用软件开发人员自定义现成的软件(如果可能的话)。他们也可能会雇用开发人员,因为知道内外可定制系统的人要么是追捧者(例如SAP,PeopleSoft等),要么是濒临灭绝的人(认为任何与SAP和PeopleSoft类似的系统都不太具有相同的市场渗透率)。
始终需要开发人员。我所看到的是,以前手动,繁琐,重复的工作已变得更加自动化(想想为手动访问数据而不是使用O / RM编写代码)。这使开发人员可以用更少的精力为业务提供更多的价值。
我不接受你的论点:
- 不花时间实施最佳实践
除了那个。
- 尽可能使用他人的代码(将自定义代码作为责任)
代码重用是最佳实践。使用过的代码经过测试。当然,您应该使用源代码良好的代码,许多人都会维护和使用这些代码。
- 使用越来越高级的语言来提高生产力
生产率本身并不差-是吗?
- 基于GUI的开发“工具”,极大地简化了“编程”,并且不需要人们了解代码背后的内容
如果该工具完成了该任务:请使用它。如果不是,请拒绝。如果诺言成立,人们真的不需要理解代码了-做得好!您似乎在说这是不成立的承诺?
(此处的数字会自动重新显示错误。:))
没有其他专业致力于生存工程,它致力于与编程一样多的变革。只要您简化了一些事情,您就可以打开产生新思想的新问题的罐头。
因此,我不会妨碍其他人共享代码和解决方案的努力,以帮助我们克服个人从业者的不良习惯,不良习惯和举止缺乏人文主义的态度,从而迎接新的挑战,想法和用户体验。
如果我们采取以下做法:
WTF?您的意思是该列表不一致吗?每个元素的列表应该来自同一侧,而不要在没有警告的情况下来回切换。因此,您的清单应为:
如果我们采取以下做法: