【杂谈】提升写代码效率不得不做的三件事

怎样才算是好程序员?关于好程序员与好代码的杂谈 ​怎样才算是好程序员?​· 具有优秀的技术技能,能写出干净整洁的代码。· 具有扎实的开发技术知识和解决问题的专业技术。· 了解编程的最佳实践以及何时使用它们。· 对编程有着持久的热情,并积极为团队做贡献。· 备受团队的其他成员尊敬和喜欢。积极的学习态度,无我之境要想在所在领域出类拔萃,你不需要任何花哨的学位,甚至不需要钱来投资——你所需要的是学习的态度,疯狂的求知欲和基于... 阅读详情

想成为一个优秀的AI算法工程师必须要熟练使用Linux,这是学习AI的一个基础,如果你一直还在用Windows,那就很low了。本文我们聊聊提升写代码效率不得不做的三件事。

作者&编辑 | 汤兴旺  

1 桌面管理

首先我们说说一个最好用的终端,有着终端终结者之称的Terminator。


对Linux系统进行管理时,我们经常需要通过终端窗口输入各种操作命令。在GNOME集成桌面环境下,GNOME终端(gnome-terminal)是我们经常使用的终端程序,每次运行该程序都将打开一个单独的终端窗口,但是当我们进行命令行操作时,有时需要打开多个终端窗口,并且希望这些窗口能同时平铺显示,那该怎么办呢?其实,借助一款小巧而实用的软件——Terminator就可以轻松实现这一功能。效果图如下:

640?wx_fmt=png

对于Teminator我们可以使用下面命令来安装:

sudo apt-get install terminator

我们常用下面的命令来对终端进行各种操作。

Ctrl+Shift+O 水平分割终端(分成上下两个窗口)

Ctrl+Shift+E 垂直分割终端(分成左右两个窗口)

Ctrl+Shift+W 关闭当前终端 

Ctrl+Shift+X 放大(还原)当前终端 

F11 全屏 

Ctrl+Shift+G 清屏 

Ctrl+Shift+Right/Left 在垂直分割的终端中将分割条向右/左移动 

Ctrl+Shift+S 隐藏/显示滚动条 

Ctrl+Shift+Q 关闭所有终端(退出程序) 

然后我们说说linux下完美帅气的终端Guake Terminal。


如果你希望让终端自己主动启动并在后台执行,如果你喜欢更高速地隐藏和显示终端,如果你更习惯使用快捷键,那么Guake 绝对是一个更好的选择。

640?wx_fmt=png

对于Guake,我们可以使用下面命令来安装。

sudo apt-get install guake

我们常用下面的命令来对终端进行各种操作。

F12 显示/隐藏Guake的程序界面

F11 切换到/退出全屏模式

Ctrl+Shift+T 新建标签页

Ctrl+Shift+W 关闭标签页

Ctrl+Shift+C 复制

Ctrl+Shift+V 粘贴

Ctrl+PageUp 切换到上一个标签

Ctrl+PageDown 切换到下一个标签

对于Guake,想要更好的了解请看其github,下面是链接:

https://github.com/Guake/guake

2 编程管理

在这个蔚蓝的星球上,对于编程来说,流传着两大神器:神的编辑器Emacs和编辑器之神Vim。

首先我们说说编辑器之神Vim,Vim是从vi发展出来的一个文本编辑器,其在代码补全、编译等方便的功能特别丰富,在程序员中被广泛使用。    

640?wx_fmt=jpeg

Vim有三种工作模式,分别是命令模式,输入模式和底线命令模式。

640?wx_fmt=png

由于Vim的按键非常多,这三种模式可以更加高效的帮助我们进行编程。

这还只是Vim的基础,Vim真正强大和能大幅提高编程效率的是其强大的插件。Vim 通过插件可以被拓展出许多不同层次的功能,我们常用的插件有Vundle、YouCompleteMe、Solarized、nerdcommenter等等插件,具体插件的安装请看我们往期的文章:

【学员分享】程序员效率神器,最常用VIM插件安装大全

然后说说神的编辑器Emacs。下面是其官方网页和Emacs中文论坛:

官方网页:

http://www.gnu.org/software/emacs/

中文论坛:

https://emacs-china.org/

Emacs不仅仅是一个编辑器,它实际上是一个集成开发环境,其设计目标就是,你装了个Unix或者Linux系统,不需要装任何其它软件,只要装一个Emacs就够了,它能帮助你完成所有的任务。也就是说,除了编程,你还可以用它写论文、做幻灯片、浏览网页、收发邮件、聊天、听歌、看照片、玩游戏……目前,好像除了直接在Emacs里看电影还不行,其它的都实现了。

640?wx_fmt=jpeg

你使用了Emacs后你就可以不必学习VS去写C/C++,

不必学习Pycharm去学python,

不必学习eclipse去写Java,

不必学习MS-Word去写报告、幻灯片,

不必学习……

3 工程管理

对于工程管理,我们首先说说版本管理工具git。

我们知道,当年Linus创建了开源的Linux,从此,Linux系统不断发展,现在已经成为最大的服务器系统软件了。但是随着Linux的不断壮大,就需要各种版本控制了,起初Linus带着他的小弟们使用的是BitKeeper(商业版本控制系统),之后由于某种原因BitKeeper的公司不让他们使用了,于是Linus自己花了两周时间写出了git并且开源了(BitKeeper已哭晕在厕所),之后的岁月里,渐渐有了github、coding等一些可以使用git存储的网站,git的江湖地位变得无可替代了,如果你是个开发者却还不会使用git那就太out了。

640?wx_fmt=jpeg

在Ubuntu中我们通常使用下面命令来安装git。

sudo apt install git

git的命令非常多,如果熟练使用恐怕需要记住60-100个命令,但我们日常使用只需要下面六个命令即可。

640?wx_fmt=png

对于具体怎么配置环境参数,您可以参考往期文章:


【AI白身境】Linux干活三板斧,shell、vim和git


然后我们说下linux代码维护工具make。

640?wx_fmt=png

make是一种代码维护工具,其会根据makefile文件定义的规则和步骤,完成整个软件项目的代码维护工作。一般用来简化编译工作,可以极大地提高软件开发的效率。

make工具主要能解决两大问题:

1、对于一个复杂的工程,一旦你提供了正确的 Makefile,编译整个工程你所要做的唯一的一件事就是输入 make 命令,整个工程完全自动编译,极大提高了效率。

2、它能减少编译时间,对于一个拥有大量文件的项目,当你在改动其中一个文件的时候,可以只对该文件进行重新编译,然后重新链接所有的目标文件,节省编译时间。

对于make工具如何使用,请参考我们的AI工程师修行之路系列文章:

【AI白身境】只会用Python?g++,CMake和Makefile了解一下

总结


工欲善其事必先利其器,做好这三件事便使你能在完成一个项目时事倍功半。

转载文章请后台联系

侵权必究

更多请关注知乎专栏《有三AI学院》

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

往期精选

手把手教你学Simulink--基于新能源与储能系统的场景实例:压缩空气储能(CAES)系统热力学建模 本文介绍了使用Simulink进行压缩空气储能(CAES)系统热力学建模的详细步骤。系统模型包含压缩机、储气装置、膨胀机、热交换器和控制器等核心模块,通过MATLAB函数计算各部件参数,并设置仿真条件。文章详细说明了从模型创建到性能评估的完整流程,包括压缩/膨胀过程的能量转换、温度压力变化等关键指标分析。该建模方法可验证设计方案的有效性,并为系统优化提供参考,适用于新能源与储能领域的研究与应用。 阅读详情

相关推荐

GEO生信数据挖掘实战:从临床信息提取到多维分组可视化(聚类与PCA)

本文以GSE1297数据集为例,详细讲解了GEO生信数据挖掘中临床信息提取与分组构建的实战流程。通过R语言解析样本元数据,利用字符串处理技术从文本中精准构建疾病与对照分组,并强调使用层次聚类图和PCA图进行可视化验证,确保分组合理性与分析可靠性,为后续差异表达等高级分析奠定坚实基础。

cheese的博客 361

eclipse git插件还原文件

eclipse git插件还原文件 文章目录eclipse git插件还原文件eclipse git插件还原本地修改的文件eclipse git插件还原提交但未push的文件 eclipse git插件还原本地修改的文件 1、 以TestTwo.java为例,打开TestTwo.java文件,如图: 2、右击文件,选择Team -> Show Local History ,如图: 3、右侧的历史列表中,有不同的历史版本,选择compare current with local,如图: 如果是你

我是小妖怪,潇洒又自在 3545

数学建模国赛C题实战:从数据预处理到模型优化的完整流程(附Python代码)

本文系统讲解了数学建模国赛C题的完整实战流程,涵盖从数据预处理、模型选择与构建到优化与结果可视化的关键步骤。文章重点分享了如何利用Python进行高效的数据清洗、特征工程,并提供了多种机器学习模型的实现代码与对比验证方法,旨在帮助参赛者构建逻辑清晰、结果可靠的解决方案。

weixin_29079643的博客 294

Eclipse中使用GIT将文件还原至上一版本

GIT将文件还原至上一版本: 选中文件——右击——Replace With——HEAD Revision;

狼魂之力 2813

计算机视觉-深度学习图像检测方法梳理

计算机视觉-深度学习图像检测方法梳理 由于之后要转方向啦,趁这段时间整理手中硕士研究方向的一些阅读笔记,这是一篇关于计算机视觉的基础知识梳理 先搞清一些小知识点 首先我们要弄清楚图像分类、目标定位、语义分割、实例分割的区别 a. 图像分类 :给定一张输入图像,图像分类任务旨在判断该图像所属类别; b. 目标定位 :在图像分类的基础上,我们还想知道图像中的目标具体在图像的什么位置,通常是以包围盒的(bounding box)形式; c. 语义分割 :语义分割是目标检测更进阶的任务,目标检测只需要框出每个目

qq_41662991的博客 9953

【软件逆向】带壳带反调试找flag教程(VMProtect3.0+X64dbg+ScyllaHide)

【软件逆向】带壳带反调试找flag教程(VMProtect 3.0+X64dbg+ScyllaHide)

zhangjiuding的博客 7515

git 恢复丢失的代码

代码丢失找回,不然同事哭晕在厕所

weixin_38319647的博客 1564

VCS多lib编译实战:如何高效处理Verilog模块重命名与分开编译

本文深入探讨了在复杂SoC设计中,如何利用VCS工具实现多库编译,以高效处理Verilog模块重命名与分开编译的工程难题。通过解析synopsys_sim.setup配置、Config映射机制,并提供完整的自动化脚本实战指南,帮助工程师构建健壮、可维护的编译环境,从而显著提升大型项目的编译效率和代码管理灵活性。

weixin_29169505的博客 357

科普!考研考什么?都有哪些科目?

相信很多同学都想搞清楚:这个被叫做“考研”的家伙到底是个什么“狠角色”?俗话说:知己知彼,百战不殆。想要拿下24考研,首先就要把考研这个小妖精看透!今天就带领大家见识一下,考研考什么?都有哪些科目?01 硕士研究生入学考试科目全国硕士研究生入学统一考试分为初试和复试。1、学术型研究生招生初试科目学术型研究生招生初试科目一般为四个单元,即思想政治理论、外国语、业务课一和业务课二。教育学、心理学、...

计算机与软件考研 668

绿盾用户使用看图软件每次都需要把图片解密之后才能打开查看,怎么才能不用这么麻烦打开就能看

Win10专业版绿盾控制台7.0看图软件FastStone Image Viewer。

本博客,博文仅代表个人操作经验,不能完全解决你的问题,仅供参考,佛系回复。 1202

将Keil中的变量数组导出

首先,写好导出数据的函数。

小柚子的博客 1952

eclipse git还原代码_【杂谈】提升写代码效率不得不做的三件事

想成为一个优秀的AI算法工程师必须要熟练使用Linux,这是学习AI的一个基础,如果你一直还在用Windows,那就很low了。本文我们聊聊提升写代码效率不得不做的三件事。作者&编辑 | 汤兴旺 1 桌面管理首先我们说说一个最好用的终端,有着终端终结者之称的Terminator。对Linux系统进行管理时,我们经常需要通过终端窗口输入各种操作命令。在GNOME集成桌面环境下,GNOME终...

weixin_39575007的博客 68

GIS常用符号化色带(超级色带)根据python制作

GIS自带的色带比较单一,今天分享一款色带,应用之后大家出图的时候可以选择更多的配色,符号化/点击色块/样式引用/将样式添加至列表即可。色带类型比较多,大家可以自己尝试下不同的风格。简单符号化一下,看看效果。以中国县级行政区划为例,

J_Giser的博客 2640

【杂谈】体验AI帮助编写代码,有提升效率,AI本身提升空间也很大

​​。

一个追逐梦想的码农 5024

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

杂谈|大学生活那些事

目录: 一、关于“忙” 二、关于学习 三、关于考证 四、关于生活 五、关于编程

Elltor 448

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

写代码杂谈

命名规范 变量名字应当是变量类型加上变量意义的英文 前缀符号 变量类型 c char s short l long x portBASE_TYPE 类型、数据结构、任务句柄、队列句柄等定义的变量名的前缀也是 x p 指针 u 无符号数据 函数命名是 返回值的前缀+函数定义所在的文件+函数意义 函数名包含了函数返回值的类型、 函数所在的文件名和函数的功能,如果是私有的函 数则会加一个 prv(private) 的前缀。特别的, 在函数名中加入了函数所在的文件名,

qq_34613314的博客 275

【杂谈】-人工智能驱动的编码:提升效率还是增加网络安全隐患?

人工智能(AI)在软件开发中的作用已经从最初的语法校正和自动格式化,发展到能够生成完整代码块的高度复杂系统。最初,AI工具仅用于执行如语法检查、自动格式化和提供基本代码建议等次要任务,帮助开发者简化开发流程。

视觉与物联智能 1343

【项目杂谈】写前端代码应该具备哪些潜在的规范

前端代码规范、程序员需要遵守的代码规范整理

嗨,朋友你好!我是前端领域的工作者 519

【热门话题】实用Chrome命令:提升前端开发效率的利器

Chrome DevTools不仅是前端开发者日常工作的必备工具,更隐藏着许多高效且强大的功能等待我们去探索和应用。掌握上述实用命令和技巧,无疑能够极大提升前端开发与调试的效率,助力开发者在项目中更加游刃有余。随着技术的不断进步,Chrome DevTools也在持续进化,建议定期关注其最新特性,以便更好地服务于我们的开发工作。

鑫宝的博客 1635

杂谈1期:运维日常几大工作日常发布,处理告警,承接需求怎么写工具提升效率和代码能力

可以先把你那个每天的那种琐事由高频到低频就根据占据你时间长短的事情和列一下,每天就被这些杂事琐事去弄的,没有时间去学习,如何解决?第二点好处 节约我们的时间 提升我们的效率。第一点好处是锻炼我们的代码能力对吧。其实无外乎学几大类也是比较常见的。

爱吃鱼的小明的博客 297

Havenlon | 杂谈:当亲手写代码开始被叫作“古法编程“

“古法编程”的流行,折射出软件生产方式正在发生根本变化:代码正从稀缺资源变成近乎无限供应的商品。AI 降低了生成代码的成本,却没有同步降低判断、验证与承担责任的成本。程序员的价值因此正从“亲手写出来”,转向定义目标、设计架构、划分边界、验证结果与控制风险。未来软件产业真正昂贵的,不再是代码本身,而是判断、责任、可信与知道什么不该被执行。

Havenlon 创始人 Charles Wong,长期关注 AI 执行控制、物理信任边界、硬件安全与系统治理,记录一个新品类的形成过程。 202

杂谈——记一次代码的优化历程

之前有一个需求,有一批项目数据,需要对项目数据的标题按照一定进行清洗,清洗完之后去除重复标题的数据,得到最终结果。 已知项目数据一共有四种状态,分别为公告,预告,结果与变更。在这个需求里,公告、预告为同一规则,结果与变更为另一规则,规则关键词如下: 具体规则如下: 由此可知,我需要去除目标数据中所有规则关键词的组合词。 由于当时需求比较紧急,因此便马上根据规则写了一套很粗糙的程序...

Searchin_R的博客 6563

代码质量杂谈01

从17年自学编程开始到现在写代码也有五年了。期间在不同公司和各式各样的开发者合作过,一个很大的感触就是大多数开发者要么并不在乎自己的代码质量,要么根本不清楚什么样的代码是好的。

qq_35488769的博客 844

【杂谈】FPGA之路——Verilog与编辑器的那些事儿

【杂谈】FPGA之路——Verilog与编辑器的那些事儿 Verilog HDL,硬件描述语言的一种,以文本形式描述数字系统硬件的结构和行为的语言[1]。Verilog HDL和VHDL是世界上最流行的两种硬件描述语言。在硬件描述语言中是很流行,但在所有编程语言中,其长期在100名左右徘徊,在TIOBE 2019年2月的排行榜中甚至跌出了前100名,足见其有多小众。 「 Verilog与Not...

ONE_PUNCH 9129

热更新有多重要?游戏代码热更新杂谈

热更新的内容可以是美术资源,可以是代码,但相对来说,美术资源的更新不会受到约束,代码实际上是重灾区,本文介绍的主要是代码热更新。  热更新对于开发者来说是一件麻烦事,特别对于看重效率,便捷性和结构的程序员来说,热更新就是运营人员的不懂技术的表现。  然而,对于上线才是刚刚开始的网络游戏,特别是手游来说,热更新是极为重要的基础功能。  为什么要热更新  客户端  1、适应上线需求  对于手...

ddry47579的博客 511
上一篇: 【MatConvnet速成】MatConvnet图像分类从模型自定义到测试
下一篇: 【完结】12篇文章告诉你深度学习理论应该学到什么水平
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言有三

三人行必有AI

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值