Tag: 学习编码

TIL:重新定基

当我第一次开始基础调整时,我发现它令人恐惧。 我认为肯定需要进行重大更改,覆盖我为特定分支所做的所有工作,而成功做到这一点是不可能的。 但是,经过几次失败的尝试,我实际上可以说我在另一边还活着,现在,我喜欢变基!!! 因此,对于外行来说,这是您需要重新设置基准的方案: –您是从master分支开始的,但是其他人同时将他们的更改合并到master,因此您需要合并这些更改。 应用更改的最好方法是重新设置基准。 如果将rebase命名为其他名称,例如说“ update”或“ modernize”或“ get-wid-it”,我认为更多的人会发现rebasing很有趣。 首先,在尝试重新设置基准之前,可以通过备份所做的更改使自己省心。 您可以通过以下方式做到这一点: 创建一个临时分支,该分支将冻结您的分支更改,直到重新定基础 复制并保存您已更改的任何文件,或将整个项目本地保存在计算机上 因此,现在,世界就在您的牡蛎上,而您必须彻底出错,才能完全失去所有工作。 因此,这是有关如何重新设置基准的简短教程: 在分支机构的基础项目目录中,在终端中运行: git rebase master -i ←’i’表示交互式,它使您可以管理和修改提交历史记录。 您将在分支上看到提交列表,并且可以选择pick , squash , drop等等。它们中的每一个都是有用的,并且具有不同的用途,但是为了简单起见,在本教程中,我不再赘述。 您可以按原样离开并pick每个提交(或压缩除第一个提交以外的所有提交)。 如果没有合并冲突,您将看到以下消息: Successfully rebased and updated refs/heads/your-branch-name. 但是,您可能会有合并冲突。 同样, merge conflicts是一个令人恐惧的名称-如果将其称为“需要编辑”或“选择武器”或“购物”,它将更容易获得。 因此,这是纠正合并冲突的方法: git status ←这将向您显示哪些文件存在合并冲突 open file-name-that-has-merge-conflict ←然后,在IDE中打开每个文件,然后选择所需的代码(您将在HEAD上看到该版本,并在本地分支上看到该版本)。 git add file-name-that-had-merge-conflict ←添加/保存更改 git rebase –continue ←继续基础 您可能需要重复上述步骤几次(每次正在处理的提交中存在合并冲突时,一次)。 最后,您应该看到令人垂涎的消息: […]

如何选择堆栈,第3部分:iOS

如果您正在从事编码工作,那么第一个问题可能是“哪种语言是最好的?”,然后是“我如何学得足够好,以至于有人雇用我?” 第一个问题的答案通常是主观的,因为首先要学习的“最佳”语言(您可能会在整个职业生涯中学到很多)取决于您的目标和偏好。 由于后端语言的高薪或受欢迎程度,它似乎是最好的学习语言,但是如果您主要想在应用程序界面上工作,则后端语言可能不是正确的选择。 在本博客系列中,我们将共享高级Code 401系列中学习每种语言的收益,薪水,职业潜力和资源。 今天,让我们谈谈iOS开发人员的两种语言Swift和Objective-C。 Swift和Objective-C:构建移动应用 就像Python和JavaScript一样,iOS开发不仅涉及学习编程语言的语法。 iOS开发人员必须了解信息体系结构,面向对象的程序设计,Xcode,以及如何针对各种设备和配置(iPad与iPhone,横向与纵向布局等)构建和调整应用程序。 此外,移动开发人员在与新兴技术合作方面处于领先地位,不仅为智能手机和平板电脑构建应用程序,而且还为智能手表,智能电视,物联网以及虚拟现实和增强现实构建应用程序。 企业由移动应用提供动力 就像网站和社交媒体一样,移动应用程序在企业期望拥有的,面向客户的访问点列表中也很出色。 无论他们只专注于移动设备(例如SnapChat或Instagram),还是需要支持其主要业务的移动应用程序(例如银行,百货公司,社交媒体平台等),企业都意识到,如果他们想在他们所处的地区吸引客户随时随地-他们需要一个移动应用程序。 应用程序也可以帮助业务流程,并且公司正在使用移动软件来改善内部功能,从缩短员工培训时间到改善团队沟通。 随着向更多移动设备的转移(去年,美国68%的成年人拥有智能手机,自2011年以来几乎翻了一番),对移动应用程序开发人员的需求只会增加。 iOS开发人员的工作 与任何技能一样,职称和职业方向取决于偏好,专业,行业时间和其他因素。 一些较常见的工作是: iOS开发人员 iOS软件工程师 移动开发者 iOS应用程式开发人员 iOS移动开发工程师 Mac OS / iOS开发人员 iOS工程师 移动应用开发商 iOS开发人员的薪水 就像职务一样,iOS开发人员的薪水取决于几个因素。 根据Indeed的说法,薪水一直在上涨,美国iOS开发人员的平均薪水为101,000美元。 如何学习Objective-C和Swift 如果您是一位有抱负的iOS开发人员,那么了解Swift和Objective-C都是很重要的。 了解这两者将使您在行业中更具市场价值,并使您对iOS开发生态系统有更好的了解。 以下是我们为想要扩展到iOS开发的程序员推荐的最佳资源。 图书 iOS编程:大书呆子牧场指南 Objective-C编程:大书呆子牧场指南 功能迅捷 Swift编程指南 线上 雷·温德利希(Ray Wenderlich)的博客 Apple的Swift开发人员“入门”指南 Tuts + Lynda.com 班级 Code Fellows中历史最悠久的课程之一是iOS中的Code 401:Advanced Software Development。 如果您正在寻找一条直接,快速的途径来更新您的编程技能集或扩展为一种新语言,那么我们为期10周的移动开发课程将教授移动开发人员应了解的最佳做法和标准,例如新版本中的更改。版本的Swift以及如何使用现有代码库。 […]

带有快速枚举的简单音乐音调值

我从事的乐器应用程序通常包含音乐理论部分。 这可能是一个简单的大尺度或更复杂的算法。 通常,我最终只使用MIDI音符编号来获取音高值。 结果最终看起来像: let cMajor = [48, 50, 52, 53, 55, 57, 59] 我决定做一些工作来制作一个可以在项目中重复使用的简单模式,以使代码更易于阅读。 代码很短,所以我将从此开始: enum Pitch: Int { case C = 0, Cs, D, Ds, E, F, Fs, G, Gs, A, As, B } 现在我可以写: let cMajor :[Pitch] = [.C,.D,.E,.F,.G,.A,.B] [Pitch]的显式类型允许我只键入.G而不是Pitch.G ,我认为它看起来更好。 概念 理想情况下,我将能够将音高作为偶然的音符名称来编写。 这些值看起来就像C♯或D♭ 。 这些值将是类型安全的,并且像原始类型一样起作用,如果我错误地输入了假间距,则会导致编译器抛出错误。 设计决策 当我经历一些选择时,我意识到我将不得不做出一些妥协。 没有Unicode意外情况: ♯和♭不在Swift支持的Unicode范围内。 有替代符号,但默认字体未包含这些替代符号,因此代码可移植性成为一个问题。 我为竖琴选择了一个简单s后缀。 […]

#2 — Swift编程— 21天挑战赛– Elliott Diaz –中

#2 — Swift编程— 21天挑战 随着我对软件开发精通的渴望的增长,我不断感到自己应该掌握基础知识,开发更多的实践项目来提高我对计算机编程/软件开发的技能和理解,并每天在该领域中不断前进,成为相关的。 如果我在19岁的时候没记错的话,Swift是我选择在2015年底的swift 1.2上学习的第一门编程语言。从那时起,swift发生了巨大的变化,似乎我一直在反复学习所有东西。只是为了介绍基本知识,而不是真正了解事物的总体情况。 因此,我为自己和任何想要尝试自己学习成为专业iOS开发人员所必需的人的人都构成了挑战。 该项目将基于我刚刚发现的Udacity帖子来弄清楚应该把重点放在哪里,这就是我的想法。 简短而甜美而富有挑战性。 并非旨在完善主题,而是更多地介绍和理解主题的含义并进行实践。 正如我所听到的,没有完美的方法来创建程序,我将简单地攻击主题,学习它并继续进行下一个项目。 挑战时间:21天 方法: 3天让自己沉浸在主题中。 第一天=研究/组织将学到的东西 第二/第三天=专注于挑战 每天1个小时分配给此挑战 目标:对成为一名熟练的iOS开发人员需要有深刻的了解。 第1至3天:概述基础知识-Swift 3语法 第4-6天:项目目的-使用github 第7–9天:项目目的-建立对直观用户界面的理解 第10–12天:项目目的-了解设计模式:MVC-委托-通知 第13-15天:项目目的-了解联网 第16–18天:项目目的-核心数据 第19-21天:项目目的-中央车站调度 供参考的是udacity博客文章的链接: 成为iOS开发人员需要具备的7种技能 在iOS中要学习的东西很多,以至于只需跳过基础知识而跳到编程的不同领域就变得非常容易。 我已经做了一年多了,并且一直觉得,如果我花大量的时间学习基础知识并构建简单快速的项目,那么我所做的一切将比以前容易十倍。 用代码行衡量编程进度就像按重量衡量飞机建造进度。 – 比尔盖茨

第2天。选择正确的学习资源

在本系列的第一部分-第1天-要学习的编程语言-我们讨论了着重于*在*之前*构建有用的东西,甚至考虑学习任何编程语言。 如果您在一天结束之前完成了动作练习,则应该列出可以构建所需产品的技术列表,并按可及性进行排序。 您今天要处理的清单中的第一件事就是获取清单中的第一项,并找到可从中学习该技术的资源:书籍,文章,教程,在线课程。 我将为您提供以下示例资源列表。 为了让您想出自己的OWN清单,您需要重点关注。 记住您昨天学到的第一个原则- 学习与构建 。 当您查看资源时,请遵循以下一条简单的规则对其进行评估: 阅读完本书,观看本教程并完成本课程后,我是否会制作一些东西? 现在,它一定不是您昨天决定构建的产品/服务/应用程序。 它只需要是一个成品。 这本书,教程和课程-必须在结尾处特别提及-您将能够构建:应用程序,网站,服务等。 如何选择正确的学习资源? 您要寻找的东西: 构建现有产品的克隆:Instagram克隆,Facebook克隆,Twitter样服务 该资源必须有明确的时间表-完成它需要多长时间。 非常非常重要! 您必须预先了解-您将花费多少时间来构建它。 没有截止日期的目标-根本不是目标。 课程/书籍/教程的评分,评论和评论 很重要!!! 有没有办法直接与作者联系? 在Facebook上找到? 推特? 良好学习资源示例清单 您将构建的内容:人工模拟生活,编程语言,平台游戏,绘画程序和动态网站。 时间表:页数有限,您可以在开始阅读本书时确定自己的进度。 我花了15天才完成这本书。 评分: 4.5星,亚马逊,基于77条评论 联系人:作者活跃在GitHub,Twitter上,您甚至可以通过他的网站向他发送电子邮件。 您将构建的内容:社交网络(Facebook克隆),聊天应用程序(WhatsApp克隆),教程应用程序(youtube克隆)。 时间表: 71.5小时的视频。 因此,如果您努力学习,则可以在2周内成为拥有现有工作应用程序的真正的iOS开发人员。 评分: 4.5星级基于9,190评分 联系人:课程的创建者在Twitter上很活跃,但在Udemy本身上,更是积极地回答学生的问题。 我确定如果您在北斗的个人学习平台上挖北斗,就会发现更多与他联系的方式。 您将构建的内容:视频目录网站,该网站将抓取youtube视频并将其显示在页面上,并提供用户身份验证,管理,两种不同的前端构建方式-使用模板和使用javascript框架。 完成完整的堆栈开发。 时间表:页数有限,您可以在开始阅读本书时确定自己的进度。 我花了10天的时间才能完成该项目。 评分:这是来自 Sails.js的创建者本人-Mike McNeil! 相信我,这很棒。 联系人: Mike McNeil的GitHub,他的Twitter帐户和他的Blog是一个很好的起点。 完成今天的动作练习 选择一个将用于构建一个产品的资源。 设定明确的目标-将来-一星期,两周,三周-当产品准备就绪时。 计划您的时间-这样您就可以每天学习。 […]

为什么在线编程课程就像体育馆订阅。

以及如何通过应用4 Hour Body和Freeletics方法真正成为收入最高的程序员。 广告策略-更好的您 学习编程需要改变行为。 做某事的长期承诺可能是您不习惯的。 健身房的类比很直白。 获得健身卡不会使您变得更健康,而持续进行锻炼则会使您变得更健康。 不幸的是,在线编程课程的经济学侧重于按下与健身房相同的按钮。 毕竟,这是每月订阅的相同业务模型。 为了使您更好地了解自己的形象,需要进行很多预售。 您想成为的人,一个更好的自己: 让我们看一些领先于在线课程的广告技巧,这些技巧与这种策略非常相似: [COURSE NAME]不仅消除了对移动应用程序进行编码的恐惧,而且使它变得有趣。 [课程名称]向我展示了我想要做的事,直到今天,在家学习Web开发已被证明是我一生中最好的决定之一。 售后—内lt 购买健身卡并订阅在线课程会怎样? 该程序将告诉您该怎么做。 这样做很长时间。 不要跳过培训。 走。 从您成为客户的那一刻起,您基本上就是一个人。 此外,当您无法跟上时,可以去健身房或定期观看教程。 怎么了? 正确-内the卡被使用。 我们不能为您在5:00醒来,现在可以了吗? 我以为您说过想用Swift学习iOS开发–是不是说要改变生活? 好吧-这就是需要的。 每天学习3个小时。 每天。 6个月。 然后您会到达那里。 没有? 好吧-谁该怪? 会坚持吗? 蒂姆·费里斯(Tim Ferris)在他的《四小时的身体》(4 Hour Body)一书中建立了一个我在教学生必须使用的学习策略时经常使用的测试。 该测试称为“导带测试”。 还有一个简单的问题:“会坚持吗?”: 每天砍蔬菜和清洗Cuisinart三次,将导致一个地方:放弃该方法。 这是否意味着某些人无法使用? 不。这只是意味着它将对大多数人失败。 认真对待坚持:在达到目标之前,您是否会坚持这一改变? 如果不是,请寻找另一种方法,即使该方法效率较低且效率较低。 您遵循的体面方法比您退出的理想方法更好。 经过测试 我已经对自己进行了测试。 我有多年的健身卡,很少去那里。 然后我找到了Freeletics。 我可以看到前两周的最初结果。 动机不再是问题。 我减掉了8公斤。 […]

使用TypeAlias在Swift中编写与平台无关的代码

众所周知的事实是,与MacOS开发相比,iOS开发有更多的资源,如果您正在使用或计划将Swift用于开发,则查找资源会更加困难。 最近,我偶然发现了swift-2048。 我更新了代码以支持Swift 4.2,并发送了请求请求。 后来我认为使用代码使该应用程序与MacOS兼容将是很棒的。 因此,我添加了一个新的Mac目标并开始进行工作。 这是不使用typealias的文件中的代码。 在此代码中,您可以看到代码是不能重用的,并且该代码在字面上重复了两次,并且由于存在平台编译时检查的API的不同,在一些细微差别上几乎相同。 MacOS中没有UILabel类,我们改用NSTextField并将其isEditable属性设置为false,以便无法对其进行编辑。 我们将文本设置为NSTextField的方式也不同。 它没有text属性,而是具有stringValue属性,也没有minimumScaleFactor属性。 我们将背景颜色设置为视图和NSView的方式也不同。 我们可以直接将背景色设置为UIView,但是我们必须将背景色设置为cgColor层 两种平台之间还有一个细微的区别,那就是NSView可以有或不能有一层,而UIView总是有一层支持它。 因此,layer属性的类型对于NSView是可选的,而对于UIView不是可选的。 显然,这不是任何开发人员都会喜欢的代码。 避免代码重复的一种可能解决方案是使用类型别名 ,并在整个项目中的此处和其他类中避免重复。 下面给出的是避免重复的重构代码。 重构的代码量更大,但是可以避免您在整个Project中一遍又一遍地编写相同的代码。 您可以在Twitter,Linkedin上与我联系,并在StackOverflow和Github上查看我的开源工作。

训练营的编码问题

长大后,我在家接受教育。 这可能使我倾向于采用自我指导的学习方法-我喜欢选择内容和制定有效的消费策略的过程。 不过,在早期,我认真考虑过参加编码训练营(至少作为起点)。 自学方法有弊端,特别是如果您在像我这样的自律中挣扎。 这是参加训练营的一些主要优势。 这些好处是假设训练营经过精心设计,并配备了优秀的教师,他们在应用程序开发方面也具有实际经验。 在与他人合作的团队环境中,您将获得从学习到编码的宝贵技能。 您将被迫主要通过专注于项目驱动的学习方法来学习,这种方法可以防止“学习狂热”。 您将从经验丰富的开发人员处收到有关代码质量和方法的直接,持续的反馈。 您将沉浸在行业工具和最佳实践中。 您将可以使用职业服务,并通过遇到的老师和学生建立良好的联系网络。 一些雇主对通过培训计划获得的正式证书比通过自学更有信心。 由于这些重要因素,我着手寻找一个iOS开发训练营。 不愿意搬到现场接受培训意味着我的选择仅限于提供在线课程的学校。 事后看来,这可能排除了一些最佳选择(基于砖和灰浆)。 我也不愿意承担大量债务,因此进一步排除了许多潜在的好的计划。 尽管我进行了所有研究并且对自己的选择充满信心,但在开始在线训练营仅一周后,很明显我做出了一个错误的决定。 在取消信中,我与公司分享了: “感觉这门课程缺少将其与在线或Apple文档中已有的所有内容区分开的独到见解。 我喜欢了解事物的运作方式。 练习中的解释让他们急于尝试通过一系列步骤。” – 2018年2月 在教育行业中,很难分辨出质量营销与质量计划之间的区别。 有时,最好的资源实际上从外观上说服力最少。 课程报告是查找和评估训练营的绝佳场所。 您可以阅读曾就读于这些学校的人的许多详细评论。 我选择的学校获得了很高的评价,所以不要只根据评论来判断。 大多数人认为只要不可怕就可以算是“好”,而且没有什么可比拟的。 我认为存在出色的iOS训练营。 有些人将从他们的自我强加的结构和严谨的工作中受益匪浅。 但是要考虑两个主要因素: 最好的训练营通常是最昂贵的 。 高价格并不意味着高质量,但是低价格几乎总是意味着低质量。 训练营针对特定级别进行了优化 。 如果您的编程经验水平不是他们所针对的,那么即使是高质量的训练营也可能是一个糟糕的选择。 如果潜在的训练营告诉您他们的计划适合任何水平的经验,请远离。 这两个因素最终使我回到了自学方法。 我不希望参加顶级训练营所需的财务风险,而且很难找到一个不会跳过重要基础知识或花很长时间重新引入基础知识的人。 如果您能够自己有效地学习,那么有很多针对各种知识和经验进行了优化的特殊资源,这些资源可以用很少或几乎没有成本的方式获得。 挑战在于知道要使用哪些资源以及在哪里找到它们。 这会使自学方法缓慢而令人沮丧。 但是,这些正是我希望通过分享所要缓解的挑战。 在以后的文章中,我将返回参加训练营的优势列表,并分享我从其他人那里学到的一些策略,以期在自学过程中培养这些相同的优势。 安德鲁 PS:如果您有兴趣参加iOS训练营,那么有一个在我眼中脱颖而出的人:Dev Mountain。 如果位置和成本不是因素,那可能是我的第一选择。 图片来自Unsplash。

学习Swift-第一个成功!

在继续学习Swift编码的过程中,我已经达到了第一个成功点。 完整且有效的游戏。 它是CandyCrush的副本,是在此非常有用的教程的帮助下制作的。 我花了几天的时间来完成课程。 我在这里和那里都遇到了一些主要与错别字或代码错误有关的问题,但是解决这些问题是值得的。 尽管我仍然无法从头开始创建自己的应用程序,但按照这样的指南进行操作,并继续阅读Apple的“使用Swift开发应用程序”,这是通往未来基础的道路。 CookieCrunch教程给我带来了一些挑战,我将尝试自己添加一些挑战,但是我不想花太多时间在此上,所以如果我不马上解决,我会参加另一个指导课程,以帮助我继续建立这个基础。 通过这些教程的工作确实使我大开眼界,了解创建我们每天使用和喜爱的应用程序涉及多少工作。 我羡慕那些希望并最终获得他们的大发布的独立开发人员。 我希望有一天能成为发行版的风口浪尖,但是即使那样,发行版也只是我们面临的第一个战役-获得可见性是一个“万无一失”的蠕虫。

Swift Ruby Python用JavaScript编写

学习新语言的技巧 有一个鲜为人知的秘密,我们在民间/流行弦乐器世界中很少披露。 我们经常对人们说:“哦,您在寻找低音吉他手吗? 好吧,我只弹吉他,所以很抱歉,我无法为您提供帮助。”,因为这是一种摆脱演出的简便方法,因为演出收费不菲甚至根本没有。 这是一个谎言,但是我们大部分时间都不会这样做,因为询问的人通常对此并不了解,因此我们不必处理任何不必要的反弹。 但事实是,大多数音乐家可以而且确实可以演奏一种以上的乐器。 尽管有时这个模因很荒谬,但这确实是我在学习JavaScript和Ruby之后完成了Swift入门在线课程(在此处找到)时的感受。 老实说,我期望我以前从未见过的东西,并且一开始会相对丢失(通常是我的默认设置)。 男孩,当我发现自己错了时,我很兴奋。 该课程以所有语言课程的入门材料开始。 我在声明变量,编写字符串,学习数据类型以及每种编程语言的所有基础知识。 我没想到这里会有太多差异,因为您可以在此材料上进行的变化非常有限。 然后,我开始编写函数。 我不得不编写一个看起来像这样的问候函数: func sayHello(name:String){ print(“你好,\(名称)!”) } sayHello(名称: 名称) 看着它,我开始注意到一些相似之处。 我仅在这三行代码中就可以看到Ruby和JavaScript的并行性。 他们是: func sayHello(){}-> JavaScript函数语法 sayHello-> 像JavaScript一样的Camel Casing print()-> 也在Ruby中找到 sayHello(name: name)->调用JavaScript或Ruby之类的函数 对我来说,这是一个真正的突破性时刻。 我不再觉得自己是从第一个方格开始,而必须在初学者阶段逐步进行。 相反,我开始觉得自己处在某种加速的轨道上。 当我将该功能的所有内容分解为最小的部分时,我意识到唯一的区别是: func vs function-> 与JavaScript略有不同 (名称:字符串)-> 不同的参数语法 print(“ Hello,\(name)!”)->不同的插值语法 本质上,我只需要学习三件事就可以在Swift中编写基本功能。 谈论能够迅速起步! 我不但不发汗,反而乐于运用我以前的知识。 我感觉: 保持差异有序: 这是我遇到的最大困难,特别是在编写全栈应用程序或执行各种不同的代码挑战时。 尽管相似之处使学习语言更加容易,但有时,微小的差异被证明是主要障碍。 例如,在Ruby和Python中编写if语句之间的区别是: 红宝石: 如果arg […]