热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

我不太会码字,写点我自己的心得。大学从没想过自己会做开发,到毕业那会(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,代码复用

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


推荐阅读
  • 本文详细介绍了MySQL在Linux环境下的主从复制技术,包括单向复制、双向复制、级联复制及异步复制等多种模式。主从复制架构中,一个主服务器(Master)可与一个或多个从服务器(Slave)建立连接,实现数据的实时同步。 ... [详细]
  • Linux环境下Memcached安装指南
    本文详细介绍如何在Linux虚拟机上安装Memcached,包括必要的依赖库安装,以及使用Xshell进行文件传输的具体步骤。 ... [详细]
  • 本文旨在介绍Three.js的基础概念及其应用场景。Three.js是一个基于WebGL的JavaScript库,用于在网页上创建和显示3D图形。文中将从Canvas的基本功能出发,探讨其局限性,并引出WebGL及Three.js的解决方案。 ... [详细]
  • 本文探讨了通过数组操作、事件委托、插件化开发、字符串拼接优化、HTML5 Data属性的使用、优先采用原生JavaScript以及JavaScript文件的压缩等方法,来提升jQuery应用程序的性能。 ... [详细]
  • 深入理解FastDFS
    FastDFS是一款高效、简洁的分布式文件系统,广泛应用于互联网应用中,用于处理大量用户上传的文件,如图片、视频等。本文探讨了FastDFS的设计理念及其如何通过独特的架构设计提高性能和可靠性。 ... [详细]
  • 本文详细介绍了如何在VMware环境下安装CentOS 7 Minimal,并成功配置GNOME桌面环境的过程。包括解决网络连接问题和设置默认图形界面等关键步骤。 ... [详细]
  • Redis 教程01 —— 如何安装 Redis
    本文介绍了 Redis,这是一个由 Salvatore Sanfilippo 开发的键值存储系统。Redis 是一款开源且高性能的数据库,支持多种数据结构存储,并提供了丰富的功能和特性。 ... [详细]
  • 本文详细介绍了如何在Arch Linux系统中安装和配置FlashTool,包括必要的依赖项安装和udev规则设置,以确保工具能够正确识别USB设备。 ... [详细]
  • ThinkPHP 文件缓存组件详解与应用
    本文深入探讨了ThinkPHP框架中的文件缓存类实现,提供了详细的代码示例和使用说明,旨在帮助开发者更好地理解和利用这一功能来优化应用程序性能。 ... [详细]
  • 本文基于https://major.io/2014/05/13/coreos-vs-project-atomic-a-review/的内容,对CoreOS和Atomic两个操作系统进行了详细的对比,涵盖部署、管理和安全性等多个方面。 ... [详细]
  • 深入浅出:Java面向对象编程
    本文详细介绍了Java语言的核心特性——面向对象编程。探讨了Java的基本概念、平台无关性、丰富的内置类库及安全性,同时深入解析了类加载器、垃圾回收机制以及基本数据类型和其包装类。 ... [详细]
  • 自从踏入编程领域,设计模式这一术语便频繁出现在耳边。初听时或许感到陌生且高深,但随着经验的积累,逐渐意识到其重要性。本文旨在探讨设计模式的基础知识及其在实际开发中的应用价值。 ... [详细]
  • Android开发经验分享:优化用户体验的关键因素
    随着Android市场的不断扩展,用户对于移动应用的期望也在不断提高。本文探讨了在Android开发中如何优化用户体验,以及为何用户体验的重要性超过了技术本身。 ... [详细]
  • 2020年腾讯PCG后端开发实习生面试经历分享
    本文详细记录了2020年腾讯平台与内容事业群(PCG)后端开发实习生岗位的面试过程,包括初试和复试的主要内容和技术考察点。 ... [详细]
  • 解决JavaScript中法语字符排序问题
    在开发一个使用JavaScript、HTML和CSS的Web应用时,遇到从SQLite数据库中提取的法语词汇排序不正确的问题,特别是带重音符号的字母未按预期排序。 ... [详细]
author-avatar
安乐乐520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有