在移动互联网“泛滥”的今天,越来越多非专业(这里的非专业指的是非计算机专业毕业的程序员)程序员加入到了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. SQL Server字符串左匹配

    在SQL Server中经常会用到模糊匹配字符串的情况,最简单的办法就是使用like关键字(like语法http://msdn.microsoft.com/en-us/library/ms179859 ...

  2. SQL动态列查询

    数据库中为了实现表格数据的自由设置,我们经常设计纵表,或者列定义的表(如下KeyValue),定义一个列超级多的表中每个字段的意义. 但是在设计时简单的东西却很容易被人们忘记,如下一个简单但是很松散的 ...

  3. C++/CLI——读书笔记《Visual C++/CLI从入门到精通》 第Ⅱ部分

    =================================版权声明================================= 版权声明:本文为博主原创文章 未经许可不得转载  请通过右 ...

  4. 记一次MongoDB Map&Reduce入门操作

    需求说明 用Map&Reduce计算几个班级中,每个班级10岁和20岁之间学生的数量: 需求分析 学生表的字段: db.students.insert({classid:1, age:14, ...

  5. android raw与assets区别

    *res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. *res/raw和assets的不同点:1.res/raw中的文件会被映射到R ...

  6. 【工作常用代码集】批量Telnet远端端口

    作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ __author__ = 'gnuhpc' import telnetlib,socket IP={} def ...

  7. 理解 QEMU/KVM 和 Ceph(1):QEMU-KVM 和 Ceph RBD 的 缓存机制总结

    本系列文章会总结 QEMU/KVM 和 Ceph 之间的整合: (1)QEMU-KVM 和 Ceph RBD 的 缓存机制总结 (2)QEMU 的 RBD 块驱动(block driver) (3)存 ...

  8. Java开发之Servlet之间的跳转

    一.转向(Forward) 1.要点说明 转向是通过RequestDispatcher对象的forward()方法来实现的.RequestDispatcher可以通过HttpServletReques ...

  9. flex sdk中mx_internal function getTextField() 这种函数如何调用?

    在用flex 开发中,一些函数前打上了 mx_internal 外部调用不了,其实这样写就可以了 xxx.mx_internal::getTextField() 而 xxx.getTextField( ...

  10. linux下安装python

    在Linux下安装Python的操作相当简单,按如下步骤操作即可: 命令: wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgzt ...