大型编程项目却极具挑战,部分原因在于人员管理问题以及如何协调大量人员,这是一项极其困难的脑力工作。实际上,软件开发是极少数既需要协调人量人力又不具备实体的工程技术项目,建筑项目也很复杂而且涉及大量参与者,但他们面对的是有形的实体,所以能以物理形式进行跟踪。同样,桥梁隧道之类的工程项目也是如此,现场参与者虽然成百上千,但各个步骤或者施工环节确有切实的线索可抓。但在软件中很多工作无形无相,所以除了我们自己的想象力外再无跟踪事态的可靠线索。
所以大型软件项目因复杂性而失控的可能性远超人类从事过的几乎任何其他项目,其根源就是软件项目的无形性,而且大型软件项目很快就会超出个人的理解力上限,没人能理解项目中的所有代码,毕竟这是成百上千人的成果。所以面对这些规模更大的项目,如果不对复杂性做出限制,那么项目的每个步骤都可能崩溃失控。以往,无数大型项目都在砸下巨量资金后失败了,原因就是其过于复杂,已经无人能理解究竟发生了什么,就如同过于庞大的巨兽被自身重量所压垮。
具体来讲,复杂性其实贯穿于软件开发的各个阶段,复杂性在编码过程中,因为如果底层代码的质量不好,超大规模系统也可能就由此崩溃。所以必须立足底层,立足细节抓代码质量,关注每个语句、例程和类,步步为营,以此为基础才能扩大规模,同时继续保持代码质量,即在设计和架构层级控制复杂性,对复杂性控制要广泛而深入地体现在软件开发的各个阶段。
过于庞大的巨兽被自身重量所压垮//@甘道实验:大型编程项目却极具挑战,部分原因在于人员管理问题以及如何协调大量人员,这是一项极其困难的脑力工作。实际上,软件开发是极少数既需要协调人量人力又不具备实体的工程技术项目,建筑项目也很复杂而且涉及大量参与者,但他们面对的是有形的实体,所以能以物理形式进行跟踪。同样,桥梁隧道之类的工程项目也是如此,现场参与者虽然成百上千,但各个步骤或者施工环节确有切实的线索可抓。但在软件中很多工作无形无相,所以除了我们自己的想象力外再无跟踪事态的可靠线索。 所以大型软件项目因复杂性而失控的可能性远超人类从事过的几乎任何其他项目,其根源就是软件项目的无形性,而且大型软件项目很快就会超出个人的理解力上限,没人能理解项目中的所有代码,毕竟这是成百上千人的成果。所以面对这些规模更大的项目,如果不对复杂性做出限制,那么项目的每个步骤都可能崩溃失控。以往,无数大型项目都在砸下巨量资金后失败了,原因就是其过于复杂,已经无人能理解究竟发生了什么,就如同过于庞大的巨兽被自身重量所压垮。 具体来讲,复杂性其实贯穿于软件开发的各个阶段,复杂性在编码过程中,因为如果底层代码的质量不好,超大规模系统也可能就由此崩溃。所以必须立足底层,立足细节抓代码质量,关注每个语句、例程和类,步步为营,以此为基础才能扩大规模,同时继续保持代码质量,即在设计和架构层级控制复杂性,对复杂性控制要广泛而深入地体现在软件开发的各个阶段。
甘道实验大型编程项目却极具挑战,部分原因在于人员管理问题以及如何协调大量人员,这是一项极其困难的脑力工作。实际上,软件开发是极少数既需要协调人量人力又不具备实体的工程技术项目,建筑项目也很复杂而且涉及大量参与者,但他们面对的是有形的实体,所以能以物理形式进行跟踪。同样,桥梁隧道之类的工程项目也是如此,现场参与者虽然成百上千,但各个步骤或者施工环节确有切实的线索可抓。但在软件中很多工作无形无相,所以除了我们自己的想象力外再无跟踪事态的可靠线索。 所以大型软件项目因复杂性而失控的可能性远超人类从事过的几乎任何其他项目,其根源就是软件项目的无形性,而且大型软件项目很快就会超出个人的理解力上限,没人能理解项目中的所有代码,毕竟这是成百上千人的成果。所以面对这些规模更大的项目,如果不对复杂性做出限制,那么项目的每个步骤都可能崩溃失控。以往,无数大型项目都在砸下巨量资金后失败了,原因就是其过于复杂,已经无人能理解究竟发生了什么,就如同过于庞大的巨兽被自身重量所压垮。 具体来讲,复杂性其实贯穿于软件开发的各个阶段,复杂性在编码过程中,因为如果底层代码的质量不好,超大规模系统也可能就由此崩溃。所以必须立足底层,立足细节抓代码质量,关注每个语句、例程和类,步步为营,以此为基础才能扩大规模,同时继续保持代码质量,即在设计和架构层级控制复杂性,对复杂性控制要广泛而深入地体现在软件开发的各个阶段。
chatgpt对于程序员来说到底可怕不可怕?就我这个自认为编程水平比较一般的、可能在35岁左右就要被“优化”的程序员,我都感受不到威胁!至少它现在还没威胁到程序员的地位!
虽然已经有无数网友已经让chatgpt写过代码,并且大多数情况下代码还都是可用的。并且我自己也亲自尝试过,只要你问得准,一般来讲它都能给你想要的答案。
但是,这不代表chatgpt就一定会威胁程序员的地位!
道理很简单,你能在chatgpt上找到的关于代码的答案一般都是碎片化的,即使有些代码比较完整,也支撑不了整个系统,因为代码毕竟是文本。
像一些大型项目的源码动不动就几十上百g,即使chatgpt再强大,它也不能把所有代码都告诉你。
而就目前的情况来看,即使是一个普通的包含框架的源码它都给不了你。
所以,我不知道很多人说害怕是在怕啥!
我记得《三体》的作者大刘刘慈欣在一次接受采访的时候,被主持人问到他对于人工智能的看法。
大刘说的话几乎和我想的差不多,他认为以目前人类的技术手段,是无法创造出真正的人工智能的。
其实这话我是认同的,我认为机器永远无法像人类那样思考。你之所以觉得它厉害,只是因为它像人,但它毕竟不是人!在复杂场景下,它的工作能力一定是不如人的。
简单来说,它不懂得像人一样去思考和创造!
程序员写代码其实就是思考和创造的过程,我们在写代码的时候会兼顾上下文,写出适合当前系统的代码。甚至会结合目标用户的习惯,改变软件的使用方式。
尽管很多人工智能能像chatgpt那样给我们一些代码建议,但这些代码还是需要我们程序员手动贴到项目里面去,再结合实际情况进行修改。
所以,你可以把chatgpt这样的人工智能当“小抄”来用,提高程序员的编码效率,但它绝对替代不了程序员,更别说威胁到程序员的地位了!
chatgpt之所以目前炒得比较火热,我觉得一方面是它的确比较厉害,很多人觉得比较新颖。另一方面可能是资本的运作,因为现在chatgpt国内使用不了,大量的镜像网站和小程序为了在风口上捞一笔,所以大肆造势chatgpt。
但是对于尝试过的程序员来说,chatgpt就跟十多年前“阿尔法狗”给人带来的冲击是差不多的。
虽然冲击很大,但是对于程序员来说也就一乐,或许chatgpt在其他领域能够把事情做得很好,但程序员还是该干嘛干嘛去吧!
#程序员# #编程# #ai技术#
b站上很多人说计算机类的吃香,可能大多数指去什么阿里腾讯拼多多字节大厂薪资高得离谱,但是说实话,能去大厂的学生一年能有多少?和大群体里比起来,水花都算不上。
所以,不要人家说什么就信什么,首先要自己对“吃香”的界限有个判断。自己喜不喜欢适不适合要自己尝试一下才知道,不要听到别人说吃香就闷头冲进来!
计算机类的本科专业是很多的,目前全国开设的主要专业有这么几个,分别是:
计算机科学与技术
软件工程
网络工程
信息安全
物联网工程
数字媒体技术。
这几个是本科阶段招生的主力专业,其他那些招收的都不太多。
其中计算机科学与技术是专业的一个总称,像软工、网络、信安、物联网、数媒这些都是它的细分。就像当年本科时我就读的是学校计算机科学与技术学院的计算机科学与技术专业。
其实大家不管选了什么专业,这些专业要学的核心主干课程就是 cs 基础课,只是专业方向侧重不同。
这些专业出来以后,大概率最终的就业就是各互联网公司的新民工。
如果非让我选到底选择哪个专业,我的建议还是:
计算机科学与技术(cs)
软件工程
专业的课程都大差不差,大家可以看下下面这张图,基础课程上 90% 都是一样的。
看到这种问题一般都是刚高考完或者刚上大学的同学问的,作为一个本科 研究生在计算机读了七年书的老学长,总结了一些学习经验和学习路线,送给大家,希望你们的大学生涯能少一些迷茫,多一些可能性。如果能跟下来,相信你的大学超过 95% 的人不成问题!
学会自学。大学的自由时间一大把,只靠上课听讲远远不够,上课你不睡觉我都算你是条好汉,你是大学生了,不能只低头拉车,更要抬头看路!
掌握一门编程语言好嘛。这个是必须的,根据自己的规划,无论是选择 java、c 、python 都行,无论你以后是不是用这门语言,这都是你找工作的敲门砖。
没事的时候多敲点代码。当个熟练工,才能显得你牛x,有机会跟着学校的老师或者进入到实验室做项目,一定要坚决跪舔,要跟着学习跟着做。
学好数据结构、操作系统、计算机网络、计算机组成原理、数据库这些基础课程。以后不管你是走考研这条路还是面试找工作全都用得上!学好这些,走到哪里都不怕。
重点说一下最后一条:计算机基础一定要好好学,不管以后面试找工作还是保研、考研都很有。
下面要放大招了,记得帮学长点赞喜欢留言么么哒一条龙!
一位测试感慨道: 做外包至今也六七年了,还是有想转甲方的欲望。
外包其实就是薪资达到自己的心理接受程度了就行,外包公司都差不多的,现在是汉克时代外包,居然进去了2次也是有缘。
刚毕业时就是汉克给找了项目,做了一年半吧,老家有事回去了,2020年又来上海还是接了汉克的offer,是外企,看中有转甲机会的,周围同事就是转了。
汉克还行,餐补年终奖都正常发,过节的礼品嘛虽然不是贵的那些,但这个行业就是这样都差不多的,薪资给到就行。