美国一半程序员非科班出身,他们是怎么做到的

52c0002cc15a125f1eb.jpg

美国的程序员交流网站 Stack Overflow 在去年的开发者调查中想要了解,码农们是否都有大学的计算机专业学位。有 26086 名程序员参与了这项调查,其中有近一半受访者的答案是,没有学位。

大量程序员非科班出身的原因有很多方面。一方面,美国大学的学费正日益高涨。私立四年制大学一年学费平均接近 4.5 万美元,其中还没有包括生活费。另一方面,网上课程和培训班吸引了很多人。有志于成为程序员的人士可以在做中学,而不必“浪费”几年时间去完成大学学业。

关于非科班出身的程序员,有几点建议可供参考:

闭门造车要不得

编程时的闭门造车会带来几方面问题:

  • 没有人给你答疑。编程时你会面临许多疑问,但却无法找到人给你答疑解惑。解决这类问题的过程通常需要求助于高级程序员,或是将自己的代码与别人的去对比。

  • 软件评审。大型软件公司都会设置软件评审环节,即让同事之间互相评审对方的代码。无论是国外还是国内,数据显示,代码评审能多发现 60%的错误和漏洞。即使你自己干,也需要找人去评阅自己的代码。

  • 与他人一同工作有助于拓展人脉,在职业生涯初期尤其如此。

目前,国内许多众创空间都在面向小团队乃至个人开放申请。这将会是不错的选择。

多读书,尤其是大学专业内容

大学培养人才的重要之处是训练基本功和思维方法,而不是让你实际参与工程项目。如果没有上过大学,那么这些方面很可能会有缺失。你可能知道如何根据架构师的设计文档去写代码,但却不知道算法为什么是这样。在实际面试中,笔者还曾发现,有许多非专业出身的人士甚至都不能准确解释,什么是面向对象的编程。而这本应是 C++的基础。

非科班出身的人士需要通过多读书来补充基础知识,无论是离散数学、算法设计,还是软件测试的基本理论。

另一方面,如果你希望通过网上课程或培训班去学习,那么最好从基础开始学,尤其是在没有编程经验的情况下。

大企业培养新程序员的方式有两种。一种是自顶向下的模式。在这种模式中,应用或框架已经搭好,对程序员的期望是他们直接上手,补足欠缺的部分或是去改漏洞。另一种是自底向上的模式。在大企业中,通常只有新项目才会这样做。这时程序员可以先打基础,随后慢慢入手,从架构设计、代码的顶层设计、细节设计,再到实际编程。

如果你是非科班出身,希望自己干,那么应当采用自底向上的模式。这将帮你弄清许多基本概念。一上手就接触庞大的代码将会令人摸不着北。

多练习,多做项目

对新人来说,多参与项目能帮助积累更多经验,有利于未来的职业发展。而如果想要单干,那么所做的项目将成为简历上的主要经历,是对能力的证明。

个人从事项目最好的选择是开发移动应用。相对于大型软件项目,例如系统软件或企业级应用,移动应用的开发相对简单,很容易出成果,而也会有许多用户提供反馈,相当于免费帮你做测试。移动应用开发使用的语言包括 Swift 或 Objective C(iOS 平台)、Java(Android 平台),以及 C#和 VB(Windows 平台)等等。此外,Phonegap 等通用型技术也可以考虑。

对个人程序员来说,GitHub 是个好工具。GitHub 上有许多开源项目可以参与,也有许多其他程序员可以提供帮助。你也可以自己创建软件项目。这一切都是免费的。

职业发展的选择

非科班出身程序员在找工作时可能会受到局限,因为大公司的招聘中学历是个门槛。许多知名科技公司用大学学历作为条件去过滤求职者。例如,谷歌在招聘初级工程师时就是这样。

相对来说,一些创业公司更看重个人能力,而非学历。对于需要什么样的程序员,什么样的程序员是够格的,它们有自己的标准。在创业公司里找工作时,你不一定需要有大型软件的成功开发经历,通常只要证明你能开发出用得起来的软件。

如果觉得自己的能力稍弱,那么还可以考虑软件公司中的 QA(质量工程师)职位。QA 的工作通常是统计问题,找出趋势,以及建议如何改进。这也是一项程序员的基础能力。而许多公司对 QA 工程师的招聘门槛要低于软件工程师。

简而言之,大学学位,或者说计算机专业的学位,并不是成为程序员的必要条件。但如果这类人群希望成为程序员,那么将要在学习和实践方面付出更多的努力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、 客户信息管理 主要新增、修改、删除、按照指定条件管理客户相关信息 2、 供应商信息管理 主要新增、修改、删除、按照指定条件管理供应商相关信息 3、 目标客户管理 主要新增、修改、删除、按照指定条件管理目标客户相关信息 4、 合作伙伴管理 主要新增、修改、删除、按照指定条件管理合作伙伴相关信息 5、 竞争对手关注 主要新增、修改、删除、按照指定条件管理目标竞争对手相关信息 6、 联系人管理 主要新增、修改、删除、按照指定条件管理联系人相关信息 7、 重要日期提醒功能 针对相关的客户、联系人等的生日、重要节日设置为提醒日期,以及提前时间间隔,在指定的日期内,打开系统时,系统自动弹出提醒平台,您可以查看要提醒的重要事务 8、 备忘录提醒 您的一些重要事情要办理,为了在指定的时间内忘记,您这时可以设置备忘录事项,系统到时进行提醒 9、 其他事务提醒 在当天内有需要办理的琐事,很容易遗忘,您可以在其他事务提醒内进行设置,到指定时间时,系统提醒,防止您忘记 10、 定时发送邮件 可能有些邮件暂时不想放送给对方,而需要在指定的日期发送对方,这时定时发送邮件功能,就是您的帮助,您可以设置要定时发送的时间,系统在指定时间,定时把邮件发送对方 11、 群发邮件 12、 收发邮件管理 主要来管理收件、发件、定时发件、提醒发件的邮件;撰写邮件、回复邮件、转发邮件的管理 13、 创意金点子管理 主要是您的一些好的想法、好见解记录到创意金点子功能,您可以分析想法的可行性,随时可以记录您的创意好想法 14、 用户管理 本软件是支持多用户操作,增加、编辑、删除、查询相关的系统用户 15、 权限管理 各个用户按照指定的权限管理各自的资料信息 16、 系统备份和还原 系统备份:您可以根据自己的需要备份您的数据库,防止意外丢失; 系统还原:可以根据备份的数据库恢复指定的时间点的资料
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值