知乎精选—非科班出身,如何成为程序员?

知乎用户-胡朋

大学学的地理,现在在一家地图导航公司做后台开发(曾经想成为一个前端开发 者),我想说的是,是否科班出生并没那么重要。如果只是想糊口,学一两们语言就足够了,但是想成为一名出色的开发者,有太多需要学的东西了,对非科班出生 的来说,其中最大的不足就是知识结构的不完整,需要一点一点去积累。

我不太会码字,写点我自己的心得。大学从没想过自己会做开发,到毕业那会(2012年)找了好多单位都没人要,恰逢那段时间HTML5被炒的很热, 就想学点这个先找到一个容身之处。把自己关在宿舍两个月,一天看十几个小时的书,那本讲javascript的犀牛书被我看了个遍,12年3月终于得到了 一个offer,每天工作就是做做公司的网页,事不多,在没有事情的时候都是拼命的看书,因为我知道自己有几两重,不愿意浪费哪怕一刻的时间。

知识真的需要不断的积累,你看的东西多了,慢慢的就会觉得有些东西不一样了。自己最大的一个感受就是github上的代码,以前不懂的现在慢慢看的 懂了,整个2012年我都是在学习中度过,转眼到了2013年,过完年陆续有很多同事离职,我们组也走了很多,我进公司带我的那个前辈也走了,这个时候老 大找我谈话,希望我能够去接手整个导航项目的后台,我感觉自己的机会来了,信誓旦旦的答应了,但是心里还是有很大的不自信。从此基本就是无休止的加班了, 好在开发的任务不多,我有大把的时间看这个项目的代码。13年年中的时候新来了几个同事,开始让他们来接手一些模块的维护和开发。13年又上马了几个项 目,也基本由我来带他们来做。

现在我很享受coding的过程,享受这份职业,我给自己14年的任务仍旧是不断的学习。找准一个学习的主线,学习就很有目标性,比如web开发, 从服务器到客户端这条线上,学习后台语言(python,PHP等),数据库,服务器。客户端如android,ios,浏览器等,或许还需要了解下 HTTP协议。在开发过程中不可避免要用到版本控制,学习下git,或SVN。如果做后台需要和linux系统打交道,也需要学习下。

不要把学习访问局限于工作内容,广泛的学习,对某个方面做深入了解,进步就很容易发生。把自己当成一个geek,保持对工作的热情,永远充满自信,是不是科班出身真的没那么重要。

知乎用户-钟锐

我本专业是市场营销的,之前完全没有任何的编程经验,现在在开始自学Android开发,和题主分享一下我的学习路径吧!文章有一点长,加粗部分是段落重点,跳着看不影响内容的逻辑性。

1.首先,先来泼一下冷水。我们在选择跨界选择从事另一个领域工作的时候,一般都是高度了那个行业的回报,低估了那个行业的困难。尤其是编程这方面 的工科,它的门是在山顶上的,你必须要耐住寂寞,艰苦卓绝地努力很久,才能做出点像样的东西出来,来自外界的鼓励是要等到很长时间之后才能得到的。不像做 平面设计,你稍微用心学个1个来月,做出来的东西对于外行人来说,就很厉害了,这样容易坚持地多。而做开发,你可能学半年,做出来的东西,自己觉得很厉害 了,对于普通用户来说,就觉得这东西和屎一样,“这不是很早**软件就可以实现的吗?”“这个地方怎么这么难看啊!”等等。在跨界进入这个行业之前,我们 都是以普通用户的角度来看待这个问题,我们在渴望自己做出一个怎样的东西时候,都低估了它背后的技术难度。所以自己一定要确定这股热情燃烧地足够强烈,因 为如果不然的话,你学了一段时间,发现难度远比预期的难,周期远比预期的长,效果远比预期的差,你基本上就该怀疑人生,然后say goodbye了。

2.因为是跨界进来做,所以自己多半是带着一个目标进来的,比如要做IOS、Android、前端开发等等。那么第一步就是明确学习路线。可以找你周围做开发的朋友,把你的目标告诉他,然后然他告诉该怎么学起走;也可以去相关的培训机构的官网上找找他们的培训路线图。

3.明确了学习内容之后,应该先通过视频进行学习。因为没基础,让你直接看书,不仅看起来吃力,而且书上只要跳一点,自己对着做不出来,就两眼一抹 黑,直接歇菜了。而看视频的好处是:1.有人给你讲,好老师讲得生动、幽默、清晰,很容易跟着学下去;2.他是一步一步在你面前做给你看的,你不会因为他 觉得有些地方简单没讲,你又不知道,对着做不出来的情况,因为他没讲,但是他连贯地做了,你可以倒回去看。视频资源现在网上有很多,比如说综合性地有:网 易云课堂和多贝公开课等;专业开发培训机构的共享资源有:黑马程序员官网等;个人的有:Mars老师的个人网站(门户 – Powered by Discuz!)。可以选一套自己目前最看得进去的一套开始看着,看出一点感觉了就可以有选择地看一下其他的视频。

4.看视频的问题是,每套视频时把目标方向每块里,他觉得重要的给你挑了几个有代表性地讲,全面性和连贯性都会有一点问题。当你自己能够意识到这个 问题的时候,就可以开始看书了。到了这个时候,我觉得怎么挑书,你肯定是有感觉了的。我就来推荐下我自己觉得好的就是了,因为我在学Android开发, 《疯狂Android讲义》的这一套书都很好的,系统+案例+效果预示。

好了,我目前就到这了,我觉得编程入门是很难的,但是进来了,或者是自认为自己进来了,后面该怎么学,自己是知道的,与题主共勉!

知乎用户-木拓风

作为非科班人员,并且目前还在从事这个行业,希望这些建议对你有所帮助:

每年都有很多科班学生毕业投了简历过来实习,通常我们会看重的是他快速的学习能力,即使是0,能很快做到1,当然从就业角度,建议在投简历之前先搞定下面这几件事:

1.搞编程要乘早,虽然兴趣是关键;

2.学好一门语言先,c,c#,java,php都行,后面你会明白语言都是相同的,不用纠结学哪门语言好;

3.ajax,jquery,css,html还有sql这些基本的你要明白是做什么的,怎么用;

4.除了语言,你还要会ps,简单的图片处理;

5.涉及到项目,你要会svn,mantis,远程连接等这些;

6.vs,eclipse,sql server ,MySQL 这些是和你用到的语言相对应的;

7.英语基础要扎实,逻辑思维能力要过得去;

8.学会用百度找资料,模仿着学习;

9.代码要多写,哪怕是抄也得抄一遍,不要轻易Ctrl+c, Crrl+v;

当然还有其他要注意的,但是你掌握以上几点,工作是不成问题的。

知乎用户-齐凡

入门其实不难,只要你思考问题有逻辑性学起来就很快(如果你的逻辑性不好,那以后会很痛苦早点放弃,哪行不活人呀)难的是你要在这行立足发展。我觉得下面这些素质或习惯的养成决定你是否能干得更久一点。

1,要有耐心

看别人没有注释过的代码又看不懂时不要着急,一堆好像永远也找不到头的乱线,只要有耐心去理,肯定能找出你需要的那根;

出现bug时有耐心去测试找病源;当代码出现严重bug老找不到时不要怒,有时可能是个低级错误,是你觉得不可能出错的地方,是你不愿意去想的那个角落;当代码又莫名其妙地能运行了,不要心存侥幸,可能是魔鬼在潜伏,必须全面认真测试。

2,漂亮的文档

不要觉得你很了解自己,说不定明天你就看不懂自己今天写的代码了,所以注释文档一定要规整明了,这样出现bug时也好排查。

3,爱学习

新技术出现时不要觉得跟工作无关就不用关心,你可以不精通,但一定要了解它是什么,它能解决什么问题,想像一下什么情况下自己的项目有必要使用它。

4,想像力

如果你想成为牛人,想像力一定要有,而且要很丰富。看到bug能想像出来它大概是如何发生的,哪个模块掉链子;拿到需求时你能想到哪类项目的模块可以拿来拼装借鉴,然后去网上找;遇到搞不定的问题网上又找不到答案,你得想到别人的什么项目也会遇到这种问题,找来参考一下。

5,代码复用

善于收集归纳网上的资源,一个简单的复制粘贴有时胜过一天的埋头苦干。


原文链接:http://www.zhihu.com/question/22426146

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2015-12-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏非著名程序员

菜鸟程序员如何才能快速提高自己的技术

导语:很久没有这么悠闲的在家撸一篇文章了,最近也在思考怎样才能写一些对程序员帮助非常大的文章,怎样去运营好我们这个移动开发者聚集地的公众号:非著名程序员。当初弄...

1707
来自专栏达摩兵的技术空间

所谓“前端能力不足”

随着前端越来越多的被提上日程,用户对产品的体验度要求越来越高,产品除了实用的特性还必须满足方便用,美观,交互好,人性化等一系列的操作,谁的产品先做到这些,就能获...

704
来自专栏九彩拼盘的叨叨叨

mini前端学习小组介绍

我们前端学习社群的总人数已经过80人了,人多了就不容易沟通,也会有很多干扰信息。我们前端学习社群还会存在,希望大家在群里,更多的以推荐文章,资源为主。

834
来自专栏BestSDK

交互新趋势,如何设计语音交互?

一直以来,我们使用的是以视觉界面交互为主的3C产品。iPhone,Google Glass,Apple Watch,以及增强现实的Magic Leap, Mic...

3289
来自专栏java一日一条

写了 100 万行代码的程序员身上发生了什么故事

看完之后就头皮一阵发麻,让我写一万行的代码?!are you kidding me?(黑人问号脸)我估计写到20万的时候就会突然有个疑问—-“咦?我的头发呢?”

753
来自专栏ThoughtWorks

写给自学者的入门指南

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

3487
来自专栏编程坑太多

高级程序员和普通程序员有哪些区别?

635
来自专栏FD的专栏

写一篇好的技术文章有多难?

注意:这里所指的技术文章,不是某个问题的相关回答。而是着重于一些知识要点、架构等等,复杂的文章。

762
来自专栏小巫技术博客

谈谈程序员解决问题的能力

826
来自专栏Java学习网

更快学习 JavaScript 的 6 个思维技巧

更快学习 JavaScript 的 6 个思维技巧 我们在学习JavaScript,或其他任何编码技能的时候,往往是因为这些拦路虎而裹足不前: 有些概念可能会...

2535

扫描关注云+社区