iPad可以用来学编程吗,大家谁来告诉我一下呢?

iPad可以用来学编程吗,大家谁来告诉我一下呢?,第1张

总体来说还是比较麻烦的,vscode有在线版,但是编程需要调试,调试你需要有一台自己的服务器。你应该是学生,可以考虑使用腾讯或者阿里的云服务器,直接用轻量级就行,然后走vscode remote进行开发,总体来说有些脱裤子放屁的感觉。你真的有这种便携性,不如买个surface,如果一定喜欢iPad,可以考虑iPad+MacBook Air,总体来说都要比iPad编程要好很多。

编程拼的是,编程环境对写的代码的静态编译能力,也就是说,编程环境越智能,代码提示能力越强,占用内存越大,比如我是c加加程序员,用的vs测试版,一个cpp文件就几百m的内存。同时开两个工程的话16g内存都吃紧。所以说,ipad是可以买来顺带学编程的,毕竟看个视频教程或者文档还是够用的。就像我当年买个平板想要上山锻炼身体的时候写代码,结果,这几年山都没上,身体也没锻炼成。平板就闲置了,每年就定期冲冲电。防止电池坏掉。

可以但是非常不建议,ipad学习编程无非是各种云编译器,比如colab,它确实可以用来学习python。但问题是它的弊端很多,比如多个文件夹的各种引用,因为ipad很难像笔记本一样的创建文档,所以很多知识是ipad学不到的。

我的建议是买个最破的笔记本电脑,或者二手的台式机,学习编程还得是电脑,把基础学了再看下一步。然后如果你打算做什么数据科学或者人工智能什么的,这时候你就可以用云编译器,因为他们适合处理这种大型的数据,数据可以保存在云端,文件也不多,可能就一两个就好了。而很多编程内容,比如做网站,做APP,这些是ipad做不到的,这些项目动辄几十甚至上个文件。

当然可以,但是除了Swift Playgrounds还算说得过去以外,其它的基本都是事倍功半。Swift Playgrounds目前基本可以做到在iPad上独立开发应用,甚至是直接提交到App Store。而且这玩意的趣味性和易用性真的太重要了,很多人其实都是卡死在编程入门时的枯燥乏味上了。其实只要让入门变得简单一点,就很容易发现编程的乐趣所在了!

或者至少可以说,在你把编程当成职业以前,其实编程是可以很有乐趣的!而且再不济,iPad看看编程文档、语法什么的,也是大有神益的。但是不管怎么说,真心打算学编程,最终还是需要有一台电脑啊!电脑的作用是给你提供完整的学习、实 *** 、调试的环境,甚至是深入到程序底层真正的运行机制而不是简单的知道逻辑层面的实现。如果你能在最开始的时候就知道语言底层的东西,以后就可以少走很多弯路。但是需要提醒的是,这些靠近底层的东西,真的没什么乐趣可言。

非要找到一个平衡点的话,我觉得应该是最开始乐趣多一点,一旦开始入门,那就应该有点死磕精神了!拿着iPad死磕,真的会很限制你发挥的。ipad当然可以用来学编程,或者用来看书,但它更普遍的场景是用来娱乐,比如玩游戏、看视频,这天然决定了ipad不能也不会为编程场景提供绝佳的体验。

比如你学习golang这种编译型语言,如果通过云IDE来编码,云端编译+网络延迟就会让你很难受,你也很难体会到Goland这种本地IDE 带给你的快乐。如果只是在ipad上看看编程视频,学习python,javascript这类解释型语言,云端IDE+蓝牙外接键盘可能能够提升你的学习体验,前提是你的ipad屏幕不能太小。如果是以学习编程为第一月的,那么还是建议老老实实用笔记本吧,还可以装个linux系统,多好。不要嫌笔记本重,程序员还天天背着笔记木上下班呢,重一点还能锻炼身体。如果实在嫌重,攒点钱买个mac book,或者买个小米的轻薄笔记本。

当然,如果题主主要是想用ipad来画画,那买个ipad是非常不错的选择。ipad +类纸膜+procreate简直就是画画的完美搭配,比电脑+数位板+PS还要方便。你可以综合看自己的需求,以及到底想用ipad来干啥。可能想的是用它画画学编程,但买回来后就是看视频打游戏也不一定。

iPad上值得肯定地方也有很多,确实让很多东西都轻量化了,跑小型代码完全没有问题,本人就在iPad上跑过一些加载特效的代码。当然,也可以在iPad上做原型设计,优点是,入手简单交互效果明显,可视化的 *** 作界面;缺点是,做完之后并不能直接转化为代码,代码的结构也存在问题像我在学习前端编程的时候会考虑按照这样的流程去做,原型图--UI设计--代码转换。我使用的编译工具就会有vscode,webstorm等,找素材的话。我会去阿里巴巴图标库、和相助社区找我需要的icon和平面设计素材。

另外,说说重量的事情。如果你要做编程,不可能用 iPad 的屏幕键盘,一定是要配一个实体键盘Magic Keyboard的,那个实体键盘还是有相当的重量的,我们家那个 iPad Pro + 键盘现在被娃征去上网课+玩 Scratch 去了,我单手拿着也并不轻松。最后,以上观点并不绝对,初学者在手机上运行贪吃蛇之类的代码我也有试过,得看本人对于编程的需求在哪里。

Go语言其实是Golanguage的简称,Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译并发型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。该语言的吉祥物为金花鼠(gordon),

金花鼠(gordon)

Go 语言特色——简洁、快速、安全、并行、有趣、开源、内存管理、数组安全、编译迅速

Go 语言用途:Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。

C/C++的问题:开发效率低,对开发者要求高;libc只向后兼容,运维难度偏大。

Lua/Python的问题:动态语言,缺少编译过程,低级错误频出;缺少有效的性能分析及调试工具。

链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。

作为一个测试,作为一个测试开发, 全栈化+管理 是我们未来的发展方向。已经掌握了Java、Python、HTML的你,是不是也想了解下最近异常火爆的Go语言呢?来吧,让我们一起了解下。

Go 是一个开源的编程语言 ,它能让构造简单、可靠且高效的软件变得容易。

Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。这三个人都是计算机界的大神,有的参与了C语言的编写,有的还是数学大神,有的还获得了计算机最高荣誉-图灵奖。


接下来说说 Go语言的特色 :

简洁、快速、安全

并行、有趣、开源

内存管理、数组安全、编译迅速


Go语言的用途 :

Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。

对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于 游戏 服务端的开发而言是再好不过了。


Go语言的环境安装:

建议直接打开 >1为什么golang的开发效率高?
golang是一编译型的强类型语言,它在开发上的高效率主要来自于后发优势,不用考虑旧有恶心的历史,又有一个较高的工程视角。良好的避免了程序员因为“ { 需不需要独占一行 ”这种革命问题打架,也解决了一部分趁编译时间找产品妹妹搭讪的阶级敌人。
它有自己的包管理机制,工具链成熟,从开发、调试到发布都很简单方便;
有反向接口、defer、coroutine等大量的syntactic sugar;
编译速度快,因为是强类型语言又有gc,只要通过编译,非业务毛病就很少了;
它在语法级别上支持了goroutine,这是大家说到最多的内容,这里重点提一下。首先,coroutine并不稀罕,语言并不能超越硬件、 *** 作系统实现神乎其神的功能。golang可以做到事情,其他语言也可以做到,譬如c++,在boost库里面自己就有的coroutine实现(当然用起来跟其他boost库一样恶心)。golang做的事情,是把这一套东西的使用过程简化了,并且提供了一套channel的通信模式,使得程序员可以忽略诸如死锁等问题。
goroutine的目的是描述并发编程模型。并发与并行不同,它并不需要多核的硬件支持,它不是一种物理运行状态,而是一种程序逻辑流程。它的主要目的不是利用多核提高运行效率,而是提供一种更容易理解、不容易出错的语言来描述问题。
实际上golang默认就是运行在单OS进程上面的,通过指定环境变量GOMAXPROCS才能转身跑在多OS进程上面。有人提到了网易的pomelo,开源本来是一件很不错的事情,但是基于自己对callback hell的偏见,我一直持有这种态度:敢用nodejs写大规模游戏服务器的人,都是真正的勇士 : ) 。
2、Erlang与Golang的coroutine有啥区别,coroutine是啥?
coroutine本质上是语言开发者自己实现的、处于user space内的线程,无论是erlang、还是golang都是这样。需要解决没有时钟中断;碰着阻塞式i\o,整个进程都会被 *** 作系统主动挂起;需要自己拥有调度控制能力(放在并行环境下面还是挺麻烦的一件事)等等问题。那为啥要废老大的劲自己做一套线程放user space里面呢?
并发是服务器语言必须要解决的问题;
system space的进程还有线程调度都太慢了、占用的空间也太大了。
把线程放到user space的可以避免了陷入system call进行上下文切换以及高速缓冲更新,线程本身以及切换等 *** 作可以做得非常的轻量。这也就是golang这类语言反复提及的超高并发能力,分分钟给你开上几千个线程不费力。
不同的是,golang的并发调度在i/o等易发阻塞的时候才会发生,一般是内封在库函数内;erlang则更夸张,对每个coroutine维持一个计数器,常用语句都会导致这个计数器进行reduction,一旦到点,立即切换调度函数。
中断介入程度的不同,导致erlang看上去拥有了preemptive scheduling的能力,而golang则是cooperative shceduling的。golang一旦写出纯计算死循环,进程内所有会话必死无疑;要有大计算量少i\o的函数还得自己主动叫runtimeSched()来进行调度切换。
3、golang的运行效率怎么样?
我是相当反感所谓的ping\pong式benchmark,运行效率需要放到具体的工作环境下面考虑。
首先,它再快也是快不过c的,毕竟底下做了那么多工作,又有调度,又有gc什么的。那为什么在那些benchmark里面,golang、nodejs、erlang的响应效率看上去那么优秀呢,响应快,并发强?并发能力强的原因上面已经提到了,响应快是因为大量非阻塞式i\o *** 作出现的原因。这一点c也可以做到,并且能力更强,但是得多写不少优质代码。
然后,针对游戏服务器这种高实时性的运行环境,GC所造成的跳帧问题确实比较麻烦,前面的大神 @达达 有比较详细的论述和缓解方案,就不累述了 。随着golang的持续开发,相信应该会有非常大的改进。一是屏蔽内存 *** 作是现代语言的大势所趋,它肯定是需要被实现的;二是GC算法已经相当的成熟,效率勉勉强强过得去;三是可以通过incremental的 *** 作来均摊cpu消耗。
用这一点点效率损失换取一个更高的生产能力是不是值得呢?我觉得是值得的,硬件已经很便宜了,人生苦短,让自己的生活更轻松一点吧: )。
4、基于以上的论述,我认为采用go进行小范围的MMORPG开发是可行的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10586107.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存