如何成为一名真正的、合格的、乃至优秀的程序员?

简介: 如何成为一名真正的、合格的、乃至优秀的程序员?

一、实力比学位更重要

如果你不是计算机专业科班出身,也别太担心。下面这段话摘抄自吴军的《硅谷来信》。

“今天很多大学毕业生,读完四年大学,学了很多课,其实并没有掌握任何一项得以安身立命的技能。我在腾讯时看了不少校招学生的档案材料以及他们面试的记录,除了极个别的中国名牌大学,大部分学校的毕业生,都没有掌握最基本的工作技能。

比较聪明一点的学生会在上学的最后一年,花钱跑到外面的培训班去进行技能的培养,他们面试时所体现出来的技能要远比那些仅仅在大学里上过一些课的学生强得多。”

可见,想要成为程序员,还得靠硬实力说话。上个培训班,可能比读个大学都管用……我当时看到这个结论也是很震惊的。

二、要当真程序员,先当假程序员

在英文中叫“learning by doing”,通过实际工作来学习。要成为真正的程序员,先想办法找到一份程序员的工作,成为假的程序员。之后每天上班就是干这个,还得996的干……你说学得能不快吗?没多久就成真正的程序员了。问题是怎么找到程序员的工作呢?

如果你已经在相关职位了,例如:产品经理,网页或用户界面设计、数据分析师,运维,测试。那么你只需要去准备好简历和面试就行了。

现在的程序员面试,基本属于标准化考试,网上有无数资料帮你准备,其中最重要的就是上LeetCode刷题。准备到位了,是一定可以通过的。有钱的话,买买网课。

三、没有相关背景就分两步走

如果你的个人经历和程序员这个职业完全不搭边,那么你可能无法直接拿到程序员岗位的面试。所以,只准备面试是不够的。

你需要先跳到一个相关岗位。通常来讲,数据分析师、测试员、运营维护人员的最低门槛要低一些。以这些行业作为跳板是成为程序员的好方法。这里就需要你去做更多功课,研究一下哪个跳板才是最适合你的。


写道这里,我突然想起来一位朋友跟我讲的故事:

技术发展的目的是降低软件开发的用人标准,进而降低软件行业的人力资源成本,更快、更好、更便宜地满足用户的需求
从公司的角度来看,如果要求所有开发人员都是基础扎实、技能全面的,那么用人成本一定很高,我完全相信经过一定训练和挑选的*鸟毕业生在经理的正确管理下可以很好的开展工作,尽管他可能不懂算法和数据结构,C和C++基本不会,这并不妨碍他为公司创造价值,随着他开发经验的增长,在时间允许的情况下再去补充一些基础知识也是完全可以的。

其次,题主的情况,未必能承担系统而全面学习所带来的成本

几年以前有个“学生”,打引号是因为我并没有真正教过他,中专毕业,专业是钳工,曾经给我展示过胳膊上的长长的疤痕,说是被车床伤到的。
他要求跟我学的时候属于入门阶段,最开始学习的并不是什么三大浪漫,而是C#. 在掌握了一门编程语言后,很快自学了其他语言(甚至Delphi), 在一年后找到了一个小公司做些基本的开发工作,然后涉足安全领域,开发了各种工具,现在在一家安全公司上班,提升很快,收入不菲。前不久跟我聊他配合网监做一些取证和提审的工作经历。

2006年,我在武汉某个夜市的大排档上,凌晨2点多,看到一个服务员在忙里偷闲看一本计算机书籍(扫一眼就知道),仔细一看是一本Java入门书,聊起来才知道这妹子是护校毕业,但是对计算机有兴趣,就想在大排档当服务员攒学费去*鸟。她还拿出一沓油迹斑斑的信签纸,上面全是她写的程序,她说每次去网吧都要装开发环境,太麻烦了,所以干脆在纸上写。哥看不下去了,给一开软件公司的朋友打电话强烈推荐这妹子去实习,朋友一听情况表示拒绝,我说你只要给他管工作餐就好,不用发工资。1个月后这妹子进入试用期,2个月后转正,后来在朋友公司做了近两年,据朋友说开发能力很强,再后来,我就不知道了。

作为教师,感动我的总是这这样的“学生”,而不是那些坐在教室里花着父母的钱虚度光阴的学生。
可能有人会觉得这样的程序员是“野路子”,不登大雅之堂,但这一点都不妨碍他们兢兢业业的工作,为公司创造价值并且改变了自己的生活。”

相关文章
|
9月前
|
Oracle Java 关系型数据库
程序员做开发工作必须要考证么?
众所周知,随着信息技术的迅速发展,程序员已经成为现代社会中不可或缺的一部分。与此同时,关于程序员需要考证的话题也越来越受到关注,以及现在互联网行业内卷严重,催生了程序员继续学习的渠道。随着行业寒冬的影响,互联网行业的程序员竞争越来越激烈,也让程序员再次审视了考证提高自身竞争力的设想。那么本文就来简单探讨一下程序员是否需要考证,以及衡量程序员能力的方式是什么?
132 2
程序员做开发工作必须要考证么?
|
8月前
|
设计模式 运维 前端开发
如何成为一名合格的程序员
有些东西你必须知道!!!
47 0
如何成为一名合格的程序员
|
11月前
|
设计模式 前端开发 JavaScript
🐞 如何成为一名合格的“中级开发”
和大家一起聊聊怎么做一个专业的开发者,如何突破自己的职业瓶颈,找到方法,在这个内卷的时代,等待破局的机会!一起加油!
48 0
|
运维 Java 程序员
一个合格的程序员,需要哪些必备技能?
对于一个Java开发来说,编程技能毋庸置疑是很重要的。 但是,除了基本的编程开发能力,其他方面的能力也是体现一个程序员的能力的很重要因素。 比如,问题排查能力、线上运维能力、项目管理能力、协调沟通能力等。 本文,主要来简单介绍一下,作为一个合格的Java开发,除了自身技术成长之外,还有哪些方面可以提升。 类开发技能 第一类,并不是纯coding技能,但是也和开发相关,我称之为类开发技能。 Linux系统 很多人的开发机器是windows,所以平时也基本都是图形化开发界面。但是,这并不意味着你就不需要基本的Linux技巧。 因为,你开发出来的应用可能部署在一台Linux机器上,很
379 0
|
前端开发 程序员 区块链
程序员在工作中如何让自己的技能得到快速提高
首先你要有可以碰到难题的机会,如果你根本没有机会接触复杂场景,没有经过真实的项目磨练,是很难快速提升的;
111 0
|
Java C++
关于一个不合格萌新
我感觉关于自己没啥好说的,学过c和自学一点数据结构 但我感觉并不太友好对于初学者。 以后想跟大家一起努力 ,找个好工作,能养活自己就行。 但我感觉这些都不重要 互关互关 兄弟们这个才重要。
60 0
关于一个不合格萌新
|
缓存 网络协议 安全
聊点不一样的,初级软件测试岗需要做些什么?
聊点不一样的,初级软件测试岗需要做些什么?
131 0
聊点不一样的,初级软件测试岗需要做些什么?
|
测试技术 程序员
程序员岗位考核方式
程序员组内考核: 1.工作量大小     2.工作效率高低 3.工作进度快慢 4.代码质量 5.bug 数量,考察代码质量和态度 6.相关文档书写质量 7.技术考核: 组内成员每人出n道题,之后互相解答,查看最终成绩,出题范围可以局限在某本书中。
1895 0
|
测试技术 程序员
程序员与项目经理
  有人加我为好友后,经常问到的一句就是:你写程序这么长时间了,一定是项目经理了吧?郁闷呀!为什么就要是项目经理呢?在我看来程序员和项目经理完全是两个不同的发展方向。     程序员是和代码打交道的,而项目经理却是和人打交道的,所以他们完全没有什么共同点,我觉得他们是两个行业。
819 0

相关实验场景

更多