精通one,学习another,关注next

 

Tip 1 要方法而不是记忆

我的一个程序员朋友常跟我说记住超过 200 个 C++ 函数是多么的有帮助。

我从来不必去查找函数的定义,因此我可以比其他程序员编程快上50%。

他自豪的说。可结果是什么?

难道他不知道编译器的代码自动完成功能可以节约大量查找函数及输入函数的时间吗,另外当C#发布出来后,他在记忆函数上面的努力就白费了。

当然,编程中对函数的熟记是一件必需的事情,但是你应当花费更多的时间在学习做事的方法上, 比如说创建一个数据库连接, 如何产生RSS源等,然后是关注于代码是如何实现的。 学习做事的正确方法远比死记硬背重要。 正所谓 人有多大懒,才有多大闲。

Tip 2 建立属于你自己的资源库

我们都会有因为这样或者那样原因而不得不建立的代码集。 我从来不记得连接数据库的准确代码语句,所以我每次都不得不在代码集中花10分钟去查询它。 为了解决这个问题,我创建了一个用于记录代码片段的 Word 文档,以帮助我记忆和查找。

我的一个同事建了个记录链接的书签,另外一个同事在他的邮件中存储了这些内容。 无论你的方法是什么,都是一种可以使你方便查找到文件或内容的好习惯。 当你建立你的知识库后,你会发现它将极大的帮助你去把代码写得更好和更快。

Tip 3 知道做什么而不是怎样做

很多初级程序员问我“我怎样做这个,或者我怎样做那个?”我总是会跟他们说“你想做什么呢?” 听闻此言后,他们会死盯着我,就好像我跟他们的妈妈约会了一样。

这就是我的下一个观点, 绝不要在知道你想做什么之前去学习怎样做,比如一个程序员想要搜索一个文本文件中是否存在的某个特定的词汇。

下面是用C#来实现该目的:

string fileContent;  
System.IO.FileStream myStream = new FileStream("c:\\aa.txt", FileMode.Open);  
System.IO.StreamReader myStreamReader = new StreamReader(myStream);   
fileContent = myStreamReader.ReadToEnd();  
myStreamReader.Close();  
int idx = fileContent.  
IndexOf("string");   
if (idx)  
{  
    return true  
}

现在我给他这些代码去做这件事,但是更重要的是 理解自己正在试着做的是什么。 在这个例子中我们想做的是:

  1. 打开一个文件
  2. 读其中的内容
  3. 关闭文件
  4. 搜索字串
  5. 如果找到了则输出结果

用这个方法来解决事情产生了以下结果:

  1. 它使语言无关
  2. 使你的精力集中在需要做什么上
  3. 使你的代码更易读和有效知道要做什么将使你的代码更有目的性。

现在在 C++、PHP、VB.NET、Ruby on Rails 中编写上述代码是很容易的事情了,因为你理解了 要做什么而不是怎样去做。

Tip 4 创建适合你的注释风格

每一个程序员都讨厌注释,但是 为了写出更有质量和易读的代码,我们需要注释。

问题是大多数程序员常被告知如何注释,一些公司希望每一行代码都有注释, 另外一些则想要在每个函数前面有一段注释,还有的规定在不同的代码块前注释。

我并不同意这种强制性的规定,只要 代码是可用的、易读的和有效的, 那么程序员应当可以用其个人喜好的格式来注释。 对我来说在每一行都注释将破坏代码的节奏,我更喜欢在函数的前面注释, 罗列我接下来一步步将要做什么,然后在函数中参考注释中所写的步骤进行编程。

这是适合我的模式,这样可以在我编程前帮助我组织设计,也保持了我的节奏,使我 不会因为需要注释而在编程时中断,也有助于其他人阅读我的代码。

下面是我怎样注释的例子:

/* 1. Open File*  
   2. Read file into string*  
   3. Close file*  
   4. Search for key word*  
   5. If fond return true; 
*/  
string fileContent;  
//1.  
System.IO.FileStream myStream = new FileStream("c:\\aa.txt", FileMode.Open);  
System.IO.StreamReader myStreamReader = new StreamReader(myStream);  
//2.  
fileContent = myStreamReader.ReadToEnd();  
//3.  
myStreamReader.Close();   
//4.  
int idx = fileContent.IndexOf("string");  
if (idx)  
{  
    //5.  
    return true;  
}

这种注释风格使我和大多数程序员可以容易的阅读它。 那么,找一个适合你的注释风格吧。

Tip 5 精通one,学习another,关注next

有时有程序员发 email 问我他应该学习什么语言,什么是最好的编程语言等等。 你至少应该精通一门编程语言,可以相当好的去编写代码,然后再去学习掌握另外一门,逐渐的成长。

以我自己为例,我精通 C#,擅长 PHP,并且已经开始使用 Ruby on Rails 大概有一两个月了。 为什么呢?精通一门语言可以使你进步,在进步中写更好的代码,找到完成任务更好的方法等。

进步也是我作为一个程序员年复一年的工作,却仍没有觉得枯燥的原因。

深度测评:Accio Work——目前普通用户最友好的多 Agent 协同工具 摘要:Accio Work是阿里国际站推出的多Agent协同工具,通过借鉴古代"三省六部制"构建高效协作框架。该工具支持主流大模型,可配置专业Agent角色,实现40分钟内完成复杂产品PRD等高效协作。其亮点在于直观的UI设计和流程驱动机制,能强制各Agent从专业视角深度思考。虽然超长对话稳定性有待优化,但作为目前最用户友好的多Agent工具,显著降低了构建复杂AI团队的门槛,成为提升个人和小微企业生产力的利器。 阅读详情

相关推荐

Excel数字变成了小数点+E+17?这些方法帮你解决!

本文介绍了三种解决Excel中数字变成小数点+E+17问题的方法:通过下拉箭头或右键菜单设置单元格格式为文本、使用TEXT函数将科学计数法转换为文本。这些方法各有优缺点,适用于不同的场景和需求。在实际应用中,我们可以根据具体情况选择合适的方法来解决问题。通过以上方法,我们可以轻松地从繁琐的小数点+E+17问题中解脱出来,更便捷地处理Excel中的数字。希望本文能够帮助到您,让您在使用Excel时更加得心应手!

nntxthml的博客 1245

想成为最牛程序员吗?

  Tip 1 要方法而不是记忆 我的一个程序员朋友常跟我说记住超过200个C++函数是多么的有帮助。 “我从来不必去查找函数的定义,因此我可以比其他程序员编程快上50%。” 他自豪的说。可结果是什么? 难道他不知道编译器的代码自动完成功能可以节约大量查找函数及输入函数的时间吗,另外当C#发布出来后,他在记忆函数上面的努力就白费了。 当然,编程中对函数的熟记是一件必需的事情,但是你应当花费...

justJavaC的专栏 248

基于51单片机+SYN6288语音播报

51单片机控制SYN6288语音播报资料SYN6288模块原理图语音合成命令接线如何接线实现原理程序代码main.csyn6288.cuart.cdelay.c基于 51单片机的其他项目基于51单片机+遥控灯基于51单片机+LCD1602显示基于51单片机+红外遥控解码+LCD1602显示基于51单片机+DHT11温湿度+LCD1602显示基于51单片机+DS18B20温度测温器+LCD1602显示尾声 资料 我用的是绿深电子技术的模块,资料也挺齐全的。也有相关例程。 SYN6288模块原理图 语音合成

weixin_47457689的博客 3万+

java nextone_精通one,学习another,关注next

有时有程序员发 email 问我他应该学习什么语言,什么是最好的编程语言等等。 你至少应该精通一门编程语言,可以相当好的去编写代码,然后再去学习掌握另外一门,逐渐的成长。 以我自己为例,我精通 C#,擅长 PHP,并且已经开始使用 Ruby on Rails 大概有一两个月了。 为什么呢?精通一门语言可以使你进步,在进步中写更好的代码,找到完成任务更好的方法等。 进步也是我作为一个程序员年一年的工...

weixin_30983209的博客 174

飞塔防火墙和paloalto防火墙构建ipsec

一、配置fortigate防火墙1.防火墙配置上网功能1.1配置fortigate的wan1接口IP为100.100.100.2/24VLAN交换internal,IP地址为192.168.156.99/24。开启DHCP分配IP地址范围为192.168.156.110-192.168.156.2101.2配置访问互联网的缺省路由1.3配置访问互联网的安全策略2.配置与Paloalto防火墙的IPSECVPN。

weixin_44675999的博客 3738

微信开放标签wx-open-launch-app样式失效?手把手教你正确设置点击区域(附完整代码)

本文详细解析了微信开放标签`wx-open-launch-app`样式失效和点击无响应的常见问题,提供了完整的解决方案和代码示例。通过分析标签内部实现机制,指导开发者正确设置点击区域和样式,确保跨平台兼容性和用户体验优化。

joy55的博客 320

(转)精通one,学习another,关注next

http://justjavac.iteye.com/blog/1716431 Tip 1 要方法而不是记忆 我的一个程序员朋友常跟我说记住超过 200 个 C++ 函数是多么的有帮助。 我从来不必去查找函数的定义,因此我可以比其他程序员编程快上50%。 他自豪的说。可结果是什么? 难道他不知道编译器的代码自动完成功能可以节约大量查找函数及输入函数的时间吗,另外当C#发布出来...

u011833515的专栏 227

从Gotham到Foundry:拆解Palantir三大产品线,看它如何用‘本体’统一企业数据与AI

本文深入解析Palantir的三大产品线Gotham、Foundry和Apollo,揭示其如何通过独特的'本体'架构实现企业数据与AI的无缝融合。从国防情报到商业决策,Palantir的产品架构展现了强大的数据整合与AI赋能能力,为企业构建数字孪生提供革命性解决方案。

weixin_30823001的博客 321
上一篇: 代码之谜(三)- 运算符
下一篇: 代码之谜(五)- 浮点数(谁偷了你的精度?)
SleepInDelphi
博客等级 码龄19年 32粉丝 388原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值