文档章节

如何成长为一名专业的程序员?

SXTkaifa
 SXTkaifa
发布于 2016/11/20 16:25
字数 2402
阅读 2
收藏 0
点赞 0
评论 0

版权声明:本文为北京尚学堂原创文章,未经允许不得转载。

要想成为一名专业的程序员,仅仅会写代码是不够的。从团队合作去解决问题到版本控制,你还得具备其他关键技能的工具包。当我们询问相关的专业开发人员,那些必备的关键技能都是什么的时候,下面是我们了解到的情况。

关于如何学习代码,各种声音很多,然后很多人就被误导为成为专业开发人员懂得一门编程语言就够了?!就像其他工作一样,光会一个技能那是远远不够的。如果你想要成为一名开发人员,下面就是一些你必须要掌握的最重要的技能(编码这个要求就不赘述了,这太理所当然了)。

1、学会并擅长沟通

虽然一些媒体上面将编程描述为一种“闭门造车”的行为,但事实上,它涉及到很多与人沟通和协作的事宜。如果你工作于一家公司,那么你会成为开发团队的一部分,并且得和其他人交流和合作。

然而,知道如何清晰可信地说话和写作对于那些独立的开发人员甚至更加重要:学校课程一点也没有教我们学习必要的书面表达技巧。(就教我们编程,对不?)在你的职业生涯中——如果你以后想继续晋升的话——那么你需要花大量的时间用于清楚简洁、令人信服的沟通交流——从你需要发电子邮件给同事、经理、客户/合作伙伴、甚至有一天可能是高管仅这个方面想,就足够说服人的了。但是由于我们开发人员习惯于比其他人做事快两倍(我们都很聪明,对吧?!),所以令人沮丧的是,这样会导致需要多花上两倍的时间才能顺利地表达清楚。而作为一名独立的开发人员,用一句话来说就是“不在沉默中爆发就在沉默中灭亡”——再怎么难也必须掌握这重要的技巧。在此提出了一些建议:

“要么跨过这个障碍,要么在过程中学习,总之你需要的是真实的社会实践(我们要想擅长编码也是如此!)。可以试着发布一些简短的文章、大声阅读电子邮件、勇于面对批评教育,创建适合自己的经验教训。”更多精彩内容关注微信公众号:北京尚学堂。

如果你现在还没有机会加入到一个团队中一起开发,那不妨考虑一下一些高校的沟通、演讲和写作班辅导。此外还有各种课外的网络资源供君采撷。

2、提升解决问题的能力

很多开发人员说了解一门编程语言只是编码的一小部分。解决问题则是另一个重要的技能,而这也是那些新手开发人员所缺乏的。如果将软件开发比作是一个巨大的谜团:那么你需要弄清楚如何将你的一个程序片段连接到另一个上面,而这一过程往往并不简单。

我有碰到过那种据悉已经完全掌握整一门编程语言所谓的“牛人”,但是想出来的解决方案居然只能往废纸篓那里扔。最好的例子就是在大学中,那个时候我们正在开发一个项目。有人要我来看看某部分代码,因为这片代码的负责人不能将之连接到服务器的接口上了。原因是他竟然没有设置端口。所以说,解决问题的能力很重要。更多精彩内容关注微信公众号:北京尚学堂。

不过,解决问题确实是一个很难学习的技能。实践是其关键所在。可以先拿小项目试手,比如说开发一个便签app、计算器,只要你感兴趣的都可以。在开发过程中,你需要关注代码背后的逻辑,学会像计算机一样思考,而不仅仅只是理解这门编程语言。

事先学习计算机的工作原理也是有帮助的。因为:解决问题是我们要做的最多的一部分。计算机的思维和我们是不一样的,你往往需要重新学习其思考问题的方式。为了提高效率,你需要真正地理解计算机是如何运作的以及是如何处理CPU信息的。我个人非常讨厌计算机编译,不过幸亏我学过有关于这方面内容的课程。只要你稍微懂点编译知识,往往能想出更棒的点子来正确地实现一些事情。

既知道如何写代码又懂得解决连接件的相关问题是我们学习的关键。一旦你真正迈进了开发程序的大门,那么就需要专注于形成一种系统的方法来解决你面临的各种问题。

3、起来,到了学习版本控制的时候了

如果是在大学里,你可以和编程课上的团队一起合作开发项目。WindowsSVN和GitHub是很多开发团队常用的用于共同创建和更新开源app的两个工具。而且这两工具没有限制,谁都可以使用。但是企业更青睐于Subversion和Apache SVN。所以在开始新工作以前,你最好先了解一下这些系统是如何工作的,这样能够让你在那些新队友面前“一鸣惊人”。学习工具是需要一定的时间和实践的,但是如果你一点也不懂的话,那就会远远落后于其他人的进度。

真正掌握系统的唯一途径是实践。如果你还在大学中,学习这些工具有助于你进入以团队为导向的大型课堂项目中。如果是这种情况,可以要求使用GitHub或其他形式的存储库,即使老师并没有对此提出要求。如果你是自学的,那先找个合作的团队,既可以通过GitHub上的项目,也可以找一些你希望与之工作的同伴共同开始一个新的项目。

4、开发学习的技巧

技术就像历史的巨轮总是在不断向前翻滚,开发人员对于知识的态度也应该如此。如果你想要继续留在相关的领域中,关键是要跟上发展的脚步,不断地更新编程语言、软件和硬件技术。对此有的人的看法是:……你需要不断地学习新的语言、技术和工具。你必须花心力去研究新的技术,分析它的优点和缺陷,并迅速消化。请注意,这里我之所以用“消化”,而非“学习”是因为,我想表达的意思是,你必须得充分吸收、理解,并将这个新的东西融入到你的技能系列中,而不仅仅只是获得一些有关于如何工作的新知识。只要你能保持这种学习新事物的劲头,那么你一定会越来越强。

我们还可以通过一些技巧快速地学习技能。例如,如果你能先花点时间去了解内存的工作原理,那么你将更高效地使用它们。学习还包括理解,所以除了上面提到的沟通能力,专注于提高阅读理解的能力也是不可或缺的,这个可以通过阅读相关技术文档和其他书面资源获取。好记性不如烂笔头,有一个良好的笔记系统有助于你迅速找到你所需要的参考信息。更多精彩内容关注微信公众号:北京尚学堂。

从基础开始:将学习看作是一个你应该重点掌握的技能。一旦你这样做了,你就能更快地跟上技术发展的脚步,在此领域内超前于你的竞争对手。

编程其实还包括很多内容,而不是你原先想的只需要坐在计算机前写代码就ok了。如果你比其他人早明白这一点,那么你将会有更多的机会掌握一些雇主和客户需要你知道的关键技能,领先于他人一步。​

如果你的目标是就业,并且是高薪就业,那么北京尚学堂是你正确的选择。北京尚学堂一直在为改变中国IT教育努力着。十年以来,北京尚学堂坚守“为莘莘学子改变命运而讲课”这份情怀,不忘初心。感谢大家的阅读!​

本文作者北京北京尚学堂原创。如需转载请联系作者授权,未经授权,转载必究。​

更多猛料!欢迎扫描上方二维码关注北京尚学堂官方微信公众号(资料领取验证消息:156)

© 著作权归作者所有

共有 人打赏支持
SXTkaifa
粉丝 3
博文 109
码字总数 250758
作品 0
太原
程序员
论程序员的自我修养

想要成为一名资深的程序员需要具备各方面的能力,这就是程序员的自我修养,作为刚入行的程序员小辈最初的疑问是如何成为一个程序员?随着阅历的增长,有的程序员就会发问:如何成为一名资深的...

Navicat数据库管理工具 ⋅ 2016/05/04 ⋅ 0

学什么才能成为一名企业中的程序员?

作为一名大学生,或者正在学习IT技术,想了解、成为程序员的同学。你可能并不知道学习什么才能适应程序员的岗位,不知道应该怎么学,不知道你正在学习的东西在将来工作中是否有用、如何使用。...

一课上手 ⋅ 2017/03/21 ⋅ 0

软件篇:程序员如何提升自己的技能

优秀程序员的成长之路不是平坦的,经历诸多的挫折,熬漫漫长夜,迷茫彷徨,沮丧苦恼,这些都是程序员早期的现状,有些程序员靠自己的摸索慢慢成功,而有的程序员只能淹没在茫茫黑夜之中。那么...

Navicat数据库管理工具 ⋅ 2016/05/04 ⋅ 0

原来这样做,才能向架构师靠近

说在前面:达人课是GitChat的一款轻阅读产品,由特约讲师独家发布。每一个课程你都可获得6-12篇的深度文章,同时可在读者圈与讲师互动交流。GitChat达人课,让技术分享更简单。进入我的GitCh...

gitchat ⋅ 2017/11/14 ⋅ 0

2012年开发者该做的11件事

2011年即将结束,2012正在靠近。你是否在专业领域给自己设定2012的目标?不管你的答案如何,我相信下面列出的11条建议里面总有一两条适合你 :) 1. 使用Twitter - 如果你是一名程序员,如果...

虫虫 ⋅ 2011/12/30 ⋅ 46

【GitChat】精选——个人开发者如何通过人工智能盈利?

GitChat 是一款基于微信平台的 IT 阅读/写作互动产品。我们的目的是通过这款产品改变 IT 知识的学习方式,让专业读者获得自主选择权,让知识分享者获得收益。 关于GitChat 你想知道的都在这里...

blogdevteam ⋅ 2017/11/15 ⋅ 0

新浪Java架构师分享自己的成长经历, 教你如何快速成长为架构师

架构师是公司的“金领”,很少需要考虑生存的问题,从而有更多的精力思考关键技术,形成“强者愈强”的良性循环。当然,冰冻三尺非一日之寒,成为一名合格的架构师是一个漫长的积累过程。对于...

美的让人心动 ⋅ 04/19 ⋅ 0

从求职角度看程序员的发展方向和薪资待遇

点击上方“程序人生”,选择“置顶公众号” 第一时间关注程序猿(媛)身边的故事 编者按:作者从程序员的发展方向和待遇这两个方面,浅谈如何从一个初学者成长为一名合格的程序员。相信看完本...

csdnsevenn ⋅ 2017/12/28 ⋅ 0

关于程序员的几个阶段

每个程序员、或者说每个工作者都应该有自己的职业规划,如果看到这里的朋友没有自己的职业规划,希望你可以思考一下自己的将来。 个人常常思考自己的未来,也从自己的思考中总结出了一些东西...

梁荣良 ⋅ 2016/05/22 ⋅ 0

前加绩中国、信雅达高级全栈工程师:吴劲松

他是一名不甘平凡的开发者,通过自考上了中国科学技术大学的软件工程专业。曾就职过科大讯飞、信雅达、加绩中国等等知名开发公司,精益求精是他的开发理念,刻苦钻研是他的开发精神,坚持学习...

程序员客栈 ⋅ 2016/09/20 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 26分钟前 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 44分钟前 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 55分钟前 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 1

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

CentOS开机启动subversion

建立自启动脚本: vim /etc/init.d/subversion 输入如下内容: #!/bin/bash## subversion startup script for the server## chkconfig: 2345 90 10# description: start the subve......

随风而飘 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部