swift语言前景(swift语言有多难)

http://www.itjxue.com  2023-02-17 00:42  来源:未知  点击次数: 

大学生自学swift语言有用吗

在学校里,多学习自然是很好的,毕竟上班以后精力和时间都相对更少、在学校里学习进度和效果估计会更高些,作为一个工作4年多的“过来人”的叮嘱,千万千万大学的时候不要害怕辛苦。

至于自学Swift,如果是计算机编程类专业,以后也准备从事此类工作,抓住还在学校里的机会,利用好课余时间。哪怕工作以后可能暂时用不上,思维模式和学习能力将在平时的学习里积累,这些都是短期内没办法“临时抱佛脚”的。当然,多学习并强化专业知识有助于找到该领域的工作,并在该领域持续发展。

另外,Swift是iOS的内部语言,相比OC更为高级,其重要性就像c#之于微软、java之于安卓。Swift背靠苹果,鉴于目前以及未来苹果的发展,这门语言也拥有着被广泛使用甚至作为第一编程语言的潜质。

自学的前提。

自学,对自制力要求较高,选择安静的环境更容易排除掉部分干扰,如果有搭档一起学习交流,或许会更好;另外就是,还是学生就有一项“在校老师”的资源,可以利用课余时间多提问、请教,不要以为大学老师就是上了课就走,他们也愿意和积极上进的学生做交流,至少大部分都是。

自学的途径。

看书、看老师推荐的书,长久下来也锻炼了自己对书内容、质量的评价鉴别能力;现在交流工具和平台很多,可以问问老师、同学有没有对应渠道,或者是在网课平台上找一找。要了解更多Swift入门也可以关注小码哥的MJ,他的《Swift从入门到精编》目录和大纲还是很清晰的,或许可以作为你学习的一个思维导图。

另外,再次强调一下Swift的优势,语言简洁、更安全、支持函数式编程、可编写 OSX 下的自动化脚本,尽管其使得App体积大、Xcode 支持不够好、第三方库的支持不够多,但也不妨碍它有市场,毕竟苹果的市场在那儿。

如果决定要做,并且是件积极进取的事,千万记得坚持,如果中途想要放弃,也先问问自己是什么原因,是没能力、接受不了失败,还是真的太辛苦了。上班以后,不止一两次会在看书的时候想要放弃,但是也明白不吃学习的苦,就要吃生活的苦,所以,如果必须要选,选前者吧,毕竟,学习的苦只是辛苦一段时间,但是生活的苦会持续很久、消磨心智。

swift语言有前途吗

首先看swift的基础语法,了解了最基本的控制,变量,数据体,类与结构体,继承之后,开始可以写一些简单的命令行工具,说白了就是终端工具,打印log之类的没一点问题。

可惜,我们学习这个东西不是为了开发command line程序的,我用shell或者nodejs也挺好比这个上手还快。

所以紧接着第二天开始直接跳过command line程序编写ios app,也就是iphone程序。

然后我就觉得我他妈的掉进了一个深坑。

搜了一下 现成得swift教程做app的中文几乎没有,国外有几篇讲的是开发一个todolist的教程,写的和官方的那个oc的todolist教程差不多,但是从我开始做到最后结束跑到模拟器里,我他妈也没写上超过20行得swift。。。基本都是IB实现的界面,事件,换场以及控件的创建。

我琢磨那他妈的我用oc也是一样的,算了,ios开发莫非就只是拖拖控件?了解一下mvc的概念就ok?

于是我去github上开始搜索开源的swift项目,比如2048,还有那个flappy,还有一个天气app的软件。

看了几行源码我就特么的放弃了。倒不是看不懂,我发现都是基于cocoa的,什么cocoa呢?我又去搜了一下,说了我是ios开发小白一点经验没有,然后我发现又是他妈的一个深坑啊。。cocoa的api都是oc编写的啊,swift是可以直接调用没的问题,可是cocoa的功能实在太多了啊。。

最他妈主要的是cocoa的帮助手册例子代码,api都他妈的是oc的api啊……我完全不会oc,我说了我是零基础,然后我在思考,我是否需要去学习下oc回来才能看懂那些api到底是怎么调用?那么多开源包都是些什么东西?

卧槽,那我学会了oc,我还学swift干啥呢?

不是说不用学oc了么……我特么的学swift就是为了不想了解oc啊。结果呢。

你不会oc也就是写写command line程序啊……我去你大爷的啊- -。

还有,xcode功能如此强大,我感觉如果自己写着玩,根本啥也不用学好么,鼠标拽拽一个app就出来了啊。。

而专家级呢?我觉得大部分得oc库,类都还都是oc的,你用swift可以调用,但是如果有bug呢?你想看内部实现呢?商业项目中这种开源坑遇到太多了,难道你就只用swift搞定么?

不太可能,也根本不可能,大家的代码都是oc的,底层是oc的,表现层也是,那么你swift到底是干什么用的呢?

===================================================

这是我学习了不到一周对swift和ios开发的理解,不学oc,我开发的时候就经常会陷入

【这他妈是啥,这他妈又是啥的一个一个深坑】

好了,就说这么多,最后扣下我第一句话。

swift开发和前端开发的关系就是java和javascript关系,雷锋和雷峰塔的关系。

PS,我发现其实文档中的实例代码是有swift的例子的,不知道是不是自动更新的,记得上周还木有。刚才发现有了,也可能之前我没仔细看~木哈哈。比如下面这段:

给苹果的文档 赞一个。。但是我依然不他妈的知道那个UIControlState是特么啥,我觉得,会oc开发的同学上手一定比0基础的要快很多……!给苹果的文档 赞一个。。但是我依然不他妈的知道那个UIControlState是特么啥,我觉得,会oc开发的同学上手一定比0基础的要快很多……!

【知乎用户的回答(4票)】:

直接开始学swift没问题,应该可以覆盖objc的所有主要功能,并非辅助语言。Apple开发这个语言的目的就是帮助初学者快速上手。

但是,看他的特点比较像scala,类似这种语言都容易上手,难于规范。因为太多灵活,不够死板,不会大规模用于企业的大项目。学swift,估计自己开始做了几个小应用之后还是需要迫于行业规范再去学习objc

一句话,独立开发可以从swift开始,找工作求职还是先学obj-c吧

如何评价 Swift 语言?

Swift语言是一种很好的语言,对于初学者来说也很友好。它是第一个既满足工业标准又像脚本语言一样充满表现力和趣味的编程语言。

它支持代码预览,这个革命性的特性可以允许程序员在不编译和运行应用程序的前提下运行Swift代码并实时查看结果。

主要介绍

Swift,苹果于2014年WWDC苹果开发者大会发布的新开发语言,可与Objective-C共同运行于macOS和iOS平台,用于搭建基于苹果平台的应用程序。

Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift的设计以安全为出发点,以避免各种常见的编程错误类别。

零基础现学苹果新语言 Swift 可能吗

可能是可能,但个人不建议用swift或OC作为第一门语言。

第一,这语言属于非主流。如果以它作为主要语种的话,你很难靠它找到工作。换言之,你也就没有什么参与实际项目的机会。自然也就很难成为一名合格的开发人员

第二,这语言不具备真正意义上的跨平台能力。无法跨平台的语言都不会有什么前途,目前“活着”的语言里,就只剩swift和Object-C这两个苹果家的奇葩了。。其他无法跨平台的语言,全都“死”了。靠苹果公司养着,虽不至于消失,但似乎很难对它的未来有太多期待。

第三,语言本身太新,没有太多案例可以参考。完善的教程不多,不利于初学。

其实前两个问题,可以合成一个问题来看。因为目前的主流开发方式,是“一次开发,到处部署”。每种语言可以部署的平台数量不同,但开发成本却都是差不多的。因此开发一次,可以部署更多的平台,则代表这门语言更有竞争力。而swift,开发完之后,只能部署到苹果自家的系统上。而部署到MAC OS和IOS之间,又差别很大,难以互通。等于增大了开发成本。

如果你对前面的说法感到不太理解,那就举个例子给你吧。就拿苹果家的swift和微软家的C#语言来对比。

比如你用swift做了一个小游戏,比如贪吃蛇吧。。这个项目当然可以运行在MAC OS系统上面。之后呢,你想在IOS上面也运行这个游戏。你会发现,它根本打不开。只好再重新写一遍。于是这就等于开发了两次,这就是所谓“N次开发”。而有一天你想在安卓系统上面运行它,会发现完全做不到,即“不具备可靠的跨平台性”。

而如果你是用C#开发了一个小游戏又如何呢?它当然可以运行在windows系统上面。之后你想在MAC上面部署?没问题,只要把代码复制粘贴,到MAC机上去发布就行了。Linux呢?同样如此操作便可,这就是所谓“跨平台性”。

那“一次开发”又是什么呢?比如有一天,想要在安卓上运行这个小游戏。当然还是靠“多平台”特性,发布成安卓版就行了(在windows系统上便可发布,需安装JDK与安卓SDK)。。但你会发现,虽然游戏可以打开,但安卓设备上面没有鼠标。而之前在windows上写好的代码,是要用鼠标操作的,所以根本无法控制小蛇转弯。其实并不用发愁,只需要借助一个叫Unity3D的引擎,把鼠标相关的操作,改成触摸操作就行了。不仅如此,借助Unity3D,你还可以把这个小游戏部署到PS4,XBOX等游戏机平台上面,去用手柄操作。或者VR设备上面,用VR眼镜上的控制器操作,仅仅只需要修改少量代码就可以了。。。。游戏内容一样,而操控的方式不一样,无需重新开发,只要把操作相关的代码改一下就行了,即“一次开发”。

具备跨平台性的主流语言如下,随便选一个学习便可,都是主流,都有海量教程,只是学习难度不同,按照自己的接受能力,自行选择便可:

JAVA (WINDOWS,MAC,LINUX,安卓)

C++(几乎所有平台)

C#(几乎所有平台)

Python(WINDOWS,MAC,LINUX)

学习难度方面,C++最难,非常难。。。。JAVA难度一般,C#和JAVA差不多,某些大神精力够强,可以JAVA与C#双修,因为两门语言的语法几乎一样,类似英语和美式英语的关系。。Python则是入门非常简单,据说有些国家都编入了小学生教材,但仅仅是语法容易,实际开发同样非常难。。而且项目越大,就越难,做大型项目,会比JAVA和C#更难。总之程序这东西,没有任何一个方向是不费脑子的,都挺难的。

(责任编辑:IT教学网)

更多

推荐新书快递文章