中企动力 > 商学院 > 软件开发自学教程
  • ?

    手机APP是怎么开发的,需要学习哪些知识?

    祝尔丝

    展开

    目前主流的手机APP分两类,一类是基于苹果(IOS)系统的APP,另一类是基于安卓(Android)系统的APP,两种不同系统的APP所使用的开发工具及编程语言完全不一样。

    (1)基于苹果(IOS)系统的APP

    要开发苹果系统的APP,需使用苹果公司的xcode开发工具,通常是使用Objective-C或Swift语言开发,Objective-C是C语言衍生出来的,继承了C语言的特性,属于面向对象的语言。会C语言的话可以直接使用Objective-C编程,差异很小,若遇到不懂的再查资料。还有就是苹果新推出的Swift语言,非常好用。

    (2)基于安卓(Android)系统的APP

    安卓系统APP使用Java语言进行开发,Java语言已经流行了20几年,目前还保持这这种势头,经久不衰。如果想做安卓系统APP必须先掌握Java语言,对于有C语言基础的人来说,学习Java还是较容易的,如果有兴趣的话可以自学,网上Java学习教程挺多的,还有不少免费的教学视频,不想花钱报培训班的话,可以自己跟着视频学习。如果是完全零基础(没有学过C等其他编程语言),如果真的很感兴趣,也可以自学,只是学起来稍微慢一些。

    安卓系统APP开发的工具有几种,目前比较主流的有Eclipse和android studio,之前比较流行的是Eclipse,后来2013年谷歌推出了android studio开发工具,也比较好用。不过很多老用户还继续沿用Eclipse开发工具,因为更换平台很多配置需重新设置,而且之前编写的软件无法直接运行。如果是新手的话建议使用android studio,个人觉得android studio好用一些。

    开发前准备,还得安装Java开发环境,JRE、JDK、android studio,还包括环境变量设置,模拟器配置等,这些东西至少要折腾好几天才弄好。

    总之,有兴趣的话可以自己系统的学习,手机APP开发还是非常有用的,可以做智能家居、远程控制或者开发游戏等。

  • ?

    6款自学网站,知乎3000人推荐,每天30分钟进步是显而易见的

    顾水绿

    展开

    在这竞争力相当严峻的社会,我们必须要充实自己,聪敏出于勤奋、天才在于积累,只有不断的积累知识在肚子里,你才能够有实力在如此严峻竞争力下,闯出自己的一番天地!

    今天小编就为大家分享6个自学网站,知乎3000人都推荐, 每天多花30分钟,进步效果是显而易见的!

    1:极客学院

    一款精心开发的一款顶级在线学习平台

    网站里面拥有海量IT课程视频教程,帮你成为一名优秀的IT人才,各种类型的知识体系都有吗,例如JAVA语言、C语言、HTML、以及移动开发等等,里面有着详细的职业方向分析,并推荐合适你的教程视频!

    2:办公资源

    一款为你推荐各类资源模板的网站

    这款资源模板网站不急提供海量模板外,还有Word、Excel、PPT教程视频,教你如何成为职场高手!视频内容通俗易懂,实用性很强!

    3:教程网

    一款提供PS教程、CAD教程、编程语言的网站

    网站不仅提供PS教程、CAD教程、编程语言之外,还有相应的论坛以及素材,你可以在里面找到你想要的各类资源素材!

    4:思源论坛

    一款专门提供PPT自学素材的网站

    现在你不管在什么地方找工作都需要掌握PS技术,这款网站有着各种丰富的PS教程视频网站手把手教你,只要坚持下去,保证让你的PS水平突飞猛进!

    5:好知网

    一款技能性非常强的自学网站

    根据你的兴趣爱好进行选课,无论是摄影、声乐、IT、职场技能都可以在里面找到,网站里面的可以有免费也有收费,看好了再精心挑选!

    6:大学生自学网

    一款专门提供各类大学课程自学网站

    你还在担心期末会挂科吗?还倒不如自己在寝室乖乖的复习吧!这款大学生自学网站里面有着各类大学课程复习视频,就连考研、英语四六级、雅思托福等等软件教程应有尽有,不仅适合在校大学生,其他想充实自己的小伙伴也可以在里面进行学习!

    以上就是今天为大家分享的所有自学网站啦!学无止境!多花点时间在学习上,少花点时间在打游戏上,坚持下去,将来的你,一定会感谢现在拼命的自己!

  • ?

    以前搞化学,自学编程 9 个月后,我成了年薪 6 位数的软件工程师

    Zarate

    展开

    编者按:无论从近期还是远期来看,传统制作业的一般岗位都面临着萎缩或者钱景不佳的情况。很多从业者都面临着职业转换的问题。而软件开发将是很长一段时间内前景最光明的职业之一,是很多人改行的首选。但是缺乏基础想要改行谈何容易?如果为了打下基础而放弃手上的工作专心进修但最后还是找不到工作怎么办?从化学工程师成功转行软件工程师的Austin Tackaberry也许能给你启迪。在这篇文章中,他详细介绍了自己是如何一边工作一边自学最后成功找到一份软件工程师的工作的。

    每当我开始阅读成功故事的时候,我都会马上去查找作者的背景是什么,希望能适合我。但是我从来都没发现那些人的背景跟我一致,所以我的很可能跟你的背景也不一致。

    不管怎样,我希望我的故事能够激励其他人,同时能够充当一个有用的数据点补充到你的成功故事数据集上。

    充分披露

    高中的时候(9年前)我上过VBA的课程。我在新生工程课程(7年前)中学习了一些C、Python、Mathlab以及Labview的知识。我从一所很好的大学毕业,拿到了化学工程学位,我的GPA成绩也不错(3年前)。离开学校(高中或者大学)以后我从来都没有编过程,直到去年我决定要去学一下。

    大学毕业后,我在一家精炼厂拿到了一份工艺工程师的工作。在我改行到软件工程之前我一直在那里工作。

    为什么我要换职业

    我喜欢解决技术问题,但我知道到了某一刻我还是要进入商业/初创企业世界的。我一直都有读MBA的想法,但每次看到顶级商学院的价格时,我的兴趣马上就没了。

    2017年5月27日,我又上去Google了一下MBA,但是不知怎的就看到了软件工程方面的东西。而且这东西看起来挺适合我的。

    对软件工程师的需求日益旺盛,工资水平也很高,而且也是进入到初创企业世界的完美行业,并不需要太多的启动资金。你需要知识一台计算机,而且你的机会(几乎)无限。

    在这里你只需要有个想法,开始开发,然后展示给用户,再用一点点资金进行迭代就行,进入门槛也很低,其他任何一个行业都做不到这一点。在化学工程,基本上你需要有一间运营的工厂,或者需要很多钱去设计一家工厂,如果你有个新产品的想法的话。

    我听说过有人辞职去参加训练营,但是我在网上看到这些情况越多,我就越意识到其实我完全可以自学,如果我够投入和专注的话。

    你也许会提出不参加训练营的话岂不是会失去那里提供的关系网络和职业建议?的确,但是我很幸运,因为我生活在湾区,所以可以去出席一些回忆,在那里我建立了自己的关系。

    此外,最糟糕的情况也只是我发现自己一个人学不来,真这样的话我再辞职参加训练营也不迟。

    目标

    你需要有目标。尤其是如果你想一边干全职一边自学的话。如果你不给自己额外的压力的话你的学习就会一拖再拖。所以你需要给自己施加内部压力。你的目标应该是简单的、可量化的。你应该进行充分研究,提出合理的目标。我的目标是这样的:

    在1年之内拿到一份薪水跟我现在相同或者更好的软件工程工作。

    计划

    一旦你制订了目标,就需要一份计划来帮助你实现。这个时候你需要尽可能多地去了解别人的成功故事。当然他们的情况都不会跟你一致,但你可以从每个人身上吸取一些经验。我利用Reddit的子版块learnprogramming、FreeCodeCamp论坛以及Medium等资源来制订我的计划(并且不断修订)。

    2017年5月27日,我决定开始我的学习编程之旅,下定决心之后我可以说是一个猛子就扎了进去。我决定每周的工作不能超过40小时,这样我就有时间在工作之后以及周末去进行编码。你很幸运,因为我把我的整个学习过程都详细记录下来了。

    我的计划经过多次迭代之后,最终大概是这样的:

    上一门计算机科学入门课程,对核心计算机科学概念有可靠的基本了解。跟着freeCodeCamp学直到我自己可以开发出组合层面的全栈web app。通过重构来清理代码,增加测试,专注于先进的概念。给开源做贡献准备面试

    我的计划一开始是非常简单的。那时候我认为自己应该按照Google的技术指南去学,所以我选了一门他们推荐的入门课程,Udacity CS101。

    第0个月——Udacity CS101,Harvard CS50

    做出这一重大决策让我充满了能量。我一下班回到家就迫不及待开始编码而且直到上床前都不愿停下来。然后整个周末都是这样。Udacity CS101会跟踪完成百分比,这对我是一大激励。我每天编程完之后都要记录我们的完成百分比。在10天内我就完成了前面的75%。最后的25%侧重在递归方面,这对我来说有点难。总而言之,最后我用了20天完成了Udacity CS101。

    我在上Udacity CS101的同时,还一边开始相当频繁地上Reddit的learnprogramming子版块去看。我我在上面了解到正在寻求改变职业的自学开发者在网上活跃是非常重要的。我决定用自己的全名在Twitter、Reddit、Stack Overflow、Medium以及Quora上面开设新的账号,以便在网上刷存在感。

    此外,我还决定不再看Instagram、Facebook以及非编程方面的Reddit子版块,以免造成分心。我只有在查看编程相关的新闻和帖子时才会翻看我的手机。这一点很关键,因为可以确保我能找到最好的学习路径和学习资源。正是因为这样我才在edX上发现了Harvard CS50。

    一开始我只是满足于上一门入门课程,但每个人似乎都推荐Harvard CS50,所以我决定再试试这门课程。其他学校计算机科学的学生也上了这门课,并且说他们在哈佛的CS50上面学到的东西比在自己的大学学习1、2年的计算机科学所学到的东西都要多。大家的普遍共识是这门课程很难但是值得。到了第0月的月末,我已经完成了前5节课以及家庭作业。

    第1个月——Harvard CS50,Linux,第一次聚会,freeCodeCamp

    大概到了这个月的一半时间时我终于完成了CS50。关于学CS50的体会我不想谈太多,因为我已经在这篇文章详细谈了我的经历。

    总而言之:这是一门很棒的课程,我高度推荐。David Malan是一位优秀的讲师,而且有很多资源可以帮助你通过这门课程。你从C语言开始,然后再到Python,最后完成web开发。安排非常紧凑,涉及大量材料,但我认为是非常值得的。

    在CS50之后,我决定把我的XPS 15配置成Windows和Ubuntu双启动。那是一个令人沮丧的周末。我把分区搞砸了,笔记本几乎变成了一块砖头。我差点就想把那台笔记本扔了买台新的。

    我慢慢放弃了Windows,最终主要以Ubuntu作为平台。我想强迫自己适应一定程度上可行的命令行方式,但是仍然有很长一段路要走。

    我开始了百日写代码之路,以确保自己保持专注和每天都写代码的节奏。记录自己的进度非常重要。如果你每天都能取得进展,尽管看起来似乎不大,但是日积月累之后回过头,你就会意识到其实你已经走了挺远了,而这又会激励你继续前进。

    我知道,关系网络决定了我的成败,所以我鼓起勇气参加了自己人生中的第一次编码聚会。我此前从未参加过任何聚会,更不用说编码聚会了。所以一路上我都非常紧张,以至于开车到那里停好车走进门之后,几乎就想转身离开回家了。

    这是那个团体的第一次聚会,这一点很有帮助。我迅速意识到自己没理由紧张。大家谁都不认得谁,没人来这里是为了给别人下结论的,每个人都渴望学习。而这只是一场聚会狂欢的开始。在9个月内我最终出席了超过50场聚会。

    很高兴,我很早就开始参加聚会。大多数人只是在寻找工作的时候才开始出席聚会,但到那个时候几乎已经太晚了。要早点参加的理由太多了。这里仅列举少数:

    培养关系需要很长的时间。早点开始意味着后面找工作的时候你保证可以有关系可以依赖。跟陌生人讨论编程时准备面试的很好手段。你可以学习新的框架,了解到走走你前面的那些人的学习资源。这些会影响你的未来学习计划。

    我的编码之旅走到这个时候出现了一点不确定性。到这时候我需要决定自己想要成为什么样的软件开发者。

    到最后,我选择了web开发,因为它的需求似乎非常旺盛么热切网上有很多资源。一旦我想明白了这一点,我就需要弄清楚接下来要做什么。一些人建议到这一阶段我应该考虑想要开发什么样的web app然后继续。一些人向我推荐The Odin Project或者freeCodeCamp。

    那个负责筹划我每周都参加的聚会的家伙会Ruby,也想用Ruby做项目。我决定全身心投入到The Odin Project里面,这是其中的一大原因。

    然后2天之后我又决定放弃这个想法了。

    这就是走自学路线的缺点之一。一分钟前你以为你已经找到了前进的方向,然后第二天你又会怀疑你有没有走对路。

    我了解到Ruby正在失宠,并且通过搜索对比Ruby和JavaScript的就业机会来证实了这一点,所以我最后决定开始freeCodeCamp。freeCodeCamp比较令人困扰的一件事情是项目的想法是他们想出来的,所以每一个参加训练营的人都做相同的项目。然而,一开始我感到担忧的是我希望能做应聘者当中脱颖而出。然而,我最后还是爱上了freeCodeCamp,现在我高度推荐你们要学这个。要想了解更多我关于freeCodeCamp的体验和推荐,请参考我的这篇文章。

    第2个月——YDKJS,freeCodeCamp前端,React

    我开始读《你不懂JavaScript(YDKJS)》,因为每个人都推荐它作为freeCodeCamp的补充。我被迫重读了好几个章节,因为它的内容特别紧凑,但这是学习词法范围、闭包、预定等你听到也想学到但因为很难从未试过的有关JavaScript的一切的完美资源。

    我完成了freeCodeCamp的前端部分的学习。其检查表格式以及估算完成时间起了不小的帮助作用,这激励了我要迅速完成。我还恨不得马上进入下一章节去学习React。然而,这也意味着我的项目都是极简风格。我除了竭尽所能去实现用户故事之后就不再做别的东西了。

    事后看来,也许我应该把精力放在让项目更吸引人上面。也许这会让我更深入了解CSS。

    下一步就是学习React,我忙得差点缓不过气来。

    我已经听说过React的很多,并且已经准备好要成为酷小孩的一员了。然而,我还有一点踌躇,因为当时的许可问题。我真的很高兴这不再是问题了。学习React对我来说很困难。当时我还没有发现任何好的教程(但是现在似乎到处都是)。

    我尝试阅读文档,按照Facebook的一字棋教程去做,但我其实不是很理解它是怎么做的。我被告知这不适合我,这意味着我对JavaScript的理解还不够。于是我又返回来继续读《你不懂JavaScript》,但再次地,里面的内容对我来说太高深了。

    第3个月——freeCodeCamp React,CodeClub,开始freeCodeCamp后端学习

    最后,我决定去做freeCodeCamp React项目练手,看看它究竟是怎么做的。写出来的代码很难看,但的确帮助我更好地理解了React。

    我参加的每周聚会决定全栈都用JavaScript而不是Ruby来做项目,并且他们还确定了第一个项目将是给这个聚会小组开发一个网站,CodeClub.Social。

    我利用React和Meetup API开发了卡片,让用户可以通过我们的网站注册报名参加接下来的3场聚会活动。这对我来说有点难,因为我得暂停freeCodeCamp学习来做这个,但这是一个我不容错过的机会。我很高兴能跟一小群人一起做项目。这也帮助我学习了Git和Github。

    在这个月结束前,我开始在freeCodeCamp学习后端开发。

    第4个月——完成freeCodeCamp后端学习及Yeggle开发

    我练完了freeCodeCamp所有的API项目,但我开始从freeCodeCamp抽身出来做Image Search Abstraction Layer这个项目。

    我迫不及待想要开发全栈web应用,所以我看到这个项目的名字时马上就有了自己的项目想法。我想做一个节点app,用来存储随机imgur URL到数据库上,然后再做一个前端来输出这些随机图像的用户指定数字。大家的说法是对的:当你做一个自己想出来的项目时,你会更用功也更成功。

    当我把项目做成了之后,一股自豪感油然而生。虽然它很丑很笨拙,但是最重要的是能用。

    我在freeCodeCamp的学习过程中,还了解到了哪些项目是我的能力范围之内的。当时我经常会去跑步,在跑步过程中我时不时会冒出一些想法,等我回到家就把那些想法写下来。这样等我准备好时就有了一个项目清单了。

    最后,我终于感觉自己已经做好准备,可以把自己的有用且光鲜的全栈web app分享给用户并且纳入我的组合里面了。我已经摩拳擦掌,迫不及待。

    在找新饭店的时候,我总是会打开Yelp去看看别人的点评,然后再打开地图看看别人的点评。如果我做一个app来把这两个一起比较一下呢?

    于是我做了Yeggle,这个东西用了Node/Express/React,再加上Google Maps和Yelp API。当时有好几个障碍我认为自己是没法克服的,但到最后我还是设法完成了,我对这个app也感到非常自豪。然后我把它发到了Reddit上,可是没人在意。这有点令我失望,但我是不会被这种情绪打倒的。

    第5个月——StockIT

    这个月我做的东西不多,因为我跑到日本和泰国度假去了,整整2周!

    但是我还是开始并完成了下一个项目。我不断读到自学开发者找到工作是多么的难,于是我认为自己得做点独特的事情。我记得有一个游戏是当道琼斯股票走势图开始活动时,你有一个买入的机...

  • ?

    0基础如何自学软件编程开发

    裘峻熙

    展开

    0基础如何自学软件编程开发?学习软件编程首先需要选择一门编程语言,如C或JAVA语言,作为基础编程语言学习,掌握语言的逻辑,学习语法,其实编程实质上就是思路的运用,编程思路有了再想学习其他的编程语言就会变得顺风顺水。软件编程开发,对于现在的学生来讲到底有多重要呢?现在是互联网快速发展的时期,在几年前谁都没有想到人们在手机上就可以完成衣食住行等所有的活动,互联网也在慢慢的改变着未来一代人。

    互联网广泛覆盖了我们的生活,真正实现了“远在天边,近在眼前”, 在我们的生活工作中都有互联网存在的身影,随着IT行业的越来越红火,现如今IT行业已是热门行业,当然,任何一个热门行业大家都会讨论关于行业的发展前景以及薪资待遇。软件编程对于专业人士,并不稀奇,但对于外行人来说,面对着编程语言会有一种神秘感。很多人都有软件编程的梦想,对于外行人员,应该如何学习软件编程呢?

    苹果的创始人乔布斯曾经讲过:“每个人都应该学习编程,因为它将教会你如何思考。”思考是人与动物的本质区别,这也就为什么人类能够发明出这么多的工具,改善我们的生活,使得工作和生活的效率变得更高。

    对于初学编程设计的人来说,学习软件编程是一个艰苦而漫长的过程,需要持之以恒的耐心,千万不能急于求成。尤其是对于初学者,最重要的还是打好基础。

    部分人倾向于自学,学习这种事情,仁者见仁智者见智,有人能有收获,有人却浪费了时间,学习效果确是收获甚微,学习是一回事,感兴趣是另一回事儿。找对人找到学习的方法节约时间成本又是一回事儿。

    逐渐的你会形成自己的编程风格,遇到问题要有自己一套思维方式,解决编程问题。解决问题,代码要简洁,有注释易懂。在学习的进阶阶段需要你学习一些和数学思维有关知识,比如数据结构,算法,矩阵等等,这样你的编程水平会提升一个档次。

    在业余时间可以参加一些编程技能比赛,或者与一群小伙伴们共同学习,多认识一些高手,多和他们交流学习,学习软件编程要下功夫,多多努力,学会自查,减少错误。想要获得成功,最终还是看自己的努力程度,没有谁是可以随随便便成功的。

    更多资讯关注【河北达内】回“资料”获取学习礼包。

  • ?

    史上最全的Android开发学习教程集锦-初学者

    罗斯科夫

    展开

    根据Google的报告,截止2017年5月为止,Android活跃用户已超过20亿,并还在持续增长中。Android系统在几个主要的市场上已超过了iOS系统,特别是在美国,欧洲和日本,然而苹果确实在中国市场找到了一席之地。未来的市场到底谁是“霸主”我们还无从得知,但Android现在的趋势已经超过iOS。这也是为什么越来越多的设计师投身于Android开发设计。本篇文章从不同角度给Android开发提供丰富的教程资源:初级Android开发教程,YouTube视频教程,丰富的Android开发资源以及工具使用等。

    初级Android开发教程:

    https://developer.android/training/basics/firs...

    当然,我们还是要从Google给的Android教程开始学起。“开发你的第一个Android应用程序”这个教程一开始就是为初学者准备的,如果你没有一点编程知识,那么学习起来会很困难,但如果你有一些编程背景,那很容易。

    在教程的背后有几个“最佳实践”,这个可以说是非常重要的内容,这是你必须阅读的部分。

    https://tutorialspoint/android/index.htm

    Android编程是基于Java语言的,如果你对Java编程有基本了解,那么学习起来会相对轻松些。这个教程会教你基本的Android编程,并带你了解一些与Android应用程序相关的高级概念。本篇教程完全是为初学者准备的,当你了解完这篇教程后,你将发现自己已达到了Android编程中等水平的专业知识,从而就可以进入下个阶段。值得一提的是,这个网站上涵盖了几乎所有的Android开发的知识,包括:Android的用户界面,Android高阶概念,Android应用程序样例以及各种Android资源。

    YouTube视频教程:

    https://youtube/playlist?list=PLS1QulWo1RIbb1cYyzZpLFCKvdYV_yJ-E

    这个教程是Android开发系列教程,涵盖56个视频教程。从基础的介绍和安装配置Java JDK到安装Android studio以及开发应用程序,你可以了解到你想了解的一切关于Android开发的知识。

    https://youtube/playlist?list=PLshdtb5UWjSrOJfpFOE-u55s3SnY2EO9v

    本教程总共有69个视频,从基础的开发知识到如何创建一个Android应用程序,你想知道的Android所有知识,都涵盖在这77个视频里。在学习完本系列教程,你可以创建自己的Android应用程序,并可以在Play store中发布你的应用程序。这个系列教程是2018年最新的。

    本教程是由在线学习网站Treehouse提供的。顺便说一句,这个网站的学习资源很丰富,有时间可以去看看。目前, Android开发都是有Android studio这个工具完成的,它有助于组织我们的项目,并提供一种用户友好的方式来创建我们找寻的东西。在本视频中,我们将学习到如何安装Android studio,然后制作应用程序,如果你没有一点编程知识,也没关系,跟着视频学习,你将了解更多Android应用程序。

    https://android-developers.googleblog/

    如果你是Android的开发人员,那么这个博客可以获得Android所有的最新时讯,并提供最新的一些开发应用程序技巧以及丰富的培训资源。

    http://androidguys/

    这个博客为Android用户提供关于Android的产品、使用技巧以及最新的时讯。如果你想了解某个Android的操作系统以及设备,那么这个博客你绝对值得收藏。

    https://androidauthority/how-to-use-materi...

    本文教你如何使用材料设计让你的Android应用程序更加美观吸引人。

    Android 开发工具:

    Android Studio

    所有Android应用程序离不开Android studio,它是Google推出的Android开发环境,开发者可以在编写程序的同时看到自己的应用在不同尺寸屏幕中的样子。Android Studio还提供了更多功能,可在构建Android应用程序时提高你的工作效率,例如:C ++和NDK支持。

    Mockplus

    Mockplus是一款Android原型设计工具。快速原型设计是设计师与移动app软件需求方沟通的最好工具,我的理解就是在软件开发初期,先对所要开发的软件有一个大致的整体设计,毕竟现在的移动端多种多样,原型的重要性是降低开发成本,此阶段应该被充分利用,以避免后期因为不符合需求而改写大量代码。如果没有一个好的设计,很难做出一个比较优秀的软件,快速原型更有利于用户与开发人员的交互,使设计细致入微。

    总结

    假如开始没有任何的开发经验的话,千万不要着急,不要想着在短时间内就把一个语言学习好,因为你之前没有任何的学习经验,在这个过程中需要有耐心地学习完JAVA的基础知识,然后才开始踏上Android开发之旅。有开发经验的,可以在Android上迅速上手,但是同样的是不可忽略Android的一些基础知识,只有把基础掌握好了,才能在后期取得大的进步。

  • ?

    【纯小白教程系列】小程序开发——框架分析

    Gerald

    展开

    上一期我们已经对小程序的开发者工具已经有了一个整体的大概了解,这一期我们需要了解的是小程序的基本内部结构,也就是一个小程序到底都是由哪些文件组成的,以及它究竟是怎样工作的。

    首先我们先新建一个小程序项目:

    项目源代码文件分析

    然后我们分析一下刚刚建好的项目里的源代码文件。

    名词解释

    WXML(WeiXin Markup language),相当于Web前端语言里的HTML。WXSS(WeiXin Style Sheet),相当于Web前端语言里的CSS。

    小程序APP总体组成

    app.js、app.json、app.wxss三个文件必须放在根目录下,其中app.wxss文件是可选的,如果缺失的话不会影响程序正常运行。pages文件中.wxss跟.json文件是可选的。

    MINA框架

    小程序框架的核心是一个响应的数据绑定系统,整个系统分为视图层(View)和逻辑层(App Service)。 框架提供了自己的视图层描述语言WXML和WXSS,以及基于JavaScript的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统。整个框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生APP体验的服务。

    前两天的图文因为涉及到翻墙相关内容被官方删了,从去年下半年开始政府对翻墙的管制是越来越严了。所以把上一期的内容重新整理了一下。

    还有就是从下一期开始我们的内容开始会涉及到许多Web前端的JS语法知识,所以从这期开始同步更新了Web前端的JS教程。

    上一期:小程序开发——微信开发者工具的认识

    下一期:小程序开发——全局配置

    往期分享

    【无删减】电影系列

    美国往事丨如果你的一生只能看一部电影的话,那就看这一部吧

    春夏秋冬又一春丨那么小就当和尚,好伤心啊

    蝴蝶丨我比你年轻,我还有余力等你(les题材)

    荒野生存丨我想那么年轻,干净,那么寂寞地活着,直到可以突然失踪在马路上的那一天

    【纯小白】教程系列

    小程序丨0基础要怎么自学小程序开发

    小程序丨小程序开发环境搭建和布署

    小程序丨微信开发者工具的认识

    【超实用】工具系列

    Chrome开发者工具(不完全)指南

    AutoCAD 2018(附软件+注册机)

  • ?

    写给自学者的入门指南

    Iris

    展开

    在 IT 工程师和培训机构多如牛毛的时代,拜师学艺并不难。但自学编程对于毫无基础的同学来说却可能是个问题,相信有过类似经历的朋友都有一把辛酸泪和一肚不吐不快的体会。让我们从一个故事说起…

    故事

    某君在一个普通大学读着自己不喜欢的专业,以打游戏、刷段子和睡觉度日,突然有一天想学点什么。学编程好像挺酷,而且听说IT行业充满了机会,没准一不小心就和大佬一起“改变世界”了。

    那么第一个问题来了,他该选择什么语言?

    是世界上最好的语言 PHP?还是语言之母的 C?幸好还知道个编程语言排行榜,找到一看、几十种不带重样,这要逼死天秤座的小朋友。选 PHP 吧?上非诚勿扰都要被灭灯,而且就只能做个网页。万般纠结之后我们选 C 吧,听起来既高级又底层,说不准还能考个计算机二级。

    接下来得干正事儿了。在这个便捷的网络时代,自学可选择的方式非常丰富。除了在网络上收集资料、阅读干货外,某君还向一些前辈咨询了自学的方法。

    网络上流传的编程学习方式有:

    看书(这是最容易想到的方法)

    观看视频教程

    阅读官网文档

    读源码

    到大学蹭课或者报名培训(不知道还算不算自学,没交学费都算吧?)

    某君又得纠结一番了,大学蹭课和培训并不一定有合适条件,且不符合自学的气质;观看视频教程,前辈们觉得比较low;阅读官网文档和源码,这不适合初学者。总得来说看书算是比较中肯的方法,至于看什么书呢,前辈推荐了《C Primer Plus》,据说是学习C语言的经典之作。

    好吧,不再纠结,直接啃这本大部头,虽然有人说看原版好一些,但是实在能力有限、还是看中文版吧。一口气花了一周时间读完这本书,果然是经典,变量、语句、条件判断甚至指针都知道怎么回事了。

    某君决定按照书中的说法实践一下了,于是打开了记事本,折腾很久装了GCC,把书上的第一个例子抄了下来,在控制台的小黑窗输出了“Hello World”,成就感满满。决定上手写点高级的的东西一试身手,合上书。咦,为什么会报错?哦,原来少个分号。不禁陷入思考:为什么学了两个月还是只能在这个黑窗口算算秋水仙数?网友还说要看官网文档、要读源码、要看英文原版,我一样都不能做到,我一定是能力不够,编程果然是天才做的事情……

    正经话

    上面的故事是我编的,但其中的纠结却是自学者或多或少都经历过的。实际上,IT从业者并不像传说中那样需要天才般的智商,要点在于能否找到合适的入门途径,再加上一点点坚持和思考。比较可惜的情况是一些人没能找到适合自己的学习方法,并在纠结和碰壁后失去信心,然后沮丧的认定自己并不适合干这行。学编程很多时候就是一个趟坑的过程,但不是每一个坑都有必要趟,写这篇文章的目的是希望能够帮助初学者尽量少趟一些坑。

    IT世界的地图

    初学者遇到的一个典型问题是对IT世界没有一个大的图景。比如大多数的Java书籍,教完你基础语法知识和秋水仙数的求法后就结束了,并没告诉你接下来能干什么。我曾经为此感到非常困惑,学完Java SE后做了一个非常简陋的GUI demo,就失去了后续的Java学习方向,带着对Java的偏见,这成为了我一段令人沮丧的学习经历。关于这个话题一本书可能都不够,简单来说,我尝试从计算机科学知识和技术实践两方面来聊聊成为一名IT工程师需要具备哪些东西。

    计算机科学基础

    首先初学者要具备一些非常基础的知识,这些知识在你踏上工作岗位后能被实际的用到,比如计算机运行原理、网络的传输、常用数据结构和算法等。这部分属于计算机科学,也是应该被计算机专业本科课程涵盖的,不要伤心错过了大学本科的相关课程,我会分享一些有用的资源。

    这里我罗列了一些计算机专业的学生一般需要学习的课程,当然每个学校专业设计都不一样,甚至采用的教材名字也不一样,仅供参考。大学计算机科学课程往往包括:《高等数学》、《离线数学》、《电子电路》、《数据结构》、《程序设计》、《计算机组成原理》、《编译原理》、《计算机网络》、《软件工程》、《数据库原理》等。有些学校会有一些额外的课程,例如《通信原理》、《汇编语言》、《线性代数》、《C语言》、《Java 语言》等。

    图片来源于网易计算机专业的课程体系

    尽管IT行业知识更迭非常快,但是基础知识并不容易过时,因此有大量的资料可以选择。可以选择从计算机经典丛书系列开始,比如佛罗赞和莫沙拉夫的《计算机科学导论》,甚至可以阅读一些计算机科普类读物例如《穿越计算机的迷雾》。另一种直观的方式是观看大学精品课和去跟慕课课程,比较推荐的有几个:

    中国大学精品开放课程,高等教育出版社的精品课程项目,有全国大量的名校授课视频和课件

    中国大学MOOC ,这个是中国大学MOOC和网易合作的,提供了上文附图中计算机课程体系中所有课程

    果壳网的MOOC学院,主打翻译全球名校的优秀课程,比如斯坦福的《编译原理》和MIT的《Python》

    从知识到实践

    除此之外,还需要了解实际应用于设计软件或者开发网站中的实践类知识,包括某个特定语言以及周边的库、框架和工具等。 我们可以把特定需求中用到的语言、库和框架以及其他的工具称为技术栈,在技术选型上通常也是被这样考虑的,HR常常会根据技术栈来寻找需要的工程师。比如需要学习SSH 三大框架和Java的Java技术栈;为服务器web开发而生的PHP技术栈;在移动开发领域流行的IOS、安卓技术栈等。当然这里面有一些重合和共用的技术也需要学习,比如版本管理器Git、SVN就是每个合格的工程师需要去学习的。

    换句话说,大学课程主要定位在上面说到的计算机科学基础知识,而市面上的培训机构主要是告诉你在怎么在实际工作中运用,所以大学和培训机构都有他们的价值。

    想要更加详细的了解这部分内容,这里有一些开源的技能图谱可以参考:

    图片来自: http://skill-map.stuq.org/

    如何挑选你的兵器?

    在介绍完计算机领域的大致图景后,就需要选择一门合适的编程语言,一个较为形象的例子是把编程语言比喻成兵器,因为我们深知编程语言对于工程师而言是实实在在的工具,我们不是为了学它而学,学编程不仅仅是学语言特性,一般来说我们也不用知道赋值语句像“茴香豆蔻”的“茴”字有四种写法。

    当然语言之争从来没有停止过,如果把编程语言比喻江湖武器的话十分有趣。

    C语言是M1式加兰德步枪,很老但可靠。

    C++是双截棍,挥舞起来很强悍,很吸引人,但需要多年的磨练来掌握,很多人希望改用别的武器。

    Perl语言是燃烧弹,曾经在战场上很有用,但现在很少人使用它。

    Java是M240通用弹夹式自动机枪,有时它的弹夹是圆的,但有时候不是,如果不是,当你开火时,会遇到NullPointerException问题,枪会爆炸,你就会被炸死。

    JavaScript是一把宝剑,但没有剑柄。

    — 来自网络

    老实来讲IT行业的最终目的是交付可用的软件,编程语言也是适应市场的。这对于初学者或许有些残酷,在工作中我们发现最好的语言是用来处理工作任务或者构建合适的应用,并不是出于爱好或者某种Geek精神。

    对于初学者而言,在选择合适的入门语言时至少需要考虑两点:

    是否能适用于构建你想要的应用。如果你的目标是创建一个运行在IPhone上的APP,那么最好选择 Object C 或者 Swift,学习web开发可以选择PHP 或者JAVA。实际上我们仍然可以用汇编做出网页,但是这样做成本高昂。

    是否容易学习,在满足第一点的条件下请尽量选择容易学习的语言。容易不仅仅指语法简单,包括环境搭建、部署等都需要考虑在内,以及能不能容易找到好的学习资料,因此尽可能的选择主流语言。

    别忘了非常重要的一点,学习编程语言还包括平台提供的API,比如Win 32 之于C++/C#/VB,以及周边的库和框架(这些库、框架和工具能在上面说的技术图谱中找到)。IT历史上甚至出现框架和库引领编程语言走向的情况:JQuery 和Angular 改变了前端开发的思想; Rails 抢走了Ruby的名气;而SSH三大框架一度代表了Java世界。

    最后我为初学者整理了一个流行编程语言和用途的表:

    另外还需要注意的是开发工具,可以选用IDE和有代码提示的编辑器,但尽量不要在这上喋喋不休,这就像用来盛放你锋利兵器的架子,用着顺手就行,也不推荐使用纯文本编辑器,这看起来像赤手空拳。 推荐一些编辑器和IDE

    挑选合适的资料和有效的阅读

    对初学者而言,我仍然推荐好的视频教程,虽然我已经听到不下5个人声称是靠阅读官方文档或者看源码学会编程的,而且认为观看视频教程见效太慢。但这个思想对初学者很危险,不得不承认阅读文档和源码能更准确找到自己想要的信息,这对深入技术原理非常有用,但视频能比文字传达出更丰富的内容,有更直观的演示和细致的讲解,我想没有比这个更适合初学者了。

    除了上面提到的精品课程和慕课教程,国内有像网易云课堂,国外有lynda这种在线学习视频网站,甚至在优酷和土豆都能找到足够的教程资源。

    如果选择了阅读技术类书籍,我们来聊聊怎么有效的阅读一本技术书籍。

    读IT类书籍和读考试类书籍的方式不同,初学者需要选择更接地气、并且能告诉你最终能做出什么案例的书籍。你不需要通读整本书,而是需要搭建好和书中版本一致的环境,然后把书中的每行代码敲入电脑,观察这些代码怎样被运行,在遇到问题时去请教朋友或者到搜索引擎中寻找解决办法,直到示例程序能被正确运行。

    可能一个月才能读完一本书,但慢点并没什么坏处,敲过一遍的代码才能算是你的,否则永远存在于纸上的代码清单中。对于关键的概念和知识点,可以在阅读的同时做一些笔记,去尝试使用思维导图来做你的笔记吧,这让你的笔记跟上你的思考,并形成一个知识网络。

    自我激励

    自学无疑是寂寞的。编程学习耗时较长,如何保证在这个阶段能坚持下去?

    我们知道很多人都能对游戏产生强烈的兴趣、愿意为之投入时间,这其中的秘密就是游戏的奖励规则。杀死一个怪物就能得到一些金币,通过完成任务获得满足感,通过关卡的设计产生持续吸引力,进而形成正向的反馈。

    其实学习编程也一样,实现一小段程序并运行,足以让人感到成就感和满足,借鉴这个简单的心理学技巧,定期给自己设定一些有实际意义但是不太难的目标和任务。太难会让人失去耐心,太简单又很无聊,最好设定一个跳起来刚好摸得着的任务。每完成一个目标就给予自己奖励,可以是完成任务的成就感,也可以是其他的物质奖励。

    这个时候一个代办记事的清单就可以帮上忙了,可以是一个to do list的软件,或者自己手写一张卡片贴到墙上,关键在于不要忘了在任务达成后给予自己适当的奖励。

    图片来源:https://appadvice

    那如果真的遇到一些麻烦的任务呢,如何顺利解决而不至于丧失信心?笛卡尔在《方法论》一书中告诉了我们研究复杂问题的方法和步骤:

    尽量将其分解为多个比较简单的小问题,一个一个地分开解决

    将小问题从简单到复杂排列,先从容易解决的问题着手

    子问题被解决后,进行联调测试,看是否能协同运行

    在敏捷开发这种工程思想中我们正是这样做的,我们需要把业务需求进行拆分然后评估工作量,不仅可以直观的看到任务进展,手上的工作也不会看起来庞大得难以完成。

    最后多说几句

    非科班出身的工程师入门是有一定痛苦的,不像武侠世界里面的名门正派弟子,也没有机缘遇到骨骼精奇的世外高人,如何选择合适自己的学习方式并自我管理是很重要的一方面。没有任何Low的学习方式,只要直接而又高效,而且要能达到我们的目的就好。以我为例,从大专学校毕业并没有机会参加本科课程,曾经也在网上攫取各种视频教程,去别的学校蹭课,甚至带上礼物去一个老师那里登门拜访补课。

    另一方面是如何上桌,吃上编程这碗饭。学习的成果如果无处施展便成为屠龙之技,参加一些开源项目和一些公益活动,谁不喜欢一个热心的人呢。也可以尝试去实现自己的一些idea,当做一个小项目来开发,有了一些项目实践后去找一个公司实习会容易的多。

    我不知道算是有幸还是不幸经历了这一个过程,矫情一点来说是有一些曲折,但是我知道“聪明”从来不是这个行业的门槛。引用流行于知乎的一句老话“以大多人的努力程度,还轮不到拼天赋的程度”,在Thoughtworks有大量优秀的工程师,从他们身上我能看到聪明不是学习编程成功的关键,坚持和勤于思考才是。

  • ?

    零基础程序员如何自学编程?用这6种方法就够了!

    穆初兰

    展开

    PHP从入门到放弃,C语言从入门到放弃,Java从入门到放弃...

    在自学编程的过程中,一部分程序员遇到冰冷的英语字母,枯燥的编程教程,果断选择了放弃。

    但其实自学编程不是那么难,只要是理工科生、逻辑思维还行的小伙伴,编程入门完全可以。

    下面w3cschool给程序员小伙伴们分享自学编程的6种方法,这些方法足够帮助你入门、进阶:

    0、书本+视频也许是最好的编程学习方式

    对于初学者来说,可以采用视频+书籍的方式进行学习。这两种方式形成互补关系。

    编程教学视频可以让你迅速掌握编程,但通常比较生动、浅显,不成系统。而书本是比较系统,深入,但是枯燥,所以最好的方法是书和视频结合。

    当你已经过了入门期之后,看书、看视频、看博客就可以随心所欲。

    1、入门期守一个“熬”字决

    自学编程难免遇到这种现象:学了一两个月,发现自己会的不多。

    编程在一开始不会有那么大的反馈,这种现象非常正常!关键是你要坚持个三个月到半年的时间,熬过这个艰难的入门期。

    2、初学者尽量不要钻牛角尖

    入门期遇到难题,耗了半天时间还是没弄懂,可以暂时跳过,知识积累到一定程度,回头再进行解决你会发现简单多了。

    3、站在巨人的肩膀上

    你遇到的那点小问题,已经有无数前辈也曾遇到过,他们总结了并分享在互联网上了,前人的经验是你的宝贵资源,要善于利用StackOverFlow,Quora,谷歌等。

    4、寻一个编程目的

    有些程序员学习编程一上来就想着月薪1W+以上,这样的学习过程会非常痛苦,很容易放弃。

    最好是奔着一个小项目而学习编程,当你把作品做出来了,就有成就感,同时基本上具备找工作的能力,直接找个初级的开发岗位,再进阶,你的自学之路功与名都有了。

    5、反复练习

    编程是一门手艺,需要反复练习,脱离书本和视频看是否能独立实现?学到最后的境界无非就是:我亦无他,惟手熟尔。

  • ?

    自学小程序开发需要掌握的基本知识!看完这篇就能做自己的小程序

    Edwin

    展开

    2月10日上午,微信公布限制账号注册的新规定,根据《互联网用户公众账号信息服务管理规定》第七条而做出的调整。即日起:1.个人主体注册公众号数量上限由5个调整为2个;2.组织类主体注册数量上限由50个调整为5个。

    但新规不是一竿子打死,微信团队称用户可以根据实际情况,如果确实需要多注册帐号的组织和个人,可以在注册时发起申请流程,经过微信公众平台初审和互联网信息内容主管部门审批同意后,即可放宽帐号注册数量。

    有网友问:限制账号注册数量对于个人和企业有什么影响吗?一位自媒体人回复到:“公众号做矩阵的黄金时代已经过去。”

    接下来的2018年一定是小程序雄起的一年,没抓住GZH风口的,这回别再错过了。

    你不会?别急。这篇文章要教你的就是!小程序入门需要掌握的基本知识。

    其实,小程序类似于H5面,提供了视图层描述语言,需要掌握WXML 和 WXSS 以及基于JavaScript的逻辑层框架,这里wxml相当于html,wxss相当于css。想要开发小程序?一个前端一个后端或者一个全栈工程师就可以搞定。那么小程序开发到底该如何入门,小白应该掌握哪些基本知识?往下看。

    1、仔细阅读小程序开发官方教程

    地址这里不贴了,上网一搜就有。官方团队已经把如何申请开发账号,如何使用开发工具创建第一个小程序,框架介绍,组件介绍,API文档等讲解的非常详细了,这里摘取一些主要流程:

    注册小程序开发账号,获取小程序开发的ID,同时下载开发工具;创建空白小程序,并了解小程序的项目结构和文件构成;研究项目的wxml,wxss和js代码(js推荐多用ES5、ES6),页面如何跳转,事件如何触发以及WXML如何编写等。

    2、体验小程序示例

    体验官方小程序:点击发现-->小程序-->搜 小程序示例,获取体验小程序。

    体验三方小程序:摩拜单车,京东商城,饿了么等等。

    3、动手编写自己的小程序

    写第一个小程序功能尽量简单些,但要多用input,text,map,picker等组件。给自己找到一些成就感,写完后提交官方审核发布。慢慢得到自己的肯定后可以开始尝试一些复杂的小程序。

    写在最后:

    互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口。为帮助那些往想互联网方向转行想学习,却因为时间不够,资源不足而放弃的人。我找了几个在互联网领域有丰富经验的大牛搜集整理了一套有价值的学习资料,包括运营技巧、SEO优化等,比自己在网上零散收集的结构性和连贯性更强,只为帮助那些想学习的人!需要的同学可在评论区留言。

  • ?

    「小白教程」0基础要怎么自学小程序开发?

    项雨莲

    展开

    微信小程序是一种介于原生App和webApp的混合体。相对原生App来说,小程序更轻量、实时、跨平台;相对WebApp来说,小程序资源离线,体验更流畅。

    微信小程序(Mini Program,缩写XCX)简称小程序,是一种不需要下载安装即可使用的应用。

    小程序的产品理念就是“用完即走”。用户将再也不用担心因为安装太多应用而导致手机内存不够的问题,应用将无处不在、随时可用,但又无需安装卸载。

    小程序与公众号的区别

    小程序跟微信公众平台的订阅号、服务号及企业号属于同一种并行体系。

    小程序与APP的区别

    相比原生APP,小程序在使用体验上相差不大,但在开发成本、获客成本以及下载便捷度上有较大优势,所以在轻应用的应用方面有天然的优势。

    小程序与H5的区别

    由于小程序的开发语言是由Web开发语言改编而来,所以,它与HTML5应用(WebApp)开发具有一定相似性,但小程序使用的是微信底层的API及基础组件,所以它们之间又有很大不同。

    1、Javascript的限制

    通过传入字符串来执行代码的能力都禁用了。如:new Function、eval、Generator。没有cookie,与浏览器BOM相关的API也都没有。如:document、window等。

    2、相比HTML5体验有提升的地方

    登录——避免了重定向问题。存储——对每个小程序存储大小是5M,支持同步和异步。支付——微信支付路径不再受限。

    3、相比HTML5不方便的地方

    每个页面都需要手动在配置文件(app.json)中进行注册。只能同时打开5个页面,开发时需要注意控制打开的页面的数量。

    总结:开发小程序需要具备哪些知识

    如果你具备以下知识,几乎就已经可以直接上手开发小程序了。如果你是一只纯小白,那么,你将会在学习小程序开发过程中同时学习到以下知识。

    掌握基本WEB前端知识:HTML \ CSS \ JS了解至少一种后台开发语言:AST.NET \ Java \ PHP ...对 request \ view 等流行框架有一定了解

    下一期:小程序开发环境搭建和布署(微信平台【12点档】已更新)

软件开发自学教程

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。