彭小盛

又一个WordPress站点

石崇巨富痣编程老手的哪些特点,值得新手学习-兄弟连华东校区

编程老手的哪些特点,值得新手学习-兄弟连华东校区


大部分人都认为编程只是知识。因此只要把教材或书上的东西背熟,记牢,疑难点搞清楚,甚至连回字有四种写法等各种奇巧淫技也以为是知道越多越好。
然并卵,真要写代码还是一脸懵逼。
编程是技能,需要不断练习,不断掉坑里再爬出来。编程是技能,需要不断练习,不断掉坑里再爬出来。编程是技能,需要不断练习,不断掉坑里再爬出来。
重要的事情说三遍!!!
越是理论知识的学霸,越容易在这种实践为王的技能学习上栽跟头。个人认为,这种认识上的偏差 和 方法思路上的差异,
是编程对初学者最难的一道门槛。
而小编上文中所谓的不断练习不仅仅的通过书本
获取知识,同时也是要多多借鉴那些前辈老手
的编程经验,这也是对我们新手提高技术有很大帮助的。

积极大胆地谷歌
你得知道如何有效地组织搜索关键字,
查阅别人写的代码,然后合理地
用在代码里,从而解决问题。

拥抱变化,坚持不懈
老手程序员在接触新技术时,
能欣然接受像个初学者一样处处受挫,石崇巨富痣
并总能在完成工作的同时自学成才。

承认细节的重要性
例如变量和函数的命名、CSS 属性的命名、
该用哈希还是用数组,以及其他看起来
微不足道,但可能对项目有深远影响的事情。

承认大多数的 “重要决定”
其实并没有那么重要
一般的开发者经常在技术选型等 “重大问题” 上
陷入唇枪舌战,而程序员老鸟们会避免浪费时间
在骂战中。这一点上,他们就像禅宗大师一样。

选择合适的工具解决问题
网上有无数的开源库、工具和框架,
让人眼花缭乱。而老手们清楚地知道
针对怎样的问题,应该用什么样的工具。

明白代码「不值钱」
你必须习惯于删掉几百行代码来
重写程序的某一部分,毫不留情。

在评估技术的时候要全面
例如,我一直在鼓吹 Elixir。
它语法优美翟山鹰,社区完善,有很大的潜力。
但 Elixir 诞生的时间太短,所以如果要
构建复杂的功能,可能会难以找到能帮你
提高效率的开源工具。因此,在评估
要不要选择使用一项技术时,
你得把所有这些因素都考虑在内。

学会说 “我不知道”
没有比拒绝承认自己不知道更浪费时间了。

仔细分析错误信息里的线索
传统教育告诉我们:失败是坏事。
报错信息这种东西也经常被跟失败联系起来,
然而优秀程序员明白,这些错误消息里其实
隐藏着能将你指向最终正确解决方案的线索。

了解过早优化和必要的 “炫技式” 优化的区别
老手们清楚在什么时候需要写一些看上去
没那么好懂,但会让程序运行更快的代码。

每个人都会犯错,为自己的过失负责
而尤其在团队里,把责任推来推去没有任何意义,
因为错误的发生往往不只是一方的因素造成的。

成为你所用的开发工具的重度用户
如果长期在某个开发环境下有相当比例的
开发工作,那你应该去掌握使用它的细节。

学会用 Vim(至少会一点)
你至少应该在这个编辑器里学会勉强地移动和翻页。

不要接陌生技术领域的私活
个人做自由职业项目,其中很大一部分挑战就是
评估项目时间。不要规划自己未知领域的事情,
那会让你处于想当尴尬的境地。

不要数你干活花了几个小时
技术大牛会把时间花在有深度的工作上,
并且他们清楚花了多少时间完全不重要。

学会坦然接受批评
当你的代码因为各种原因四分五裂时,你需要培养
用理性和逻辑的方式来应对(而不是情绪化处理)。

和有更多经验的人结对编程
没有比这个更高效的编程学习方式了。

一定要先自己做一遍代码审查
当你在 GitHub 上发起一个 pull request 之前,
先把代码当成别人写的,自己先审查一遍。

认识到做自由职业的难点
不是写代码,而是其余的所有事情
销售、推广、客户支持,质量保证以及
产品管理,所有这些都会花费大量时间。

发现并解决更大的问题
优秀的程序员不拘泥于眼前的问题,而是清楚
如何用更长远的方式彻底的解决这一类问题。

深入了解一些大型开源项目的核心
能让你开发时如虎添翼
如果你知道如何给你的项目打猴子补丁
(Monkey Patch), 那么你将无所不能。

跳过多数的会议
你的公司雇你是来写代码的,而不是谈代码的。
当会议多到失控的时候,不去参加也没有任何问题。
而且一旦你开始这样做,别人会更珍惜你的时间。

知道什么时候开始回馈
到了某个时候你需要将你的技能和经验传授给
年轻的开发人员,就像你的导师当时教授你一样。

能写烂代码
有时候可以当一当 “胶带式程序员”。
关键是随着时间推移,你需要弄清楚什么时候
可以走捷径,什么时候必须走捷径。
这其实是最难掌握的技能之一。

礼貌地告诉别人你工作到很晚
如果你是办公室里最后一个,可以发一封简短的
汇报邮件。别人一般会注意到邮件上的时间戳的。

像一个领导者 (Leader) 一样做事,
而不是老板 (Boss)
老板是让别人为他工作的人,
领导者是人们追随的人。做个领导者。

去打打桌上足球
从长期来看,同其他开发者建立联系
会比在紧巴巴的期限里交付一个功能更有价值。

在压力下学习
你需要知道如何应对像系统宕机而你要负责
将它复原的情况,即使一开始你完全没有头绪。

“Move fast and break things”
别让完美主义阻止你做事
错误往往是最好的学习机会。
所以别把犯错当作失败,而应该把它们当作
值得学习的经历,并意识到:
正是不断克服和突破这些错误,
作为一个程序员,你才能不断成长起来。
编程难度不在技术上,而是在你想模拟的系统上,
也就是难在系统分析。实践一个简单的算法,
或是问题时,会感觉很不错,然而面临复杂的现实世界,
你会发现无论通过什么方式去描述,一但只要你想描述,
必然就会出现缺陷。正所谓道可道,非常道。
任何一种思维方式都是对现实的抽象,
抽象便是提取特征忽略细节。人的大脑是有限的,
直觉认识并不能完美认识一个复杂系统,
所以出现了很多理论工具可以用于修正,
然而这些理论工具本身也是抽象的经验集合。
比如说,你这个代码模拟行星运动,将行星看成质点,
于是简洁的公式便能描述,而这个是有代价的,
每个行星上的石头运动实际上被忽视的。
这种忽视不重要的因素,看起来挺有道理,
然而现实是你并不知道其实应该忽视什么。
所以整个系统分析,最难事是难在取舍上,
没有银弹说白了就是并不存在完美的模拟现实世界的
理论方法。大家慢慢体会吧。
兄弟连上海校区
5-7月培训班火热招生报名中
四大明星课程等你来学
活动期间更有精彩好礼送不停




招生期间活动如下↓
1.报名100元就送价值49元明哥聊求职一本
2.报名后转发制定兄弟连5篇文章(选自兄弟连公共平台)
在QQ空间里(截图证实)送价值35元兄弟连文化衫一件

欲了解详情请戳
兄弟连上海校区官网地址:
http://www.shanghaixdl.com/

兄弟连期待你的加入