作为一个有追求的程序员,你应该掌握的七种武器

本文介绍了码农提升效率不可或缺的七大工具,包括科学上网、剪贴板管理、抓包工具、文本编辑器、笔记应用、脚本语言及个人代码库,每项工具均提供了具体的推荐选项。

1科学上网

虽然国内互联网一片热闹的景象,但我们不得不承认,从硬件到软件,从协议到标准,我们现在使用的绝大部分技术都是起源于墙外,而Google是检索这些第一手技术的最好的手段,没有之一。

所以对码农来说,可以自由地浏览是非常有必要的。

有很多种科学上网方式,笔者推荐自己买海外主机搭建SS Server,可以和亲近朋友一起使用一台,具体怎么做就不是这篇文章能展开的了,大家可以百度下。

2剪贴板

相信大家最常用的快捷键就是复制和粘贴了。

假如你刚刚从Wiki的设计文档把一个API的URL复制下来准备写代码,发现经常聊天的一个技术群弹出一个消息,有个妹子问一个技术问题,凭借自己对技术的感觉很快在Stackoverflow搜到了答案, 赶紧把答案复制过去;突然又收到产品群发的一个邮件需要你去撕逼,写了几句之后,觉得某个措辞应该放到后面,刚剪切了第一句;经理在IM上让你把某个需求的Jira链接发给他......

你如果经常遇到这种情况,首先考虑的应该是把所有的打扰都屏蔽掉,如果做不到,那就安装一个剪贴板工具吧。

Windows下推荐ditto,Mac下推荐Alfred自带的。顺便提一下,类似Mac下的Alfred这种工具(Windows下的有TotalCommander),如果能研究透彻,会极大的提高工作效率。

3抓包

现在很多产品和需求都需要通过网络与用户或其他服务打交道。如果能细细的查看通过网络发送接收的数据内容,那发现和定位问题就会方便得多,这也是抓包工具的重要功能了。

Windows下的Fiddler,Mac下 的Charles都非常强大。这两者通过安装证书,甚至可以直接抓取Https的网络。

基于Web的应用,也可以直接考虑浏览器的开发者工具。例如,Chrome的开发者工具就非常强大:用XPath可以直接找到元素,可以直接修改元素的值和属性。 


如果想做更深层次的抓包,可以研究下Wireshark。

4文本编辑器

程序员经常要跟各种日志和数据打交道,一个熟悉的文本编辑器可以事半功倍。

笔者比较常用的功能有列模式,例如把一些数据直接编辑成SQL;正则替换,例如从不太标准的日志中提取自己所需的内容。

文本编辑器免费的有Sublime Text/Atom,商业软件有UltraEdit等。另外还有一种基于终端的文本编辑器,例如Nano/Vim/Emacs。如果从事Server开发,掌握这些编辑器的查找、修改、行号等功能是非常有必要的。

5笔记

在这个信息爆炸的时代,搜索引擎有时候也捉襟见肘。

子曰:"吾日三省吾身",做笔记是一个非常好的反省自己的手段,对每天的收获进行记录和整理,也方便后续快速解决类似问题。

市面上的笔记产品大同小异,笔者一直使用有道云笔记:支持MarkDown语法,免费,跨平台。 另外,思维导图也是一个非常好的整理自己知识的工具。

6脚本语言

假如突然接到一个这样的临时需求:需要给客户端提供一个模拟服务器,根据请求内容的不同,返回相应的JSON。

这个需求用Python SimpleHTTPServer十几行代码就能实现。很多类似的临时需求,还有需要快速验证的想法,以及粘合多个系统,脚本语言是最合适的。

在自己的主力开发语言之外熟悉一门脚本语言做很多事都可以事半功倍,也可以体验到另一种编程文化。

有很多脚本语言(shell,Ruby,Perl等等)可以选择,笔者推荐Python。Python这些年在很多领域都重新受到追捧。Python有2和3两种,推荐直接上手3,虽然很多老版本服务器系统自带的还是2,但是现在基本上所有的主流库都已经支持Python3了。 


如果单纯的当做一个脚本语言,只需要了解如何处理字符串,常用数据结构,如何处理文件和网络IO,基本就满足日常需求了。  

7自己的CodeBase

将自己编程经验提炼为一个CodeBase,这是非常有价值的做法。

经常需要的用模块,如Web框架、模板引擎、Http请求、单元测试以及Mock、Cache、调度、Metric、时间处理、安全、日志、XML/Excel解析等等,每一个模块都有三四种可以选择的技术,选择一个自己熟悉的,构建自己的软件开发栈,这样遇到各种需求都能快速基于自己的CodeBase的实现。


(完)

你看到的只是冰山一角, 更多精彩文章,请移步《2016文章精华》或者《2017上半年文章精华


码农翻身

用故事讲述技术

0.jpeg

<think>好的,用户问的是“想开发属于自己的一个项目难吗”,需要给出一个全面且鼓励性的回答。首先,得考虑用户可能的背景。可能是一个刚入门的新手,或者有一定基础但还没独立开发过项目的人。用户可能担心难度,缺乏信心,或者不清楚从哪里开始。 接下来,要分解问题。用户的问题核心是“难不难”,需要从不同角度分析,比如技术难度、时间管理、资源获取等。但也要强调可行性,避免让用户感到气馁。需要平衡客观存在的挑战和积极的支持建议。 之前的对话历史中,用户询问过项目开发是边做边写还是完全原创,所以这次可能是在进一步探索如何开始自己的项目。需要延续之前的建议,比如分阶段开发、使用现有框架等,同时加入新的内容,如心理准备、资源推荐。 需要考虑用户的潜在需求。他们可能想开始一个项目但不知道如何下手,或者担心失败。回答中应包含步骤分解、常见困难及解决办法,以及鼓励的话语。比如,将项目拆解成小任务,利用开源工具,寻求社区帮助等。 还要注意结构清晰,分点说明难点和应对策略,让回答易于理解。同时,加入实际例子或资源推荐,比如工具、网站,帮助用户具体操作。最后,用积极的话收尾,增强用户的信心,比如强调完成项目的收获。 另外,需要避免使用过于专业的术语,保持口语化,让用户容易接受。同时,检查是否有遗漏点,比如时间管理、学习资源、调试技巧等,这些都是开发项目中常见的问题,应该涵盖进去。 最后,确保回答符合之前的建议框架,比如动态迭代、分阶段开发,同时扩展新的内容,如心理准备、资源利用。确保用户得到全面的指导,既有挑战的提醒,也有解决方法的提供,从而帮助他们顺利启动自己的项目。</think>开发属于自己的项目**既有挑战也有乐趣**,难度取决于**技术基础、项目复杂度、资源投入**三个核心因素。结合程序员的实际经验,用结构化方式给你答案: --- ### **一、先看难点:为什么有人觉得难?** 1. **技术盲区陷阱** - 新手常见问题:想做一个「社交+电商+区块链」的全栈项目 → 发现需要同时学前端/合约开发/分布式存储 - **破解方法**:用MVP原则砍需求,比如先做纯前端demo 2. **持续性卡点** - 典型场景: - 环境配置报错(比如Node版本冲突)浪费3小时 - 数据库死锁问题查了2天没结果 - **工具推荐**: - 用Docker隔离环境 - 在Stack Overflow搜索`[你的技术栈]+问题关键词` 3. **心理挫败感** - 初期:看教程能懂 → 自己写就报错 - 中期:功能能跑 → 但代码像意大利面条 - **成长规律**:**烂代码比没代码强**,先实现再优化 --- ### **二、降低难度的实战策略** #### **1. 技术选型偷懒法** - 前端:用现成组件库(Ant Design / Element UI)省去CSS煎熬 - 后端:选REST框架(Express/FastAPI)避开GraphQL复杂度 - 数据库:SQLite起步 → 后期无缝切MySQL - **避坑原则**:别在第一个项目用新技术(比如硬刚Rust) #### **2. 开发路线图示例**(以博客系统为例) ```text Day 1-3: 用Vite+React实现基础页面路由 Day 4-5: 接入Mock.js模拟文章数据 Day 6-7: 用Node.js写个/addArticle接口 Day 8: 连接MySQL替换Mock数据 Day 9: 部署到Vercel/阿里云 ``` #### **3. 资源利用技巧** - 直接复用: - 登录模块用Auth0/Firebase Authentication - 支付对接Stripe/Paddle(比从零写安全) - 代码搬运: - 合理使用GitHub代码片段(GPL协议除外) - 用ChatGPT生成工具类代码(如日期格式化函数) --- ### **三、不同阶段的项目推荐** | 你的水平 | 推荐项目类型 | 技术栈组合 | 耗时预估 | |----------------|------------------------------|---------------------------|----------| | 刚学完基础语法 | 本地工具类(待办清单/记账本)| Vue3 + localStorage | 1周 | | 了解前后端交互 | 天气查询/电影搜索网站 | React + Axios + 公开API | 2周 | | 掌握基础CRUD | 论坛/博客系统 | Next.js + Prisma + MySQL | 3周 | | 想挑战全栈 | 电商原型(无支付) | Nuxt3 + NestJS + MongoDB | 6周 | --- ### **四、保持动力的秘密武器** 1. **视觉化反馈**: - 尽早让页面能点击(哪怕数据写死) - 用`react-hot-toast`加个炫酷的提示弹窗 2. **社区助推**: - 在V2EX/掘金写开发日志 → 获得反馈 - 把项目丢到GitHub上,贴个「萌新求Star」的标签 3. **物理外挂**: - 买个小黑板记录每日进度 - 完成里程碑后奖励自己(比如一杯奶茶🧋) --- ### **五、过来人的血泪经验** - **不要**在项目初期追求完美架构(你一定会重构的) - **务必**从第一天起用Git(新手推荐装Git Desktop可视化工具) - **警惕**「我再学一个框架就开工」的拖延陷阱 - **记住**:**完成比完美重要**,先做出能运行的版本再迭代 --- **终极答案**: 如果选对技术栈+控制项目规模,**2周内做出可演示的原型并不难**。真正的难点在于坚持到项目可用状态,但这过程中的debug和重构会让你获得远超教程的学习效果。 (👉 附:想快速启动?试试这个「**新手友好项目生成器**」:https://github.com/collections/learn-to-build)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值