热门标签 | 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,代码复用

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


推荐阅读
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
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社区 版权所有