Tag: Ios编程

没有痛苦就没有收获:Lambda学校的痛苦越来越大

对于每一项新业务,随着业务的发展,必然会有障碍。 在我在Lambda学校的第二个月中,很明显,这个为期30周的编程训练营吸引人的部分原因是他们每天都在挑战高等教育的现状。 我个人可以认同这种意识形态。 作为一家初创企业,Lambda可以比大多数传统教育机构更快地迭代和更改其课程。 如果某件事不起作用,或者企业正在寻找潜在员工的特定技能,则Lambda可以迅速调整课程设置,并为他们的学生为将来的就业做好更好的准备。 在行业中,随行业需求变化的能力是非常宝贵的,而这一行业的变化速度要比手机更新快。 Lambda不仅是一个整体的创业公司,而且我的学生足迹本身就是一个创业公司。 我属于iOS的第五条曲目,这意味着我属于Lambda的iOS课程的第五次迭代。 有时,我的学习经历会实时处理打ic,因此会感觉有些不合常规。 上周,我选择利用Lambda的异步调度功能,并决定重复本周的课程,因为我对这一概念没有信心。 我想成为一名独立开发人员,所以精通每个概念是我的主要目标。 在与我的项目经理(Lambda的教学助手版本)讨论了我的决定后,我被告知我无法参加现场课程,而不得不观看预先录制的课程。 听到这消息令人很沮丧-感觉接下来的20周我将要通过YouTube学习。 现场授课对我来说更有价值,因为它可以让学生实时向讲师提问。 但是第二天,我们的异步班级收到通知,我们将继续使用实时班级,而不是预先录制的班级。 他们的课程有多么大的改变! 一所了解学生是他们最有价值的产品的学校使我感到我们被倾听并受到尊重。 变革很难,但是在一个开放的拥抱中拥抱变化的环境使我相信,我将能够为一家公司工作或管理自己的公司,并且能够渡过瞬息万变的行业不断增长的痛苦。

零到100真实快速:我什么时候应该去训练营?

通常吸引有抱负的程序员参加新手训练营(无论是在线还是亲自参加)都是在他们完成新手训练营后获得一份高薪工作的诱惑。 很难责怪他们有这种期望。 许多新兵训练营承诺允许任何人(无论经验如何)都能成为编程巨星,从而吸引了准学生。 这是公平的承诺吗? 如果您问我,您应该在任何训练营中宣传自己的能力,以宣传他们将零经验的人转变为合格的初级程序员的能力。 根据我参加多个训练营的经验,那些不费吹灰之力就能完成课程学习的人都有以前的编码经验。 当然,没有先验经验的人可以通过该程序来学习,而无需重复一周的课程(如果该程序提供异步调度),并获得了可观的工作, 但这是例外,而不是常规。 那么,什么时候应该踏上信仰飞跃并参加训练营? 我认为, 除非您已掌握所学基础语言或程序的基础知识,否则您不应该参加训练营。 如果我能再做一遍,那么在跳入我的第一个训练营之前,我会完成Treehouse,Udacity和其他在线课程的–价格便宜得多,而且按我自己的步调进行。 我将在线自学与阅读关于Swift的几本书结合起来,Swift是我的首选编程语言。 为什么我建议在进入训练营之前先进行额外的学习? 训练营不是要学习所有您需要知道的内容吗? 阅读编程书籍或参加在线课程时,您必须在每节课结束时完成测试。 这些测试很重要,因为它们可以衡量您对材料的了解程度以及完成该过程所需的时间。 初步的自学使您有机会自己进行项目,这会扩展您的思维,并测试您对课程的理解程度。 如果您想在书本或在线课程中掌握一些概念,则可以按自己的步调和自己的舒适程度,在没有压力的情况下根据需要多次进行复习。 但是在训练营中,您可能没有那么奢侈。 训练营必须遵守严格的课程,每天讲师要讲授和解释三个或四个新概念。 跟上步伐可能会令人感到沮丧和沮丧,尤其是如果您辞掉工作去参加并且只有几个月的烧钱率(破产之前花的钱)。 就像我说的那样,如果我能回到过去,我不会尝试从0升至100。我会完成一些在线课程,并从头到尾-从头到尾读几本书,然后再开始学习。采取了信念的飞跃,并摆脱了薪水的保障。 而不是从零加速到100,而是尝试从40加速到100。您准备得越好,并且在进行新手训练营之前可以学到的信息越多,您越有可能从中获得所需的一切。 想更多地了解iOS训练营学生的生活吗? 一定要在Medium上关注我。

询问,您将收到:如何提出正确的问题

在训练营上花钱的好处之一是,您实质上是在为帮助学习材料的人付费。 我绝对相信,要想充分利用训练营(或者至少是您的钱),就应该尽可能多地提出问题。 如果您没有在没有立即点击的情况下问问题,就很自然地觉得自己在浪费金钱。 即使您认为自己100%理解了一个概念,您也应该要求更加清楚,考虑用例并了解其在现实世界中的应用。 但是,有一个问题需要注意:请问何时应该提出问题,以及如何(以及何时)陷入某个概念时应该如何询问? 你什么时候应该问一个问题? 大多数训练营都会告诉您20分钟规则。 规则很简单:如果在尝试自行解决20分钟后仍找不到解决方案,那么-仅在那时-您应该向教员寻求帮助。 你应该怎么问一个问题? 无论您是在参加训练营还是在堆栈溢出时,就求助而言,该规则无疑都是最重要的。 首先,说明您要做什么。 它可以帮助您清楚地表达自己想要达成的目标,以便他人能够快速理解(此外,沟通是招聘过程中的重要组成部分,因此,实践越多越好)。 第二,遍历所有失败的尝试。 作为一名程序员,学习习惯于足智多谋,也就是“破解”解决方案的习惯至关重要。 如果只尝试一次就放弃,将很难学会这种特质。 它还可以帮助教师理解您的思维方式,并可以指导您自己发现解决方案。 学生应该永远不会害怕提出问题,但是必须认真思考并清楚表达所提出问题的质量。 说“帮助,我的代码不起作用”和“帮助,我正在尝试使用此委托模式在两个视图控制器之间发送数据之间有区别,如果正确完成的话,当我按此按钮时,数据应该是已发送并在x上显示,但没有显示出来……” 不要误会我的意思,我一直在问一些笼统的问题,但是当我的问题很具体时,我收到了更有价值的答复。

加快您的iOS开发:模块的范例

如果我们看一下图形,这个概念很容易理解。 我们只需要将您的应用视为ViewControllers件的集合,这些ViewControllers件可能会出现在ViewControllers任何位置。 这意味着,如果我们想在不同的ViewController重用“模块1”,则它应尽可能简单。 然后,我们推断ViewController将由Modules组成 为了开始使用模块,需要一种解决方法,这就是为什么我创建了一个Cocoapod库来帮助我们实现这一奇妙 范例的原因 FTMTableSectionModules 具有TableView的可重用ViewController,分为几节 cocoapods.org FTMTableSectionModules 基本上包含2个类别: ModulesViewController是UIViewController的子类。 此类仅是已实现UITableViewDelegate 和 UITableViewDataSource所有方法的代理。 主要功能是根据所选部分将职责重定向到适当的模块。 此外,还公开了处理模块的方法,例如添加/删除/插入… TableSectionModule ,AKA 模块是NSObject的子类。 此类包含一些逻辑,以改善UITableView的生命周期 ,并使TableView的各个部分的隔离和可重用性变得更加容易。 在这里,我们描述了模块生命周期中最重要的步骤: 我想开始尝试我们已经有足够的信息,因此我们可以跳到有趣的事情……。 编码时间! 。 像往常一样,尝试开发中的新事物的最佳方法是创建一个“ Hello World!”。 第一步,创建一个HelloWorldModule作为TableSectionModule的子类 最后一步,我们错过了在MyFirstModulesVC中添加HelloWorldModule的操作 。 超类ModulesViewController自动调用一个名为createModules的方法,因此我们需要重写此方法: 模块范例的主要关键之一是将责任划分到应用程序组成的不同部分。 这可以归纳为2条规则。 模块内部发生的事情留在Module中 。 在模块外部发生的事情留在ViewController中 。 与其用无聊的理论来解释,不如让我们举一些真实的例子。 模块内部会发生什么,请留在模块中。 想象一下,我们有应用程序的典型部分,您可以在其中显示和隐藏详细信息。 正如我在开始时提到的,尝试将应用视为模块的集合是非常重要的; 在这种情况下,我们面对的是一个清晰的示例,我们需要创建一个新的模块。 在这里,我们可以看到一个示例,说明这个新模块的外观: 从GIF可以猜到,我们在扩展和折叠信息时将插入和删除UITableViewCells 。 遵循第一条规则, Module具有足够的授予权和责任如何单独实现这一目标,因此这意味着对于ViewController ,折叠和展开将是完全透明的。 在这里,您是实现新FoldUnfoldModule的代码。 加起来 ViewController仅包含Modules和Delegates如果有)的列表。 该Module包含视图(页眉/页脚/单元格)以及完全完成TableViewSection所需的每个逻辑 自从我们开始以来,已经提到过多次,这对于创建可以以最简单的方式在任何地方重复使用的组件非常重要。 […]