Kaiyun·开云·体育(中国)官网·体育·平台·入口·APP下载·全站

Kaiyun·开云(中国)·体育·平台·官网·APP下载·入口·全站·买球 - iOS 开开云 开云体育官网发怎么入门?
Kaiyun·开云·体育(中国)官网·体育·平台·入口·APP下载·全站

咨询热线

410-143-5697

Classification

新闻动态

410-143-5697
传真:18973896382
手机:18973896382
邮箱:support@jiaonichi.com
地址:冷水江市锑都中路 (商业步行街E2栋0213号门面)
当前位置: 首页 > 新闻动态 > 公司动态

iOS 开开云 开云体育官网发怎么入门?

发布时间:2023-09-26 17:10:08 丨 浏览次数:841

  Kaiyun App下载 全站Kaiyun App下载 全站Kaiyun App下载 全站我反对理由如下:不管是斯坦福大学的CS193p公开课、苹果官方文档、绝大多数市场上庞杂的教学书籍都不是很适合入门同学看,想入门的话应该选用学习成本最低的方法,从最最基本开始讲起,并不是一味的讲解语法与知识,而是一边实践一边学习知识才是最好的学习方法。

  并且我想告诉题主,你问的是iOS 开发怎么入门,但是你补充说明里说道的设计模式、内存管理等内容暂时不用你关心,等你真正iOS入门了以后在研究吧。也许我可以这么定义你的问题:

  一个略懂编程的人并且完全没有接触过IOS开发的人想要学习IOS开发应如何学习?

  :我以为,斯坦福大学IOS公开课不适合入门的同学看,里面第一课讲解的就是MVC模式。对于一个刚入门想要学习的IOS的同学可能就完全懵了,心里想:“我特么第一课都听不懂我后面还学个P啊”。如果以前没接触过面向对象的语言学习的热情肯定大打折扣。

  :苹果文档是学习iOS最权威的教程,许多许多iOS高手都是常年抱着它去看,但是我觉得它的内容虽然权威但example对初学者一点都不友好,相信你很快就会失去兴趣与耐心因为你光看了好多语法但是收不到的学习效果反馈。而且个人认为中文译文翻译不是令初学者很容易理解。初学阶段,教程的易理解程度我认为是非常重要的一点。(实在要看请看英文原版。)

  我不否认以上两者是极好的学习材料,如果你入门了iOS开发并且有一定的英文功底,我是非常推荐你去看的,尤其官方文档,应该经常翻阅。但是我认为保持学习的热情是最重要的。本着这个理念,我推荐的学习方法难度非常低,希望你们能满意。

  这个教程截止目前已经不更新OC语言的版本了,但是如果你是抱着求职为目的的学习还是请看OC版本的(两年前的版本)。The iOS Apprentice的教程针对完全没有编程经验的人设计。这个教程是外国人写的并且有免费试读版,感兴趣的人要看看。里面说的东西都非常非常基本,里面一个共讲解了4个不同类型app,强烈建议一步一步按照上面所写的步骤敲一遍代码。其中你会遇到很多复杂的语句和长的可怕的函数,你不用感到恐慌,照着敲,知道它干嘛用完全OK了,随着你编程时间以及经验的增加,你都会懂得。

  注:这个教程是英文原版,并且收费,只免费提供一个app的教程。如果看完了这个免费的教程觉得还挺想继续学的请参考@王寒老师的翻译教程(只有前3个app教程,第4个教程刚出,国内应该还没有人翻译,如果想看只能付费)。PS:(现在开发iOS应用基本都是用Objective-C,至于刚出来的Swift现阶段暂时不推荐学习,如果想了解王寒老师也做了swift版本的The iOS Apprentice教程翻译,自己去找) 附上王寒老师教程下载地址:oding

  经过第一个阶段你应该已经大致掌握IOS开发流程,能编写一个非常简单的应用了。这时候相信你的热情应该会很高涨,但接下来的学习可能会很枯燥,做好准备。网络课程的话推荐李明杰的课程,不推荐其他的。(他目前在广州创业建立自己的培训品牌,没有自制力看开云 开云体育官网网络课程的请去找他。杰哥开源了一些非常优秀的框架如:MJExtension )之所以不推荐其他培训班是因为优秀讲师实在是少的可怜,至少我目前接触过的人来说,许多人都是刚从培训班出来就拿着不菲的薪水去当讲师,所以还不如自己学。

  建议首先要恶补基础知识。经过第一个阶段你可能觉得你懂不少了,但是只是表面,尤其是没学过编程的应该好好学习一下视频前面的课程,主要看看语法。等你看恶心了看烦了就去看视频里UI部分,这里相对于来说比较轻松,一定要把视频里写的语句打一遍,相信这样你理解会更深刻。里面说的不清楚的地方上网可以百度,可以查书(如果你有书的话)。

  Q:视频教程是用来做什么的? A:光有实践没有知识是写不好程序的,第一阶段基本都是实践,第二部分则是用来查缺补漏。 之所以推荐网络课程是因为讲解的比较系统,各种入门知识都会涉及。因为iOS所涉及内容庞 大单看几本书还是涉及不全的。

  Q:上不上培训班? A:个人意见是不推荐去,自学足够了。现在学习iOS的环境比前几年好太多了,光凭借网上的资料是 完全可以的学得很好的,如果你连这点学习能力还没有我也不相信你将来能成为一个很优秀的工程师。而且你会发现在社会上一些互联网公司是拒绝接收培训班出来的人,如果你简历造假被揭穿以后会更要命,你当真不知道面试官看不出你水平到底是学了4个月的还是2年的么?

  推荐入门书籍: tips:以下所有书籍有英文版看英文版,有最新版看最新版。不光是iOS,你只要进了编程圈你的英文不好会很大程度上限制你的发展。而且市面上能买到的中文教程真的没几本能看的,浑水摸鱼的厉害。

  其实除了这基本书还有很多质量很好的书(比如封面都是水果类的哪些书).. 这里我想多说一句,买iOS开发的辅导书千万别买过时太久的,我看以上有答案还推荐iOS4系列丛书呢...拜托现在都什么年代了,现在iOS8教程都要出来了,你iOS6的教程都过时好久了更别提iOS4了...对于新出的swift语言好多人难以选择不知道该学OC好还是Swift好。我个人建议现在学OC,一门新语言的诞生需要经过时间的考验与洗礼。等你学好了OC以后再看也不迟。

  到这个阶段你应该拥有了充分的自学能力,已经达到了入门水平。 这时候以下网址将成为你的家常便饭: Github,StackOverFlow 如果你编程遇到困难,在StackOverFlow上面应该都能找到合适的解答。(前提是你英文不要太差)。Github上好多开源代码足够丰富你的眼界。如果你想成为一个iOS开发者的话这上面两个网站是你经常以及必须会用到的。

  到此为止你的入门已经结束了,相信你已经知道怎么开发一个App出来了,但是我还想给大家介绍一些东西,如果你以后想在iOS开发这条道路上越走越远的话。

  因为iOS开发知识更新速度非常之快,每年到6-7月份WWDC大会开幕以后都会有很多新东西要学,这时候最简单的方法有两个:

  又是一本Ray的书。这本书刚刚推出,内容非常好里面有800多页干货,都是以tips形式进行归纳。

  很多人吐槽这本书没干货,其实我觉得你看完了以后有收获就好了啊,这本书巧哥会告诉你一些编程工具一些技巧以及一些tips。

  1、王巍的博客(我们都叫它喵神,他很萌哒) 链接:onevcat.com/理由:他的swift的新书讲解的非常好,但不适合入门,进阶的话这是很适合的一本书。其他关于OC的内容可以翻看喵神的博客。 2、唐巧哥的技术博客 链接:iOS开发如何提高理由:据传说是iOS圈的刘德华。巧哥05年1月会出一本进阶的书,可以关注以下。 3、叶孤城的技术博客 : 链接:叶孤城带你读源码之RESideMenu理由:叶孤城童鞋的风格就是讲解细腻,通俗易懂。 4、破船之家: 链接:beyondvincent.com 的页面理由:破船的博客内容很全面,一些开发笔记,技巧他都会教给你。 5、Xcode Dev 链接:Xcode Dev理由:也是一位大神的原创博客,内容很值得学习。 6、txxs 的博客(我们都叫它虾神,他也超萌哒) 链接:txx#x27;s blog理由: 90后非常优秀的iOS开发者,看看他的大学时期的经历才发现我们过的是多么懈怠,大神之所以为大神也是有原因的。 7、Kevin的博客 链接:Kevin Blog理由:周楷雯是一个非常厉害的90后iOS开发者,他前些年写的项目在Github上拥有2500+star (PNchat?忘了)非常恐怖。 8、念茜姐姐的blog 链接: 新博客:旧博客:念茜的博客理由: iOS圈里的女神级人物,她写的iOS安全类的文章非常值得一看。 9、孙源的blog 链接:sunnyxx的技术博客理由:90后iOS开发者,技术同样非常强,目前似乎在任职。 其他的博客我就不列举了,因为他们自己都有一个圈子大家自己去找吧很容易一找找到一堆,前提是你要有心。

  这两本书是swift里面非常难得的学习资源,好好研读可以让你少走很多弯路,必看。

  ObjC 中国 - 书籍以上是链接,给喵神打广告我也是心甘情愿的..因为想套路他妹妹已经很久了:-D

  在答题之前,我要先感谢知乎上关于iOS开发入门的所有提问和答案。没有这些提问,我不会萌发自学iOS开发的念头;没有这些优秀的答案和答主们的励志经历,我也坚持不到最后。在这里,尤其要感谢 @郝健宗 @苏菲 @王杰 @Judy Zhu @张中宝 @Wang Hailong 这几位前辈的答案,对我帮助很大。

  最近我找到了一份iOS开发的正式工作,所以想把自己学习iOS开发过程中的经验和心得写出来,希望能够帮助那些努力但迷茫的初学者。

  首先介绍一下自己的背景,我大学学的是机械专业,与计算机有关的课程只有一门C语言,在接触iOS开发之前,我已经在一家机械制造行业的公司工作一年多,做的工作也与计算机毫无关系,所以我属于零基础转行。

  2014年10月,出于对机械行业的种种失望和对互联网行业的浓厚兴趣,我萌发了转行的念头,于是开始利用下班时间自学计算机知识(Java、Python、数据结构与算法)。学了大概两个月,基本的东西有了大致的了解,但是感觉要熟练掌握还是任重道远。由于时间安排上的原因,我就将重心转移到iOS开发上面。

  2015年1月,我开始开发我的第一个iOS应用,这款APP从第一行代码到苹果App Store上架用了大概两个月的时间,但总的时间跨度有接近4个月(春节期间停滞了一个多月,等待苹果审核10天)。APP开云 开云体育官网上架后,我就开始投简历,并拿着我的APP去面试,很幸运地拿到了几个还不错的Offer,然后就挑了一个去上班了。

  这些是做iOS开发必须要有的,而且是一大笔钱,但不要怕花钱,因为这些都是值得的。如果能够学有所成,一两个月的工资基本就回本了。就当是自己交的一笔“培训费”吧。

  如果你和我一样是零基础转行iOS,那么一定要有破釜沉舟的勇气和决心,并做好打持久战的心理准备。如果畏手畏脚、瞻前顾后,我劝你还是想好了再来,免得浪费时间和金钱。我当初收入很低,是拿了3个月的工资买的Macbook,还天天担心丢了或者弄坏;后来学习到小有所成时毅然选择了裸辞,孤身一人来到陌生的上海,经过2个月的待业状态才找到工作。这一路走来都承受着巨大的精神压力和物质压力。

  如果你是完全的零基础,我建议先要对编程有个基本的认识。建议从C语言入手,因为C语言比较简洁易上手,并且和Objective-C很相似。

  注:这两本内容都差不多,但《Objective-C基础教程》写的更好、更经典,建议以这本为重点精读。但是这本写的比较笼统,难度稍高,所以如果遇到不懂的地方就看看《Objective-C程序设计》,这一本写的简单、详细一些。

  1) 面向对象编程的基础知识。包括:面向对象与面向过程的区别、为什么要面向对象编程,类、对象、继承、方法、属性、接口等概念的理解与使用。2) Foundation框架。主要是NSString类、NSArray类、NSDictionary类、NSNumber类、NSRange类的熟练运用。

  有了Objective-C基础,就可以开始边看斯坦福公开课边做APP了(个人觉得没有OC基础直接看这个会很吃力)。视频如下:斯坦福大学公开课CS193P《iOS7应用开发》(Objective-C语言)

  苹果官方有个做iOS应用的教程——《马上着手开发iOS应用程序(Start Developing iOS Apps Today)》。强烈建议以这个Demo作为你的第一个iOS应用,因为这个教程能让你对一个iOS应用的搭建有个非常全面、细致的认识。完成了这个Demo后,就可以结合斯坦福公开课学到的东西创建属于你自己的APP了。

  1) MVC设计模式。只有理解了iOS的MVC架构,才能把一个应用解剖成一个个单独的部分,这样你在开始做一个项目的时候才不会茫无头绪。2)UIKit的各种控件。特别是UITableView和UICollectionView一定要掌握,因为大部分的iOS应用都是由这两种视图搭建,吃透了它们那可玩的花样就很多了,其乐无穷。

  4) 场景切换的实现——Segue。熟练使用Segue很重要,因为一个应用一般都是各个界面轮流出现的,两个界面之间怎样实现跳转、怎样将一个界面的数据传递到下个界面,这都是实际开发中会遇到的问题。

  5) Storyboard和AutoLayout的使用。这两者是一个应用的UI界面设计不可或缺的部分。

  7) 第三方库的使用。参考:GitHub 上都有哪些值得关注学习的 iOS 开源项目? - 编程

  学习编程,一定要勤于动手,看再多的书、再多的视频,如果不动手敲代码都是白搭。哪怕书上和视频上的代码你一行都看不懂,也要亲手把代码敲一遍、把Demo亲自实现一遍,这很重要。编程是手敲会的,不是眼睛看会的。

  如果你能按照以上所述做出一个APP上架并找到工作,那也基本算是入门了。但这并不是终点,这只是一个新的起点。iOS开发,乃至整个计算机/互联网行业,后面的路还很漫长。苹果的整个Cocoa框架,可谓是博大精深,里面可以深挖的东西太多了;而且一个程序、一段代码可以进行的优化是没有止境的。作为开发者,只会一门语言是不够的,网络编程、数据库、算法、设计、交互等等东西都是需要掌握的,而语言只是实现这些的工具,语言其实是最简单的。

  当然,基础差一点也问题不大,最重要的是你对计算机、互联网的热爱和热情。你需要有很强的自学能力,不断地去学习新知识,才不会被这个日新月异的行业淘汰;你需要保持一颗好奇心,不断地尝试和接受新事物,不断地创新,守旧的人在这个行业无法生存。在我找工作的过程中,那些知名的大公司都是直接在简历关就将我刷掉了,而那些给我Offer的公司,无一例外都表示,之所以选择我是因为欣赏的我的热情、看重我的自学能力。

  如果你是工作上进行iOS开发,别忘记询问你所需要的开发相关的账号,比如查看错误日志或者共享代码资源等。

  我的背景:编程经验为今年4月开始接触java三个月,无C语言经验,无objective C经验。对开发完全没有概念,但是需要快速掌握。看视频和循序渐进的方法都不适合我。

  1. 不知道先学什么,所以简单搜索发现国内比较权威的论坛,一般来说国内比较大型的论坛都会有新手需要的整套资源。发现这个

  。这个图建议没接触过C语言的人先去学C。因为我要快速学习所以放弃。然后到zhihu本问题下阅览

  的答案,里面有提供很好的入门地图,但过于复杂。这两个资源都比较适合长期学习的人制定计划。

  B. iPhone App Programming Guide 比较详细的苹果的开发手册。没有中文版。为了将来沟通方面我下了日文。

  C.苹果官方的界面设计指南。由于和开发本身关系不大,所以可以不必立刻学习。对UI设计感兴趣的话可以看看。

  里面解说了很多很基础的概念和名词,对我这种完全无IT背景的人来说是救星。还包括了objective C语言的快速入门,对于会一门以上编程语言的人来说节省了不必要的时间。

  2.找了一本简单易懂的漫画objective-C教程。因为通过java知道了基础的编程思想,所以主要是熟悉这门新的语言。里面有些内存管理之类的,光是看书很难有具体的理解,没关系,读完。(2天)

  2. 粗读iPhone App Programming Guide,主要目的是了解这门语言的特点和能干什么,和我知道的java的区别,知道有什么功能即可,实际编程时再翻开参考。(1天)

  4. 把 iOS6实践指南 里面还没有涉及到的部分读懂做会。(我只是2天过了一下,没详读所有部分,建议有时间的人用一周去熟悉每个部分)

  经过STEP 1的学习,我大概对iOS开发有了一个极其极其粗略的认识。包括它的MVC模型的构建方法与当年用java写网站不同,包括它的内存管理比较麻烦,包括它的.h 和.m文件以及里面的属性等设置时需要注意的。但是对这些认识我都还没有清楚的答案。

  编程在书本上往往是非常抽象的概念和讲解,在这门科目上我完全是个实践型的学生。看书总是一头雾水,只有实际做东西才会有成长。所以带着这些极其粗略的认识我进入到了第二步。

  带着这样粗浅的学习我就进入了iOS开发团队。无论是leader还是我自己都觉得这个水平简直不能写代码。但是leader还是给了我一些非常简单的工作,比如调整UI,把AB TEST真正写入程序等等。在这个过程中我首先得把自己负责产品的代码读明白,至少得知道修改哪里才行吧!在阅读前辈们写下的代码时,STEP 1里面的那些疑问就一点点清晰起来了。读书终究是泛泛而过,而当你有一个目的或者任务的时候,才会去真正理解每一行代码的意义。对于没法在公司接触代码而是自学的朋友,可以去这个问题

  下用github下载开源代码阅读。(到了这里,GitHub也应该是你列入学习计划的东西之一。)

  如果有一个精通iOS的人在你身边随时解说是最好的了。但我们都很难有这种机会,所以善用google,善用Stack OverFlow(一个类似知乎的编程Q&A网站)。大部分问题都可以通过搜索解决。

  往往我在写代码的时候,都是边开google搜索边学习边写的。虽然不比专业的iOS编程者速度,但至少超过了leader对我预想的开发速度。当然写代码仅仅是开搜索和copy-paste是不行的。但在初期做非常简单的开发时,这样的方法可以让你快速上手又能品尝到编程的乐趣。对于自学的同学,我的建议是,看过一些案例之后,你可以试着把案例中的各种功能重新排列组合。教程很多是做一个带相机功能的app,或者一个checklist,做起来很是乏味。你要定下一个真正想做的东西,并且好好地画出UI设计,不要想着只是练习代码。这个过程会是乐趣无穷而且充满挑战的,认真的态度也可以让你坚持在遇到困难的时候也做下去。

  1. 找一份可以允许现在的你进行iOS编程的实习或者工作。(这也许较难,因为大部分公司都希望直接找到生产力而不喜欢慢慢培养初学者)

  2. 找几个有想法的筒子一起认真做个项目。(如果你的团队里有编程厉害的人更好,但你必须相应地提供自己的价值)这和自己练习是不同的。

  我的计划大概是这样的:先看计算机导论课程,然后开始学习C语言编程,后续大概通读一遍SICP、CASPP、算法导论,然后学C++ primer。学到这里就开始学习object-c/swift,然后自己做一个app,带着这个去找一份工作。 我的计划会不会太偏重原理了呢? 我总是担心基础不好的话后续职业发展会受印象,却又怕一年时间完成不了这么多,到时候连工作都找不到。 请问我应该怎样平衡呢? 或者我可以先学一部分基础,然后先尝试实践完成app开发,以后再补回来? 您觉得在iOS开发过程中哪些基础是比较重要的呢?

  就我的经验来说,我是用晚上和周末来学习的。我用业余时间看算法导论,半年只学了1/5,后来还是放弃了。去年花了足足半年学习Code Complete。今年开始学习CSAPP,花了半年时间学了差不多一半。

  基础知识对于职业生涯确实非常重要,所以我会在今后的职业生涯一直保持学习。但是如果不是已经在从事iOS开发工作,我肯定不会看这些书。

  所以对于你来说,如果想从事这份职业,要先学习写一个iOS app最必需的技能,通过解决问题驱动自己学习!学习这些技能,对于一个零基础的人,我想fulltime学习3、4个月应该足够了。这些知识包括:Objective-C或swift的基本语言知识、Cocoa框架的基本知识、xcode的基本用法。在这个阶段,找编程的感觉,跟网上课程编一些课后作业demo app是一个好选择。

  但是可以花时间想想自己用4个月时间,从产品角度想想,可以做出一个什么样的app?在纸上画一下app产品流程图,争取弄一个出来。

  然后你会发觉需要解决的问题越来越多,需要了解的知识越来越多,你之前罗列的资料自然就有动力每天学习下去了。

  非常欣赏你学习基础知识的渴望,但是要注意办法,不要尝试一口吃下整个大象。

  自己去年12月的时候说要更新一个详细的答案,结果就被我自己烂尾忘记了,最初写这份答案的时候自己还是在摸索阶段,推荐了下面这些材料:

  :最新版是2013年winter。课程不仅包括iOS入门基础知识,而且还会布置由该教授亲自设计、涵盖整个课程的作业。

  :每一份GUIDE都是一本迷你的教材,写得很精致,而且每一份guide都会延伸到其他知识。可以从这篇开始:马上着手开发 iOS 应用程序。

  很多step by step的教程,适合掌握一定知识之后跟着教程做着玩。

  上面这三分资料,确实就是我刚开始学习iOS开发的时候用得最多的资料,在着手开始iOS Code之前,需要学习相关Objective-C的知识。

  对我帮助最大的可以说是CS193p这个课程(免费的哦),我跟着这个课程一行一行代码完成布置的作业,课程完成之后我就能够自己写一个简单的app出来,并且我也知道该在哪里问问题、怎样找答案(很重要)。

  当我了解整个app的制作流程之后,我就给自己定计划,1个月之内必须开发出一个app,从原型设计、界面设计、到CODE。

  最终我做了几个实验性的app,虽然没有在app store上架,但是能够在自己的ipad、iphone上运行展示,我就拿着这几个app去面试,很幸运地找到现在的工作。

  Github,搜索关键词iOS或者objective-c,会发现很多高手已经把大部分基础性功能实现并且贡献出来了;

  所以我认为,其实用什么材料虽然也很重要,但是市面上优质的材料呢,不外乎那么几份,最重要的是自己有一个idea要落实下来把它完成、写成一个app,这个过程当中自己自然就会去找答案、找材料、解决答案啦。

  很多人学编程主要就看书,看视频,甚至跟着视频开发,但也觉得没用。 为什么? 因为在这个过程中并没有真正动脑,所以这其中得知识点也很容易过目就忘。

  重复看几遍,1和2效果相差巨大。 按1看三遍,你基本就记住了。按2看三遍,你还是啥都记不住,连一点印象都没有。

  怎么办?其开云 开云体育官网实很简单,和上面背单词得例子一样。你把你看书看视频想要学习得知识点,列一个表,然后你YY一个App,App得功能能够尽可能多得覆盖到你得想要学习得知识点。

  然后建新工程,开始写。遇到不懂不会的先思考,想不出来再去查书查视频,不要随便问,不要做伸手,

  这是很多人最都得错误,我觉得最核心得还是中国得计算机教育得方法不对。为什么很多人都会认为“独立做个App”很难? 是因为他们潜意识里,学习编程得过程是这样得:

  2. 我要开始做项目了,这个时候发现不管看啥东西,好像都挺难做得,而且似乎自己学过得东西,也没什么印象了,函数也不记得怎么用。

  逐一学习了每一块积木的形状与用法,然后别人给你一座城堡,你去思考如何造个一样得出来。(思维是逆向的,解题式的,过程是漫长的,成就感是没有的,挫败感是一直有的)

  1. 拿到谭浩强老师的书,翻了两页,学会了InputBox(弹出一个输入框,接受用户得输入,函数得返回值就是用户输入得字符串), 以及MsgBox(弹出消息框)得用法

  3. 没错我就山寨了一个这种应用得Windows Form版出来。其实就靠这两个函数。这就是我第一个“独立App”

  这种方法,简单的讲:学习了一些积木得用法,就尝试用这些能搭出不同得东西,在这个过程中逐渐学会了其他积木得用法,然后再尝试搭出更厉害的东西,以此循环。(思维是正向的,创造性的,过程是短暂的(拆解成了不同的阶段),成就感是一直有的,挫败感是暂时的)





Copyright © 2012-2023 Kaiyun 开云体育 - 运动让生活更美好 版权所有
电 话:410-143-5697    手 机:18973896382   传 真:18973896382    E-mail:support@jiaonichi.com
地 址:冷水江市锑都中路 (商业步行街E2栋0213号门面)
湘ICP备20011479号

扫一扫关注微信公众帐号

免费咨询 投诉建议