在移动互联网“泛滥”的今天,越来越多非专业(这里的非专业指的是非计算机专业毕业的程序员)程序员加入到了IT行业中来了,可能是因为移动互联网的火爆导致程序员容易就业而且工资很高,可能实体行业不景气,可能这确实是互联网+的时代,越来越多的人加入到程序员的行列当中来,使这个行业鱼龙混杂。现在这个程序员行业普遍的问题就是:人数多,底子薄,基础差,人均技术水平就是有问题,找百度,顺手Ctrl+C和Ctrl+V就把代码来写。管它什么算法,什么性能呢。如何从非专业走向专业程序员呢?

1、扎实基础,不断学习

基础的重要性其实不言而喻,基础是你扩展的资本,不了解基础,不扎实基础,你想进一步学习,了解高精尖是不可能呢,那得多吃力啊,这个基础对于不管是科班出身的还是非科班出身的程序员都很重要,毕竟兴趣才是自己最大的动力,跟科班不科班没关系。可能科班学的比较全面和系统,所以基础上有可能略胜一筹,可是有兴趣的人比科班可能更可怕,说不定懂得更多。

我们生活在一个很有趣的时代,互联网的存在几乎使我们到了免费学习的时代,技术分享遍布网络,想学习并非以前那么困难了。在百度上谷歌一下,相关资料满屏都是,随着移动互联网的火爆,越来越多的人跻身这个行列当中,如果你不学习,你就会落伍,停滞不前,直到有一天,这份工作不再需要你,或者外包给一些更廉价的劳动力,甚至被淘汰,所以我们需要不断的努力学习新技术,以保持有力的竞争力。我们要摆正心态,对自己最好的负责就是不断学习。

学习的地方有很多,比如:

阅读相关的杂志,技术博客,书籍和网站,看那些技术大牛的分享,肯定会让你受益不少。比如:非著名程序员公众号里的内容就不错嘛!哈哈……

深入了解源码,阅读源码可以让你真正的感受到那些大牛对待代码的严谨与思维的缜密,看看人家是如何运用架构模式的。

参加一些技术分享的沙龙,和高手面对面的交流学习。

想学习,方法多得是,就看自己努不努力。

2、要有强烈的责任心

专业程序员的一个最重要的特点,也是核心,就是有责任心。专业程序员会为他们的职业生涯、预算、日程安排承诺、错误、技能技巧负责。一个专业的程序员不会将责任推卸给别人。实事求是地说,现在的程序员都对工作非常消极,没有人督促就慢慢悠悠的做,代码也是写的乱糟糟的,没有任何优化,别人看你写的代码看的头都大了。一个好的程序员是对自己的代码有追求的,不仅能完成功能,还能写的一手好代码,跟写的一手好字似的。优美的代码才能让人赏心悦目,负责的态度才能提高自己的责任感。

有了责任感才能让自己更好的成长。

3、关心和反复检查代码

一个好的程序员是对自己的代码有追求的,漂亮的代码就是你的脸面,代码优化的好,你的脸就比较干净,像个白面书生,如果代码杂乱无章,效率低下,感觉这个程序员的脸就像长满了青春痘,不忍直视

关心自己的代码,那是负责任的表现,如果一个程序员代码写完了,之后就不管了,那是不负责任的表现,关心自己的代码,多读读,多看看,比较一下和别人的差别,化繁为简,逐步优化,这样不仅让你的代码娇小可人,亭亭玉立,更重要的是还能提高自己的能力。把代码当做自己的女朋友,才是正确的做法。不要老是想着coder,coder,因为coder那么多有毛用,代码依旧难看,自己依旧还是没有女朋友。好程序员最起码还是有自己的女朋友的,是吧,代码。

反复检查自己的代码,就犹如读书百遍其义自见。不要老是在别人说你代码有问题的时候,你就信誓旦旦的说:不可能。就犹如测试对着程序员说,这里有bug一样,第一反应肯定是不可能,在我这里没这个问题啊,最后还不是老么实的自己去改bug。责怪自己的环境有问题,责怪编译器有问题,就是不责怪自己写的代码烂,这绝对不是一个专业程序员应该做的。在你责怪别人之前,先检查自己的代码,这才是正解。

4、不惧怕别人的烂代码

专业的程序员肯定遇到过很多人写的烂代码。非专业的程序员肯定会惧怕别的代码,感觉看完他写的代码,再去修改,会不会牵一发而动全身呢?补一个bug,冒出一个bug,还不如自己重新写的快呢。相信有这样想法的程序员肯定占大多数。

比如:系统很糟糕,并且改变这边总是会破坏另一边不相关的功能。每次添加模块,程序员只能想着尽可能少地改变代码,每次发布都胆战心惊。这座软件的摩天大楼随时有坍塌的可能。之所以改动代码会如此伤脑筋是因为系统太糟糕了。但是即使你知道系统出了问题,却又因为投鼠忌器,而不得不听之任之。任何一个外科医生都懂得,伤口要想愈合就必须得切除腐肉。虽然手术会带来痛苦,但绝对比任伤口发炎溃烂要好。

不要害怕,没有人会在乎当你捣鼓代码的时候有没有暂时破坏了什么东西。只要你做的改变不会让项目重新回到开始状态,就不会令人崩溃。投入时间重构,能让你受益于项目整个生命周期。这样做还有一个额外的好处是,由于你有过这种处理病危系统的经验,所以你对它应该如何工作非常内行。要善于应用这些知识,千万不要反感这些宝贵的财富。重新定义内部接口,重构模块,重构复制粘贴代码,并通过减少依赖来简化设计。

5、学习和总结的能力

程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,只能说他是一名熟练的代码民工(码农),他永远都不会有质的提高

。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员。

著名的移动互联网专家,自媒体人,运营的公众号“非著名程序员”,每天一篇原创技术分享和移动互联网知识分享,微信公众号:smart_android ,头条号和百度百家账号都是“非著名程序员”。

新时代的coder如何成为专业程序员的更多相关文章

  1. Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘

    Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:g7v1 作者简介 作为全球Python培训界的领军人物,<Python学习手册:第4版>作者M ...

  2. Python编程快速上手 让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘

    Python编程快速上手  让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:7qm4 有关本书 累计销售超过10万册 零基础编程者的不二之选 基于Python3编写 通用 ...

  3. 笨办法学python - 专业程序员的养成完整版PDF免费下载_百度云盘

    笨办法学python - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:xaln  怎样阅读本书 由于本书结构独特,你必须在学习时遵守几条规则 录入所有代码,禁止复制粘贴 一字不差地录入代码 ...

  4. 翻译"Python编程无师自通——专业程序员的养成"

    这本书在 畅销Python编程类入门书,美国亚马逊Kindle编程类排行榜榜一. 开始初学python,也有不少书了,不想在白花钱(买了就放那里不看了),看一个英文文档的原著,准备每天翻译一点,放到b ...

  5. 【程序员联盟】官网上线啦!coderunity.com

    内容简介 欢天喜地,[程序员联盟]官网上线咯(此处应该有鸡蛋丢过来...) [程序员联盟]官网 大家也许会问:“这几天小编都没出文章,跑哪里happy去啦?是不是偷懒去了?” 小编:“臣妾冤枉啊.” ...

  6. for程序员:这些你可能遇到的职场难题,我们帮你整理好了答案

    “迷茫”是当下青年谈论的最多的词汇之一,无论高矮胖瘦富穷美丑,每个人都有自己独特的难题.造成“迷茫”的原因有很多种,比如生存压力,情感问题,以及困扰着相当一部分人的职场焦虑.今天这篇关于“职场迷茫”的 ...

  7. [Mac A]为什么国外程序员爱用 Mac?

    from http://www.vpsee.com/2009/06/why-programmers-love-mac/ Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里.普通用户喜 ...

  8. C++程序设计之四书五经[转自2004程序员杂志]--下篇

    C++程序设计之四书五经(下篇) 作者:荣耀 我在上篇中“盘点”了TCPL和D&E以及入门教程.高效和健壮编程.模板和泛型编程等方面共十几本C++好书.冬去春来,让我们继续C++书籍精彩之旅. ...

  9. [No000033]码农网-如何锻炼出最牛程序员的编码套路

    最近,我大量阅读了Steve Yegge的文章.其中有一篇叫"Practicing Programming"(练习编程),写成于2005年,读后令我惊讶不已: 与你所相信的恰恰相反 ...

随机推荐

  1. IDENT_CURRENT ,@@identity,SCOPE_IDENTITY() 之间对比

    获取表的标识值,有3种比较常见的用法 IDENT_CURRENT ,@@identity,SCOPE_IDENTITY(),有啥不一样呢? 3个关键字在联机手册中的解释   IDENT_CURRENT ...

  2. mysql IP转换函数

    1.将字符串类型的实际IP转换成十进制数值型的 SELECT INET_ATON('209.207.224.40'); 执行结果:

  3. Swift完整项目打包Framework,嵌入OC项目使用

    场景说明: -之前做的App,使用Swift框架语言,混合编程,内涵少部分OC代码. -需要App整体功能打包成静态库,完整移植到另一个App使用,该App使用OC. -所以涉及到一个语言互转的处理, ...

  4. Android ScrollView中的组件设置android:layout_height="fill_parent"不起作用的解决办法

    例子,在ScrollView下加入的组件,无论如何也不能自动扩展到屏幕高度. 布局文件. [html] <?xml version="1.0" encoding=" ...

  5. java 判断两个时间相差的天数

    1.实现目标 输入:两个日期 输出:两个日期相差的天数 2.代码实现 方法1: 通过Calendar类的日期比较.注意:这里需要考虑一下: 日期是跨年份的,如一个是2012年,一个是2015年的   ...

  6. To create my first app in iOS with Xcode(在Xcode创建我的第一个iOS app )

    To create my first app in iOS create the project. In the welcome window, click “Create a new Xcode p ...

  7. Java Web之请求和响应

    Servlet最主要作用就是处理客户端请求并作出回应,为此,针对每次请求,Web容器在调用service()之前都会创建两个对象,分别是HttpServletRequest和HttpServletRe ...

  8. selenium如何高亮某元素和操作隐藏的内容

    高亮元素的思路是: 1.找到要高亮的元素 2.对该元素执行js,更改style达到高亮效果. 操作隐藏的内容思路: 1.可以用Actions的moveToElement,使鼠标悬停在触发隐藏内容的元素 ...

  9. C++11 之 scoped enum

      C++11 枚举类型是“域化的” (scoped enum),相比 C++98 枚举类型的“非域化” (unscoped enum),具有如下优点: 1  命名空间污染  一般来说,声明在花括号内 ...

  10. 怎样用ZBrush中的shadowbox创建物体

    ZBrush一直以方便著称业内各领域,模型师不需要在多个软件中编辑塑造模型,而在ZBrush用shadowbox创建物体的流程,在Tool面板上的Geometry子面板中,4.0版本引入了shadow ...