从零自学网络技术-可以自学哪些技术
想从头开始学习吗? 想知道写给IT自学的入门指南,零基础“入坑”的IT攻略,拿走,谢谢~?? ……本文带你一探究竟。
1. IT自学入门指南
在这个IT工程师和培训机构多的时代,找老师学习并不难。 但是自学编程对于没有基础的同学来说可能是个难题。 相信有过类似经历的朋友,都会有一种苦涩的泪水,一种不甘心的感觉。 先说一个故事吧…… 故事是某君在常人中攻读自己不喜欢的专业,整天打游戏、刷笑话、睡觉,突然想学点东西。 学编程好像很酷,而且听说IT行业机会很多,可能一不小心就跟大佬“换*”了。 那么第一个问题来了,他应该选择什么语言呢? PHP 是*on* 语言吗? 还是语言之母C? 幸运的是,我还知道一个编程语言排行榜。 我能找到几十个没有重复的样本,这会杀死天秤座的孩子。 选择PHP? 如果你是那个,灯会熄灭,只能是网页。 纠结了这么多,还是选C吧,听起来既高级又低级。 也许你可以获得二级计算机测试。 接下来要做的事情。 在这个便捷的网络时代,自学的选择有很多。 除了在网上搜集资料,看干货,还请教了一些学长自学的方法。 网上流传的编程学习方法有:看书(这是最容易想到的方法)、看视频教程、看官网文档、看源码、上*聊课或者报名培训(我不知道还是自学,不交学费算不算?)某君又要挣扎了。 *办班和培训不一定有合适的条件,也不符合自学的气质; 看视频教程,学长觉得比较低; 看官网文档和源码,这个不适合初学者。
一般来说,看书是比较中肯的方法。 至于看什么书,学长推荐《C Primer Plus》,据说是学C语言的经典。 好了,不纠结了,直接看这本书吧。 虽然有人说看原版比较好,但是能力有限,还是看中文版吧。 一口气看完这本书花了我一个星期的时间,果然是经典之作。 变量、语句、条件判断,甚至指针都知道是怎么回事。 某君决定照着书上的说法实践一下,于是打开记事本,安装了好久的GCC,把书上的第一个例子复制过来,在控制台的小黑窗里输出“Hello World”,然后达到饱满感。 决定尝试写一些高级的东西,然后合上了书。 咦,怎么会出错呢? 哦,原来少了一个分号。 我不禁想:为什么我学了两个月也只能数出这个黑窗里秋水仙的个数? 网友也表示需要看官网文档,看源码,看英文原版。 我一个都做不了。 这种纠结,自学的人或多或少都经历过。 其实,IT从业者并不需要传说中的天才般的智商。 关键在于能否找到合适的入门路径,再加上一点点的坚持和思考。 遗憾的是,有些人没能找到适合自己的学习方法,在挣扎、碰壁后失去了信心,进而黯然决定自己不适合这份工作。
学习编程往往是一个去坑的过程,但并不是每一个坑都是必须的。 写这篇文章的目的是帮助初学者尽量减少陷阱。 IT* 的映射 初学者遇到的一个典型问题是没有 IT* 的全景图。 例如,大多数 Java 书籍在教你基本的语法知识和求秋水仙碱数的方法后就结束了,它们不会告诉你下一步该做什么。 我对此很困惑。 学习了Java SE之后,做了一个很简单的GUI demo,失去了后续Java学习的方向。 带着对 Java 的偏见,这对我来说成了一次令人沮丧的学习经历。 一本关于这个主题的书可能还不够。 简单来说,我尝试从计算机科学知识和技术实践两个方面来谈谈IT工程师需要具备哪些条件。 计算机基础知识 首先,初学者必须具备一些非常基础的知识,这些知识在你踏上工作岗位后才能实际运用,比如计算机运行原理、网络传输、常用数据结构和算法等。这部分属于计算机科学,应该包含在计算机科学的本科课程中。 不要因为错过*本科的相关课程而难过。 我将分享一些有用的资源。 这里我列举一些计算机专业学生普遍需要学习的课程。 当然每个学校的专业设计不同,甚至所用的教材名称也不一样,仅供参考。 *计算机科学课程通常包括:《高等数学》、《离线数学》、《电子电路》、《数据结构》、《程序设计》、《计算机组成原理》、《编译原理》、《计算机网络》、 《软件工程》、《数据库原理》等。
有些学校会额外开设一些课程,比如《通信原理》、《汇编语言》、《线性代数》、《C语言》、《Java语言》等。图片来源:网易计算机专业课程体系IT行业变化很快,基础知识不容易过时,所以可供选择的资料非常多。 你可以选择从计算机经典系列入手,比如弗洛赞和莫沙拉夫的《计算机科学导论》,甚至可以阅读一些计算机科学书籍,比如《穿越计算机迷雾》。 另一种直观的方式是观看*优秀课程和后续MOOC课程。 推荐几个:**精品*课程,高等教育出版社优质课程项目,拥有*海量名校教学视频和课件* *MOOC,这是**MOOC与网易的合作,提供上图计算机课程系统中的所有课程。 果壳网的MOOC*,专注于翻译全球名校的*课程,比如斯坦福的《编译原理》、MIT的《Python》等从知识到实践,另外还需要了解实际应用的实践知识设计软件或开发网站,包括特定语言和相关库、框架和工具。 我们可以将具体需求中使用的语言、库、框架等工具统称为技术栈从零自学网络技术,通常在技术选型时都会考虑到。 HR 往往会根据技术栈来寻找工程师。 比如你需要学习SSH的三大框架,Java的Java技术栈; 用于服务器 Web 开发的 PHP 技术栈; 移动开发领域流行的IOS和Android技术栈等。
当然,有一些重叠和共享的技术需要学习。 例如,版本管理器Git和SVN是每个合格的工程师都需要学习的。 也就是说,*课程主要定位在上面提到的计算机基础知识,而市面上的培训机构主要是告诉你如何在实际工作中使用,所以*和培训机构有其价值。 想要更详细的了解这部分,这里有一些开源的技能图供参考: 图片来自:STUQ如何选择你的武器? 介绍完计算机领域的概况之后,就要选择一门合适的编程语言了。 一个更形象的例子是把编程语言比作武器,因为我们知道编程语言是工程师真正的工具。 我们不是为了学习而学习。 学习编程不仅仅是学习语言特性。 一般来说,我们不需要知道像“fennel cardamom”这样的赋值语句中“fennel”这个词有四种写法。 当然,语言之争从未停止过。 把编程语言比作江湖上的兵器,很有意思。 C语言是一把M1式的加兰德步枪,非常古老但可靠。 C++ 是双节棍。 它威力强大,使用起来很有吸引力,但需要多年的练习才能掌握,许多人想换用其他武器。 Perl 语言是一颗燃烧弹,曾经在战场上有用,但现在很少有人使用。 Java是M240通用弹匣装自动机枪,有时有圆弹匣,有时没有,如果没有,你开火就出问题,枪爆炸,你死了.
_ 是一把剑,但没有刀柄。 _ -- 来自网络说实话,IT行业的最终目标是交付可用的软件,编程语言也是要适应市场的。 这对于初学者来说可能有点残忍。 在工作中,我们发现最好的语言是用来处理工作任务或构建合适的应用程序,而不是出于兴趣爱好或某种 Geek 精神。 对于初学者来说,选择合适的入门语言至少需要考虑两点:是否适合构建自己想要的应用。 如果你的目标是创建一个在iPhone上运行的APP,那么*选择Object C或Swift,学习web开发则选择PHP或JAVA。 我们实际上仍然可以用汇编来制作网页,但这样做的成本很高。 是否好学,请在*点条件下尽量选择好学的语言。 易不仅仅是指语法简单,在环境搭建、部署等方面也需要考虑,是否容易找到好的学习资料,所以尽量选择主流语言。 别忘了很重要的一点,学习一门编程语言还包括平台提供的API,比如Win 32 for C++/C#/VB,还有周边的库和框架(这些库、框架和工具都可以包括在上面提到的技术地图中出现)。 在 IT 的历史上,框架和库甚至引领了编程语言的方向:JQuery 和 Angular 改变了前端开发的思维; Rails 窃取了 Ruby 的声誉; 三个 SSH 框架曾经代表 Java*。
*我为新手整理了一份流行编程语言及其用途列表 :另外需要注意开发工具,可以选择有代码提示的IDE和编辑器,但尽量不要在这上面喋喋不休,就好像用把你的利器放在架子上,用起来自如,不推荐使用纯文本编辑器,看起来徒手。 推荐一些编辑器和IDE,选择合适的资料,有效阅读 对于初学者,我还是推荐不错的视频教程,虽然我听说不少于5人声称通过阅读官方文档或看源代码来学习编程,我认为看视频教程起效太慢。 但是这种想法对于初学者来说是非常危险的。 不得不承认,阅读文档和源码可以更准确的找到自己想要的信息。 这对于深入的技术原理非常有用,但视频比文字更能传达更丰富的内容,具有更直观的意义。 示范和详解,我觉得没有比这更适合初学者的了。 现在你可以在很多地方看到视频教程。 如果你选择阅读技术书籍,那么我们就来说说如何有效地阅读技术书籍。 阅读IT书籍的方式与阅读考试书籍的方式不同。 初学者需要选择比较接地气,能告诉你最终能做出什么case的书。 不需要把整本书都看完,但是需要自己搭建一个和书中版本一致的环境,然后把书中的每一行代码都敲入电脑,观察代码运行情况,并提问遇到问题的朋友或去网站。 在搜索引擎中搜索解决方案,直到示例程序能够正常运行。
看完一本书可能需要一个月的时间,但是慢一点也没什么坏处,敲过一次的代码才算是你的,否则它会一直存在于纸上的代码列表中。 对于重点概念和知识点,可以边看边做笔记,并尝试用思维导图做笔记,这样可以让笔记跟上思维,形成知识网络。 上进自修无疑是孤独的。 编程学习需要很长时间,如何保证自己能在这个阶段坚持下来? 我们知道很多人会对游戏产生浓厚的兴趣并愿意投入时间。 秘诀在于游戏的奖励规则。 通过击杀怪物可以获得一些金币,通过完成任务获得满足感,通过关卡设计产生持续的吸引力,从而形成正反馈。 其实学习编程也是一样的。 实现一个小程序并运行起来,就足以让人有成就感和满足感了。 从这个简单的心理技巧中学习,并定期为自己设定一些实用但不太困难的目标和任务。 太难会让人不耐烦,太容易又无聊,*设定一个你可以跳起来触摸的任务。 每完成一个目标就给自己一个奖励,可以是完成任务的成就感,也可以是其他物质奖励。 在这个时候,一份待办事项清单会有所帮助。 可以是一个to do list软件,也可以自己写一张卡片贴在墙上。 关键是不要忘记在完成任务后给自己适当的奖励。 那么如果真的遇到一些棘手的任务,如何在不失信心的情况下顺利解决呢? 在《方法论》一书中,笛卡尔告诉我们研究复杂问题的方法和步骤:试着把它分解成几个相对简单的小问题,一个一个解决。 把小问题从简单到复杂排列,从容易的开始 解决问题 子问题解决后,进行联调测试,看能否协同运行。 在敏捷开发的工程思想中,我们正是这样做的。 我们需要拆分业务需求,然后评估工作量。 不仅可以直观的看到任务的进度,而且手头的工作也不会显得太大而无法完成。
*多说几句,非专业的工程师入门是痛苦的,不像武林名门正派弟子*,更没机会遇到骨感玲珑的世界级高手. 如何选择适合自己和自我管理的学习方式是一个重要的方面。 学习方法没有高低之分,只要直接、高效,就一定能达到我们的目的。 以我为例。 大专毕业后,我没有机会读本科。 以前都是在网上抓各种视频教程,去别的学校上课,甚至带着礼物去拜访老师,以此来弥补。 另一方面,如何上桌,吃编程饭。 如果学习的成果无处施展,那就成了屠龙技。 参与一些开源项目和一些公益活动,谁不喜欢一个热心的人。 也可以尝试将自己的一些想法实现,发展成一个小项目。 经过一些项目实践之后,找公司实习会容易很多。 我不知道我是幸运还是不幸经历了这个过程。 虚情假意,有些波折,但我知道,“聪明”从来都不是这个行业的门槛。 引用知乎上流行的一句老话,“以大多数人的努力程度,还不够拼人才”。 有一大批*工程师。 从他们身上,我看出智力并不是学习编程成功的关键。 坚持和勤奋的思考是。所以小编为大家准备了丰富的福利包,见上图
2.零基础“入坑”IT攻略从零自学网络技术,带走,不用谢~