IT老鸟给计算机专业新生学习编程的10条建议!必看

thbcm阅读(316)

“计算机专业应该怎么学?” 这个问题常常萦绕在许多同学心头。

多年来,我见证了无数学生在计算机领域从迷茫到精进,也积累了一些经验和感悟。

在此,我将这些经验总结为十点,希望能为正在学习计算机的你提供一些帮助。

1.夯实基础,筑牢高台



计算机基础知识是区分科班生与非科班生的重要标志,也是计算机专业的核心竞争力。

如同习武之人的内功,基础牢固,才能在未来学习中游刃有余。

经典书籍如《深入理解计算机系统》、《算法》、《数据结构与算法》等,都是打好基础的基石。只有基础扎实,学习其他框架才能事半功倍。



2.独立思考,解决问题



遇到问题时,不要急于求助他人,而要先尝试独立思考,利用搜索引擎寻找答案。

Google搜索是技术学习的利器,善用它可以解决大部分问题。国内也有很多Google镜像网站,可以绕过访问限制。

培养独立思考的能力,是成为优秀程序员的必经之路。



3.参加竞赛,提升技能



积极参加有价值的计算机竞赛。

例如ACM国际大学生程序设计竞赛、GPLT全球程序设计挑战赛、蓝桥杯全国软件和信息技术专业人才大赛、Kaggle 数据科学竞赛、阿里天池算法大赛、百度之星程序设计大赛、中国大学生计算机设计大赛等。

这些竞赛不仅可以提升实践能力,还能获得丰厚奖金,甚至获得大厂实习和工作机会。

对于普通院校的学生来说,参加竞赛更是提升就业竞争力的绝佳途径。



4.勤刷算法,熟能生巧



刷算法题是计算机专业学习中必不可少的一环。在学习《数据结构与算法》之后,就要开始进行大量的刷题练习。

刷题的重要性不言而喻,因为无论是国内还是国外企业,面试时都会考察算法能力。提前准备,才能在面试中脱颖而出。



5.提前实习,积累经验



尽早进行实习,尤其是对于不准备考研、毕业后直接工作的同学来说,暑假是实习的黄金时间。

实习经历是面试时的加分项,可以帮助我们提前熟悉工作环境和社会需求,发现自身不足,弥补课堂与社会的差距。



6.系统学习,构建体系



在信息爆炸的时代,各种学习资源层出不穷,容易让人迷失方向。因此,系统化学习至关重要。

例如,学习数据库时,可以先从基础的《SQL必知必会》入手,接着学习《高性能MySQL》,最后深入学习《MySQL技术内幕》。

只有建立起完整的知识体系,才能真正掌握一门技术。



7.项目实战,学以致用



理论知识固然重要,但只有将其运用到实际项目中,才能发挥其最大价值。

不要做一个只会纸上谈兵的理论派,要积极参与项目开发,积累实战经验。

例如,可以尝试独立开发一个网站,从前端到后端,锻炼自己的编程能力,为将来求职打下坚实基础。



8.拥抱GitHub,加入开源



GitHub是程序员的宝库,在这里,你可以找到许多有趣实用的开源项目,学习优秀代码,甚至可以尝试为顶级开源项目贡献代码。

如果你的代码被成功合并,那么在面试时,你将拥有秒杀90%竞争者的实力。



9.坚持写作,分享技术



写博客是许多程序员的习惯,也是提升技术能力的有效途径。

将日常学习所得以文字的形式记录下来,不仅可以加深理解,还能积累影响力,拓展人脉。



10.强健体魄,健康生活



身体是革命的本钱,没有健康的身体,一切都是空谈。学习之余,要保持良好的生活习惯,加强体育锻炼,养成规律的作息。

只有拥有健康的体魄,才能在学习和工作中保持充沛的精力。





—-


学习计算机是一个循序渐进的过程,需要不断地积累和沉淀。希望这十点建议能够帮助你在计算机学习的道路上走得更稳、更远。

7月数据库流行度排名!Oracle稳居榜首,Snowflake强势上升!

thbcm阅读(357)

DB-Engines是一个专注于数据库管理系统(DBMS)的在线排名和分析平台。它提供各种工具和资源,让用户能够深入了解不同数据库系统的流行度和发展趋势。

DB-Engines通过综合分析搜索引擎查询、社交媒体上的讨论、技术网站的提及、招聘广告以及开发者社区的活动等多个维度的数据,来评估和比较各种数据库的流行程度。排名每月更新一次。

让我们一起看看七月份的排名情况。



排名前20的数据库

前十名的排名情况如下

跟上个月相比,尽管进入前十的数据库没有变化,但各数据库的得分有所波动。

Snowflake连续两个月得分上涨,接连反超IBM Db2和Elasticsearch,排名从第9上升到第7。

以下是前10数据库的简要介绍

● Oracle 广泛应用于企业级应用和数据仓库,以其高度可扩展性和可靠性而闻名。

● MySQL 常用于 Web 应用和中小型项目,因其开源特性和广泛的社区支持而受到青睐。

● Microsoft SQL Server 适合各种规模的企业应用,特别是与微软技术栈的集成。

● PostgreSQL 以其高度可扩展性和对复杂查询的支持,适合数据密集型应用和地理信息系统。

● MongoDB 适合需要灵活数据模型和高吞吐量读写操作的大数据应用。

● Redis 作为高性能的键值存储,常用于缓存、消息队列和实时数据处理。

● Snowflake 专为云数据仓库和分析型应用设计,提供按需扩展和易于使用的服务。

● Elasticsearch 专为搜索引擎和日志分析设计,提供快速的全文搜索和数据分析。

● IBM Db2 适合大型企业的数据仓库和事务处理,提供高性能和安全性。

● SQLite 轻量级的数据库,适合移动应用和需要简单数据存储的小型应用。

11-20名排名情况如下


流行度趋势




各类型数据库的排名情况

● 关系型数据库前10名

● Key-Value(KV)数据库前10名

● 文档数据库前10名

● 时序数据库前10名

● 图数据库前10名

● 搜索引擎前10名

这份榜单分析旨在为数据库相关从业人员提供一个技术方向的参考,其中涉及到的排名情况并非基于产品的技术先进程度或市场占有率等因素。

无论排名先后,选择适合与企业业务需求相比配的技术才是最重要的。

原文链接

https://db-engines.com/en/ranking

程序员喜欢或讨厌Go语言的8个原因!你认同吗?

thbcm阅读(277)

Go语言,又称Golang,自2009年由Google推出以来,便在开发者群体中引发了持续的讨论。

它简洁易学、并发性强、性能优异,但也因其过于简单、限制过多等特点而饱受争议。

InfoWorld撰稿分析了开发人员喜欢或讨厌Go语言的8个原因,我们来看看大家都是怎么讨论Go的。





1.简洁易学:优点还是缺点?



Go语言的设计初衷之一便是简单易学,没有太多复杂的功能和特性。

被喜欢的点在于

对于新手程序员和团队新成员来说,Go语言更容易理解和掌握,简洁的代码也更易于阅读和维护。也因此使得团队人员的配备更加灵活。

被讨厌的点在于

一些开发者认为,Go语言的简洁性是以牺牲功能性和灵活性为代价的,其过于简单反而限制了程序员的创造力和表达能力。

2.中立立场优势还是劣势?



Go语言的设计者在开发之初就决定不偏袒任何特定的编程范式或风格,而是提供一种简洁、通用的语言核心。

被喜欢的点在于

Go语言的精简性深受许多开发者的喜爱,他们认为不需要掌握大量复杂的功能和特性就能高效地使用该语言。

被讨厌的点在于

每个开发者都有自己偏爱的功能和技巧,而Go语言可能缺少某些特定功能,导致他们需要编写更多代码来完成相同任务,效率反而降低。



3.基于C语言的语法熟悉还是厌倦?



Go语言的语法深受C语言的影响,但进行了一些改进,使其更简洁、更现代。

被喜欢的点在于

对于熟悉C语言风格的程序员来说,Go语言的语法非常直观,可以快速上手。他们可以将更多精力放在学习Go语言的独特功能和优势上。

被讨厌的点在于

很多方面,Python的设计都是与C截然相反的。对于喜欢Python方法的人而言,会觉得Go有很多让人讨厌的地方。



4.规则太多了规范还是束缚?



Go语言不仅定义了语法,还定义了大部分代码风格和使用模式。

被喜欢的点在于

强制性的代码风格规范可以减少团队内部关于代码风格的争论,使代码更易于理解和维护。

被讨厌的点在于

一些开发者认为Go语言的规则过于严格,限制了他们的自由和创造力。





5.独特的错误处理机制谨慎还是冗余?



Go语言采用了一种独特的错误处理机制,鼓励开发者在代码中显式地处理错误。

被喜欢的点在于

这种机制可以促使开发者提前考虑和处理潜在的错误,提高代码的健壮性和可靠性。

被讨厌的点在于

一些开发者认为Go语言的错误处理机制过于冗余,导致代码变得更长、更难理解。





6.丰富的标准库便捷还是限制?



Go语言提供了一个功能丰富的标准库,涵盖了网络编程、文件处理、并发编程等常见任务。

被喜欢的点在于

开发者可以直接使用标准库提供的功能,而无需依赖第三方库,这使得代码更易于阅读和维护。

被讨厌的点在于

一些开发者认为,标准库的强大功能可能会抑制第三方库的发展,限制了语言生态的丰富性和多样性。





7.可执行文件大小优势还是负担?



Go语言可以将程序编译成单个可执行文件,方便部署和分发。

被喜欢的点在于

单个可执行文件简化了部署流程,开发者无需安装复杂的依赖项。

被讨厌的点在于

可执行文件通常较大,尤其是在包含大量依赖库的情况下。这可能会影响程序的加载速度和磁盘空间占用。



8.Google的支持:资源还是隐患?



Go语言由Google开发并维护,拥有强大的技术支持和资源。

被喜欢的点在于

Google的支持为Go语言提供了稳定的发展环境和丰富的学习资源,开发者可以从Google的经验和技术中获益。

被讨厌的点在于

一些开发者担心Go语言的发展过度依赖Google,缺乏社区的参与和贡献。他们担心Google可能会在未来改变Go语言的发展方向,导致语言生态的不稳定。



——-


无论如何,Go语言已经成为一门重要的编程语言,并且在未来的发展中将会继续扮演重要的角色。

读计算机专业,但真的不喜欢写代码!除了当程序员还能怎么办?

thbcm阅读(321)

“计算机系的学生就一定要会写代码吗?”、“不喜欢敲代码还能在计算机领域发展吗?” 这些疑问常常萦绕在许多计算机专业学生的心头。

“计算机系=程序员”,是外界对这个专业普遍存在的刻板印象。这就导致一些不喜欢、不擅长敲代码的计算机同学陷入了深深的焦虑:如果我真不喜欢敲代码,那大学四年岂不是白学了?

别慌!咱们今天就来好好聊聊,不喜欢敲代码的计算机系学生,到底还有哪些出路。

首先,你要明白一点:计算机≠写代码。计算机是一个非常广阔的领域,程序员只是其中一个职业选择,而且绝对不是唯一选择。

那么,除了程序员,计算机系的学生还能做什么呢?答案是:太多了!


对编程能力要求不高的方向



● 软件测试工程师

你可能不喜欢创造代码,但你善于发现问题?恭喜你,软件测试工程师非常适合你!许多代码能力不强,但又想从事互联网行业的同学会选择软件测试。

测试工程师处于软件开发流程的后端,主要负责对程序员开发的系统进行测试,找出bug并生成测试报告,反馈给程序员进行修改。

这个职位需要你具备良好的逻辑思维能力、细心和耐心。

● 运维工程师

运维,顾名思义就是“运行和维护”。运维工程师负责保证系统和网站的安全稳定运行。

当程序员开发完软件,测试工程师测试通过后,运维工程师负责将产品上线,并对系统进行监控和管理。

例如,当线上出现故障时,运维工程师需要及时排查原因,提供技术支持,确保系统恢复正常运行。

这个职位需要你具备较强的责任心、快速学习能力以及应对突发事件的能力。

完全不需要编程能力的方向



● UI/UE设计师

UI是用户界面设计,UE是用户体验设计。

UI设计师负责产品的视觉风格定义,以及图标、页面设计等,注重产品的美观舒适;

而UE设计师则负责设计人与产品、服务如何进行整体交互,注重用户的整体体验。

这两个职位原本是分开的,但随着互联网行业的发展,越来越多的公司要求设计师同时具备这两种能力。

● 新媒体运营

新媒体运营看似与计算机无关,但如今越来越多的新媒体运营岗位需要具备数据分析能力。

懂技术的新媒体运营可以更好地借助技术思维,进行数据分析和用户画像,制定更精准的运营策略。

其他重要职位



● 项目经理

项目经理是项目的负责人,负责项目的整体计划、实施和控制,带领各个岗位的人员共同完成项目目标。

这个职位对综合能力要求较高,需要你具备良好的沟通协调能力、组织能力、风险控制能力等。

● 产品经理

产品经理负责进行市场调研,根据用户需求进行需求分析,设计产品原型,并协调程序员进行开发。

计算机科班出身的产品经理具备一定的技术优势,能够更好地理解技术实现的可能性,与开发团队进行有效沟通。

———–

当然,这只是一些常见的例子,计算机领域还有很多其他的职业选择,比如数据分析师、IT咨询顾问等等,这里就不一一列举了。

重要的是,你需要明确自己的兴趣所在,并针对目标岗位所需的技能进行学习和提升。

不喜欢敲代码,不喜欢当程序员,这都不是问题。真正的问题在于,你是否清楚自己的目标和方向,是否愿意为之付出努力?找到自己真正感兴趣的领域,并为之奋斗,才是通往成功的最佳路径。

不会英语或英语不好,真的没办法学编程当程序员吗?

thbcm阅读(305)

很多想学习编程,或是正在学习编程的朋友,都会有一个担忧:我的英语水平是不是太差了,会不会成为学习编程的绊脚石?

好消息是,学习编程并不要求你达到英语专业八级的水平才能写代码。但不可否认的是,一定的英语基础,尤其是词汇量,对于程序员来说的确非常重要。

程序员并非英语文学家,不需要华丽的辞藻和复杂的语法。他们更像是一群使用专业工具的工匠,而英语词汇就是这些工具的名字。

那么,英语水平究竟会对程序员造成哪些方面的限制呢?

1.数据设计与代码阅读



在编程过程中,我们需要给数据、函数、变量等命名。为了保证代码的可读性和统一性,程序员通常会使用英文进行命名。


而为了简洁高效,长单词或常用单词还会使用缩写。如果词汇量不足,这些名称在你眼中就和随机字符串没什么区别,无疑会大大增加理解数据设计和阅读代码的难度。

想象一下,满屏都是你不认识的单词,这会让人多么崩溃!



2.查阅官方文档



目前主流的编程语言、开发工具大多来自国外,其官方文档和帮助信息也以英文为主。


虽然你可以借助翻译工具,但这无疑会降低效率,并在无形中树立起一道心理障碍,让你本能地抗拒阅读英文文档。

长此以往,你的学习能力和解决问题的能力都会受到限制,最终影响你的职业发展。

3.了解最新技术趋势



科技发展日新月异,而引领潮流的往往是西方国家。想要紧跟时代步伐,学习最新技术,就必须能够阅读英文技术文档和参与国际开发者社区的讨论。


英语,是你打开这扇知识大门的钥匙。

—–

看到这里,你或许会感到焦虑,担心自己有限的英语水平成为前进路上的绊石。

但请别灰心!程序员需要掌握的英语其实非常有限,而且语法相对简单,主要侧重于专业词汇的积累。

新手程序员常犯的10个错误!你中招了吗?

thbcm阅读(311)

程序员在其他人看来都是非常厉害的,又有技术,收入也还算客观。

然而,鲜为人知的是,初入职场的程序员们,也常常会犯下一些令人啼笑皆非的错误,这些错误甚至会让老司机们掩面而泣,直呼“不要太真实!”

今天,我们就来盘点一下新手程序员们常犯的“十宗罪”,希望能够帮助大家避免这些错误,顺利成长为一名合格的程序员。

1.拿到需求就开干,代码写得飞起

初出茅庐的新手程序员,往往迫不及待地想要展现自己的能力,拿到需求后便迅速开始敲代码。

然而,这却是一个巨大的错误。就像盖房子一样,没有图纸和设计,就一味地砌砖,最终只会导致结构混乱,无法使用。

2.产品经理问什么都说“嗯嗯”,不懂的地方自己乱猜

程序员们常常被认为是沉默寡言的“代码机器”,但实际上,沟通交流对于程序员来说至关重要。

很多新手程序员不善于沟通,遇到不懂的地方就自己乱猜,最终导致理解偏差,甚至做出错误的实现。

3.沟通完就忘,事后扯皮

沟通记录是程序员工作中不可或缺的一部分。

很多时候,一些重要的需求是通过口头沟通传递的,如果不及时记录下来,后续很容易出现扯皮的情况,浪费时间和精力。

4.代码写完就跑,注释是什么?

代码注释是程序员的“说明书”,能够帮助其他程序员理解代码逻辑,也能方便自己日后维护代码。

很多新手程序员不重视代码注释,导致代码晦涩难懂,甚至连自己都看不懂,最终只能重写代码。

5.需求一改就抱怨,仿佛世界末日

产品需求是根据商业需求不断调整的,修改需求是再正常不过的事情。

新手程序员不应该对需求改动抱有抱怨情绪,而应该积极配合,不断学习和改进。

6.只顾着炫技,忘了公司要赚钱

程序员的价值在于为公司创造商业价值,而不是炫技。

新手程序员应该将自己的技术应用到实际项目中,为公司的发展做出贡献,而不是一味追求技术上的炫耀。

7.代码写得马马虎虎,bug满天飞

写代码时要保持认真细致的态度,尽力避免bug的出现。

很多新手程序员因为粗心大意,导致代码漏洞百出,最终需要花费大量时间进行调试和修复。

8.写完代码就扔给测试,不管不顾

程序员应该对自己的作品负责,不要一写完代码就扔给测试人员去测试,而应该自己先进行测试,确保代码质量。

9.遇到问题就问同事,自己不思考

遇到不懂的问题,应该先自己想办法解决,实在无法解决再寻求同事或领导的帮助。

过度依赖他人,会阻碍自身成长。

10.新技术一出来就用,不考虑实际情况

新技术固然是好东西,但应该谨慎使用。

在没有充分了解新技术的情况下,贸然将其应用到项目中,可能会带来不可预知的风险。

———

当然,以上只是新手程序员常犯的一些错误,并非所有新手程序员都会犯这些错误。

但希望通过这些案例,能够帮助大家更好地理解程序员的职业特点,避免一些常见的错误,更快地成长为一名合格的程序员。

计算机本科生真的不适合算法岗吗?薪资好高……

thbcm阅读(326)

随着人工智能的兴起,算法工程师成为炙手可热的职业,也吸引了越来越多本科生的目光。然而,激烈的竞争和高企的门槛也让不少人望而却步。

但这是否意味着本科生就彻底与算法无缘了呢?其实并非如此。

接下来我们就从就业环境和个人发展两个角度来讨论本科生从事算法工作的机遇与挑战,并给出一些建议。


1.就业环境



先来分析下大环境。2016年,AlphaGo战胜围棋世界冠军李世石,将人工智能推向了风口浪尖。这一事件也让人们意识到算法人才的重要性,各大互联网公司纷纷加大对算法工程师的招聘力度。

受此影响,越来越多的高校开设人工智能专业,旨在为行业输送更多人才。

然而,经过几年的快速发展,算法岗位的供需关系逐渐趋于平衡,甚至出现供过于求的趋势。

一方面,企业对算法人才的要求越来越高,更青睐拥有丰富项目经验的硕士、博士毕业生;另一方面,每年都有大量本科生涌入求职市场,竞争异常激烈。

这种情况下,本科生想要在算法领域脱颖而出,难度可想而知。但这并不意味着本科生完全没有机会。

市场上仍然存在一部分企业愿意招聘优秀的本科生,特别是那些注重培养潜力和学习能力的公司。

2.本科生如何抓住机会



尽管行业竞争激烈,但仍有不少本科生成功拿到了算法岗位的Offer。

他们的成功并非偶然,而是源于对算法的热爱、清晰的职业规划和持之以恒的努力。

首先你要明白,你的兴趣真的在算法领域吗?

算法工作需要处理大量数据、调试代码,甚至面对各种突发问题,如果没有足够的兴趣支撑,很容易感到枯燥乏味,甚至产生自我怀疑。

只有真正热爱算法,才能在面对挑战时保持积极的心态,不断学习和进步。

此外,算法领域技术更新迭代速度非常快,新的模型和算法层出不穷。只有对算法保持持续的热情,才能紧跟行业发展趋势,避免被时代淘汰。

明确了这一点,接下来就是如何为进入这一行业做准备。

想要在本科毕业后从事算法工作,大学四年的学习生活至关重要。以下是一些学习建议

1️⃣基础扎实,才能走得更远

算法的基础有两大块:数学和计算机。

算法工作离不开扎实的计算机基础知识。不要认为算法只需要数学好,就能忽略计算机底层知识的学习。

实际上,优秀的算法工程师往往对计算机体系结构、操作系统、编译原理等都有深入的理解。这些知识能够帮助你写出更高效、更稳定的代码,在实际工作中发挥重要作用。

在数学方面,高等数学、线性代数、概率论与数理统计是算法学习的基石。建议尽早打好数学基础,为后续学习扫清障碍。

2️⃣代码能力是算法工程师的立身之本

学习算法,最终要落实到代码实现上。只有多写代码,才能将理论知识转化为实际技能,并不断提升代码能力。

在学习过程中,可以参考优秀的开源代码,学习代码规范和设计思路。同时,积极参与编程竞赛、完成课程项目,也是锻炼代码能力的有效途径。

3️⃣实习是通往职场的最佳桥梁

实习经历是简历上的加分项,也是企业考察求职者实际能力的重要指标。

通过实习,你可以将课堂上学到的知识应用到实际项目中,积累宝贵的经验,并提前了解行业发展趋势和企业文化。

建议尽早开始实习规划,利用寒暑假时间积极寻找实习机会。在实习过程中,要认真完成工作任务,积极学习新知识,并与同事交流学习经验。

———

本科生想要从事算法工作,面临着机遇与挑战并存的局面。只要你对算法充满热情,并愿意付出比别人更多的努力,制定合理的学习计划,打好专业基础,积累项目经验,就能在激烈的竞争中脱颖而出,实现自己的职业目标。 
机会总是留给有准备的人。

状态栏置顶,应用Dock栏落底!“鸿蒙PC版”预计今年登场!

thbcm阅读(302)

7月20日,深圳开鸿数字产业发展有限公司CEO王成录在其社交平台上宣布,他已收到哈尔滨工业大学电子信息专业的博士研究生录取通知书,将在徐晓飞教授的指导下,用三年时间系统、全面地建立鸿蒙操作系统的理论体系。

王成录并非哈工大新人,他此前曾在该校获得工学博士学位,并曾在华为担任终端BG软件部总裁,主导鸿蒙系统的开发。

2022年,他从华为离职后加入深开鸿,担任CEO,继续深耕鸿蒙生态。此次重返校园,体现了王成录对鸿蒙系统未来发展的深远思考和坚定决心。

近年来,鸿蒙系统在手机、平板、智能穿戴等领域取得了显著进展,用户规模不断扩大,生态建设也取得了阶段性成果。然而,要真正挑战现有操作系统格局,鸿蒙还需要在PC等更多领域实现突破。

网友们对鸿蒙PC的期待十分高涨。在王成录宣布重返校园的微博评论区,有网友问道:“今年能买到鸿蒙PC吗?”王成录明确表示“会有的!”

这已是他第二次公开回应鸿蒙PC相关事宜,进一步印证了相关产品正在稳步推进中。

事实上,华为对于鸿蒙PC的布局早已展开。华为开发者官网的设计指南中已出现鸿蒙 PC 版的界面布局,整体风格简洁流畅,类似 Mac,包括顶部的状态栏和底部的 Dock 栏。

状态栏显示输入法、音量、电池容量以及时间等信息,Dock 栏则包含常驻功能和应用,方便用户快速访问常用功能。

鸿蒙 PC 版的应用预计将与手机和平板版本保持一致,覆盖影音、社交、拍摄、阅读、购物、金融、生活、出行等类别使用场景,以便在不同设备间提供统一且流畅的使用体验。

这也与鸿蒙系统“一次开发,多端部署”的理念相契合,开发者只需一次开发,即可将应用部署到手机、平板、PC等多种设备上,大大降低了开发成本,提高了开发效率。

华为此前发布了针对 2in1 设备的HarmonyOS 应用设计指南,其中就涉及到了鸿蒙 PC 版应用 UI 的展示。

窗口作为应用的载体,由容器层和内容区构成,容器层用于展示应用品牌和控制整体窗口,内容层用于查看内容及与内容进行交互。

支持默认尺寸显示和任意尺寸拉伸,提供了灵活的窗口管理体验。

据悉,华为计划在 2024 年 8 月启动华为 HarmonyOS NEXT 的公开 Beta 测试,并在四季度推送正式版。

作为鸿蒙操作系统的一部分,鸿蒙 PC 版很可能会在同一时期推出,届时将为用户带来全新的PC操作系统体验。

程序员都应该关注的3种编程语言!告别 C++?

thbcm阅读(302)

有关编程语言的争论从未停歇。

虽然近期讨论的焦点集中在 AI 的影响以及生成式 AI 是否会完全取代编程语言的熟练程度,但学习和掌握编程语言仍然是不可或缺的一部分。

科技媒体 VentureBeat 发布了一份报告,列出了他们认为程序员需要重点掌握的三种语言,一起看看吧!



Swift

苹果公司语言和运行时总监 Ted Kremenek 曾明确表示,程序员应该将目光投向 Swift,而不是传统的 C++。他认为,Swift 的安全性、速度和易用性,加上内置的 C 和 C++ 互操作性,使其成为 C++ 的最佳继任者。

Swift 由苹果公司于 2014 年推出,最新迭代版本 Swift 6 预计将在今年晚些时候发布,并带来多项改进。其中包括更安全、更简单的编程,新的编码时数据安全保障功能,可以在编码时诊断开发者项目中并发访问内存的情况。

这一优化可以在对整个代码库进行最小改动的情况下发现和修复错误,增强了未来代码的安全性和可维护性。

苹果公司还指出,Swift 6 的速度将比 Python 快 8.4 倍。这一速度优势使其在性能要求较高的领域,例如移动应用开发和系统编程,具有显著的竞争优势。


Finch

Finch 是一种由麻省理工学院研究小组设计的新型编程语言,其目标是支持灵活的控制流和多样化的数据结构。它为程序员进行结构化数组编程提供了一种全新的编程方式。

Finch 的创建者表示,该语言通过将控制流和数据结构结合到一种可以共同优化的通用表示形式中,解决了在结构化数组上进行计算所面临的挑战。

Finch 的主要创新之一在于它支持丰富的结构化数组编程语言。这一特点使其能够处理复杂的数据结构,而不会牺牲表达能力或效率。

尽管 Finch 仍处于起步阶段,但 VentureBeat 认为其在控制流集成等领域的优势,意味着该语言可以用于数据库管理、图像和信号处理、机器学习和数据科学的实现,以及创建图形算法。

此外,Finch 提供比以往更加复杂的阵列结构。这使其能够有效地处理 banded、triangular、run-length-encoded 或 sparse datasets 及其任意组合,为数据处理和分析提供了更强大的工具。


Zig

对于想尽快掌握一门编程语言以提高收入能力的程序员来说,Zig 是一个不错的选择。

Stack Overflow 最新调查显示,Zig 已成为 2024 年最适合开发人员掌握的高薪编程语言之一,Zig 开发人员的平均年薪为 103,000 美元。

Zig 被誉为 C 语言的继承者,它旨在提供一种更安全、更现代的编程体验,同时保留 C 语言的性能优势。

Zig 的主要优势在于其简洁的语法、强大的类型系统和对内存安全的重视。它还提供了许多 C 语言所没有的功能,例如内置的错误处理机制和强大的元编程能力。

Zig 非常适合那些重视速度和大小的程序员,它可以用于开发各种类型的应用程序,从操作系统到嵌入式系统再到高性能计算。



—–


随着技术不断发展,编程语言也将在未来不断演变。

Swift、Finch 和 Zig 只是未来编程语言发展趋势的缩影,它们代表了不同方向的探索和创新。

程序员需要不断学习和适应,掌握新兴的编程语言,才能在快速变化的技术世界中保持竞争力,并为未来创造更多可能性。

如果不考虑失业,最推荐学哪几门编程语言?

thbcm阅读(326)

今天看到一个话题:“如果不考虑失业,最推荐学哪几门编程语言?”

新手在面对编程语言的选择时往往会犹豫不决,总想学个最好的语言。然而,”最好” 的定义见仁见智,有人追求实用性,有人追求高薪资。

而如果你聚焦于一个更纯粹的目标:提升思维逻辑,感受编程的乐趣,那么可以学习什么语言呢?

借鉴著名的“金字塔原理”,我们可以将编程语言学习拆解成若干个独立互斥且完全穷尽的维度,从而构建高效的学习模型。具体来说,我们可以从以下几个方面入手:


类型系统



现代编程语言的类型系统大致可分为:

● 动态类型 vs 静态类型

● 强类型 vs 弱类型

动态与静态类型的区分相对明确,而强类型与弱类型之间则存在一定的争议,这主要取决于个人对这些概念的定义和理解。

接下来,我们如何基于类型系统选择性价比高的编程语言呢?这可以通过集合或矩阵分析来实现。

例如,对于已经掌握 JavaScript(动态弱类型)的学习者,学习 Haskell(静态强类型)的收益显然高于 TypeScript(静态弱类型),因为前者能够补足 JavaScript 所缺乏的强类型思维模型,实现类型系统维度的“完全穷尽”。

因此,对于JavaScript开发者来说,我更推荐学习Haskell,这并非因为TypeScript不值得学习,而是Haskell在类型系统维度上提供了更高的性价比。

编程语言排行榜



在考虑学习或使用编程语言时,可以参考一些基于编程语言人气和热度的排行榜,这些排行榜通常能反映出一些关键信息:一个语言的社区活跃度、生态系统的丰富性、潜在的高薪资水平以及成熟的工业标准。

例如,GitHub作为全球最大的编程社区,其发布的编程语言趋势是一个值得参考的指标。根据2023年度数据,JavaScript是目前全球最受欢迎的编程语言。

当然,人气高低只是参考因素,最终选择仍需回归到类型系统等核心维度。

我们真正要的是找到那些能互补、覆盖所有类型系统的语言。就像选两门语言,我们希望它们的结合能让我们掌握类型系统的方方面面。

设计与实现



除了类型系统,我们还可以从其他角度来分析和选择编程语言,比如:

● 编译 vs 解释

● 内存管理机制

这些维度可以帮助我们更全面地理解每种语言的特点,我们可以通过画出一维或二维的矩阵来比较不同语言。

但有时候也要注意一些边界模糊的区域,某些语言可能同时具备多种特性,例如 JavaScript 介于解释型和编译型之间,Rust 则属于半自动内存管理。

编程范式



编程范式是指编程的思维方式,例如面向对象编程(OOP)、函数式编程(FP)等。

现代编程语言大多支持多种编程范式,因此在选择时,我们应优先考虑能够涵盖尽可能多编程范式的语言,例如 JavaScript。

当然,如果想要深入学习某种特定的编程范式,也可以选择专门为此设计的语言。例如,想要学习逻辑编程,可以选择 Prolog。

———–

无论是选择精通一门语言,还是博采众长,学习多种语言,最终目的都是为了提升自身的编程思维和解决问题的能力。

联系我们