当程序员这么多年,我学到了25条人生经验
关注前端达人,与你共同进步
编者按:作者踏上开发人员的职业之路某种程度上具有偶然性,但是也跟自己平时对编码方面的知识进行的储备有很大的关系,作为一名自学的开发人员,作者虽然从业时间不长,但对大家也许仍然能够从作者对这个行业的体会和经验中找到共鸣。
本文译自medium,文章作者Aphinya Dechalert,原文标题 25 Lessons I’ve Learned as a Developer。
图片来源:Pixabay from Pexels
实际上,在我从事自己人生中第一份开发人员的工作之前,我就已经开始写代码了,为朋友们以及朋友们的朋友们搞定网站事宜。我是经历了拨号上网和和听着磁带那个年代长大的——典型的90后,晚餐时间的桌子上,还循环着清新的Prince of Bel-Air主题曲。
我作为开发人员的第一份真正的工作多少有点意外。我本来是作为一位营销人员进入公司的,但在得到这份工作的六个月内,我就重构了公司整个手机app的前端。
真是一次职业经历的奇怪跳跃和学习曲线的巨大跃升,不过,多亏了我平时那些自己学习和准备的东西帮我打开了新的大门。
时光飞逝,半年过去了,我的职业和人生未来还会继续前进,而我作为一名开发人员的反思和思考同样不会停止。
我的经验
以下25条经验,是基于我的经历和我至今为止从中学到的教训总结出来的,希望对大家有帮助。
在这个行业里,每个人基本上都是自学成才的。对于传统的教育机构来说,科技的发展速度实在是太快了。如果你想快速上手一些东西,你最好自己立刻开始学习,而不是又去教室里听三年的课。
传统教育在基础研究中仍然占有一席之地。获得学士学位是踏入职场的一种方式,但并不是唯一的方式。如果你的大脑更注重实际,而不是更偏好理论,而且你无法偿还未来10年的助学贷款,那么你可以在现在的互联网上找到更多的学习资源和指导。
要想进入这个行业,你必须永远保持好奇心。你需要不停地问自己这一切是如何运作的,为什么会这样——尤其是当一切终于有了眉目的时候。
在很长一段时间内,你可能会觉得自己并没有多少真正的进步——直到你回过头去看自己原来写的旧代码,或者必须向其他人解释一些东西的时候。
作为初级开发人员,还是要多写写代码才好。学习编程就像学习写作一样。你写得越多,你就越能发现其中的套路、你的短板之所在以及修正它们的方法。
作为行业新手,一开始你会处于一个自大的阶段,认为自己什么都知道。然后随着你写的代码越来越多,你会发现曾经那个膨胀的自我正在逐渐缩小。然后,当你越来越得心应手、经验也越来越足的时候,你甚至有能力引导那些经验不足的同龄人朝正确的方向前进,但你也会让他们稍微“挣扎”一下,因为这是他们学习和创造过程的一部分。
漏洞的出现在所难免,发生漏洞是因为知识上的差距。代码在转换成“计算机语言”的时候或多或少总会出点问题,不要慌。当出现漏洞的时候,很可能只是因为“转换过程”中出现了一个小问题。
当人们告诉你你在做敏捷开发,但不让你参与对此会产生的直接影响计划阶段时,那一定不是真正的敏捷开发。
作为一名开发人员,你在工作时将长期处于一种不断了解但同时又不怎么了解的状态。
在可读性方面,格式是决定性因素。
代码是一种通信工具,一种以一种人类可读的方式编写的通信工具,而不是只有初学者才能理解的密码名。
面向函数编程模式可以使事情变得不那么复杂。面向对象编程模式在作为组织和分类工具方面也颇为有用。这两种模式并不是相互排斥的,而是在必要时是共存的。
写代码要稳扎稳打,从长远来看,当前以“最佳实践”为目的的过度取巧可能导致未来有太多的技术短板要补。
所有的软件迭代都很快。5个月前的“完美”代码可能会由于需求的变化、依赖关系的升级以及逻辑上的未知漏洞和小问题而变得低效和过时。
数据库就是一切。如果过度设计,很有可能会给后端带来不必要的负面影响。
当你身处团队中时,工作组织扁平化和自动化会对你的工作效率产生影响。扁平的组织结构意味着你可以更快地在与人沟通协作,而自动化则意味着用于单击、键入和等待事情完成的时间会大大缩短。
收拾别人留下的乱七八糟的代码也是一种人生经历,每个人在职业生涯的某个阶段都会碰上这种事。这也是一个从别人的错误中学习的机会,更是一个为软件的未来方向进行摸索的过程。
你会不断地清理别人和你过去创造的东西。这是因为代码就像食物一样——如果不及时“使用”它,它就会成为过眼云烟,逐渐毫无用处。
学习平衡工作与生活对开发人员来说仍然很重要,因为我们毕竟是人类。不要墨守成规,忽视自己、朋友或家人。照顾好自己,不要让代码控制了你的整个生活。
如果你觉得自己快要精疲力尽了,那就停下来,休息一下,哪怕不久之后再回来——但记住,千万不要粗制滥造,要编写出对你更具个人意义的代码。软件是客户和业务之间的接口,作为开发人员,我们是架构起这个借口的力量。如果你觉得自己并没有真正为公司做出贡献,或者你根本不相信自己能为公司做出什么贡献,跳槽也没什么大不了的。你需要为自己的所作所为感到自豪。不管你最终在哪里,你都能挣到一笔可观的收入。
不要太在意别人的代码写的怎么样。利用你所拥有的条件,专注于提升自己的技能,在自己擅长的领域里独树一帜。
如果没有人邀请你参加面试,那就去创造吧。如果你没有可以写进简历的经验,那就去创造吧。如果你有一个空闲的周末并且正好有一个想法,那就去创造吧。作为开发人员,我们的业务是创建代码。当我们停下来的那一刻,我们就有可能成为管理团队的一员。
不要只是学习编程。你的知识领域越广阔,编写项目代码就越容易。这是因为代码的编写过程就是一个把世界、它的规则和运转过程转换成数字表达的过程。试想,你怎么能得心应手地创造自己不理解的东西呢?
关于代码,你总会有知识的盲区存在,但是我希望你最好拥有大量的想法,并将它们作为代码创建过程的指导原则,最终你会收获相当多的回报。
你需要花一些时间去阅读软件领域的书籍,相信我,这个时间值得花,你可以在阅读中发现许多有深度的想法——比如Robert C. Martin和Martin Fowler的作品,你一定会从中受益良多的。
作为一名开发人员,我现在所处的阶段既有着良莠不齐的代码,也有着有趣的项目解决方案,还有许许多多需要继续完善的架构。
当我开始独当一面、接手更多的自由职业或者合同工作的时候,我作为一名开发人员的经验肯定会更加丰富,人生的轨迹也会有所不同。
这是我到目前为止对自己职业的一点感想,未来当然还会有的,谢谢大家的阅读。
译者:喜汤
专注分享当下最实用的前端技术。关注前端达人,与达人一起学习进步!
长按关注"前端达人"
当程序员这么多年,我学到了25条人生经验相关推荐
- 19岁程序员在谷歌学到的5条经验教训
java学习 作为一个稚气未脱的,热心的19岁青年,我走进了谷歌--一家当时已有3000人的高科技公司--做好了尽自己最大努力学习的准备.在接下来的六年时间里,我发现谷歌style并不仅仅意味着酒店式 ...
- java程序员入门先学什么开发者工具
学习java编程语言,那么开发工具是肯定少不了的,程序员入门基础中开发工具是一定要学会的,可以帮助开发者们提高开发效率.更优雅的写代码.由于开发者涉及的技术领域众多,以后端开发者的视角盘点平时可能用得 ...
- 数据结构 python的书推荐-为什么程序员一定要学数据结构?数据结构书单推荐~...
原标题:为什么程序员一定要学数据结构?数据结构书单推荐~ 来自:程序员书库(ID:OpenSourceTop) 人们最初使用计算机是用来处理简单的数值计算问题,当你使用计算机来处理一个问题时,一般经过 ...
- erp开发和java开发区别_Java程序员求职必学:Spring boot学习指南!
黑马程序员上海中心 学姐微信:CZBKSH 关注 咳咳,今天学姐就来和你们说说Spring对于Java程序员的重要性. 首先,Spring 官网首页是这么介绍自己的--"Spring: th ...
- 程序员为什么要学算法?
"程序员必须会算法 ?" 程序员对算法通常怀有复杂情感,算法很重要是共识,但是否每个程序员都必须学算法是主要的分歧点. 很多人觉得像人工智能.数据搜索与挖掘这样高薪的工作才用得上算 ...
- 程序员到底应该学什么?!
以前听别人说大公司和小公司在招牌上的差异,自己总是不信,总是沿着自己设计的路一直走,直到碰壁了,才终于醒悟!所以在此以一个过来人的身份再说:大公司和小公司在招聘上的差异,程序员到底应该学什么!可能没有 ...
- 不写情书,程序员为什么还要学写作?
跟小伙伴们一样,老兵哥也年轻过,在花季雨季也写过情书,不过经常石沉大海.当时特别希望自己的文笔好一些,像小说影视作品中的男猪脚那样一封书信就可以俘获菇凉的芳心.现今娃娃都能打酱油了,原来情书的效用早就 ...
- 36岁转行学java_年纪大了还想转行当程序员,现在学java还来得及吗
现在流行这样一种论调:说程序员就是吃青春饭的,年纪大了就不要再转行当java程序员了.可是仍然还有许多人前赴后继的想来学java当程序员,但是心里面有隐约担心:年纪也不小的,快30了还能学java吗? ...
- 学了go语言再学java容易吗_年纪大了还想转行当程序员,现在学java还来得及吗-Go语言中文社区...
现在流行这样一种论调:说程序员就是吃青春饭的,年纪大了就不要再转行当java程序员了.可是仍然还有许多人前赴后继的想来学java当程序员,但是心里面有隐约担心:年纪也不小的,快30了还能学java吗? ...
最新文章
- Nmap扫描教程之基础扫描详解
- 转型中的知不知、能不能、愿不愿
- 优化反射性能的总结(上)
- CoreAnimation编程指南(简介)转自:http://www.dreamingwish.com/
- fatal error LNK1104: 无法打开***.exe的错误
- Linux中tmux多终端复用和Screen多窗口工具
- wxpython安装_Mac RobotFramework 安装
- 怎样在线改图片大小?教你如何在线裁剪图片
- 数据分析报告怎么写(二)
- 使用esp32 作为蓝牙鼠标和键盘以及坑
- 最新版 Whatsapp 官网下载安装
- 周金瑞11.17黄金还会涨?黄金原油价格分析及白银操作建议
- Python Lost connection to MySQL server during query
- 香港HongKong之旅
- 华为nova3i 计算机在哪里,华为nova3i常见问题汇总,你想了解的都在这里
- RabbitMQ实战教程
- Big Mart Sales:预测销售结果 |Python
- 论BTC恐惧贪婪指数在基于有限价值平均策略的量化定投中的应用
- Nginx系列--upstream模块的使用
- 三菱,FX3U,plc程序模板和触摸屏程序模板,适用于运动轴控制,程序可以在自动的时候暂停进行手动控制
热门文章
- 15、TWS API和IB中的期权相关的操作
- java license机制dll_LicenseJava.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...
- 深大uooc大学生心理健康章节答案第四章
- CAS-认证流程详解
- css3中2D转换效果实现二(6)
- Java如何读取和操作上G文本数据
- python个人所得税怎么写分录_个人所得税的凭证分录怎么写
- mysql8 中的rank_Mysql8.0+中的rank()、row_num()、dense_rank()等窗口函数
- 2019上海计算机专业,2019上海软科世界一流学科排名计算机科学与工程专业排名曼彻斯特大学排名第101-150...
- 《基本控制结构》-小组作业 (1~10)