软件程序员从初级晋升到高级的10个阶段
本期话题是程序员从初级到高级的必经之路
为大家解读新手晋升的10个阶段
即便你是一个新入门者,也希望对你有帮助。现在就开始吧!
快捷键
不管你是用哪种IDE,都一定要学会使用快捷键
不错 一方面为了装逼 给你带来快感
第二是省时间 你是码农 要专业点
不要总拿个鼠标戳来戳去
如果是Linux VIM或是 NANO 全键盘操作其实也并没有那么利索
基本上 “复制粘贴 删除撤回 退出保存”
再学会 “按行操作 查找替换” 就算出师了
想再骚一点的操作 可以参考视频下方的pdf文件
快捷键指南
善用工具
俗话说工欲善其事必先利其器
一把扳手能跟一个工程师一辈子
软件工程师也是一样,从开发工具IDE到自己制作工具
需要大量的时间打磨才能攒出属于自己的工具箱
新手至少要知道常用的工具类
关于工具类 内容也非常多 以后可以单做一期
在Java世界中
Google 的 Guava 核心库
Apache 的 Commons 组件
Spring 的 Utils 框架
这些工具都是开箱即用的 能大量省去繁琐的操作
例如 Guava 的集合工具封装 只有想不到 没有做不到
StringUtils 能解决开发过程中字符串的操作问题
BeanUtils 能快速进行实体拷贝
什么?没用过?
同事见你打招呼明天得改改
哟 好久不见 又写bug呢
Git
分布式版本控制系统
严格意义上说 它不光是一款代码管理软件
而是一种思想,一种文件备份思想
我们从保护鸡蛋的角度重新审视一下这个问题
如果你有一篮子鸡蛋,你怎么保护它,并要在保质期内食用完毕
你需要考虑哪些问题?
1、篮子是否结实耐用,如果篮子打了,鸡蛋是不是一个都吃不到了?
2、篮子是否要随身携带,中午吃鸡蛋还是晚上下班吃?
3、是不是要对鸡蛋编上号码,每天按计划取号食用才能保证鸡蛋不过期?
4、如果取错鸡蛋的顺序把鸡蛋吃了,能不能重新对鸡蛋编号?
5、篮子上要不要装一个摄像头以记录我确实取过了鸡蛋?
……
这些生活中可能不会顾及这么多的问题
但是在虚拟的计算机网络时代,一切都是数据,
丢了就是丢了
你是否还记得你最早的拍照手机,当初拍的照片呢?
信息化时代 重要的资料一定要做到:
自动多重备份 和 随时随地获取
Git,一个自动备份历史、协同、分布、随处可取、代码管理为一身的软件
是Linus从自己的工具箱里拿出来的
你现在所用的网络硬盘、百度云、谷歌磁盘、OneDrive
都和代码管理软件 Git 如出一辙
目的都是管理你的文件(代码)让你在所能想到的异常突发事件中
保证文件(代码)的可用性、安全性、协同性达到平衡
面向过程
最早编程都是面向过程的 后来感觉过程一长就显的没有层次分类
面向对象概念横空出世
想当初做为新手的我 对这个概念也琢磨了好几天
后来发现其实就是教你 怎么把一样地东西放一在块儿
而达到复用的目的
这不就是分类整理吗
再后来 JS从前端走向后台
闭包 匿名方法 这些概念再次高大上起来
总结下来其实就是 大部分面向对象
局部面向过程 能隐藏的就别暴露
人生苦短 多用闭包
大胆删除
自从用了SVN 再也不怕一个人干不完活了
自从用了Git 再也不要保留注释掉的代码了
一定要把你自己注释掉的代码删除
因为30天后 你自己根本不知道注释它的原因
只要曾经推过git 就大胆删除过期的代码吧
我在团队中的代码提交贡献量
就出现过每增加1行 删除5行的记录
重视逻辑 一切问题都是有原因的
一名优秀的程序员
对技能的要求真不是第一位的
逻辑性才是 开发就是这样
有可能10分钟的代码量 要调试3个小时
调试不光是试错 更多地是理清来龙去脉
要记住 没有无缘无故的故障
逻辑清晰的要求不光是对技术领域
也包含业务领域
这件事为什么要这么干 这个业务为什么要这么实现
一定要在内心 多问一句 为什么
封装一切 要学会懒
还记得前面所说的工具类吧
工具类就是一次封装的标准示范
程序员从初级到高级
就是从使用别人的工具到自己开发工具的过程
做程序和做木匠是一样的
自己打造的工具才符合自己的人体工程学
业务代码实现 一定要想尽办法做到纯粹
一个组件 只解决一个小小的问题
这里说的懒不是让我们少干活
而是把要干的活 精细化
最后做一个代码的指挥者 躺着就把活干完了
整理仪容 重视细节样式
一分钟教你识别程序员
格子衬衫牛仔裤 黑框眼镜双肩包
当然这里不教你怎么捯饬自己
只是为了表达一下强迫症
能用tab的别用空格!
左花括号千万别换行!!
注释一定要与代码对齐!!!
一段业务处理完了一定要空一行!!!!
当你感觉自己对这些要求 已追求到发狂的时候
作为高级程序员 你一定要看接下来的提示
学会大度 坦然面对疾风一样的代码 允许新手犯错
曾经一个人站在git提交记录面前
曾经默默的打开队友的代码 再关上
曾经优化写法 修正格式 再撤回
终于 释然了 放弃了 算了不生气
人都是自由的 就像你管不了别人吃穿品味一样
对队友的磨难就是对自己的不公
大胆的犯错吧
有时弯路会让你跑的更快 再次愉快的做好朋友的 不吵架
一定要允许新手犯错 过早优化是万恶之源
组织会议 把握休息时间
当你处在关键岗位上时
大大小小的会议是跑不掉了
早会 晚会 总结会
培训会 需求会 技术研讨会
演示会 对接会 需求沟通会
刚开始你会感觉这些会议 大量浪费自己的工作时间
当你慢慢觉悟后会发现
这是你进入管理岗的开始
会议能让你深入业务
突然认识到自己原来是一个优秀的产品经理
与此同时 准备一个好看一点的水杯
最好多装一点水
毕竟摸键盘时总是忘记喝水
趁这个机会 多喝点水吧
1665年,牛顿到乡下躲避瘟疫
自我隔离 不串门 不逛街
不参加聚会
感悟出了人生与科学的大道理
新冠疫情刚好给了我们这样的机会,
独处能让我们淡定下来多思考。
不要只做一个程序员
做一些重要的东西
做一些有意义的事情
做一些能解决问题的事情
你是问题的解决者 创造者 创新者
不是编程者 编程只是你在完成创新的工具
去解决实际的问题吧
下期见
English
Hello everyone, I am Adam. This topic is the way for programmers from junior to senior engineer
Lets talk about the 10 stages of career promotion
if you are a new beginner, I hope to help you. Now follow me!
hot key
No matter which IDE you are using, you must learn to use hot keys
Yes, On the one hand is to pretend to bring you pleasure.
On the other hand is to save time. You are a coder be professional.
Don’t click the mouse poke around.
If it is Linux VIM or NANO full of keyboard operation, it is not so neat
Basically ‘copy and paste delete and undo exit and save’
If you have learnt ‘Operation by Line, Find and Replace’, you will be better
For more operations, please refer to the pdf file at the bottom of the video
Hotkey Guide.
Gather tools
As the saying goes, workers must first sharpen their tools to do their best
A wrench is good for an engineer whole life
The same is true for software engineers
From development tool IDE to make your own tool
It takes a lot of time to save the toolbox
Novices must at least know the common tool
There is also a lot of content about tools.
Chat later in the future
In the Java world
Google’s Guava core library
Apache’s Commons component
Spring’s Utils framework
These tools can save a lot of cumbersome operations
For example, Guava’s collection tool package
Impressive
StringUtils Can solve the problem of string operation in the development process
BeanUtils Can quickly make entity copies
what? Never heard of it?
Colleagues need to change another welcome when they say hello tomorrow
Hi Bro! long time no see! Writing bugs aha?
Git
Distributed version control system
Strictly It’s not just a code management software
It is an idea A file backup idea
Let’s revisit this from the example of protecting eggs
If you have a basket of eggs
How do you protect it
And eat it within the shelf life
What issues do you need to care?
1、Is the basket strong and durable? If the basket is being broken What can i do?
2、Whether to carry the basket? Eat eggs at noon or at work at night?
3、Do I need to number the eggs?
4、If I take the eggs in the wrong order and eat them?
5、Do I need a camera on the basket to catch the eggs change?
……
May not take into account so many problems in life
But in the programing world
Everything is data
Missing is missing
Do you remember your earliest camera phone,where are the photos you took?
Important information must be very careful:
Automatic multiple backup and Get it anytime, anywhere
Git, An automatic backup history、Collaboration and distribution、Anywhere、Code management software
Linus took it from his toolbox
The network drive you are using now、Baidu Disk Google Disk OneDrive
Just like Git
The purpose is to manage your files (code)
Ensure that the usability, security, and coordination of files (code) are balanced in emergencies.
Procedural Programming
The earliest programming was procedural oriented programming
Later There was no hierarchical classification.
The Object Oriented Programming concept was popular.
I also pondered this concept for several days when I was junior.
I found out that was teaching you how to treat it the same way.
Put things together
The purpose is to reuse and classify.
Later, JS moved from the front end to the back end.
The anonymous method and function closures popular again.
However,Thought is object-oriented and behavior is as process-oriented as possible
Don’t expose what can be hidden. Life is short. Use closures.
Boldly delete
Since I used SVN, I’m not afraid of jobs was too mach.
Since I use Git, I do not keep the garbage code anymore.
Be sure to delete the garbage code you commented out
Because you don’t know the reason for commenting it after 30 days.
Once I pushed git, I deleted the deprecated code boldly.
My code submission contribution in the team
Deleted code were more than added code.
Pay attention to logic, all problems have reasons
As an excellent programmer
At work the skill requirements are not absolute but Logic.
10-minute code may take 3 hours to debug.
Debugging is not just trial errors.
It is more about clarifying the ins and outs.
Remember that there are no bugs for no reason.
The technology field needs to be logically clear.
The business field needs this thing more.
Why do you want to do this business?
Why do you want to achieve this business?
You must ask more in your heart, Why?
Pack everything and be lazy
Remember the tool classes mentioned above.
The tool classes were standard demonstration model for programmers.
From the junior to the senior
That is the process which from using other people’s tools to developing tools.
Just like a carpenter.
You can make the ergonomic tools your own.
Business code implementation must do everything possible to be pure
A pure component should solve a small problem.
The laziness here is not to let us do less work
Divide the work finer and finer
Become a code commander Lie down and finish your work
Detail
How to distinguish between programmers.
Plaid shirt jeans Black frame glasses backpack.
Of course, I won’t teach you how to beautify yourself.
Just to express the importance of OCD.
Tab replaces four spaces!
Never wrap the left curly bracket! !
The comments must be aligned with the code! ! !
Be sure to leave a line blank after a period of business processing! ! ! !
When you agree with me
As a senior coder, you must read the following tips
Generous
Learn to be generous and permit junior’s mistakes
I have also followed the git commit record of teammates
I have also Silently open the code of the teammate and then close it
I have also optimized the writing method, revised the format and then rollback
Finally relieved, give up optimizing others’ code
People have different tastes
Don’t be too demanding on your teammates
let the junior make bold mistakes
and be happy with the junior
Be sure to allow elementary mistakes, premature optimization is the source of all evil
Organize meetings, seize rest time
When you are in a key position
there will be a lot of meetings
morning meeting Evening meeting Summary meeting
Training meeting Demand meeting Technical seminar meeting
Demonstration meeting Docking meeting Demand communication meeting
At first you will feel that these meetings waste a lot of your working time
When you slowly realize it, you will find that this is the beginning
of your entry into the management post
Meetings can get you into business
Suddenly realized that he was a good product manager
At the same time, prepare a nice glass
It’s better to put a little more water
Always forget to drink water when touching the keyboard
Take this opportunity to drink more water
In 1665, Newton went to the countryside to avoid the plague
Self-isolation No out-going No shopping
No party
He realized the principle of life and science
The COVID-19 Outbreak just gave us such an opportunity,
Being alone allows us to calm down and think more.
Don’t just be a programmer
Do something important
Do something meaningful
Do something that solves the problem
You are the problem solver, creator, innovator
Not a programmer, programming is just a tool for you to complete innovation
To solve the actual problem
See you next time