新西兰天维网社区

标题: 想自学IT。。。。object c方面的 [打印本页]

作者: maomao968    时间: 2014-3-3 09:15:17     标题: 想自学IT。。。。object c方面的

想自学IT。。。。object c方面的。

有没有大侠有资料啊。。。我想学。。。
作者: ken454    时间: 2014-3-3 09:24:28

很老很强大
thinking in c++
作者: 画中人    时间: 2014-3-3 09:29:26

巴菲特都不买苹果股票。。你那么肯定苹果的前途?反正我是不会押宝它。
作者: 风舞劲竹    时间: 2014-3-3 09:29:39

Objective C, 表示自学难度很大。。最好能找个会的人教教。
作者: waitakere6    时间: 2014-3-3 10:21:31

本帖最后由 waitakere6 于 2014-3-3 09:24 编辑

itunes U 上面斯坦福paul的教学跟着学就行了,youtube上也应该找得到,自己把ASSIGNMENT也做了,但是必须要有苹果电脑才行。但是在新西兰objective c不是很火。
作者: gluckdavid    时间: 2014-3-3 16:41:30

ken454 发表于 2014-3-3 09:24
很老很强大
thinking in c++

I think he means Objective C for IOS development.
作者: AdrianLiu729    时间: 2014-3-3 19:31:16

一起交流吧
作者: AdrianLiu729    时间: 2014-3-3 19:32:42

画中人 发表于 2014-3-3 09:29
巴菲特都不买苹果股票。。你那么肯定苹果的前途?反正我是不会押宝它。

在你coding的有限生涯里,应该不会烂掉
作者: maomao968    时间: 2014-3-3 19:39:04

AdrianLiu729 发表于 2014-3-3 19:31
一起交流吧

好啊,好啊,我也是自己想学习一下的。
作者: ken454    时间: 2014-3-3 23:05:31

本帖最后由 ken454 于 2014-3-3 23:07 编辑
gluckdavid 发表于 2014-3-3 16:41
I think he means Objective C for IOS development.

所有的oo都是一样的吧,或者objective c不是oop。
作者: xp_theman    时间: 2014-3-3 23:15:45

Object c 名字里都有object了。 就是学习门槛儿有点高,需要一台apple
作者: 画中人    时间: 2014-3-4 09:10:34

AdrianLiu729 发表于 2014-3-3 19:32
在你coding的有限生涯里,应该不会烂掉

JOBS已死,无法死而复生来再次拯救苹果。一个技术的好坏和它的生死存亡没有绝对联系。也许它不会很快烂掉,但未来10年你说的清?
作者: pAtrick    时间: 2014-3-4 09:18:44

本帖最后由 pAtrick 于 2014-3-4 09:19 编辑

objective c虽然有个c字在里面,但是很多概念完全是不一样的,尤其是object oriented这方面,它传承的是smalltalk而不是c++

要自学的话,最好的方法就是动手写一个app出来。光看书看资料是没有用的
作者: maomao968    时间: 2014-3-4 09:35:22

pAtrick 发表于 2014-3-4 09:18
objective c虽然有个c字在里面,但是很多概念完全是不一样的,尤其是object oriented这方面,它传承的是sma ...

谢谢这位前辈的指点。我现在就是有一个idea在心中,想把它付诸实践才想自学的哈哈
作者: maomao968    时间: 2014-3-4 09:35:57

画中人 发表于 2014-3-4 09:10
JOBS已死,无法死而复生来再次拯救苹果。一个技术的好坏和它的生死存亡没有绝对联系。也许它不会很快烂掉 ...

各位前辈,万法归一,我想归根结底他们是一样的吧
作者: 某人的马甲    时间: 2014-3-4 09:43:33

do yo have any programming exp at all? if you do this is really good site for beginners: http://cocoadevcentral.com/. then you can move on to documents on https://developer.apple.com/
作者: AdrianLiu729    时间: 2014-3-4 12:03:12

画中人 发表于 2014-3-4 09:10
JOBS已死,无法死而复生来再次拯救苹果。一个技术的好坏和它的生死存亡没有绝对联系。也许它不会很快烂掉 ...

我只知道ios 程序员工资很高,而且很缺,至少我们公司是这样的
作者: 画中人    时间: 2014-3-4 12:21:42

AdrianLiu729 发表于 2014-3-4 12:03
我只知道ios 程序员工资很高,而且很缺,至少我们公司是这样的

不想讨论了。现在讲未来的事情没有意义。
作者: AdrianLiu729    时间: 2014-3-4 15:43:24

画中人 发表于 2014-3-4 12:21
不想讨论了。现在讲未来的事情没有意义。

这其实就是我想说的。
作者: bluedimple    时间: 2014-3-4 17:22:01

我在国内是一名ios开发人员,现在正在新西兰找工作呢,职位很少,也不太顺利,心里憋的慌。
软件开发涉及的知识还是比较广的,不知道LZ的根底怎样。如果是没有任何基础的话,不是打击您,还是放弃比较好。如果LZ是意志很坚定的话,那就往下看吧。
1.程序开发基础。
if啊,loop啊,变量啊,方法调用啊,数据结构啊,算法啊,接口啊,等等
2.C语言基础
内存管理啊,C程序编译,运行,debug等等
3.面向对象开发。
4.熟悉Objective-C语法常用设计模式。
语法如,类,方法,调用,block等等;设计模式如singleton,delegate,mvc,listener。。。
5.iOS界面设计。
熟知iOS控件,如UIView,UITableView,UIButton,UIScrollView等等
熟知iOS设计理念
6.iOS设备特性和运作和开发接口。
一般有用的app不是按个键然后显示点什么,或者显示hello world.这样的软不会有用的。一般有用的app都包含一些设备特性,使用一些设备提供的开发接口等等。譬如,map service, barcode scan,网络,speak check, 多媒体。。。
除此,还有一些开发约束,譬如iOS的app是有沙箱保护的,所以要了解在这种机制下如何存读文件。又譬如iOS设备有普通屏幕和retina屏幕,你要知道,显示图片的时候如何选取和设计合适的图片。
7.了解软件开发
因为手机上的应用一般比较简单,iOS开发多数是小团队开发,1-3个人的规模占多数(不算后台),所以很多都是采用agile的开发模式。如果是比较复杂的项目当然也会采用比较formal的开发模式。
一些常用的开发设计工具譬如UML也是需要知道的
8.其余
其余包括的就很多了。视乎你的项目设计的内容。最常需要的:数据库,网络通信,苹果审核制度等等。

一般从IT系毕业的同学学iOS开发还是要一年半载的,如果没有任何基础的话,普通人脱产也要学2-3年吧。另外,我认为软件开发最重要的不是功能的实现,而是实现的手段。如果仅仅实现功能,而使用的方法乱七八糟,那么很难算是一个好项目,因为这样的项目很快就会出问题。

最后,iOS开发也不是必须要在苹果机器上做的,你可以搭建苹果虚拟机。如果只是objective-c语言的学习,也可以搭建obj-c的语言环境。但最好还是买个苹果机器比较省事。
作者: 阿放    时间: 2014-3-4 18:46:24

提示: 作者被禁止或删除 内容自动屏蔽
作者: gluckdavid    时间: 2014-3-5 15:46:11

xp_theman 发表于 2014-3-3 23:15
Object c 名字里都有object了。 就是学习门槛儿有点高,需要一台apple

also need one ios developer account. around US$99 per year :)
作者: 画中人    时间: 2014-3-5 16:26:51

bluedimple 发表于 2014-3-4 17:22
我在国内是一名ios开发人员,现在正在新西兰找工作呢,职位很少,也不太顺利,心里憋的慌。
软件开发涉及的 ...

能详细讲一下实现手段吗?
作者: bluedimple    时间: 2014-3-5 21:13:26

画中人 发表于 2014-3-5 15:26
能详细讲一下实现手段吗?

不是太明白你说的实现手段指的什么。
如果是说学iOS开发的话,得先知道你的基础。
如果说开发的流程的话,一般是先要知道项目需求,从需求出发设计界面,数据库,模块等等。一般是UI和数据库先行实现,因为通常这两个部分不会直接通信。他们之间通常有个服务层或者控制层。服务层处理具体业务逻辑。服务层的确立会相对慢些,复杂些,所以会先设计接口,让UI层能够展示界面外观,然后再实现服务层充实其功能。iOS开发的流程根据软件的类型会有所不同,但因为是手机软件,所以功能一般不会特别复杂。很多情况下iOS app都是客户端app,真正复杂的处理都在后台服务器上进行,所以,一般是用便捷(agile)方式开发。
如果说开发用的工具的话,电脑,OSX系统,Xcode IDE,iOS虚拟器,还有真机测试(需要开发账号,99$一年)。
作者: 画中人    时间: 2014-3-6 09:21:09

bluedimple 发表于 2014-3-5 21:13
不是太明白你说的实现手段指的什么。
如果是说学iOS开发的话,得先知道你的基础。
如果说开发的流程的话 ...

"另外,我认为软件开发最重要的不是功能的实现,而是实现的手段。"

我问的是这句里的“实现手段”, 你觉得最重要的事情。谢谢你详细耐心的回答:)
作者: maomao968    时间: 2014-3-6 11:06:29

bluedimple 发表于 2014-3-4 17:22
我在国内是一名ios开发人员,现在正在新西兰找工作呢,职位很少,也不太顺利,心里憋的慌。
软件开发涉及的 ...

这位达人你好,昨天我已经下载了GNUstep 的 msys, core, develop 但是进入到那个shell的窗口就傻了,难道我们所说的windows 搭建 xcoe的就是这个小小小的黑窗口吗,不是那种苹果电脑的程序界面吗
作者: bluedimple    时间: 2014-3-6 15:30:49

maomao968 发表于 2014-3-6 10:06
这位达人你好,昨天我已经下载了GNUstep 的 msys, core, develop 但是进入到那个shell的窗口就傻了,难 ...

GNUStep提供的是windows下的ObjC开发环境。你可以利用它来编写ObjC程序,包括窗口程序。他的优点是运行比较快,虽然外观上不同,在本质上是很相近的,可以用来练习ObjC和视窗开发,但不能做iOS开发。windows下可以安装OSX的虚拟机,可以做iOS开发,缺点是运行较慢,如果机器速度够快问题也不大。当然,最好是直接买台mac。最低配的新版的mac air或者mac mini已经足够开发需要,价钱分别是7k和3k rmb,比较推荐前者(因为真的很轻)。新西兰价格会稍微贵点。如果你的windows机器不算慢,比较推荐先装osx虚拟机试试身手,主要是,mac机器的熟练本身也要2-3个月。
作者: maomao968    时间: 2014-3-6 15:42:30

bluedimple 发表于 2014-3-6 15:30
GNUStep提供的是windows下的ObjC开发环境。你可以利用它来编写ObjC程序,包括窗口程序。他的优点是运行比 ...

恩,您说的很有道理,谢谢你的分析,我做这个主要是想做iphone app的开发,作为自己的兴趣。再者也是看好ios的前景。那做手机app 看您也是比较推荐上手一台mac吗?
作者: 某人的马甲    时间: 2014-3-6 16:22:55

maomao968 发表于 2014-3-6 15:42
恩,您说的很有道理,谢谢你的分析,我做这个主要是想做iphone app的开发,作为自己的兴趣。再者也是看好 ...

IMHO you have to understand the spirit of apple to make a great app, and to understand that spirit you have to have a mac. i can't image anyone can make a good ios app without ever using a mac.
作者: bluedimple    时间: 2014-3-6 16:26:47

画中人 发表于 2014-3-6 08:21
"另外,我认为软件开发最重要的不是功能的实现,而是实现的手段。"

我问的是这句里的“实现手段”, 你 ...

这有点难说清楚。这样说吧,先看看以往比较小型的开发。在90年代末,一些低成本的开发很多注重的是功能本身的实现。所以对代码的模块设计,代码的效率,质量,书写都有点“能运行就OK”。软件是一个经常需要更新,修改的东西,一个结构设计不合理的项目会造成修改成本急速上升。

其实这在今天仍然是很普遍的现象,只是一些东西改变了。比起当年,我们已经有了很多的技术积累,很多开发已经应用上一些成熟的,现成的开发模块、框架、设计模式等等。譬如说,网页开发,我们现在不会亲力亲为的编写每一行代码,而是采用某些成熟的网页开发框架。这些框架都是久经世故的。他们能从宏观上把握整个网页的结构,将它分割成碎小的模块,而且保持模块的独立,也肩负模块通信的重要任务。由于大尺度的结构把握准确。哪怕某个程序员编写的代码质量很低,它波及的范围也是有限,因此大幅度节约维护成本。

然而,也由于这些框架把持了系统的宏观架构,因此很多新手会面临一种“失败不足”的情况。意思是,他们长期的做系统某个细小方面,细小模块的开发,因此不能把握项目大范围的结构。而且他们没有机会体验一种失败的设计,因此也不能具体了解自身的缺陷。这好比流水线上的工人,只能了解自己在流水线上的工作,却对最终产品的了解非常有限。

所谓实现手段指的并不是某个特别的方法。因为开发的时候往往是需要根据具体的问题选择手段。也有不少的问题,他们有多个解决方案,需要开发者从中取舍。譬如说,iOS开发界面的时候,不同的人有不同喜好,其中有些人喜欢“代码设计界面”,意思是界面的控制主要由代码直接编写。而我使用的是“图形设计界面”,意思是主要使用xib的界面设计工具(interface builder,简称IB)设计界面。前者的优势在于有比较好的文档支持,比较容易追踪,缺点是代码量大,修改困难。后者的优势是灵活,修改容易,缺点是很难提供文档支持,追踪困难。界面开发的时候,界面修改的可能性远远大于业务逻辑和数据库设计的修改。有时候一天内客户或者老板会提出几个界面修改的方案(这是他们唯一可以直接看到的所以很多意见),因此使用比较灵活的IB图形设计会更快的实现这些反馈。又譬如,新版本的Xcode(iOS开发工具)提供了一个叫storybroad的设计功能,但是很少人使用,原因是这个功能限制了团体协作开发,在组员进行项目同步的时候造成很大麻烦。

最后,实现手段可以如此形容:
对业界发展趋势的把握的能力;
对项目的宏观的把握的能力;
根据项目实际的需求采取技术手段的能力;
对微观的实现的把握,不止步于功能,追求代码的优雅和效率的能力;
对实现的内部的把握,不止步于实现,追求了解其内部运作原理的能力;
不止步于工作,不断思考的能力;
不止步于问答,自己寻找答案的能力。
作者: bluedimple    时间: 2014-3-6 16:36:16

maomao968 发表于 2014-3-6 14:42
恩,您说的很有道理,谢谢你的分析,我做这个主要是想做iphone app的开发,作为自己的兴趣。再者也是看好 ...

如果是作为职业的话,这几乎是必须的。工作的话,公司一般有提供机器。有些公司会为员工提供设备购买拨款,譬如定额拨款4000元,员工自己补上差价,设备归员工所有。我的公司没有这样的福利但我还是自己另外买了台mac air和mac pro(因为老婆的电脑坏了,把air给了她,后来自己再买一台pro)。虽然价钱有点贵,不过质量确实很高。这种机器用2-4年都不会觉得落后。

PS,我不是苹果粉,至少我没买手机,也没有ipad =w=。
作者: 某人的马甲    时间: 2014-3-6 16:36:57

bluedimple 发表于 2014-3-6 16:26
这有点难说清楚。这样说吧,先看看以往比较小型的开发。在90年代末,一些低成本的开发很多注重的是功能本 ...

great post! no doubt you will get a decent job soon!
作者: 画中人    时间: 2014-3-6 17:00:59

bluedimple 发表于 2014-3-6 16:26
这有点难说清楚。这样说吧,先看看以往比较小型的开发。在90年代末,一些低成本的开发很多注重的是功能本 ...

谢谢你,这段话有收藏价值!

我不知道大牛们平时写代码是什么心情。反正我常常遇到找不到哪有问题的BUG。这时我就要经历一系列的心理过程。从心里没底到一直挫败到忽然解开。如此反复我感觉我的心里承受能力也强了好多。我想说的是,面试也一样。表达自己要有技巧,面试里更是很多学问,最简单的方法就是多经历,失败几次你就能锻炼出来了。我大学毕业时经历了快20场面试,面试到后5个的时候,倒数4,5个都进了最后一轮,最后3个全拿到了。你能想象我最开始的时候各种失败各种灰溜溜的离场的样子吗?我觉得关键是坚持下来,大学毕业的面试真的只是比拼心理素质。你这么有才华,不可能被埋没的。
作者: 画中人    时间: 2014-3-6 17:01:36

某人的马甲 发表于 2014-3-6 16:36
great post! no doubt you will get a decent job soon!

同感。~~~~~~~~~~~~~~~~~~~




欢迎光临 新西兰天维网社区 (http://bbs.skykiwi.com/) Powered by Discuz! X2