寻找适合程序员的笔记软件

news2024/11/23 9:20:15

做为一个程序员,有两个东西是我们必需的.一个是搜索,另一个则是记录.

当我们遇到不会或解决不了的困难点时,我们会第一时间使用搜索(如Google)来寻找解决方案,而当我们积累与在技术上有任何心得时,我们会记录它.

因而,寻找一个合适的笔记软件,对程序员非常重要.

一)

程序员需要的笔记软件需要什么样的特性?

基于我个人的想法,我认为一个适合程序员的笔记软件,至少要满足以下要素:

支持Markdown

也许你还记得使用Word时费劲心思排版的经历,至少我对调整大学毕业论文格式的经历仍记忆犹深,完成论文相当部分时间并不是花在写出更好的内容上,而是排出符合规定的版式要求上.

幸好,对于程序员来说,有了更简洁专注的Markdown格式,Markdown能让我们更专注于内容而非格式上

所以,一个好的适合程序员的笔记软件,最优先的需要满足Markdown格式

易于搜索

很容易理解吧,程序员可能会记录成千上万的笔记, 如果没有搜索能力,那是不可想像的

多设备同步

没有哪个程序员只使用一个设备. 我们经常在公司设备,个人家庭设备,手机等不同设备上切换.

那一个好的笔记软件要支持不同设备的同步,这样我们能随时随地的访问到这些信息

易于备份与恢复

没有任何群体比程序员更在意备份与恢复这件事. 我们非常清楚数据的重要性及易于丢失性. 我们在设计软件架构时,备份与恢复永远是必不可少的架构特性.

所以,我们记录的那些笔记,我们希望能随时随地的备份,不用担心出现意外情况导致的数据丢失

可靠性

我们清楚,没有永远免费的服务. 那些承诺免费的东西很可能会变更承诺或提供服务的软件商不再存在

这意味着那些开源的,标准的存储方式的笔记软件,我们会更喜欢. 因为这意味着稳定与可靠.

二)

事实上,很难有完美的解决方案, 至少这些年我也一直在尝试与使用不同的方式来尽量满足上述要求. 总会有一二个点你发现难以满足.

做为程序员以来,我先后使用过以下的方案

Evernote/印象笔记

很多年前,当你在互联网上搜索笔记软件时,很可能你最主要能搜索到的就是Evernote这款软件了

这也是我最先使用的笔记软件. 事实上它是一款商业的软件, 对个人提供有限度的免费.

但是,它不支持Markdown,而后又变更了免费服务范围,限制只支持同步2台设备等,做为程序员,把它做为最主要的笔记软件已经无法满足了.

有道云笔记

在Evernote免费服务变更范围后,我印象中国内的一些软件,如有道云笔记,就趁机推出,无论是从其免费范围还是从同步的网络速度上都非常占优势.

有道云笔记也对Markdown提供了支持.

但我个人认为在有道云笔记上编写Markdown并不是个很好的体验,甚至非常糟糕.

Typora + iCloud

后续个人电脑从Windows切换到了MacOS, 又基于对Markdown的偏爱, 又希望能同步. 就使用上了这个搭配.

使用Typora,是因为我认为它是MacOS上非常优秀的Markdown软件,在它收费后我甚至购买了它的收费版本; 而iCloud则是苹果设备自带的同步能力,使用它最方便.

这个搭建并不易于搜索,Typora虽然编写Markdown非常优秀,但搜索并非它的强项,它也很难对所有笔记进行集中式的展现

备忘录 + iCloud

相当长的一段时间,由于一直没有找到满意的Markdown相关的笔记软件, 我把一些与技术不相关的笔记记录在苹果自带的备忘录

至少解决了同步与多设备支持

Notion

如果你从没听说过或使用过Notion这个在线笔记服务,那我非常建议你尝试与使用它.

它非常强大,光是笔记类型除了支持页面Page,还有数据Database,todoList等非常多丰富的类型,它甚至还有REST API去操作你的笔记内容,也支持Markdown

我使用过它一段时间,但考虑到国内访问这个服务的速度与不可靠性,再加上它并不是开源或标准的存储方案,把所有东西放在它上面,会有供应商绑定的问题.

如果后续它变更了服务策略,这会使得迁移笔记非常麻烦与成本非常高.

三)

当然,除了上述这些,我也调研与使用过其它一些非常多的笔记软件.

比如为知笔记,支持Markdown及自托管的开源Joplin,甚至在与一些程序员朋友讨论时,基于docusaurus来做一个在线的笔记网站

说明: docusaurus是Facebook开源的一款以专注于内容的建站工具,以支持Markdown为主,特别适合你基于它来构建一个开源产品的介绍以及文档网站. https://myddd.org 官网就是使用它构建

但它们都各有问题,这些问题使得它们难以较好的满足一个程序员的笔记软件

四)

前段时间,发现了Obsidian这个笔记软件,发现它具有相当多优点,令我觉得挺满意的.

在这里插入图片描述

优点

原生支持Markdown,体验较佳

与有道云,Notion等类似只是支持Markdown不同,Obsidian只支持Markdown方式记录,并且其Markdown体验与Typora非常类似,所见所得.

光是这一点,就非常适合程序员

以文件进行存储,支持借助iCloud等方式同步

使用Obsidian记录的所有笔记,都是以markdown格式存储在本地文件系统. 而如果你需要同步能力, 那你可以借助iCloud或OneNote等第三方同步的能力,进行及时的备份与同步

这意味着使用Obsidian, 无须担心任何供应商绑定问题.

搜索能力强,UI美观,插件支持

非常方便基于内容与标题进行搜索,而且UI也比较简洁美观(个人观点)

它也有插件,比如主题,你可以切换喜爱的不同主题

缺点

非开源软件

它并不是一个开源的软件,但考虑到它是基于本地文件系统 + Markdown的方式实现的,使用它你不需要担心供应商绑定问题.

不支持Web

有桌面版本以及移动App, 但不能Web在线使用.

五)

如我所言,寻找一个完美的适合程序员的软件并不容易,甚至可能并不存在.

对于笔记软件,各人各有偏好,我的选择与喜好不意味着否定其它软件的优点及优秀性.

所谓萝卜青菜,各有所爱,如是而已.


文章原载于个人网站 微言码道

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/185553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Apache Spark 机器学习 特征转换 1

分词器(Tokenizer) 分词是一个处理过程,其将文本句子分割成一系列独立的单词词汇集合,Spark提供Tokenizer分词器类,其提供的功能是使用分隔符的方式处理文本句子的特征转换,Spark提供RegexTokenizer分词器…

在PC上安装OpenSSL,生成证书

文章目录一.在编程 PC 上安装 OpenSSL1. 下载安装 OpenSSL2.生成CA认证3. 生成 Broker 证书4. 生成各个 Client 的证书一.在编程 PC 上安装 OpenSSL 为了使用带 TLS 安全证书的 ADS Over MQTT,在 MQTT 的 Server 和 Client 侧都需要证书以进行安全通信,…

安装vue-cli2和3以及创建vue2和vue3项目的步骤及区别

文章目录安装vue-cli2版本步骤1.下载vue-cli2问题1:安装Vue Cli出现EEXIST: file already exists, cmd shim ‘C:\Users\2.vue-cli2构建vue项目问题2:报错: vue-cli Failed to download repo vuejs-templates/webpack: connect ETIMEDOUT 19…

「兔了个兔」福兔贺春,纯CSS实现超精美月兔404界面(附源码)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…

搭建一个FAQ智能问答系统/服务

FAQ智能问答系统 介绍 项目传送门:https://github.com/wzzzd/FAQ_system 构建了一个FAQ智能问答系统。 使用多种方法,实现FAQ的问题-模板匹配功能。 使用Tornado框架,部署成轻量级的Web服务应用。 整体框架如下。 流程 1.初始化流程 1.…

这福利给你要不要 — 用Python采集相亲网站女生数据

前言 俗话说学咱这行的男同志 找对象容易吗 这马上就要过完年了 是时候找找女朋友了 我在这里摸索到了个网站 或许你们可以来看看 送一波单身福利 不需要的也可以学学怎么采集这些数据呗 环境与模块 环境开发 Python 3.8Pycharm 模块使用 import parsel --> p…

类与对象的原理

前言 在JavaScript中,类的实现是基于原型继承机制的。 JavaScript中的类的一个重要特性是“动态可继承”。 类与原型 在JavaScript中,类的所有实例对象都从同一个原型对象上继承属性,因此原型对象是类的核心。 所有的类都有一个共同的根…

关系数据库——关系操作和关系完整性

文章目录一、关系操作1.基本的关系操作2.关系数据语言的分类关系代数语言关系演算语言具有关系代数和关系演算双重特点的语言二、关系的完整性1.实体完整性(Entity Integrity)实体完整性规则2.参照完整性(Referential Integrity)参照完整性规则引用关系3.用户定义的完整性(User…

WebRTC 的连接过程

经过前面几部分的铺垫,你应该对P2P音视频互动的过程有了一个大概的了解,有可能你会觉得过程比较繁琐,甚至涉及到了网络底层。但是,不要担心,WebRTC已经帮我们做了很多的事情,让我们在音视频开发时变得轻而易…

【Spring源码】22. 属性填充populateBean()详解

进入populateBean()对bean的属性进行填充,将各个属性值注入(存在其他bean的属性,则会递归初始化依赖的bean)一开始会先对传入的参数进行判断(如下图红框框中的逻辑)如果传入的BeanWrapper和RootBeanDefinit…

SpringBoot3+最新MybatisPlus+Mysql与TDengine双数据源

前言 昨天写的ideaApifox uploader插件apifox新年第一天上班就上榜了,真是不错。今天来补一篇,本来应该是在前一篇之前发的。实际上就是最新的springBoot集成最新的mybatisPlus,加双数据源:mysql、TDengine,一个关系型…

kvm虚拟机克隆

kvm虚拟机克隆链接克隆和完整克隆的区别完整克隆自动克隆手动克隆的步骤1.复制模板vm磁盘为新vm的磁盘2.复制模板vm配置文件为新vm的配置文件3.修改新vm配置文件中的信息为新vm的信息4.导入新vm的配置文件5.启动新vm链接克隆1.生成链接克隆虚拟机磁盘文件2.后续流程与手动克隆一…

【算法练习】链表中环的入口结点

题源&#xff1a;牛客描述给一个长度为n链表&#xff0c;若其中包含环&#xff0c;请找出该链表的环的入口结点&#xff0c;否则&#xff0c;返回null。数据范围&#xff1a;n≤10000&#xff0c;1<结点值<10000要求&#xff1a;空间复杂度 O(1)&#xff0c;时间复杂度O(…

1、数据库概述

文章目录1 为什么要使用数据库2 数据库与数据库管理系统2.1 数据库的相关概念2.2 数据库与数据库管理系统的关系2.3 常见的数据库管理系统排名(DBMS)2.4 常见的数据库介绍3 MySQL介绍3.1 概述3.2 MySQL发展史重大事件3.3 关于MySQL 8.03.4 为什么选择MySQL3.5 Oracle vs MySQL4…

学成在线项目开发技巧整理---第二部分

1.静态资源处理通常项目会采用动静分离架构,利用Nginx作为静态资源服务器,存放所有静态资源:#访问动态资源时,将请求负载均衡到多个服务器实例或者多个网关实例 upstream webservice{server 192.168.200.146:8080; }server {listen 80;server_name localhost;#动态资源l…

C++基础知识点整理笔记(一)

一直想尝试自己动手构建一个简单的深度学习训练框架&#xff0c;包括数据读取与处理、PS、NN前后向传播、模型save和load、不同训练方式&#xff08;offline/online .etc&#xff09;、指标监控、模型部署等部分, 去深入研究内部深度学习训练框架及horovod、byteps、pslite、te…

深刻理解状态机设计需要避免的冒险;时序电路可能存在essential hazard;处理单元里的control和datapath;竞争冒险【SV】【VLSI】

深刻理解状态机设计需要避免的冒险&#xff1b;时序电路可能存在essential hazard&#xff1b;处理单元里的control和datapath&#xff1b;竞争冒险【SV】【VLSI】0. 前言&#xff1a;时序电路可能存在essential hazard1. 理解control和datapath1.1 Datapath control2. 硬件电路…

MFC|创建一个对话框及窗体各个属性介绍

参考&#xff1a; VS2015 建立一个C的MFC简易窗体程序项目&#xff08;https://www.cnblogs.com/xingboy/p/11059721.html&#xff09; 对话框中各项属性介绍&#xff08;https://blog.csdn.net/u012350993/article/details/26093051&#xff09; MFC窗口风格 WS_style/WS_EX_s…

【Hadoop】YARN简述

文章目录1. YARN总述2. YARN调度器2.1 FIFO Scheduler2.2 Capacity Scheduler2.3 Fair Scheduler1. YARN总述 YARN是Hadoop资源管理器&#xff0c;它是一个通用资源管理系统&#xff0c;可为上层应用提供统一的资源管理和调度&#xff0c;它的引入为集群在利用率、资源统一管理…

关于栈和队列

目录栈&#xff08;Stack&#xff09;什么是栈栈的使用栈的模拟实现队列&#xff08;Queue&#xff09;什么是队列队列的使用队列的模拟实现循环队列双端队列 (Deque)栈&#xff08;Stack&#xff09; 什么是栈 栈是一种特殊的线性表&#xff0c;它只允许在固定的一端进行插入…