“实践演练”:
1. 写一份自己的简历。把自己所有的相关技能都罗列出来,然后把那些在100年后还用得到的标出来。给每个技能打分,满分为10分。
2. 罗列出你所景仰的程序员。尽量包括那些与你一起工作的人,因为你会在工作中从他们身上获取一些技能。记录下他们身上的1 ~ 2个闪光点,也就是你希望自己有所提高的方面。
3. 去查看维基百科(Wikipedia.Org)上“计算机科学”栏目,找到“计算机科学的卓越先驱”这部分,从这个列表中挑选一个人,阅读他的事迹,并且在阅读时打开任何你感兴趣的链接。
4. 花20分钟通读别人的代码。读出色的代码和读糟糕的代码都是有益的,两者都要读,轮流切换。如果你无法感觉出它们之间的区别,可以求助于一位你尊敬的程序员,让他给你展示一下什么是出色的代码、什么是糟糕的代码。把你读过的代码给别人也看看,问问他们的看法。
5. 罗列出你最喜欢的10个编程工具——那些你觉得你用得最多、非有不行的工具。随机挑选其中的一个工具,花一个小时去阅读它的文档。在这一个小时里,努力去学习这个工具的某个你不曾意识到的新功能,或者发现某种新的使用方法。
6. 想一想,除了编程之外你最擅长什么事情?再想一想,你是通过怎样的锻炼才变得如此熟练和专业的?这对于你的编程工作又有什么启发呢?(怎么把这些经验应用到编程方面?)
7. 拿出一叠简历,并和一组面试官在同一个房间里待上一个小时。确保每份简历都至少被3个面试官看过,并且要给出1 ~ 3分的评分。针对那些不同面试官评判大相径庭的简历展开讨论。
8. 参与一个电话面试。事后写下你的反馈,抛出你的观点,然后与主持电话面试的人聊一聊,看看你们是否达成了一致的结论。
9. 进行一次技术面试,并且被面试的人应该是某个你不太了解的领域里的专家。让他假定听众在该领域里一无所知,因此请他从最基础的讲起。努力去理解他所说的,必要时问一些问题。
10. 有机会参与别人的技术面试。期间,你只是认真地听、认真地学。在应聘者努力解决技术问题的同时,你也要在自己脑子里尝试解决这些问题。
11. 找到一个能和你交换实际问题的人,每隔一周,相互交流编程问题。花10 ~ 15分钟来尝试解决这些问题,再用10 ~ 15分钟进行讨论(无论能否解决)。
12. 当你听到任何你一时之间也无法解决的面试问题时,赶紧回到你的座位上,把这个问题用电子邮件发给自己,以留作日后的提醒。在那一周里找出点时间,用自己最喜欢的编程语言来解决它。
我之所以喜欢Steve开出的这个清单,是因为它看上去很全面。有些程序员一想到“锻炼”,总认为就是一些编码上的难题。但在我看来,编程更在于人,而不是代码。因此,通过解决世上所有的、并且晦涩的编程面试题目,在提高你的个人能力方面,这种方法是有局限的。
关于“努力的学习”,我也很喜欢Peter Norvig在“Teach Yourself Programming in TenYears”(花10年时间自学编程)一文中提出的诸多建议:
1. 与别的程序员交流。读别人的代码。这比任何书籍或培训课程都更重要。
2. 动手写程序!最好的学习方法就是边做边学。
3. 在本科或研究生的课程中学习编程课程。
4. 找一些项目来做,并且需要与其他程序员形成团队来合作。在项目的进行过程中,学会辨别最出色的程序员以及最糟糕的程序员。
5. 在项目中跟随别的程序员一起工作,了解如何维护那些不是你写的代码,并且学习如何写出利于他人维护的代码。
6. 学习多种不同的编程语言,特别是那些与你现在所熟悉的语言有着不同的世界观和编程模型的。
7. 了解硬件对软件的影响。知道你的电脑执行一条指令需要多少时间,从内存中取出一个字(在有缓存或没缓存的情况下)需要多少时间,在以太网(或者因特网)上传输数据需要多少时间,从磁盘中读取连续的数据或者在磁盘上跳转到另一个位置需要多少时间,等等。
你还可以从Dave Thomas的21种实用的编码套路中获取灵感(CodeKata.com),或者你更愿意加入一个你家当地的“编程武馆”(CodingDojo.org)。
对于“努力的学习”,我无法像Steve,Peter或者Dave那样提供一个长长的建议列表。我远不如他们有耐心。实际上,在我看来,“编程套路”只需两个招式:
1. 写博客。我在2004年初创办了CodingHorror.com博客,作为我自己努力学习的一种形式。它在一开始很不起眼,到后来成为我职业生涯中做过的最重要的一件事。所以,你也应该写博客。最后“闻达于天下”的人,往往就是那些能够有效书写和沟通的人。他们的声音最响亮,是他们在制定游戏规则,并且引领世界的潮流。
2. 积极参与著名的开源项目。所有的高谈阔论听起来都很好,但是,你是一个大话王还是一名实干家呢?别光说不练,这个非常重要,因为人们会用你的行动来衡量你,而不是你的言论。努力在公众面前留下些实实在在有用的东西吧,到时候你就可以说,“我在那个项目中出过力。”
相关推荐
【编码套路】是编程领域的训练方式,它源于武术中的“套路”概念,指的是一系列重复的练习,旨在提升特定的编程技术和技能。编码套路的目的是通过持续挑战个人能力边界,促进编程技能的深入理解和熟练度的提高。这种...
3. 编码套路(Code Kata)的概念:是指针对某一种特定技术或技能进行重复性的练习,从而将其熟练掌握。这个概念借鉴于武术。 4. 锻炼的方法:包括写一份自己的简历,罗列出你所景仰的程序员,去查看维基百科上...
黑客可能通过构造特殊的JSON输入,利用编码套路上的弱点,绕过Fastjson的内置安全防护。例如,通过精心设计的转义序列,可能触发未预期的行为,导致安全漏洞。 2. **WAF绕过策略**:随着Web应用防火墙(WAF)对...
FizzBuzz 是一种流行的编码套路,也是一款游戏。 Fizzbuzz的规则如下: 游戏是针对 1 到 100 的数字进行的 数字按顺序列出 当一个数字能被 3 整除时,它就会被替换为单词“Fizz”(在本练习中为“Java”) 当...
1. 语法(Syntax):定义了数据包的结构和编码方式,例如如何将文本、图像或其他数据转换为可以在网络上传输的二进制流。 2. 语义(Semantics):解释了数据包中的每个部分意味着什么,以及如何解释接收到的数据。...
代码规范:原则:如果有人有编码规范,需要严格的参考编码规范编写代码,避免代码个人风格化。 Java语言参考《阿里巴巴Java开发手册》( 以下没有列出的语言,请各位老师自行根据掌握的知识修改。 C ++语言: :写...
这里,我们将探讨14种核心的解题套路,帮助你轻松应对任何编程面试中的算法问题。 1. 滑动窗口 滑动窗口是一种处理数组或链表中特定大小子序列的方法,比如寻找包含所有1的最长子数组。从第一个元素开始,窗口向右...
使用公司统一的WBS模板,按照自上而下的方式分解,一般分为四层编码结构,最底层工作包的规模控制在3人天,以保证每个任务的明确性和可追踪性。 然后,**范围确认**确保了项目工作的完成质量。通过原型法、迭代开发...
除了以上提到的技术方法,还有一种常见的解决方案是将查询参数编码到URL中。通过使用浏览器提供的history模式,可以在地址栏中直接修改URL,而不是通过刷新页面来改变路由。Vue Router支持在路由变化时执行各种生命...
【防诈体验亭】是中信银行杭州分行与网商银行联合推出的一项公益宣传教育活动,旨在提升公众特别是金融消费者的防诈骗意识。此次活动响应全党推进的党史学习教育活动,以"学党史、转作风、强服务、开新局"为主题,...
【大秀直播源码】2020最新H5视频直播源码全套源码:带后台总计+扣量系统+代.理+多级分销+CPS分成模式 ...安装无需配置数据库,直接有安装文件...站长亲测搭建看了下 无问题 注意编码问题,自行研究 搭建运营懂的就懂!!~
"js-algorithms-routine" 提供了一套JS刷算法的常见套路,旨在帮助开发者熟悉和掌握这些基础知识。本项目主要针对前端工程师,尤其是那些想要提升自己的算法思维和解决实际问题能力的前端开发者。 **一、JavaScript...
9. **M7-fast_morse**:结合"M"的含义,"fast_morse"可能是一个快速的摩尔斯电码解码挑战,涉及编码和解码技术。 10. **W1-[签到]Include**:与C1类似,可能是Web安全领域的一个签到题目,"Include"可能与服务器端...
Java代码优化是Java开发中非常重要的一方面,良好的编码规范和合理的优化方案可以提高程序的执行效率、减少资源占用和提高程序的可维护性。本文将从Java代码优化的角度出发,探讨Java代码常见优化方案,并通过示例...
"Katas"是编程界的术语,源自日语,意为“套路”或“练习”,在软件开发中通常指的是用来提高编程技能和熟练度的小型编程任务。这里,"日常练习"意味着这些Katas是持续进行的,目的是提升开发者的技术水平和思维敏捷...
5. **贪心算法**:用于解决部分最优问题,如霍夫曼编码、Prim's最小生成树算法、Kruskal's算法等。贪心策略在每一步选择局部最优解,期望最终达到全局最优。 6. **回溯法**:八皇后问题、N皇后问题、排列组合问题等...
#### Web常用套路总结 **1. 查看HTML源代码(JS源码)** 许多网站会将敏感信息直接嵌入到HTML或JavaScript代码中,直接查看源代码通常是寻找flag的第一步。大多数现代浏览器都提供了方便的开发者工具来查看和调试...
在描述中提到的"常见的套路与模版",指的是在解决ACM竞赛中经常遇到的问题类型和解决这些问题的标准步骤或代码框架,这些套路和模板可以帮助参赛者迅速理解和解决复杂问题。 压缩包内的文件主要围绕算法展开,这...
- **颗粒编码**:内存颗粒上的编码应该清晰,用手触摸编码文字不应有粗糙感,避免打磨过的内存条。 ### 显卡 显卡是电脑图形处理的核心,其真伪判断主要依据: - **散热片清洁度**:检查显卡散热片上是否有积尘,...