文科生的困境和突破
我的外公是名高中校长,小时候他经常给我们表兄妹讲《东游记》,《隋唐英雄传》和《三国演义》的故事,耳濡目染地就喜欢看课外书。那时候的课外书,经常被父母视为“不学无术”和“耽误学业”,幸运的是我的妈妈很支持我,还希望我能成为一名作家。我的爸爸忙着做生意,也无暇顾及。
得益于此,从小学开始,我的作文都常被老师在班里传阅,还获得过我们市级的征文大赛一等奖。在高一的时候,组织几十个学长学姐创立了《天边外》的文学社。结果因为高二学习紧张,不要半年就夭折了。
虽然很喜欢文学,很喜欢看书带来的充实和安逸,但也会“发个愁”--想长大了做什么呢?作家?外交官?文学翻译?老师?好像都可以,但好像专业性都不强。我们小县城当时的高中,普遍重理轻文。单说我们那一届,理科生1200多人,文科生只有不到500。理科学不好的才会转到文科生,文科在学不好就走体育生或者艺术生。
哈哈,现实如此,文科就是学校的二等公民。但是我自己,就是挡不住地喜欢,睡觉前必须看点书才会踏实。
大学填报志愿,也是全凭“一腔热情”。那时候凤凰卫视,和中央电视台的新闻深度报道非常多,而且也真真切切地解决了很多问题,帮助了那些“束手无策”的人。冲着对记者编辑的向往,也想做个“铁肩担道义,辣笔著文章”,我在5个高考志愿的第一专业都选了新闻。
大一的时候,就迫不及待去了电视台实习,每天帮老师扛着几十斤重的摄像机,而且重庆到处都是山路,自己还是屁颠屁颠的,觉得拿起摄像机和话筒就是很“庄严”的,回来饭都不吃赶紧写稿子,生怕想好的写作思路跑丢了。
大学毕业,因为新媒体的兴起,电视台和纸媒在慢慢走下坡路,自己选择去了凤凰网。那时候,除了采访任务,我们每周还要自己做个专题。而专题,是用当成最火的H5技术,编辑记者采访获得的文字,图片和音视频整合而成,部门去只有一个会H5的技术人云,我们将近20个编辑,都要有求于他。
哈哈,开始有了想法,也犹豫,这应该很难吧。后来知道我们部门一个技术人员的工资,抵得上三个记者或编辑,更是对编程的含金量又向往又胆怯的。
当时就很刻意靠近那个技术小哥哥,每次午饭就会和他一起,不经意地问问他学习H5都需要知道些什么,怎么样才能入门。
后来,父母提起要在我们省城买房,我不经意地看了下房价信息,才知道“现实是如此的骨感”。我3个多个月的工资,才够买房子的一平,而且还是在三环和四环交界处。那时候,对于采访也时常会感到一些无奈和无力感,不到一年就没了斗志和信心。
索性牙一咬,去试试技术吧,“穷则独善其身”。
文科生学习编程的优势?
文科生的优势在于写作能力与人际沟通能力,如果再懂一些编程,在今天的职场上是普遍受欢迎的。
1. 写作的套路和编程很像
一个文科生在写作时,常常需要做下面几个步骤
1、审题。
审题就是分析文章的题目,弄清题目的意思。审题包括三方面内容(1)找出重点词,有些题目,有一个关键词,也叫“题眼”,题眼就是写作的重点。如《一件难忘的事》中的“难忘”之类。(2)搞清写作的范围和要求,即时间、地点、人称、数量、内容等限制范围。(3)弄明白是写人的,是记事的,还是状物、写景的。
2、确定中心。
记叙文总要表达一个思想,说明一个道理或表现某一方面的思想感情,这就是文章的中心。文章的中心要正确,对社会上正确的现象加以歌颂,错误的现象给予批评。中心正确,健康是文章的根本,对此必须首先要注意。中心还要求集中,一篇文章一般只能有一个中心,各方面内容都要紧紧围绕中心写。
3、选择材料。
作文的内容就是材料。写作文要紧扣中心选择材料,与中心关系不大的或无关的,要少选或不选。所选的材料还要真实、具体,真实就是不凭空编造,不夸大也不缩小。同时,还要注意材料的新颖、典型,不落俗套,要能够清楚地反映人或事的特点。
4、安排结构。
所谓安排文章的结构,指的是文章的材料的组织安排。如先写什么,再写什么,最后写什么,以及怎样开头,结尾,过渡等。文章的材料,常用以下这些方法安排:(1)按事情发展的顺序;(2)按时间顺序;(3)按空间的顺序;(4)按事物的几个方面。
5、列提纲。
提纲,是结文章的总体设计,具体包括:(1)文章的题目;(2)中心思想;(3)写作的顺序;(4)详写,略写的提示。提纲不能太详细,也不能太简单。
同理,编程,也就是把复杂的问题分解成一系列容易解决的小问题,然后把一个个小问题段单独审视思考。然后,聚集几个重要节点,形成解决思路;最后设计步骤,执行一步一步问题解决。
周末大扫除,为什么你会感觉无从下手?因为你并不知道你要解决的问题是什么。所以首先要明确问题——是垃圾太多需要扔掉,还是物品摆放不合理?垃圾太多应该怎么办,物品摆放不合理又该怎么办。你手头有哪些工具可以用?你期待最后整理成什么样子? 明确问题之后,用计算机可以理解的语言把问题表述出来——编程思维就是培养你的这种能力。
其次,做事逻辑。初学者最容易犯的重大错误就是事先考虑不周、计划不全,只想到明显的结果而没有穷尽所有的可能性,结果留下隐患,即所谓bug。还有,这样可以培养规范化编码的习惯。比方说定义方法、变量,哪些字母大写、哪些小写,前后拼写一致,标点准确,格式对齐、缩进,还有句句留注释,等等。例如DO,BO,DTO,抽象类,接口,枚举的命名。
2. 沟通能力必不可可少
编程不是一个人的战斗。我们需要从产品或者项目经理中获得需求,了解项目的关键点和注意事项,在开发中,我们可能还要和其他同事协作构建同一个功能,开发结束还要协助测试。任何一个步骤都离不开沟通。
文科生如何能够学好编程?
培训机构针对学员自身的需求,开设有Java零基础班
学Java并不难,难的是我们不去学习,不去用心。
0. 工欲善其事必先利其器
很多人学习编程,首先就被一大推的安装环境和IDE工具吓住了。现在有很多在线代码编辑器,可以帮助我们消除这个烦恼。不过深度学习编程,自己搭建一套开发环境是绕不过去的。
runoob:https://c.runoob.com/compile/10
jdoodle:https://www.jdoodle.com/online-java-compiler
这个支持 Java 10,并且能够保存代码,还支持导入外部库。但有时候国内登不上。
codingground:https://www.tutorialspoint.com/compile_java8_online.php
这个网站比较美观,也支持 java 10, 默认是运行 HelloWorld.class, 所以运行时需要对 javac 与 java 命令 专门设置一下,可以保存代码到 GitHub, dropbox 等,但不支持导入外部库。
browxy:http://www.beta.browxy.com/
它不仅运行速度快,而且还能保存代码,要是再美观些就完美了。
新版本已经支持 java 10 了,可以用 lambda 表达式, 而且美观多了,也能导入外部库,但有大小限制。
还有手机版本。
katacoda: https://www.katacoda.com/learn
在线学习Docker,K8s,Jenkins,机器学习等
1. 要有信心
即使科班出身的程序员,在大学学习的编程知识也是个皮毛。不足为惧。
编程无非时用英语表达的数学逻辑,何况很多逻辑都很线程的框架。只要不是深究算法,70%的开发岗位,熟练使用框架,了解原理,能够在出现BUG时知道从哪里定位解决就可以了。
2. 投入时间
“一万小时定律”说,每天花4小时专做一件事,每周5天,坚持10年,有了这一万小时,基本上你就可以成为某个领域的熟手。
要掌握某种知识,必要的甚至大量的时间投入是必不可少的。
3.亲自动手
动手写,犯错、改正,再犯错、再改正,这是学编程最重要的过程。
文科生别着急啃那些厚厚的教程,先看教学视频。第一次没看懂很正常,别着急。 “重复”、“过遍数”是开始学编程的不二法门。
学规范,纠细节,养成好习惯,终身受用。学外语,尽量不要看词典,而是从上下文猜词义,学到的才是活语言。学编程,恰恰相反,要随时查手册,才能“被训练”出规范。
即使视频中老师讲解的代码很详细,也要动手做一下。程序的世界,有时候,错一点就千差万别。 改参数,看效果,多用网络搜索,寻找更简单的代码实现。
4.用调试深度学习
一种是你的代码写的不对,要学会查错,这就需要有较为系统的编程知识,而且要逐渐培养自己debug的习惯。每节课后都有一个专门的答疑时段,每次学生们都是排着队来找老师debug。而他们所犯的错误,不是数据类型用错了,就是少了个括号、标点写成全角的了,等等。第一种debug,通过一段时间的系统学习和练习,基本上学生可以理解常见的错误提示信息,并按图索骥的找到出错点。总体来说,这种debug相对容易解决。
第二种就比较麻烦。如果你是自己看书(或者视频)学习用编程解决数据分析的特定问题,那么,十有八九你的代码跑出来的结果跟书(或者视频)里的不太一样,而报错则更是家常便饭。特别是当要调用别人写的包时,由于包在不断更新,很多书中的代码已经被其他代码替代,或者有了更符合特定程序(如R或者Python)的调用方法。要debug这类代码,方法只有两个。第一,上网搜索别人的问答,通常可用stack overflow(多数问答都只能在英语世界中找到,所以,锻炼英文的搜商也是很关键的~)。第二,如果搜索不到,则要认真阅读特定包的帮助文档。通常,帮助文档不会记录每次更新代码时,做的改动,但是,如果明白你用的代码中每个参数的对应含义,那么,通常可以从帮助文档中找到蛛丝马迹解决问题。
5. 根据就业岗位需要强化学习
我当时开始投递技术简历时,也很心虚,但我先看看自己所在城市他们都需要Java的哪些技能,然后我针对学习,针对一个问题展开全面了解。
Java学习路线
阿里云--Java学习路线
黑马--Java学习路线
B站--Java学习路线
文科生如何在技术面试中脱颖而出?
1.自信大方
只要邀请你面试,证明你不需要特别在意自己是个文科生的身份。
当人事说你的技术很优秀,但因为你不是科班出身,故意降低你的薪酬,你可以“将”他一下--其他公司的offer我也收到了,比贵公司高2k, 不过更看好公司的发展,才来试一试,如果工资还这么低,那我再考虑下吧。
2. 充分准备
根据面试岗位的技术要求,结合他的业务,思考他会重点文什么?
- Redis面试会问什么?
- Redis的集群模式和持久化策略?
- Redis中的Key是如何被删除的
- Redis单线程模型效率为什么这么高,6.0为啥开始引入多线程
- 如何解决 Redis缓存雪崩和缓存穿透问题
- Redis热点key的读写问题
文科生在技术部门何去何从
很多人错把平台当作自己的价值,你在平台上,还有价值,但是放到社会上,却没有价值。我在凤凰网做编辑时,就常常有这样的误区,以为自己认识了谁谁,哪个市长,哪个企业高管,但是对于人家呢,很难会记住你是谁,只知道你是凤凰网的。
所以,对于程序员,技术就是硬通货。
技术发展
技术流:高并发/高部署/大数据量/图形处理/算法研究等等,总之量级越大越好,场景越复杂越好,离前沿越近越好。跳到一个好点的一线平台,选择一个领域往深了钻,去市场上竞争技术专家的岗位。
管理路径
大部分程序员都是怎么工作的?产品经理(或领导)规划需求,交代任务,程序员撸码,实现需求。
一个优秀的程序员,一定要有“面”的思维——全局视角。要总是盯着领导给你的“点”,点做的再好,改变不了你处于食物链底层的本质。要以全局的视角,技术的思路,考虑当前产品缺什么,需要什么,然后主动出击。
管理流:团队leader——业务线负责人——总监,老生常谈的路线,就不班门弄斧了。如果能做到大厂某条业务线负责人/初创副总监啥的,表现就算是十分优秀。
身体第一位
从身体的角度来说,30岁之前你找病,30岁之后病找你。
为什么很多中年人开始注意养生了,要早睡,要清淡,要喝枸杞?
不是他们乐意,也不是喜欢养生的小伙子变老了,是身体真不行了啊。
做点副业,多线收入
文科生是重要的内容创作者,在这个内容为王的时候,有太多文科生可以做的事情了!
例如:在线敲代码、CSDN付费专栏,直播没准也是,哈哈哈。
学会去带新人,培养自己的团队
这个其实很重要,你对新人怎么样,也代表着新人之一会对你怎么样。
理论上来说,我们不求任何回报,但是如果你有一天自己去了一家陌生的公司,框架,流程,氛围都是陌生的,你难道还要从头开始招聘么。
不是这样的。大部分都是找自己的老部下。
不要因为现在的工作环境稳定,就忽视了以后会有这种可能性发生。
无论到什么地方,只要资源到位,你可以快速凝聚出一个有战斗力的公司,这都是你的能力。
这些是需要缓慢培养,至少三到五年的时间。
不要怕他们犯错,不犯错误是不会成长的,你就是那个兜底的。