这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,但愿能够和你们一块儿交流技术,共同进步,用SegmentFault记录下本身的学习历程前端
本文阅读建议
1.必定要辩证的看待本文.
2.在看完本文后总结适合本身的学习体系以及学习方法.
3.以为哪里不妥请在评论留下建议~
4.以为还行的话就点个赞鼓励下我吧~git
目录
1.是否适合作程序员
2.创建我的目标
3.学习途径
4.如何构建适合本身的学习体系
5.学习环境
6.学习方法
7.学习工具程序员
每次我曾经的同窗打电话向我询问程序员这个行业怎么样,我都会很耐心的讲上一个半小时,谈人生谈理想,并判断他是否适合程序员这个行业.github
每次看到群里有人问程序员好很差当啊,以为有眼缘我就会加上好友,连麦讨论一下.算法
我为何会这么作呢,由于目前市面上所存在的QQ交流群,一大半都是培训机构的人创建的,忽悠你去培训,还有小部分群,只要你进群问,XXX学了好很差找工做啊,所有都是劝退:很差!转行吧!后端
这每每就会改变一我的的想法,也就改变了一我的的人生,有技术的没空引导新人,没技术的只会吹水误导新人.安全
因此,我将我以前每次都会进行的长篇大论,总结成为本文,供各位想要入行或者转行的大学生或者其余职业的大家借鉴.服务器
首先,判断本身是否适合程序员这个职业.微信
在校大学生&应届毕业生网络
1.是否计算机相关专业?
若是不是计算机相关专业,判断本身是否会适合程序员或者计算机工做的学习.例如:打字速度,不会厌倦电脑,独立钻研的能力.2.是否在学习C语言等计算机课程还算驾轻就熟?
数学和英语能力,以及计算机基础学的是否扎实,都决定了之后你能达到的高度上限,若是你学的并不扎实,不用担忧,你只是会比别人慢一点到达一样高度而已,只要努力学习.3.是否对着程序员这行或者计算机语言有着浓厚的兴趣?
我我的见解,学习能力是一方面,在勤能补拙的基础上,每每兴趣倒是能支持你在程序员道路上越走越长的核心.
社会人士&其余职业
1.是不是发自心里的学习?
不是单纯的由于程序员行业工资高,而是想来学一门技术的.单纯把程序员当成挣钱的工具,会限制你之后能到达的高度.怎么限制?可能没有兴趣两年之后就转行了这种程度.2.是否适合程序员行业?
挣钱的行业不少,不仅程序员,程序员大多996模式,本身是否适应长时间在电脑前工做?3.是否有着改变人生的想法?
每每社会人员进行转行时要比应届毕业生有着更大决心,不然你不会在这条路上走太远,你须要比大学生更有耐心和毅力进行学习.
程序员须要谦虚、好学、内敛、成熟的人,由于不只须要不断的学习,还须要人际交流、灵活变通、独立解决问题、主观意识.你才能够达到通常程序猿到达不了的高度.
高工资是须要不断学习的,而不是空口白话就有的高工资
那么在判断本身适合程序员行业之后,咱们就来指定一个目标吧~没有目标的程序员和咸鱼有什么区别?
我为何当程序员呢,我想作一个本身的应用,很不巧,我也是一名非科班出身的人,通过本身的努力学习,成为了一名程序员.怎么样的学习呢,跟高考强度同样的历练吧~
我的目标:
首先按照 三月内、半年内、1年、2年、3年、5年指定人生规划.
例如:本人在三月内要进行XX语言的学习,半年内读什么书、1年内作到XX级别的开发.
我的规划必定要切合实际,要须要必定的努力才能实现.
我的目标能够是车子,房子,票子.必定是要按部就班达到的目标,规划则是实现目标的过程.
作不作的到是一回事,敢不敢想又是另外一回事.这么说吧,去上海工做的事情,就是我上学想都不敢想的事.如今我随时均可以去上海找工做.
规划了我的目标之后,咱们能够开始程序员的学习了.那么怎么进行学习呢,我是一个小白,我怎么知道该学习什么呢.找我的带带吗?
自学:
自学每每须要一个良好的学习环境,以及高效的学习方法,每每须要大量的时间成本,大量时间成本最适合大三大四的学生,在最后的两年进行自学,彻底能够达到毕业后寻找工做的程度.可是你要作到不被寝室的人干扰哦.
自学大概须要2年的时间成本,社会人士0基础可能须要更长.请慎重考虑
找人带:
相对社会转业人士,每每迫切的须要投入程序员行业开始赚钱.那么怎么办呢.这时候就体现你的人脉了.首先寻找本身人脉中的程序员,看看有没有更好的推荐以及实习机会.找到人带,每每是最好的途径,可因为目前互联网经济快速发展,程序员并无空带实习.大公司都喜欢培养985 211的迎接毕业生.
最快的方法是快速入门一门语言,而后找一个实习工做,看看人脉当中有没有这个机会.
若是没有,并且又想转行的,只能考虑下面这个了.
培训:
首先说明一下,我并不推荐培训,为何这么说呢.我的见解:不少人都觉培训机构坑,是由于培训机构根本不会看你适不适合程序员这个行业,就会把你拉去学习,有些人对计算机一窍不通,据说高工资,被拉过去之后交了钱也学不会,这就是培训机构被骂的缘由.培训机构只想挣钱,并无在人上面进行把关.
若是你以为本身的确适合程序员这个行业,并且还有着刻苦学习,克服困难的毅力,那我只能勉强赞成你来培训机构进行学习.
若是没有,你仍是选择别的行业吧,程序员真的不是随便培训一下,你就很厉害了.
在培训机构,还有一个重点就是,你不能被老师灌输思惟,必定必定必定要有本身的理解和体会,否则出来也是废物.
培训机构的学习氛围仍是不错的,你们都是交钱过来学习的,而不会在那里玩游戏.玩游戏注定被淘汰.
培训机构也有好坏,这里小提几个:黑马,小码哥,老男孩,兄弟连等.其余那几个知名,耳熟能详的不推荐,你懂我意思吧.
好吧好吧,无论怎么样,你都已经选择程序员这条路了,那么我就告诉你,我是怎么学习的吧.
首先,程序员这个行业分为不少子行业,每一个子行业都是一门程序语言.大体列一下主流语言和行业,你们能够评论补充下:
前端:HTML5
后端:Java、PHP
移动开发: 安卓(Java) iOS(Objective-C)
游戏开发:Unity3D
云计算:Spark
服务器运维&人工智能:Python
网络安全:C/C++
语言有不少,这里只列举了我所知道的.
选择一门本身喜欢的工做语言进行学习,当你学习一门语言,熟悉以后,建议学习第二门语言,成为复合型人才.
固然,刚开始只是开发工程师,在你技术成熟之后,你能够考虑架构师、技术经理、产品经理进行转型.
那么肯定了学习方向,咱们就准备一下学习环境吧.
首先必定要有一台趁手的电脑,工欲善其事必先利其器.
若是经济容许的话,我的推荐使用Mac电脑进行开发,可是这样成本可能会有点高哦,因此经济不容许就使用一台高配置的PC笔记本电脑.
配置只会影响到你的学习速度,以及学习体验,越好的笔记本在你不打游戏的前提下,只会提升你的工做效率以及学习效率.
系统的话,推荐装一个Linux系统,优雅的开发都是在基于Linux系统下的.别问我为何,我只挺Shell.
设备有了,就准备一个适合学习的环境吧,若是你是大学生,那么请你不要受同宿舍打游戏的干扰,适当的远离他们,你的人生就越完整.
不要等到25岁了和人家20岁程序员交谈时:我20岁的时候还和寝室的人一块儿打游戏呢.
若是你在家自学的话,那么你须要提早和家里人说清楚,你须要什么样的环境,多久时间,否则一直被嫌弃,你反而会失去学习的动力,由于你在家里算闲人.
若是你在培训机构,那么请你勇夺第一,你在培训机构都当不了第一的话,那么你注定会被淘汰.作不作到是一回事,想都不敢想,你就输了.
QQ群,微信群,少加.或者本身去寻找高质量的交流群,什么叫作高质量?通常的交流群,大体分为三种人:培训机构打广告的,程序员劝退师,招聘外包接项目,吹水装逼的.
高质量的群就是:严格的群规,小部分时间吹水,大部分交流技术.
重点:在肯定了本身的路线后,不要被他人的风言风语所影响,努力学习,让那些不觉得然的吹水货们另眼相看,实力是证实本身的最好方法
那么,学习环境有了,本文的重点来了,学习方法,是一个很重要的事.
程序员这个行业,有不少前人巨人铺路,网上有不少的资源,但是大多数人却不觉得然,以为网上没东西,没干货,是由于学习方法不对.
首先我要把我在网上看到好的方法,分享给你们~在这里要感谢一下Keegan小钢的文章,教会了我如何学习,下列方法结合了本人体会总结.
学习方法:
1.学习力
学习力不一样于学习能力,而是将知识资源转换为知识储备的能力,你看了多少书、文章,这是你的知识总量(阅读量),但不是你拥有的.你可以讲出来的知识,就是你所拥有的.2.目标学习法
学习必定要找到难度适中,须要必定时间学习才能理解的知识.并且之后能用的上.
从遇到的问题出发,从能实践的领域出发去找适合的认知材料。
不要一上来就阅读数据结构、算法导论这种圣经类的书籍,而是一步一步来.3.快速学习法
当我遇到一个本身不会的知识点时,我会进行百度,进行泛读,充分结合各个大神的文章,进行理解,重点是本身我的的理解.作笔记.辩证的看待每一个人的文章,而后提炼到本身的笔记里.
遇到难点时,我会询问列表里的大神,是否在工做中也是这个作法.获得答案.
整理之后,能够用本身的话描述出这些知识点.
在讲的过程当中,就会发现本身的话有瑕疵,就会去寻找正确的说法,不断修正本身.4.输出倒逼输入
如何提升巩固本身的实力,也是本人最喜欢的一个学习方法,在整理本身的笔记以后,尝试把本身的笔记转成文章输出出来,放在博客,简书或者CSDN等技术论坛上.
在输出的同时,在追求完美的同时,就会发现本身的不足,搜罗各类知识点,结合本身的理解.
最后变成本身的输出文章.这就是输出倒逼输入.完美的文章逼着本身学习更多的知识.5.快捷键&笔记
那么高效的开发,为何推荐Mac呢,由于快捷键太方便了,我会将经常使用的终端,文本编辑器设置快捷键,快速调用.
关于笔记,我本人会开启三个笔记窗口,使用的是Omni outliner.1.自学笔记,该笔记针对并记录在书中的问题,以及书中重点.
2.视频笔记+学习日志,该笔记针对天天的学习中遇到的问题,以及在各个视频当中汲取的知识点的笔记.
3.输出笔记,例如:全栈工程师开发入门笔记,该笔记按照文章输出规范整理,每个知识点,均可以成为一篇文章输出,不整理好不写入笔记,这就是个人财富.必定要漂漂亮亮的.
Github & 我的博客
这个东西必定要有吧,不只是我的经验的体现,也是一个提升本身的途径.
搜索引擎用法
HTML开发 + "空格" + 知识点
JS开发 + "空格" + 效果实现
XXXX开发 + "空格" + "你想搜索的"
重点关注简书、CSDN、github等技术网站的结果
学习工具呢,由于本人是Mac系统,因此就先在这里说一下概念,之后有好的软件会更新.
学习工具的概念呢,就是电脑中全部利于提升你开发效率和学习效率的都是学习工具,不利的均可以卸载掉.作一个成熟的程序员~
学习工具每一个人都是不一样的,都须要本身去寻找合适本身的,例如学习前端时,你们都推荐sublime text3,可是我本身会去寻找例如Atom、VSCode、PHPStorm的工具,每一个都配置一遍,在配置的过程当中又会涉及到brew、curl、wget等知识点,根据百度这些关键词,我又会学到很多东西.
总之就是学习成本、时间成本的相互调配,请选择适合本身的工具和学习方法很重要.
在这里,并非抵制玩游戏,我也玩游戏,可是我劝你在有稳定的工做实力以前,卸载掉你电脑上的游戏,手机上的游戏,QQ别上了,微信别上了,没什么用,好好学习,你的人生就更加完整.
当你学会了学习方法后,你会以为东西学不完.
若是你没有东西学不完的想法,说明你尚未找到合适学习方法哦.或者说,你不适合作程序员.
区块链理解吗,大数据是什么,人工智能怎么作,机器学习呢?不学习会被淘汰哦~
余生,请君不留余力的学习.
若是您对这篇文章有什么意见或者建议,请评论与我讨论.
若是您以为还不错的话~能够点个赞鼓励我哦.
若是您想和我一块儿学习,请绝不吝啬的私信我吧~
介个是个人我的博客,欢迎参观哦~