‘壹’ 作为程序员的你,常用的软件有哪些
这个就非常多了,下面我以常见的编程开发软件和数据库管理软件为例,简单介绍几种,感兴趣的朋友可以尝试一下:
01 编程开发软件这个要看具体编程语言了,不同语言开发工具自然不同,这里以常见的C/C++、java和Python为例,简单介绍3种比较常用的软件:
这是Windows平台下一个非常专业的集成开发工具,号称宇宙第一IDE环境,不仅仅只是C/C++,常见的C#、VB等编程语言,这个软件都能很好支持,智能补全、代码高亮、语法检查等功能非常不错,除此之外,还支持单元测试、代码重构和分析等高级功能,因此非常适合大型项目开发和维护:
这是一个非常专业智能的Java开发工具,在企业和个人桌面中,有着非常高的使用率和欢迎度,自动补全、语法提示、代码高亮等功能非常不错,除此之外,还支持JUnit、CVS整合、代码重构等高级功能,自带有Maven和Gradle构建工具,因此更适合Java项目开发和维护,个人使用起来非常不错:
这是一个非常专业的Python开发软件,和IntelliJ IDEA一样,Jetbrains公司的产品,在业界非常流行、受欢迎,智能补全、代码高亮、语法提示等功能非常不错,除此之外,还支持代码重构和分析、单元测试等高级功能,因此更适合大型项目,个人使用来说,也非常简单,很容易上手和掌握:
02 数据库管理软件
这个就非常多了,不同数据库都有专门的管理软件和工具,这里简单介绍3个比较通用的数据库管理软件,分别是HeidiSQL、DBeaver和DataGrip,对于日常使用来说,非常不错:
这是Windows平台下一个非常轻巧灵活的数据库管理软件,基于Delphi开发而来,目前支持MySQL、MariaDB、MSSQL、PostgreSQL等主流数据库,常见的建库建表、视图索引、触发器等基本功能,这个软件都能很好兼容,除此之外,还支持SQL脚本导入导出、数据备份恢复等功能,对于日常数据库管理来说,非常不错:
这是一个基于Java开发的数据库管理软件,免费、开源、跨平台,目前支持Oracle、MySQL、PostgreSQL、SQL Server等十几种主流数据库开发,建库建表、视图索引、触发器、存储过程等基本功能 都 可轻松查看和设计,数据库导入导出、数据 恢复 备份等功能也都非常不错,对于日常数据库管理和维护来说,是一个非常不错的工具:
这也是一个通用的数据库管理软件,Jetbrains公司的产品,支持跨平台,但原则上针对个人不免费,常见的PostgreSQL、MySQL、Oracle等数据库,这个软件都能很好支持, 数据导入导出( 恢复备份 )、 智能代码填充、版本 集成 控制等功能非常不错,对于日常数据库管理来说,也是一个不错的工具:
每天常用开发工具:
0.Git:分布式版本控制系统;
1.IntelliJ IDEA:java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一;
2.Sublime Text:不只是代码编辑器;
3.Postman:Http请求模拟工具和功能强大的网页调试工具;
4.DataGrip:支持几乎所有主流的关系数据库、多功能的数据库操作工具;
5.Vagrant:用于创建和部署虚拟化开发环境,配合虚拟机使用;
6.Gradle:自动化构建工具;
7.JIRA:项目与事务跟踪工具;
8.iTerm2:Mac上的终端工具;
9.Jenkins:持续集成工具。
做了一个写代码用了十几年的人,很多编程的习惯已经养成了,现在就罗列下每天必用的软件:
直接安装的linux系统,因为几乎所有的代码都是在linux下完成
不同的开发语言,每天要用到的软件可能不一样。
我是开发java web的,电脑安装了很多工具,但是说每天要用到的好像就几个。
作为程序员使用最多的软件,莫过于编程开发所用到的软件编辑器,但是编辑器的种类有很多。我们需要做到的是,找到你最喜欢的编辑器然后熟练的使用它。
同时掌握常见的一些快捷键的操作方式,从而来提升我们的工作效率,而不是以软件而论软件,什么都去接触使用。毕竟软件是工具是帮助我们提升开发效率。
下面我就列举我们PHP经常使用的软件
IDE工具类软件这一类是开发软件编写代码用的。这一类的软件非常多,我就推荐一个经常使用的PHPStorm,因为太多的话大家也用不到,也没有那么多的精力去熟练每一个编辑器。
PHPStorm是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。可以说是PHP开发程序员必备的神器。
常用快捷键如下:
1.复制快捷方式
F5 复制文件/文件夹
CTRL+C 复制
CTRL+V 粘贴
CTRL+X 剪 切,删除行
CTRL+D 复制行
CTRL+SHIFT+V 可以复制多个文本
2.自动代码
ALT+回车 导入包,自动修正
CTRL+ALT+L 格式化代
码CTRL+ALT+I 自动缩进
CTRL+ALT+O 优化导入的类和包
CTRL+SHIFT+SPACE 切换窗口
CTRL+SPACE空格 代码自动完成,代码提示,一般与输入法冲突
CTRL+ALT+SPACE 类 名或接口名提示(与系统冲突)
CTRL+P 方法参数提示,显示默认参数
CTRL+J 自动代码提示,自动补全
CTRL+ALT+T 把选中的代码放在 TRY{} IF{} ELSE{} 里ALT+INSERT 生成代码(如GET,SET方法,构造函数等)
3.运行
Alt + Shift + F10 选择的配置和运行
Alt + Shift + F9 选择配置和调试
Shift + F10 运行
Shift + F9调试
Ctrl + Shift + F10运行范围内配置编辑器
Ctrl + Shift + X运行命令行
4.其他快捷方式
CTRL+Z 倒退(代码后悔)
CTRL+SHIFT+Z 向前
CTRL+H 显 示类结构图
Ctrl +F12 文件结构弹出
CTRL+O 魔术方法
CTRL+/ 注释//取消注释
CTRL+SHIFT+/ 注释/*...*/
ctrl + '.': 折叠选中的代码的代码
ALT+ / 切换代码视图,标签切换
5.其他快捷方式
CTRL+Z 倒退(代码后悔)
CTRL+SHIFT+Z 向前
CTRL+H 显 示类结构图
Ctrl +F12 文件结构弹出
CTRL+O 魔术方法CTRL+/ 注释//取消注释
CTRL+SHIFT+/ 注释/*...*/
ctrl + '.': 折叠选中的代码的代码
ALT+ / 切换代码视图,
数据库相关常用的工具 Navicat for MySQL是管理数据库的操作工具,都是可以连接远程的云数据库。方便简化开发,还可以手动备份、可视化的sql分析。
常用快捷键:
ctrl+q 打开查询窗口
ctrl+/ 注释sql语句
ctrl+shift +/ 解除注释
ctrl+r 运行查询窗口的sql语句
ctrl+shift+r 只运行选中的sql语句
F6 打开一个mysql命令行窗口
ctrl+d (1):查看表结构详情,包括索引 触发器,存储过程,外键,唯一键;(2):复制一行
ctrl+l 删除一行
ctrl+n 打开一个新的查询窗口
ctrl+w 关闭一个查询窗口
ctrl+tab 多窗口切换
服务器连接软件XShell6是非常强大的SSH远程终端客户端,帮助我们连接远程的Linux服务器来进行操作。
粘贴:Shift+Insert
历史 命令编辑ctrl + p 返回上一次输入命令字符
alt + > 返回上一次执行命令
其它
ctrl + s 锁住终端
ctrl + q 解锁终端
ctrl + l 清屏相当于命令clear
Tab键,快速补全命令
轻量级文本编辑器Notepad++。这个很轻量,打开一下文本非常的方便。
常用快捷键
Ctrl+C 复制
Ctrl+X 剪切
Ctrl+V 粘贴
Ctrl+Z 撤消
Ctrl+Y 恢复
Ctrl+A 全选
Ctrl+F 键查找对话框启动
Ctrl+H 查找/替换对话框
Ctrl+D 复制并粘贴当行
Ctrl+F2 切换书签
F2 转到下一个书签Shift+F2 转到上一个书签
F11 全屏模式
前端 :
visual studio code
后端:
pycharm
IDEA
安卓:
android studio
浏览器:
谷歌
火狐
数据库管理:
navicat
远端链接:
fileZilla
xshell
electerm(mac上使用)
流程图设计:
xmind
processOn
笔记:
为知笔记(付费一年60)
有道云笔记
虚拟机(容器)
VMware Fusion(mac上)
docker
其他:
postman
jmeter
作为一个12年开发经验的前端程序员,我来聊聊每天必用的几个软件。
写代码自然离不开 编辑器 。目前我主要使用的是微软的 Visual Studio Code 。VS Code比较轻量,功能足够应付日常开发所需,跨平台,而且完全免费 。因为之前长期使用Visual Studio在Windows平台上做开发,后来技术栈变化,经常需要在Linux和MacOS上做开发,VS Code就成了我顺理成章的选择。后来干脆在Windows上也用VS Code了。目前整个团队都已经被VS Code圈粉了。其它类似的如Sublime Text(需要付费)和Atom也有不少人使用。
因为是团队开发, 源代码管理工具 自然必不可少,而 git 是目前最热门的一个。我们公司也不例外,几年前从Perforce迁移到了 GitHub企业版 (和公众版本UI完全相同)。平时的代码审查也都是在GitHub企业版上完成的,不再使用单独的代码审查工具。有些不习惯使用命令行方式的同事使用 SourceTree 完成日常的代码分支管理和提交,而我则比较热衷于命令行方式。VS Code也提供了比较完善的git集成,但因为习惯的原因,除了直观比较不同代码版本的差异,我一般也不用VS Code执行git操作。
作为一个Web前端, 浏览器及前端调试工具 自然不可或缺, Google Chrome + Developer Tools (F12) 自然是首选。使用Developer Tools,可以对JavaScript进行调试,监控HTTP请求/响应,分析CSS计算问题和JS性能问题。 Chrome下还有很多功能强大的插件,个人比较常用的包括React Developer Tools、PostMan、Proxy SwitchOmega和AdBlock。当然,因为经常面对浏览器兼容性问题,Firefox、IE、Edge、Apple Safari以及各自的Developer Tools都是免不了要用的。
团队目前使用Scrum模型,自然需要一个做 任务规划和质量管理 的工具。我们采用了 JIRA , 每天的站会(daily stanp meeting)都会对scrum看板(board)进行更新。
遇到技术问题,自然免不了要上网查找资料。 Google 的使用频率非常高(需要科学上网)。大部分问题都能在 StackOveflow 上找到线索,但有时候也不得不跑到大名鼎鼎的同性交友网站 GitHub 上看源码。 MDN (Mozilla Developer Network)对于前端开发也是不可或缺(此处鄙视一下w3cschool,上面到处是错误知识)。
其它如node.js/npm、docker等,因为和具体的技术栈相关,就不具体展开讲了。
作为一个开发人员,你每天使用什么软件呢,欢迎说说看。
尽管我是后端出身的,不过也经常写前端代码,甚至还用C#/C++参与过一些客户端开发,自认为也算是一个Web全栈工程师。随着前端技术的不断进步,现在的前端已经不再是写写页面这么简单了,很多逻辑在前端就写了,我建议每一个出色的开发者应该尽可能对前后端都能有不错的掌握。
今天给大家推荐一些我认为前端和后端开发都需要经常用到的一些软件,这里面包括了查询资料工具、原型工具、文本编辑器、版本管理工具。
原型工具 不管前端还是后端,尤其是前端程序员,在跟产品经历沟通之后肯定会要查看原型的,方便自己在开发过程中使用,基本上大公司输出的原型都比较规范,除非你遇到张小龙这种级别的大神,哥们儿直接盯着你做了。
目前主流的原型工具主要有Axure、MockPlus、墨刀等,其中Axure依然是应用最为广泛的原型工具,大多数开发者也都应该用来看原型。
文本编辑器 不管是前端还是后端程序员,当然前端程序员就不说了,在WebStorm出现之前,没有一款真正可以叫做IDE的前端开发工具,那么基本上文本编辑器就是前端程序员最重要的编程工具。同样后端程序员即使不需要写前端代码,文本编辑器也是必备的,您不需要每次看代码都打开庞大的集成开发环境,像IDEA这种比较耗费资源的,平时查看代码啥的完全没有必要,何况你还经常要看一些前端代码。
当然你比较习惯Linux/Unix下开发,Emacs/Vim可能是你用得比较多的文本编辑器,还有UltraEdit、Sublime Text、EditPlus、Atom这些老牌的文本编辑器,不过现在我觉得每个程序员都应该下载一个Visual Studio Code,支持的语言比较多,而且插件非常丰富,是微软官方支持的开发者工具,开源免费而且颜值非常高。
查询资料、版本管理工具不用多说,每个程序员都要学会很好的使用Google、Stack Overflow两个工具,可以说你日常开发当中可能遇到的问题,通过这两个工具你全都能找到解决方案。
另外一个是Dash文档管理工具,Dash是一个非常好的开发者帮助文档工具,这个工具的好处是给所有的开发文档做了一个整合,C/C++、Java、PHP、Python、Latex、Emacs Lisp、Haskell、JavaScript、Go语言等文档都能够在这个工具当中下载使用。
最后一个就是版本管理了,SVN和Git依然是目前使用最为广泛的版本管理工具,不过就使用来说我还是推荐Git版本控制系统,可以说这个时代Git就是最好的版本管理工具了,尤其是开源时代、互联网时代,Git已经成为了最重要的版本管理工具,不管是命令行管理还是使用Github等客户端工具,堪称完美。
入行十一年,现在主要做一些管理和架构方面的工作,也会做一些Coding,主要是一些新技术的研究和“踩坑”。
编辑器首先是EditPlus,这是一个文本编辑器。最常用的两个功能:正则表达式查询和文件夹内所有文件内容搜索。
平时经常需要看一些系统日志,甚至要从好几天几十个日志文件中找到内容,这个软件很好用。(原谅我们没有上日志平台)
然后就是IDE啦,我还是喜欢用Eclipse,有时候会用STS(Spring Tool Suite),它也是一个被包装过的Eclipse,方便做一些Spring框架的研究。
一个是DbVisualizer,凡是具有JDBC数据库接口的数据库都可以管理,什么数据库都能连。
还有一个是SQLyog,这是一个快速而简洁的图形化管理MYSQL数据库的工具,我只用里面一个功能,就是数据的导入导出,效率非常高!
大部分项目只对外提供接口服务,所以接口测试工具少不了,我一般使用SoapUI,WebService/Rest都可以进行测试。
每天肯定会用的肯定不止上面几个,还有版本控制工具svn和git,都会用到是因为单位svn现在开始往git迁移。
因为用的Scrum敏捷开发流程,所以JIRA、Sonar、Fisheye这些也是都会用到的。
Maven也不用说了,几个项目基本都是基于Maven构建的。
必用的基本就是这些,只要电脑开着,这几个软件基本都是打开状态。
‘贰’ 程序员要具备什么技能
一名合格的程序员需要掌握哪些技能呢?x0dx0ax0dx0a熟练掌握开发工具x0dx0ax0dx0a做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVA One很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。x0dx0ax0dx0a熟知数据库x0dx0ax0dx0a为什么数据库是如此重要?作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。x0dx0ax0dx0a对操作系统有一定的了解x0dx0ax0dx0a当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对操作系统有一定的了解后,你会发现自己上了一个新的台阶。x0dx0ax0dx0a懂得网络协议TCP/IPx0dx0ax0dx0a在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。至少,你需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。x0dx0ax0dx0a明白DCOM/CORBA/XML/WEB Services存在的意义x0dx0ax0dx0a随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再回头看这些技术的具体实现,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布计算的基石之一。x0dx0ax0dx0a不要将软件工程与CMM分开x0dx0ax0dx0a现代大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。一句话可以概括我的看法:“创意无限,流程保证”。x0dx0ax0dx0a拥有强烈的好奇心x0dx0ax0dx0a什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在。
‘叁’ 有哪些程序员必备的物品
电脑、鼠标、键盘等这些都是程序员必备的物品。
电脑一台性能好的电脑是工作中的好帮手,这里不纠结选Mac还是Windows,各凭喜好,但是一定要在能力范围内买性能最好的,否则工作时候卡一卡很影响心情,当然好处是能多点时间摸鱼。
现在笔者觉得性价比很高的是M1芯片的mini,在淘宝上不到八千就能入手,性能是真的好。唯一缺点是不能带着电脑去开会,显示器的话我相信大家要不公司配了要不就自己买了。显示器如果你公司福利好的话。可能会发4K的显示器,当然大部分还是配的1K的显示器。
这里很推荐大家购买4K的显示器,看起来会舒服很多,搭配公司发的整个双屏,工作效率会有一个不错的提升。键盘键盘很多人应该都会推荐机械键盘。对于这个笔者这里也就不多说了。其实相比于机械键盘,笔者会更喜欢静电容键盘,国产的价格几百块钱也不贵。
但是敲起来的手感会觉得比机械键盘舒服很多,而且也没有什么噼里啪啦的声音。私藏好物手写板笔者喜欢写代码。文章前里一个大纲、思路出来,字是越来越懒得写,还费纸,就直接上手写板了。这玩意淘宝上买个便宜的就行,小米八九十就能搞定,写代码前理好思路,能减少很多问题。
站立桌程序员久坐,再加上年级变大。腰反正是越来越差了,所以时不时地站起来活动一下是很有必要的,那么这个时候整个站立桌就很有必要了。一两小时升降一下,站立办公一会对身体好点。
‘肆’ Mac OS 上有哪些程序员必备的软件
Xcode 在Mac上做开发必备,其本身主要用于开发iOS和Mac应用程序,但是会附带安装一个Mac下开发者工具包,里面会有很多有用的工具。
iTerm2 终端增强
Homebrew 包安装管理
Sublime Text或者TextMate或者MacVim或者Emacs 文本编辑器,选择一款熟练使用就可以了
TextExpander 自定义文本工具,加快你的编码速度,用其他代替物也可以,如Keyboard Maestro。
Dash 文档快速查询工具
‘伍’ 各位在mac os环境下的程序员使用什么开发工具来编写C
现在的开发工具很多,只要自己觉得使用方便就可以了
‘陆’ 有哪些it程序员的必备神器
URL Decoder/Encoder:https://meyerweb.com/eric/tools/dencoder/ 特别实用的一个用来处理URL编码和解码的小工具,你甚至可以直接将这个页面的源代码保存下来,这样不需要连接上网也可以离线使用。附送的一个隐藏功能就是当你从任何地方拷贝信息过来的时候,它会自动去除拷贝过来的格式化信息,小编自己基本上每天都会使用这个小工具复制粘贴各种信息。
iTerm2是一款完全免费的开源软件,可以完全替代MacOS的终端。iTerms功能强大,使用方便,可以让你轻松且高效地管理和定制化你的工作流程。iTerm2的一些特色功能包括:标签变色,智能选中,自动补齐,全屏展示所有的 tab并支持搜索(Exposé Tabs),丰富的快捷操作等。
Textpad这款工具具有无限制的撤销/重做功能,并且能够编辑超大文件,文件上限是系统虚拟内存大小。
Octotree:https://www.octotree.io/Github是目前使用最广泛的版本控制工具,然而通过浏览器访问Github的体验并不是那么友好,特别是当我们需要不断地访问不同文件夹里面的文件的时候。Octotree正是这样一款浏览器插件,它提供了类似IDE的便于访问的代码目录树,能够提高我们在Github上工作效率。
Wireshark:这个工具可以用来监控机器上的TCP、HTTP等各层级的网络通信。作为后端开发,如果想看前端发来的请求到底都包含了哪些信息,又没有前端的调试环境的话,使用Wireshark监控HTTP请求是很好的解决方案。自己在程序中发HTTP请求时,也可以使用它来检查发出的HTTP请求是否符合自己的预期。
Mermaid:这个工具可以使用脚本语言直接渲染出流程图、时序图、甘特图,写文档简单快捷。免拖拽,免排版,格式控制统一。脚本也便于存放修改,样式可以复用。还可以使用插件集成如Markdown编辑器,进行实时预览。
spectacle:Mac free source 窗口控制工具,拖拽窗口到屏幕边缘resize,也可以自定义快捷键。用起来跟Windows上面一样。相比较于Moom,SizeUp,Divvy,spectacle支持鼠标拖拽到边缘resize,非常便利。
Tmux:一个虚拟终端可以管理多个会话,窗口和面板。执行 tmux 命令时就开启了一个服务并创建了一个会话,窗口和面板。支持分屏,同时处理多个操作。不受断网影响,避免丢失重要工作进度。方便演示与协作,支持结对编程。
Caniuse:https://caniuse.com/#home 通过这个网站,用户能够查询主流浏览器特定版本对HTML,CSS和JS的支持情况。并且最重要的是它“免费”!
Visual Studio Code:这是微软出品的IDE工具,跨平台(Linux,Mac,Windows)。轻量级内存占用,品质稳定且免费。同时内置Git版本控制功能。值得一提的是插件生态丰富,安装插件简单,通过插件可以增加更丰富的语言支持、主题定制、文本自动格式化等能力。
‘柒’ 【程序员·随身听】玄学:机械键盘
大家好,感谢收听【程序员·随身听】。
这一期准备讲一讲程序员群体中的一种玄学:键盘,具体来说,是机械键盘。还有一种玄学,是耳机。如果说键盘是程序员的武器,那么耳机就是程序员的铠甲,不过,这一期我们先不讲耳机了。
先阐释一下啥叫玄学,玄学是指那些不可知,不可思议,科学不能解释,不能涉及的学说。
这样来说,似乎玄学带有贬义。不过,事先声明,本期中的玄学并没有贬义的意思,而是带有一种膜拜,或者说,想要亲近,却不得要领,没有途径,而带有一种酸葡萄心理的感情色彩。
说到这里,可能有些听者琢磨出来点味道,好家伙,原来你不是圈里人啊。
对啊,我不是圈里人,默哀三秒钟,一,二,三,然后擦干眼泪继续说。
到这里,作为厚道人,我得说,如果您想通过本期音频,得到关于机械键盘的指导型知识,就得失望了,因为我也想得到这方面的知识。如果您知道,还希望您能够通过微博告诉我。我是真的想知道啊。在此,先声谢过。
那么,我说点什么呢?才疏学浅的我,只是想把这个话题抛出来,谈一谈自己的一些观察和看法。如果有幸能够抛砖引玉,得到高人指点,到时候任督二脉一通,我再做一期指导型的音频。
那么,我们开始进入正题。
键盘作为电子产品的输入设备,比鼠标要出现得早。这很正常,因为进入图形交互系统的时代,我们才有鼠标的需求嘛。直至如今,键盘仍是我们在电子产品输入内容上,不可或缺的设备。
我们知道,一般来说,键盘有两大类,薄膜键盘和机械键盘。还听说一种,叫静电容键盘,静电容键盘太少见,我根本没见过,网络上说,静电容键盘是利用电容容量的变化来判断按键的开和关,在按下按键后,开关中电容容量发生改变,从而实现触发,整个过程不需要开关的闭合。正是由于无物理接触点就可以实现敲击,因而磨损更小,使用寿命更长。更稳定、迅速、全键无冲突、无比灵敏。通常在大型医疗设备上能够见到,也可作为比较昂贵的高端游戏外设。
在静电容键盘还没有进入主流前,我们就不说它了,回到薄膜键盘和机械键盘上。它俩的区别,简单来说,薄膜键盘的键,表面看起来是一个个的,其实,每个键帽是依托在一整张薄膜上的,按下一个键,薄膜上就压下去一个点到印刷电路板上,发出电信号。而机械键盘,那真是一个键,就是一个电信号的开关。所以,你就知道,为啥机械键盘要比薄膜键盘贵很多了,因为从工程学上讲,机械键盘的结构就比薄膜键盘复杂多了。
虽然,一般,机械键盘比薄膜键盘贵,但吊诡的是,早起的键盘可都是机械键盘。我小时候玩的小霸王学习机,就是那个一开机就发出诡异的声音——“小霸王,其乐无穷啊”,那就是机械键盘的。那时候还觉得敲键盘挺费力的。但如果,我们仔细观察下键盘的发展历史,就不奇怪了,就跟汽车一样,早期的汽车,纯手工打造,零件都是匠人一个个做出来的,但随着汽车行业的发展,追求产业化,模块化,纯手工打造的汽车必然退出主流汽车市场。键盘也是如此,随着技术发展,产业化的进步,薄膜键盘应运而生,一下子降低了成本,还增加了便携性。为什么还增加了便携性呢,因为由于机械键盘每个键都是一个个小开关,它需要一定的体积,而薄膜键盘只是一个按的动作,因此薄膜键盘能够做的很薄。为啥苹果的 MacBook 系列能那么薄?所以,即使它的键盘体验被称为敲铁板,它也不可能换成机械键盘,只能在薄膜键盘的基础上,想办法提高键盘的舒适感。
按理说,机械键盘在薄膜键盘的冲击下,就要退出历史舞台了,就像软盘被U盘取代,机械键盘的好兄弟,机械鼠标(就是肚子里装着一个滚球的鼠标)被光电鼠标取代。但是,有时候,有些看似过时的产品,还能苟延残喘,甚至是复活。就像纯手工打造的汽车,可能还是有它的小众市场。历史上,这样的事例也不少见,比如说拍立得,前段时间,我的朋友还用拍立得给自家的娃拍照留念;比如说广播,要知道电影电视的兴起,那可是把无线电广播冲击的奄奄一息,但现在广播在汽车的普及下,在新的生活节奏下,又生机盎然。我作为程序员,都要在蜻蜓FM做广播了。
这里插一句,关于小众产品的复活,大家可以看一下爱奇艺上王自如的脱口秀,《科技相对论》,其中第一季的第三期就专门说的小众产品的复活。
书归正传,继续说我们的键盘。机械键盘为什么能够复活呢?我觉得,一个原因很重要,那就是有很多工作,都是要长期伏案于键盘之前的。像编辑,像程序员,一天敲键盘几个小时那都是少的。键盘作为生产力工具,那就相当于战士的武器,谁不想要一把得心应手的武器呢?这时,我们就怀念起机械键盘那独特手感和反馈感,甚至那噼里啪啦的敲击声。这就是我认为机械键盘复活的重要原因。
另外,程序员作为一个群体,也有自己的文化。文化是虚的,是需要在具体事物上表达的。作为程序员的一个重要生产力工具,键盘必然被程序员赋予了文化符号。为了个性化的彰显,为了追求差异化,甚至仅仅是为了鄙视另一个程序员,就这样,机械键盘就在薄膜键盘的势力包围中,强势回归。
现在的机械键盘,不仅种类很多,颜值担当的也很多,甚至有很多绚丽夺目的小功能,什么呼吸灯,跑马灯,夜间背光等等。我们接下来就说说机械键盘的门派。
在机械键盘的江湖,有四大门派,轻快如风的红轴,内外兼修的茶轴,嚣张直爽的青轴,直来直去的黑轴。
门派之别,来源于对武术的不同见地,但毕竟都是武术,有相同的根源。那机械键盘的共同原理是什么呢?
首先,不管是什么轴,它的机械轴都是由开关帽、开关帽固定卡、弹簧、触点金属片和底座构成,还有一部分的机械轴里还有跳线。这几个部件中,最关键的部位是开关帽,弹簧和触点金属片,它们的不同导致了触发的压力,手感和按键的寿命不同。先说弹簧,弹簧的圈数越少,弹簧的反馈压力就越大,黑>青>茶>红,再说开关帽,开关帽作用于触点金属片,按压导致触点金属片连接或者断开回路,发出电信号,开关帽作用于触点金属片时产生阻力,阻力就会让我们感受到传说中的段落感,再加上开关帽不同的嵌套结构,作用到底座的键程不同,会带来不同的节奏感,红轴和黑轴就是直上直下的感觉,而茶轴和青轴则有一定的阻尼感。然后说说触点金属片,机械键盘单轴寿命是2000万次到8000万次不等,如果一个键被用坏了,一般来说,就是触点金属片损坏了,可以说触点金属片决定了机械键盘单轴的寿命。(要知道,薄膜键盘的寿命一般来说是30万次,如果一个键,你一天按100次,30万次就代表着这个键你能用3000天,小十年呢,机械键盘单轴几千万次,可以说,在你厌烦它之前,是用不坏的)说完最关键的三个部件,最后说说键帽,键帽是我们敲键盘是最直接触摸到的,一般是不同质地的塑料,键帽上的字有很多工艺,比如丝印,激光雕刻,激光刻蚀,热升华,二色成型,丝印是最容易让字摩擦刮花甚至消失的。
热闹的江湖只有四种门派么?当然不是,除了红黑茶青,还有绿轴,橙轴,白轴,灰轴,甚至怪轴,它们有的是不同于上面几种轴的力度,有的是用于空格键这样比较特殊的按键上,它们都比较稀有,有的已经停产,比如白轴,有的是厂家定制款,比如雷柏的橙轴,所以,这个江湖还是很热闹的。
讲完了机械键盘的基本情况,我们来说说玄学部分吧,那就是机械键盘的体验。
有人说,青轴是键盘里的春天,因为青轴触发深度最深,段落感最强,噼里啪啦的声音最大,打字的时候清脆爽快,像沐浴在春风中敲架子鼓。据说,使用青轴容易被你四周的人揍。。。
有人说,黑轴是公认的游戏轴,玩游戏黑轴是不二之选,因为黑轴没有段落感,直上直下,一触即发,打一盘游戏,尽显激情。
又有人说,茶轴是键盘中的绅士,优雅冷静,它全面兼顾,介于打字和游戏之间,相较于青轴,段落感弱了很多,相对于黑轴,又不是直上直下,因此,也有人会觉得它中庸没有个性。
最后说,红轴,红轴一般推荐给女生,因为它和黑轴一样直上直下,打字轻快,同时,它压力系数最小,毫不费力。
听到这里,不知道你能不能明晰的分出四种轴的不同,其实,真让你感受四种轴,可能没有那么明显的不同,如果把那些更小众的轴加上,如白轴,橙轴,灰轴,绿轴,你更加区分不出来。但是被人表达后,人为的强化了不同。这就产生了玄学。玄学的诡谲之处在于,你要根据这些体验去选你想象中的键盘,大概率的可能性是与你的想象不同。就是说,听起来很有道理,指导起事情来,可能要抓瞎。所以,我觉得买键盘,还是要买有眼缘的,当个外貌协会也不错,有机会呢,还是要去感受一下,觉得喜欢就好,没必要根据四种轴的文化定位来选。即使你选了黑轴,该团灭还是会被团灭的。
关于上面说的体验,没有接触过如此多的种类,或者没有长时间在键盘上码字的体验,可能很难有共鸣。你也可能会觉得这些人好矫情啊,不就是码字敲键盘么,说的神神叨叨,故弄玄虚。是啊,是有些故弄玄虚,文化不就这样么,虚虚实实,人类就是这样一种喜欢听故事的动物啊,把你心目中的神抽丝剥茧,还原历史情境,他还会让你感动的起鸡皮疙瘩么?所以,我们还是把机械键盘理解为一种程序员可爱的文化吧。
总结一下来说,机械键盘,相对于薄膜键盘,在体验上没有质的飞越,打字也不一定更快,也不省力,可能只是释放了本能中对节奏的渴望,但是却给程序员带来了很大的愉悦,创造了话题,也是程序员文化中不可或缺的一部分。
感谢您的收听。
‘捌’ 在程序员眼中的苹果mac电脑为啥如此受欢迎
身为程序员,说下答案,在使用了四五年的macbook air 13总结的最喜欢的几个原因,主要三个原因,1、苹果系统;2、触摸板;3、便携性
作者大概在05年有的第一台电脑,不过是个台式,那时候笔记太贵了,液晶显示器也贵的离谱,只能买得起台式,那时一直接触的windows系统,到了最近几年才接触的mac电脑和Linux,这几年的接触中不得不说,这操作系统对编程人员的支持和Linux一样,相当的棒。尤其是对编程语言ruby语言的支持上。
由于这个开发语言的特殊性,导致windows下的开发异常的麻烦,经常出一些莫名其妙的问题,如果你不想让你的开发半途而废,迟早换系统吧,linux和macos会是不二之选。
钱还富裕的话,可以考虑air系统,如果还有充足的话pro也很不错,如果一般的话,可能考虑性价比高的电脑装一个linux系统,当然可以尝试一下装个虚拟机,里面再装个mac系统也很不错的。
好用的具体系统在哪?
还是挺多的, terminal终端、分屏 ,这应该是程序最喜欢的两大特色之一,至于界面美观用起来丝滑流畅那反而并不是程序员更加关心的问题,开发人员这类人群更注重效率,像linux和macos系统集成的软件包管理,就是一个非常好的例子。
比如在安装像mysql或者git软件的时候,你不需要像windows那样,先去搜索引擎下一个,再下一步下一步的安装,我们只要在terminal打上一串安装代码就可以了。
当然非程序员对代码很陌生,他们并不觉得这是一件非常有效率的工作,对他们来讲,windows的操作可能更人性化一些。
这个应该是苹果除了系统以外最具特色的东西了,鼠标在苹果系统中可没有触摸板受欢迎,这在学年用windows的用户看来是不可想象的,毕竟鼠标太好用了,触摸板不是太小移不到位,就是不精准,这在苹果系统下完全不存在,苹果系统的触摸板是一个比鼠标更好用的设备,表示自从买了苹果mac,一直就没用过鼠标,到现在一直没用。
合上电脑盖子就走 ,之前一直在非苹果机上玩,这个操作第一印象就是,再次打开时,电池损耗会增加,系统恢复后会非常慢,这是不可想象的,但苹果能做到。
长时间不关机 ,话说,现在写文章这台机器,已经几个月没关机了,不用时就是合上盖子,这在windows下的操作习惯完全不同,别说几个月不关机,一天不关机,你第二天的电脑就会很卡。想到一个故事,但更多的是一个笑话,一个微软员工跳槽到苹果公司,下班时看到他同事合上盖子就走了,就问了一句:你们怎么不关电脑,结果得到的是一堆鄙视的目光。
电池很抗用 ,手上这台mac air,在咖啡厅用一天妥妥的,不用带电源这个累赘。
‘玖’ Mac上有哪些可以替代Xshell的工具
1、Alfred 是 Mac 平台上最为传奇的效率工具。Mac 对原生 Shell 的支持是无数程序员喜爱 Mac 的理由之一,程序员用 Mac 而不用 Shell,基本等于自断一臂,威力将大打折扣。Shell 并非凭空而来,它的入口是终端工具。OS X自带的终端工具虽然不错,但是和 iTerm 2一比,就逊色很多了。
2、iTerm2 是 OS X 下一款开源免费的的终端工具。
3、IDE 是图形化的集成开发工具,具备精准的词法分析、编程提示、调试等功能,功能之繁复用户自知,如果做工业级编程和团队协作的话,推荐使用 IDE。
4、Homebrew 是 OS X 的包管理工具,Ruby 社区的作品,功能类似 Ubuntu 下的apt-get。
5、Git 是一款分布式版本控制和软件配置管理软件,类似 SVN 和 CVS。
6、xScope 是一款强大的辅助设计工具,可以精确度量屏幕上的 UI 元素,尤其适合全栈工程师。
‘拾’ 程序员用Mac都有哪些必备的app
Mac上程序员必备的10大软件
1、IDEA
作为一个开发者,必须使用IDEA的,以前的elipse基本很少有用了,除非那些10多年的老员工对它有太大的感情了。
2、安装JDK11或者JDK8
我觉得应该安装JDK11吧,毕竟JDK14都出来这么久了。
3、Pycharm
Python开发工具,作为程序员也许你不是做Python开发的,但是偶尔还是用Python的。
4、Git
不用多说,当你在公司开发时候,一个项目是由很多人完成的,Git就是用来版本控制的,不仅要安装还要熟悉使用。
5、VMware Fusion和Navicat
Navicat是一个数据库管理工具,值得拥有,VMware是虚拟机软件。我现在还是学生,电脑配置也不太好,我一般使用阿里云服务器,然后连接IDEA工具,感觉太方便了,写完代码可以直接操作虚拟机。
6、Visual Studio for Mac
这是一款微软推出的跨平台开发工具,我一般用来写前端的。
7、Xcode
Xcode是苹果产品的,适用于ios开发工具,同时支持c++,对于学习c的同学来说值得拥有,就算做c开发,也值得安装,因为真的太强大了。
8、Google浏览器
9、ClenMyMacX
系统杀毒软件及清理垃圾等等。
10、Typora
作为一个程序员,不管学习也好总是做笔记叭,它就是一款最好的Markown,非常方便,它的语法我之前也写过一篇文章,可以抽30分钟学习即可熟练基本用法。
11、MindNode
我个人比较喜欢使用这块来做思维导图
12、Processon
在线画图工具,也可以做思维导图等,非常不错。
13、Rdm
学习Redis使用可视化工具
14、PDF Expert
Mac最好用的一款PDF
15、Xnip
个人觉得挺好用的截图工具
16、Be Focused
类似番茄薯仔,时间管理工具
17、eZip
压缩解压工具
18、网络网盘
19、uPic
图床,当你发表博客时候,每次粘贴有点太耗时间了,所以使用uPic配置Typora就完美了。
20、其他工具
qq、微信、OmniFocus项目管理工具、AE、PR视频剪辑等工具,看个人爱好下载使用,还有一些工具,暂时想不出了,但是上面所提到的我基本使用。
我的回答希望对你有帮助。
用了8年的Mac电脑,个人介绍下一些常用的APP,仅供参考。
1.终端iterm2
作为一名程序员,少不了需要用命令行处理事情。
通过它可以处理本地电脑的事情,也可以连接远程服务器操作。
补充:当然有些朋友喜欢zshell环境,也可以使用ohmyzsh,看个人实际需求吧,我还是喜欢bash环境。
2.Alfred
Alfred 是一个用键盘通过热键、关键字、自定义插件来加快操作效率的工具,它不但是搜索工具,还是快速启动工具,甚至能够操作许多系统功能,扩充性极强。
比如程序员经常需要查看unix时间,用这个搜索框就能快速得到答案,按下回车键即可复制结果。
3.DBeaver免费开源数据库
一个免费开源的软件,支持Oracle、MySQL等数据库,但是速度相比Navicat Premium慢,但是胜在免费。
4.IntelliJ IDEA 开发工具IDE
写Java代码,怎么可能少了这个软件,吃饭干活的工具。
当然有些人也会用Visual Studio,用得人也不少,只要适合自己需求就可以了。
5.Android Studio安卓开发
Android Studio是一个Android开发环境,基于IntelliJ IDEA。通过这个开发工具,可以开发手机APP。
6.PyCharm
人生苦短,我学Python,通过这个工具,可以快速开发,但是唯一缺点就是耗内存。
7.Sourcetree管理代码工具
Sourcetree是个免费的Git客户端工具,通过它可以进行可视化操作,适合对Git有基础需求的人。但是有时候一些复杂的操作,个人还是喜欢命令行处理。
8.Markdown文档编写工具Typora
Typora支持跨平台,配合快捷键,轻松的写接口文档、数据库表结构等文档,图片也可以复制粘贴进来,十分便利。
同时支持导出PDF,Word多种格式。
9.Sublime Text跨平台的文本编辑器
Sublime Text 是一款流行的代码编辑器软件,支持各类插件,可运行在Linux,Windows和Mac OS X。
我经常用它来编写一些简单的Python脚本,或者看Java代码进行Review。
10.WireShark抓包软件
作为程序员,有时候要分析别人提供的网络数据包文件,安装这个跨平台软件,可以直观的分析网络数据包。
其他还有很多软件,这里就写前10个常用的软件推荐给你,希望能解答到你的问题。
作为一名前端,来推荐几个自己一直用的软件。
Visual Studio Code
vs code 是微软开发的良心编辑器,功能强大而且插件多,主要是启动速度还挺快,是原来的Eclipse开发团队的大佬来开发的,就是好用。
链接 https://code.visualstudio.com/
Sip: Mac 上最好的色彩管理工具
一款高效实用的Mac屏幕取色软件,可以便捷地对屏幕上的颜色进行采样和编码,从而高效地辅助用户对色彩的调整程度。支持 CSS、UIColor 等多种格式,适用于 Swift、Android、Java、.NET 等多种开发环境。
mac store 搜索 : sip
Moom: Mac窗口管理工具
一款实用的系统增强软件,操作极其方便简单,它可以通过拖拽的操作方式实现对窗口的任意操作,大小、位置、左右上下全方位移动以及最大最小化,这款Mac窗口管理器能够快速修改当前窗口大小并放置在指定位置,操作简单易上手。
mac store 搜索 : moom
Irvue Unsplash 壁纸工具
每天一张新壁纸,换来好的心情。
mac store 搜索 : Irvue。
1.vscode,美观,融合性强,插件多。
2.termius,完美替代xshell,用着舒服。
3.navicat16,相较于之前版本,ui是真漂亮,加上mac字体,简直是好用又艺术。
4.有道云笔记,多客户端同步,加上有代码块功能,代码笔记存储和查找就很方便了。
5.chrome,好处不用多说。
6.pd runner,偶尔用windows且不用花钱使用虚拟机pd的好工具。
Mac自带的工具大部分人都没发挥极致。
推荐一:PD,虚拟机利器。
推荐二:XmindZen 整理你的思维笔记,开个脑洞啥的。
推荐三:HomeBrew
推荐四:QuickTime 自带的录屏工具,录点视频很轻松。
从brew开始,剩下的就是一键安装了。必备!
1、xcode
mac自带的开发工具,好用舒服。
2、IDEA
java开发的首选工具,对比eclipse那就是质的提升。
3、Visual Studio Code
微软的花大力气做的开发工具。全平台都可以使用。
4、iStat Menus
可以让你详细掌握系统状态,特别是流量现实,非常精准。
5、vMware Fusion
虚拟机选择vMware Fusion确实是最省心的。超过其他虚拟机的太多。谁用谁知道。
6、CleanMyMac X
CleanMyMac X是被查询最多的Mac电脑优化软件。
7、Sublime Text
这个软件应该是前端和好多轻度开发者的必爱了。
8、iTerm2
iTerm2可以肩负起打造终极版Mac的终端。更改为Oh my zsh的shell,安装powerlevel9k插件。你的终端就可以飞起来了。
9、Homebrew
作为Mac电脑的软件管家,Homebrew一直没有让我们失望。
10、docker
程序员经常要做一些环境的调整,docker是一个很好的生产工具,调整好了就留下,不好就删除,对本机环境没有任何影响。而且可以快速部署到生产环境中。
我说的对不对呢,请大家拍砖。
我们程序员在Mac上的工具大致分为三类1)编程类 2)笔记类 3)任务管理类
一、编程类
1.1 首当其冲,当然是神之编辑器Emacs,而Emacs本身又是瑞士军刀包含编程,笔记,任务管理等,尤其是org,乃是许多人对Emacs欲罢不能的理由;
1.2 既然提到了emacs,自然少不了vim,相比emacs更加灵活轻便,适合于对配置作快速而简单的修改。
1.3 vscode,对编程新手而言,emacs与vim上手难度较高,因此推荐从vscode入手编程。
当然还有jetbrain等,但是笔者不喜欢,因此不做推荐。
二、笔记类
程序员首先是办公室白领,日常文档总结,工作复盘等,Mac上最为推荐的笔记工具,
2.1 BearNote极为精美且便捷,令人爱不释手,当然既然用macbook,缺点就是要fufei;
2.2 印象笔记,在macbook出人意料之外的好用,13年末的时候,笔者就是因为看到同事在macbook上精美的印象笔记,而种草买了第一台MBP。
2.3 Typora 是最优秀的所见即所得的markdown标记语言工具,是程序员写文章之必备。
三、任务与时间管理
3.1 任务管理当然要用omnifocus,只有在macbook上才能享用这款效率工具。
3.2 项目管理工具Omniplan,编程是青春饭,我们最终都要往产品经理,往管理岗位上迈进。因此项目管理工具必不可少。同样的,Omni系列的工具,只有MBP上才有。
3.3 花时间学学Emads的org-mode,用其作任务管理等。
作为一名大数据开发工程师,M1的Mac安装软件如下
1、IDEA 主力开发工具
2、VS Code 主力开发工具
3、Sublime 文本编辑工具
4、Item2 终端工具
5、Termius SSH工具
6、Postman 接口测试
7、Chrome 浏览器
8、SourceTree git管理工具
9、Typora 笔记管理
这个因人而异,我主要装了这些
基本上主要就这些了